Подбор паролей Excel с помощью Accent Office Password Recovery

Периодически в почту и на сайт сыпятся вопросы из серии: "Я забыл пароль на файл (книгу, лист). Помогите, что делать?" Приходится доступными фразами наставлять на путь истинный :) А недавно по счастливому совпадению разработчики из AccentSoft любезно предложили потестировать их продукт для решения подобных проблем - Office Password Recovery.

"Фишкой" этой программы, по словам авторов, по сравнению с кучей остальных программ подобного рода является способность подключать к перебору паролей графический процессор видеокарты (GPU). Даже для недорогих игровых видеокарт, GPU содержит несколько десятков параллельных конвейеров вычислений, что здорово ускоряет процесс.
Взялся за тесты. Меня, естественно, больше всего интересовала надежность защиты Excel-евских файлов, где пароли могут стоять:
  1. на листе (защита от редактирования данных в ячейках)
  2. на книге (защита листов от удаления-переименования-копирования и т.д.)
  3. на проектах VBA (защита от просмотра и редактирования макросов)
  4. на файле (защита доступа - пароли на открытие и/или изменение всего файла)
Сразу могу сказать, что первых два уровня защиты во всех версиях Excel откровенно слабые (в силу выбранного для них Microsoft'ом алгоритма защиты) и парольный хеш для них подбирался почти мгновенно. Нюанс, правда, в том, что подобранный пароль никогда не соответствовал исходному паролю (т.е. оригинальный пароль, который придумал автор, вы не узнаете), но защиту с листа и книги снимал на раз. Защита макросов тоже вскрывается практически мгновенно - программа просто убирает пароль с проекта VBA, даже не подбирая его, позволяя просмотреть и изменить код всех макросов:

7eb54eade7eb05e400556e05f5704df2.png

А вот с защитой файлов все сложнее. Дело в том, что защита файлов в Excel - это, по-сути, шифрование документа. Причем, в Excel 2007/2010 и Excel 2003 для этого используются разные криптоалгоритмы: в Excel 2000-2003 это алгоритм потокового шифрования RC4 с хешированием MD5 искуственно пониженным со 128 до 40 бит по-умолчанию, а в Excel 2007/2010 - симметричный алгоритм блочного шифрования AES с ключом 128 бит. Пароль на открытие для старого формата файлов Excel 2003 подбирался на моем домашнем ПК (Intel Core i5, 4Gb, Nvidia 8800GT) около 8 минут по стандартному сценарию атаки, мощно загружая при этом все ядра процессора и GPU:

7718e2a0bf7af6df622210f91e905457.png

Фактически, было перебрано 2.5 млрд. паролей по 3.5 млн. паролей в секунду. Простой 6-значный буквенно-цифровой пароль (nick77) подобран один-в-один. Неплохо.

Дальше - хуже, ибо тот же старый файл Excel 2003, но с чуть более сложным паролем со спецсимволами (Nick0la$) программа подобрать уже не смогла:

e8237fc14f5c07d300ee0c678de44935.png

А вот 128-битный AES в файлах нового формата Excel 2007/2010 оказался совсем стойким (обратите внимание на скорость подбора и ожидаемую длительность процесса - 1 день и 9 часов по стандартному сценарию):

421485460f061173420d80d804811296.png

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

b7c821ddaa6b12bf1649df4aa7b53944.png

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

Выводы

Выводы получились вполне ожидаемые:
  • Защитить информацию на листах и код макросов VBA невозможно.
  • Работайте в последних версиях Excel 2007/2010 - у них защита лучше.
  • В старом Excel 2003 в меню Сервис - Параметры - Безопасность - Дополнительно (Tools - Options - Security - Advanced) выставляйте не стандартный 40-битный, а продвинутый 128-битный алгоритм защиты.
  • Не делайте паролей только из цифр, буквы разного регистра и спецсимволы здорово добавляют надежности (даже для старых версий Excel)
И будет вам счастье, благолепие и полная безопасность. Ну, почти. А вообще, паролей лучше не забывать, а записывать их на специальную бумажку, которую клеить на монитор :)
Виктор
1 января 2013 11:22
...Прямой перебор вариантов дает еще более веселые цифры - для 6-символьного пароля с строчными и прописными буквами, цифрами (даже без знаков препинания и прочих долларов-процентов) это больше года...

А зачем перебирать всё подряд? Достаточно собрать и проанализировать все существующие пользовательские пароли в мире. Предположим:
* ~26% населения планеты имеют доступ к интернету;
* пусть каждый из них имеет пять паролей;
* для анализа получим ~8 млрд паролей - мизер, для современных CPU/GPU

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

Для паролей сгенерированных, например, Kaspersky Password Manager, будет другой алгоритм.

Риторический вопрос автору сайта: "На вашем форуме при регистрации пользователи сильно исхитряются в придумывании пароля"? Этот же пароль они могут использовать и для своего почтового ящика, и для книги excel, и для фейсбука, и вконтакте...))) в лучшем случае один пароль с небольшими вариациями (те же закономерности)..
23 января 2014 12:38
Достаточно собрать и проанализировать все существующие пользовательские пароли в мире
Осталось заставить всех пользователей мира огласить все свои пароли :D
23 января 2014 13:11
вопрос автору сайта: "На вашем форуме при регистрации пользователи сильно исхитряются в придумывании пароля"?
Понятия не имею. Пароли пользователей я не вижу и никак увидеть/изменить не могу - они хранятся в закодированном виде (хэш).
Наверх