Dokument przedstawia kwestie związane z bezpieczeństwem i wygodą różnych metod uwierzytelniania, krytykując uwierzytelnianie za pomocą hasła i postulując zaprojektowanie systemu EZD w sposób na tyle elastyczny, aby pozwalał on na zastosowanie innych metod.
We współczesnych systemach informatycznych nadal najbardziej popularną metodą uwierzytelniania jest zastosowanie hasła. W dobrze zabezpieczonych systemach hasło jest zapisywane z bazie serwisu w postaci praktycznie uniemożliwiającej jego odszyfrowanie. Często stosuje się również dodatkową warstwę zabezpieczeń w postaci weryfikacji dwuetapowej. Tym samym zabezpieczenie procesu uwierzytelniania opiera się na dwóch filarach: tym, co użytkownik wie (hasło) i tym, co posiada (klucz TOTP). Taki sposób uwierzytelniania posiada szereg wad:
- Choć hasło w dobrze zabezpieczonym serwisie jest przesyłane przez sieć w postaci zaszyfrowanej, a także trafia do bazy danych po jednostronnym zaszyfrowaniu, to pomiędzy tymi dwoma czynnościami znajduje się ono w pamięci serwera w postaci odszyfrowanej.
- Użytkownikowi nie można udowodnić, że jego hasło jest faktycznie przechowywane w bazie danych w sposób niemożliwy do odszyfrowania.
- Użytkownik wpisujący hasło w miejscu publicznym jest podatny na kradzież hasła przez osoby podglądające przez ramię oraz za pomocą kamer monitoringu.
- Nawet jeśli hasło jest przechowywane na serwerze w postaci zaszyfrowanej, to użytkownik może mieć w innym, niewłaściwie zabezpieczonym serwisie, ustawione to samo hasło (choć jest to odradzaną praktyką). W przypadku włamania do bazy danych tamtego serwisu wystawione na ryzyko stają się oba konta.
- Jeśli użytkownik stosuje politykę ustawiania różnych haseł w każdym serwisie, z którego korzysta, to stwarza to trudności w zapamiętaniu ich wszystkich.
- Rozporządzenie Ministra Spraw Wewnętrznych i Administracji w sprawie dokumentacji przetwarzania danych osobowych oraz warunków technicznych i organizacyjnych,jakim powinny odpowiadać urządzenia i systemy informatyczne służące do przetwarzania danych osobowych nakłada obostrzenia na politykę zarządzania hasłami w niektórych systemach, co stanowi dodatkowe niedogodności.
- Jeśli użytkownik, rezygnując z zapamiętywania wszystkich haseł, zaczyna korzystać z menedżera haseł, to wystawia się na inne zagrożenia w przypadku, gdy menedżer haseł nie jest zabezpieczony właściwie[#bezpieczenstwo-menedzerow-hasel]_.
- Poszczególne serwisy internetowe mogą wyłączać autouzupełnianie haseł[#atrybut-autocomplete]_ (takie rozwiązanie stosuje m.in. ePUAP), co w przypadku poszczególnych przeglądarek niekiedy utrudnia wygodne stosowanie menedżerów haseł[#autocomplete-hasla]_.
- Menedżery haseł wbudowane w przeglądarki częstokroć nie aktywują domyślnie szyfrowania haseł za pomocą hasła głównego, co sprowadza zabezpieczenie uwierzytelniania do jednego filaru (to, co użytkownik posiada).
- Identyfikacja za pomocą hasła wymaga zazwyczaj, aby przed wysłaniem do serwera znajdowało się ono na komputerze użytkownika w postaci niezaszyfrowanej, co ułatwia jego wykradzenie (np. za pomocą programów typu keylogger).
- Jeżeli użytkownik nieopatrznie zaloguje się po HTTP na oszukańczą stronę udającą prawdziwy serwis, to oznacza to złamanie części zabezpieczenia oferowanej w tym przypadku przez hasło.
Metody uwierzytelniania wykorzystujące kryptografię asymetryczną pozwalają na uniknięcie wielu problemów związanych z hasłami:
- Informacja wrażliwa (prywatny klucz kryptograficzny) nigdy nie jest przesyłana przez sieć, a zatem jedyną możliwością dla atakującego jest włamanie na urządzenie użytkownika. Biorąc pod uwagę to, że w skrajnych przypadkach może on wykorzystywać oddzielne urządzenie wyłącznie na potrzeby uwierzytelniania, czyni to potencjalne ataki dużo trudniejszymi.
- Prywatne klucze kryptograficzne można dodatkowo zaszyfrować za pomocą hasła, osiągając w ten sposób poziom zabezpieczeń oparty o dwa wymienione wcześniej filary.
- Identyfikacja za pomocą kryptografii asymetrycznej jest wygodniejsza (nie wymaga ręcznego przepisywania kodów TOTP).
Wśród tych metod można wymienić.
- Bitid.
- BitAuth. Identyfikacja następuje bez wykorzystania mechanizmu sesyj, dla każdego zapytania oddzielnie. Jest to zatem rozwiązanie bezstanowe.
- SQRL.
- Certyfikaty klienckie SSL (wykorzystywane m.in. w estońskiej e-rezydencji).
- Polski podpis kwalifikowany.
W kontekście systemów EZD można w naturalny sposób wskazać następujące potencjalne metody uwierzytelniania jako zastępniki uwierzytelniania za pomocą hasła:
- Podpis kwalifikowany.
- Cyfrowa tożsamość — w przypadku, gdyby taka usługa, oferująca funkcjonalność podpisu, została wprowadzona przez rząd.
- Profil zaufany ePUAP — w przypadku, gdyby zyskał on adekwatny poziom zabezpieczeń[#bezpieczenstwo-epuap]_.
- Certyfikaty klienckie SSL.
Z powyższych metod wyróżnić należy podpis kwalifikowany, jako że i tak prawdopodobnie będzie on wykorzystywany w systemie.
Identyfikacja za pomocą hasła jest metodą dość prymitywną i problematyczną. W projektowaniu systemów EZD warto uwzględniać możliwość uwierzytelniania za pomocą bardziej zaawansowanych technicznie i prostych w użyciu metod, m.in. tych, które wykorzystują kryptografię asymetryczną. Architektura systemu EZD powinna umożliwiać łatwe dodawanie nowych metod uwierzytelniania.
[1] | Na ten temat zob. m.in.:
|
[2] | Atrybut “autocomplete” znacznika <input> w HTML 5. |
[3] | W temacie bezpieczeństwa ePUAP zobacz „Nie używam profilu zaufanego na ePUAP”. |
[4] | Na ten temat zob. m. in.:“<form autocomplete="off"> no longer prevents passwords from being saved”. Historia zmian w przeglądarce Firefox wskazuje na trend ignorowania atrybutu autocomplete w przypadku pól haseł. |