Андрей Смирнов
Время чтения: ~18 мин.
Просмотров: 216

Что такое в видеокарте hdcp?

Нахождение секретной матрицы DCP LLC

14 сентября 2010 несколько онлайн СМИ (ZDNet, Engadget) сообщили о факте открытой публикации мастер-ключа HDCP, с помощью которого можно создавать закрытые ключи устройств HDCP (device private keys) без помощи со стороны оператора ключевой инфраструктуры HDCP (The Digital Content Protection LLC). C публикацией мастер-ключа были нейтрализованы все меры по отзыву ключей устройств, так как вместо старого (отозванного) ключа устройства всегда можно сгенерировать новый. Не вполне ясно, каким образом был получен мастер-ключ, известно, что публикация ключа вместе с инструкцией по использованию произошла через и pastebin. Engadget считает, что атакующий мог использовать метод Crosby (2001).

Через 2 дня, 16 сентября, компания Intel (создатель HDCP) подтвердила, что данный мастер-ключ реален и что защита HDCP фактически взломана. Intel угрожает, что предпримет юридические действия против любого, кто изготавливает аппаратные устройства для обхода защиты HDCP.

Краткое описание HDCP

  • 1. Специальный протокол распознавания, который препятствует воспроизведению аудио и видео высокой четкости на несертифицированных устройствах; 2. По HDMI и DVI передаются данные в зашифрованном виде, что препятствует прямому копированию контента, а также его «прослушиванию» третьими лицами; 3. Специальная система аннулирования ключей позволяет максимально быстро реагировать на нарушения лицензионных соглашений и таким образом блокировать передачу контента высокой четкости на устройства, изготовленные производителем, нарушавшим правила.

В общем случае любое изделие, использующее HDCP, обладает уникальным набором ключей — 40 штук по 56 бит. Данные ключи являются секретными, разглашение их и взлом выступают нарушением лицензионного соглашения. Определенному набору ключей соответствует специальный вектор выбора ключа — key-selection vector (KSV), имеющий 40 бит, 20 бит — нулевые, остальным 20 присваивается значение 1.

В момент подключения устройств друг к другу (например, ресивера и телевизора) происходит обмен этими ключами. После чего каждое изделие производит суммирование своих ключей в соответствии с битами KSV другого устройства. В том случае, когда бит вектора выбора ключей равен 1, секретный ключ используется, если же бит KSV равен 0, то секретный ключ не используется. И вектор выбора ключей, и секретные ключи устройств составляются таким образом, чтобы в результате описанного выше процесса изделия получили одно и то же число, состоящие из 56 бит. Именно оно используются для шифрования передаваемых данных.

Шифрование HDCP выполняется поточным шифром. К каждому биту применяется логическая операция XOR с 24 битным числом — оно генерируется специальным устройством.

Когда производитель изделия нарушает лицензионное соглашение, вектор выбора ключей для такого изделия аннулируется. Список аннулированных ключей записывается на все новые диски. Подобные списки имеют специальную цифровую подпись, в основе которой находится алгоритм DSA. Это создано для обеспечения препятствия занесения в список определенных устройств злоумышленниками (например, конкурентами).

Если во время обмена данными с источником сигнала будет обнаружено, что KSV подключенного к нему изделия находится в списке аннулирования, то произойдет разъединение и передача данных высокой четкости осуществлена не будет.

Какую роль играет динамическая контрастность

Простой пример: чем темнее общая картинка, тем меньше света подаётся на экран и, соответственно, чем светлее, тем больше. С одной стороны, это хорошо, в первом случае изображение становится более глубоким, во втором — более ярким. Однако существенный минус в том, что каждый раз страдает противоположная часть. То есть, в тёмной картинке светодиоды горят недостаточно сильно для того, чтобы правильно отображать её светлые части, и наоборот, в светлой они горят настолько сильно, что освещают и тёмные области, перестающие быть тёмными.

К компромиссу в настоящий момент приближаются производители LED-мониторов с функцией локальной подсветки. Это означает, что в движении уровень освещения экрана меняется не полностью, как в приведённом выше примере, а частями: одни светодиоды горят в полную силу, другие меньше, третьи не горят вовсе. Таким образом, получается качественная контрастная картинка с явными чёрными и белыми цветами.

Проблема с HDCP

Основная проблема с HDCP заключается в том, что существует вероятность того, что ваше устройство не поддерживает HDCP. Это случается не часто, но производители не обязаны делать свои устройства HDCP-совместимыми.

Это означает, что если вы купите не HDCP-совместимое устройство, вы не сможете передавать потоковое содержимое. Если одно из устройств во всей медиа-цепочке не поддерживает HDCP, передача не будет успешной.

В большинстве случаев, когда вы пытаетесь просмотреть HDCP-совместимый контент на устройстве, которое не поддерживает HDCP, вы увидите сообщение об ошибке, например «HDCP unauthorized» или «HDCP error».

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

Это также означает, что некоторые из ваших старых устройств, даже если они могут поддерживать нужные порты, такие как HDMI, скорее всего, не совместимы с HDCP.

HDCP также может быть проблемой для людей, которые любят записывать свои игры. Хотя Sony выпустила обновление для PS4, которое разблокировало HDCP, она не смогла сделать это для PS3, поскольку HDCP был заблокирован на уровне чипа. Это означает, что игроки PS3, которые хотели записывать свои игры, должны были использовать внешние устройства захвата.

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

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

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

Хотя есть альтернатива. Пользователи с устройствами, не поддерживающими HDCP, могут приобрести разветвитель HDMI, который игнорирует запросы HDCP.

Чтобы использовать такое устройство, вам просто нужно поместить его между устройством вывода и телевизором или монитором, который вы используете.

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

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

Использование разветвителя — это то, что вы должны серьезно рассмотреть, если у вас возникли проблемы с HDCP при использовании ваших устройств.

На самом деле проблемы при подключении HDMI кабеля случаются редко, но если все же случаются, их, как правило, можно разделить на две категории: проблемы с подключением и проблемы с совместимостью. Неполадки с подключением можно легко устранить выбрав подходящий кабель и распределительное устройство. Что же касается проблем с совместимостью, для их устранения придется немного повозиться.

Проблема с HDCP

Основная проблема с HDCP заключается в том, что существует вероятность того, что ваше устройство не поддерживает HDCP. Это случается не часто, но производители не обязаны делать свои устройства HDCP-совместимыми.

Это означает, что если вы купите не HDCP-совместимое устройство, вы не сможете передавать потоковое содержимое. Если одно из устройств во всей медиа-цепочке не поддерживает HDCP, передача не будет успешной.

В большинстве случаев, когда вы пытаетесь просмотреть HDCP-совместимый контент на устройстве, которое не поддерживает HDCP, вы увидите сообщение об ошибке, например «HDCP unauthorized» или «HDCP error».

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

Это также означает, что некоторые из ваших старых устройств, даже если они могут поддерживать нужные порты, такие как HDMI, скорее всего, не совместимы с HDCP.

HDCP также может быть проблемой для людей, которые любят записывать свои игры. Хотя Sony выпустила обновление для PS4, которое разблокировало HDCP, она не смогла сделать это для PS3, поскольку HDCP был заблокирован на уровне чипа. Это означает, что игроки PS3, которые хотели записывать свои игры, должны были использовать внешние устройства захвата.

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

Итак, что же такое DDC CI?

DDC 1 предназначен для обмена информации в одностороннем порядке от экрана к ПК. Обычно содержит информацию о экране и его параметрах. Данная кодировка стандартна для старых моделей и была весьма распространена, пока на смену не пришли более новые технологии.

DDC 2B обеспечивает двустороннюю передачу информации как с монитора на компьютер, так и с ПК на монитор. Отличается от DDC 1 дополнительной линии передачи информации одной из систем команд(DID, ExtEDID, VDIF)

DDC 2A/B аналогичен предыдущему, но базируется на другом интерфейсе и обеспечивает большую скорость передачи данных.

Существует несколько стандартов для передачи информации, основные: VGA и VESA DDC/CI. В данной статье будет рассмотрен второй формат.

Display Data Channel Command Interface (DDC/CI) данная технология осуществляет формирование и отправку информации в на дисплей, а также прием ответной информации. Общая кодировка и набор команд стандарты и описаны в технической документации MCCS. Информация о данной документации закрыта, однако для общего пользования существует документация ACCESS.bus Specifications Version 3.0 в которой изложено устройство и список команд, а также возможности и функции их применения.

Криптоанализ

Для того, чтобы получить общий секрет, устройства складывают свои секретные ключи Ai в зависимости от полученного вектора ключа. В итоге получается 56-битный секрет Km (передатчик) и Km’ (приёмник), причём они должны быть равны.

Затем, после аутентификации приёмник шифрует оказию полученным ключом и отправляет её передатчику. Тот, в свою очередь, проверяет своим ключом Km, что оказия зашифрована верно.

Следовательно, если мы определим 40 линейно независимых векторов A1..A40{\displaystyle A_{1}..A_{40}} (секретные ключи устройства), то мы сможем полностью взломать систему, поскольку эти ключи будут составлять базис 40-мерного пространства секретных ключей, и мы сможем составить из них любой набор секретных ключей любого устройства.
С другой стороны, если не все 40 ключей будут линейно независимыми, то мы все равно сможем создать определенные наборы секретных ключей, входящих в найденное подпространство.

Пример:
Предположим, что у нас есть 40 устройств (A1…A40){\displaystyle (A_{1}\dots A_{40})}, для которых мне известны их векторы выбора ключей и 
наборы секретных ключей   ((A1)keys…(A40)keys){\displaystyle ((A_{1})keys\dots (A_{40})keys)}, тогда, в результате обмена информацией с устройством, 
которое мы хотим взломать, получится система уравнений:
{Xkeys∗(A1)ksv=(A1)keys∗XksvXkeys∗(A2)ksv=(A2)keys∗Xksv…Xkeys∗(A4)ksv=(A40)keys∗Xksv{\displaystyle {\begin{cases}Xkeys*(A_{1})ksv=(A_{1})keys*Xksv\\Xkeys*(A_{2})ksv=(A_{2})keys*Xksv\\\dots \\Xkeys*(A_{4}0)ksv=(A_{40})keys*Xksv\\\end{cases}}}
 

решив которую, мы получим секретные ключи атакуемого устройства. Предположение, которое мы делаем — то, что все 40 векторов выбора ключа (Ai){\displaystyle (Ai)}ksv линейно независимы.

Если же пространство, охватываемое (Ai)ksv{\displaystyle (Ai)ksv} не является 40-мерным, то всё равно должна остаться лазейка. Или эти векторы выбора ключа сконструированы так, что будет невозможно составить из них базис сорокамерного пространства, или нам потребуется более 40 KSV, чтобы охватить всё пространство (каждое дополнительное устройство обладает малыми шансами быть линейно зависимым к уже полученному набору, примерно 1240−n{\displaystyle {\frac {1}{2^{40-n}}}}, где n — размерность охваченного пространства)

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

Пример:

1. Выберем произвольное устройство B, если B может аутентифицировать Ai, то выполняется равенство:

(Ki)m′=(A1)keys∗Bksv=Bkeys∗(Ai)ksv=(Ki)m.{\displaystyle (K_{i})m’=(A_{1})keys*Bksv=Bkeys*(A_{i})ksv=(K_{i})m.}

2. Пусть

Xksv=a1∗(A1)ksv+a2∗(A2)ksv…an∗(An)ksv.{\displaystyle Xksv=a_{1}*(A_{1})ksv+a_{2}*(A_{2})ksv…a_{n}*(A_{n})ksv.}

3. Мы знаем, что, когда устройство B аутентифицирует устройство X, используется величина Km:

Km=Bkeys∗Xksv=Bkeys∗(a1∗(A1)ksv+a2∗(A2)ksv+…+an(An)ksv)=a1∗(A1)ksv∗Bkeys+…+an∗(An)ksv∗Bkeys=a1∗(K1)m+a+2∗(K2)m+…+an(Kn)m.{\displaystyle Km=Bkeys*Xksv=Bkeys*(a_{1}*(A_{1})ksv+a_{2}*(A_{2})ksv+…+a_{n}(A_{n})ksv)=a_{1}*(A_{1})ksv*Bkeys+…+a_{n}*(A_{n})ksv*Bkeys=a_{1}*(K_{1})m+a+2*(K_{2})m+…+a_{n}(K_{n})m.}

4. То есть, вспоминая тот факт, что (Ki)’m = Ki для всех i, мы можем вычислить Km’:

Km′=a1∗(K1)m′+a2∗(K2)m′+…+an∗(Kn)m′=a1∗(A1)keys∗Bksv+…+an∗(An)keys∗Bksv=a1∗(A1)keys+…+an∗(An)keys∗Bksv.{\displaystyle Km’=a_{1}*(K_{1})m’+a_{2}*(K_{2})m’+…+a_{n}*(K_{n})m’=a_{1}*(A_{1})keys*Bksv+…+a_{n}*(A_{n})keys*Bksv=*Bksv.}

5. Так как выбор B был произвольным, то это сработает для любого B, причём

Xkeys=a1∗(A1)keys+…+an∗(An)keys.{\displaystyle Xkeys=a_{1}*(A_{1})keys+…+a_{n}*(A_{n})keys.}

Аутентификация между B и X пройдет успешно.
Единственной сложностью может быть конструирование Xksv таким образом, чтобы он состоял из 20 нулей и 20 единиц.

HDMI and HDCP – Some background information

HDCP is a copy protection that was added to the HDMI standard, at a later time, by Intel.
The first HDMI versions did not include HDCP, but most modern HDMI capable devices support it.

The content, or content source (where the “output” comes from), determines if HDCP is needed, and is/was intended to prevent content to be displayed or recorded by unauthorized devices. See it as the digital counter part of MacroVision as was used with analog video way back in the day.

HDCP uses authorization and encryption – it verifies (authenticate) the receiving party (Destination or “input”) – i.e. The video sources asks for the secret code from the destination device, before it sends content, so the receiving party is authorized and can decrypt. Even though the master key for decryption has been compromised since 2010 and some smart folks assembled a device for demonstration purposes, HDCP is still in full use. Just like those idiotic region codes of DVD’s and BluRay’s. Non compliant devices, an old (HDMI) TV for example, will simply display a message that the content cannot be displayed or  will display a blank screen.

Naturally a “HDCP remover” or “HDCP Stripper” device is not readily available to the public … or is it?

CAUTION: Not intended to promote illegal copying and/or piracy!

I cannot emphasize this enough! This article was not written with illegal copying, ripping or to promote piracy.
The sole purpose is to be able to use non-HDCP compliant equipment with HDCP video sources.
This can be you old TV or projector, or trying to record game playing (PS3), making screenshots, or … my little ambient light project.

Bypassing HDCP with the intend to copy/pirate content is MOST CERTAINLY ILLEGAL in most countries!

Некоторые используемые функции

hdcpBlockCipher

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

Последовательность работы функции hdcpBlockCipher Начальные состояния и выход функции hdcpBlockCipher\
Этап Действие
1 Загрузка регистров B и K модуля блоков
2 Совершение 48 тактов работы регистров
3 Сохранение 56 младших битов для будущего использования в качестве Ks, Ki
4 Перенос 84 битов регистров B в регистры K
5 Перезагрузка регистра B
6 Инициализация модуля LFSR
7 Запрос на смену ключа
8 Совершение 56 тактов работы LFSR и модуля блоков, сохранение 64-битного значения Mi во время последних четырёх тактов
9 Снятие запроса на смену ключа
Этап Такты Начальное значение LFSR (56 бит) Начальное значение K Начальное значение B (65 бит) Выход B (84 бита) Выход функции
hdcpBlockCipher во время аутентификации 1-3 48 Km (56 бит) REPEATER||An Ks
6-9 56 Ks Ks (84 бит) REPEATER ||An R,M{\displaystyle R0,M0}
hdcpBlockCipher во время вертикального интервала 1-3 48 Ks (56 бит) REPEATER ||Mi−1{\displaystyle M_{i-1}} Ki{\displaystyle K_{i}}
6-9 56 Ki{\displaystyle Ki} Ki{\displaystyle Ki} (84 бит) REPEATER ||Mi−1{\displaystyle M_{i-1}} Ri,Mi{\displaystyle R_{i},M_{i}}

Для 8-битных чисел a и b результатом конкатенации ab является 16-битное число, где a — старший разряд, а b — младший разряд.

В обеих раундовых функциях B и K регистры x, y, z можно рассматривать как один регистр длиной в 84 бита.

В том случае, когда требуется менее 84 битов регистра, используются биты младшего разряда. Если для инициализации доступно менее 84 бит, то заполняются младшие биты, а оставшиеся устанавливаются в ноль.

Пример:
65-битный результат конкатенации бита REPEATER и величины An будет записан в регистры Bx и By, 
плюс в 9 младших бит регистра Bz,  при этом старшие 19 бит регистра заполнятся нулями.
Откуда берутся биты Mi и Ri, показано в таблице выше.

hdcpRngCipher

Эта функция используется как генератор случайных чисел, причём функция должна поддерживать метод, который позволял бы получать биты из внешнего источника. Должно происходить смешивание битов извне со значениями регистров (без замены). То есть не должно существовать способа определить генерируемую величину.

Внешний источник должен обладать разумной вероятностью, или энтропией. То есть, если, например, дан 1000000 различных циклов, то количество повторяющихся чисел среди 1000000 An не должно превышать 50 %. Это соответствует примерно сорока (если считать, что 1000000≈220{\displaystyle 1000000\approx 2^{20}}) произвольным битам из 64.

Для чего нужно DDC CI

Основная функция DDC это передача информации о параметрах изображения. Это нужно для отладки картинки и настройки режимов работы экрана в зависимости от подключенного к нему компьютера. Данная функция обеспечивает двухстороннюю передачу информации, как от компьютера к экрану, так и от монитора к ПК, что позволяет обеспечивать управление и отладку двух устройств одновременно.

Одной из таких программ является ddccontrol.Она обеспечивает пользователю несколько основных возможностей, таких как:

Регулировка яркости и контрастности. При чем данные параметры меняются аппаратно на самом экране (при помощи изменения подсветки). Также для пользователя существует возможность изменения цветовой гаммы.

  • Возможность переключения различных режимов работы на экране. Будь то пресет movie\game\user\text и другие.
  • Менять настройку языков. В том числе и тех языков, которые недоступны для данного региона.
  • Блокировка любых кнопок на устройстве. В том числе и кнопка, отвечающая за включение – выключение.
  • Возможность дистанционно включать и выключать монитор.
  • Возможность перемещения изображения.

Также, благодаря данной утилите, для пользователя открываются множество возможностей. которые не были отражены в инструкции или других документах, и возможности их включения при помощи кнопок управления на самом устройстве не было. Как, например ?включение японского языка в настройках, что невозможно в условиях европейского региона.

Purpose of HDCP

John Lamb / Getty Images 

Put differently: Years ago, people purchased two video cassette recorders, then chained them in series. You’d play a VHS tape, but the signal from that VCR fed a second VCR with a blank tape set to record. That second VCR then fed the TV, so that you could watch and copy movies simultaneously without difficulty or detection. The use of HDCP devices and cables now precludes this behavior unless you take extraordinary steps to acquire or modify devices to strip the HDCP encoding from a stream.

The most recent HDCP version is 2.3, which was released in February 2018. Many products on the market have a previous HDCP version, which is fine because HDCP is compatible across versions.

HDCP — что это такое?

Проверить наличие на видеокарте CryptoROM можно, сняв систему охлаждения и поискав микросхемы Atmel AT88SC или AT24C168 (посадочные места U50Х на плате). При аналоговом подключении () система AACS автоматически снижает качество видео до 540 линий по вертикали.

  • Графические процессоры NVIDIA серии 7Х00 и G80 (8800 GTS/GTX) поддерживают при подключении монитора/телевизора через только для одного канала (single-link). Таким образом, максимальное разрешение монитора для воспроизведения защищенного контента ограничено 1600х1200. Для вывода больших разрешений требуется подключение с двумя каналами (Dual-link), поддержка при этом отключается. Можно попытаться сделать доступным разрешение 1920х1200 при одноканальном подключении путем создания профиля с уменьшенным временем гашения, смотрите специальный вопрос FAQ.
  • Некоторые мониторы также поддерживают лишь для одного канала (single-link), например Dell 3008WFP. Обратитесь к документации на монитор. В таких случаях следует снижать разрешение рабочего стола перед запуском проигрывателя Blu-ray.
  • Защита не применяется для встроенных дисплеев ноутбуков, однако, при подключении дополнительного монитора/телевизора к ноутбуку он должен соответствовать требованиям . Для воспроизведения защищенного видео на внешний монитор предварительно следует отключить встроенный дисплей ноутбука (в панели NVIDIA выбрать основным внешний монитор/телевизор и включить однодисплейный режим).
  • В Surround системе все мониторы группы должны поддерживать , но изображение видео будет выводиться только на центральный экран.
  • предназначен для работы при частоте обновления не выше 60 Гц. При использовании большей частоты (особенно в стереосистемах) работа протокола может быть нестабильной.

Продукт AnyDVD HD позволяет отключить систему защиты AACS, сняв требование на поддержку . Предупреждение: Использование подобных средств является нарушением закона в некоторых странах.

Blu-RayDVIHDCPHDMITVмониторноутбукителевизорыGeForce 8800 GTSGTXDellдрайверконтрольная панельстерео

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

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

Хотя это может показаться замечательной функцией, HDCP иногда может сломаться и вызвать некоторые проблемы, которые не позволят вам наслаждаться просмотром видео.

В этой статье мы расскажем вам все о HDCP, как он работает, какие ошибки он вызывает и как их исправить .

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации