BD +

редактировать

BD + является компонентом системы Blu-ray Disc Digital Rights Management. Он был разработан Cryptography Research Inc. и основан на их концепции самозащищающегося цифрового контента. Его цель заключалась в предотвращении несанкционированного копирования дисков Blu-ray и воспроизведения носителей Blu-ray с использованием неавторизованных устройств.

Хотя BD + не остановил поток «взломанного» контента высокой четкости, он заставил тех, кто хочет копировать фильмы Blu-ray, реинвестировать ресурсы для взлома каждой новой версии кода безопасности.

BD + сыграл ключевую роль в войне форматов Blu-ray и HD DVD. Несколько студий сослались на использование Blu-ray Disc системы защиты от копирования BD + как причину, по которой они поддерживали Blu-ray Disc поверх HD DVD. По словам Ричарда Доэрти, аналитика Envisioneering Group, схема защиты от копирования должна была взломать «10 лет».

19 ноября 2007 года Macrovision объявила, что планирует приобрести Технология SPDC (включая патенты и программный код) от CRI за 45 миллионов долларов США наличными плюс гарантии на акции.

7 июля 2011 года Irdeto приобрела технологию защиты контента BD + для дисков Blu-ray у компании Rovi Corporation.

Содержание
  • 1 Возможности
  • 2 Виртуальная машина
    • 2.1 Ловушки
    • 2.2 События
    • 2.3 Таблица преобразования
  • 3 Обратный инжиниринг и эмуляция реализаций BD +
  • 4 См. Также
  • 5 Ссылки
Возможности

BD + по сути является виртуальной машиной, встроенной в авторизованные проигрыватели. Это позволяет поставщикам контента включать исполняемые программы на диски Blu-ray. Такие программы могут:

  • исследовать среду хоста, чтобы увидеть, не было ли подделано проигрыватель. Каждый лицензированный производитель устройства воспроизведения должен предоставить лицензирующему органу BD + данные о памяти, которые идентифицируют их устройства.
  • убедитесь, что ключи проигрывателя не были изменены.
  • выполнить собственный код, возможно, чтобы исправить другой небезопасная система.
  • преобразовать аудио и видео выход. Части контента не будут доступны для просмотра, пока программа BD + не исправит их.

Если производитель устройства воспроизведения обнаружит, что его устройства были взломаны, он потенциально может выпустить BD + -код, который обнаруживает и обходит уязвимость. Эти программы затем могут быть включены во все новые выпуски дисков.

Технические характеристики виртуальной машины BD + официально доступны только производителям лицензированных устройств. Список лицензированных усыновителей доступен на веб-сайте BD +. Однако как SlySoft (теперь RedFox ), так и участники форума Doom9 провели обратный инжиниринг спецификации виртуальной машины.

В соответствии со спецификацией обратного проектирования, виртуальная машина состоит из 32-битного процессора с прямым порядком байтов DLX с 4 МБ ОЗУ. Он имеет 32 32-битных регистра, доступных для использования. Команда TRAP используется, чтобы позволить хосту виртуальной машины выполнять более сложные действия в виде системных вызовов.

Чтобы предотвратить простую, статическую дизассемблирование кода BD +, Доступен фильтр инструкций, который может выполнять операцию XOR с кодом операции перед ее выполнением. Изменяя фильтр инструкций во время выполнения, компилятор может заставить злоумышленника проследить код во время выполнения, прежде чем он сможет полностью его разобрать.

Виртуальная машина

Эта программа, которую можно найти внутри Каталог BDSVM на диске, защищенном BD +, называется кодом содержимого. Код содержимого выполняется на виртуальном процессоре с обратным порядком байтов , подобном DLX,, взаимодействующем с 4 МБ памяти. Процессор поддерживает 59 различных инструкций и набор регистров, состоящий из 32 регистров общего назначения и трех регистров специального назначения для фильтра инструкций, счетчика тактовых циклов и программного счетчика. Виртуальная машина BD + применяет защиту памяти, маскируя адреса доступа к памяти, чтобы предотвратить их выход за пределы обозначенных областей памяти. Выполнение кода содержимого начинается с адреса 0x1000 относительно начала полезной нагрузки первого блока файла 00001.svm (расположенного внутри каталога BDSVM).

Ловушки

Хотя виртуальная машина BD + чрезвычайно проста, интерфейс между виртуальной машиной и проигрывателем несколько сложнее. BD + предоставляет код содержимого с 25 системными вызовами или «ловушками». Обзор представлен в таблице ниже. Обратите внимание, что биты 00–07 идентификатора ловушки однозначно идентифицируют каждую ловушку в группе. Сам идентификатор группы определяется битами 08–16 идентификатора прерывания. До сих пор наблюдались идентификаторы групп: 00 (обработка событий), 01 (операции криптографии), 02 (арифметические операции), 03 (операции с памятью), 04 (доступ к памяти слота), 05 (доступ к устройству) и 80 (отладка).

ID группыID прерыванияИмяПараметры
00000010TRAP_Finished0
000020TRAP_FixUpTableSend2
01000110TRAP_Aes5
000120TRAP_PrivateKey5
000130TRAP_Random2
000140TRAP_Sha14
02000210TRAP_AddWithCarry3
000220TRAP_MultiplyWithCarry4
000230TRAP_XorBlock3
03000310TRAP_Memmove3
000320TRAP_MemSearch5
000330TRAP_Memset3
04000410TRAP_SlotAttach2
000420TRAP_SlotRead2
000430TRAP_SlotWrite1
05000510TRAP_ApplicationLayer3
000520TRAP_Discovery4
000530TRAP_DiscoveryRAM3
000540TRAP_LoadContentCode5
000550TRAP_MediaCheck6
000560TRAP_RunNative4
000570TRAP _ ???0
80008010TRAP_DebugLog2
008020TRAP _ ????
008030TRAP _ ????

Каждый из этих системных вызовов может быть вызван заблокировано инструкцией TRAP (код операции 0x39). По соглашению регистр 29 используется как указатель стека , содержащий адрес памяти параметров. После проверки параметров выполняется системный вызов и код возврата записывается в регистр 1. Во время выполнения код содержимого выполняет серию тестов, чтобы убедиться, что он выполняется в доверенной среде. Один из этих тестов включает запрос у игрока сертификата с помощью TRAP_Discovery. Подпись RSA этого сертификата позже проверяется кодом содержимого с использованием открытого ключа администрации лицензии, который (необязательно в обфусцированной форме) также хранится в коде содержимого. Позже игрока просят подписать случайное сообщение с ECDSA, вызывая TRAP_PrivateKey. Сгенерированная подпись впоследствии проверяется с использованием открытого ключа игрока, хранящегося в ранее проверенном сертификате.

События

Виртуальная машина BD + управляется событиями. Пять обратных вызовов (событий) определяются интерфейсом, который проигрыватель может вызывать для уведомления кода содержимого о различных событиях, включая воспроизведение различных частей фильма, завершение работы, события извлечения мультимедиа или операции безопасности проигрывателя. Обмен данными о событиях осуществляется с использованием выделенной области памяти (0x00–0x3F). TRAP_Finishedвызывается всякий раз, когда код содержимого завершает обработку события. Первым вызываемым событием является EVENT_Startup, которое запускает выполнение кода содержимого.

ID группыID событияИмяПараметры
00000000EVENT_MediaInit1
000010EVENT_Shutdown1
01000110EVENT_TitleInit2
02000210EVENT_ApplicationLayer2
000220EVENT_ComputeSP3

Таблица преобразования

Перед мастерингом диска, поддерживающего BD +, случайные разделы файлов.m2ts перезаписываются случайными данными, что фактически приводит к повреждению частей содержимого. Исходные данные хранятся в зашифрованном виде и запутываются в коде содержимого BD +. После того, как код содержимого проверил безопасность среды выполнения, он отправляет проигрывателю таблицу с инструкциями по исправлению («таблица преобразования» или «таблица исправлений»), используя системный вызов TRAP_FixUpTableSend. Таблица преобразования состоит из одной подтаблицы для каждого файла.m2ts на диске. Подтаблица состоит из нескольких, возможно, пустых сегментов, содержащих дескрипторы исправления. Затем каждый дескриптор восстановления предоставляет необработанные данные и смещение, необходимое для восстановления небольшого участка файла.m2ts, заменяя поврежденную часть файла исходными данными.

Обратный инжиниринг и эмуляция реализаций BD +

8 ноября 2007 года SlySoft объявила, что диски BD + можно копировать с помощью программного обеспечения AnyDVD HD.. Это было возможно, потому что заголовки BD + первого поколения не проверяли наличие AACS. Это позволяло пользователю копировать BD на жесткий диск и воспроизводить его оттуда, используя только определенную версию Cyberlink PowerDVD (3319a), но не перекодировать, иначе манипулировать контентом или воспроизводить его с записанного BD-R или BD. -RE. Обновленные версии кода безопасности BD + закрыли эту дыру.

9 января 2008 г. engadgethd.com сообщил, что Fox заявила, что BD + еще не был взломан. Когда его спросили, как фильмы высокого разрешения 20th Century Fox стали доступны в Интернете, представитель ответил, что в Европе эти фильмы доступны в формате HD DVD.

3 марта 2008 г. SlySoft обновила AnyDVD HD, разрешив полную расшифровку BD +, что позволило не только просматривать сам фильм, но также воспроизводить и копировать диски с помощью стороннего программного обеспечения.

19 марта 2008 г. была выпущена новая версия AnyDVD HD (6.4.0.0), которая поддерживала полное удаление защиты от копирования BD + для всех изданий, выпущенных на сегодняшний день.

В мае В 2008 году в выпуске Blu-ray Jumper была представлена ​​модифицированная версия кода безопасности BD +, которая не позволяла программе Slysoft AnyDVD HD удалять BD +. Эту модифицированную версию Slysoft снова обошла через несколько месяцев после первоначального выпуска Jumper.

В августе 2008 года участники форума Doom9 начали работу над независимым проектом по созданию реализации BD + с открытым исходным кодом.

В конце октября 2008 года те же участники Doom9 сделали первый рабочий отремонтировал фильм BD + с помощью ранее разработанных инструментов с открытым исходным кодом и по состоянию на 1 ноября 2008 г. создал код для отладки контента, созданного для виртуальной машины BD +.

2 ноября 2008 г. форумы Doom9 объявили о раннем (предварительном) - Май 2008 г.) Диски BD + можно воспроизводить только с использованием программного обеспечения с открытым исходным кодом.

В начале ноября 2008 г. было выпущено несколько версий кода безопасности BD +, обход которых, по словам Slysoft, может занять несколько месяцев.

29 декабря 2008 г. компания Slysoft объявила, что AnyDVD HD 6.5.0.2 расшифровывает защиту от копирования для всех текущих фильмов Blu-ray.

13 февраля 2009 г. 4-я версия кода безопасности BD + была обнаружена на диске фильм Австралия, делая существующее программное обеспечение AnyDVD HD компании Slysoft неэффективным.

19 марта 2009 г. компания Slysoft объявила, что AnyDVD HD 6.5.3.1 добавляет поддержку некоторых новых средств защиты BD + в фильмах, например Австралия, Халат и южная часть Тихого океана. Некоторые фильмы BD + не поддерживались обновлением Slysoft, например Миллионер из трущоб, День, когда Земля остановилась, Марли и я и Трилогия Людей Икс. С тех пор Slysoft выпустила несколько обновлений, в которых добавлена ​​поддержка новых игр.

7 октября 2009 г. было объявлено о поддержке BD + для MakeMKV, что сделало его вторым приложением, способным работать со всеми дисками BD +, выпущенными на сегодняшний день.

В 2010 году четыре другие компании выпустили программное обеспечение, которое может расшифровать BD +: DVDFab Blu-ray Copy, Pavtube Blu-ray Copy и BlindWrite.

18 декабря 2013 года разработчики VideoLAN выпустили libbdplus, библиотеку с открытым исходным кодом для дешифрования BD +. Как и в случае с libdvdcss, API позволяет медиаплеерам использовать его прозрачно.

См. Также
Ссылки
Последняя правка сделана 2021-05-11 03:13:11
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте