Kategorie
Bezpieczeństwo Publicystyka

Graficzne hasze haseł pakietu Lotus Notes

Tak to już jest w systemach komputerowych, że im wygodniej tym mniej bezpiecznie a im bezpieczniej tym mniej wygodnie. Przykładów nie trzeba szukać daleko – logowanie dwuskładnikowe (bezpieczne, niewygodne) czy zapamiętywanie haseł w przeglądarce (mniej bezpieczne, wygodne).

Dziś wspominamy charakterystyczną funkcję pakietu Lotus Notes, która nieznacznie poprawiała użyteczność i nieznacznie obniżała bezpieczeństwo. Była jednak na tyle charakterystyczna, że użytkownicy Notes-a nie zapominają o niej nawet po kilkunastu latach.

Najpierw kilka słów wprowadzenia. W arytmetyce odwracanie operacji matematycznych jest proste – odwrotność dodawania to odejmowanie, mnożenia – dzielenie, potęgowania – pierwiastkowanie i tak dalej. W kryptografii, do zastosowań związanych z bezpieczeństwem, stosujemy tak zwane funkcje skrótu (inaczej: funkcje haszujące). Nazywamy je jednokierunkowymi, bo potrafimy bez trudu obliczyć wartość funkcji dla określonego argumentu, ale nie potrafimy tej operacji odwrócić. Innymi słowy – gdy patrzymy na jakiś skrót (hasz), to nie potrafimy odtworzyć argumentu, z którego ten skrót się wywodzi.

Cecha ta została użyta przez twórców pakietu Lotus Notes przeszło 20 lat temu. Podczas wpisywania hasła użytkownik widział bowiem na ekranie wizualną reprezentację skrótu czyli wartości wywiedzionej z wpisanych przed chwilą znaków. Wyglądało to tak:

Jaką korzyść odnosił użytkownik? Dzięki temu, że prawidłowo wpisane hasło zawsze dawało taki sam obrazek, użytkownik szybko zapamiętywał tę grafikę i od razu wiedział, czy hasło zostało wpisane prawidłowo. Gdy obrazek był inny, niż zazwyczaj, przyczyną mogła być wyłącznie literówka.

Umówmy się, że nie była to istotna przewaga nad „gołym” okienkiem zawierającym jedynie pola tekstowe do wpisania nazwy użytkownika i hasła. Być może funkcja ta była pewną pomocą dla użytkowników łączących się z serwerem zdalnie przez powolny modem, ale nawet w ich przypadku pomyłka w haśle skutkowała co najwyżej kilkunastusekundowym opóźnieniem w pracy.

Jakie były ryzyka związane z tak zaprojektowaną funkcją? Atakujący, który podejrzał „prawidłowy” obrazek i znał mechanizm jego generowania, był w stanie przeprowadzić atak offline czyli weryfikować prawidłowość odgadywanego hasła bez konieczności komunikacji z serwerem. Autorzy Notesa do pewnego stopnia przeciwdziałali ryzyku towarzyszącemu ujawnieniu całej sekwencji obrazków – obrazki zaczynały się zmieniać dopiero przy piątej literze hasła, zaś w obliczeniach uwzględniano nazwę użytkownika, więc takie same hasła u różnych osób skutkowały odmiennymi obrazkami.

Obrazek logowania w starszych wersjach Lotus Notes, źródło: lotusnotessucks.4t.com

W dzisiejszych czasach z pewnością powstałby „hashcat do obrazków”, ale kilkanaście lat temu taka forma częściowego wycieku informacji o haśle nie budziła większego zainteresowania.

Już nie Lotus

Pakietu Lotus Notes używałem pracując w ComputerLandzie (obecnie Sygnity) w latach 2003-2007. Mimo oczywistych niedoróbek, w wielu obszarach wyprzedzał swój czas – np. dając unikatową wówczas możliwość mieszania tekstu z grafiką w polach edycyjnych. Jak informuje Wikipedia, w roku 2013 oprogramowanie to zostało przebrandowane na IBM Notes, choć IBM kupił firmę Lotus osiemnaście lat wcześniej, czyli w roku 1995. Niedawno właścicielem marki została firma HCL Technologies, więc bieżąca nazwa pakietu to HCL Notes.

Dziedzictwo

Graficzne hasze haseł pozostały ciekawostką, nie kojarzę żadnego innego programu w którym byłyby użyte. W wielu miejscach mamy za to do czynienia z graficznymi haszami nazw użytkowników, dzięki czemu każdy użytkownik będzie miał inny awatarek, nawet jeśli nie podeśle własnego obrazka.

Za obrazkami domyślnymi kryje się niekiedy ciekawa historia. W roku 2010 redaktorzy portalu Ars Technica odkryli, że domyślny obrazek w ówczesnym Outlooku to ni mniej ni więcej tylko sylwetka Billa Gatesa, pochodząca ze zdjęcia zrobionego po zatrzymaniu go w 1977 roku z powodu wykroczenia drogowego.

źródło: Ars Technica

Tutaj możecie poczytać o tym, jak wyglądała ewolucja domyślnego awatara na Twitterze.

Źródło: blog Twittera

Wydaje się, że początkiem awatarów generowanych algorytmicznie jest system Identicon, wymyślony przez Dona Parka w styczniu 2007. Oryginalne Identicony były generowane z numeru IP użytkownika i mogły wyglądać na przykład tak:

Kilka dni później temat spopularyzował na swoim blogu Jeff Atwood, publikując dodatkowo własną implementację Identiconów w .NET 2.0. Tak, to ten sam Jeff Atwood, który rok później założył z Joelem Spolskym serwis StackOverflow a w 2013 rozpoczął prace nad platformą Discourse.

Potem już poszło. Generowane programowo Awatarki wywodzone z e-maila użytkownika trafiły do serwisu Gravatar, własny minimalistyczny wariant obrał GitHub.

źródło: blog Githuba

Jednym z bardziej charakterystycznych stylów obdarzone były awatarki Slacka. Niestety, jakiś czas temu zostały zamienione na śmiertelnie nudne ikony sylwetki.

Nudniejsze od nich są już tylko awatary z inicjałami



O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.

3 odpowiedzi na “Graficzne hasze haseł pakietu Lotus Notes”

W moim przypadku (też w CL-u) była to wersja z hieroglifami – za cholerę nie mogłem zrozumieć, po co się tam przemieniają te obrazki. No proszę, po tylu latach odpowiedź. Dziwaczna była ta moda, że dla każdego naciśnięcia klawisza pojawiało się kilka „XXXX” – strasznie mnie to denerwowało, bo nie dawało informacji o tym, czy wcisnęło się dokładnie jeden klawisz.
Pakiet może i wyprzedzał swoje czasy (Sharepoint miał się stać znany wiele lat później), ale stopień toporności GUI był porażający. Outlook 2003, który nie był szczególnie piękny, na tle lotusowego klienta poczty był jak perła w gnoju.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *