Passkey już dostępny w Chrome. Wyjaśniamy, czym jest
W stabilnej wersji Chrome, czyli Chromie 108, udostępniona została już obsługa passkey. Relatywnie młodej metody uwierzytelniania, która za sprawą największych internetowych graczy, na czele z Google czy Apple, ma się stać nowym standardem i następcą haseł. Przyjrzyjmy się bliżej, czym jest passkey i jak zaimplementowano jego obsługę w Chrome.
Passkey wchodzi na salony
Gdybyśmy otrzymywali koralik za każdym razem, gdy ktoś wieszczy rychłą śmierć haseł, to mielibyśmy dużo koralików. Oczywiście metody uwierzytelniania rozwijają się, coraz częściej wymuszane jest stosowanie wielu składników, niemniej kolejne innowacje nie przekładają się na to, że tradycyjne hasła tracą popularność. Są one obudowywane kolejnymi elementami logowania, ale de facto niewiele było skutecznych przedsięwzięć, aby całkowicie wyeliminować hasła per se.
To się ma szansę zmienić w najbliższej przyszłości. Wspomnianym licznym inicjatywom bardzo często brakowało bowiem zaplecza – finansowego i biznesowego. Tymczasem standaryzowany właśnie mechanizm passkey cieszy się wsparciem największych korporacji i rzeczywiście rysuje się jako jeden z najlepszych kandydatów do tego, aby ostatecznie zastąpić hasła wykorzystywane do uwierzytelniania użytkowników i stać się standardem przemysłowym.
Czy tym razem to może się udać?
Passkey – pogromca haseł
Passkey został już oficjalnym standardem FIDO i w zasadzie trudno powiedzieć, aby mechanizm jakoś szczególnie odbiegał od metod uwierzytelniania już wcześniej standaryzowanych przez tę organizację. W praktyce passkey należy rozumieć jako rodzaj uniwersalnego klucza, przepustki – niewidzialnego dla użytkownika (i potencjalnego napastnika) sekretu wymienianego pomiędzy uwierzytelniającymi się usługami. Ma on być generowany na podstawie takiej samej autoryzacji, jakiej dokonuje użytkownik, by odblokować lokalne urządzenie.
Nie można uczciwie powiedzieć, że mamy do czynienia z czymś nowym. Standard zakłada wykorzystanie WebAuthn i rozszerza jego możliwości o takie funkcje, jak na przykład współdzielenie sekretów bez konieczności ich odszyfrowywania czy jawności. Pojedynczy passkey, czyli po prostu przepustka, ma służyć do uwierzytelniania użytkownika w jednej usłudze, każda kolejna będzie miała swój własny niejawny passkey.
Jak działa passkey w Chrome?
Aktualnie passkey jest już obsługiwany na Chrome wersjach desktopowych kierowanych na Windowsa oraz macOS-a, lada moment ma się pojawić w mobilnej wersji na Androidzie. Obsługiwane jest uwierzytelnianie do stron oraz aplikacji webowych, zaś odbywa się to z użyciem mechanizmu odblokowywania konta bądź urządzenia lub QR. Po tym, jak użytkownik przekaże swoje dane, generowany jest sekret, który służy do uwierzytelniania.
Od tego momentu passkey zapisywany jest w menedżerze haseł Chrome, ale od haseł różni go to, że jest nieznany także dla użytkownika, a uwierzytelnianie w aplikacji, wykorzystujące kryptografię klucza publicznego, musi być zapewne szyfrowane end-to-end, gdyż Google chwali się, że „niemożliwy” jest wyciek niejawnego składnika logowania, jakim jest passkey. Mowa zatem o mechanizmie passwordles, bezhasłowym, gdzie zachodzi komunikacja między kontem użytkownika a usługą z użyciem sekretu generowanego na podstawie lokalnego uwierzytelnienia.
O ile wygenerowanie passkey na urządzeniach mobilnych odbywa się w taki sam sposób, w jaki np. odblokowuje się ekran lub uwierzytelnia transakcje, tj. najczęściej z użyciem biometrii lub kodu odblokowującego, tak w przypadku przeglądarek desktopowych sprawa jest nieco bardziej skomplikowana. Podawanie np. hasła do lokalnego konta w systemie operacyjnym trudno traktować jako uwierzytelnienie. Z pomocą przychodzą na desktopie smartfony, które odczytają wygenerowany na desktopie kod QR.
Wszystko to odbywa się z użyciem WebAuthn API i może się podobać, ale trudno mówić tu o rewolucji. Owszem, udało się wyeliminować hasła, ale czy zastępowanie dwóch składników jednym to dobry pomysł? O tym w dalszej części. My tymczasem ustalmy, że do popularyzacji passkeys jeszcze daleka droga – swoje strony i aplikacje muszą na passkeys przygotować sami developerzy, co najpewniej potrwa.
A może pogromcy haseł już tu byli?
Passkeys nie poświęcilibyśmy zapewne uwagi, gdyby nie zaznaczona już kwestia zaplecza biznesowego – inwestycje w rozwój oraz deklarację implementacji kluczy uniwersalnych w swoich produktach zadeklarowali najwięksi dziś na rynku konsumenckim gracze.
Nie trzeba tęgiej głowy, żeby zauważyć, że wszystkie trzy wymienione firmy rozwijają niezależnie od siebie własne mechanizmy logowania i zakładania kont. Dziś przecież nic nie stoi na przeszkodzie, aby jednym kliknięciem czy pacnięciem nie tylko się zalogować, ale też utworzyć konto w serwisie, który odwiedzamy po raz pierwszy. Pojawia się zatem pytanie – na może hasła tak naprawdę już są martwe i nie potrzeby nam żadnych passkeys?
Problemem jest miejsce przechowywania danych. W przypadku logowania z użyciem API Google czy Facebooka zdani jesteśmy na administrowanie wrażliwymi danymi przez, delikatnie mówiąc, umiarkowanie zaufaną trzecią stronę. Passkey miałby ten problem w pewnej mierze wyeliminować, ale to nie stanowi o jego innowacyjności. Dosłownie w takim sam sposób mają działać zaprojektowane przez twórcę WWW, sir Tima Bernersa-Lee, huby Solid – tam użytkownik sam przechowuje swoje dane podobnie jak w przypadku portfela kryptowalut i udostępnia wyłącznie granularnie cedowany wycinek, nie przekazując praw do przetwarzania informacji.
Wygoda ponad wszystko
Trudno oprzeć się wrażeniu, że dla lwiej części użytkowników, to wygoda jest ważniejsza niż bezpieczeństwo. Doskonałą ilustracją tego problemu była konferencja prasowa jednego z banków, podczas której prezentowano możliwość logowania się do aplikacji z użyciem linii papilarnych. Login i hasło, dwa składniki, jawny i niejawny, zostały zastąpione jednym, jawnym. Następnie przekonywano, że przełoży się to na podniesienie poziomu bezpieczeństwa. Kuriozum.