0Pricing
Cryptology Academy · Lekcja

Protokoły PAKE i ich właściwości

Poznają Państwo rodzinę protokołów Password-Authenticated Key Exchange, w tym OPAQUE i SPAKE2.

Protokoły PAKE i ich właściwości to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie do rodziny PAKE

Password Authenticated Key Exchange (PAKE) to rodzina protokołów, które pozwalają dwóm stronom współdzielącym wyłącznie hasło o niskiej entropii ustanowić klucz sesji o wysokiej entropii z uwierzytelnianiem wzajemnym. W odróżnieniu od tradycyjnego uwierzytelniania za pomocą hasła PAKE zapewnia forward secrecy i odporność na ataki słownikowe offline bez przesyłania hasła.

Zrównoważony a rozszerzony PAKE

Zrównoważony PAKE (B-PAKE) traktuje obie strony symetrycznie: zarówno klient, jak i serwer przechowują ten sam sekret (hasło lub jego symetryczne przekształcenie). Rozszerzony PAKE (A-PAKE) jest asymetryczny: serwer przechowuje wyłącznie publiczny weryfikator wyprowadzony z hasła, dzięki czemu przejęcie serwera nie ma katastrofalnych skutków dla bezpieczeństwa klienta.

Protokół SPEKE

Simple Password Exponential Key Exchange (SPEKE) to zrównoważony PAKE, w którym obie strony używają hasła do zdefiniowania generatora grupy g = H(password). Następna wymiana jest wymianą klucza Diffiego-Hellmana z użyciem generatora wyprowadzonego z hasła, co zapewnia, że tylko strony znające hasło mogą ją zakończyć.

Protokół J-PAKE

Password Authenticated Key Exchange by Juggling (J-PAKE), RFC 8236, wykorzystuje dowody z wiedzą zerową, aby umożliwić dwóm stronom ustanowienie klucza sesji na podstawie wspólnego hasła. J-PAKE jest używany w Thread (protokole sieci IoT) i został zaimplementowany w OpenSSL. Nie jest objęty patentami i zapewnia właściwości zrównoważonego PAKE.

OPAQUE: asymetryczny PAKE

OPAQUE (projekt IETF, draft-irtf-cfrg-opaque) to rozszerzony PAKE o silnych właściwościach bezpieczeństwa. Podczas rejestracji klient używa funkcji OPRF (oblivious PRF) do wyprowadzenia klucza z hasła, bez ujawniania hasła serwerowi. Serwer przechowuje zaszyfrowaną kopertę zawierającą klucz prywatny klienta.

Faza logowania OPAQUE

Podczas logowania OPAQUE klient i serwer wykonują protokół OPRF, aby odtworzyć klucz klienta bez ujawniania hasła serwerowi. Następnie klient używa tego klucza do odszyfrowania koperty i pobrania danych uwierzytelniających potrzebnych do ukończenia wymiany klucza. Serwer nie poznaje hasła na żadnym etapie.

Odporność OPAQUE na wstępne obliczenia

OPAQUE zapewnia odporność na wstępne obliczenia: nawet jeśli atakujący przejmie serwer i uzyska wszystkie przechowywane dane, nie może przeprowadzić ataku słownikowego offline na przechowywane wartości bez zasymulowania nowej interakcji OPRF dla każdej próby. Jest to silniejsza gwarancja niż ta zapewniana przez SRP.

SPAKE2 i SPAKE2+

SPAKE2 (RFC 9382) to prosty zrównoważony PAKE oparty na Diffiem-Hellmanie i publicznych kluczach zaciemnionych za pomocą hasła. SPAKE2+ jest wariantem rozszerzonym, w którym serwer przechowuje oddzielne wartości dla ról klienta i serwera. Firma Apple używa SPAKE2+ w HomeKit do parowania urządzeń, a protokół ten jest używany w kilku protokołach konfigurowania urządzeń IoT.

PAKE CPace

CPace (komponent RFC 9380) to komponowalny PAKE zaprojektowany przez Haasego i Labrique'a, przyjęty jako standardowy zrównoważony PAKE IETF. CPace zaprojektowano tak, aby można go było łączyć z kolejnymi etapami potwierdzania klucza. Jest zalecany w nowych protokołach wymagających zrównoważonego PAKE. To wybrany przez CFRG B-PAKE, występujący obok OPAQUE jako A-PAKE.

Porównanie właściwości bezpieczeństwa PAKE

Wszystkie protokoły PAKE zapewniają uwierzytelnianie i ustanawianie klucza. A-PAKE dodatkowo zapewniają odporność na przejęcie serwera. OPAQUE zapewnia odporność na wstępne obliczenia, wykraczającą poza odporność na przejęcie serwera. FIDO2 zapewnia powiązanie z originem, które zapobiega phishingowi. Wybór zależy od tego, czy uwierzytelnianie za pomocą hasła jest wymagane, czy można je zastąpić poświadczeniami klucza publicznego.

Kwestie wdrażania PAKE

Protokoły PAKE są trudniejsze do poprawnej implementacji niż proste haszowanie haseł, dlatego powinny pochodzić z audytowanych bibliotek. Grupa IETF CFRG ustandaryzowała CPace (B-PAKE) i OPAQUE (A-PAKE) jako zalecane rozwiązania dla nowych protokołów. SRP nadal jest używany w istniejących wdrożeniach, ale w nowych projektach preferowany jest OPAQUE.

Sprawdzenie właściwości PAKE

Jaka właściwość PAKE odróżnia rozszerzony PAKE (A-PAKE) od zrównoważonego PAKE (B-PAKE)?

Podsumowanie lekcji: krajobraz protokołów PAKE

Protokoły PAKE umożliwiają uwierzytelnianie wzajemne za pomocą hasła wraz z ustanawianiem klucza. B-PAKE (CPace, SPAKE2, J-PAKE) są symetryczne. A-PAKE (SRP, OPAQUE, SPAKE2+) przechowują po stronie serwera wyłącznie weryfikatory. OPAQUE zapewnia najsilniejsze gwarancje, w tym odporność na wstępne obliczenia. IETF ustandaryzowała CPace i OPAQUE jako zalecane nowoczesne rozwiązania.

Często zadawane pytania

Czy lekcja „Protokoły PAKE i ich właściwości” jest bezpłatna?

Tak — pełny tekst „Protokoły PAKE i ich właściwości” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Protokoły PAKE i ich właściwości”?

Poznają Państwo rodzinę protokołów Password-Authenticated Key Exchange, w tym OPAQUE i SPAKE2. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Protokoły PAKE i ich właściwości”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawowy problem uwierzytelniania hasłem
  2. SRP: protokół bezpiecznego zdalnego hasła
  3. Protokoły PAKE i ich właściwości
  4. Uwierzytelnianie bez haseł: WebAuthn i FIDO2
← Powrót do Cryptology Academy