Полную версию статьи ты можешь
прочитать в декабрьском
номере "Хакера"

За окном тихая темная ночь, и только слабый шум кулера нарушает спокойствие. Ты бросаешь свой взгляд на часы в трее и понимаешь, что скоро утро, и что снова вся ночь прошла в попытках взломать сайт какой-то конторы. Вдруг курсор твоей мыши замирает возле файла topsecret.rar. Двойной щелчок по имени этого файла, и... перед тобой - стандартное окно с предложением ввести пароль. Еще не до конца осознав, что произошло, ты нервно стучишь по клаве: qwerty, 123, asdf, sex, но, кроме сообщения о невозможности извлечения файлов, ничего не видишь. Давай попробуем разобраться, как заполучить заветные файлы TopSecret-архива. Если ты внимательный читатель, то помнишь, что уже была статья, описывающая проги для взлома архивов. Мы рассмотрим этот вопрос в немного другом ракурсе.

 

О методах шифрования, применяемых в архиваторах

Сегодня существует довольно много различных алгоритмов криптографической защиты информации. Из числа наиболее современных можно выделить 3DES, IDEA, Blowfish, Cast-128 и некоторые из AES, включая новый AES Rijndael наряду с ZIP-сжатием. А если говорить о методах шифрования, реализованных в программах-архиваторах, то здесь выбор более ограничен. В подавляющем большинстве случаев в популярных архиваторах реализован какой-нибудь один метод. Чаще всего ZIP-кодирование или AES Rijndael. Исключение составляет PowerArchiver, в котором пользователю предоставляется целых 5 вариантов кодирования сжатых данных: Blowfish (128 бит), DES (64 бит), Triple DES (128 бит), Rijndael AES (128 бит) и обычное ZIP-шифрование. Следует признать, что стандартное ZIP-кодирование не относится сегодня к числу надежных, равно как и шифрование с применением алгоритма DES (Data Encryption Standard). Последний в течение почти 20 лет оставался федеральным стандартом шифрования, как наиболее надежный являлся наиболее часто используемым алгоритмом симметричного блочного шифрования, и применялся многими структурами, в том числе банками и службами обращения финансов. Однако сегодня вычислительные мощности значительно возросли, и уже не составит большого труда перебрать все возможные варианты ключей, ведь длина ключа в DES - всего 8 байт. Малый размер ключа и низкая скорость шифрования - факторы, которые позволяют быстро взломать этот шифр при наличии мощного компа. 

Начиная с середины 90-х годов стали появляться кандидаты на замену DES, наиболее известные из которых — Triple DES, IDEA и Blowfish. Первый и последний применяются и сегодня в разных программных средствах для шифрования данных, в том числе в архиваторах. А IDEA используется PGP и рядом других криптографических программ. Triple DES («тройной DES», так как трижды шифрует информацию «обычным» алгоритмом DES) свободен от основного недостатка прежнего варианта — короткого ключа. Здесь ключ в 2 раза длиннее, и потому надежность «тройного» DES намного выше. Но Triple DES унаследовал и слабые стороны своего предшественника - отсутствие возможностей для параллельных вычислений при шифровании и низкую скорость. 

Современный 64-битный блочный шифр Blowfish с ключом переменной длины от 32 до 48 бит в настоящее время считается достаточно сильным алгоритмом. Он был разработан в 1993 году в качестве замены уже существующих алгоритмов и является намного более быстрым, чем DES, Triple DES и IDEA. 

Однако наиболее надежным сегодня признается Rijndael — новый стандарт шифрования AES. Он имеет 3 размера ключа: 128, 192 и 256 бит и обладает массой достоинств. К их числу относятся высокая скорость шифрования, минимальные требования к вычислительным ресурсам, устойчивость ко всем известным атакам и легкая расширяемость (при необходимости можно увеличить размер блока или ключа шифрования). Более того, в ближайшем будущем AES Rijndael останется самым надежным методом, поскольку если даже предположить, что появится компьютер, способный проверить 255 ключей в секунду, то потребуется приблизительно 149 триллионов лет, чтобы определить 128-битный ключ
AES!

 

Шифрование в ZIP-архивах


До боли знакомое многим 
окно с требованием 
ввести пароль

Напомню, что формат ZIP считается мировым стандартом архивирования и обладает самой длинной историей, а архиватор WinZip стал самым скачиваемым продуктом. О его популярности свидетельствует и тот факт, что большинство архивов в интернете имеют формат ZIP. Возможности WinZip достаточно широки для того, чтобы обеспечить надежное и эффективное архивирование данных. WinZip ориентирован преимущественно на ZIP-архивы, но при этом поддерживает и популярные архивные форматы TAR, GZIP, UUencode, XXencode, BinHex, MIME, ARJ, LZH и ARC. В то же время существенным недостатком программы можно считать тот факт, что WinZip не работает с широко используемыми архивными форматами, к примеру с RAR, ACE и JAR. 

Но вернемся к теме шифрования данных в WinZIP. Долгое время возможность парольной защиты в этом архиваторе была скорее маркетинговым ходом, нежели действительно полезной функцией. В интернете существовало огромное количество прог, позволяющих подобрать пароль к таким архивам за считанные часы, если не минуты. Ситуация изменилась лишь недавно, с выходом последней, девятой версии архиватора. Тогда в WinZip появилась поддержка 128- и 256-битного шифрования по алгоритму Rijndael. Процедура кодирования осталась столь же простой, что и раньше: требуется только выбрать степень шифрования и дважды ввести пароль. Другое дело, что многие юзеры по-прежнему работают со старыми версиями программы и до сих пор питают иллюзии по поводу защищенности своих архивов. Остановимся на этом подробнее.

 

Взлом ZIP-архивов

Итак, чтобы взломать ZIP-архив, созданный ранней версией WinZip, особых усилий не требуется. При наличии среднестатистического компа скорость перебора паролей достигает несколько миллионов в секунду. И если пароль на архив ставил простой смертный, то при таких темпах перебора подобрать его удается быстро. Уверен, что многим не раз уже приходилось заниматься подобного рода перебором, и никаких вопросов тут возникнуть не должно. А что если не хочется или нет времени тупо перебирать миллионы возможных комбинаций символов? К нашей радости, есть и другой способ. Стоит упомянуть известную многим программу Advanced Archive Password Recovery от фирмы «Элкомсофт», предназначенную для подбора паролей ко многим типам архивов. Ей поддерживаются такие типы атак:

  1. банальный перебор паролей;
  2. перебор паролей по маске;
  3. перебор паролей по словарю;
  4. plaintext-атака;
  5. гарантированная расшифровка WinZip;
  6. пароль из ключей.

Мы подробнее остановимся на plaintext, гарантированной расшифровке WinZip и пароле из ключей.

Итак, что же это за атака такая - plaintext? Как известно, ZIP-файлы шифруются по довольно сильному алгоритму: пароль на архив не сохраняется внутри этого самого архива, а конвертируется в 32-битный ключ, который и используется для шифрования архива. Но этот алгоритм не такой крутой, как, например, DES, RSA, IDEA и т.д. Один из способов взлома защиты ZIP-файлов предполагает использование архива с точной копией одного из файлов зашифрованного архива, сделанного тем же архиватором и с той же степенью компрессии. Он не должен быть меньше 12 байт. Атака происходит в 2 этапа: отброс заведомо неподходящих ключей, а после - поиск подходящих. На первой фазе работы, которая занимает от одной до трех минут (это зависит от размера архива с одним файлом и количества твоей оперативки), оставшееся время не может быть вычислено, так что большую часть времени процесс-индикатор держится на нуле. К счастью, этот тип атаки не настолько долог, как простой перебор всех возможных паролей, что позволяет использовать его для более быстрого вскрытия паролей на ZIP- и GZIP-архивы. Минусом атаки этого типа является то, что нужно иметь незашифрованный файл идентичный зашифрованному, что редко бывает осуществимо. 


Рабочее окно 
Advanced Archive 
Password Recovery

Теперь поговорим о гарантированной расшифровке WinZip. Эта атака схожа с предыдущей, однако не требует наличия никаких дополнительных архивов с файлами. В самом же запароленном архиве должно быть как минимум 5 файлов. Атака работает с архивами, созданными при помощи WinZip не выше версии 8.0 включительно, а также с другими архиваторами на основе исходников Info-ZIP. Если архив имеет меньше пяти файлов, программа выдаст сообщение об ошибке. Атака состоит из трёх этапов: первые 2 ищут подходящие ключи, а последний на основе этих ключей генерирует пароль (не более 10 символов). Первая часть атаки обычно длится несколько минут (прога может показывать оставшееся время как несколько часов, но это теоретический максимум), вторая - около получаса (тут тоже не стоит обращать внимания на предсказания программы), а последняя – 2-3 минуты. Атака работает с большинством ZIP-архивов, и даже если пароль достаточно длинен и не был найден на последней стадии атаки, программа сможет расшифровать архив, просто снимая парольную защиту. Этот тип атаки базируется на плохом генераторе случайных чисел, который использовался в WinZip до версии 8.1. Однако даже версии WinZip ниже 8.1 в 0,4% случаях генерируют «нормальные» архивы, которые не могут быть взломаны таким образом. В подобном случае программа покажет предупреждение, которое означает, что на первой стадии атаки не будет найдено ни одного ключа.

И, наконец, о пароле из ключей. Если ты внимательно читал статью, то заметил, что описанные выше методы атаки сначала пытаются найти ключи шифрования для запароленных архивов и расшифровывают сам архив, если не было найдено ни одного пароля. Однако использоваться они могут только для архивов с паролями длинной менее 10 символов. Для архивов с более длинными паролями существует специальный тип атаки. Если у тебя есть ключи шифрования для запароленного архива, и ты хочешь найти этот длинный пароль, выбери «Пароль из ключей» в качестве атаки и введи эти ключи на закладке Plaintext. Обычно эта атака используется, чтобы узнать пароль на архив длинной 14-15 символов. Лучше всего в свойствах атаки установить её начало с седьмого символа пароля, так как его начало может быть восстановлено из «хвоста». Вводя позицию для старта, стоит помнить, что в любом случае атака начинается с конца пароля. Об этом можно говорить часами, но нам давно пора оставить в покое ZIP-архивы и посмотреть, какие сюрпризы приготовили нам другие архиваторы.

 

Взлом RAR-архивов версии 3.X

Вот и дошла очередь до защищенного паролем файла topsecret.rar, о котором шла речь в начале статьи. Сказать честно, тут перспективы не такие радужные, как в случае с ZIP-архивами. Говорят, что программеры из «Элкомсофта» потратили немало времени в поисках уязвимостей шифрования в WinRar. К сожалению, результатов эта работа не принесла. Как и в других архивах, защита информации от несанкционированного доступа осуществляется в WinRar в первую очередь за счет шифрования данных. Пароль можно установить как по умолчанию (в этом случае архивирование с паролем будет продолжаться до его отмены), так и непосредственно в процессе архивирования в случае однократного применения.

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

Как уже говорилось выше, в формате ZIP применяется собственный алгоритм шифрования, который в целом считается менее надежным, чем AES-128, используемый в RAR. Помимо парольной защиты, в среде Windows NT/2000/XP допустимо сохранение данных о правах доступа (данных о владельце, группе, возможностях и аудит-информацию). Естественно, что это реально только при наличии у пользователя достаточных полномочий. Сохранение этой информации может сделать невозможным обращение других лиц к файлам после распаковки (это зависит от файловой системы и собственно прав доступа), но замедляет процесс архивирования/разархивирования.

Итак, как ты уже понял, единственный способ взлома запароленного RAR-архива - банальный брутфорс. К сожалению, в связи с используемым в WinRar методом шифрования скорость перебора паролей не превышает 20
в секунду, даже на P4 3,8 Ghz и 1 Gb DDRII памяти :(. Остается запастись словарем для перебора и надеяться, что юзер использовал простой и/или короткий пароль.

 

Использование сети для брутфорса RAR-архивов


Архивирование с паролем в WinRar

Для ускорения процесса перебора паролей можно использовать не один комп, а целую сеть. Понятное дело, чем большим количеством компов ты располагаешь, тем быстрее получишь заветный пароль. Однако не спеши сразу напрягать всю сеть. Лучше вспомни математику и попытайся посчитать, сколько времени займет брутфорс. К примеру, тебе известно, что некто в качестве пароля к RAR-архиву использовал слово из семи маленьких латинских букв (всего их 26). Отсюда следует, что пароль может состоять из 8031810176
(26*7) всевозможных комбинаций. Проверяя по 20 паролей в секунду, верный будет найден через приблизительно 12,7 года (8031810176/20/3600/24/365)! Сомневаюсь, что кто-то попытается проделать подобное на практике :). Ситуация кардинально изменится, если использовать целую сеть, скажем, из 80 компов. Несложно посчитать, что в этом случае все комбинации будут проверены за 0,16 года, что составляет примерно 58 дней. 

Вероятно, у тебя возник вопрос, а как же организовать этот самый перебор по сети. Рассмотрим это на примере проги Advanced Archive Password
Recovery. К сожалению, в ней нет специализированных возможностей для брутфорса по сети, но зато есть функция указания набора символов и длины пароля для перебора. Установив прогу на каждый комп в сети и манипулируя этими параметрами, мы задаем диапазон для перебора. А чтобы не бегать к каждой машине сети лично, можно воспользоваться специализированным софтом.

 

Краткие выводы

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

  1. применяй архиваторы с самым надежным методом шифрования AES Rijndael с 128-битным ключом: WinRar, PowerArchiver или UltimateZip; 
  2. старайся выбирать форматы, не поддерживаемые программами восстановления паролей, например RAR версий 3.0 и выше, TAR, JAR и др.;
  3.  задавай длинные (не менее восьми символов) пароли; с этой позиции подходят любые из перечисленных архиваторов, так как в каждом из них допустимая длина пароля превышает 56 символов, что вполне достаточно;
  4. останавливай выбор на нетривиальных паролях; используй в пароле пробелы и комбинации цифр, символов и букв, чтобы в итоге получалась не фраза из реальных слов, а абракадабра, - так пароль невозможно будет подобрать по словарю.

Ссылки:



Полную версию статьи ты можешь
прочитать в декабрьском
номере "Хакера"

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии