WikiDer > BD +
эта статья требует внимания специалиста по Blu-ray или криптографии.Январь 2009 г.) ( |
BD + является составной частью Blu-ray диск Управление цифровыми правами система. Он был разработан Криптографические исследования Inc. и основан на их Самозащищающийся цифровой контент концепция.[1] Его цель состояла в том, чтобы предотвратить несанкционированное копирование Блю рей диски и воспроизведение носителей Blu-ray с использованием неавторизованных устройств.
Хотя BD + не остановил поток «взломанного» контента высокой четкости, он заставил тех, кто хочет копировать фильмы Blu-ray, реинвестировать ресурсы для взлома каждой новой версии кода безопасности.[2]
BD + сыграл ключевую роль в форматная война Blu-ray и HD DVD. Несколько студий указали, что использование Blu-ray Disc системы защиты от копирования BD + является причиной их поддержки Blu-ray Disc поверх HD DVD. По словам Ричарда Доэрти, аналитика Envisioneering Group, на взлом схемы защиты от копирования потребовалось «10 лет».[3]
19 ноября 2007 г. Macrovision объявила, что планирует приобрести технологию SPDC (включая патенты и программный код) у CRI за 45 миллионов долларов США наличными плюс варранты на акции.[4]
7 июля 2011 года Irdeto приобрела технологию защиты контента BD + для Блю рей диски из Rovi Corporation.[5][6]
Возможности
BD + по сути виртуальная машина встроены в авторизованные плееры. Это позволяет поставщикам контента включать исполняемые программы на диски Blu-ray. Такие программы могут:[7]
- исследуйте среду хоста, чтобы увидеть, не было ли подделано игроком. Каждый лицензированный производитель устройства воспроизведения должен предоставить лицензирующему органу BD + отпечатки памяти, которые идентифицируют их устройства.
- убедитесь, что ключи игрока не были изменены.
- выполнить собственный код, возможно, чтобы исправить небезопасную систему.
- преобразовать аудио и видео выход. Некоторые части контента нельзя будет просмотреть, если программа BD + не восстановит их.
Если производитель устройства воспроизведения обнаруживает, что его устройства были взломаны, он потенциально может выпустить BD + -код, который обнаруживает и обходит уязвимость. Эти программы затем могут быть включены во все новые выпуски дисков.[8]
Технические характеристики виртуальной машины BD + официально доступны только производителям лицензированных устройств. Список лицензированных усыновителей доступен на веб-сайте BD +.[9] Оба SlySoft (сейчас Рыжая лиса) и члены Doom9 форум, однако, реконструировал спецификацию виртуальной машины.
В соответствии со спецификацией обратного проектирования виртуальная машина состоит из 32-битного алгоритма с прямым порядком байтов. DLX как процессор с 4МБ ОЗУ. Он имеет 32 32-битных регистра, доступных для использования. А Инструкция TRAP используется, чтобы позволить хосту виртуальной машины выполнять более сложные действия в виде системных вызовов.[10]
Чтобы предотвратить простое, статическая разборка кода BD + доступен фильтр инструкций, который может выполнять XOR операция над кодом операции перед ее выполнением. Изменяя фильтр инструкций во время выполнения, компилятор может заставить злоумышленника проследить код во время выполнения, прежде чем он сможет полностью его разобрать.[11]
Виртуальная машина
Эта программа, которая находится внутри каталога BDSVM на диске, защищенном BD +, называется кодом содержимого.[10] Код содержимого выполняется с виртуальным прямым порядком байтов. DLX-подобный процессор 4 МБ памяти. Процессор поддерживает 59 различных инструкций и набор регистров, состоящий из 32 регистров общего назначения и трех регистров специального назначения для фильтра инструкций, счетчика тактовых циклов и программного счетчика. Виртуальная машина BD + применяет защиту памяти, маскируя адреса доступа к памяти, чтобы предотвратить их выход за пределы обозначенных областей памяти. Выполнение кода содержимого начинается с адреса 0x1000 относительно начала полезной нагрузки первого блока файла 00001.svm (расположенного внутри каталога BDSVM).
Ловушки
Хотя виртуальная машина BD + чрезвычайно проста, интерфейс между виртуальной машиной и проигрывателем несколько сложнее.[10] BD + предоставляет код содержимого с 25 системные вызовы или «ловушки». Обзор представлен в таблице ниже. Обратите внимание, что биты 00–07 идентификатора ловушки однозначно идентифицируют каждую ловушку в группе. Сам идентификатор группы определяется битами 08–16 идентификатора прерывания. До сих пор наблюдались идентификаторы групп: 00 (обработка событий), 01 (операции криптографии), 02 (арифметические операции), 03 (операции с памятью), 04 (доступ к памяти слота), 05 (доступ к устройству) и 80 (отладка).
ID группы | ID ловушки | имя | Параметры |
---|---|---|---|
00 | 000010 | TRAP_Finished | 0 |
000020 | TRAP_FixUpTableSend | 2 | |
01 | 000110 | TRAP_Aes | 5 |
000120 | TRAP_PrivateKey | 5 | |
000130 | TRAP_Random | 2 | |
000140 | TRAP_Sha1 | 4 | |
02 | 000210 | TRAP_AddWithCarry | 3 |
000220 | TRAP_MultiplyWithCarry | 4 | |
000230 | TRAP_XorBlock | 3 | |
03 | 000310 | TRAP_Memmove | 3 |
000320 | TRAP_MemSearch | 5 | |
000330 | TRAP_Memset | 3 | |
04 | 000410 | TRAP_SlotAttach | 2 |
000420 | TRAP_SlotRead | 2 | |
000430 | TRAP_SlotWrite | 1 | |
05 | 000510 | TRAP_ApplicationLayer | 3 |
000520 | TRAP_Discovery | 4 | |
000530 | TRAP_DiscoveryRAM | 3 | |
000540 | TRAP_LoadContentCode | 5 | |
000550 | TRAP_MediaCheck | 6 | |
000560 | TRAP_RunNative | 4 | |
000570 | ЛОВУШКА_??? | 0 | |
80 | 008010 | TRAP_DebugLog | 2 |
008020 | ЛОВУШКА_??? | ? | |
008030 | ЛОВУШКА_??? | ? |
Каждый из этих системных вызовов может быть вызван инструкцией TRAP (код операции 0x39). По соглашению регистр 29 используется как указатель стека хранит адрес памяти параметров. После проверки параметров выполняется системный вызов и код возврата записывается в регистр 1. Во время выполнения код содержимого выполняет серию тестов, чтобы убедиться, что он выполняется в надежной среде. Один из этих тестов предполагает запрос у игрока сертификата с TRAP_Discovery
. Подпись RSA этого сертификата позже проверяется кодом содержимого с использованием открытого ключа администрации лицензии, который (необязательно в обфусцированной форме) также хранится в коде содержимого. Позже игрока просят подписать случайное сообщение с ECDSA, позвонив TRAP_PrivateKey
. Сгенерированная подпись впоследствии проверяется с использованием открытого ключа игрока, хранящегося в ранее проверенном сертификате.
События
Виртуальная машина BD + управляется событиями. Пять обратных вызовов (событий) определяются интерфейсом, который проигрыватель может вызывать для уведомления кода содержимого о различных событиях, включая воспроизведение различных частей фильма, завершение работы, события извлечения мультимедиа или операции безопасности проигрывателя. Обмен данными о событиях осуществляется с использованием выделенной области памяти (0x00–0x3F). TRAP_Finished
вызывается всякий раз, когда код содержимого завершает обработку события. Первое вызываемое событие: EVENT_Startup
который запускает выполнение кода содержимого.
ID группы | ID события | имя | Параметры |
---|---|---|---|
00 | 000000 | EVENT_MediaInit | 1 |
000010 | EVENT_Shutdown | 1 | |
01 | 000110 | EVENT_TitleInit | 2 |
02 | 000210 | EVENT_ApplicationLayer | 2 |
000220 | EVENT_ComputeSP | 3 |
Таблица преобразования
Перед мастерингом диска, поддерживающего BD +, случайные разделы файлов .m2ts перезаписываются случайными данными, что фактически приводит к повреждению частей содержимого. Исходные данные хранятся в зашифрованном виде и запутываются в коде содержимого BD +.[10] После того, как код содержимого проверил безопасность среды выполнения, он отправляет игроку таблицу с инструкциями по исправлению («таблица преобразования» или «таблица исправлений») с помощью системного вызова. TRAP_FixUpTableSend
. Таблица преобразования состоит из одной подтаблицы для каждого файла .m2ts на диске. Подтаблица состоит из нескольких, возможно, пустых сегментов, содержащих дескрипторы восстановления. Затем каждый дескриптор восстановления предоставляет необработанные данные и смещение, необходимое для восстановления небольшого участка файла .m2ts, заменяя поврежденную часть файла исходными данными.
Обратный инжиниринг и эмуляция реализаций BD +
8 ноября 2007 г. SlySoft объявили, что диски BD + можно копировать с их AnyDVD HD программного обеспечения.[12] Это стало возможным, потому что заголовки BD + первого поколения не проверяли, AACS присутствовал. Это позволяло пользователю копировать BD на жесткий диск и воспроизводить его оттуда, используя только определенную версию Cyberlink PowerDVD (3319a), но не перекодировать, иначе манипулировать контентом или воспроизводить его с записанного BD-R или BD. -RE. Обновленные версии кода безопасности BD + закрыли эту дыру.
9 января 2008 г. engadgethd.com сообщил, что Fox заявила, что BD + еще не был взломан.[13] На вопрос, как hi-def 20 век Фокс названия стали доступны в Интернете, представитель сообщил, что названия доступны как HD DVD в Европе.
3 марта 2008 г. SlySoft обновленный AnyDVD HD, позволяющий полностью расшифровать BD +,[14] позволяя не только просматривать сам фильм, но также воспроизводить и копировать диски с помощью стороннего программного обеспечения.
19 марта 2008 года была выпущена новая версия AnyDVD HD (6.4.0.0), которая поддерживала полное удаление защиты от копирования BD + для всех названий, выпущенных на сегодняшний день.[15][16][17]
В мае 2008 года выпуск Blu-ray Джемпер представила модифицированную версию кода безопасности BD +, которая не позволяла программе Slysoft AnyDVD HD удалять BD +. Эту модифицированную версию Slysoft снова обошла через несколько месяцев после первоначального выпуска Jumper.
В августе 2008 года участники форума Doom9 начали работу над независимым проектом по созданию реализации BD + с открытым исходным кодом.[18]
В конце октября 2008 года те же участники Doom9 сняли первый рабочий восстановленный фильм BD + с помощью ранее разработанных инструментов с открытым исходным кодом,[19] и по состоянию на 1 ноября 2008 года создали код для отладки контента, созданного для виртуальной машины BD +.[20]
2 ноября 2008 года форумы Doom9 объявили, что ранние (до мая 2008 года) диски BD + можно воспроизводить только с использованием программного обеспечения с открытым исходным кодом.[21]
В начале ноября 2008 года было выпущено несколько версий кода безопасности BD +, обход которого, по словам Slysoft, может занять несколько месяцев.[22]
29 декабря 2008 года Slysoft объявила, что AnyDVD HD 6.5.0.2 расшифровывает защиту от копирования для всех текущих фильмов Blu-ray.[23]
13 февраля 2009 г. в фильме «Австралия» была обнаружена 4-я версия кода безопасности BD +.[24] делает неэффективным существующее программное обеспечение AnyDVD HD компании Slysoft.
19 марта 2009 года Slysoft объявила, что AnyDVD HD 6.5.3.1 добавляет поддержку некоторых новых средств защиты BD + в фильмах, например Австралия, Халат, и южной части Тихого океана.[25] Некоторые фильмы BD + не поддерживались обновлением Slysoft, например Миллионер из трущоб, День когда земля остановилась, Марли и я, а Люди Икс Трилогия.[26] С тех пор Slysoft выпустила несколько обновлений, в которых добавлена поддержка новых игр.
7 октября 2009 г. было объявлено о поддержке BD + для MakeMKV, что сделало его вторым приложением, способным обрабатывать все выпущенные на сегодняшний день диски BD +.[27]
В 2010 году еще четыре компании выпустили программное обеспечение, которое может расшифровать BD +: DVDFab Blu-ray Copy, Pavtube Blu-ray Copy и BlindWrite.
18 декабря 2013 г. VideoLAN разработчики выпустили libbdplus, библиотека с открытым исходным кодом для расшифровки BD +. Как и с libdvdcss, API позволяет медиаплеерам использовать его прозрачно.[28]
Смотрите также
Рекомендации
- ^ «О SPDC». Cryptography Research, Inc. В архиве из оригинала от 1 апреля 2009 г.. Получено 2009-04-12.
- ^ BD + повторно закреплен, Slysoft побит
- ^ Райан Сингел (26 февраля 2008 г.). "Как криптовалюта выиграла войну DVD". Проводной. В архиве из оригинала 1 марта 2008 г.. Получено 2008-02-27.
- ^ «Macrovision приобретает технологию защиты дисков Blu-ray от Cryptography Research, Inc.». Архивировано из оригинал 21 ноября 2007 г.
- ^ «Irdeto борется с пиратством с помощью технологии BD +». OnScreen Asia. 11 июля 2011. Архивировано с оригинал 25 октября 2011 г.. Получено 3 октября 2011.
- ^ Розенблатт, Билл (7 июля 2011 г.). «Irdeto приобретает технологию BD + у Rovi». Авторское право и технологии. Получено 9 ноября 2011.
- ^ «Оптическое хранилище нового поколения для дисков Blu-ray: защита содержимого на BD-ROM» (PDF). DELL. В архиве (PDF) из оригинала 31 марта 2007 г.. Получено 2007-05-03.
- ^ Заявка США 2010169663, «Системы и методы обнаружения авторизованных игроков», опубликовано 01.07.2010, передано CYBERLINK CORPORATION
- ^ ООО «БД + Технологии» В архиве 2007-11-06 на Wayback Machine
- ^ а б c d Тема Doom9 по обратному инжинирингу
- ^ Поток Doom9 в фильтре инструкций
- ^ "AnyDVD 6.1.9.6 beta - Форум SlySoft". Архивировано из оригинал на 2007-11-09. Получено 2007-11-09.
- ^ BD + еще не был скомпрометирован, Engadget HD.
- ^ «Пресс-релиз: AnyDVD HD теперь с поддержкой BD + - Форум SlySoft». Архивировано из оригинал на 2008-12-30. Получено 2008-03-29.
- ^ «AnyDVD 6.4.0.0 - Форум SlySoft». Архивировано из оригинал на 2008-03-21. Получено 2008-03-19.
- ^ ZDNet Блоги
- ^ «Пресс-релиз: AnyDVD HD теперь с поддержкой BD + - Форум SlySoft». Архивировано из оригинал на 2008-12-30. Получено 2008-03-29.
- ^ Наконец-то разобрался с BD + - Doom9 Forum
- ^ [1] Наконец-то разобрался с BD + - Doom9 Forum
- ^ Доусон, К. (2008-11-01). "Исследователи Doom9 ломают BD +". Slashdot. В архиве из оригинала 7 декабря 2008 г.. Получено 2008-11-02.
- ^ На форумах Doom9 объявлено, что BD + диск можно копировать
- ^ «Фильмы BD + с бета-версией Anydvd HD 6.4.8.4 могут неправильно обрабатываться». Архивировано из оригинал на 2008-11-06. Получено 2008-11-14.
- ^ «SlySoft снова побеждает схему Blu-ray BD + DRM». Архивировано из оригинал на 2008-12-30. Получено 2008-12-29.
- ^ «Диски BD +, которые могут некорректно работать с Anydvd HD». Архивировано из оригинал на 2011-09-30. Получено 2009-03-13.
- ^ "Выпущен AnyDVD (HD) 6.5.3.1". Архивировано из оригинал на 2011-07-16. Получено 2009-03-21.
- ^ «Больше дисков BD +, которые могут некорректно работать с Anydvd HD». Архивировано из оригинал на 2009-04-06. Получено 2009-03-25.
- ^ Страница статуса BD +
- ^ "libbdplus". VideoLAN. 2013-12-18. Получено 2013-12-25.