full stack javascript developer
0,0
рейтинг
27 ноября 2012 в 15:04

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

Когда сотрудник Ливерморской национальной лаборатории Эшер Лэнгтон купил в одном онлайн-магазине фильм, для которого требовался проприетарный видеопрогрыватель от компании 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
карма
526,7
рейтинг 0,0
full stack javascript developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (25)

  • +21
    Вспомнился х/ф «Блеф» с Челентаной и Энтони Квином: но ты же поверил!
  • +6
    Перестарались с понтами.
  • 0
    А почему сначала статья была опубликована под именем alizar? Вроде в правилах запрещается заводить клонов.
    • +3
      Не сначала, а после. Ализар видимо увидел что уже опубликовали и убрал свою публикацию в черновики
      • +1
        Да, скорее всего, т.к. текст немного отличается.
        Извиняюсь за панику
      • +13
        Подтверждаю.
  • +19
    Нужно было 100 раз в цикле заксорить, чтобы наверняка.
    • +3
      Помню, на Спектруме так боролись с отладчиками — в цикле много-много раз XOR-или код программы. Внутрь заXORенного куска невозможно было поставить брэйкпойнт и приходилось вручную пошагово прокручивать цикл.
      • +1
        Хорошие защиты располагали зашифрованный блок кода сразу после цикла расшифровки, а расшифровывали от конца к началу, чтобы прокрутив вручную цикл несколько раз, байты после цикла не оказались расшифрованными и туда нельзя было поставить брейкпоинт.
      • +2
        Ну там-то хоть нормальные защиты ксорили не строкой «RANDOM_STRING» а чем-то поинтереснее, примешивая регистр R и другие извращения.
      • +2
        Magic button на Скорпионе рулила
  • 0
    Кстати, я несколько лет сам сталкивался с подобной «защитой» — какой-то образ CD был примерно так же тупо заXOR-ен, так что только родной виртуальный CD-ROM мог его распознать. Там, правда образ был «зашифрован» целиком, но зато одним байтом.
  • 0
    Мда, я сталкивался с такими методами когда работал в одной фирме (не буду называть, ясно дело), там через XOR строки «password» генерились сертификаты =)
  • +17
    А слоган у них в тему: «just a few bytes of brilliance»
    • +5
      Так слоган-то со знанием «дела» придумывали :)
  • 0
    да, понты дороже денег!
  • +3
    В свое время снимал защиту с WMA при помощи утилитки от самого мелкософта — graphedit, достаточно было приклеить свой муксер и схоронить файл.
  • +22
    Мне тут подумалось, тут есть два варианта

    1. Талантливый индийский программист, слишком буквально воспринял фразу «XOR with a random string» в ТЗ.
    2. Программист (не важно какой национальности) решил внести свою лепту в борьбу с копирастами.

    Ну или трейти вариант, совсем уж фантастический:
    Leaping Brain — это троли, решившие заработать бабла на доверчивых копирастах и заодно подорвать индустирую DRM изнутри.

    Кстати в пользу второго (или третьего??) варианта говорит тот факт, что их питон-скрипт лицензирован под GPL, что фактически разрешает ломать DRM без всяких легальных последствий www.gnu.org/licenses/gpl-faq.html#DRMProhibited

    • +6
      По поводу первого варианта: http://xkcd.com/221/
    • 0
      Пока конкретный алгоритм не будет одобрен производителями и держателями контента для проигрывания оного в HD, никакого отношения к DRM индустрии любой «новый DRM» иметь не будет :(
    • 0
      XOR with a random string — это в мемы!
  • +1
    Просто процитированный кусок писали маркетологи.
    • +3
      >> Мы не знаем более надёжной схемы, чем эта.
      Тогда им даже не пришлось лгать!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.