Халявы много не бывает или защищаем аудиовизуальный контент
Каждый из нас в своё время постигал народную мудрость посредством сказок, которые перед сном рассказывали мама с папой, бабушка с дедушкой и прочие родственные души. Творчество в большинстве своём разнообразием не отличалось, но суть была одна: волшебник в голубом вертолёте из песни крокодила Гены на белом свете однозначно существует. Просто к одним он прилетает, а к другим – нет.
Время идёт, мы взрослеем и постепенно осознаём, что за всё в этой жизни надо платить. Но впитанная в детстве на уровне рефлексов неискоренимая любовь к халяве всё время вносит коррективы в жизненный процесс. Исключительно благодаря ей и появились на свет системы защиты контента, о которых мы сегодня поговорим.
Киноплёнка
Киноплёнка – это носитель, на котором изображение и оптическая аналоговая фонограмма не зашифрованы. Цифровой звук Dolby Digital снять не проблема – ридеры и декодеры продают многие фирмы-инсталляторы. При наличии кинокопировального аппарата контактной печати содержимое легко копируется, чем воспользовались в СССР уже сразу после окончания Великой Отечественной, когда кинопрокат стал испытывать большой дефицит свежей кинопродукции. Без каких-либо покупок прав «трофейные» ленты (в том числе американские) пошли в массовый тираж. Работники Госфильмофонда вспоминают, что практически каждую ночь им привозили для копирования фильмы (в т.ч. и фестивальные), которые попадали в страну зачастую в единственной копии. Что характерно — никто угрызений совести при этом не испытывал.
Интерес частных лиц к киноплёнке как к источнику контента активизировался с развалом Советского Союза. Это были видеопираты, которые получили возможность изготовления тиражных оригиналов популярных кинофильмов, несмотря на порой жуткое состояние исходника. За копеечную мзду работникам местных отделений кинопроката шустрые граждане получали вожделенные плёнки, которые перегоняли на Betacam на местной телестудии (каждый уважающий себя областной телецентр имел действующую аппаратную телекино). Получить представление о качестве получаемого при этом материала сегодня можно на популярном видеохостинге Youtube – достаточно набрать в строке поиска «Банзай», «Укол зонтиком» или «Он начинает сердиться».
Следующими были кинопираты, которые воспользовались уязвимостью в тогдашней системе дистрибуции: на кинорынках студии сначала продавали права на демонстрацию, а только потом заказывали необходимый тираж на кинокопировальных фабриках. Шустрые граждане подкупали одного-двух копировщиков и те штамповали необходимое количество копий сверх тиража.
Очередная волна интереса к плёночному носителю поднялась с началом практики общемировых кинотеатральных премьер в России и Украине, когда блокбастеры категории «А» демонстрируют одновременно в Киеве и в Нью-Йорке. Картины начали переснимать видеокамерами с экрана и копировать методом телекино. С телекиношниками справились относительно быстро – выяснилось, что основная масса пиратки копировалась в Госфильмофонде России, в который прокатчики сдавали обязательный экземпляр ещё до начала проката (в противном случае фильму просто не выдавали прокатное удостоверение). С «кам-рипперами» воюют до сих пор.
Основной метод защиты — нанесение на плёнку при копировании специальных меток. Каждая копия имеет индивидуальный номер и индивидуальный рисунок метки (месторасположение меток на копии — в случайном порядке). При появлении «экранки» в Интернете киностудии по меткам определяют, в каком кинотеатре фильм был переснят с экрана. Защита обходится программной фильтрацией исходного материала, при которой вычисляются кадры с метками и либо удаляются сами кадры, либо маскируются метки.
Магнитная лента
Старый добрый VHS (мертворожденный D-VHS не в счёт), старый добрый Macrovision и его клоны. Аппаратная модификация рекордера, записывающего защищённую копию. Алгоритм основан на инерционности схем обработки видеосигнала в телевизоре и безинерционности их в видеомагнитофоне.
Практически было реализовано два уровня – AGC и colorstripe. VHS защищал AGC: генерация возмущающих двуполярных импульсов во временных интервалах гашения обратного хода луча. Телевизор их не замечает, а пишущий видеомагнитофон полностью теряет синхронизацию – в сквозном режиме картинка циклично меняет яркость, на записи стабильные изображение и звук отсутствуют в принципе. Защита обходится с помощью профессиональных корректоров временных искажений (time-base corrector).
Оптический видеодиск
Laserdisc – не защищался, а вот DVD имеет следующие виды защиты: региональный код, Macrovision, CSS, CGMS, «битые секторы». Рассмотрим каждый из них более подробно:
- Региональный код. Идентификатор в цифровом потоке диска. Всего шесть регионов. Плеер должен принимать только диски, код которых соответствует его региональному коду. Защита обходится программным путём;
- Macrovision. Здесь применяются оба уровня защиты. При наличии идентификатора запрета в цифровом потоке диска в работу включается микросхема в выходном тракте плеера и на аналоговый выход видеосигнал приходит уже модифицированный. Первый уровень Macrovision описан выше. Принцип действия второго (colorstripe) уровня идентичен – в синхросмеси генерируется серия ложных цветовых вспышек, сбивающих с толку автоматику пишущего устройства. Изначальная уязвимость – не работает при снятии сигнала с компонентного видеовыхода. Защита аналогично обходится с помощью профессиональных корректоров временных искажений (time-base corrector);
- CSS (content scrambling system). Три ключа кодируют друг друга: второй может быть получен только с помощью первого, а третий – только с помощью второго. Содержимое диска может быть расшифровано только с помощью третьего ключа. Защита обходится программным путём;
- CGMS (Copy Generation Management System) – разрешает либо запрещает процесс копирования. Существует в двух версиях: CGMS/A для аналоговых видеовыходов и CGMS/D – для цифровых (fireware). Особой пользы от этой защиты не дождались, поскольку доступ к контенту на диске был получен посредством взлома СSS;
- «Битые секторы». Метод очень популярен среди частных видеомейкеров. Суть в следующем: почти весь первый VOB-файл фильма на диске – пустышка и только в самом конце начинается полезное видео, стартовый сектор которого задаётся в управляющих IFO-файлах. После окончания процесса записи болванки, в зоне записи файла-пустышки острым инструментом наносится одна или несколько глубоких царапин, которые при попытке копирования содержимого диска проявляются в виде повреждённых секторов. Защита обходится программным путём.
Blu-ray диск
Для защиты Blu-ray дисков используются следующие методы защиты:
- AACS (Advanced Access Content System) – диск шифруется с помощью алгоритма AES и снабжается идентификатором, состоящим из невидимого пользователю ключа и номера партии диска, с помощью которого плеер получает доступ к контенту. Защита обходится программным путём;
- BD+ — «надстройка» над AACS. Представляет собой виртуальную машину, «вшитую» в аппаратное обеспечение плеера и запускающую исполняемый код при запуске диска. Код проверяет несанкционированные изменения плеера, изменение «вшитых» ключей и прочие необходимые манипуляции. Защита обходится программным путём;
- HDCP (High-bandwidth Digital Content Protection) — предназначена для предотвращения незаконного копирования цифрового видеопотока высокого разрешения через интерфейсы ввода/вывода (DVI, HDMI и прочие). Состоит из трёх компонентов: протокол аутентификации, шифрование данных и защита от «подслушивания». Каждое HDCP-устройство содержит уникальный набор из сорока 56-битных секретных ключей DPK (device private keys) и соответствующий 40-битный идентификатор KSV (key selection vector). Во время обмена информацией устройства создают общий массив, используемый в качестве симметричного ключа для декриптования HDCP контента, предназначенного устройству, прошедшему аутентификацию. Защита обходится программным путём.
Аналоговые системы доставки контента
Разработчики пошли по двум направлениям: кодирование сигналов синхронизации и кодирование сигналов изображения (иногда и звука).
Кодирование сигналов синхронизации:
- Вариант 1 – занижаются уровни синхросмеси (при этом временные характеристики не изменяются).
- Вариант 2 — изменяется длительность строк по определённому алгоритму.
- Вариант 3 — из видеосигнала полностью удаляются синхроимпульсы и изменяются границы строчного гасящего интервала по случайному закону. Все три варианта обходятся программно-аппаратным путём;
Кодирование изображения (звука):
- Nagra Syster – кадр изображения делится на блоки по 32 строки, внутри каждого блока строки переставляются в случайном порядке. По звуку применяется инверсия спектра частотой 12800 Гц.
- Videocrypt – строка изображения разрезается в случайном месте, после чего левая и правая стороны меняются местами. Предусмотрено 256 возможных мест разрезания строки, алгоритм меняется каждые 2.5 секунды, служебная информация для декодера передаётся так же, как и телетекст.
- Eurocrypt – принцип работы аналогичен Videocrypt, но информация для восстановления изображения передаётся в кодированном виде.
Все три системы обходятся программно-аппаратным путём.
Цифровые системы доставки контента
Здесь тоже два базовых направления: системы, которые используют Common Scrambling Algorithm (CSA) и которые его не используют.
Вариант 1. CSA, смарт-карты, cam-модули и common-интерфейсы.
CSA разработан Европейским институтом телекоммуникационных стандартов. Алгоритм был полностью засекречен до 2002 года и реализовывался исключительно аппаратно. 2002 год ознаменовался выходом в свет программы FreeDec – в ней CSA реализовали программно. Анализ исполняемых файлов позволил получить дизассемблированный код алгоритма и начать его реверсивный анализ.
Длина ключа CSA составляет 64 бита (фактически 48 бит, т.к. два байта являются контрольными суммами). Ещё 16 бит можно определить по таблицам памяти. Таким образом, прямой перебор нужно применять только к 32 битам из 64, а вторую половину ключа вычислять на основе первой. После того, как были выявлены слабости алгоритма CSA, стало принципиально возможным получить доступ к любым данным, зашифрованным с его использованием. А с учётом возросших процессорных скоростей стало реальным подбирать ключ декодирования за 30-60 секунд.
Вещатели это смекнули и ввели смену ключей каждые 10-15 секунд, чтобы ломать их каждый раз методом полного перебора вариантов не имело смысла. Потребители тоже смекнули и «родили» кардшаринг – перехват протокола «вопрос-ответ» между cam-модулем и официальной картой и коммерческая раздача через интернет «правильных ответов» за материальное вознаграждение.
Тут-то вещатели и оказались в ловушке, поскольку принятый стандарт не даёт возможности играть с протоколом. «Привязка» конкретной смарт-карты к конкретному ресиверу тоже себя не оправдала – с помощью распределённых вычислений box keys вычисляются менее чем за месяц. Варианты решения проблемы, конечно же, есть: ограничение количества «ответов» карты в единицу времени, блокировка карты при превышении разрешенного числа запросов, сокращение временного интервала между запросом и ответом до 1-3 секунд либо переход на бескарточные системы адресного кодирования. Так что точка в этом увлекательном противостоянии ещё не поставлена.
Вариант 2. Безкарточное адресное кодирование.
Всё очень просто. Каждый ресивер имеет уникальный идентификатор, который спрятан глубоко внутри и детектируется либо по ассоциации с серийным номером, либо по определённой комбинации кнопок пульта управления. Система кодирования работает по уникальному алгоритму, который можно нигде не стандартизировать, поскольку частная собственность. Длина ключа произвольная (1024 бита и выше). Интервал смены ключей также произвольный. Смарт-карт и cam-модулей нет. Может показаться, что именно эта реализация защиты наиболее уязвима. Но не торопитесь с выводами, всё совсем не так, как кажется.
Во-первых, алгоритм дешифрации реализован не аппаратно, а программно, и вещателю не составляет труда удалённо обновлять прошивку ресивера для смены алгоритма. Во-вторых, никто не знает, в каком программном потоке и в каком виде прибегают вожделенные «ключики». В-третьих, попытка клонирования ресиверов при помощи копирования содержимого ПЗУ оригинального аппарата в ПЗУ клона может обернуться разочарованием – уникальный идентификатор находится не здесь.
Именно этими тремя пунктами и объясняется успех бескарточных адресных систем кодирования на рынке дистрибуции видеоконтента. Программно-аппаратный обход всех уровней их защиты возможен, но влечёт за собой немалые финансовые вливания, которые вряд ли себя окупят. Впрочем, кто знает…
Цифровой кинематограф
DCP (digital cinema package) – пакет цифровых файлов (изображение, звук, сопроводительные данные), используемый в системе цифрового кинематографа для демонстрации в кинотеатрах. Цифровой аналог киноплёнки.
Базовый шифр системы – АES. Используется технология DRM (digital rights management – управление цифровыми правами) с помощью ключевого файла KDM (key delivery message).
В проекционных системах первого поколения медиаблок (модуль декодирования информации DCP) находится в киносервере. KDM, помимо базового ключа к DCP (Show Movie 128-bit AES key), содержит идентификаторы сервера (Cinema Server RSA 2048 Public Key) и медиаблока (Enigma RSA 2048 Public Key), и если идентификаторы не совпадают с реальными – контент не декодируется. Декодированный контент (с наложенными «водяными знаками», включаемыми тем же KDM) по аппаратно-шифруемому интерфейсу Cinelink2 (первая версия называлась просто Cinelink) передаётся на проектор. В проекционных системах второго поколения медиаблок может быть установлен внутрь корпуса проектора (шифрованный контент без изменений передаётся с сервера по ethernet).
Декодированный сигнал можно извлечь либо из точки входа его в Cinelink, либо после дешифрования в проекторе (см. рисунок — жёлтая микросхема вверху справа). Но на изображении уже «водяные знаки», и особого смысла в этом нет. Гораздо интереснее в этом плане декодировать DCP программным путём, но для этого нужно иметь рабочий ключ и знать hardware ID сервера, медиаблока и проектора. А для этого необходим доступ внутрь оборудования, что категорически запрещено, так как в противном случае система блокируется.
Интернет
Практических реализаций защиты контента великое множество, но суть одна – digital rights management: программа сканирует компьютер пользователя, формирует его уникальный ID, передаёт его на сервер продавца контента, где этим ключом шифруется видеопоток, доставляемый сессией, которая стартует также с уникальным ID. Помимо этого, ведётся постоянный контроль целостности канала обмена данными между компьютером и сервером, и в случае каких-либо несанкционированных вмешательств сессия принудительно обрывается. Если для кодирования видеопотока используется один и тот же алгоритм, то доступ к контенту можно получить программным путём.
В последнее время становится популярной организация стримминга видеопотоков при помощи технологии Flash: html-код запускает swf-файл, в котором движок на action script обрабатывает завуалированный веб-адрес сервера трансляции и запускает видео в окне обозревателя. Более защищённый вариант – видеопоток с сервера вещается в зашифрованном виде и декодируется на компьютере пользователя той же самой флешкой (главный недостаток метода – повышенная нагрузка на процессор компьютера). Для затруднения реверсивного анализа алгоритма исполняемый код флешки приводится в нечитабельное состояние – обфусцируется. Несмотря на это, защита также обходится программным путём.
Важное замечание: даже при санкционированном просмотре можно произвести захват изображения прямо из буфера видеопамяти, а звука – с программного микшера звуковой карты. Существует большое количество готового программного обеспечения для этих целей.
Подытожим: на данный момент не существует идеальной системы защиты аудиовизуального контента, которую нельзя взломать. Всё упирается в экономическую целесообразность: если существуют реальные варианты компенсации затрат на взлом и извлечения из этого прибыли – узкие места обязательно будут найдены. Таково «се ля ви»!