мародерство КРИС КАСПЕРСКИ АКА МЫЩЪХ Спецвыпуск: Хакер, номер #072, стр. 072-068-4 - ЗАЩИТА ОТ АНАЛОГОВОГО КОПИРОВАНИЯ (ANALOG COPY PROTECTION ИЛИ ACP). Если видео-карта поддерживает хотя бы один из этих механизмов, приложения могут задействовать протокол COPP для установки требуемого уровня защиты. Сам протокол COPP определяет набор соглашений, обеспечивающих установку безопасного (secure) коммуникационного канала с драйвером видео-карты, что является ключевым элементом общей стратегии взлома. Если распотрошить COPP, останется только модифицировать драйвер! Протокол COPP использует коды аутентификационных сообщений (Message Authentication Codes или MACs) для проверки целостности COPP-команд, циркулирующих между приложением и видео-драйвером. Приложения взаимодействуют с COPP посредством вызова метода IAMCertifiedOutputProtection, представляющего собой интерфейс DirectShow Video Mixing Renderer filter (VMR-7 или VMR-9). Сам по себе протокол COPP не определяет никаких политик цифровых прав, применяемых к цифровому медиа-контенту. Так же COPP не содержит в себе никаких защитных механизмов, контролирующих выход цифрового медиа-потока. Протокол COPP всего лишь предоставляет собой своеобразный «контейнер», обслуживающий подключенные к нему защиты, обеспеченные видео-картой. И, в частности, может вывести список поддерживаемых ею методов — медиа-плеер сам решает, достаточно ли этих защит для воспроизведения защищенного контента или нет. Очевидно, что, слегка доработав COPP напильником, можно заставить его возвращать подложную информацию, позволяющую проигрывать защищенный медиа-контент на незащищенном оборудовании, допускающем его грабеж. Прежде, чем начать взаимодействовать с COPP'ом, приложение должно последовательно выполнить следующие шаги: - ПОЛУЧИТЬ ЦЕПОЧКУ СЕРТИФИКАТОВ ДРАЙВЕРА (А ТО ВДРУГ ПОПАДЕТСЯ «ЛЕВЫЙ» ДРАЙВЕР). - ПОСТРОИТЬ DIRECTSHOW PLAYBACK GRAPH, ВОСПРОИЗВОДЯЩИЙ (TO RENDER) ВИДЕО-ПОТОК ЧЕРЕЗ VIDEO MIXING RENDERER FILTER (VMR). - ЗАПРОСИТЬ VMR ДЛЯ IAMCERTIFIEDOUTPUTPROTECTION ИНТЕРФЕЙСА. - ВЫЗЫВАТЬ IAMCERTIFIEDOUTPUTPROTECTION::KEYEXCHANGE, ВОЗВРАЩАЮЩИЙ 128-БИТНОЕ СЛУЧАЙНОЕ ЧИСЛО, СГЕНЕРИРОВАННОЕ ВИДЕО-ДРАЙВЕРОМ ВМЕСТЕ С ЦЕПОЧКОЙ СЕРТИФИКАТОВ, СОДЕРЖАЩЕЙ 2048-БИТНЫЙ ПУБЛИЧНЫЙ RSA-КЛЮЧ, КОТОРЫМ БЫЛ ПОДПИСАН ДРАЙВЕР. - ПРОВЕРИТЬ ЦЕПОЧКУ СЕРТИФИКАТОВ И, ЕСЛИ ЦЕПОЧКА СЕРТИФИКАТОВ НЕВЕРНА, ПРЕКРАТИТЬ РАБОТУ И УЙТИ НА ПОКОЙ. - ПРОВЕРИТЬ СПИСОК АННУЛИРОВАННЫХ СЕРТИФИКАТОВ (CERTIFICATE REVOCATION LIST ИЛИ CRL) И, ЕСЛИ ХОТЯ БЫ ОДИН ИЗ СЕРТИФИКАТОВ УЖЕ УСПЕЛ «ЗАСВЕТИТЬСЯ» В ЭТОМ ЛИСТЕ, ПРЕКРАТИТЬ РАБОТУ. - ИЗВЛЕЧЬ ИЗ ЦЕПОЧКИ СЕРТИФИКАТОВ ПУБЛИЧНЫЙ RSA-КЛЮЧ. - ИНИЦИАЛИЗИРОВАТЬ COPP-СЕССИЮ. - СГЕНЕРИРОВАТЬ 128-БИТНЫЙ AES СЕССИОННЫЙ КЛЮЧ, КОТОРЫЙ БУДЕТ ИСПОЛЬЗОВАН ДЛЯ ПОДПИСИ ДАННЫХ И ПРОВЕРКИ ТОГО, ЧТО ПОДПИСАННЫЕ ДАННЫЕ НЕ БЫЛИ МОДИФИЦИРОВАНЫ. - СГЕНЕРИРОВАТЬ ДВА КРИПТОГРАФИЧЕСКИХ СЕКРЕТНЫХ 32-БИТНЫХ СЛУЧАЙНЫХ ЧИСЛА, ПЕРВОЕ ИЗ КОТОРЫХ ПРЕДСТАВЛЯЕТ СОБОЙ НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ СТАТУСА, А ВТОРОЕ — НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ КОМАНД (КАЖДЫЙ РАЗ, КОГДА ПРИЛОЖЕНИЕ ПОСЫЛАЕТ КОМАНДУ ИЛИ ЗАПРОС СТАТУСА, СООТВЕТСТВУЮЩИЕ НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ УВЕЛИЧИВАЮТСЯ НА ЕДИНИЦУ И ВОЗВРАЩАЮТСЯ ВМЕСТЕ С ЗАПРОСОМ НАЗАД ПРИЛОЖЕНИЮ). |