HDCPv2 (англ. High-bandwidth Digital Content Protection — «защита широкополосного цифрового содержимого») — cемейство технологий 2-го поколения защиты медиаконтента, разработанная корпорацией Intel и предназначенная для предотвращения незаконного копирования высококачественного видеосигнала, передаваемого через интерфейсы HDMI, DVI, DisplayPort, USB и другие. HDCP 2.2 специально разработан для контента 4K Ultra HD, а также фильмов и телепередач с HDR. Последняя версия HDCP 2.3 для HDMI была разработана 28 февраля 2018.
Сходства и отличия от HDCPv1 Версии HDCP 2.x не является продолжением HDCPv1 и является скорее совсем другой технологией. Версии 2.x используют стандартные алгоритмы шифрования, такие как 128-битный AES с 3072 или 1024-битный RSA с открытым ключом и 256-битную хеш-функцию HMAC-SHA256. Хотя все спецификации HDCP v1.x поддерживают обратную совместимость с предыдущими версиями спецификации, устройства HDCPv2 могут взаимодействовать с оборудованием HDCPv1 только за счет собственной поддержки HDCPv1 или с помощью специального преобразователя. Это означает, что HDCPv2 применим только к новым технологиям. Он был выбран для стандартов WirelessHD и Miracast.
HDCP 2.x включает новый протокол аутентификации и проверку местоположения для обеспечения приемник находится относительно близко (он должен среагировать на проверку местоположения в течение 7 мс при обычном канале DVI / HDMI).
Между HDCP v2 и v1 все ещё есть несколько общих черт:
Оба находятся в ведении DCP LLC Оба имеют одинаковое лицензионное соглашение, правила соответствия и правила надежности Оба используют одну и ту же систему отзыва и одинаковые форматы идентификаторов устройств
Технология В системе HDCP два или более устройств связаны между собой через защищенный HDCP интерфейс. Медиаконтент поступает из функции управления контентом восходящего потока в систему HDCP на самом восходящем передатчике HDCP. Оттуда аудиовизуальный контент, зашифрованный системой HDCP, называемый контентом HDCP, проходит через древовидную топологию интерфейсов, защищенных HDCP.
HDCPv2 состоит из трёх основных компонентов:
Аутентификация приемников HDCP HDCP-шифрование Отзыв приемников HDCP
Приемники HDCP могут воспроизводить контент в аудио- и визуальной форме для восприятия человеком. Приемники HDCP могут быть ретрансляторами HDCP, которые служат передатчиками HDCP в нисходящем направлении, передающими контент HDCP далее одному или нескольким дополнительным приемникам HDCP.
Аутентификация приемников HDCP Протокол аутентификации HDCP представляет собой обмен информацией между передатчиком и приемником, которая подтверждает передатчику, что приемник авторизован для получения содержимого HDCP.
Он состоит из следующих этапов:
Аутентификация и обмен ключами (AKE) — сертификат открытого ключа приемника HDCP, проверяемый передатчиком HDCP. Обмен мастер-ключей Проверка местоположения (LC) — Передатчик HDCP обеспечивает локальность контента, требуя, чтобы время приема-передачи (RTT) между парой сообщений не превышало 20 мс Обмен ключами сеанса (SKE) — передатчик HDCP обменивается ключами сеанса с приемником HDCP Аутентификация с повторителями — этот шаг выполняется передатчиком HDCP только с повторителями HDCP. На этом этапе ретранслятор собирает информацию о топологии нисходящего потока и направляет её восходящему передатчику HDCP.
Успешное завершение этапов AKE и проверки местоположения подтверждает передатчику, что приемник авторизован для получения содержимого HDCP. В конце протокола аутентификации устанавливается канал связи между передатчиком и приемником, к которому могут получить доступ только авторизованные устройства.
Все устройства HDCP содержат 128-битную секретную глобальную константу, обозначаемую . Все устройства HDCP используют одну и ту же глобальную константу .
Передатчик HDCP содержит 3072-битный открытый ключ RSA от DCP LLC, обозначаемый .
Приемнику HDCP выдаются 1024-битные открытый и закрытый ключи RSA. Открытый ключ хранится в сертификате открытого ключа, выданном DCP LLC и обозначаемом . В таблице приведены поля, содержащиеся в сертификате. Все значения хранятся в формате с обратным порядком байтов +Сертификат открытого ключа приемника HDCPИмя переменнойРазмер в битахПозиция битовНазначениеReceiver ID404175:4136Уникальный идентификатор получателя. Он имеет тот же формат, что и HDCP 1.x KSV, то есть содержит 20 единиц и 20 нулей.Receiver Public Key10484135:3088Уникальный открытый ключ RSA приемника HDCP, обозначенный . Первые 1024 бита представляют собой представление модуля n с обратным порядком байтов, а последние 24 бита представляют собой представление с обратным порядком байтов общедоступного показателя степени e.Reserved243087:3084Зарезервировано для будущего определения. Фиксировано значение 0x0 или 0x1.Reserved1123083:3072Зарезервировано для будущего определения. Фиксировано значение 0x000DCP LLC Signature30723071:0Криптографическая подпись, рассчитанная по всем предыдущим полям сертификата. RSASSA-PKCS1-v1_5 — это схема подписи, используемая в соответствии с определением PKCS #1 V2.1: Стандарт криптографии RSA. SHA-256 — это базовая хеш-функция. Секретный закрытый ключ RSA обозначается . Время вычисления операции закрытого ключа RSA можно сократить, используя метод китайской теоремы об остатках (CRT). Поэтому рекомендуется, чтобы приемники HDCP использовали метод CRT для вычислений закрытого ключа.
Аутентификация и обмен ключами Аутентификация и обмен ключами (AKE) — это первый шаг в протоколе аутентификации. Передатчик HDCP (устройство A) может инициировать аутентификацию в любое время, даже до завершения предыдущего обмена аутентификацией. Передатчик HDCP инициирует новый сеанс HDCP, отправляя сообщение инициации аутентификации, AKE_Init.
Во время AKE передатчик HDCP Инициирует аутентификацию, отправляя инициирующее сообщение AKE_Init, содержащее 64-битный псевдослучайное значение () и параметры ; Считывает AKE_Send_Cert с получателя, содержащий , 64-битное псевдослучайное значение () и . Бит REPEATER в указывает, является ли подключенный приемник повторителем HDCP. Сообщение AKE_Send_Cert должно быть доступно для чтения передатчиком в течение 100 мс с момента завершения передатчиком записи параметров сообщения AKE_Init в приемник HDCP. Если сообщение AKE_Send_Cert недоступно для чтения передатчиком в течение 100 мс, передатчик прерывает протокол аутентификации. Извлекает Receiver ID получателя из Если передатчик HDCP не имеет 128-битного мастер-ключа , сохраненного в соответствии с Receiver ID приемника (см. раздел сопряжение): Проверяет подпись сертификата с помощью . Сбой проверки подписи представляет собой сбой аутентификации, и передатчик HDCP прерывает протокол аутентификации. Генерирует псевдослучайный 128-битный главный ключ . Шифрует с помощью () и отправляет получателю сообщение AKE_No_Stored_km, содержащее 1024-битный . Схема шифрования RSAES-OAEP должна использоваться в соответствии с определением PKCS #1 V2.1: RSA Сryptography Standard. SHA-256 — это базовая хэш-функция. Используемая функция генерации маски — MGF1, которая использует SHA-256 в качестве базовой хэш-функции. Проверяет целостность сообщения об обновлении системы (SRM). Это делается путем проверки подписи SRM с помощью . Сбой этой проверки целостности представляет собой сбой аутентификации и заставляет передатчик HDCP прерывать протокол аутентификации. Передатчик HDCP верхнего уровня проверяет, находится ли Receiver ID подключенного устройства в списке отзыва. Если Receiver ID подключенного HDCP-устройства обнаружен в списке отзыва, аутентификация завершается ошибкой и протокол аутентификации прерывается. Проверка целостности SRM и проверка отзыва выполняются только передатчиком HDCP верхнего уровня. Выполняет формирование ключа, для создания 256- битного . , где и — сгенерированные ключи при = 0 и = 1 соответственно. Вычисляет 256-битный HMAC-SHA256(), где HMAC-SHA256 вычисляется поверх , а для HMAC используется ключ . Считывает сообщение AKE_Send_H_prime от получателя, содержащее 256-битный . Сообщение AKE_Send_H_prime должно быть доступно для чтения передатчиком в течение одной секунды с момента завершения передатчиком записи параметров сообщения AKE_No_Stored_km в приемник HDCP. Если AKE_Send_H_prime сообщение недоступно для чтения передатчиком в течение одной секунды или существует несоответствие между и , передатчик прерывает протокол аутентификации. Если в передатчике HDCP хранится 128-битный мастер-ключ , соответствующий Receiver ID приемника: Отправляет получателю сообщение AKE_Stored_km со 128-битным и 128-битное , соответствующее Receiver ID приёмника. Проверяет целостность сообщения об обновлении системы (SRM). Это делается путем проверки подписи SRM с помощью . Сбой этой проверки целостности представляет собой сбой аутентификации и заставляет передатчик HDCP прерывать протокол аутентификации. Передатчик HDCP верхнего уровня проверяет, находится ли Receiver ID подключенного устройства в списке отзыва. Если идентификатор приемника подключенного HDCP-устройства обнаружен в списке отзыва, аутентификация завершается ошибкой и протокол аутентификации прерывается. Выполняет формирование ключа, для создания 256- битного . , где и — сгенерированные ключи при = 0 и = 1 соответственно. Вычисляет 256-битный H = HMAC-SHA256(), где HMAC-SHA256 вычисляется поверх , а для HMAC используется ключ . Считывает сообщение AKE_Send_H_prime от получателя, содержащее 256-битный . Сообщение AKE_Send_H_prime должно быть доступно для чтения передатчиком в течение 200 мс с момента завершения передатчиком записи параметров сообщения AKE_Stored_km в приемник HDCP. Если сообщение AKE_Send_H_prime недоступно для чтения передатчиком в течение 200 мс или существует несоответствие между и , передатчик прерывает протокол аутентификации.
Во время AKE приемник HDCP Делает доступным сообщение AKE_Send_Cert для чтения преобразователем в ответ на AKE_Init. Сообщение AKE_Send_Cert должно быть доступно для чтения передатчиком в течение 100 мс с момента завершения передатчиком записи параметров сообщения AKE_Init в приемник HDCP. Если получено сообщение AKE_No_Stored_km: Дешифрует с помощью , используя схему дешифрования RSAES-OAEP. Выполняет формирование ключа, для создания 256-битного . , где и — сгенерированные ключи при = 0 и = 1 соответственно. Вычисляет HMAC-SHA256(). Сообщение AKE_Send_H_prime должно быть доступно для чтения передатчиком в течение одной секунды с момента завершения передатчиком записи параметров сообщения AKE_No_Stored_km в приемник HDCP. Если получено сообщение AKE_Stored_km: Вычисляет 128-битный SHA-256()[127:0] Расшифровывает , используя AES с полученным в качестве входных данных и в качестве ключа в модуль AES для получения , как показано на рисунке ниже. Выполняет формирование ключа, для создания 256-битного . , где и — сгенерированные ключи при = 0 и = 1 соответственно. Вычисляет HMAC-SHA256(). Сообщение AKE_Send_H_prime должно быть доступно для чтения передатчиком в течение 200 мс с момента завершения передатчиком записи параметров сообщения AKE_Stored_km в приемник HDCP
При сбое дешифрования с помощью приемник HDCP не отправляет и просто позволяет истечь таймауту передатчика HDCP.
Проверка местоположения Передатчик HDCP инициирует проверку местоположения, отправляя 64-битный псевдослучайный нижестоящему приемнику.
Во время LC передатчик HDCP Инициирует проверку местоположения, записывая сообщение LC_Init, содержащее 64-битный псевдослучайный одноразовый номер , в приемник HDCP. Устанавливает watchdog таймер на 20 мс. Сообщение LC_Send_L_prime должно быть получено передатчиком в течение 20 мс с момента завершения передатчиком записи параметров сообщения LC_Init в приемник HDCP. Проверка местоположения завершается неудачно, если watchdog таймер истекает до того, как последний байт сообщения LC_Send_L_prime будет получен передатчиком. Затем передатчик прерывает протокол аутентификации.