С появлением новых технологий на новый уровень выходит и борьба с пиратством.
Эпоха телевидения высокой четкости ставит перед производителями фильмов и
техники новые задачи, с решением которых всем нам придется рано или поздно столкнутся.
Однако, как заведено по традиции, одни разрабатывают средства защиты контента, а
другие их ломают. Сегодня в нашей статье мы погорим о системе защиты видео HDMI
(далеко не новой, но только сейчас выходящей в широкий "прокат").
Не так давно в продажу в США поступило устройство под названием
MovieBeam. Оно позволяет получать на срок до 24 часов
самые последние фильмы, пока по эфирным каналам, а в перспективе - через
Интернет (стоимость проката составляет от 1 до 5 долларов). К HDTV устройство подключается через
HDMI (High Definition
Multimedia Interface) вход, что, видимо,
станет обычной практикой для всех устройств нового поколения. Официальное
объяснение использованию HDMI - безопасность, в
частности для защиты контента от несанкционированного копирования используется
High-bandwidth Digital Content Protection или HDCP. Главная часть всей защитной
процедуры - "рукопожатие", которым обмениваются устройства через
HDMI кабель. Такое приветствие преследует две цели -
во-первых убедиться, что на другом конце стоит авторизованное устройство,
во-вторых - обменяться секретными ключами для последующей совместной работы. В
дальнейшем сигнал, передаваемый между устройствами, будет именно ими
шифроваться, так что даже в случае перехвата использовать его не получится.
Но не так страшен черт как его малюют, еще в 2001 году был
произведен подробный
анализ протокола и обнаружен ряд уязвимостей, которые позволяют свести на
нет все усилия деятелей Голливуда по защите своей продукции. Рассмотрим
подробнее суть происходящего. Представим, что вы являетесь счастливым
обладателем HD телевизора, соответствующего
DVD плеера с HDMI выходом и
пытаетесь проиграть свежекупленный диск. Прежде чем отдать сигнал телевизору
плеер начнет устанавливать HDMI связь. В соответствии
с алгоритмом, HDCP устройства несут в себе две вещи:
секретный вектор и дополнительные правила. Секретный вектор - последовательность
из 40 чисел, которые устройство не открывает никому. Дополнительные
правила секретом не являются и они определяют то, каким образом обрабатывается
секретный вектор. И вектор и правила выдаются центром авторизации ($16.000
за 10.000 только для производителей, доказавших свою надежность).
Рассмотрим более подробно процесс установления связи с математической точки
зрения (в данном случае для упрощения ситуации мы будет оперировать секретным
вектором из 4 чисел, как уже было сказано в реальном использовании их 40). Допустим таких пользователей:
секретный вектор | дополнительные правила | |
A | (26, 19, 12, 7) | [1]+[2] |
B | (13, 13, 22, 5) | [2]+[4] |
C | (22, 16, 5, 19) | [1]+[3] |
D | (10, 21, 11, ,14) | [2]+[3] |
Представим, что устройства А и В захотели установить связь. первым делом они
посылают друг другу свои дополнительные правила. А применяет правила к своему
вектору, в данном случае это [2]+[4], что означает,
что устройство А должно взять 2 и 4 элементы своего вектора и сложить их вместе.
Не трудно подсчитать, что в данном случае мы складываем 19 и 7 и получаем 26.
Таким же манером и устройство Б применяет правила, полученные от А и на выходе
получает 26 (опять же в примере мы оперируем гораздо меньшими величинами, в
реальности получаются 17-разрядные цифры).
Из приведенных сложных вычислений не трудно сделать два вывода: устройства А
и Б единственные, кто знает результат, он никуда не передается; оба устройства
получили одинаковый результат - 26. Очевидно, что это не случайность, так и
задумано в теории - центр авторизации использует специальный математический
алгоритм для генерирования секретных векторов и правил и результат всегда будет
одинаков. Итак, мы получили на выходе ситуацию в которой оба устройства получили
некое значение - секретный ключ - который знают только они, этот ключ и будет
использоваться для шифрования сигнала. Звучит хорошо, но что если одно из
устройств будет скомпрометировано? Вся система защиты моментально перестанет
выполнять свои функции... Давайте разберем пример. Допустим устройства А,
B, C и D взломаны и хотят
установить секретный вектор устройства Е. Его правила [1]+[4],
а вектор естественно неизвестен - (х1, х2, х3, х4). Пользователь с А начинает
установку связи, отправляет свои правила и получает чужие, применяет их к своему
вектору и на выходе имеет 26+7=33. Результаты должны быть всегда равны,
следовательно:
х1 + х2 = 33
Пользователи с устройств В, С и D делают то же
самое и получают:
x2 + x4 = 18
x1 + x3 = 41
x2 + x3 = 24
Ясно, что у нас 4 уравнения для 4 неизвестных, сложные вычисления позволят
нам установить истину:
х1=25
х2=8
х3=16
х4=10
Теперь мы знаем секретный вектор устройства Е и можем использовать его по
своему усмотрению. В общем говоря, Е даже может не быть устройством, а просто
предполагаемым вектором, следовательно мы сможем генерировать их по своему
усмотрению, так же как и центр авторизации. В реальной жизни вектор состоит из
40 чисел, так что нам потребуется не 4, а 40 устройств с известными векторами.
Таким образом весь вопрос взлома HDCP - лишь вопрос
времени - или отсутствия боязни DMCA... Вообще,
HDCP признается многими как одна из худших систем
защиты и почему именно она выбрана для нового поколения устройств не совсем
понятно, впрочем выбор такой уязвимой защиты даже и к лучшему :).