U2F (Universal 2nd Factor) to standard uwierzytelniania oparty na kryptografii klucza publicznego. Fizyczny klucz potwierdza logowanie, podpisując wyzwanie serwera unikalnym kluczem prywatnym, który nigdy nie opuszcza urządzenia. Dzięki powiązaniu z domeną fałszywa strona nie może wykorzystać klucza do zalogowania się na prawdziwe konto.
Czym jest klucz bezpieczeństwa U2F?
U2F to standard dodatkowego uwierzytelniania opracowany w ramach FIDO Alliance. Uzupełnia hasło o drugi czynnik, czyli element należący do kategorii „coś, co masz”. W tym przypadku jest nim fizyczne urządzenie podłączane do komputera przez USB albo komunikujące się bezprzewodowo, zależnie od modelu.
W klasycznym uwierzytelnianiu dwuskładnikowym drugim elementem może być kod SMS lub kod jednorazowy z aplikacji. Takie rozwiązania potwierdzają dostęp do telefonu albo aplikacji, ale sam kod można przechwycić lub wyłudzić. SMS może zostać przejęty wraz z kartą SIM, a kod TOTP użytkownik może wpisać na stronie przygotowanej przez oszusta.
U2F działa inaczej. Nie pokazuje użytkownikowi sekretu, który trzeba przepisać do formularza. Klucz wykonuje operację kryptograficzną dopiero po żądaniu konkretnej witryny i zwykle wymaga fizycznego dotyku. Stanowi więc barierę dla zdalnych ataków, a nie tylko kolejną informację do podania podczas logowania.
Jak działa kryptografia w kluczu U2F?
Podczas rejestracji klucza dla konta powstaje para powiązanych ze sobą kluczy kryptograficznych:
- Klucz prywatny jest przechowywany wewnątrz fizycznego urządzenia i nie opuszcza go.
- Klucz publiczny trafia na serwer usługi i służy później do sprawdzania podpisów.
Można wyobrazić to sobie jako cyfrową pieczęć. Serwer zna wzór pozwalający rozpoznać prawidłowy odcisk, ale nie posiada samej pieczęci. Tylko fizyczny klucz może utworzyć poprawny podpis, ponieważ właśnie w nim znajduje się klucz prywatny.
Serwer nie otrzymuje hasła ani kopii sekretu używanego przez urządzenie. Nawet jeśli baza usługi zostanie ujawniona, przechowywany tam klucz publiczny nie pozwala odtworzyć klucza prywatnego. Ochrona zależy oczywiście także od zabezpieczeń samego urządzenia i poprawnej implementacji protokołu, ale najważniejszy sekret pozostaje poza serwerem.
Drugim istotnym mechanizmem jest powiązanie z domeną, określane jako domain binding. Klucz uwzględnia adres usługi, dla której wykonuje operację. Fałszywa domena może próbować skłonić użytkownika do logowania, ale nie powinna otrzymać podpisu ważnego dla prawdziwej witryny. Dlatego phishing nie działa tu tak jak przy kodzie SMS, który można przepisać niezależnie od tego, na jakiej stronie został wyłudzony.

Jak wygląda logowanie z U2F krok po kroku?
Proces uwierzytelniania można uprościć do czterech etapów. W praktyce przeglądarka i usługa przekazują sobie także dodatkowe dane techniczne, ale ogólna logika pozostaje taka sama:
- Inicjacja logowania – użytkownik podaje nazwę konta i hasło, a usługa prosi o drugi czynnik.
- Wysłanie wyzwania – serwer generuje jednorazowe, losowe wyzwanie i przekazuje je przeglądarce wraz z informacją o swojej domenie.
- Podpisanie wyzwania – klucz sprawdza kontekst żądania, a następnie po fizycznym dotyku użytkownika podpisuje wyzwanie swoim kluczem prywatnym.
- Weryfikacja podpisu – serwer wykorzystuje zapisany klucz publiczny. Jeśli podpis pasuje do wyzwania, kontynuuje logowanie.
Wyzwanie jest jednorazowe, więc przechwycenie komunikatu z wcześniejszego logowania nie powinno pozwolić na jego ponowne użycie. Z kolei podpis nie ujawnia klucza prywatnego. Serwer otrzymuje dowód wykonania operacji przez właściwe urządzenie, a nie sam sekret.
U2F bywa mylony z FIDO2. U2F jest wcześniejszym standardem drugiego czynnika, natomiast FIDO2 rozwija tę koncepcję i obejmuje między innymi WebAuthn, dzięki któremu klucze mogą służyć także do logowania bez hasła. Wspólna pozostaje idea kryptografii klucza publicznego i ochrony prywatnego klucza na urządzeniu.
U2F, SMS i TOTP – czym różnią się te metody?
Każda z tych metod może dodać drugą warstwę ochrony, ale różnią się sposobem potwierdzania tożsamości i reakcją na phishing:
| Metoda | Odporność na phishing | Wymagania |
|---|---|---|
| U2F | Wysoka, ponieważ podpis jest powiązany z domeną | Fizyczny klucz bezpieczeństwa i kompatybilna usługa |
| SMS | Niska, kod można wyłudzić, a numer przejąć wraz z kartą SIM | Telefon z dostępem do sieci komórkowej |
| TOTP | Wyższa niż w przypadku SMS, ale kod można przepisać na fałszywej stronie | Telefon z aplikacją uwierzytelniającą i wcześniej skonfigurowanym sekretem |
Największą zaletą U2F jest to, że użytkownik nie musi odczytywać ani przepisywać kodu. Urządzenie wykonuje podpis tylko w odpowiednim kontekście. Wadą pozostaje konieczność posiadania fizycznego klucza. Zgubienie urządzenia nie oznacza automatycznie utraty konta, jeśli wcześniej skonfigurowano zapasową metodę logowania lub drugi klucz, ale odzyskanie dostępu może wymagać procedury ustalonej przez daną usługę.
U2F chroni przede wszystkim przed przejęciem logowania przez fałszywą stronę, ponieważ sekret pozostaje w urządzeniu, a odpowiedź jest związana z domeną. Nie zastępuje jednak dobrego hasła, aktualnego oprogramowania ani ostrożności w przypadku utraty klucza lub przejęcia całego konta.