Mam 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
OK jaki klucz sprzętowy polecasz do keepassa?
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).
hej. A jaki plugin wgrałeś? Dzięki z góry
Do Chrome ten: https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk
Do FF ten sam: https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/
KeePassXC odpala mi się przy starcie komputera, wkładam klucz, odblokowuję bazę i działa.
Nie ma za co – zapraszam do dzielenia się z ludźmi dobrym słowem o istnieniu rębaczy 🙂
Ł.
aa ok, uzywasz keepassxc. Z tym że ja używam keepass i chodziło mi o plugin do keepass (do obsługi klucza)
Nie, przeniosłem się na KeePassXC, właśnie dlatego, że lepiej wspierał klucze. Ale wcześniej używałem gołego KP.