Может ли кто-нибудь раскодировать мой поток Mpeg Dash в Widevine, если он получил декодированные данные инициализации и/или лицензионный ключ Widevine?

Допустим, кто-то загружает несколько сегментов моего потока DRM от widevine:

  • Сегмент01.m4s

  • Сегмент02.m4s

  • Сегмент...n.m4s

И он каким-то образом получил декодированные данные заголовка инициализации для этого конкретного потока, что он может с ними сделать? Может ли он использовать его для декодирования сегментов, которые он скачал? Если нет, то какими возможными способами он мог бы это сделать, и как я могу предотвратить это.


person DarkMental    schedule 21.12.2017    source источник
comment
KID являются общедоступными по замыслу. Что вы подразумеваете под данными инициализации? Вы имеете в виду псш? Потому что это тоже публично.   -  person szatmary    schedule 22.12.2017
comment
PSSH - это просто буферное сообщение сериализованного протокола base64, которое среди прочего содержит KID   -  person aergistal    schedule 22.12.2017
comment
Понял. Спасибо. Под инициализирующими данными я подразумевал initialization header я все еще не понимаю весь процесс и шаги, необходимые для декодирования сегментов на стороне клиента.   -  person DarkMental    schedule 22.12.2017


Ответы (1)


Заголовок вашего вопроса и текст вашего вопроса задают немного разные вещи - в тексте вопроса вы просто упоминаете, что злоумышленник имеет данные инициализации, но в заголовке вы также упоминаете, что злоумышленник завладел самим лицензионным ключом.

Как уже упоминалось, данные инициализации, которые будут включать идентификатор ключа, вектор инициализации и т. д., уже доступны в самом потоке.

Сам ключ недоступен — игрок должен передать идентификатор ключа системе DRM или приложению, после чего он запросит лицензионный ключ, связанный с этим идентификатором ключа, с сервера лицензий. Возвращаемый ключ сам будет зашифрован, поэтому только система DRM может расшифровать его и получить к нему доступ.

Если бы у вашего злоумышленника был сам незашифрованный ключ, то он фактически обошёл бы всю систему DRM и действительно смог бы декодировать поток.

person Mick    schedule 27.12.2017
comment
Как тогда незашифрованный ключ будет использоваться для расшифровки файлов? Он просто расшифровывает заголовок инициализации и использует его для декодирования сегментов, или каждый сегмент зашифрован сам по себе, если да, то какова цель заголовка инициализации, спасибо, что нашли время :) - person DarkMental; 28.12.2017
comment
Предполагая, что это файл MP4, в файле будет информация заголовка, чтобы указать, какие части файла зашифрованы - обычно файлы используют шифрование подвыборки, поэтому фактически зашифрована только часть файла. Вы просто передаете файл вместе с ключом в функцию дешифратора на вашей платформе - это актуально в сочетании с декодером и плеером. Вы можете использовать информацию, чтобы сделать это вручную, но это будет трудоемкий процесс. - person Mick; 28.12.2017
comment
Заголовок инициализации используется для определения того, какие службы DRM поддерживаются и какие ключи запрашиваются у этих служб. Вы передаете заголовок инициализации Widevine CDM для подготовки запроса, который вы отправите на сервер лицензий Widevine. - person Ladislav Mrnka; 09.01.2018