Протоколы PAKE и их свойства
Изучите семейство протоколов обмена ключами с аутентификацией по паролю, включая OPAQUE и SPAKE2
«Протоколы PAKE и их свойства» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Введение в семейство PAKE
Обмен ключами с аутентификацией по паролю (PAKE) — это семейство протоколов, позволяющих двум сторонам, имеющим только пароль с низкой энтропией, установить ключ сеанса с высокой энтропией и выполнить взаимную аутентификацию. В отличие от традиционной парольной аутентификации, PAKE обеспечивает прямую секретность и устойчивость к автономным словарным атакам, не передавая пароль.
Сбалансированный и расширенный PAKE
Сбалансированный PAKE (B-PAKE) рассматривает обе стороны симметрично: и клиент, и сервер хранят один и тот же секрет — пароль или его симметричное преобразование. Расширенный PAKE (A-PAKE) является асимметричным: сервер хранит только открытое проверочное значение, полученное из пароля, поэтому компрометация сервера не приводит к катастрофическим последствиям для безопасности клиента.
Протокол SPEKE
Простой экспоненциальный обмен ключами по паролю (SPEKE) — это сбалансированный PAKE, в котором обе стороны используют пароль для определения образующего элемента группы g = H(пароль). Последующий обмен является обменом ключами Диффи—Хеллмана с использованием этого образующего элемента, полученного из пароля. Поэтому завершить его могут только стороны, знающие пароль.
Протокол J-PAKE
Обмен ключами с аутентификацией по паролю методом перестановки (J-PAKE), RFC 8236, использует доказательства с нулевым разглашением, чтобы две стороны могли установить ключ сеанса на основе общего пароля. J-PAKE используется в Thread (сетевом протоколе Интернета вещей) и реализован в OpenSSL. Он не защищён патентами и обеспечивает свойства сбалансированного PAKE.
OPAQUE: асимметричный PAKE
OPAQUE (черновик IETF, draft-irtf-cfrg-opaque) — это расширенный PAKE с сильными свойствами безопасности. Во время регистрации клиент использует нераскрывающую PRF (OPRF), чтобы получить ключ из пароля, не позволяя серверу узнать пароль. Сервер хранит зашифрованный контейнер, содержащий закрытый ключ клиента.
Фаза входа в OPAQUE
Во время входа в OPAQUE клиент и сервер выполняют протокол OPRF, чтобы восстановить ключ клиента, не позволяя серверу узнать пароль. Затем клиент использует этот ключ для расшифровки контейнера и получения учётных данных, необходимых для завершения обмена ключами. Сервер не видит пароль ни на одной из фаз.
Устойчивость OPAQUE к предварительным вычислениям
OPAQUE обеспечивает устойчивость к предварительным вычислениям: даже если злоумышленник скомпрометирует сервер и получит все сохранённые данные, он не сможет выполнить автономную словарную атаку по сохранённым значениям, не имитируя новое взаимодействие OPRF для каждой попытки. Это более сильная гарантия, чем та, которую предоставляет SRP.
SPAKE2 и SPAKE2+
SPAKE2 (RFC 9382) — простой сбалансированный PAKE на основе обмена Диффи—Хеллмана с открытыми ключами, скрытыми с помощью пароля. SPAKE2+ — расширенный вариант, в котором сервер хранит отдельные значения для ролей клиента и сервера. Apple использует SPAKE2+ в HomeKit для сопряжения устройств; этот протокол также применяется в нескольких протоколах настройки устройств Интернета вещей.
PAKE CPace
CPace (компонент RFC 9380) — пригодный для композиции PAKE, разработанный Хаазе и Лабриком и принятый в качестве стандартного сбалансированного PAKE IETF. CPace разработан для композиции с последующими этапами подтверждения ключа и рекомендован для новых протоколов, которым нужен сбалансированный PAKE. Это выбранный CFRG сбалансированный PAKE наряду с OPAQUE как расширенным PAKE.
Сравнение свойств безопасности PAKE
Все протоколы PAKE обеспечивают аутентификацию и установление ключа. Расширенные PAKE дополнительно обеспечивают устойчивость к компрометации сервера. OPAQUE обеспечивает устойчивость к предварительным вычислениям, превосходящую защиту от компрометации сервера. FIDO2 обеспечивает привязку к источнику, предотвращающую фишинг. Выбор зависит от того, требуется ли парольная аутентификация или её можно заменить учётными данными на основе открытого ключа.
Особенности внедрения PAKE
Протоколы PAKE сложнее правильно реализовать, чем простое хеширование паролей, поэтому их следует брать из библиотек, прошедших аудит. CFRG IETF стандартизировал CPace (B-PAKE) и OPAQUE (A-PAKE) как рекомендуемые варианты для новых протоколов. SRP по-прежнему используется в существующих системах, но для новых проектов предпочтителен OPAQUE.
Проверка свойств PAKE
Какое свойство PAKE отличает расширенный PAKE (A-PAKE) от сбалансированного PAKE (B-PAKE)?
Итоги урока: экосистема протоколов PAKE
Протоколы PAKE обеспечивают взаимную аутентификацию на основе пароля и установление ключа. Сбалансированные PAKE (CPace, SPAKE2, J-PAKE) симметричны. Расширенные PAKE (SRP, OPAQUE, SPAKE2+) хранят только проверочные значения на стороне сервера. OPAQUE обеспечивает самые сильные гарантии, включая устойчивость к предварительным вычислениям. IETF стандартизировал CPace и OPAQUE как рекомендуемые современные варианты.
Часто задаваемые вопросы
Урок «Протоколы PAKE и их свойства» бесплатный?
Да — полный текст урока «Протоколы PAKE и их свойства» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «Протоколы PAKE и их свойства»?
Изучите семейство протоколов обмена ключами с аутентификацией по паролю, включая OPAQUE и SPAKE2 Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Протоколы PAKE и их свойства»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Фундаментальная проблема аутентификации по паролю
- SRP: протокол безопасной удалённой аутентификации по паролю
- Протоколы PAKE и их свойства
- Аутентификация без пароля: WebAuthn и FIDO2