Ключевой вектор выбора
Вектор выбора ключа (KSV) — это числовой идентификатор, связанный с набором ключей устройства , который распространяется Лицензиаром или назначенным им лицом Усыновителям и используется для поддержки аутентификации Лицензионных продуктов и отзыва в рамках HDCP системы защиты от копирования . KSV используется для генерации конфиденциальных ключей , особенно используемых в процессе ограниченной аутентификации HDCP. Ограниченная аутентификация — это метод AKE для устройств с ограниченными вычислительными ресурсами. Этот метод используется при копировании устройств любого типа (например, записывающих устройств DV или D-VHS ) и устройств, взаимодействующих с ними для аутентификации защищенного контента. Протокол ограниченной аутентификации использует асимметричное управление ключами и криптографию с общим ключом и полагается на использование общих секретов и хеш-функций для ответа на случайный запрос . [ 1 ]
Протокол ограниченной аутентификации
[ редактировать ]Цель ограниченной аутентификации состоит в том, чтобы устройство доказало, что оно хранит секрет, общий для других устройств. Одно устройство аутентифицирует другое, отправляя случайный запрос, ответ на который генерируется путем объединения общих секретов и нескольких хэшей. Формально вектор выбора ключа представляет собой 40-битный вектор, содержащий 20 единиц и 20 нулей, и используется для указания случайного запроса. Набор ключей устройства представляет собой набор из 40 56-битных значений и представляет собой набор общих секретов для этого протокола.
В процессе аутентификации обе стороны (передатчик и получатель) обмениваются своими KSV . Затем каждое устройство складывает (беззнаковое сложение по модулю ) собственные секретные ключи устройства согласно КСВ, полученному от другого устройства. Если определенный бит в KSV установлен в 1, то при добавлении используется соответствующий секретный ключ, в противном случае он игнорируется. Для каждого набора ключей создается специальный ключ, называемый KSV (вектор выбора ключа). Каждый KSV имеет ровно 20 бит, установленных в 0, и 20 бит, установленных в 1. Ключи и KSV генерируются таким образом, что во время этого процесса оба устройства в результате получают одно и то же 56-битное число. Это число позже используется в процессе шифрования .
Уникальность и отзыв KSV
[ редактировать ]Поскольку действительные ключи могут быть скомпрометированы (взломаны, например, с помощью аппаратного обратного проектирования), схема HDCP включает механизм отзыва ключей. Значения KSV уникальны для каждого набора ключей и, следовательно, для каждого устройства. Затем система HDCP может сравнить эти значения со списком отзыва, и аутентификация завершится неудачей, если передатчик или получатель появятся в списке отзыва. Обновления списка отзыва поступают с новыми носителями и автоматически интегрируются в список отзыва устройства. Это означает, что ущерб может быть ограничен, если набор ключей будет раскрыт или скопирован.
Этот процесс отзыва не влияет на другие устройства, даже если они имеют одну и ту же марку и модель. В этом смысле значения KSV аналогичны серийным номерам . В качестве примера работы этой системы: если два покупателя купят одну и ту же модель телевизора в один и тот же день в одном магазине, а первый покупатель взломал свой телевизор, ключ первого покупателя можно было бы отозвать, не затрагивая возможности телевизор другого клиента для воспроизведения контента.
Атаки на ограниченную аутентификацию
[ редактировать ]Если злоумышленник сможет найти 40 линейно независимых векторов ( ) ключи...( )ключи (т.е. векторы, сгенерированные путем сложения набора ключей устройства на основе KSV), то они могут полностью разрушить систему HDCP для всех устройств, использующих данный набор ключей устройства. На этом этапе они могут извлечь массив секретных ключей для любого количества KSV, что позволяет им получить доступ к общим секретам, используемым в протоколе аутентификации HDCP. создаются линейно Поскольку ключи, генерируемые из KSV, в данной системе (т.е. получение ключа из KSV можно рассматривать как умножение матрицы), кто-то может определить матрицу набора ключей устройства из любых 40-50 различных систем: .... и связанный с ним KSV (это общедоступная информация из протокола).
В других случаях, когда извлеченные ключи не являются линейно независимыми, все равно можно создать новый XKey для нового Xksv, находящегося в пределах диапазона ( )KSV (с использованием линейных комбинаций), для которых были найдены закрытые ключи. Однако не будет никаких гарантий того, что они удовлетворят требуемому имуществу, которое должно быть у KSV; 20 единиц и 20 нулей. [ 2 ]
Настройка уравнений
[ редактировать ]Предположим, что их 40 ( ) KSV, которые линейно независимы (и называют Xkeys матрицей ключей в наборе ключей устройства), это дает набор из n линейных уравнений с 40 неизвестными –
[Xkeys] * (A1)ksv = = [(A1)keys] * Xksv[Xkeys] * (A2)ksv = = [(A2)keys] * Xksv...[Xkeys] * (A40)ksv = = [ (A40)клавиши] * Xksv
Имея подтверждение на всех KSV и принимая векторы секретного ключа ( )ключи известны, описанный выше алгоритм можно использовать для поиска секретных ключей для создания нового производного ключа из произвольного нового KSV. Если пространство, охватываемое ( ) KSV не охватывают все 40-мерное пространство, это может быть нормально, потому что KSV либо не были разработаны так, чтобы не охватывать пространство , либо требуется лишь небольшое количество дополнительных ключей, чтобы найти набор векторов, охватывающих все пространство. Каждое дополнительное устройство имеет низкую вероятность линейной зависимости от существующего набора. (примерно 1/2^[40-мерность натянутого пространства]. Этот анализ вероятностей линейной зависимости аналогичен анализу алгоритма Саймона ). [ 2 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Защита цифрового контента, ООО. (8 июля 2009 г.). «Система защиты широкополосного цифрового контента» (PDF) .
- ^ Jump up to: а б Ирвин, Кейт (2 августа 2001 г.). «Четыре простых атаки на HDCP» .