Temat artykułu jest realizowany w ramach Projektu “Cyberakcja - Bezpieczna Bankowa Aplikacja”, finansowanym z grantu Haki na Cyberataki Fundacji Santander. Szczególne podziękowania dla fundacji Manus za pomoc w realizacji projektu.

Logo Cyberakcja
Logo Manus
Logo Santander

Menadżer haseł - sejf na żółte karteczki z hasłami

Pośród haseł jakie musimy zapamiętać w trakcie korzystania z Internetu z pewnością jednym z najważniejszych jest hasło do naszego konta bankowego. Dane dostępowe są tutaj kluczowym zabezpieczeniem i pomimo dodatkowych sposobów utrudnienia dostępu osobom niepowołanym, to właśnie silne hasło stanowi naszą główną broń w arsenale obronnym. Nieodzownym jest więc prawidłowe zarządzanie hasłami oraz czuwanie nad ich prawidłową siłą. Dlatego w tym artykule omówione zostaną wszelkie zagadnienia związane z siłą haseł oraz sposobami na ich bezpieczne przechowywanie. Zapnijcie pasy, ruszamy w podróż po świecie menadżerów haseł.

Jakie jest silne hasło?

Odpowiedź na to pytanie jest z pozoru prosta i przez lata utwardzana była w świadomości internautów -, minimum 8 znaków, mała, wielka litera, cyfra, znak specjalny. Brzmi to jak przepis na dobre ciasto, jednak ile jest w tym prawdy? Należy pamiętać, że rozwój technologiczny nie stoi w miejscu i to co było definiowane jako silne hasło w roku 2012 niekoniecznie pozostaje nim w roku 2022. Jeśli chcielibyśmy zaktualizować tę definicję, musielibyśmy zaczerpnąć wiedzy, która jednoznacznie udowodniłaby trudność łamania hasła w zależności od jego skomplikowania. Tak się składa, że takie dane posiadamy.

Na poniższej grafice przedstawiono tabelę z szacowanym czasem łamania hasła o danym skomplikowaniu metodą brute-force przez infrastrukturę chmurową, której moc obliczeniową ocenia się na 523 GH/s (giga hash na sekundę). Dla porównania pojedyncza karta graficzna RTX 2080 cechuje się średnią mocą na poziomie 37 GH/s. Więcej na ten temat możecie przeczytać tutaj.

Czas łamania haseł o różnej liczbie znaków


Źródło: “Neskey, C. (2022, March 2). Are Your Passwords in the Green? Hive Systems. Retrieved September 16, 2022”

Jak możemy zauważyć na załączonej grafice, hasło według „starych” standardów można złamać w 39 minut co jest wynikiem bardzo złym, o ile nie tragicznym jak na trudność jego zapamiętania. Prowadzi to do jednego wniosku: czas zmienić definicję bezpiecznego hasła. Osobiście sugerując się powyższą tabelą za minimum silnego hasła uważam 12 znakowy ciąg znaków specjalnych, cyfer i liter zostawiając sobie zapas na przyszły rozwój mocy obliczeniowej. Wyrycie w pamięci hasła typu 1hJk7#$L nie należy do prostych ale co powiecie na hasło 1hJk7#$LjK35 ? Z pewnością widzicie w jakim kierunku to zmierza, hasła nie będą się upraszczać, a raczej utrudniać i to w coraz większym tempie.

Teraz pewnie znajdzie się grupa osób, która z uśmiechem na twarzy powie, „Ale ja mam jedno 20 znakowe hasło do wszystkiego, nikt mi tego nie złamie”. W takim rozumowaniu jest jeden zasadniczy zgrzyt, mianowicie: co zrobisz jeśli to jedno hasło wycieknie do publicznych baz z hasłami? Może już tam jest? To właśnie ryzyko wycieku jest tutaj największym problemem, świat byłby idealny gdyby wszystkie serwisy internetowe dbały o bezpieczeństwo naszych haseł tak samo jak banki o bezpieczeństwo naszych pieniędzy. Tak się niestety nie dzieje i o ile wspomniane instytucje finansowe czuwają by nasze hasła były tak samo bezpieczne jak zawartość naszego wirtualnego portfela, to wycieki z takich stron jak Morele.net obrazują skalę problemu. Po tym moralizatorskim upomnieniu pozostaje mi tylko przekazać dwa kluczowe dla omawianego problemu odnośniki: LINK1 oraz LINK2. Pierwszy z nich zawiera stronę, która sprawdza w dostępnych bazach z wyciekami obecność szukanego maila lub telefonu, co może zapalić nam lampkę w głowie, że dobrze byłoby zmienić hasła. Drugi link, bardziej humorystyczny, ale jednocześnie dający do myślenia pozostawiam tym, którzy nadal twardo chcą korzystać z jednego hasła.

Na koniec rozważań nad siłą haseł dorzucę jeszcze ciekawy przypadek haseł typu BardzoTrudneHasłoDoPewengoSerwisu123!@#. Na pierwszy rzut oka zapewne wyda się wam to słabym hasłem, no bo przecież wyrazy słownikowe i w ogóle jakoś mało skomplikowane, i tutaj właśnie trafiamy na pewnego rodzaju kompromis między siłą, a łatwością zapamiętania. Okazuje się bowiem że hasła tego typu to najlepszy wybór jeśli przeraża nas perspektywa zapamiętania trudnych haseł, ale zależy nam na bezpieczeństwie. Dlaczego tak się dzieje? Głównym sprawcą tego porozumienia jest język a konkretniej ilość wyrazów jakie zawiera. Obok ataków siłowych brute force mamy również ataki słownikowe czyli próbowanie wszystkich haseł z pliku tekstowego od góry do dołu, takie pliki mogą ważyć nawet po kilkaset GB a przy tym zawierają jedynie ułamek procenta wszystkich możliwych kombinacji wyrazów i innych znaków. Z tego też powodu niemożliwe jest stworzenie słownika z wszelkimi kombinacjami wyrazów dla danego języka, pozostaje więc metoda brute-force, ale tutaj życzę powodzenia współczesnym komputerom w złamaniu 39 znakowego hasła zwierającego litery, znaki specjalne i cyfry.

How secure is your password


Źródło: “How secure is your password. (n.d.). Password Strength Meter. Retrieved September 16, 2022”

Wszystko wydaje się piękne, ale od wad nie uciekniemy. To rozwiązanie niestety ma kilka problemów. Po pierwsze nie wszystkie serwisy pozwalają na tak długie hasła, przez co tracimy na ich sile i musimy coraz bardziej kombinować by zachować jego moc. Po drugie i najważniejsze, zapamiętanie jednego takiego hasła nie spowoduje trudności, ale konia z rzędem temu kto zdoła spamiętać takie hasła do 10 różnych serwisów. Umieszczenie nazwy usługi w haśle by łatwiej je zapamiętać niestety naraża nas na problem związany z jego wyciekiem.

Jak widać problem zarządzania hasłami jest bardzo duży, nie jest możliwe zachowanie pełnego bezpieczeństwa i łatwości zapamiętania jednocześnie. Dla zainteresowanych tematem mocnych danych dostępowych zostawiam stronę pod LINKIEM, która oblicza siłę hasła na podstawie jego skomplikowania. Artykuł jednak nie kończy się tutaj, gdyż to właśnie teraz przechodzimy do omówienia rozwiązania będącego niczym antybiotyk w walce z bakterią lub ekwiwalent broni atomowej w arsenale chroniącym nasze dane w Internecie, chodzi o menadżery haseł.

When you are more than half way done


Źródło: “Meme Generator”

Dlaczego warto?

Po tym jakże zachęcającym zwiastunie, czas przejść do rzeczy. Jak wspomniałem, menadżer haseł stanowi remedium na problemy związane z zapamiętywaniem haseł. Pozwala on na sprawne, wygodne a przede wszystkim bezpieczne zapisywanie haseł, będące pewniejszą alternatywą dla spisywania danych dostępowych na kartkach przyklejonych pod klawiaturą, podkładką myszy czy, o zgrozo: do boku monitora. Dla osób które pierwszy raz zderzają się z terminem menadżera haseł, przeprowadzę krótkie wprowadzenie.

Menadżer haseł jest oprogramowaniem, które najprościej mówiąc jest jak bezpieczny sejf zabezpieczony oddzielnym hasłem, na nasze wirtualne żółte karteczki z danymi dostępowymi. Pozwala to na zapisanie nieograniczonej ich ilości, a co najważniejsze pozostają one zabezpieczone. To tyle, właśnie poznałeś definicję menadżera haseł a raczej jego głównej części bez której nie moglibyśmy mówić o menadżerze. Na przestrzeni lat oprogramowanie tego typu przeszło dynamiczny rozwój i korzysta z wielu dodatkowych funkcji z czego najpowszechniejsze wymienię poniżej. Po pierwsze, stosuje się logowanie za pomocą weryfikacji 2 stopniowej, co wzmacnia poziom bezpieczeństwa. Taka weryfikacja odbywa się na wiele sposobów; Najczęściej jest to kod wysłany na mail, google auth czy poprzez sms, ale również coraz więcej menadżerów korzysta z fizycznych kluczy takich jak np. rodzina YubiKey. Kolejną funkcją dodatkową jest możliwość zapisania bazy z hasłami w chmurze, definiuje to niejako typ naszego menadżera który może pracować w trybie offline (baza z hasłami zapisana na naszym komputerze), online (dostęp do chmury) lub hybrydowo (co jakiś czas bazy na naszych komputerach są synchronizowane by były takie same). Korzysta się również z funkcji generowania haseł o zadanej sile co ułatwia dodawanie kolejnych pozycji w bazie, eliminując konieczność wymyślania kolejnych unikalnych haseł przy okazji, czasami oceniana jest nawet siła danego hasła podobnie jak na podlinkowanej wcześniej stronie. Poza trzema kluczowymi dodatkami stosuje się wiele pomniejszych jak maksymalizacja dostępności tj. multiplatformowość (dostęp przez stronę, aplikację na telefonie, komputerze i/lub rozszerzenie w przeglądarce), dodatkowo wiele menadżerów obsługuje wprowadzenie dodatkowych danych dostępowych takich jak login, URL strony do której jest hasło itp. w wielu przypadkach możliwe jest nawet autouzupełnianie pól w przeglądarce jeśli dysponujemy rozszerzeniem.

Online vs Offline i dlaczego nie należy bać się chmury?

No dobrze, teraz mogę się założyć, że co najmniej kilku z was zada sobie pytanie: „Wszystko fajnie, ale ja nie chcę udostępniać swoich haseł jakimś podejrzanym firmom, wolę trzymać wszystko u siebie”. Odpowiadając, porównam to podejście do trzymania pieniędzy w domowym sejfie, jest to bezpieczne rozwiązanie, ale żeby dostać się do pieniędzy będąc w sklepie na drugim końcu miasta musimy wrócić do domu, otworzyć sejf, wyciągnąć pieniądze i wrócić do na zakupy. To powinno wam rozjaśnić oczywisty problem z dostępnością, oczywiście, jeśli nie przeszkadza wam konieczność dbania o zsynchronizowanie waszych baz oraz fakt, że awaria sprzętu może zablokować wam dostęp do wszystkich serwisów których dane dostępowe przechowywaliście, to droga wolna. Jednakże nie byłbym sobą gdybym nie spróbował was przekonać do postawienia na efektywność przy jednoczesnym zachowaniu, jak zaraz się okaże, tego samego poziomu bezpieczeństwa.

Postawiłem tezę, teraz wypada ją uargumentować. Otóż tak się składa że biorąc pod uwagę ryzyko wycieku danych, bazy danych przechowują hasła w formie tzw. hashy lub skrótów czyli unikalnych ciągów znaków z których nie można odzyskać wejściowego tekstu, jest to przeciwieństwo szyfrowania które pozwala na odzyskanie wejściowych danych jeśli posiadamy klucz. Dzięki temu nawet wyciek bazy danych nie spowoduje przechwycenia haseł a jedynie ich hashy, co zmusza atakujących do ich crackingu np. metodą brute-force lub słownikowo wykorzystując tablice tęczowe (listy znanych, popularnych haseł w formie skrótów). Zmierzając do celu, polecam się teraz skupić bo procedura rejestracji i logowania do menadżera haseł może być skomplikowana więc to część dla szczególnie zainteresowanych zagadnieniami technicznymi, a więc ruszamy.

When you are more than half way done


  1. Podanie danych do rejestracji w tym hasłak
  2. Hasło jest hashowane do postaci skrótu jest to nasz Klucz A
  3. Generuje się jednorazowo Klucz C, będący losowym, stałym dla danego konta hashem
  4. Szyfruje się Klucz A przy użyciu Klucza C, w efekcie powstaje Klucz B
  5. Klucz B zapisywany jest w Bazie z danymi wszystkich użytkowników serwisu.
  6. Klucz A zostaje zaszyfrowany z użyciem Klucza C w bazie danych
  7. Kolejne zapisywane hasła również są zaszyfrowane z użyciem Klucza C
Diagram tworzenia nowego konta w serwisie


Diagram tworzenia nowego konta w serwisie

Proces logowania do już istniejącego konta wygląda natomiast tak:

  1. Podanie danych do rejestracji w tym hasła
  2. Hasło jest hashowane do postaci skrótu jest to nasz Klucz A
  3. Pobierany jest Klucz B z bazy danych o użytkownikach
  4. Deszyfruje się Klucz B z użyciem Klucza A w efekcie powstaje prawdopodobny Klucz C
  5. Podjęta zostaje próba odszyfrowania Klucza A zapisanego w bazie z zapisanymi hasłami
  6. Następuje porównanie wygenerowanego przy logowaniu Klucza A z Kluczem A zapisanym w bazie, odszyfrowanym wcześniej z pomocą prawdopodobnego Klucza C
  7. Jeśli te dwa Klucze A są identyczne, oznacza to że dane logowania są poprawne, użytkownik zostaje zalogowany i uzyskuje dostęp do zapisanych haseł gdyż zostały one poprawnie odszyfrowane Kluczem C który okazał się być tym właściwym.
  8. W przeciwnym razie użytkownik zostaje odrzucony, nie udało się zalogować Klucze A nie były takie same a zapisane hasła pozostają niezrozumiałym bełkotem.
  9. Po pomyślnym zalogowaniu kolejne zapisywane hasła są zaszyfrowane z użyciem Klucza C
Diagram ponownego logowania do serwisu


Diagram ponownego logowania do serwisu

Podsumowując, procedura zapisywania haseł oraz dostępu do konta zakłada, że w żadnym miejscu nie przechowuje się faktycznych haseł w czystej postaci, a samo hasło logowania jest dodatkowo szyfrowane. Ponadto przechowywany w bazie klucz jest bezużyteczny dla potencjalnego atakującego. Nawet właściciele serwisu nie są w stanie odczytać zawartości twojej bazy z hasłami. Myślę że wszystkie te zalety jednoznacznie świadczą o tym, że nie należy się bać menadżerów haseł działających online bo nasze dane są podwójnie szyfrowane a tym samym kompletnie bezpieczne.

Pozostaje już tylko kwestia potencjalnej awarii. Tak jak wspomniałem, nawet to zostało przemyślane. Serwisy oferujące usługi menadżera haseł przykładają ogromna uwagę do tej kwestii, co kilka minut tworzone jest wiele nadmiarowych backupów na kilku serwerach co upewnia nas że nawet jeśli jedne przestanie działać nasze dane pozostaną na innych i będzie można je przywrócić. Jedynym minusem menadżerów online jest awaria po stronie dostarczającej Internet lub usługi DNS infrastrukturze chmurowej z menadżerem haseł. W takim przypadku niestety menadżer przestanie odpowiadać, gdyż zostanie zerwane połączenie, w efekcie nie będziemy mogli się zalogować do naszego konta. Sam miałem raz taki przypadek, powrót do działania nastąpił po godzinie, jednak zalany potem obserwowałem co się dzieje z moimi hasłami.

Który menadżer wybrać?

Cały ten opis stanowi podsumowanie tego, co oferują współczesne menadżery haseł. Jak pewnie nie ciężko się domyślić powoduje to niezły mętlik w głowie, który menadżer wybrać. Osobiście używam Bitwardena, ale jest to moja preferencja, zachęciła mnie bardzo wysoka dostępność na praktycznie wszystkich platformach przy czym jest on całkowicie darmowy dla użytkowników indywidualnych. Pozostałe propozycje to między innymi KeePass który jest menadżerem Offline, więcej o nim możecie przeczytać TUTAJ. Inną wartą rozpatrzenia alternatywą w 2022 roku jest LastPass oferujący bardzo podobne funkcjonalności, co Bitwarden, jednak nie jest to oprogramowanie open source, dodatkowo plan premium jest droższy od wspomnianego, jeśli chodzi o dostępność jest ona porównywalna, również mamy do dyspozycji z rozszerzeń w przeglądarce jednak do mniejszej ich ilości. Popularny jest również 1Password, nie ma on jednak opcji korzystania za darmo, co dla wielu stanowi pewnie minus, pozostałe funkcjonalności są wręcz kalką z Bitwardena i tutaj właśnie napotykamy na bardzo kluczowy wniosek. Omawiane przeze mnie przy okazji wprowadzenia dodatkowe funkcje są aktualnie obecne w praktycznie wszystkich topowych menadżerach, z tego też powodu porównywanie ich jest trudne, gdyż oferują bardzo podobne usługi, jedynym co się zmienia to cena. Zostawiam wam więc LINK do kompleksowego porównania popularnych menadżerów haseł online i zachęcam do zapoznania się z listą wybierając ten który najbardziej wam odpowiada.

Podsumowanie

Na koniec chciałbym jeszcze raz przekazać wam, że to właśnie prawidłowe zarządzanie mocnymi hasłami stanowi cienką granicę między świadomym, bezpiecznym korzystaniem z Internetu, w szczególności stron banków, a światem słabych, identycznych haseł zapisywanych na żółtych karteczkach.

Finally the end


Wykorzystane materiały: