CyberLabs

CyberLabs #2 – Bezpieczeństwo haseł, czyli dlaczego warto tworzyć silne hasła

Michał Błaszczak, 5 October 2022

cyberlabs-bezpieczenstwo-hasel

Przedstawiamy drugą część naszego cyklu CyberLabs poświęconą bardzo ważnemu zagadnieniu, jakim jest bezpieczeństwo haseł. Dziś dowiesz się m.in.: jak dochodzi do ich wycieku oraz co zrobić by Twoje dane logowania były bezpieczne i jak korzystać z unikalnych haseł. Zapraszamy do lektury!

Hasło w dzisiejszych czasach

Haseł używamy codziennie. Są one dla nas czymś bardzo ważnym, ponieważ stały się  kluczem do poufnych danych, którymi nie dzielimy się na codzień. Dlatego też cyberprzestępcom tak bardzo na nich zależy (zdobywają często hasła poprzez phishing bądź włamując się do danego systemu – popularny wyciek haseł). O ile w pierwszym wypadku hasło nawet skomplikowane będzie przekazane do przestępcy w jawny sposób to przy wycieku danych nasze hasło jest zahashowane i przestępca musi to hasło odzyskać (i to od nas zależy czy mu się to uda).

CyberLabs #1- Phishing czyli jedno z najbardziej popularnych cyberzagrożeń

Jedno hasło, jeden system

Tytuł ten dla każdego z nas powinien być pewną zasadą, z której będziemy korzystać podczas rejestracji nowego konta w kolejnym systemie. Dodatkowo warto w tym momencie zastanowić się, czy nasze dotychczasowe konta były tworzone zgodnie z tą zasadą. Jeśli nie – warto to zmienić. Zasada ta jest bardzo ważna, ponieważ często można usłyszeć, że w ramach pewnego ataku, atakującemu udało uzyskać się login i hasło, za pomocą którego później mógł się logować do wielu systemów.

To właśnie przez ten brak cyberhigieny, cyberprzestępca jest w stanie w szybki sposób przejąć wiele kont, z których korzystamy. Tutaj z pomocą aby zapamiętać wszystkie hasła przyjdzie nam menadżer haseł, który pozwoli na korzystanie z silnych haseł w każdym dowolnym systemie.

ideal-password

Wycieki a bezpieczeństwo haseł

Jeśli dojdzie do wycieku bazy, w której znajdują się nasze dane logowania, często możemy się spotkać z informacją, która nakazuje nam od razu je zmienić. Jest to oczywiście uzasadniona reakcja, jednak warto wiedzieć, że hasła w bazach nie są przechowywane w postaci jawnej (przynajmniej nie powinny – to, w jakiej formie są przechowywane, zależy od twórców danej aplikacji). W bazach dane te przechowywane są jako hash.

W skrócie wygląda to następująco: użytkownik podczas rejestracji podaje swoje hasło do konta lub korzysta z generatora haseł, po przesłaniu formularza, hasło za pomocą algorytmu hashującego jest zamieniane w ciąg znaków tzw. hash(hash dla danego hasła jest zawsze taki sam, oczywiście wykorzystując ten sam algorytm hashowania hasla np. md5).

Cały proces jest jednokierunkowy, co oznacza, że nie istnieje możliwość odwrócenia tego procesu (nie można w prosty sposób zamienić hasha w hasło, które się pod nim kryje). Jest to dla nas ważna informacja, która oznacza, że podczas wycieku haseł w niepowołane ręce, atakujący nie ma bezpośrednio naszego hasła, a jedynie hash, który trzeba złamać czy “odzyskać”. To właśnie w zależności od tego, czy atakujący jest w stanie w przystępnym czasie odzyskać nasze hasło, jest informacją dla nas ważną, ponieważ od tego zależy czy atakujący uzyska dostęp do naszego konta.

Na czas odzyskiwania haseł w głównej mierze składa się poziom skomplikowania użytego przez nas hasła (m.in jak długie jest nasze hasło, czy składa się z wszystkich rodzajów znaków, czy jest to hasło “generowane” czy raczej jest to np. nasze imię + data urodzenia, czy używa znaków specjalnych)  – im dłuższe i bardziej skomplikowane hasło, tym ciężej będzie je odzyskać lub złamać.

Dodatkowo na samo bezpieczeństwo haseł wpływa wybrany przez programistów algorytm hashujący.

Jak dochodzi do wycieku hasła?

Tak naprawdę do wycieku może dojść na wiele sposobów. Przyglądając się wyciekom na przestrzeni ostatnich miesięcy, możemy zauważyć powtarzające się schematy. Często wszystko zaczyna się od phishingu i wyłudzenia danych jednego z pracowników, za pomocą których atakujący uzyskuje dostęp do sieci wewnętrznej firmy. Inne wycieki haseł mają swój początek w zapomnianych już systemach, które miały być dostępne tylko na chwilę, a które po kilku latach posiadają masę podatności. Kolejne zaś wycieki zaczynają się od haseł czy kluczy API, które są dostępne w publicznych repozytoriach.

Warto więc nie czekać na atak i zacząć dużo wcześniej przeprowadzać regularne audyty naszych systemów i utworzyć bezpieczne hasło zawierające losowe słowa lub inne, trudne do złamania ciągi znaków. Dodatkowo warto pamiętać, że często atak zaczyna się od “manipulacji” pracownika dlatego przeprowadzajmy też odpowiednie szkolenia czy kontrolowane ataki phishingowe, które znacząco pozwolą wyczulić pracowników.

Co to jest BIMI?

Jak wygląda odzyskiwanie haseł?

Tak jak wspomniałem, na czas odzyskania hasła z hasha znaczący wpływ ma poziom skomplikowania, czyli to jak silne jest hasło. Żeby jednak zrozumieć, dlaczego jest to tak ważne, trzeba wiedzieć jakich metod używają cyberprzestępcy do odzyskania hasła z hasha, który wyciekł. Na początku jednak trzeba powiedzieć, że odzyskiwanie hasła polega na generowaniu ogromnej ilości hashy z pewnych ciągów znaków i porównywaniu ich z oryginalnym hashem (czyli tym, który chcemy złamać). Jeśli hashe będą takie same, oznaczać to będzie, że znaleźliśmy poszukiwane hasło.

Metody odzyskiwania haseł

    • Metoda słownikowa – w tym przypadku atakujący polega na tzw. słowniku, w którym znajdują się np. popularne hasła (z innych wycieków), imiona, nazwy własne itp. Podczas odzyskiwania hasha tą metodą brane jest pojedyncze słowo z takiego słownika, następnie generowany jest hash z tego słowa i porównywane z hashem, który chcemy odzyskać. Atak powiedzie się, jeśli naszym hasłem jest popularny ciąg znaków np. Password. Oczywiście atakujący może tworzyć hasło z kilku słowników. Jeśli więc w jednym słowniku znajduję się słowo “Strong” a w drugim “Password” atakujący również sprawdzi hash dla hasła “StrongPassword”
    • Metoda siłowa – wykorzystując tę metodę, atakujący sprawdza każdą możliwą kombinację. Przed rozpoczęciem ataku może on zdefiniować, jak długie hasła chce generować, czy hasła mają składać się z dużych i małych liter, czy może do tego jeszcze mają zawierać cyfry. Przy tej metodzie przestępca może użyć tzw. Masek, które definiują jaki rodzaj znaku ma być sprawdzany w konkretnym miejscu, np. może założyć, że dużo osób korzysta z 8 znakowych haseł, w których na początku jest duża litera, dwa ostatnie znaki to cyfry a reszta to małe litery. Dzięki takiemu podejściu znacząco zmniejszy liczbę kombinacji do sprawdzenia. Tą metodą atakujący jest w stanie odzyskać każde hasło, jedynym problemem jest czas, w którym komputer jest w stanie sprawdzić wszystkie kombinacje dla konkretnych założeń i czy ten czas jest do przyjęcia.
metoda-silowa-silnikowa

Metoda siłowa vs. metoda silnikowa

Powyższe, znane cyberprzestępcom metody z powodzeniem można łączyć, przez co atakujący jest w stanie skuteczniej odzyskiwać hasła z hashy zdobytych w ramach np. wycieku. Czytając o metodach odzyskiwania hasła, może nam się nasunąć dość prosty wniosek.

Nasze hasła nie mogą składać się z prostych słów lub informacji zawierających nazwę użytkownika, ponieważ będzie można odzyskać takie hasło metodą słownikową.

Ponadto, jeśli będziemy stosować przewidywalne hasła, w których konkretny rodzaj znaku będzie znajdował się w konkretnych miejscach np. wspominane hasło z dużą literą na początku i cyframi na końcu, to atakujący będzie również je w stanie złamać w rozsądnym czasie, gdyż układ znaków jest dość przewidywalny i powszechnie używany.

Jak tworzyć bezpieczne hasła?

Wystarczy, że nasze hasło po pierwsze będzie odpowiednie długie (minimum 15 znaków), po drugie nasze hasło będzie zawierać znaki specjalne w przypadkowych miejscach. Przykładem takiego hasła może być np. hasło wygenerowane na jednej ze stron dostępnych w internecie):

6nA27x7#2W8!k&g

Takie hasło na pewno nie będzie znajdować się w żadnym słowniku, ponadto atakujący nie będzie w stanie określić miejsca konkretnych znaków. Nawet jeśli cyberprzestępca trafi, że nasze hasło ma 15 znaków, pozostaną mu do sprawdzenia wszystkie możliwe kombinacje składające się z wszystkich możliwych znaków (około 90) na każdym z dostępnych 15 miejsc. Wynikiem tego jest ogromna liczba kombinacji, której cyberprzestępca nie będzie w stanie sprawdzić w rozsądnym czasie.

Menadżery haseł

W poprzednim punkcie została przedstawiona informacja, która to jasno stwierdza, że najbezpieczniej jest używać długich (min. 15 znaków) haseł składających się z wszystkich rodzajów znaków w przypadkowych miejscach.

Jedynym “minusem” takich haseł jest ewentualny problem z ich zapamiętaniem. Jeśli do tego stosujemy zasadę: “jedno hasło, jeden system” może się okazać, że mamy sporo haseł, które nie są łatwe do zapamiętania. Z pomocą przychodzą nam menadżery haseł, czyli specjalne sejfy na nasze hasła, dzięki nim nie musisz zapamiętywać haseł do każdego systemu osobno.

Przykładem takiego menadżera może być KeePassXC, który tworzy specjalny “sejf” trzymany lokalnie na naszym komputerze. Dostępu do tego sejfu chroni hasło (jedyne hasło, o którym musimy pamiętać) warto więc, żeby było odpowiednio silne. Dodatkowo taki menadżer haseł możemy zabezpieczyć kluczem sprzętowym, o którym będzie w dalszej części artykułu. Dzięki takiemu rozwiązaniu możemy bezpiecznie przechowywać nasze hasła (skoro mamy miejsce, w którym możemy przechowywać hasła, równie dobrze możemy wygenerować sobie dłuższe niż 15 znakowe hasła – co oczywiście tylko korzystniej wpłynie na nasze bezpieczeństwo).

keepasxc

KeePassXC to otwartoźródłowy menadżer, który jest dostępny na różne systemy oraz który możemy zintegrować z przeglądarką.

Oczywiście KeePassXC nie jest jedynym tego typu rozwiązaniem. W internecie z powodzeniem możemy znaleźć inne aplikacje, możemy skorzystać również z menedżera haseł Google. Niektóre menadżery haseł mają dodatkowo pluginy, które możemy instalować w przeglądarce, dzięki czemu nie trzeba ich każdorazowo wpisywać podczas logowania na przykład na koncie Google, inne mają dodatkowo aplikację mobilną. Wszystko więc zależy od naszych potrzeb i na pewno znajdziemy rozwiązanie, które będzie nam odpowiadać.

Uwierzytelnianie dwuskładnikowe haseł

Dwuskładnikowe uwierzytelnienie (2FA) jest dodatkowym zabezpieczeniem wykorzystywanym podczas procesu logowania do danego konta w mediach społecznościowych, czy bankowości internetowej. Podczas logowania w dalszym ciągu wymagane jest podanie loginu oraz hasła, jednak oprócz tego na koncie z uruchomionym 2FA należy podać dodatkowy “składnik” np. kod z odpowiedniej aplikacji.

2fa

Uwierzytelnienie dwuskładnikowe (ang. Two Factor Authenticaton, 2FA) może pomóc chronić twoje konta internetowe, nawet jeśli twoje hasło zostanie skradzione.

Rodzaje 2FA

Decydując się na dwuskładnikowe uwierzytelnianie musimy podjąć decyzję dotyczącą wyboru dodatkowej metody uwierzytelniania. W zależności od konkretnej aplikacji ilość dostępnych metod może się różnić, jednak do wyboru będziemy mieli następujące opcje.

Kod SMS 

Jeśli wybierzemy tą opcję podczas logowania do naszego konta otrzymamy dodatkowy jednorazowy kod na wskazany podczas konfigurowania numer telefonu.

Kod w aplikacji

Ta metoda jest bardzo podobna do wspomnianego wcześniej kodu SMS, jednak w tym przypadku kod jest generowany w specjalnej aplikacji, którą wcześniej musimy zainstalować na nasze urządzenie mobilne, a samą aplikację musimy “połączyć” z naszym kontem. Wygenerowane kody są dostępne przez 60 sekund, po tym czasie zostanie wygenerowany nowy kod.

Klucz sprzętowy

Jest to najbezpieczniejsza metoda dwuskładnikowego uwierzytelniania. O ile kody z dwóch poprzednich metod można zdobyć za pomocą phishingu, to w przypadku użycia tej metody podczas logowania do naszego konta musimy wpiąć fizycznie klucz sprzętowy do portu USB. Bez tej czynności nie będziemy w stanie zalogować się do konta!

Czy warto używać 2FA?

Zdecydowanie tak! Dwuskładnikowe uwierzytelnienie znacznie wpłynie na bezpieczeństwo Twoich kont. Jeśli dojdzie do wcześniej wspomnianych wycieków baz danych, w których będą znajdować się Twoje hasła, używanie dwuskładnikowego uwierzytelnienia skutecznie utrudni atakującemu dostęp do konta.

Jeśli do tego będziemy używać silnych, generowanych haseł nasze konto będzie naprawdę dobrze chronione.

Bezpieczeństwo haseł: garść dobrych rad:

    • Stosuj zasadę: “Jedno hasło, jeden system”. Dzięki temu nawet jeśli atakujący będzie w posiadaniu naszego hasła (czy to w wyniku phishingu, czy poprzez odzyskanie hasła z hasha) będzie mógł go użyć tylko do jednego systemu, przez co powierzchnia ataku znacząco się zmniejszy.

    • Używaj dwuskładnikowego uwierzytelnienia przynajmniej do ważniejszych dla Ciebie kont (idealna sytuacja to taka, w której stosujemy 2FA w każdym koncie). Jeśli dojdzie do podobnej sytuacji jak powyżej tj. przejęcia naszych loginów, haseł, atakujący nie będzie w stanie zalogować się do danego konta. Pamiętaj, że kody 2FA mogą zostać przejęte podczas ataku phishingowego, dlatego uważaj, gdzie podajesz te kody!

    • Do tworzenia haseł warto stosować tzw. generatory haseł, które stworzą nam odpowiednie długie i skomplikowane hasła, które będą odporne na próby ich łamania czy odzyskiwania.

    • Nie przechowuj swoich haseł w plikach tekstowych czy karteczkach samoprzylepnych. Do przechowywania haseł warto użyć specjalnych menadżerów np. KeePassXC czy 1Password.

    • Niektórych wycieków haseł możemy być nawet nieświadomi. Warto więc co jakiś czas sprawdzić np. na stronie https://haveibeenpwned.com/ czy nasz adres e-mail nie znajduje się w jakimś wycieku. Jeśli okaże się, że tak, zostaniemy poinformowani o nazwie strony, z której nasze dane wyciekły. Dodatkowo dowiemy się, jakie to były dane.

Stay secure! 👾

Załóż konto w EmailLabs już dziś!

Zadbaj o swoją prywatność i bezpieczeństwo swojej komunikacji!

Najpopularniejsze

Najnowsze wpisy na blogu