Не так страшен DRM, как его малюют

в 11:04, , рубрики: drm, Leaping Brain, XOR, информационная безопасность, копирайт, ненормальное программирование, метки: , ,

Когда сотрудник Ливерморской национальной лаборатории Эшер Лэнгтон купил в одном онлайн-магазине фильм, для которого требовался проприетарный видеопрогрыватель от компании Leaping Brain, у него возникли трудности с установкой плеера на iPhone. Пытаясь разобраться с проблемой, он обнаружил, что видео загрузилось в скрытую папку в виде набора обычных файлов формата .mov. Правда, ни один из них воспроизвести не удалось.

Проприетарный плеер с DRM-защитой оказался скриптом-обёрткой на Python вокруг нескольких библиотек из проекта VLC. Код на Python совершал какие-то преобразования над файлом, прежде чем скормить его VLC. В FAQ на сайте Leaping Brain было сказано, что их плеер использует невероятно крутой криптографический алгоритм для реализации DRM:

«Мы применяем проприетарный алгоритм шифрования BrainTrust™ при загрузке видео на свои серверы. Если даже кто-то и сможет получить доступ к вашему контенту, файлы не воспроизведутся и будут совершенно бесполезны, потому что они хранятся в зашифрованном виде. После загрузки на устройство пользователя проиграть файлы может только легальный пользователь и только через MOD Machine Player. Мы не знаем более надёжной схемы, чем эта. Windows Media DRM легко поддаётся взлому и работает только под Windows, тогда как BrainTrust™ практически невозможно взломать, и эта технология отлично работает под Windows 8, Vista, XP и Mac.»

Расковыряв скрипт-обёртку, Эшер Лэнгтон сохранил обработанный файл и сравнил его с «зашифрованным». Оказалось, что неприступный алгоритм заключался в том, что в первых 15 килобайтах файла несколько начальных байтов каждого килобайтного блока были сXOR-ены с «секретным ключом», который представлял собой строку «RANDOM_STRING».

Источник: блог Эшера Лэнгтона.

P.S. Старая версия FAQ уже исчезла с официального сайта Leaping Brain. Но кэш гугла помнит!

Автор: ilya42

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js