Hasło a bezpieczeństwo informacji

Jesteś przekonany że Twoje hasła są wystarczająco mocne i przechowywane w bezpiecznym miejscu? Prowadzisz firmę i chcesz zabezpieczyć swoje dane? Ten artykuł jest właśnie dla Ciebie. Ponad 40% specjalistów ds. IT w firmie twierdzi że w przeciągu ostatnich trzech miesięcy doszło do utraty danych na wskutek złej polityki haseł. Zapraszamy do lektury.

Poziom trudności:

Artykuł opracowaliśmy dla osób, które chcą samodzielnie zadbać o bezpieczeństwo haseł internetowych. Nie ważne czy jesteś przedsiębiorcą, czy zwykłym użytkownikiem Internetu, w artykule znajdziesz ciekawe informacje, które z pewnością Cię zainteresują.

Duże firmy i korporacje nauczone doświadczeniem nie tylko posiadają politykę prywatności ale jej przestrzegają. Małe i średnie firmy mają albo będą mieć politykę bezpieczeństwa. To bardzo ważny element funkcjonowania firmy.

Dlaczego to jest tak ważne?
Dobrze opracowana polityka bezpieczeństwa oraz przemyślane procedury, które pozwoliłyby na zminimalizowanie ryzyka utraty wrażliwych danych są w dzisiejszych czasach niezbędne. Pomyśl co by się stało gdyby konkurencja firmy dotarła do całej bazy klientów i zaczęła ich przejmować. Dane osobowe klientów, pracowników, dane finansowe, planowane projekty, strategie działania firmy to cenne dane, których wyciek może spowodować nawet upadek firmy.

1. Pierwsze primo – Hasła

Najprostszym zabezpieczeniem przed dostępem do danych w sieci jest metoda zabezpieczeniem hasłem. Niestety, jak wskazują najnowsze statystyki, zarówno osoby prywatnie, jak i zawodowo używają mało skomplikowanych haseł. Zacznijmy jednak od początku.

Praktyką jest aby aplikacje webowe nie przechowywały haseł dostępowych użytkowników w formie jawnego tekstu (plain text). Jeżeli jakaś nieuprawniona osoba uzyska dostęp do bazy danych – posiada ona wtedy również dostęp do wszystkich haseł znajdujących się w bazie. Dlatego w systemach IT hasło przechowuje się wynik funkcji skrótu na haśle.

 

Jak przebiega proces logowania do strony www za pomocą hasła?

Prześledźmy na przykładzie popularnego serwisu społecznościowego Facebook.Pierwszy krok to założenie konta na tym portalu poprzez formularz rejestracyjny. Formularz przedstawiono na Rysunku 1.1.

Rys. 1.1 Formularz rejestracyjny na konto Facebook.

Użytkownik przy rejestracji podaje jawnym tekstem swój login i swoje hasło. Login pełni rolę identyfikatora w bazie danych. Często jest tak, że identyfikatorem jest adres e-mail, ponieważ jest on globalnym adresem Internetowym na całym świecie.

Czym jest baza danych?

Baza danych to uporządkowany zbiór informacji, zazwyczaj zorganizowany jako zestaw powiązanych ze sobą tabel. Informacje zapisane w bazie danych umożliwiają łatwe porządkowanie i szybkie wydobywanie danych. Przykładem bazy danych w realnym świecie może być książka telefoniczna. Przykładem bazy danych WWW jest np. baza danych MySQL.

Kiedy klikniemy przycisk zarejestruj informacje z formularza rejestracyjnego zapisywane są właśnie do bazy danych. Hasło zapisywane jest w postaci kodu znaków a nie w postaci jawnego tekstu. Tym kodem jest funkcja skrótu.

Wartość funkcji skrótu generuje się za pomocą funkcji H postaci:

h = H(M)

gdzie:

M jest zmiennej długości komunikatem,
H(M) jest ustalonej długości wartością.

Przykładem funkcji haszujących są MD5, SHA1, SHA2. Taka funkcja haszująca jest nieodwracalna – przynajmniej w teorii. Czyli z kodu znaków nie możemy z powrotem odzyskać hasła. Zabezpiecza to przed podglądnięciem hasła nawet z poziomu bazy danych przez administratora czy Intruza. Przypuśćmy że chcielibyśmy użyć funkcji skrótu dla słowa „egeek” – niech będzie to nasze hasło. Wykorzystamy do tego hash MD5. Zakodowany ciąg znaków będzie wyglądał tak:

f4acb4d2b300f9e15cc4549f8b0fdec8

Aby wygenerować takie zakodowane hasło możesz użyć generatora online. W sieci jest mnóstwo tego typu narzędzi. Może to być np. passwordsgenerator.net. Screen ze strony został przedstawiony na Rysunku 1.2.

Hash MD5 Egeek.plRys. 1.2 Formularz generowania skrótu MD5 ze strony passwordgenerator.net

Czy wiesz że?

MD5 to algorytm kryptograficzny opracowany przez Rona Rivesta który jest funkcją skrótu. Generuje z danych dowolnej długości 128-bitowy skrót. Pamiętaj że w 2004 znaleziono poważną lukę w bezpieczeństwie MD5 (kolizja danych) i funkcja obecnie nie powinna być używana w zastosowaniach takich jak np. podpis cyfrowy. Zamiast funkcji MD5 powinniśmy stosować SHA-1 a najlepiej SHA-2. Skróty 128-bitowe (MD5, MD4) są zbyt krótkie, żeby zabezpieczyć przed generowaniem kolizji. Dobrą praktyką jest zastosowanie skrótów co najmniej 160-bitowych (SHA-0, SHA-1). Warto wspomnieć że istnieją także funkcje w odmianie SHA-256/224 i SHA-512/384. Warto zauważyć że największą szybkość hashowania można osiągnąć dla funkcji MD5, wolniejsze jest wykonanie funkcji SHA-1/2.

MD5 –  8223 miliona hashy na sekundę
SHA-1 – 2852 miliona hashy na sekundę

Jak zatem sprawdzane jest hasło?

Kiedy chcemy zalogować się do założonego konta Facebook podajemy dwie informacje: identyfikator (np. e-mail) i hasło.

Rys. 1.3 Formularz logowania do Facebook

Po przyciśnięciu przycisku Zaloguj się, hasło jest kodowane za pomocą funkcji skrótu dokładnie tej samej co przy rejestracji. Następnie właśnie wyliczona funkcja skrótu jest porównywana z tym kodem znajdującej się w bazie danych. Identyfikatorem jest tutaj login. Jeżeli obie wartości hasła są równe dla konkretnego loginu następuje uwierzytelnienie użytkownika w serwisie www.

W czym jest problem z hasłami?

Jak wskazują badania, większość osób używa mało skomplikowanych haseł, które bardzo łatwo można złamać, czy nawet zgadnąć. Istniej mnóstwo sposobów ataku na hasło np. atak słownikowy czy bruteforce. Atak słownikowy (ang. dictionary attack) jest to technika używana do siłowego odgadywania haseł. Atak słownikowy bazuje na sprawdzeniu przygotowanej wcześnie bazy haseł.
W internecie możemy znaleźć przykłady listy słów występujących w danym języku, albo najpopularniejsze hasła użytkowników z danego roku. W ataku brute force bada się kolejno wszystkie kombinacje danego klucza w celu odnalezienia właściwego wzoru. Przykładami programów łamiących metodą słownikową są Cain oraz John the Ripper. Istnieją również portale np. takie jak CrackStation które w ciągu kilku sekund odzyskają hasła ze skrótów wytworzonych za pomocą algorytmów takich jak: md4, md5, md5, sha1, sha1, sha224, sha256, sha384, sha512.

 

2. Jak się zabezpieczyć?

  1. Regularna zmiana hasła

Częste zmiany hasła mogą mieć problem z jego zapamiętaniem. Dlatego często użytkownicy zapisują hasła w notatniku czy pliku tekstowym na komputerze. Niestety częste są też przypadki w korporacjach gdzie comiesięczna zmiana hasła powoduje iż pracownicy używają łatwych do zapamiętania haseł np. marzec2017, Kwiecień2017. Jeżeli jesteś taką osobą to mamy nadzieje że po przeczytaniu tego artykułu nie będziesz tak robił.Hasło zapisane na kartce - egeek.pl

Rys. 1.3 Zapisane hasło na kartce.

Gdzie zapisywać hasła?

Odpowiedzią  na to pytanie są menadżery haseł. Polecamy np. program desktopowy KeePass.

2. Silne hasło

Zapewne nie raz słyszałeś komunikat: używaj bezpiecznego hasła. No tak zgadza się ale jakie hasło jest bezpieczne? co jakiś czas zwiększają się wymagania dla hasła uznawanego jako silne. Do łamania hashy używa się kart graficznych, dzięki którym proces łamania można wykonać nawet 1000 razy szybciej niż z wykorzystaniem procesorów.

Hasło powinno mieć minimum 10 znaków. Powinno składać się  z małych, dużych litery oraz cyfr jak również znaków specjalnych takich jak: !@#$%^&*().

Przykłady dobrych haseł: Al()Ksbn64*, k9lk09k%^&, MBV?><*(963147

3. Dostarczanie hasła

Pamiętaj aby nie przesyłać nikomu danych dostępowych jawnym tekstem drogą elektroniczną poprzez chat, email itd. Zanim wiadomość trafi do odbiorcy przechodzi przez co najmniej kilka serwerów. Po drugie nie masz nigdy pewności kto otworzy wiadomość po drugiej stronie. Skorzystaj więc z szyfrowania wiadomości. Jeżeli koniecznie musisz wysłać wiadomość z hasłem to użyj dwóch form komunikacji. Wyślij SMS-em hasło a login droga e-mail.

 

Moje początki programowania sięgają 2010r. W trakcie wielu projektów zdobywałem doświadczenie, rozwijając nie tylko umiejętności techniczne, ale także kompetencje miękkie. Programuje głównie w PHP i Python.