Что такое атака по словарю?

Для аутентификации на веб-сайте вам необходимо указать имя пользователя и пароль. Затем сайт проверяет предоставленные вами данные аутентификации, сравнивая их с данными, хранящимися в его базе данных. Если данные совпадают, доступ предоставляется. Если данные не совпадают, в доступе будет отказано.

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

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

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

Взлом хэшей паролей смартом

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

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

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

Делать обоснованные предположения

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

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

Показатели успеха можно еще больше повысить с помощью алгоритмов искажения слов. Эти алгоритмы берут каждое слово из словаря паролей, а затем немного изменяют его. Эти модификации, как правило, представляют собой замену стандартных символов и добавление конечных цифр или символов. Например, люди часто заменяют букву «e» на «3», а «s» на «$» или добавляют восклицательный знак в конце. Алгоритмы искажения слов создают дубликаты каждой записи в словаре паролей. Каждый дубликат имеет разные варианты этих замен символов. Это значительно увеличивает количество угадываемых паролей, а также повышает вероятность успеха, в некоторых случаях превышающую 90%.

Заключение

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

Одна из главных вещей, которую вы должны сделать, придумывая пароль, — убедиться, что он не появится в списке слов. Один из способов сделать это — создать сложный пароль, другой — сделать длинный пароль. Как правило, лучший вариант — сделать длинный пароль из нескольких слов. Просто важно, чтобы эти слова не составляли настоящую фразу, поскольку об этом можно было бы догадаться. Они должны быть совершенно не связаны. Рекомендуется выбрать пароль длиной более 10 символов, из которых 8 являются абсолютным минимумом.