Я пытаюсь понять, как протокол HTTP Live Streaming, поддерживаемый Apple на своих устройствах iOS, а также Safari защищает ключ, который разблокирует контент.
Как я понимаю, файл .m3u8 объединяет все это и ссылается на содержимое (в контейнере TS MPEG2, зашифрованном AES 128) и ключ к TS файлу.
Как в этом примере:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"
#EXTINF:15,
http://media.example.com/fileSequence52-1.ts
#EXTINF:15,
http://media.example.com/fileSequence52-2.ts
#EXTINF:15,
http://media.example.com/fileSequence52-3.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
#EXTINF:15,
http://media.example.com/fileSequence53-1.ts
Предполагая, что воспроизведение на основе браузера, где элемент <video>
будет загружать файл m3u8 в атрибут "src". В этом случае, даже если ключ доставляется через https, как я могу убедиться, что пользователь не просто вводит URL-адрес https в своем браузере и сохраняет ключ на своем жестком диске? Как я понимаю механизм, загрузка ключа выполняется тегом <video>
, поскольку он воспроизводит источник m3u8, используя стек https браузера - как законный клиент внутри браузера отличается от пользователя, просто введя его в адресную строку? Это должно быть действительно очевидно, но я просто не вижу его...
Все самое лучшее,
dansch