Я пытаюсь понять, как протокол HTTP Live Streaming, который Apple поддерживает на своих устройствах iOS, а также в Safari, защищает ключ, разблокирующий контент.
Насколько я понимаю, файл .m3u8 объединяет все вместе и ссылается на содержимое (в контейнере MPEG2 TS, зашифрованное 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 браузера — как легитимный клиент внутри браузера отличается от пользователя, просто вводящего его в адресную строку? Это должно быть очень очевидно, но я просто не вижу этого...
Всего наилучшего,
данш