Pull to refresh

Брюс Шнайер об алгоритмах подбора паролей

Reading time3 min
Views2.9K
Брюс Шнайер в своей авторской колонке в Wired рассказывает об атаке методом оффлайнового перебора паролей. Такой метод применяется очень часто, хотя в некоторых ситуациях он непригоден, например, для подбора пин-кода в банкомате.

Программы для оффлайнового подбора паролей стали как никогда быстрыми и умными. Утилита Password Recovery Toolkit (PRTK) от компании AccessData способна проверять до нескольких сотен тысяч паролей в секунду, а наиболее очевидные пароли она проверяет в первую очередь.

Таким образом, безопасность пароля зависит от двух факторов: от способности системы замедлять перебор паролей и от того, является ли пароль «более очевидным» с точки зрения хакерской программы.

Скорость подбора пароля напрямую зависит от того, каким образом этот пароль обрабатывается программой. Хорошая программа не использует пароль в качестве криптографического ключа, а преобразует пароль в криптографический ключ. В этом случае она может замедлить процесс проверки пароля на сколь угодно долгое время.

Разные программы показывают совершенно разные результаты в этом отношении. Например, проверка пароля для приложений Microsoft Office настолько примитивна, что утилита PRTK способна проверять до 350 тыс. вариантов в секунду (на процессоре Pentium 4 с частотой 3 ГГц). Пароль на WinZip 7.0 подобрать еще проще: эта программа позволяет проверять более миллиона паролей в секунду. Для сравнения, в девятой версии WinZip криптосистема была значительно улучшена, так что скорость перебора упала до 900 в секунду. Таким же «крепким орешком» для PRTK является и программа PGP.

Для пароля из шести англоязычных символов (без цифр) в одном регистре количество вариантов при переборе составляет более 308 млн комбинаций: от “aaaaaa” до “zzzzzz”. Однако, умная программа PRTK не перебирает все комбинации подряд.

Эрик Томпсон из компании AccessData (разработчик PRTK) объясняет, что типичный пароль состоит из корня и приставки. Корень пароля — если и не словарное слово, то, обычно, что-нибудь произносимое. Приставка — это или суффикс после корня (в 90% процентов случаев) или префикс перед корнем (10%).

В первую очередь программа PRTK проверяет базу из примерно тысячи самых распространенных паролей, таких как “password1”, “123456” и т.д. После этого программа проверяет их в комбинации с сотней самых распространенных приставок (“1”, “69”, “abc” и т.д.). Такая нехитрая проверка позволяет успешно определить 24% всех паролей всего за 100 тыс. комбинаций.

На втором этапе программа проверяет расширенный набор корней и суффиксов. Тестируются 5.000 самых распространенных слов, 10.000 имен, дополнительный словарь из 100.000 элементов и словарь фонем (0,01% от теоретически возможного набора комбинаций). Для генерации фонем используются модели Маркова, известные в лингвистике. Кроме того, PRTK проверяет все вышеназванные варианты, но с часто встречающимися заменами символов, например, “О” на “0”, “S” на “$” и т.д.

Словарь приставок включает в себя все комбинации из двух и трех цифр, даты от 1900 до 2006, единичные символы, комбинации символа и цифры, все комбинации из двух символов.

Обычно программу PRTK запускают в компьютерной сети. Крупные структуры, как ЦРУ или ФБР могут запустить задачу на сотнях и тысячах компьютеров одновременно. Более того, компания Tableau уже наладила выпуск дополнительных FPGA-приставок, которые ускоряют перебор вариантов для «медленных» программ, таких как PGP и WinZip. Ускорение может быть в 150–300 раз.

По словам Эрика Томпсона, за две-четыре недели работы его программа взламывает от 55% до 65% всех паролей. И это без малейшего использования социального инжиниринга, то есть абсолютно ничего не зная о пользователе.

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

Конечно же, пароль нигде нельзя хранить в открытом виде. Другая программа Forensic Toolkit от компании AccessData занимается тем, что сканирует все файлы в локальной сети (электронная почта, история мгновенных сообщений, файл подкачки), чтобы найти все упоминающиеся там слова. Из этих слов составляется дополнительный словарь. Кстати говоря, операционная система компьютера хранит пароли в оперативной памяти в открытом виде и в любой момент может записать этот участок памяти на жесткий диск. Туда может попасть любой пароль, который вы ввели на клавиатуре.
Tags:
Hubs:
Total votes 28: ↑25 and ↓3+22
Comments37

Articles