Как вы уже слышали Брайан Кребс недавно проводил аудит паролей, полученных после взлома antichat.ru (сама база была получена где-то год назад и уже не актуальна!). Честно говоря, не очень понимаю чем занимались его видеокарты 18 дней, победив только 44% паролей. Мне на довольно скромном железе удалось подобрать 77% паролей за 8 часов. Исходя из таких несколько пугающих цифр, особенно для сайта тематически связанного с информационной безопасностью, у меня есть несколько рекомендаций о том какие пароли никогда не следует использовать, дабы они не были подобраны за пару минут.

Я пользовался утилитой The UDC, которую создал сам (кстати в настоящий момент она бесплатно доступна «с потрохами»), она не поддерживает вычисления на видеокартах и на моем E8400 перебирает в среднем 5 миллионов паролей в секунду (просто чтобы не было иллюзии, что успешность перебора определяет только скорость). Вот генерация паролей. В результате я нашел 31790 паролей из 41037 MD5 хешей. Как мне это удалось?

Цифры

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

Итак, запускаю перебор, иду пить кофе.

Итого получаю 15759 найденных паролей! Это почти половина всех найденных. За пять-то минут.

Кому-то кажется, что если понаписать цифр «от души», штук эдак 20, то такой пароль можно считать трудно подбираемым. Отнюдь. Человек не является хорошим генератором случайных чисел, ему свойственно выбирать какие-то более удобные или красивые комбинации подсознательно.

На базе этого замечания была применена техника частотного анализа; я буду применять ее и дальше, и озаглавлю «атакой релевантных сочетаний». Итак, берем уже найденные 15759 цифровых паролей, и считаем количество включений каждой подстроки. Скажем, подстрока 123 является самой частой среди трехсимвольных комбинаций, а строка 1111 среди четырехсимвольных (так вот устроены уже найденные пароли). Сортируем все подстроки по частоте, выбираем N самых частых (например 50000), получается словарь частых сочетаний.