Wszystko co musicie wiedzieć o WebAuthn: Bezpieczne logowanie przyszłości

5 czerwca, 2019
Wszystko co musicie wiedzieć o WebAuthn: Bezpieczne logowanie przyszłości

Kilka tygodni temu na konferencji European Identity Conference (EIC) w Monachium technologia WebAuthn zdobyła nagrodę za najbezpieczniejszy sposób logowania przyszłości. Nad ulepszonym standardem pracowało wiele firm, które są uznawane za liderów w swojej branży: Yubico, Microsoft i pozostali członkowie FIDO Alliance. Firma Yubico została zaproszona do odebrania nagrody w imieniu wszystkich, których przyczynili się do usprawnienia protokołu FIDO U2F, obecnie przekształconego w FIDO2 WebAuthn.

Wyobraźmy sobie świat bez haseł i menadżerów haseł, w którym nie trzeba generować skomplikowanych znaków, resetować i martwić się o hackerskie włamania. Nie bez powodu ludzie oraz hasła są uznawane na najsłabsze ogniowo bezpieczeństwa. Możliwe że już niedługo krajobraz cyberbezpieczeństwa zmieni się, jeżeli upowszechni się nowy standard. Technologia jest już gotowa do wdrożenia w procesach produkcyjnych. Musimy jeszcze uzbroić się w cierpliwość i czekać, aż w ślad za największymi firmami pójdą te średnie i najmniejsze. Jeszcze bezpieczniejsze logowanie do aplikacji internetowych i systemów będzie można wdrożyć niewielkim kosztem, a niekiedy zupełnie za darmo za pomocą wtyczek.

Nowy standard uwierzytelniania, czyli FIDO2 / WebAuthn, rozwiązuje problemy bezpieczeństwa opartego o hasła. FIDO2 jest współtworzony przez Yubico, Microsoft i innych członków FIDO Alliance i umożliwia bezpieczne uwierzytelnianie się bez hasła za pomocą jednego składnika albo dwóch — w scenariuszu uwierzytelniania dwuskładnikowego (2FA) — lub kilku czynników np. tradycyjnego hasła z SMS-em lub skanerem linii papilarnych.

FIDO U2F => FIDO2 WebAuthn

Do tej pory, jako użytkownicy usług internetowych, korzystaliśmy z protokołu U2F, który został stworzony przez Google oraz firmę Yubico — producenta sprzętowych kluczy, najprawdopodobniej najskuteczniejszego rozwiązania zapobiegającego atakom phishingowym, nieautoryzowanym przejęciom kont internetowych oraz poświadczeń logowania. Rozwiązanie U2F pomyślnie wdrożono na bardzo dużą skalę np. przez rząd Wielkiej Brytanii, Turcji, firmę Canoncial, liczne banki, a nawet Departament Obrony USA. Ten sposób uwierzytelnienia gwarantuje jeden z najbezpieczniejszych sposobów logowania do serwisów internetowych, serwerów, menadżerów haseł, systemów produkcyjnych i wiele więcej.

U2F z publicznie dostępnym kodem pozwala uwierzytelnić się za pomocą kluczy bezpieczeństwa, smartfonów i innych urządzeń — natychmiast i bez sterowników lub oprogramowania klienckiego. U2F jest rozwiązaniem dwuskładnikowym, ciągle bazującym na nazwie użytkownika i haśle jako pierwszym czynniku. Wiele organizacji i internatowych aplikacji np. Facebook i Gmail pozwala ustawić drugi czynnik 2FA (second factor authentication), którym może być kodem SMS, kluczem bezpieczeństwa, aplikacją na smartfonie.

FIDO2 to druga generacja U2F. Tutaj użytkownik może zostać zidentyfikowany i uwierzytelniony bez podawania hasła w pierwszym kroku przy logowaniu. FIDO2 obsługuje silne jednoskładnikowe uwierzytelnianie, które jest wstecznie kompatybilne z U2F, a więc wspiera dwuskładnikowe i wieloczynnikowe logowanie. Oznacza to, że wszystkie wcześniej certyfikowane klucze bezpieczeństwa FIDO U2F będą nadal działać z nowym standardem wspierającym WebAuthn.

Otwarty standard uwierzytelniania FIDO2 składa się z dwóch komponentów: Web API (Web Authentication, stąd skrót WebAuthn) i protokołu Client to Authenticator (CTAP). Oba te elementy współpracują ze sobą i są wymagane do zalogowania się bez hasła. Czyli po stronie np. serwera Facebooka deweloperzy muszą wdrożyć obsługę protokołu CTAP, który umożliwi logowanie użytkownika do Facebooka w przeglądarce za pomocą WebAuthn. Do tego celu trzeba używać klucza bezpieczeństwa osadzonego w porcie USB lub klucza wspierającego NFC / Bluetooth. WebAuthn jest obecnie wspierany przez wszystkie przeglądarki.

Bezpieczeństwo FIDO2 WebAuthn

FIDO2 wykorzystuje kryptografię asymetryczną, czyli bazuje na parze kluczy publicznym i prywatnym. Klucz publiczny jest przechowywany w dowolnej usłudze logowania np. na serwerach Facebooka czy Gmail, podczas gdy klucz prywatny jest przechowywany w kluczu bezpieczeństwa np. Yubikey. Samo uwierzytelnianie jest szybkie i łatwe: wystarczy włożyć klucz do portu USB i dotknąć pozłacany styk. Niektóre wersje kluczy wspierają bezprzewodowe logowanie ze smartfonami za pomocą NFC lub Bluetooth.

WebAuthn spełnia wszystkie krytyczne wymagania dotyczące uwierzytelniania użytkowników:

  • Loginem i hasłem jest para kluczy, które nie mogą być zhakowane lub sfałszowane.
  • Nie jest możliwe wykonywanie ataków phishingowych, jak do tej pory. Próba logowania na fałszywej stronie nie będzie możliwa z powodów technicznych (domena będzie inna oraz serwer fałszywej strony nie będzie zawierał klucza publicznego).
  • Autoryzacji nie można przenosić z komputera na komputer. Na nowym urządzeniu trzeba się zalogować.
  • Obsługiwanych jest wiele składników logowania.
  • Logowanie trwa tylko dwie sekundy. Wystarczy dotknąć klucza.

Kluczy kryptograficznych wygenerowanych za pomocą algorytmu RSA-4096 nie da się złamać przy pomocy współczesnych komputerów kwantowych. Jest to po prostu niemożliwe. Jedyne niebezpieczeństwo utraty dostępu do konta internetowego to zgubienie klucza, dlatego na wszelki wypadek warto kupować od razu dwa klucze i dodać je do usługi (jeden przechowywać w innym miejscu jako zapasowy). Można też skonfigurować drugą metodę awaryjnego logowania np. za pomocą smartfonu, co obecnie jest standardem.

FIDO2 wspiera najbardziej wyśrubowane standardy logowania opracowane dla agencji federalnych. Wymagania techniczne są opisane w publikacji NIST 800-63.

Kto już używa WebAuthn?

W zeszłym tygodniu Apple włączyło domyślną obsługę WebAuthn w macOS w Safari Technology Preview, natomiast Twitter i giełda kryptowalut Coinbase ogłosiły uaktualnienie standardu logowania z FIDO U2F do FIDO2 WebAuthn.

Rozwiązanie wdrożył też jeden z wiodących banków, po tym jak jego klient zwrócił się z zapytaniem:

Dlaczego Google i Facebook stosuje bezpieczniejsze logowanie niż bank, który przechowuje moje pieniądze?

Więcej o standardzie WebAuthn:

Picture of Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.
Picture of Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.

PODZIEL SIĘ:

guest
0 komentarzy
Inline Feedbacks
View all comments

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]