Утилиты для подбора паролей к архивам и документам

 

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

Причем если ранее создание подобных утилит было уделом хакеров, то сегодня этим занимаются крупные компании, а сами утилиты продаются за большие деньги. Звучит, конечно, очень забавно. Где ж это видано, чтобы утилиты для взлома стоили денег? Это ж посягательство на святая святых, на устои самого Интернета! Ведь существует, пусть и негласное, соглашение, что все хакерские утилиты распространяются на безвозмездной основе.

Нет, мы, конечно, понимаем, что на любую подобную утилиту можно найти соответствующий кряк, но искать кряк на программу для кряка — это какое-то безумие! Впрочем, о чем это мы? Какой кряк? Ведь есть же модные формулировки типа «аудит паролей» или «восстановление забытых паролей». Да, именно аудит и восстановление, а никакой не кряк — в этом случае все пристойно, а предложение выложить несколько сотен баксов за программу для аудита и восстановления паролей выглядит весьма уместно. Забыли свой пароль и хотите его восстановить? Вот вам программа для этого. А как уж вы этой программой будете в действительности пользоваться — дело вашей совести. Тем не менее отрицать, что подобные программы могут пригодиться забывчивым пользователям, было бы неверно.

Впрочем, хватит рассуждать! Программы для подбора паролей (а попросту — для взлома) существуют, и в немалом количестве, а потому свою задачу мы видим в том, чтобы рассмотреть все наиболее популярные утилиты, сравнить их друг с другом и в конечном счете ответить на главный вопрос: имеет ли смысл вообще защищать документы паролями и если да, то какими должны быть пароли, чтобы их нельзя было подобрать?

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

Общие понятия парольной защиты

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

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

Самый простой способ заключается в том, чтобы сохранить установленный пользователем пароль в самом файле документа. В этом случае доступ к документу (или к его редактированию) пользователь получит только при совпадении вводимого им пароля с установленным, в чем легко убедиться путем их прямого сравнения. Однако данный способ парольной защиты не выдерживает никакой критики — ведь если пароль в открытом виде сохраняется в самом документе, то ничто не мешает извлечь его оттуда. К примеру, его можно подсмотреть с помощью любого HEX-редактора. Тем не менее, несмотря на свою ненадежность, данный способ парольной защиты иногда применяется, в частности в документах MS Office (Word, Excel) предусмотрено использование пароля защиты документа от записи, который сохраняется в самом документе в чистом виде (в unicode). Понятно, что данную защиту можно легко обойти как с применением специализированных утилит, так и «вручную».

Для того чтобы исключить возможность «подсмотреть» пароль, который сохраняется в самом документе или в файле, часто используется несколько более продвинутый способ защиты с помощью хэш-функций (hash) паролей. Хэш-функция — это хитрый метод одностороннего преобразования, посредством которого для исходного блока данных произвольной длины вычисляется уникальный идентификатор фиксированной длины. Особенность алгоритма хэширования заключается в том, что, зная хэш (результат преобразования), принципиально невозможно вычислить исходный блок данных. Если мы говорим о хэш-функции пароля, то это не что иное, как набор байт, полученных из пароля по определенному алгоритму. Следовательно, зная хэш-функцию пароля, сам пароль вычислить нельзя. Собственно, невозможность расшифровки пароля по его хэш-функции (реализации обратного преобразования) и заложена в понятии одностороннего (то есть только в одну сторону) преобразования. Причем независимо от длины пароля его хэш имеет фиксированную длину. Алгоритмов хэширования существует бесчисленное множество, а кроме того, их несложно придумать самостоятельно.

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

В документах Word пароль используется для защиты документа от изменения (документ можно открыть только в режиме чтения, а возможность его редактирования блокируется парольной защитой). Устанавливаемый пользователем пароль защиты документа от изменения хэшируется и сохраняется в заголовке самого документа. Длина хэша в этом случае составляет 32 бита (4 байта).

Данный способ защиты тоже не является стойким. Такую защиту легко обойти с помощью соответствующих утилит. Дело в том, что если длина хэша составляет всего 32 бита, то количество возможных хэш-функций равно всего 232 = 4 294 967 296, что не так уж и много. Естественно, одной и той же хэш-функции может соответствовать несколько различных паролей, поэтому при такой длине хэша подобрать подходящий пароль несложно, причем совсем необязательно, что это окажется именно тот пароль, который был изначально установлен пользователем. Кроме того, с помощью соответствующих утилит можно в самом документе изменить хэш на тот, пароль для которого известен.

Абсолютно такой же способ парольной защиты с помощью хэш-функций применяется и при защите документов Excel, когда посредством пароля документ защищается от изменения. Правда, в документах Excel существуют и другие специфические пароли, которые устанавливаются на книгу или на отдельный лист (пароль защиты от видоизменения структуры книги, пароль защиты на редактирование листа). Принцип парольной защиты на редактирование листа примерно такой же, что и на изменение документа. Различие лишь в том, что в данном случае длина хэша еще меньше — всего 16 бит (2 байта). В этом случае существует всего 216 = 65 536 различных вариантов хэшей и подобрать такой пароль не составляет особого труда. Чтобы самостоятельно убедиться в том, что при такой защите существует множество разных паролей, с помощью которых можно снять защиту, попробуйте защитить лист паролем «test», а потом снять защиту паролем «zzyw».

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

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

Данный алгоритм парольной защиты с шифрованием применяется для реализации защиты на доступ (открытие) документов Word и Excel. При установке такой защиты документ шифруется по симметричному алгоритму RC4, причем в документе сохраняется уже не хэш пароля, а зашифрованный хэш пароля (вспомните контрольные последовательности).

Данный алгоритм защиты является достаточно стойким, и обойти такую защиту с кондачка уже не получится.

Длина пароля на открытие документов MS Office Word 97-2003 и Excel 97-2003 ограничивается 16 символами. Попробуем рассчитать, сколько возможных паролей при этом вообще может существовать, учитывая, что в качестве символа можно использовать спецсимволы (30 символов), цифры (10 символов), а также заглавные и строчные буквы как английского (52 символа), так и локализованного алфавита (66 символов). Итого, количество возможных символов — 30 + 10 + 52 + 66 = 158. При максимальной длине пароля в 16 символов получим возможных комбинаций 1581 + 1582 +… + 15816. Число это просто огромно, и с задачей перебора всех возможных паролей за приемлемое время не справится ни один суперкомпьютер.

Однако и в данном случае есть одно «но»! Алгоритм симметричного шифрования RC4 может использовать ключи длиной до 128 бит, однако экспортные ограничения на криптоалгоритмы не допускают применения секретного ключа такой длины. Поэтому ключ, используемый при шифровании RC4 в документах MS Office, имеет длину только 40 бит, что существенно снижает стойкость этого алгоритма.

И если задача подбора пароля методом перебора всех возможных комбинаций относится к классу нерешаемых, то реализовать перебор всех возможных секретных ключей можно на обычном ПК за приемлемое время. Действительно, при длине секретного ключа 40 бит количество возможных секретных ключей составляет 2 40 = 1 099 511 627 776. Перебор всех этих комбинаций на современном ПК займет менее месяца.

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

Кроме атаки по ключу, гарантированно позволяющей открыть документ, существуют и другие способы вскрытия закрытых паролем документов. Наиболее распространенный способ — это подбор пароля.

Разные утилиты обеспечивают различную скорость перебора пробных паролей, в них могут быть реализованы и разные алгоритмы генерации пробных паролей (типы атак). Традиционно выделяют три типа атак на пароли:

  • атака по словарю;
  • атака методом последовательного перебора;
  • атака по маске.

Атака по словарю

При атаке по словарю в утилитах используется внешний словарь и для каждого из слов словаря последовательно вычисляются хэши, которые затем сравниваются с хэшем пароля. Преимуществом данного метода является его высокая скорость, а недостатком — большая вероятность отсутствия пароля в словаре. Для увеличения эффективности атаки по словарю в некоторых утилитах предусмотрена возможность производить дополнительные настройки такой атаки. В частности, к словарю можно добавлять сочетания соседних клавиш (типа последовательностей qwert и др.), проверять повтор слов (например, useruser), обратный порядок символов в словах (например, resu), конкатенацию с обратным порядком символов (в частности, userresu), усеченные слова, слова без гласных, транслитерацию букв (типа parol). Кроме того, можно проверять замену раскладки на латинскую (например, слово «пароль» в латинской раскладке будет выглядеть как «gfhjkm») и на локализованную (слово «password» в русской раскладке — «зфыыцщкв»). К тому же при атаке по словарю имеется возможность подключать несколько словарей.

Кроме того, в некоторых утилитах может быть реализована так называемая гибридная атака, которую можно рассматривать как вариант атаки по словарю. При подборе паролей методом гибридной атаки к каждому слову или к модификации слова словаря добавляется несколько символов из предопределенного набора справа и/или слева. Для каждой получившейся комбинации вычисляется хэш, который сравнивается с хэшем пароля.

Атака методом последовательного перебора

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

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

Атака по маске

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

Классификация программ

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

Среди многоцелевых программных пакетов можно выделить Accent Office Password Recovery v2.50 компании AccentSoft Team (www. passwordrecoverytools. com ), Passware Kit Enterprise 7.11 компании Passware (www. lostpassword. com ), Elcomsoft Password Recovery Bundle от компании ElcomSoft (www. elcomsoft. com. www. passwords. ru ) и Office Password Recovery Мастер v. 1.4 (www. rixler. com ).

Многие утилиты, входящие в пакет Elcomsoft Password Recovery Bundle, можно приобрести отдельно.

За исключением Office Password Recovery Мастер v. 1.4, все пакеты являются платными, и только на сайте www. rixler. com можно найти отметку: «Данные программы распространяются абсолютно бесплатно на территории Российской Федерации и стран СНГ».

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

Далее мы рассмотрим несколько наиболее популярных пакетов и отдельных утилит, позволяющих подбирать пароли к различным файлам. Однако, говоря о многоцелевых пакетах, следует иметь в виду, что некоторые из них (например, Elcomsoft Password Recovery Bundle и Accent Office Password Recovery v2.50) включают десятки различных утилит. Однако в данной статье мы рассмотрим лишь те утилиты, которые позволяют подбирать пароли к DOC-, XLS-, MBD-, PDF-, RAR - и ZIP-файлам.

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

Таблица 1. Результаты тестирования программы Accent Office Password Recovery v2.50

 



  • На главную