Błędy w menadżerach haseł

kłódka. CC-BY zaphad1Mam menadżera haseł – jestem bezpieczny? Jak się okazuje, nawet jeśli menadżer doskonale szyfruje hasła, rozkodowuje tylko te potrzebne – i to tylko na czas potrzebny do przekopiowania sobie ich do schowka, oraz pięknie wygląda – nawet wtedy może zawierać poważne błędy ułatwiające przejęcie haseł.

Eksperci ISE wzięli pod lupę cztery popularne menadżery haseł: 1Password (w dwóch wersjach – 4. i 7.), Dashlane, KeePass i LastPass – i przebadali je na platformie Windows 10 pod kątem możliwości wycieku haseł. Postawili tezę, że twórcy oprogramowania pilnującego naszych haseł dbają o to, by po rozkodowaniu i wykorzystaniu hasła, wyczyścić miejsce w pamięci w którym było przez chwilę przechowywane – i postanowili ją zweryfikować.

Menadżery haseł mogą być w jednym z trzech stanów:

  • wyłączonym – traktowanym tu jako nie uruchamiany od momentu ostatniego rebootu komputera. W takiej sytuacji, na dysku (ani w pamięci) nie powinno być śladu po zapisanych hasłach, śladu po master-password odblokowującym dostęp do bazy haseł, zaś sama baza powinna być bezpieczna nawet, jeśli ktoś ją wykradł. No, chyba, że master-password jest słowem występującym w każdym słowniku.
  • włączonym, zablokowanym – menadżer został uruchomiony, ale jeszcze nie wprowadzono hasła, lub hasło wprowadzono, a następnie naciśnięto przycisk „zablokuj bazę”. W takiej sytuacji hasła powinny być równie bezpieczne, co w pierwszym przypadku, a dodatkowo w RAM nie powinno być śladu po master-password ani żadnych informacji ułatwiających rozszyfrowanie bazy lub odczytanie wcześniej odszyfrowanych haseł.
  • włączonym, odblokowanym – menadżer haseł został uruchomiony, master-password zostało wprowadzone, baza haseł czeka na wykorzystanie. Na dysku i w pamięci nie powinno być informacji pozwalającej odczytać master-password, niewykorzystane w danej sesji hasła nie powinny być dostępne w pamięci.

    Jak wygląda bezpieczeństwo testowanych menadżerów w tych sytuacjach?

    Wyłączone
    Algorytmy wykorzystywane przez wszystkie menadżery do zapisania bazy na dysku są uznawane za bezpieczne, w związku z tym nie badano nic dalej. (uwaga lmj: co oczywiście nie zmienia faktu, że w implementacji może być błąd – ale tego autorzy raportu nie sprawdzali).

    włączone, odblokowane
    1Password w wersji 4: pojedyncze hasła są nadpisywane w pamięci – co oznacza, że w danym momencie można się dobrać tylko do ostatnio wykorzystywanego. Ze względu na błąd w programie, master-password w formie „zaciemnionej” jest dostępny w RAM i nie jest prawidłowo czyszczony w momencie przechodzenia ze stanu odblokowanego do zablokowanego, przez co istnieje ryzyko jego wypłynięcia. Możliwe jest też doprowadzenie do sytuacji, gdy master-password zostaje w pamięci zapisane czystym tekstem po zablokowaniu programu.

    1Password w wersji 7: najnowsza wersja 1Password rozszyfrowuje WSZYSTKIE hasła zaraz po wprowadzeniu master-password. Informacja pozostaje w pamięci nawet po zablokowaniu programu. Hasła nie są „zaciemniane”. Podczas testów, system Windows się wywalił i jedno haseł… znalazło się w logach!

    Dashlane: podobnie jak 1Password w wersji 4, Dashlane dba o to, by w pamięci znajdowało się tylko ostatnio używane hasło. Problem polega na tym, że cała baza jest rozszyfrowywana i umieszczana w pamięci w momencie, kiedy użytkownik ją modyfikuje – na przykład, dopisuje hasło do bazy. W takiej sytuacji atakujący może mieć do niej dostęp do momentu, kiedy jakiś inny proces skorzysta z tego samego obszaru RAM.

    KeePass 2.4.0: Master-password jest skutecznie usuwany z pamięci po jego wykorzystaniu. Pojedyncze hasła, które są rozszyfrowywane, trafiają do RAMu… i mogą w nim zostać nawet po zablokowaniu bazy. Przy czym – w przeciwieństwie do Dashlane – nie ma sytuacji, gdy cała baza ląduje rozszyfrowana w pamięci.

    LastPass: Master-password jest usuwany z pamięci zaraz po odblokowaniu bazy. Niestety – nieskutecznie, i ląduje w innym miejscu RAMu. Hasła, które były rozszyfrowane, zostają w pamięci nawet po zablokowaniu programu.

    Podsumowując: jeśli chodzi o zarządzanie pamięcią na platformie Windows, cztery (pięć) najpopularniejszych menadżerów haseł ma problemy. Jeśli ktoś może odczytać zawartość pamięci RAM, może odczytać przynajmniej te hasła, z których korzystaliśmy w ostatnim czasie.

    Czy to znaczy, że mamy przestać korzystać z menadżerów haseł i wrócić do zapamiętywania jednego-pięciu trudnych haseł, by wykorzystywać je na lewo i prawo? W żadnym wypadku! W dalszym ciągu menadżer haseł da nam większe bezpieczeństwo, niż nawet najsilniejsze hasło, z którego korzystamy wszędzie. No i – tradycyjnie – zachęcam do korzystania z klucza sprzętowego, albo chociaż z osobnej aplikacji do dwuskładnikowego uwierzytelniania.

    Więcej: Password Managers: Under the Hood of Secrets Management

About lmj

Łukasz Jachowicz (honey). Pierwszy raz w internecie w 1991 lub 1992. Pierwszy raz z własnym serwisem (codziennie aktualizowanym!) – w 1996. Pierwszy raz z własnym serwisem oraz grupą wiernych fanów – w 2000/2001. Do dziś bez stałego łącza do internetu (choć by chciał – ale dystans ok. 90 metrów do skrzynki nie do przeskoczenia dla operatora). Przez wiele lat popularyzator idei otwartości w oprogramowaniu i standardach wykorzystywanych przez administrację publiczną. Zwolennik otwartości dostępu do możliwie szerokiego zakresu danych publicznych. Autor analiz i policy papers dotyczących otwartości danych publicznych i zarządzania internetem. Miłośnik (choć nie bezkrytyczny) Linuksa. Przez wiele lat zawodowo zajmował się analizowaniem styku polityki i technologii. Twórca 7thGuarda, Rębaczy i rosnącej liczby odcinków podkastu Cyber Cyber. Zawodowo związany z Mediarecovery, gdzie zajmuje się bezpieczeństwem IT i informatyką śledczą.

View all posts by lmj →

6 Comments on “Błędy w menadżerach haseł”

    1. Korzystam z YubiKey4 i sobie chwalę. Pamiętaj, by kupić od razu dwa, bo bez klucza możesz mieć problem z dostępem do bazy (i prawidłowo).

      1. aa ok, uzywasz keepassxc. Z tym że ja używam keepass i chodziło mi o plugin do keepass (do obsługi klucza)

        1. Nie, przeniosłem się na KeePassXC, właśnie dlatego, że lepiej wspierał klucze. Ale wcześniej używałem gołego KP.

Comments are closed.