Passkeys i klucze bezpieczeństwa
Moduł 2: Hasła i logowanie · Czas czytania: 10 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili wyjaśnić, dlaczego passkeys i klucze bezpieczeństwa są odporne na phishing, wskazać różnicę między zsynchronizowanymi a związanymi z urządzeniem passkeys oraz określić, kiedy warto je stosować.
Kluczowe pojęcia: passkey, FIDO2, WebAuthn, klucz publiczny i prywatny, powiązanie z domeną, klucz bezpieczeństwa, zsynchronizowany passkey, passkey związany z urządzeniem
Problem z tym, co się przepisuje
W lekcji 2.3 widzieli Państwo, że kod z aplikacji lub SMS-a nie chroni przed dobrze wykonaną fałszywą stroną. Wpisują Państwo kod na stronie rnijnbank.example, oszust w ciągu kilku sekund przekazuje go dalej na mijnbank.example i uzyskuje dostęp. Słaby punkt jest zawsze ten sam: to Państwo musicie ocenić, czy znajdujecie się na prawdziwej stronie. Osoba, która się spieszy lub widzi przekonującą stronę, prędzej czy później popełni ten błąd.
Passkeys i klucze bezpieczeństwa zdejmują tę decyzję z Państwa barków. To nie Państwo sprawdzają adres, lecz przeglądarka i urządzenie. I nie ma niczego, co można by przepisać albo przekazać dalej.
Czym jest passkey
Passkey to metoda logowania, która zastępuje hasło. FIDO Alliance, organizacja stojąca za tym standardem, opisuje ją jako zamiennik hasła, który odblokowuje się w taki sam sposób jak urządzenie: odciskiem palca, twarzą lub kodem PIN.
Technicznie passkey to para kluczy:
- klucz prywatny, który pozostaje na Państwa urządzeniu (lub w menedżerze haseł, patrz niżej) i nigdy nie trafia na stronę internetową;
- klucz publiczny, który przechowuje strona internetowa.
To, co zostało podpisane kluczem prywatnym, strona może zweryfikować za pomocą klucza publicznego. Natomiast kluczem publicznym nie da się niczego podpisać. Jeśli baza danych strony wycieknie, atakujący ma jedynie klucze publiczne, za pomocą których nie może się zalogować. Nie ma więc niczego do złamania, tak jak w przypadku wyciekłych haseł z lekcji 2.1.
Technologia ta nazywa się FIDO2. Część działająca w przeglądarce to WebAuthn, standard opracowany przez W3C (konsorcjum tworzące standardy sieciowe). Część komunikująca komputer z osobnym kluczem bezpieczeństwa nazywa się CTAP.
Tak przebiega logowanie
- Na stronie
mijnbank.examplewybierają Państwo „Zaloguj się za pomocą passkey”. - Strona wysyła losowe wyzwanie: liczbę, która zostanie użyta tylko raz.
- Przeglądarka przekazuje to wyzwanie do urządzenia, razem z domeną, na której się Państwo znajdują.
- Urządzenie prosi o odblokowanie: odciskiem palca, twarzą lub kodem PIN. Ta weryfikacja odbywa się na urządzeniu. Odcisk palca nigdy nie trafia na stronę internetową; strona otrzymuje jedynie informację, że weryfikacja się powiodła.
- Urządzenie podpisuje wyzwanie kluczem prywatnym przypisanym do
mijnbank.example. - Strona weryfikuje podpis Państwa kluczem publicznym. Jeśli się zgadza, logowanie się powiodło.
Dlaczego passkey nie działa na fałszywej stronie
Podczas tworzenia passkey zostaje powiązany z domeną strony internetowej. W standardzie WebAuthn nazywa się to Relying Party ID: passkey należy do mijnbank.example (i ewentualnie jego subdomen) i do niczego innego. To przeglądarka określa, jaka domena znajduje się w żądaniu, nie strona internetowa. Fałszywa strona nie może tego sfałszować.
Jeśli trafią Państwo przez wiadomość phishingową na https://rnijnbank.example lub https://mijnbank.example.inlog-check.example, stanie się tak:
- Fałszywa strona poprosi o passkey.
- Przeglądarka szuka passkey dla tej konkretnej domeny. Nie ma go.
- Pojawi się komunikat typu „brak passkey dla tej strony” albo pusta lista wyboru.
Nie ma niczego, co można by przez pomyłkę zatwierdzić albo przepisać. Nawet jeśli nie rozpoznają Państwo fałszywej strony, passkey tam nie zadziała. To właśnie oznacza odporność na phishing. Potwierdza to również NIST: odporność na phishing wymaga uwierzytelniania kryptograficznego; hasła, kody przepisywane ręcznie i powiadomienia z przyciskiem zatwierdzenia nim nie są.
Jeśli na stronie, na której zawsze logują się Państwo za pomocą passkey, nagle pojawi się tylko pole na hasło albo prośba o „podanie kodu z aplikacji”, to sygnał ostrzegawczy. Proszę sprawdzić adres.
Zsynchronizowany czy związany z urządzeniem
Istnieją dwa rodzaje passkeys. Różnica polega na tym, gdzie przechowywany jest klucz prywatny.
| Zsynchronizowany passkey | Passkey związany z urządzeniem | |
|---|---|---|
| Gdzie znajduje się klucz prywatny? | U dostawcy passkey: w pęku kluczy systemu operacyjnego albo w menedżerze haseł, który kopiuje go w postaci zaszyfrowanej na inne Państwa urządzenia | Na jednym urządzeniu, na przykład kluczu bezpieczeństwa, i nie można go stamtąd przenieść |
| Nowy telefon? | Passkey pojawia się automatycznie po zalogowaniu u dostawcy | Na nowym urządzeniu trzeba utworzyć nowy passkey |
| Zgubione urządzenie? | Nie ma problemu, o ile konto u dostawcy jest bezpieczne | Bez zapasowego klucza tracą Państwo dostęp |
| Słaby punkt | Konto u dostawcy: kto się do niego dostanie, ma dostęp do wszystkich Państwa passkeys | Utrata klucza; potrzebny jest klucz zapasowy |
| Odpowiednie dla | Niemal wszystkich zwykłych kont | Kont administracyjnych, hostingu, rejestracji domeny, bankowości, samego konta u dostawcy |
W standardzie WebAuthn zsynchronizowany passkey nazywa się „multi-device credential”. FIDO Alliance uznaje passkeys związane z urządzeniem na kluczu bezpieczeństwa za formę o najwyższym poziomie pewności i zaleca klucz bezpieczeństwa również jako metodę odzyskiwania dostępu, gdy utracą Państwo dostęp do zsynchronizowanych urządzeń.
Jeśli korzystają Państwo ze zsynchronizowanych passkeys, proszę szczególnie dobrze zabezpieczyć konto u dostawcy: silne hasło, uwierzytelnianie dwuskładnikowe, a najlepiej również własny klucz bezpieczeństwa.
Klucze bezpieczeństwa
Klucz bezpieczeństwa to małe urządzenie, które wkłada się do portu USB albo przykłada do telefonu (NFC). Zapisane są na nim passkeys związane z urządzeniem. Logowanie polega na dotknięciu klucza, często z dodatkowym kodem PIN samego klucza lub odciskiem palca na kluczu.
Na rynku dostępnych jest kilku producentów; przy wyborze warto zwrócić uwagę na obsługę FIDO2, potrzebne złącze (USB-A, USB-C, NFC) oraz na to, czy klucz obsługuje kod PIN lub odcisk palca.
Najważniejsza zasada: zawsze należy zarejestrować co najmniej dwa klucze. Drugi to Państwa klucz zapasowy. Podpinają go Państwo do każdej usługi, tak samo jak pierwszy, i przechowują w innym miejscu, na przykład w domu w szufladzie albo w sejfie. Jeśli zgubią Państwo codzienny klucz, logują się Państwo przy użyciu zapasowego, usuwają zgubiony klucz ze swoich kont i kupują nowy drugi egzemplarz. Klucza nie da się skopiować; to właśnie jest jego zaletą.
Logowanie na innym komputerze
Chcą się Państwo zalogować na laptopie, ale passkey znajduje się na telefonie. Przeglądarka często zaproponuje wówczas wyświetlenie kodu QR. Skanują go Państwo telefonem i tam odblokowują. FIDO Alliance nazywa to cross-device authentication. Telefon sprawdza przez Bluetooth, czy rzeczywiście znajduje się w pobliżu laptopa. Osoba, która ma jedynie zdjęcie kodu QR, nie może więc zalogować się zdalnie.
Pułapki i kiedy je stosować
Passkeys to duży krok naprzód, ale nie są magicznym rozwiązaniem:
- Hasło często nadal istnieje. Wiele usług obok passkey nadal umożliwia logowanie hasłem i kodem. Oszust próbuje wówczas tej drogi. Jeśli to możliwe, proszę wyłączyć stare sposoby logowania albo ustawić długie i unikatowe hasło.
- Odzyskiwanie dostępu jest najsłabszym ogniwem. Jeśli ktoś za pomocą wiadomości „zapomniałem hasła” albo telefonu do działu pomocy może obejść Państwa passkey, konto jest tak bezpieczne, jak ta droga odzyskiwania dostępu. Proszę sprawdzić, jakie dane do odzyskiwania dostępu są ustawione (lekcja 2.5).
- Nie każda usługa to obsługuje. W takim przypadku proszę skorzystać z aplikacji uwierzytelniającej.
- Konta współdzielone słabo pasują do passkeys na jednym osobistym urządzeniu. Lepiej dać każdej osobie własne konto z własnym passkey (moduł 7).
- Odblokowane urządzenie to otwarte drzwi. Proszę zabezpieczyć telefon i laptop dobrą blokadą ekranu (moduł 5).
Od czego zacząć? Od kont, których przejęcie wyrządziłoby największą szkodę: poczty elektronicznej, menedżera haseł lub dostawcy passkey, hostingu i rejestracji domeny, bankowości i księgowości. Jeśli któraś z tych usług oferuje passkeys lub klucze bezpieczeństwa, proszę włączyć to tam w pierwszej kolejności.
Podsumowanie
- Passkey to para kluczy: klucz prywatny pozostaje u Państwa, strona internetowa ma jedynie klucz publiczny. Wyciek po stronie strony internetowej nie daje niczego do złamania.
- Przeglądarka wiąże passkey z prawdziwą domeną. Na fałszywej stronie nie ma passkey, więc nie ma niczego do wykradzenia ani do zatwierdzenia.
- Zsynchronizowane passkeys przenoszą się na inne Państwa urządzenia; passkeys związane z urządzeniem (klucz bezpieczeństwa) pozostają na jednym urządzeniu.
- Zawsze należy zarejestrować klucz zapasowy i przechowywać go w innym miejscu.
- Passkey jest tak bezpieczny, jak droga odzyskiwania dostępu i stare sposoby logowania, które nadal pozostają dostępne.
Quiz
Zadanie
Zadanie D2.4: Pierwszy passkey lub klucz zabezpieczający. Proszę sprawdzić, które z Państwa najważniejszych kont obsługują passkeys lub klucze bezpieczeństwa, skonfigurować przynajmniej jedno z nich i przygotować rozwiązanie zapasowe. Proszę zaznaczyć listę kontrolną i odpowiedzieć na pytania do refleksji.
Zadanie D2.4: Pierwszy passkey lub klucz zabezpieczający
Jak to zrobić: (1) Proszę sprawdzić w ustawieniach zabezpieczeń najważniejszych kont (poczta, menedżer haseł lub dostawca passkey, hosting, rejestracja domeny, bank, księgowość), czy obsługują passkeys lub klucze zabezpieczające. (2) Proszę wybrać dla każdego konta: passkey synchronizowany (w systemie operacyjnym lub menedżerze haseł) albo przypisany do urządzenia (klucz zabezpieczający). Do zarządzania hostingiem, domenami i kontem dostawcy passkey najlepiej użyć klucza zabezpieczającego. (3) Proszę ustawić passkey lub klucz dla co najmniej jednego konta. (4) Proszę zadbać o zapasowe rozwiązanie: zarejestrowany drugi klucz przechowywany w innym miejscu, lub przy passkey synchronizowanym drugie urządzenie i dobre zabezpieczenie konta u dostawcy. (5) Proszę sprawdzić, czy stary sposób logowania (hasło z SMS lub kodem) nadal jest włączony. Jeśli to możliwe, proszę go wyłączyć albo ustawić długie i unikalne hasło. (6) Proszę jednorazowo przetestować logowanie na drugim urządzeniu (na przykład za pomocą kodu QR i telefonu).
Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.
Więcej informacji
- FIDO Alliance, Passkeys (w języku angielskim): https://fidoalliance.org/passkeys/
- W3C, Web Authentication Level 3 (w języku angielskim, treść standardu): https://www.w3.org/TR/webauthn-3/
- passkeys.dev, Terms (w języku angielskim, słownik pojęć opracowany przez członków FIDO Alliance i W3C): https://passkeys.dev/docs/reference/terms/
- NIST SP 800-63B-4, część dotycząca odporności na phishing i syncable authenticators (w języku angielskim): https://pages.nist.gov/800-63-4/sp800-63b.html
- Poradniki CERT Polska: https://cert.pl/
