Криптозащита документов в офисных пакетах – почему отечественные СКЗИ неприменимы

Зависимость отечественного ПО от «чужих» форматов текстов, таблиц и презентаций вынуждает разработчиков применять те же методы криптозащиты документов на компьютере пользователя, которые предусмотрели авторы этих форматов. Теоретическая возможность дополнительно использовать отечественные средства криптозащиты информации (СКЗИ) на рабочих станциях остаётся, однако на практике приходится использовать «чужую» криптографию – что тоже следует делать добросовестно.

Рассмотрим тему детально.

Эволюция криптозащиты документов Microsoft Office

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

Только в Office 97 (1996 год) появилось эффективное шифрование, на тот момент 40-битное (причины выбора именно такой длины ключа – отдельная тема).

Современный Microsoft Office имеет существенно более стойкую защиту. Данные очень надёжно зашифрованы, и единственный способ добраться до них – найти пароль методом перебора.

Ломать сложнее, чем строить

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

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

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

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

Так что иного способа, кроме как найти оригинальный пароль путём перебора, просто нет.

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

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

Вот пример. Предположим, мы умеем перебирать миллион паролей в секунду. Если у нас есть неделя на взлом, мы сможем перебрать вот такое количество паролей:

1 000 000 х 3600 х 24 х 7 = 604 800 000 000

Число – больше полутриллиона – кажется фантастическим, но что толку. Если пароль состоит из семи символов и может содержать большие и маленькие буквы (даже без цифр и специальных символов), общее число возможных комбинаций составляет (26 + 26)7 = 1 028 071 702 528. На полный перебор уйдёт почти 12 дней. С увеличением длины и сложности пароля общее число возможных комбинаций растёт экспоненциально – шансы на взлом тают на глазах. Добавьте к паролю ещё один символ, и вместо 12 потребуется более 500 недель. (Заметим, что по нашему опыту, большинство пользователей используют простые и достаточно короткие пароли, которые на скорости «миллион в секунду» взломать несложно).

Понятно, как влияет на скорость перебора паролей замедление проверки, о которой сказано выше. Разработчик криптозащиты может понизить скорость перебора на порядки, и время поиска пароля станет неприемлемым (тысячи недель, в нашем примере).

Казалось бы, при чём тут отечественные СКЗИ

Именно в этой, описанной выше истории, – совершенно ни при чём. Теоретически можно «прикрутить» сертифицированные СКЗИ к отечественному офисному ПО в качестве дополнительной функции, однако смысла делать это нет по следующей причине.

Любой новый офисный пакет обязан поддерживать форматы данных своих популярных предшественников – в частности, doc, docx, odt, если речь идёт о текстовых документах. Без этого нельзя войти в рынок: во-первых, пользователь, применяя новое ПО, не должен расставаться со своими старыми документами, во-вторых, совместимость документов по форматам необходима при обмене этими документами между пользователями разного офисного ПО.

Но поддержка определённого формата означает поддержку тех же методов криптозащиты документов, которые предусмотрел их разработчик. А ни Microsoft, ни разработчики LibreOffice и OpenOffice отечественные СКЗИ не применяли.

На примере «МойОфис»

Недавно наше внимание (Elcomsoft специализируется на средствах восстановления паролей, т.е. преодоления систем криптозащиты данных в различных программных продуктах – ред.) привлёк «МойОфис» – отечественный программный продукт, конкурент Microsoft Office. После чего, собственно, мы и решили, что следует написать – с просветительской целью – эту статью.

Разработчики «МойОфис» утверждают, что первыми в России «реализовали поддержку отечественных сертифицированных СКЗИ в почтовых приложениях и редакторах документов на любых платформах — настольных компьютерах, мобильных устройствах и в веб-браузерах».

Но по причинам, изложенным выше, применить отечественные СКЗИ в «редакторах документов» нельзя. Это не может соответствовать и не соответствует действительности. Мы посмотрели входящие в пакет «МойОфис» программные продукты с понятными названиями «Текст», «Таблица» и «Презентация». Это именно «редакторы документов». Как и ожидалось, отечественных алгоритмов криптозащиты данных там нет и в помине.

«МойОфис» работает с документами двух стандартных форматов: Microsoft Office и OpenDocument (используется, например, в офисных пакетах OpenOffice, LibreOffice). Эти форматы строго следуют стандартам, в том числе стандартам криптозащиты. Поддерживать совместимость, используя отечественные криптоалгоритмы, в них нельзя.

Разработчик нашу просьбу о разъяснениях игнорировал (на запрос D-Russia.ru разработчик ответил: отечественные СКЗИ используются «для защиты каналов взаимодействия приложений с серверной частью продуктов и для электронной подписи и шифрования почтовых сообщений» – ред.).

Изложим, пользуясь случаем, полные результаты нашего исследования «МойОфис» в надежде, что они пригодятся разработчикам для развития продукта.

Для совместимости с документами Microsoft Office в «МойОфис» используется сильно устаревший формат Office 2007 с алгоритмом шифрования AES (длина ключа 128 бит). Для такой защиты возможен достаточно быстрый перебор паролей. Начиная с MS Office 2013 (который тоже прилично устарел) защита документов была многократно усилена, и интересы пользователей «МойОфис» требуют использовать именно её, а не шифрование 13-летней давности.

Формат OpenDocument (используется, в частности, OpenOffice и LibreOffice) по сравнению с форматом документов MS Office 2013 существенно более продвинут в смысле криптозащиты. Спецификация OpenDocument открыта, и разработчик мог бы использовать множество разных алгоритмов шифрования и хэширования с любыми параметрами (эти параметры сохраняются в заголовке файла документа, и все приложения, поддерживающие стандарт, их корректно обрабатывают, так что проблем с совместимостью быть не может). Но разработчики «МойОфис» выбрали самые слабые настройки, которые только возможны – на два порядка по скорости перебора слабее тех, что используются, например, в LibreOffice.

Для сравнения, скорость перебора паролей для документов «МойОфис» на видеокарте NVIDIA RTX 3090 переваливает за 7 миллионов в секунду, тогда как для LibreOffice достижимы всего около 40 тысяч в секунду.

Это слабая защита. Четыре видеокарты, установленные в компьютер, дадут скорость перебора 28 миллионов паролей в секунду – чего, по нашему опыту, в большинстве случаев достаточно для успешной атаки.

Ещё немного технических деталей см. в нашем блоге.

Это частный пример. Как ясно из описания проблемы криптозащиты документов в стандартных форматах на рабочей ситуации пользователя, отечественные СКЗИ для этого неприменимы в любом пакете офисных программ.

Автор выражает благодарность компании «Новые облачные технологии» за пробную лицензию «МойОфис», использованную для ознакомления с продуктом.

Об авторе: Владимир Каталов, исполнительный директор компании Elcomsoft, специализирующейся на криминалистической экспертизе компьютеров, мобильных устройств и облачных данных.

СЛЕДУЮЩИЙ МАТЕРИАЛ РАЗДЕЛА "IT"