Как я стал взломщиком паролей. Часть 6. Ускорение и замедление
Пока я активно старался понять все тонкости процесса взлома паролей, я по-прежнему ощущал себя маленьким ребенком. Взлом набора хэшей, сгенерированных с помощью алгоритма MD5 за один проход, не требует много ресурсов даже на устаревших процессорах. Различные изменения моих собственных настроек или техники хэширования могут сделать этот процесс еще быстрее или замедлить его экспоненциально.
Быстрее. Более мощный процессор. Мой маленький эксперимент проводился на слабом ПК, который лучше подходит для сочинения поэзии, чем для сложных вычислительных процессов. Я просто хотел понять, насколько был возможен взлом пароля на маломощном компьютере. Важно помнить, что любой серьезный хакер должен использовать больше памяти и более производительный процессор, чем Core 2 Duo и процессор i5, что были у меня.
С появлением облачных вычислений амбициозные хакеры могут арендовать некоторые вычислительные мощности у Amazon и развертывать Hashcat на многочисленных виртуальных машинах, каждая из которых производит различные атаки на базы данных.
Применение графического процессора. Мой собственный эксперимент сильно отличался от экспериментов серьезных хакеров, так как я полностью полагался на процессор своего компьютера. Лучшие программы для взлома паролей на сегодняшний день могут выполнять вычисления с помощью графического процессора, а также, как правило, на гораздо более высоких скоростях, по сравнению с использованием лишь только одного центрального процессора. (Hashcat имеет два варианта, которые предназначены исключительно для использования на компьютерах с OpenCL или CUDA-совместимых графических процессорах.) Те, кто действительно хочет преуспеть во взломе хэшей (и хочет повысить температуру воздуха вокруг своего ПК) -полагаются на графический процессор.
Улучшенные методы взлома. Мой собственный эксперимент основывался только на двух простых атаках – «прямой» атаке с помощью списка слов (иногда используя правила для создания дополнительных слов) и атаке «грубой силой». Но существуют и другие виды атак, в том числе «комбинация» и «перестановка». Можно даже пропустить этап интенсивной работы процессора при формировании новых хэшей для каждого элемента в списке слов и просто использовать массивную предвычисленную таблицу хэшей, которая часто весит несколько гигабайт и уменьшает сложность взлома паролей. (Hashcat не поддерживает «Радужную таблицу» — специальный вариант таблиц поиска, использующий механизм разумного компромисса между временем поиска по таблице и занимаемой памятью).
Атаки, которые я использовал, также могут быть более эффективными. Цепи Маркова, например, полагаются на некоторую статистическую обработку больших объемов числовых данных, чтобы определить вероятность того, что заданная кодовая комбинация в пароле позволит намного быстрее провести атаку «грубой силой».
Улучшенные алгоритмы хэширования. Однако для обеспечения сохранности паролей есть множество разных способов. Прежде всего, они могут использовать улучшенные алгоритмы. Я решил начать с набора MD5-хэшей без «соли». Хэш-функции MD5 были созданы для ускорения работы, а это означает, что их намного проще взломать (и, как правило, они не рекомендуются в использовании службами безопасности). Множество других «скоростных» алгоритмов обеспечивают лучшую защиту, в том числе гораздо более безопасные BCrypt или SСrypt.
Количество времени, необходимого для взлома хэшей, резко возрастает по мере замедления скорости алгоритма хеширования.
Увеличение количества итераций. Другой распространенный способ замедления работы хакера основан на запуске алгоритмов хэширования несколько раз через хэш. Это может замедлить взлом даже при использовании MD5, причем повторы могут выполняться столько раз, сколько нужно. Запуск пароля, например, через SHA256, а затем снова и снова 500 раз, безусловно, сделает атаку с помощью списка слов и «грубой силы» медленнее, требуя от каждой попытки взлома постоянно повторять этот процесс.
В конце концов, увеличение количества повторов не остановит атаку с помощью поиска по таблице. Хотя создание таблицы займет гораздо больше времени, но как только данные сгенерируются, атаки, которые их используют, продолжатся с той же скоростью, как и любые другие атаки. Что приводит нас к …
«Соль» (модификатор). «Соль» - это строка случайных данных, которая подается на вход хеш-функции вместе с исходными данными. Представьте себе веб-сайт, который сохраняет безопасность миллионов паролей лишь только с помощью одного повторения SHA256. И 25 процентов из всех пользователей используют простые пароли «123456». К сожалению, для хакера (и к счастью для веб-сайта и его пользователей), каждый пароль необходимо будет взламывать отдельно, несмотря на то, что 250 000 из них совершенно одинаковы. Поскольку сайт предлагает уникальную случайно сгенерированную «соль» (например «0hJ3l1») к каждому паролю, то в результате хэш будет содержать другое значение. В дополнение к сохранению от взлома большинства паролей «соль» также предотвращает те методы взлома, которые основываются на «радужных таблицах».
Длина пароля. В конце концов длина пароля может быть увеличена. Поэтому взлом пароля может занять длительное время, как отмечалось выше, особенно если дополнительные символы могут быть случайными.
Как говорит Роберт Дэвид Грэм: «Дело в том, что большинство людей не понимают, что взлом «грубой силой» - это экспоненциальная проблема. Количество времени, которое требуется для взлома превышает рамки разумного».
«Люди имеют неправильное представление о том, что массовое увеличение производительности приведет к увеличению шансов на взлом паролей, но это не так. Увеличение частоты процессора моего компьютера в 20 раз лишь немного увеличит шанс взломать длинный пароль «грубой силой». Даже если взять тысячу работающих программ Amazon EC2 и супер-производительный компьютер, то длина хеша не увеличится настолько, чтобы я смог его взломать»
Оглавление
Часть 2. Восстановление паролей
Часть 6. Ускорение и замедление
Часть 7. Наставить на себя пушку
Перевод статьи: http://arstechnica.com/security/2013/03/how-i-became-a-password-cracker/
О компании StarForce
Компания «Протекшен Технолоджи» (торговая марка StarForce) – ведущий российский разработчик программных решений в области контроля и защиты программ и электронной информации от утечек, копирования и нелегального распространения. С 2000 года компания разрабатывает и внедряет ультрасовременные технологические решения, защищенные соответствующими патентами РФ, США и Канады, что позволяет обеспечить охрану интеллектуальной собственности и авторских прав во всем мире.
Являясь экспертом в области защиты цифровой информации и программного обеспечения от утечек, копирования, взлома и несанкционированного распространения, компания разработала собственную систему Управления Цифровыми Правами (StarForce DRM), открывающую перед нашими клиентами широчайшие возможности по доставке цифрового контента и слежению за продажами. Технологии StarForce внедрены в таких компаниях как РЖД, Corel, 1С, Mail.ru, Аэрофлот, SUN InBev Russia, АМД Лаборатории, ATC International, МедиаХауз, Руссобит-М, Новый Диск, Бука, Snowball, 2Play, GFI, CENEGA, Akella и в ряде других.
Контакты для прессы:
pr@star-force.com