Коллектив Авторов - Цифровой журнал «Компьютерра» № 35
Поэтому нам теперь остается лишь почетче разобраться, в чем же именно заключается суть произошедшей компрометации и чего интересного в связи с этим можно ожидать в ближайшем будущем.
Система HDCP, разработанная корпорацией Intel для защиты контента выского разрешения от нелегального копирования, (или High-bandwidth Digital Content Protection) шифрует уже распакованные и полностью готовые к воспроизведению биты видео- и аудиоконтента высокой четкости при их передаче через HDMI, DVI и прочие цифровые интерфейсы вроде DisplayPort, UDI или GVIF. Иначе говоря, именно HDCP используется для защиты цифровых HD-сигналов «в проводах». Например, при передаче изображения и звука по кабелям, соединяющим Blu-Ray-плеер или ресивер спутникового HDTV с HD-телевизором.
Поскольку опубликованный ныне в интернете «мастер-ключ» — представляющий собой матрицу размером 40 × 40 ячеек, каждая из которых содержит 56-битное число — действительно оказался подлинным, это означает, фактически, что система HDCP более не предоставляет передаваемому в кабелях контенту никакой защиты от копирования. Потому что на основе данного мастер-ключа всякий грамотный программист теперь может сам (в теории, по крайней мере) сгенерировать сколько угодно полностью легитимных и «неотзываемых» HDCP-ключей для беспрепятственного доступа к защищенному системой содержимому.
С точки зрения функциональности, система HDCP, как это было задумано, должна решать три главных задачи: (1) она шифрует контент так, чтобы его нельзя было брать от кабеля; (2) она позволяет каждому оконечному устройству удостовериться, что другая оконечная точка связи — это тоже HDCP-лицензированное устройство; и (3) она позволяет «отзывать» уникальные ключи прежде легитимных, но впоследствии скомпрометированных пиратами устройств, создавая «черные списки» заблокированных ключей.
С точки зрения собственно защиты информации, принципиально важным этапом в работе системы HDCP является процедура начального «рукопожатия», в ходе которой формируется общий секретный ключ, который затем используется для шифрования коммуникаций между двумя устройствами. В то же самое время данная процедура позволяет каждому устройству удостовериться, что другое устройство является лицензированным для обработки HD-контента.
Всякий раз, когда речь заходит о криптотехнологии, исходная позиция для понимания конструкции системы — это разобраться с работой секретных ключей: сколько именно таких ключей предусмотрено, кому конкретно они известны и как именно они применяются.
В HDCP каждое устройство имеет уникальную пару ключей: один открытый ключ, который не является тайной; и один секретный ключ, который положено знать исключительно только этому устройству. Кроме того, система в целом имеет один-единственный мастер-ключ, который предполагается известным исключительно Центральному органу, управляющему всей системой HDCP. А также имеется особый алгоритм генерации ключей (который по давней традиции удобно для краткости называть Keygen), используемый Центром для формирования секретных ключей устройств. Этот генератор ключей на основе секретного мастер-ключа Центра и открытого ключа устройства неким хитрым способом формирует уникальный секретный ключ, который соответствует исключительно данному открытому ключу. Поскольку генератор ключа использует секретный мастер-ключ, заниматься созданием ключевых пар может только центральный орган власти.
Каждое HDCP-лицензированное устройство (например, Blu-Ray-плеер или HD-телевизор) имеет зашитые в него открытый ключ и соответствующий ему секретный ключ. Чтобы получить эти ключи для своих устройств, их изготовителям нужно содействие центрального органа власти HDCP, потому что лишь там занимаются генерацией и раздачей легитимных ключевых пар.
Теперь предположим, что два устройства, которые для простоты называют А и Б, собираются выполнить процедуру «рукопожатия». Для этого А посылает свой открытый ключ в Б, а Б, соответственно, свой открытый ключ в А. После чего каждая из сторон по заранее известному правилу комбинирует свой собственный секретный ключ с открытым ключом партнера, чтобы в результате получить общий секретный ключ для шифрования сеанса связи. Этот сеансовый ключ предполагается секретным — то есть известным исключительно сторонам А и Б — потому что для порождения общего ключа обязательно требуется знать либо секретный ключ А, либо секретный ключ Б.
Надо подчеркнуть, что для получения этого общего секрета А и Б фактически выполняют разные вычисления. Ведь А комбинирует свой секретный ключ с открытым ключом Б, а Б, наоборот, комбинирует свой секрет с открытой информацией от А. Если «случайно повстречавшиеся» А и Б производят существенно разные вычисления, то возникает естественный вопрос: каким образом в итоге у них получится один и тот же результат? Чтобы ответить на этот вопрос с исчерпывающей полнотой, понадобилось бы без нужды углубляться в дебри алгебраических уравнений. Здесь же вполне достаточно ограничится кратким ответом: потому что таким образом устроены математические свойства алгоритма Keygen.
Принципиально важно, что от этой особенности критически зависит безопасность всей криптосистемы: если ваше устройство имеет секретный ключ, изготовленный в процессе работы Keygen, тогда «рукопожатие HDCP» для вас сработает — в том смысле, что в итоге вычислений это устройство получит тот же самый общий ключ, что и вторая легитимная сторона на другом конце кабеля. Но если же вы пытались применить какой-нибудь левый или случайный «секретный ключ», который сгенерировали сами, тогда рукопожатие не сработает: вы придете к совершенно иному сеансовому ключу, нежели у второй стороны, поэтому устройства не смогут связаться друг с другом.
Если эти нюансы ясны, вполне можно понять и последствия того, что ныне опубликован секретный мастер-ключ HDCP. Теперь абсолютно любой, кто знает мастер-ключ, может сам выполнять сакральную процедуру Keygen. А это, в свою очередь, эффективно удаляет все важнейшие функции защиты, которые должна обеспечивать HDCP.
От шифрования HDCP нет никакого проку, поскольку перехватчик, который видит начальное рукопожатие, может сам применить Keygen для вычисления секретных ключей связывающихся сторон. А это, ясное дело, позволяет перехватчику легко вычислить и сеансовый ключ шифрования, защищающего передачу контента.
Аналогично, HDCP больше не может гарантировать, что участвующие в соединении устройства являются лицензированными, потому что теперь любой изготовитель нелицензированных устройств может использовать Keygen для порождения математически корректных пар из открытого и секретного ключей. По этой же причине становится лишенной смысла и «хитроумная» процедура с блокированием скомпрометированных ключей — при условии известного мастер-ключа все прочие секретные ключи устройств оказываются скомпрометированы автоматически.
Короче говоря, во всем, что касается защиты информации, от HDCP ныне нет абсолютно никакой пользы. А общее устройство системы таково, что всерьез что-либо поправить здесь можно лишь самым радикальным способом — типа полного отказа от уже внедренной HDCP и перехода на нечто в корне иное. Пока что, судя по начальной реакции в индустрии, никто к этому не призывает.
Суровая правда жизни заключается в том, что и без взлома HDCP у пиратов никогда не было особых проблем с копированием контента высокого разрешения. Собственная система AACS, применяемая для защиты фильмов на дисках Blu-ray, а также и более продвинутые дополнительные механизмы защиты Blu-ray BD+ вскрыты умельцами давным-давно. Соответственно, сжатый контент с этих дисков регулярно копируется и стабильно появляется в файлообменных структурах интернета. Также не секрет, что и на рынке HDTV имеются разного рода «неофициальные решения», позволяющие несертифицированным ресиверам принимать и декодировать передачи платного кабельного и спутникового HD-телевидения.
Все упомянутые вещи происходят с копированием скомпрессированного, куда более экономно представленного контента. Что же касается потоков в HDCP, то здесь воспроизведение контента высокой четкости по умолчанию подразумевает обработку очень высоких объемов информации. На защищенных системой HDCP каналах доставки, вроде кабелей HDMI, соединяющих плеер с дисплеем, для видеосигнала с качеством 1080p24 (24 полных кадра в секунду при разрешении 1920х1080 пикселей плюс шесть трактов аудио) скорость передачи достигает примерно 2,23 гигабита в секунду. Иначе говоря, записывать видеофильм с канала такой ширины — для программных решений дело не только чересчур хлопотное, но и требующее огромных, терабайтных объемов памяти. То есть для людей, занимающихся нелегальным копированием, это, мягко говоря, не очень интересная возможность.
С другой стороны, открываются чрезвычайно заманчивые возможности для появления других, аппаратных решений — конечно же, нелегальных, но сильно облегчающих жизнь конечным пользователям, страдающим от нестыкующихся HD-устройств и капризов HDCP. Где-нибудь на индустриальных просторах Китая теперь легко могут появиться дешевые чипы и устройства-декодеры, выполняющие роль переходников — из зашифрованного HDMI-сигнала, к примеру, переводящие фильм в обычный и понятный всем цифровым дисплеям открытый DVI. Подобного рода коробочки-переходники примерно в 2005-2006 годах очень неплохо продавались в Западной Европе, когда по недосмотру надзирающих властей партия лицензионных чипов-декодеров HDMI была продана не совсем тому, «кому надо». Теперь же подобная техника, в принципе, может появляться и без всякой лицензии.