Описание HDCP

Вступление

Хоть аналоговый аудио и видеоконтент имеют свои плюсы, цифровое аудио и видео (далее ЦАВ) набрал большую популярность, связанную с постоянным совершенствованием качества, развитием потребительских устройств, воспроизводящих такой контент и т.д. Но как легко воспроизводить ЦАВ, также легко и копировать, и незаконно его распространять. У индустрии развлечений возникает потребность в защите от цифрового копирования. Для решения этой проблемы производители разработали схемы и компоненты защиты от цифрового копирования, распространения. Примером таких технологий является HDCP, разработанная компанией Intel. HDCP (с английского High-bandwidth Digital Content Protection — «защита широкополосного цифрового содержимого») — технология защиты медиаконтента, предназначенная для предотвращения копирования высококачественного видеосигнала, передаваемого через интерфейсы DVI (для этого интерфейса HDCP не является обязательным),  DisplayPort (для этого интерфейса HDCP является обязательным),  HDMI,  GVIF или UDI. Защищённый видеосигнал может быть воспроизведён только на оборудовании, поддерживающем HDCP. Система шифрования HDCP версий 1.x была окончательно взломана в 2010 году (был восстановлен мастер-ключ системы).

HDCP используется для защиты передачи содержимого ЦАВ от источника видеосигнала, такого как компьютер, приставка спутникового телевидения или DVD-плеера, до приемника, такого как дисплей. Эта система шифрования предназначена для предотвращения воспроизведения зашифрованного HDCP контента на устройствах, которые не поддерживают HDCP или которые были взломаны для копирования такого контента. Перед отправкой данных передающее устройство проверяет, имеет ли получатель право на их получение. Если это так, то передатчик шифрует данные, чтобы предотвратить «подслушивание» во время передачи цифровых данных на приемник. Для подключения источника к конечному устройству можно использовать несколько различных интерфейсов, совместимых с HDCP.

В этой статье описываются устройство HDCP. В одном из вариантов осуществления устройство HDCP включает в себя: (1) передатчик сконфигурированный для доставки ЦАВ контента по каналу связи до авторизированного HDCP приемника, (2) устройство подтверждения, настроенное для определения того, является ли аутентифицированный приемник HDCP также доверенным устройством и разрешает ли только доставку или он может пересылать контент еще кому — то. А также, раскроется способ доставки ЦАВ, а также его шифрование. Он включает в себя: (1) получение ключа шифрования от потенциального приемника ЦАВ, (2) идентификация потенциальных приемников совместимых с HDCP, (3) в дополнение к аутентификации проверка потенциальных приемников устройством для приема ЦАВ контента.

Способ доставки ЦАВ и вариант осуществления устройства HDCP про которые я хочу рассказать далее, уже усилены дополнительной «раскрытой схемой защиты». Опишу, что это такое.

Дополнительная «раскрытая схема защиты»

Одного только HDCP не всегда достаточно для зашиты от цифрового копирования, поскольку существуют устройства, которые будут декодировать HDCP и выводить его в аналоговом виде. В аналоговой форме содержимое может быть легко скопировано, даже несмотря на небольшие ухудшения качества копии из — за цифрового преобразования. Таким образом, хотя HDCP может быть достаточным для предотвращения случайного копирования контента потребителем, он не всегда достаточен для защиты от цифрового копирования по всех приложениях, включая профессиональные. В таких случаях используются «усиления» защиты, например стандарт DCI (Digital Cinema Initiatives). Он обеспечивает стандарт для использования цифровых технологий для распространения или проецирования кинофильмов, которые имеют более высокое качество, чем HDCP. С помощью этой системы зашифрованное содержимое разблокируется с помощью доставки ключа сообщением KDM (Key Delivery Message), которое доставляется отдельно от содержимого ЦАВ и надежно переносит ключи шифрования до источника. Данная дополнительная защита может быть непомерно высокой для некоторых решений.

            Рассматривая системы HDCP, в одном из вариантов осуществления, защита, обеспечиваемая схемами защиты HDCP, может быть усилена только за счет разрешения доставки выходных данных на приемники HDCP, которые аутентифицированы и дополнительно подтверждены в специальном списке доверенных устройств. Таким образом, в дополнение к тому, чтобы быть аутентифицированным приемником HDCP, приемники также должны быть проверены как доверенное устройство, прежде чем контент ЦАВ будет передан ему. Далее эту систему дополнительной защиты будем называть, как: раскрытая схема защиты. Аутентификация — это установленная процедура HDCP, которая проверяет, что передатчики (отправители) и приемники корректно поддерживают HDCP (сюда же относится поддержка версий). Если же эта проверка не прошла, то доставляемый контент ЦАВ блокируется.

Схема устройства доставки ЦАВ

Рис.1Рис. 1

На рис. 1 показан вариант реализации системы HDCP, в которой используется раскрытая схема защиты. Эта система включает в себя источник (10), ретранслятор (20), дисплей (30) и проектор (40).

Источник (10) — это хост ЦАВ контента. Он может быть, например персональным компьютером, телеприставкой, цифровым киносервисом и т.д. Он включает в себя передатчик (12), хранилище ключей (14). Он так же может содержать дополнительные системы защиты.

Таким образом, источник (10) также включает в себя устройство подтверждения (16), соединенное с передатчиком (12) и хранилищем ключей (14). В данном случае устройство подтверждения (16) — является раскрытой схемой защиты. Он сконфигурирован так, чтобы определять, является ли ретранслятор (20) доверенным устройством, и разрешать передатчику (12) доставлять контент. Устройство подтверждения (16) сконфигурировано для определения доверенного устройства путем сравнения уникального идентификатора (BKSV) ретранслятора (20) со списком доверенных устройств. Этот список включает в себя заранее определенный список приемников HDCP, которые были идентифицированы как доверенные устройства. Хранится этот список в памяти (17), которая может быть частью устройства подтверждения (16). Он получает этот ключ — вектор от хранилища ключей (22) ретранслятора (20). Иногда, список доверенных устройств может храниться в других запоминающих устройствах источника (10), включая память (14). Этот список чаще всего загружается в память при производстве источника (10) и может быть обновлен через ЦАВ контент, на пример с DVD-диска (Есть разновидность: список не хранится в памяти, а только может быть получен с ЦАВ контентом). Таким образом, исходный список доверенных устройств может быть расширен или уменьшен. Также возможны варианты с цифровыми подписями, подтверждающими, что приемник — доверенное устройство.

По какому бы принципу не работало устройство подтверждения (16), оно начинает проверку заново, при каждом изменении канала связи (добавление новых устройств, пропадание старых и т.д.).

Хранилище ключей (14) сконфигурирован для хранения различных ключей, таких как KSV и DPK для аутентификации. Это резервуар зачастую является просто памятью.

Передатчик (12) сконфигурирован для передачи ЦАВ контента по каналу связи (13) до ретранслятора (20). Последний может быт просто ретранслятором или же хостом HDCP.

Ретранслятор (20) представляет собой HDCP устройство, которое сконфигурировано для приема содержимого ЦАВ контента из восходящего источника и передачи в нисходящий источник. Ретранслятор (20) включает в себя приемник (21), который принимает контент от передатчика (12). Ретранслятор также содержит два передатчика (23) и (25) предназначенные для доставки контента дальше (например, до дисплея (30) или проектора (40)). Репитер (20) также влияет в себя первое хранилище ключей (22), второй (24) и третий (26). Они хранят различные ключи, используемые для аутентификации и шифрования. Имеем устройство подтверждения (28), которое является аналогичным для устройства (16). Оно настроено для определения того, является ли приемник HDCP доверенным устройством. Возможны случаи, в которых ретранслятора просто нет, а контент передается напрямую из хоста (10). Бывают варианты осуществления ретранслятора (20), в котором он может быть устройством HDCP, которое сконфигурировано для передачи списка BKSV или идентификаторов приемника (например, в версии 2.2) от нисходящего потока обратно к передатчику хоста (12). Т.е. передатчик (12) может непосредственно проверять все подключенные приемники по своему списку доверенных устройств.

Дисплей (30) включает приемник (32) и хранилище ключей (34). Проектор (40) также включает приемник (42) и хранилище ключей (44). Дисплей (30) может быть, например, телевизором, поддерживающим HDCP, а проектор (40), соответственно проекторов поддерживающим HDCP.

Рис.2Рис. 2

Рисунок 2 иллюстрирует вариант осуществления доставки контента в соответствии с раскрытой схемой защиты информации. Этот метод выполняется либо на источнике ЦАВ контента (хосте (10)) или же на ретрансляторе (20). В начале ключе шифрования принимается от потенциального получателя содержимого ЦАВ контента. Ключ шифрования может быть, например, BKSV приемника совместимого с HDCP.  Потенциальный приемник аутентифицируется как совместимое устройство. На следующем шаге проверяется список доверенных устройств. В одном варианте осуществления он проверяется путем подтверждения того, что он не был скомпрометирован. Тут могут участвовать цифровые подписи. Как было описано выше, предустановленный список может быть получен во время производства устройства, а также изменен и обновлен содержимым ЦАВ контента. Далее, потенциальный приемник проверяется как доверенное устройство. Таким образом, в дополнение у аутентификации определяется, является ли потенциальный получатель доверенным устройством. Следующим шагом, содержимое ЦАВ контента доставляется потенциальному приемнику, если он определен как доверенное устройство.

По меньшей мере, части или куски вышеописанных устройств или алгоритмов, способов могут быть воплощены, обеспечены или выполнены различными обычными цифровыми процессорами обработки данных, микропроцессорами или вычислительными устройствами. Эти устройства могут быть запрограммированы или хранить исполняемые последовательности инструкций для выполнения одного или нескольких этапов метода. Программные инструкции таких программ могут быть закодированы в машинно-исполняемом виде на обычных цифровых носителях информации, например на оптических дисках, оперативной памяти, флэш-памяти и т.д.

Аутентификация

Каждому устройству HDCP назначается набор из сорока 56 — битных ключей, известных как Device Private Keys (DPK), которые каждое устройство должно хранить в секрете. Каждому устройству также присваивается 40 — битный вектор выбора ключа (называемый KSV), который математически связан с DPK и уникален для каждого устройства. KSV приемника — BKSV, KSV передатчика — AKSV (P.S. В 2010 году в некоторых СМИ появилось новость, что через соцсети распространяется мастер-ключ HDCP. Другими словами, HDCP был взломан и ключи DPK можно создавать без помощи со стороны оператора ключей инфраструктуры HDCP). Передатчик и приемник будут обмениваться этими векторами на начальном этапе аутентификации HDCP, затем использовать его аналог для вычисления общего секрета. Если приемник имеет допустимый набор закрытых ключей (DPK), то сумма, которую он вычисляет, будет соответствовать сумме, вычисленной передатчиком в результате математических зависимостей между закрытыми ключами (DPK) и KSV.

Вычисление общего секрета можно описать так: из набора ключей DPK суммируются ключи в соответствии с вектором KSV. При условии, что бит равен 1, соответствующий ключ будет использован. Сложение происходит по модулю без переполнения. Затем сумма используется в качестве значения инициализации для шифров HDCP на любом устройстве на последующих этапах аутентификации и шифрования.

Если же, принимающая сторона является ретранслятором, то необходим дополнительный шаг аутентификации. Для проверки является ли получатель — ретранслятором, существует дополнительный бит «REPEATER». Эта часть протокола, составит список всех KSV подключенных HDCP устройств ниже по уровню, чем ретранслятор. Общая длина этого списка будет равна 5 байт (столько занимает каждый KSV), умноженный на число активных HDCP устройств в системе (присоединенных). То есть сам ретранслятор и все неактивные устройства не повлияют на этот список. Существует некоторый «сторожевой» таймер, обозначаемый, как «watchdog». Он выставляется хостом для ретранслятора. За это время, ретранслятор должен успеть составить таблицу, описанную выше и отправить статус «READY» (о готовности). Вводятся 2 дополнительных термина: глубина — максимальное количество связей по 1 ветке с нижестоящими получателями, количество устройств — количество всех активных получателей (в том числе ретрансляторов) вниз от устройства.

Как только передатчик получает сообщение о готовности ретранслятора, он считает таблицу, проверить ее целостность и определит, не превышено ли количество устройств или глубина.

В аутентификацию иногда выносят третий шаг, отвечающий за: корректность зашифровки/расшифровки контента, проверки способности получателя корректно выводить контент, а также для проверки синхронности вывода. Этот шаг работает в течение вертикального интервала, предшествующего кадру. И отправитель, и получатель вычисляют новые значения (инициирующие числа) покадрово. Их три: Ki (56 бит) — инициализирует HDCP шифр, Mi (64 бита) — новое инициализирующее значение для HDCP шифра, Ri (16 бит) — используется для проверки целостности соединения. Последнее начинает считаться с 128 кадра (работает не покадрово, а раз в 128 кадров).

Кроме того, раскрытая схема защиты дополнительно проверяет, что аутентифицированное устройство HDCP также является доверенным устройством. Доверенное устройство — это устройство HDCP, которое было идентифицировано как отвечающее определенным бизнес-критериям, таким как: неспособность преобразовать полученный контент ЦАВ в аналоговый контент.

Шифрование данных в HDCP

Внутри передатчика есть своего рода блок TMDS шифратора. Именно на нем и происходит шифрование, а расшифрование на приемнике на выходе из TMDS шифратора. Весь процесс шифрование можно описать так: поток данные побитого складывается (XOR) с псевдослучайной последовательностью, генерируемой HDCP — шифром. Во время вертикального интервала подготавливается шифр для каждого пикселя из потока 24 — битной псевдослучайной последовательности, которая зависит от ключа. Для усложнения взлома шифра, во время строчного интервала гашения шифр переназначает ключ для каждых 56 бит.

Выход шифра

Канал TMDS

Биты видеопотока

23:16

2

Red [7:0]

15:8

1

Green [7:0]

7:0

0

Blue [7:0]

 Табл. 1

Сам шифр

Общее строение шифра в HDCP можно разбить на три слоя. Первый — линейные регистры сдвига с обратной связью (4 регистра). Второй — модуль блоков. Третий — логическая функция выхода.

Сх.1Сх.1

Линейные регистры сдвиг с обратной связью

На выходе из этого блока будет получен один бит. Сам модуль состоит из 4 LSFR. Также существует функция смешения, в состав которой входят четыре каскадно-соединенных сети с перемещением каналов, в каждой из которых по 2 бита состояния. См. схемы.

Сх.2Сх.2

Приведу также описание сети с перемещением каналом. Она приведена на схеме. Если в сети находится два булевских значений А и В, на вход поступит D — булевская величина. S — определяет следующее состояние: при 0, на выходе будет А и установится состояние (В, D); при 1, на выходе В и установится состояние (А, D).

И функция смещения, и LSFR инициализируются 56 — битным числом.

Табл.2Табл. 2

Модуль блоков

            Модуль можно разложить на 2 компонента, которые называются раундовыми функциями. Одна снабжает вторую потоком ключей. Обе компоненты работают с набором трёх 28 — битных регистров.

Сх.3Сх.3

При условии, что сигнал на переопределение ключа, то в 13 бит регистра Ку записывается бит из выходного потока LSFR. S — блоки для обеих раундовых функций состоят из 7 S — блоков с 4 входами и 4 выходами (для одной раундовой функции эти блоки названы: SК0, SК1, SК2, SК3, SК4, SК5, SК6, аналогично для второй).

В таблице показаны диффузионные сети для раундовый функции K.                      

Табл.3Табл. 3Табл.4Табл. 4

И таблица раундовой функции В:

Табл.5Табл. 5

Логическая функция выхода

Регистры Ку, Кz, Bу, Вz образуют логическую функцию выхода. С помощью сложения (XOR) получается каждый из 24 битов по формуле:

77a41759ca09ca90ac5cca133db1e676

Итак, на сегодняшний день, считаю, что это не самая надежная защита, но которая находит применение.

Список источников:

1) HDMI Explained by Rob Carter

2) Digital Content Protection LLC. HDCP specification v1.4

© Habrahabr.ru