0Pricing
Cryptology Academy · Урок

Фундаментальная проблема аутентификации по паролю

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

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

Традиционная модель паролей

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

Компрометация сервера и взлом хешей

Если злоумышленник взламывает сервер и крадёт базу паролей, он может проводить автономную словарную атаку с полной скоростью GPU без ограничений частоты запросов. Современные GPU способны проверять миллиарды вариантов паролей в секунду для хешей bcrypt или SHA-256, поэтому слабые и распространённые пароли восстанавливаются без труда.

Повторное использование паролей усиливает последствия взлома

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

Фишинг обходит серверную защиту

Усиление защиты паролей на стороне сервера (надёжное хеширование, добавление соли, ограничение частоты запросов) не защищает от фишинга. Когда пользователь вводит пароль на поддельном сайте, злоумышленник напрямую получает пароль в открытом виде, независимо от того, насколько хорошо легитимный сервер его хранит. Сегодня фишинг является основным способом кражи учётных данных.

Масштабная подстановка учётных данных

Базы данных с миллиардами пар «имя пользователя/пароль», полученных в результате прошлых утечек, доступны в теневом вебе. Злоумышленники используют автоматизированные инструменты, чтобы проверять эти учётные данные в финансовых организациях, интернет-магазинах и почтовых сервисах в промышленных масштабах. Атака оказывается успешной, если пользователь повторно использовал пароль, который уже был скомпрометирован.

Сервер узнаёт Ваш пароль

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

Чего мы на самом деле хотим

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

Доказательства с нулевым разглашением для аутентификации

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

Устойчивость к словарным атакам

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

Проблема доверия в большом масштабе

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

Путь вперёд

Современные решения включают SRP (безопасный удалённый пароль), OPAQUE и FIDO2/ключи доступа. Каждое из них решает разные аспекты фундаментальной проблемы. SRP и OPAQUE устраняют необходимость знать пароль на стороне сервера. FIDO2 и ключи доступа полностью устраняют пароли, используя криптографию с открытым ключом, привязанную к конкретному источнику.

Проверка уязвимостей парольной аутентификации

Какую атаку НЕ предотвращает надёжное хеширование паролей на стороне сервера (например, bcrypt)?

Итоги урока: проблема паролей

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

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

Урок «Фундаментальная проблема аутентификации по паролю» бесплатный?

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

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

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

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

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

Сколько времени занимает урок «Фундаментальная проблема аутентификации по паролю»?

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

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

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

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

  1. Фундаментальная проблема аутентификации по паролю
  2. SRP: протокол безопасной удалённой аутентификации по паролю
  3. Протоколы PAKE и их свойства
  4. Аутентификация без пароля: WebAuthn и FIDO2
← Назад к Cryptology Academy