0Pricing
Cryptology Academy · Урок

Атаки по словарю и радужные таблицы

Узнайте, как предварительно вычисленные таблицы хешей ускоряют взлом паролей и как соль делает такие атаки неэффективными

«Атаки по словарю и радужные таблицы» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Атаки по словарю: взлом на основе списка слов

Атака по словарю не проверяет все возможные комбинации, а использует составленный список вероятных паролей. Реальные пользователи выбирают пароли из ограниченного набора: распространённых слов, имён, дат и фраз. Проверить список из миллиона вероятных паролей намного быстрее, чем все возможные строки длиной 8 символов (200 триллионов комбинаций). Атаки по словарю успешны потому, что выбор паролей людьми предсказуем.

rockyou.txt: набор данных об утечке паролей

В 2009 году социальная сеть RockYou стала жертвой утечки, в результате которой были раскрыты 32 миллиона паролей пользователей в открытом виде. Получившийся список, теперь называемый rockyou.txt, содержит примерно 14 миллионов уникальных паролей и является стандартным первым списком слов, используемым при взломе паролей. Анализ rockyou.txt показывает, что наиболее распространённые пароли — это 123456, password и варианты имён, дополненные цифрами.

Комбинированные атаки: объединение словаря и правил

Комбинированная атака расширяет исходный список слов, применяя правила преобразования. Слово password превращается в Password, P@ssword, p4ssword, password1, password123 и ещё сотни вариантов. Механизм правил Hashcat позволяет точно указать применяемые преобразования: сделать первую букву заглавной, добавить две цифры, заменить буквы символами. Это значительно расширяет охват, не требуя проверки действительно случайных строк.

Атаки по правилам и замены букв цифрами

Когда-то считалось, что замены букв цифрами (e=3, a=4, i=1, o=0, s=5) повышают безопасность паролей. Инструменты взлома по правилам включают такие замены в стандартный набор преобразований. Пароль s3cur1ty элементарно взламывается по основе, соответствующей слову «безопасность», с применением правила замены букв цифрами. Инструменты взлома также проверяют распространённые шаблоны: добавление !, 123 или текущего года к любому слову из словаря.

Радужные таблицы: заранее вычисленные цепочки хешей

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

Компромисс между временем и памятью в радужных таблицах

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

Соль защищает от радужных таблиц

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

MD5 без соли: взламывается мгновенно

Многие ранние веб-приложения хранили пароли в виде хешей MD5 без соли. MD5 для строки password равен 5f4dcc3b5aa765d61d8327deb882cf99 — это фиксированное значение. Любой, кто уже видел этот хеш или найдёт его в заранее вычисленной базе данных, мгновенно узнает пароль. Такие сайты, как CrackStation, хранят миллиарды заранее вычисленных хешей MD5 и SHA-1. Распространённые пароли без соли взламываются менее чем за секунду.

Меня взломали

Сервис Have I Been Pwned (HIBP), созданный исследователем в области безопасности Troy Hunt, объединяет хеши паролей из крупных утечек данных. Пользователи могут проверить, появлялись ли их адрес электронной почты или пароль в утечке. Разработчики могут использовать API HIBP, чтобы проверять предполагаемые пароли по 850 миллионам скомпрометированных хешей с помощью модели k-анонимности: API получает первые 5 шестнадцатеричных символов хеша SHA-1 и возвращает совпадающие окончания, не позволяя серверу узнать хеш целиком.

Подстановка учётных данных из списков утёкших паролей

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

Защита: адаптивное хеширование с солью

Безопасное хранение паролей объединяет использование соли с медленной адаптивной хеш-функцией. bcrypt, Argon2 и scrypt разработаны так, чтобы требовать значительных вычислительных затрат: на вычисление одного хеша уходят миллисекунды, а не микросекунды. Это снижает пропускную способность злоумышленника с миллиардов попыток в секунду до тысяч. Параметр стоимости можно увеличивать по мере ускорения оборудования, сохраняя постоянное требование к объёму работы. Эти алгоритмы являются современным стандартом хранения паролей.

Соль против радужных таблиц

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

Атаки по словарю и радужные таблицы: основные выводы

Атаки по словарю проверяют вероятные пароли, а не все комбинации. rockyou.txt содержит 14 миллионов примеров из реального мира. Комбинированные атаки и атаки по правилам расширяют списки слов с помощью преобразований. Радужные таблицы обеспечивают мгновенный поиск для хешей без соли. Соль предотвращает использование радужных таблиц, делая каждый хеш уникальным. HIBP проверяет, появлялись ли пароли в известных утечках. Для безопасного хранения необходимы адаптивные хеш-функции, такие как bcrypt и Argon2.

Часто задаваемые вопросы

Урок «Атаки по словарю и радужные таблицы» бесплатный?

Да — полный текст урока «Атаки по словарю и радужные таблицы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Атаки по словарю и радужные таблицы»?

Узнайте, как предварительно вычисленные таблицы хешей ускоряют взлом паролей и как соль делает такие атаки неэффективными Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Атаки по словарю и радужные таблицы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Как работают атаки перебором
  2. Атаки по словарю и радужные таблицы
  3. Почему важна длина криптографического ключа
  4. Ограничение частоты запросов и блокировка учётных записей
← Назад к Cryptology Academy