r   e   k   l   a   m   a
r   e   k   l   a   m   a

SQRL: kolejny sprytny (?) pomysł na logowanie bez haseł

Strona główna AktualnościOPROGRAMOWANIE

Jeśli się chcesz dziś zalogować do witryny internetowej, to zazwyczaj musisz wprowadzić swoją nazwę użytkownika (login) oraz hasło. I choć temu systemowi uwierzytelniania już od lat wytyka się liczne słabości, to w praktyce nic się nie zmienia – pomimo rozmaitych eksperymentów z alternatywnymi systemami sprzętowych uwierzytelnień, pomimo rosnącej popularności mechanizmów biometrycznych, większość internautów każdego dnia wielokrotnie hasła wprowadza. Kilka miesięcy temu na forach poświęconych standardom internetowym zaczęto jednak rozważać nowy mechanizm uwierzytelniania, wyglądający całkiem obiecująco. SQRL, które wzbudzić miało zainteresowanie ludzi z Google'a i Konsorcjum WWW, wykorzystuje popularne w mobilnych aplikacjach kody QR do anonimowego uwierzytelnienia, w teorii uodparniając proces ten na siłowe ataki i chroniąc przed konsekwencjami wycieku danych.

Fragmentacja tożsamości to stała przypadłość Internetu naszych czasów. Korzystamy z dziesiątek serwisów, którym ufamy w różnym stopniu, logujemy się do nich za pomocą różnych haseł i loginów. Lokalne menedżery haseł (czy to wbudowane w przeglądarkę, czy jako niezależne aplikacje) mogą częściowo pomóc w zarządzaniu tym bałaganem, ale i one nie są bez wad. Stosowanie uniwersalnych mechanizmów logowania, w których tożsamość poświadczana jest przez stronę trzecią (np. Facebook Connect) też nie każdemu się podoba. Problem tkwi nie tylko w tym, że trzeba korzystać z pośredników: wsadzenie wszystkich haseł do jednego koszyka czyni konsekwencje ewentualnego wykradzenia cyfrowej tożsamości naprawdę poważnymi.

Nie tylko jednak fragmentacja nam dolega. Hasła w ogóle są dość problematyczne. Oczywiście to wygodny mechanizm, który nie wymaga od użytkownika stosowania niczego, czego by nie miał przy sobie, który jest bardzo łatwy do wdrożenia w każdym popularnym języku programowania, i który można (przy odpowiednich staraniach) dobrze zabezpieczyć. Jednak prawda jest taka, że większość użytkowników korzysta z haseł mizernej jakości, zaś większość aplikacji przechowuje hasła w bardzo kiepski sposób – często w otwartym tekście, albo zaszyfrowane jakimś słabym szyfrem.

W październiku Steve Gibson zaprezentował w trakcie podcastu Security Now! ciekawy pomysł na rozwiązanie problemu uwierzytelniania. Szkic otwartego standardu o nazwie SQRL (Secure, Quick, Reliable Login) pozwala użytkownikowi na anonimowe uwierzytelnienie się w serwisie czy aplikacji, zamiast podawać login i hasło. W wypadku logowania do witryny internetowej, SQRL wymaga dwóch komponentów: usługi webowej, która generuje kod QR lub specjalnie przygotowany adres URL, oraz aplikacji mobilnej lub wtyczki dla przeglądarki, która odczytuje ten kod, uwierzytelniając użytkownika.

Po odczytaniu kodu klient SQRL wykorzystuje funkcję skrótu i główne (dla tego systemu jedyne) hasło użytkownika, aby odszyfrować klucz główny. Następnie wykorzystując nazwę witryny (jej domenę) generuje specyficzną dla niej parę kluczy prywatny/publiczny. Tokeny zawierające szczegóły transakcji podpisuje kluczem prywatnym, a klucz publiczny przekazuje witrynie, by mogła sprawdzić dane logującego się. W ten sposób nie ma tu żadnego ujawniania danych, które mogłyby być wykorzystane do ataku na inne witryny – w najlepszym razie napastnik uzyskiwałby klucz publiczny, pozwalający mu na potwierdzenie logowań do zaatakowanej witryny. Z kolei sam klucz klienta SQRL nie jest w żaden sposób dostępny witrynom korzystającym z tego systemu logowania.

W ten sposób otrzymujemy mechanizm, który nie potrzebuje klawiatury (uodparniając na ataki z wykorzystaniem keyloggerów), uniemożliwia powiązanie użytkowników pomiędzy witrynami (dany login działa tylko dla danej witryny) i chroni tożsamość użytkownika przed właścicielem witryny (użytkownicy są identyfikowani 256-bitowym kluczem). Nie ma tu też żadnych pośredników, z których pomocy musielibyśmy korzystać – nawet jeśli byliby to pośrednicy tak godni zaufania, jak np. Mozilla.

Oczywiście niejeden z naszych Czytelników zauważył już potencjalne problemy z SQRL-em. Po pierwsze, jeśli dojdzie w jakiś sposób do przejęcia klucza głównego, użytkownik nie będzie już mógł w żaden sposób odzyskać swojej tożsamości, weryfikując ją innym kanałem. Nie ma tu przecież możliwości zamówienia resetu hasła na konto e-mailowe. Po drugie, wykorzystanie smartfona jako magazynu przechowującego klucz główny czyni z telefonów jeszcze atrakcyjniejszy obiekt, zarówno dla ulicznych złodziei, jak i twórców złośliwego oprogramowania dla urządzeń mobilnych. Pojawia się też cała klasa ataków bazujących na inżynierii społecznej – np. phishingu, w którym podrobione witryny wyświetlają prawdziwe kody QR przejęte z witryn oryginalnych, co może zmylić ofiary, które widząc w SQRL właściwą nazwę domeny, nie pomyślą, że zostały oszukane. System ten nie zapewnia też ochrony przed atakami typu man-in-the-middle, ale z drugiej strony, który inny system uwierzytelnień przed nimi chroni?

Na koniec drobna, ale istotna uwaga. Pomysłodawca SQRL-a nie cieszy się, delikatnie mówiąc, dobrą opinią. Trzeba jednak pamiętać, że wiele krytyki kierowanej w jego stronę to wynik tego, że podpadł społeczności whitehatów i jest uważany za kompletnego outsidera. Zainteresowanie ze strony Google i W3C może jednak doprowadzić do przekucia tego pomysłu w działającą technologię, albo przynajmniej zainspirować kogoś do stworzenia lepszych metod logowania.

Jeśli jesteście zainteresowani bliższym zapoznaniem się z SQRL, to wprowadzenie dla końcowych użytkowników znaleźć można na stronie www.sqrl.pl, zaś techniczne szczegóły pod adresem www.grc.com/sqrl/sqrl.htm.

r   e   k   l   a   m   a
© dobreprogramy

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.