Методы защиты электронных книг: DRM, шифрование, пароли и обфускация

19 февраля, 2019, Oleg Afonin
Рубрика: «Криптография и шифрование»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Количество книг, изданных исключительно в электронном виде, давно превысило число изданий на бумаге. Ещё в 2011 году объём продаж электронных книг в американском магазине Amazon превысил объём продаж печатных изданий сперва в США, а буквально через год — и по всему миру. Однако в 2015 году энтузиазм покупателей пошёл на спад, а в 2016 наметились просто-таки тревожные тенденции. Сначала рост продаж электронных изданий замедлился, а потом продажи пошли на спад. Что произошло?

Роль сыграла комбинация факторов. С одной стороны, стоимость электронных изданий в крупных магазинах почти догнала по цене бумажные книги. С другой – у электронных изданий гораздо больше ограничений в сравнении с бумажными книгами. Проиллюстрировать эти ограничения можно на примере крупнейшей торговой площадки – Amazon. Что может сделать владелец с купленной на Amazon бумажной книгой? Бумажную книгу можно продать, подарить, одолжить почитать. Ненужные книги можно сдать в макулатуру или отдать в библиотеку, где к ним получит доступ ещё сколько-то читателей.

А что можно сделать с купленной на Amazon электронной книгой? Её можно скачать на авторизованное устройство (любой планшет или телефон на Android и iOS или читалку на e-Ink, если она – Kindle) и прочитать. В некоторых случаях книгу можно одолжить другому пользователю, у которого также есть учётная запись Amazon. Впрочем, даже в тех случаях, когда подобное разрешено – одалживать книги можно нечасто и ненадолго. Ещё книгу можно удалить из своей библиотеки. На этом возможности заканчиваются.

Электронные книги прекрасно продавались пять лет назад, но на сегодняшний день продажи электронных книг у крупных магазинов падают, а перспективы электронных продаж уже не выглядят так радужно. Цены на электронные издания постепенно подросли до уровня цен на бумажные издания, а присущие электронным форматам ограничения никто и не подумал снять. Ситуация дошла в своей абсурдности до предела после того, как студенты американских университетов дружно проигнорировали электронные учебники: при том, что в электронном виде учебные материалы можно было купить на 20-30% дешевле бумажных, электронный учебник невозможно ни продать в конце учебного года, ни купить со скидкой в букинистическом отделе. При стоимости учебников, исчисляющейся десятками долларов за книгу, стоимость пользования электронными версиями заметно превышала стоимость владения «бумагой».

Что же мешает студентам, да и простым читателям, делиться книгами в электронной форме? Мешает защита от копирования, DRM. Digital Rights Management (DRM) – термин, которым обозначают различные виды защиты, с помощью которых правообладатели контролируют использование лицензиатом (уже не покупателем!) защищённого материала. В случае с электронными книгами в качестве DRM чаще всего используется шифрование, но и здесь ситуация далеко не однозначна. Рассмотрим, какие именно системы DRM используются в мире, а какие – у нас в стране.

PDF: прадедушка цифровых книг

Одним из первых форматов электронных книг, в котором поддерживалась защита DRM, был Adobe PDF. У нашей компании особое отношение как к формату, так и к компании Adobe: именно после успешного взлома DRM защиты Adobe PDF разработчик Дмитрий Скляров оказался в американской тюрьме, а «Элкомсофт» ввязалась в многомесячную тяжбу с Фемидой. Дмитрия арестовали сразу на выходе из конференц-зала, где он делал доклад по особенностям защиты и взлома PDF. И даже окончательное судебное решение «Not Guilty» — «невиновны» никак не компенсировало нанесённый ущерб.

Сегодня особенности защиты формата PDF можно обсуждать свободно и безопасно. Тема шифрования, взлома и снятия защиты с PDF файлов подробно освещена в книге, написанной Дмитрием Скляровым – Искусство защиты и взлома информации (СПБ, 2004). По иронии судьбы, в электронном виде книга распространяется именно в формате Adobe PDF. Следующие две главы основаны на данных из книги.

Adobe PDF Merchant (Adobe.WebBuy)

Не пропускайте эту главу! Хоть на сегодняшний день Adobe PDF Merchant представляет исключительно исторический интерес, как, впрочем, и вся защита Adobe PDF DRM, именно этот формат позволяет понять, что из себя представляет DRM в применении к электронным изданиям. Основные принципы защиты DRM с тех пор мало изменились; изменениям подверглись в основном особенности реализации.

Поддержка электронных книг появилась в виде подгружаемого модуля ещё в Acrobat Reader 4.0.5, и первым таким модулем стал PDF Merchant. Работа модуля была основана на тесном взаимодействии между клиентским устройством и сервером.

Что происходило при попытке открыть защищённую книгу? Модуль отправлял запрос на сервер DRM, который, собственно, и отвечал за управление правами. На сервер передавалась информация о покупке документа и идентификатор вычислительной среды, с которой осуществлялся запрос. В качестве идентификатора можно было использовать CPUID, серийный номер диска или идентификатор учётной пользователя в соответствующем приложении (это важный момент, поскольку именно такая привязка используется в современных схемах защиты).

Сервер, в свою очередь, осуществлял проверку легитимности доступа к документу. После успешного прохождения проверки сервер генерировал и отправлял устройству файл в формате RMF (Rights Management Format), который представлял собой XML документ. В этом файле хранился криптографический ключ для расшифровки PDF, перечень разрешённых действий и сертификат для проверки лицензии.

Для проверки лицензии использовалось два ключа RSA длиной 1024 бит, один из которых принадлежал издателю, а второй использовался Adobe в качестве доверенного сертификата, с помощью которого подписывался открытый ключ издателя.

Кроме того, в RMF-файле обязательно присутствовало хотя бы одно условие, которое требовалось для успешного доступа к документу. Таким условием могла быть привязка к учётной записи (идентификатору) пользователя, CPUID или серийный номер «железа». Кроме того, можно было проверить дату, до наступления которой разрешался доступ к документу. Что интересно, условия можно было комбинировать с помощью логических операций AND и OR, что позволяло правообладателю, к примеру, сдавать PDF в аренду на определённый срок.

Система защиты была построена таким образом, что создать защищённый RMF-файл (а значит – и защищённую электронную книгу) без участия Adobe было невозможно (вспомним про второй ключ RSA). Зато если в наши руки попадал RMF-файл, извлечь из него ключ шифрования было легче лёгкого.

Очевидная ошибка в реализации DRM PDF Merchant в том, что ключ шифрования передавался клиенту в готовом виде, а проверка условий была скорее формальностью, которой занималась та или иная программная реализация. Расшифровать сам документ можно было очень легко, просто вытащив ключ из RMF-файла. Вся защита строилась на предположении, что взломщику будет лень возиться с защитой. В целом систему PDF Merchant нельзя считать надёжной системой DRM.

Adobe DRM (EBX)

Более свежей реализацией от Adobe является защита электронных книг по протоколу Electronic Book Exchange, EBX, который разрабатывался организацией EBX Workgroup. Идея здесь в том, что при активации приложения для чтения электронных книг генерируется пара ассиметричных ключей. Открытый ключ регистрируется на сервере, а секретный сохраняется на устройстве пользователя. При покупке лицензии устройство для чтения книг получает так называемый ваучер — XML-файл, в котором содержится ключ документа. Этот ключ шифруется с помощью открытого ключа пользователя. Кроме того, в ваучере содержится список прав доступа к документу и информация для проверки подлинности ваучера.

В этой схеме для расшифровки электронной книги нужен был доступ к секретному ключу пользователя, доступа к которому у самого пользователя не было (только само приложение могло извлечь ключ). Причём сам ключ дополнительно шифровался с помощью аппаратных идентификаторов устройства, что приводило к утрате лицензий при смене устройства. Для обхода этой проблемы был предусмотрен дополнительный способ доступа к секретному ключу, который не зависел от идентификаторов оборудования. Однако при использовании этого способа идентификатор можно было довольно легко вычислить, после чего секретный ключ пользователя можно было восстановить, а затем – получить неограниченный доступ ко всем купленным книгам.

Надёжность и этой модели DRM не идеальна. Насколько нам известно, в Adobe eBook Reader не было сделано никаких значительных технических улучшений в плане снижения уязвимости DRM. Впрочем, с появлением Acrobat Reader 6 значение Adobe eBook Reader быстро сошло на нет.

Уязвимость DRM в формате PDF

В целом обеспечить безопасность книг в формате PDF оказалось достаточно сложно. В классической реализации DRM от Adobe приложение делало запрос на сервер, который осуществлял проверку легальности запроса, а в ответ получало готовый ключ для расшифровки документа. Нетрудно догадаться, что вся схема легко могла быть взломана простым перехватом ключа.

В Acrobat Reader 6 была применена новая схема, которая давала модулям защиты возможность решать, каким способом будет зашифрован тот или иной фрагмент PDF-документа. Перехват ключа работать перестал, т.к. передачи ключа между узлами защиты уже не происходит. Однако возникла другая проблема. Начиная с шестой версии, стандартной читалкой электронных книг выступает универсальное приложение Adobe Acrobat Reader (а не защищённый Adobe eBook Reader).

При этом в Acrobat Reader есть поддержка модулей расширения. И если создать свой модуль расширения и сделать так, чтобы он был загружен в момент, когда открывается защищенная книга, то из этого модуля (который работает в контексте основного процесса Acrobat Reader) можно получить полный доступ к содержимому книги.

Впоследствии произошла игра в «кошки-мышки». В Adobe предприняли усилия для того, чтобы посторонние модули не работали в моменты, когда пользователь читает защищённые книги. С другой стороны, сама возможность запуска модулей с поддельной цифровой подписью – хоть и в «несертифицированном» режиме – в приложении сохраняется. Дальнейшие шаги взломщика после запуска такого модуля – «убедить» Acrobat Reader в том, что несертифицированный модуль – на самом деле вполне сертифицирован.

Впрочем, развитие DRM на этом не остановилось: существует формат Adobe Digital Editions Adept DRM, который поддерживается большинством электронных читалок за исключением Kindle (и требует регистрации устройства), есть Adobe Digital Editions with eReader DRM, которая была разработана для формата eReader ebook (изначально – для Fictionwise, сегодня – часть Barnes & Noble) и позднее перенесена в Adobe Digital Editions при сотрудничестве B&N и Adobe. Кстати, B&N до сих пор продаёт книги с защитой eReader DRM.

Пароли PDF

Документы в формате PDF – это не только электронные книги, которые необходимо защищать при помощи DRM. В большинстве случаев документы PDF защищены гораздо более простым способом – паролем на открытие либо паролем ограничений. И если пароли ограничений (например, ограничения на редактирование или на распечатку) в большинстве случаев можно убрать моментально, то пароль на открытие необходим для того, чтобы расшифровать документ. Соответственно, пароль на открытие PDF невозможно сбросить – его можно только подобрать.

Начиная с 9-й версии Acrobat пароль на открытие документа достаточно стойкий. В Adobe выбрали достаточно медленный алгоритм, перебор паролей в котором медленный и не ложится на GPU. Соответственно, подбор длинного, случайного пароля может занять существенное время. Впрочем, пользователи чаще выбирают несложные пароли, которые могут быть восстановлены посредством словарных атак с мутациями.

В Advanced PDF Password Recovery для настроек восстановления пароля служит следующее окно:

Если же пароль удалось подобрать или он известен, документ можно расшифровать и сохранить в расшифрованном виде:

В случае же с паролем, ограничивающим доступные варианты использования документа, дела обстоят гораздо проще: такие пароли в Advanced PDF Password Recovery можно сбросить за несколько секунд. При этом расшифрованный документ сохраняется уже без каких-либо ограничений.

Несмотря на то, что ограничения (от печати, редактирования и прочего) снимаются моментально, простота решения лишь кажущаяся. Техническая реализация снятия ограничений в PDF довольно сложная. Для снятия ограничений необходимо вычислить ключ, расшифровать и перестроить документ.

Время от времени встречаются документы, защищённые как паролем на открытие, так и ограничениями. Если установлены оба пароля, то в Advanced PDF Password Recovery можно атаковать любой из них, либо оба одновременно (что, конечно, медленнее, если использовать единственный компьютер). А расшифровать файл, сняв все ограничения и сбросив пароль на открытие, Advanced PDF Password Recovery сможет, используя любой из этих паролей — достаточно одного из них. Как видим, здесь тот самый случай, когда два пароля хуже одного.

DRM в Amazon

Amazon – пожалуй, самый крупный на сегодняшний день магазин, торгующий электронными книгами (и не только). У компании есть собственная экосистема для доступа к контенту: это и читалки Kindle на электронных чернилах (одни из лучших по соотношению цена-качество), и планшеты Fire, и приложение Kindle, доступное для всех актуальных платформ – от десктопной Windows до iOS и Android включительно.

При этом у читалок от Amazon есть важное ограничение: они принципиально не воспринимают открытые форматы электронных книг, такие как ePub или FB2. Читать на них можно только книги и документы в формате MOBI и AZW, с DRM-защитой или без неё.

Весь процесс покупки и потребления контента предельно отлажен. Достаточно выбрать нужную книгу и нажать на кнопку «купить», как книга тут же появится в «облаке» и станет доступна на всех устройствах пользователя и членов его семьи. Именно для этого, а не для чего-то другого, в семействе читалок Kindle появился сначала Wi-Fi, а потом и бесплатный доступ в интернет через сотовую связь.

До недавнего времени реализацией DRM Amazon особо не занимался: был и остаётся формат MOBI, потом появился более интересный AZW.

Книги в формате Kindle поддерживают DRM; привязка идёт к учётной записи пользователя на Amazon. В приложениях Kindle для iOS книги шифруются исключительно криптографическим ключом, который генерируется на основе данных учётной записи пользователя. Ставка здесь делается на то, что извлечь информацию из iPhone или iPad достаточно сложно.

Если же говорить о собственных читалках Amazon на e-Ink линейки Kindle, то привязка идёт как к серийному номеру устройства, так и к уникальному идентификатору PID, который присваивается при регистрации. Соответственно, ключ для расшифровки скачанных на такие устройства книг можно вычислить на основе серийного номера Kindle и его PID. Последний можно извлечь с помощью инструмента DeDRMTools (ссылка – ниже), выполнив следующий скрипт и передав в качестве параметра серийный номер устройства (само устройство Kindle должно быть в этот момент подключено к компьютеру):

kindlepid.py <Kindle Serial Number>

Приложение для Windows также использует шифрование на основе общего для учётной записи ключа. Однако извлечь книги из компьютера с Windows гораздо проще, чем из iPad, поэтому Amazon использует второй слой шифрования, на сей раз с отдельным сессионным ключом, уникальным для каждой книги. С точки зрения криптографии реализация вполне на уровне, и расшифровать книги, не зная ключа, невозможно. Но именно как система DRM решение не выдерживает никакой критики: оба ключа всё также хранятся на компьютере, и их извлечение – дело техники. Собственно, это и было проделано разработчиками: скрипты для Python доступны и работоспособны (по крайней мере, для старых форматов MOBI и AZW).

Обойти защиту DRM для форматов Kindle не составляет особого труда. Ниже – пошаговая инструкция (она доступна и в сети).

  1. Устанавливаем на компьютер приложение Kindle Reader для Windows.
  2. Скачиваем DeDRMTools с github
  3. Устанавливаем
  4. Устанавливаем в Calibre плагин DeDRM_plugin.zip из папки DeDRM_calibre_plugin.
  5. Теперь можно скачать книги при помощи приложения Kindle.
  6. Далее достаточно перетащить в Calibre книги в форматах AZW3 или Mobi из папки Документы\My Kindle Content. DRM будет удалён автоматически.
  7. Книги теперь можно сконвертировать в FB2, ePub или любой другой формат из поддерживаемых в Calibre.

При желании можно обойтись и без Calibre, воспользовавшись утилитой командной строки, или попросту воспользоваться услугами одного из многочисленных онлайновых сервисов.

Извлечённые ключи можно сохранить в файлы с расширением .k4i.

Видимо, сложившаяся ситуация в чём-то перестала устраивать Amazon, и в 2015 году компания разработала новый формат электронных книг. Формат получил название KFX. Он использует новую систему DRM-защиты, обойти которую разработчикам пока не удалось.

Если приведённые выше шаги не работают, дело может быть именно в новом формате книг, а точнее — в версии приложения Kindle, которое получило возможность их открывать. Начиная с версии 1.19 приложение Kindle скачивает книги в новом формате KFX, который пока не поддерживается инструментом по снятию DRM. Поможет откат до версии Kindle 1.17. Возможно, после переустановки приложения потребуется удалить все ранее скачанные книги, выйти из учётной записи, войти в неё снова и заново скачать издания, защиту с которых требуется снять.

Со временем оказалось, что опасения Amazon по поводу потерь от нелегального копирования книг были беспочвенными, и формат KFX так и не получил широкого распространения. В нём доступны некоторые новые книги, в которых используются дополнительные возможности форматирования, предоставляемые новым форматом. Однако огромную библиотеку из уже имеющихся изданий Amazon в новый формат переводить не стал.

Найти надёжные источники информации о защите книг в форматах для Kindle не очень просто, поэтому приведём самые интересные ссылки:

Barnes & Noble: Adobe Digital Editions Protection (ADEPT)

Вторая по величине сеть книжных магазинов в США использует формат ePub, защищённый относительно свежей схемой Adobe Digital Editions (ADEPT). Подробно на этой схеме мы останавливаться не будем, любопытствующих отправим на сайт, где приводится подробный анализ схемы и выложены скрипты, позволяющие извлечь соответствующие ключи и расшифровать электронные книги.

ADEPT использует отличную криптографическую систему – которая, тем не менее, не смогла стать надёжной схемой DRM. Каждая книга шифруется уникальным ключом AES, а сам ключ, в свою очередь, зашифрован ключом RSA, который генерируется на основе учётных данных пользователя (а точнее – его email). И даже ключ RSA, который сохраняется на компьютере пользователя, дополнительно зашифрован с помощью очередного ключа приложения. Лобовая атака на все эти ключи совершенно бесполезна, но зачем она нужна, если ключ всё равно будет храниться на компьютере? Хакерам потребовалось отыскать сессионный ключ, с помощью которого защищался ключ RSA, которым был зашифрован ключ AES, которым зашифрованы книги. Звучит сложно, но, если верить хакеру, взломавшему эту защиту, на практике развёртывание всей цепочки было делом скорее нудным, чем сложным.

DRM не нужен

К счастью, далеко не все книгоиздатели увлекаются защитой DRM. Так, немецкие издатели ещё в 2015 году пришли к выводу, что наличие DRM только мешает продажам и отказались от него в пользу так называемого «социального DRM». К такому же выводу пришли и многие независимые издательства – например, британский издатель PACKT Publishing, в котором мы опубликовали нашу собственную книгу.

В результате сложилась интересная ситуация: отказаться от продаж через Amazon издатели не могут, т.к. именно через этот канал продаётся больше всего экземпляров. При этом купить ту же самую книгу непосредственно на сайте издателя (или в одном из сторонних книжных магазинов) можно по той же цене – но без DRM! Например, что нашу книгу можно купить с сайта PACKT Publishing и мгновенно получить ссылки на скачивание книги во всех возможных форматах – от ePub и PDF (разумеется, без DRM) до предназначенного для Kindle файла .mobi.

Как же издатели борются с пиратством? Никак. От «жёсткого» DRM издатели переходят или к политике, основанной на джентльменском соглашении (политика «честного слова»), или используют так называемый «социальный DRM». На последнем пункте остановимся подробнее.

В «социальном DRM» защитой, останавливающей пользователей от выкладывания купленных книг в публичный доступ, являются цифровые водяные знаки – невидимые для пользователя, но позволяющие издателю надёжно отследить происхождение «всплывшего» документа. Такие водяные знаки можно встраивать и в ePub, и в PDF, и в некоторые другие форматы. Фактически, только наличие водяных знаков и опасение того, что у пользователя закроют учётную запись и служат сдерживающим фактором. Как оказалось, это неплохо работает.

А что у нас?

В нашей стране исторически сложилось так, что самым популярным форматом для электронных книг является FB2, Fiction Book 2. Формат открытый, основан на XML, позволяет встраивать двоичные объекты. Защитить книги в этом формате достаточно сложно; никаких возможностей DRM для этого формата не предусмотрено.

Другой элемент головоломки – отсутствие сложившейся инфраструктуры торговли электронными книгами и отсутствие чего-либо, напоминающего экосистему уровня Amazon, Kobo или Barnes & Noble. Иначе говоря, электронные магазины (Литрес, ЛитНет, Author.today, Призрачные Миры, Целлюлоза и множество других независимых магазинов электронных книг) вынуждены идти одним из двух путей: или предлагать книги для свободного скачивания в удобном для покупателя формате, или же продавать доступ к сайту, с которого можно читать оплаченную (но не купленную) книгу в режиме онлайн-доступа.

Второй вариант – откровенная демонстрация недоверия читателю; защита ради защиты невзирая на потери. Публикация книг в режиме «для чтения с веб-сайта» создаёт максимальные неудобства покупателю, оплатившему доступ. Подливает масла в огонь и политика отдельных магазинов, позволяющая без предупреждения удалять книги из доступа.

С первым способом – снова есть варианты. Так, «Литрес» и Author.today продают книги без видимых пользователю модификаций (нам ничего не известно о наличии или отсутствии в изданиях «водяных знаков»), а при покупке книги на «Призрачных мирах» читатель увидит следующее предупреждение:

КНИГА КУПЛЕНА В ИНТЕРНЕТ-МАГАЗИНЕ WWW.FEISOVET.RU

ПОКУПАТЕЛЬ: Oleg Afonin (aoleg@voicecallcentral.com)  ЗАКАЗ: #287253385 / 09-мар-2017

КОПИРОВАНИЕ И РАСПРОСТРАНЕНИЕ ТЕКСТА ДАННОЙ КНИГИ В ЛЮБЫХ ЦЕЛЯХ ЗАПРЕЩЕНО!

Помимо основного предупреждения, продублированного в начале и в конце книги, магазин расставляет в тексте несколько маркеров:

#287253385 / 09-мар-2017

К сожалению, на этом фантазия разработчиков данной реализации «социального DRM» не закончилась. В текст внедряются своеобразные «водяные знаки» — случайные последовательности букв, позволяющие идентифицировать украденную книгу. Например, читателю в середине фразы может встретиться слово «виздр» или, к примеру, «инаок». Что это, опечатка? Нет, элемент защиты «социального DRM», позволяющий отследить источник потенциальной «утечки».

В данной реализации плохо то, что страдает от неё в первую (и в последнюю) очередь именно тот читатель, который честно оплатил покупку. Пожалуй, данную реализацию социального DRM можно признать одной из наименее удачных. Ещё менее удачные реализации — графические водяные знаки, которые выводятся в некоторых защищённых PDF в виде полупрозрачных изображений поверх текста.

Заключение

Мы совершили обзорную экскурсию по миру DRM в электронных книгах. В одной статье невозможно рассмотреть все форматы – а их много больше того, о чём мы успели поговорить. Собственная система защиты есть у второго по величине американского магазина Barnes & Noble, особняком стоит Apple с собственной разработкой iBooks, есть Google Books. Магазин Kobo может похвастаться тем, что его платформа сертифицирована государственными библиотеками многих англоязычных стран (можно прийти со своей читалкой и получить доступ к любой книге из цифрового фонда библиотеки – но только на то время, пока читатель физически находится в ней). Всё это тоже интересно, но с точки зрения технической реализации мало отличается от уже рассмотренных вариантов.

Вывод же можно сделать такой. Методы защиты DRM для электронных книг существуют, и они в целом работают для подавляющего большинства обычных пользователей (что, собственно, и является их основной целью). При желании защиту можно обойти, и это не будет чрезмерно сложно. В последнее время мы не слышали о случаях юридического преследование за снятие DRM защиты.

В то же время заметен и противоположный тренд: полный отказ от шифрования и жёсткого контроля DRM и переход либо на «джентльменское соглашение», либо на так называемый «социальный DRM», при котором в контент встраиваются более или менее заметные водяные знаки, идентифицирующие личность покупателя. Какой из подходов окажется более жизнеспособным – покажет время.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ