BD+
BD+ — это компонент на диски Blu-ray системы управления цифровыми правами . Он был разработан компанией Cryptography Research Inc. и основан на их концепции самозащиты цифрового контента . [ 1 ] Его цель заключалась в предотвращении несанкционированного копирования дисков Blu-ray и воспроизведения носителей Blu-ray с использованием неавторизованных устройств.
Хотя BD+ не остановил поток «взломанного» контента высокой четкости, он заставил тех, кто хочет копировать фильмы Blu-ray, реинвестировать ресурсы для взлома каждой новой версии кода безопасности. [ 2 ]
BD+ сыграл решающую роль в войне форматов Blu-ray и HD DVD . Несколько студий назвали внедрение Blu-ray Disc системы защиты от копирования BD + причиной поддержки дисков Blu-ray через HD DVD. По словам Ричарда Доэрти, аналитика Envisioneering Group, на взлом схемы защиты от копирования ушло «10 лет». [ 3 ]
19 ноября 2007 года Macrovision объявила, что планирует приобрести технологию SPDC (включая патенты и код программного обеспечения) у CRI за 45 миллионов долларов США наличными плюс варранты на акции. [ 4 ]
7 июля 2011 года Irdeto приобрела Blu-ray технологию защиты контента BD+ для дисков у Rovi Corporation . [ 5 ] [ 6 ]
Возможности
[ редактировать ]BD+ по сути представляет собой виртуальную машину, встроенную в авторизованные проигрыватели. Это позволяет поставщикам контента включать исполняемые программы на диски Blu-ray. Такие программы могут: [ 7 ]
- проверьте среду хоста, чтобы увидеть, не был ли подделан плеер. Каждый лицензированный производитель устройства воспроизведения должен предоставить в орган лицензирования BD+ объемы памяти , которые идентифицируют его устройства.
- убедитесь, что ключи плеера не были изменены.
- выполнить собственный код, возможно, для исправления небезопасной в противном случае системы.
- преобразовывать аудио- и видеовыход. Части контента нельзя будет просмотреть, пока программа BD+ не восстановит их.
Если производитель устройства воспроизведения обнаружит, что его устройства были взломаны, он потенциально может выпустить BD+-код, который обнаружит и обойдет уязвимость. Эти программы затем можно будет включать во все новые выпуски дисков. [ 8 ]
Характеристики виртуальной машины BD+ официально доступны только лицензированным производителям устройств. Список лицензированных пользователей доступен на веб-сайте BD+. [ 9 ] Однако и SlySoft (теперь RedFox ), и участники форума 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 (отладка). src/libbdplus/bdsvm/interface.c · master · VideoLAN / libbdplus · GitLab
Идентификатор группы | Идентификатор ловушки | Имя | Параметры |
---|---|---|---|
00 | 000010 | TRAP_Finished | 0Ф |
000020 | TRAP_ConversionTable | 2 | |
01 | 000110 | TRAP_Aes | 5 |
000120 | TRAP_PrivateKey | 5 | |
000130 | TRAP_Random | 2 | |
000140 | TRAP_Sha | 4 | |
02 | 000210 | TRAP_AddWithCarry | 3 |
000220 | TRAP_MultiplyWithRipple | 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_DeviceDiscovery | 4 | |
000530 | TRAP_DiscoveryRAM | 3 | |
000540 | TRAP_LoadContentCode | 5 | |
000550 | TRAP_MediaCheck | 6 | |
000560 | TRAP_RunNative | 4 | |
80 | 008010 | TRAP_DebugLog | 2 |
Каждый из этих системных вызовов может быть вызван инструкцией TRAP (код операции 0x39). По соглашению регистр 29 используется как указатель стека, содержащий адрес памяти параметров. После проверки параметра выполняется системный вызов, и код возврата записывается в регистр 1.
Во время выполнения код контента выполняет серию тестов, чтобы убедиться, что он выполняется в доверенной среде. Один из этих тестов включает в себя запрос у игрока сертификата с TRAP_Discovery
. Подпись RSA этого сертификата позже проверяется кодом контента с использованием открытого ключа администрации лицензии, который (необязательно в замаскированной форме) также хранится в коде контента. Позже игрока попросят подписать случайное сообщение с помощью ECDSA, позвонив TRAP_PrivateKey
. Сгенерированная подпись впоследствии проверяется с использованием открытого ключа игрока, хранящегося в ранее проверенном сертификате.
События
[ редактировать ]Виртуальная машина BD+ управляется событиями. Пять обратных вызовов (событий) определяются интерфейсом, который проигрыватель может вызывать для уведомления кода контента о различных событиях, включая воспроизведение различных частей фильма, выключение, события извлечения носителя или операции безопасности проигрывателя. Обмен данными о событии осуществляется с использованием выделенной области памяти (0x00–0x3F). TRAP_Finished
вызывается всякий раз, когда код содержимого завершает обработку события. Первое вызываемое событие: EVENT_Startup
который запускает выполнение кода содержимого.
Идентификатор группы | Идентификатор события | Имя | Параметры |
---|---|---|---|
00 | 000000 | EVENT_MediaInit | 1 |
000010 | EVENT_Выключение | 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 на жесткий диск и воспроизводить его оттуда, используя только определенную версию PowerDVD от Cyberlink (3319a), но не перекодировать, иным образом манипулировать контентом или воспроизводить его с записанного BD-R или BD. -РЕ. Обновленные версии кода безопасности BD+ заткнули эту дыру.
9 января 2008 г. сайт engadgethd.com сообщил, что Fox заявила, что BD+ еще не был взломан. [ 13 ] в высоком разрешении Когда его спросили, как фильмы 20th Century Fox стали доступны в Интернете, представитель ответил, что эти фильмы доступны на HD DVD в Европе .
3 марта 2008 г. SlySoft обновила AnyDVD HD, позволив полную расшифровку BD+. [ 14 ] позволяющий не только просматривать сам фильм, но и воспроизводить и копировать диски со сторонним программным обеспечением.
19 марта 2008 г. была выпущена новая версия AnyDVD HD (6.4.0.0), которая поддерживала полное удаление защиты от копирования BD+ для всех выпущенных на сегодняшний день заголовков. [ 15 ] [ 16 ] [ 14 ]
В мае 2008 года в выпуске Jumper на Blu-ray была представлена модифицированная версия кода безопасности BD+, которая не позволяла программному обеспечению Slysoft AnyDVD HD удалять BD+. Эту модифицированную версию снова обошла Slysoft через несколько месяцев после первого выпуска Jumper.
В августе 2008 года участники форума Doom9 начали работу над независимым проектом по созданию реализации BD+ с открытым исходным кодом. [ 10 ]
В конце октября 2008 года те же участники Doom9 создали первый работающий восстановленный фильм BD+ с помощью ранее разработанных инструментов с открытым исходным кодом. [ 17 ] и по состоянию на 1 ноября 2008 г. создали код для отладки контента, созданного для виртуальной машины BD+. [ 18 ]
2 ноября 2008 г. на форумах Doom9 было объявлено, что ранние (до мая 2008 г.) диски BD+ можно воспроизводить только с использованием программного обеспечения с открытым исходным кодом. [ 19 ]
В начале ноября 2008 года было выпущено несколько версий кода безопасности BD+, для обхода которых, по мнению Slysoft, может потребоваться несколько месяцев. [ 20 ]
29 декабря 2008 г. Slysoft объявила, что AnyDVD HD 6.5.0.2 расшифровывает защиту от копирования на всех текущих фильмах Blu-ray. [ 21 ]
13 февраля 2009 года в фильме «Австралия» была обнаружена четвертая версия кода безопасности BD+ . [ 22 ] делая существующее программное обеспечение AnyDVD HD от Slysoft неэффективным.
19 марта 2009 г. компания Slysoft объявила, что в AnyDVD HD 6.5.3.1 добавлена поддержка некоторых новых средств защиты BD+ в фильмах, например «Австралия» , «Одеяние » и «Южная часть Тихого океана» . [ 23 ] Некоторые фильмы BD+ не поддерживались обновлением Slysoft, например «Миллионер из трущоб» , «День, когда Земля остановилась» , «Марли и я » и трилогия «Люди Икс» . [ 24 ] С тех пор Slysoft выпустила несколько обновлений, добавив поддержку новых игр.
7 октября 2009 года для MakeMKV было объявлено о поддержке BD+, что сделало его вторым приложением, способным работать со всеми выпущенными на сегодняшний день дисками BD+. [ 25 ]
В 2010 году еще четыре компании выпустили программное обеспечение, способное дешифровать BD+: DVDFab Blu-ray Copy, Pavtube Blu-ray Copy и BlindWrite .
18 декабря 2013 года разработчики VideoLAN выпустили libbdplus — библиотеку с открытым исходным кодом для расшифровки BD+. Как и в случае с libdvdcss , API позволяет медиаплеерам использовать его прозрачно. [ 26 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «О ГСМР» . Cryptography Research, Inc. Архивировано из оригинала 1 апреля 2009 года . Проверено 12 апреля 2009 г.
- ^ «Послерассвета: Новости» . www.afterdawn.com .
- ^ Райан Сингел (26 февраля 2008 г.). «Как криптовалюта выиграла войну DVD» . Проводной. Архивировано из оригинала 1 марта 2008 года . Проверено 27 февраля 2008 г.
- ^ «Macrovision приобретает технологию безопасности дисков Blu-ray у компании Cryptography Research, Inc» . Архивировано из оригинала 21 ноября 2007 г.
- ^ «Irdeto борется с пиратством с помощью технологии BD+» . OnScreen Азия. 11 июля 2011 года. Архивировано из оригинала 25 октября 2011 года . Проверено 3 октября 2011 г.
- ^ Розенблатт, Билл (7 июля 2011 г.). «Irdeto приобретает технологию BD+ у Rovi» . Авторское право и технологии . Проверено 9 ноября 2011 г.
- ^ «Оптическое хранилище дисков Blu-ray следующего поколения: защита содержимого на BD-ROM» (PDF) . ДЕЛЛ . Архивировано (PDF) из оригинала 31 марта 2007 г. Проверено 3 мая 2007 г.
- ^ Заявка США 2010169663 , «Системы и методы обнаружения авторизованных игроков», опубликованная 1 июля 2010 г., передана CYBERLINK CORPORATION.
- ^ "Дом" . ООО «БД+ Технологии» . Архивировано из оригинала 6 ноября 2007 года.
- ^ Перейти обратно: а б с д и «Наконец-то разобрались с BD+ (?) — Форум Doom9» . forum.doom9.org .
- ^ «Форум Doom9 — наконец-то разобрались с BD+ (?)» . forum.doom9.org .
- ^ «AnyDVD 6.1.9.6 бета — Форум SlySoft» . Архивировано из оригинала 9 ноября 2007 г. Проверено 9 ноября 2007 г.
- ^ BD+ пока не взломан , Engadget HD.
- ^ Перейти обратно: а б «Пресс-релиз: AnyDVD HD теперь с поддержкой BD+ — Форум SlySoft» . Архивировано из оригинала 18 декабря 2008 г. Проверено 29 марта 2008 г.
- ^ «AnyDVD 6.4.0.0 — Форум SlySoft» . Архивировано из оригинала 21 марта 2008 г. Проверено 19 марта 2008 г.
- ^ «Ура! Blu-ray BD+ взломан! | Storage Bits | ZDNet.com» . 27 марта 2008 г. Архивировано из оригинала 27 марта 2008 г.
- ^ [1] Наконец-то работа с BD+ - Форум Doom9
- ^ Доусон, К. (1 ноября 2008 г.). «Исследователи Doom9 ломают BD+» . Слэшдот. Архивировано из оригинала 7 декабря 2008 года . Проверено 2 ноября 2008 г.
- ^ «Наконец-то работа с BD+ (?) - Страница 15 - Форум Doom9» . forum.doom9.org .
- ^ «Фильмы BD+, которые бета-версия Anydvd HD 6.4.8.4 может обрабатывать некорректно» . Архивировано из оригинала 6 ноября 2008 г. Проверено 14 ноября 2008 г.
- ^ «SlySoft снова побеждает схему BD+ DRM Blu-ray» . Архивировано из оригинала 6 января 2009 г. Проверено 29 декабря 2008 г.
- ^ «Диски BD+, которые могут некорректно работать с Anydvd HD» . Архивировано из оригинала 30 сентября 2011 г. Проверено 13 марта 2009 г.
- ^ «Выпущен AnyDVD (HD) 6.5.3.1» . Архивировано из оригинала 16 июля 2011 г. Проверено 21 марта 2009 г.
- ^ «Другие диски BD+, которые могут не работать должным образом с Anydvd HD» . Архивировано из оригинала 6 апреля 2009 г. Проверено 25 марта 2009 г.
- ^ «Поддержка BD+ — www.makemkv.com» . forum.makemkv.com .
- ^ «либбдплюс» . ВидеоЛАН . 18 декабря 2013 г. Проверено 25 декабря 2013 г.