Uwierzytelnianie za pomocą nazwy użytkownika (loginu) i tajnego hasła to podstawowy, bardzo popularny mechanizm bezpieczeństwa. Zwyczajowo, hasło przechowywane jest w postaci utajnionej szyfrowaniem jednostronnym (nie dającej się odszyfrować), a podczas potwierdzania tożsamości użytkownika przeprowadza się szyfrowanie wprowadzonego przez niego hasła i porównuje się wynik z zapisanym. Metoda ta została opracowana przez Roberta Morrisa na potrzeby systemu Unix. Ale nie zawsze tak było.
W wielu systemach operacyjnych (np. starych systemach na komputery mainframe IBM) hasła były przechowywane w postaci niezaszyfrowanej, operatorzy systemu mieli możliwość ich sprawdzania z uprzywilejowanej konsoli, przed złymi zamiarami użytkowników chroniły je skomplikowane, wielostopniowe zabezpieczenia. Unix ich nie miał, stworzony po godzinach przez nieogolonych naukowcówi inżynierów entuzjastów, miał (i dalej ma) proste, żeby nie powiedzieć prymitywne zabezpieczenia, a dane kont użytkowników zapisywał w ogólnie znanym i dostępnym pliku, gdzie każdy mógł je przeczytać - dlatego też zapisywane też tam hasła trzeba było szyfrować. Opis ten używa czasu przeszłego, gdyż od kilkunastu lat Unix (i wzorujący się na nim Linux) hasła zapisuje już w miejscu niedostępnym oczom zwykłego użytkownika; a wraz z rozwojem sieci rolę bazy haseł dla grup komputerów coraz częściej przejmują wyspecjalizowane serwery i usługi. Warto też zanotować, że jednym z kilkorga autorów oprogramowania chroniącego tak zaszyfrowane hasła przed dostępem, był wrocławski programista Marek Michałkiewicz .
Serce łamacza haseł - 8 kart graficznych Nvidia. Fot. Secmaniac.com
Szyfrowane hasła mają tę zaletę, nawet jeśli na serwer zostanie przeprowadzone włamanie i plik z hasłami wpadnie w niepowołane ręce, zmniejsza się szansa wyrządzenia szkody. Zmniejsza, ale nie znika: jednostronne szyfrowanie było nieodwracalne w czasach Roberta Morrisa 40 lat temu, teraz mamy sposoby na złamanie przynajmniej części prostszych haseł.
Wadami tego rozwiązania jest niemożność przypomnienia użytkownikowi jego hasła, niemożność skonwertowania hasła do potrzeb usługi wymagającej hasła w innym formacie, nie można też na przykład sprawdzać czy użytkownik przy obowiązkowych zmianach haseł nie wykorzystuje w kółko trzech-czterech tych samych - stare IBM-owskie systemy pamiętały 10 haseł wstecz i nie dało się ich oszukiwać w ten sposób. Można wreszcie w wypadku serwisu takiego jak wspomniane Allegro sprawdzać podobieństwo haseł przy podejrzeniach o klonowanie kont.
Gdzie jest więc błąd, o którym wspominam w tytule? Możliwość porównania haseł to świetna metoda na odsianie klonów, ale pracownicy portalu nie powinni mieć dostępu do samej treści haseł, to niepotrzebne ryzyko. Wystarczy, że mają (opisaną przez tajemniczego wykopowicza) możliwość sprawdzenia kto jeszcze ma takie samo hasło. Ryzyko zaś wynika z tego, że prawdopodobnie spory odsetek użytkowników używa tego samego hasła do logowania do Allegro i na konto pocztowe czy do portalu społecznościowego. Przez to na moderatora mającego dostęp do danych użytkownika (adresu e-mail i prawdopodobnego hasła) czyha wielka, zupełnie niepotrzebna pokusa.
Janusz A. Urbanowicz jest konsultantem w dziedzinie technologii internetowych i bezpieczeństwa oraz komentatorem Technologii. Prowadzi bloga pod adresem Fnord.pl .