Elementarz bezpiecznych haseł

12.03.2013 Marcin Skrylec Tagi: ,

Nigdy nie korzystaj z tego samego hasła w wielu miejscach. Aby nie zgubić się w nadmiarze różnych haseł, używaj tak zwanego banku haseł albo własnego sposobu tworzenia ich. Ponadto są sposoby pozwalające zapamiętać skomplikowane główne hasło do miejsca, w których będziesz przechowywać pozostałe.

Chociaż bezpieczeństwo użytkownika zależy w dużej mierze od niego samego, odpowiedzialność za bezpieczeństwo haseł spoczywa na twórcach i administratorach serwisów internetowych. Jeżeli bezmyślnie się z nimi obchodzą i przechowują hasła swoich użytkowników w czystym tekście, w przypadku włamania użytkownicy serwisu są na straconej pozycji. Rzecz ma się podobnie, gdy serwis przechowuje hasła w haszach MD5 albo SHA1, ale niesolonych – wtedy złamanie takiego ciągu jest tylko kwestią czasu (dodatkowo bardzo krótkiego).

Z drugiej strony, złamane hasło do konta na LinkedIn nie jest końcem świata, gdyż atakujący i tak mieli już pełny dostęp do serwerów serwosu, w tym do danych użytkowników, bez potrzeby posiadania ich haseł. Zatem jeśli użytkownik używał tego hasła tylko w tym jednym serwisie, nie ma to dla niego większego znaczenia czy zostanie ono złamane i wykorzystane. Jeżeli jednak korzystał z tego samego hasła na Allegro, PayPalu, Gmailu i w kilku innych miejscach… wyścig z czasem może dać się we znaki.

 

n!3 tw0rz t4k!ch h4s3ł

Jeżeli hasła przechowywane są w odpowiedni sposób (za pomocą bcrypt albo PBKDF2), hasło składające się z co najmniej ośmiu losowych znaków może przetrwać próby złamania wiele lat. Podkreślić należy słowo losowe – na przykład nie „s3kr3t!1”. Od dawna wiadomo, że cokolwiek możliwego do wymyślenia i zapamiętania przez człowieka jest zbyt przewidywalne i oferuje za mało bezpieczeństwa.

Narzędzia takie jak PWGen potrafią generować hasła na podstawie losowo wybranych, ale zrozumiałych kryteriów. Ale dobre hasło składa się z co najmniej 8 losowych, alfanumerycznych i specjalnych znaków. I takie powinno się generować. 12 znaków powinno być standardem w miejscu takim, jak dostęp do bazy danych innych osób.

To ważne żeby było naprawdę losowe, więc nie wahaj się użyć specjalnego narzędzia, które stworzy niezależny wzorzec. Następnie zapisz je na kawałku papieru i ustaw je jako hasło na głównym komputerze. Czas do blokady ekranu ustaw na najniższą możliwą wartość, na przykład na minutę, dzięki czemu pytany będziesz o hasło po każdej krótkiej przerwie. Może brzmieć jak tortura, ale powinno bardzo pomóc w zapamiętaniu nowego hasła. Po kilku dniach, niespodziewanie obudzony o 3 w nocy będziesz w stanie wyrecytować je z pamięci, czyli z czystym sumieniem będzie można przywrócić normalny czas do blokady. Na wszelki wypadek przez następne dni przechowuj karteczkę w portfelu, a później schowaj ją do sejfu (lub innego bezpiecznego miejsca) wraz z innymi wartościowymi rzeczami.

 

Jedno hasło do wszystkiego to błąd

Chociaż właśnie zapamiętałeś bardzo bezpieczne hasło, pod żadnym warunkiem nie możesz używać go do wszystkich kont. Paradoksalnie nie korzystaj z niego wcale w serwisach internetowych, tylko uczyń je głównym hasłem do bazy z innymi hasłami, albo podstawą do systemu tworzenia pochodnych ciągów.

 

Przechowywanie haseł

Jeżeli zapytalibyście o to osoby zajmujące się łamaniem haseł, to najprawdopodobniej poleciłyby takie programy lub usługi jak KeePass, LastPass albo 1Password. Pozwalają one użytkownikom tworzyć naprawdę losowe hasła dowolnej długości, teoretycznie niemożliwe do złamania.

Niemniej z tego typu usługami związany jest jeden poważny problem – jeden trojan na komputerze może momentalnie doprowadzić do kradzieży wszystkich haseł jednocześnie. Jedyne co jest potrzebne, to główne hasło dostępowe do banku haseł, przykładowo przechwycone przez keyloggera. Istnieją również szkodniki odczytujące hasło z pamięci RAM, gdzie przechowywane są w nieszyfrowanej postaci.

Pomijając to niebezpieczeństwo, rozwiązanie wydaje się wygodne. Ma w końcu na celu odciążenie pamięci użytkownika i umożliwienie przechowania długich, losowych haseł, często niemożliwych do zapamiętania i łatwego wpisania. Poza tym niewiele osób korzysta dzisiaj z Internetu za pomocą jednego komputera. Poza laptopami i komputerami domowymi, mamy styczność ze smartfonami, tabletami albo komputerami w pracy, z których też chcemy mieć dostęp do Facebooka, Dropboksa i wielu innych serwisów.

Wiąże się z tym szereg wad. Hasła są praktycznie uzależnione do istnienia w chmurze, co z pewnością nie podoba się każdemu. W końcu wymaga to zaufania do firm przechowującej hasła, a stabilność, niezawodność, i co najważniejsze bezpieczeństwo ich usług są trudne do ocenienia lub chociaż oszacowania. Ponadto wymagana jest specjalna aplikacja na każdej platformie (czasami istnieje możliwość dostępu przez zwykłą przeglądarkę). Przykładowo użytkownicy 1Password mogą być zmuszeni do zapłacenia za aplikację na smartfony z Windowsem, a ci z Blackberry obejść się smakiem.

Inną sprawą jest to, że wersja Lastpass na komputery osobiste jest całkowicie darmowa, a wersja pro, synchronizująca hasła użytkowników smartfonów, wymaga subskrypcji wynoszącej 12 dolarów amerykańskich rocznie. 1Password życzy sobie 50$ za wersję na Windowsy i dodatkowe opłaty za inne platformy. KeePass jest darmowy (a jego kod źródłowy jest publicznie dostępny), użytkownicy muszą sami dbać o synchronizację bazy – na przykład za pomocą Dropboksa – albo korzystać z aplikacji takich jak MiniKeePass na iOS, o których jakości wiadomo niewiele.

 

Własny system tworzenia haseł

Innym pomysłem jest tworzenie kolejnych wariacji haseł na podstawie bazowego hasła „nie do złamania”. To rozwiązanie również ma pewne wady – jedną z nich jest to, że ktoś trzeci może rozgryźć schemat i umożliwić sobie odwiedzenie wszystkich kont w kilkanaście, góra kilkadziesiąt minut.

Oczywiście powinieneś wymyślić własny sposób tworzenia pochodnych haseł, ten niżej przedstawiony to tylko przykład. Po wygenerowaniu losowego hasła –  na potrzeby artykułu niech będzie to „;ti!5fL” – należy zastanowić się nad dalszą częścią. Dla stron internetowych dobrym pomysłem będzie użycie nazwy domeny, konkretniej drugiego i czwartego znaku oraz liczby znaków w nazwie serwisu. Drugi i czwarty znak umieszczamy po charakterystycznych znakach specjalnych, a liczbę na sam koniec hasła. Hasło do Allegro wyglądałoby wtedy w ten sposób: „;ti!le5fl7„.

Dzięki takiej metodzie będziesz w stanie przypomnieć sobie hasło do konta na Allegro nawet po kilkumiesięcznej nieobecności. Nawet jeżeli zostanie ono przechwycone i złamane, atakujący nie będzie w stanie zastosować go w innych miejscach, gdzie posiadasz konto. Co więcej, szanse na jego złamanie są nikłe. 10-znakowe hasło zapisane za pomocą SHA1 jest poza czyjąkolwiek cierpliwością. Klaster złożony z 25 kart graficznych potrzebowałby na to około 120 lat. Równie mało prawdopodobne jest to, że ktoś zdoła podejrzeć takie hasło znad ramienia. Tylko gdyby różne pochodne takiego hasła byłyby wykradzione w czystym tekście, atakujący mógłby wpaść na to, w jaki sposób są one tworzone.

 

Nie wszędzie potrzebujesz dobrego hasła

Jeśli jesteś zwolennikiem tworzenia pochodnych haseł od jednego bazowego, w miejscach, do których masz ograniczone zaufanie zwyczajnie z nich nie korzystaj.

Dbaj natomiast o hasła w istotnych miejscach, gdzie można spodziewać się ataków. Planuj je tak, żeby miały jak najwięcej znaków i były unikatowe. Te miejsca, to Twój klucz GPG, konto w banku, e-mail i wszędzie, gdzie można przewidzieć atak offline, na przykład kontenery TrueCrypt. Poza tym chyba nie istnieje trojan,  który potrafiłby pokonać dystans między komputerem a sejfem, w którym zawsze możemy schować kartkę z zapisanym zbyt skomplikowanym hasłem.

avatar
Właściciel firmy syscore, zajmującej się doradztwem i konsultacjami IT, audytami, projektowaniem systemów rozproszonych i wysokodostępnych.
Przez wiele lat kierownik Działu IT, architekt i administrator systemowy w home.pl. Od kilku lat współpracuje z takimi firmami jak: HP, AMD, Microsoft, Parallels, Intel. Specjalizacje: Bezpieczeństwo systemów IT (*nix & Windows), projektowanie systemów zorientowanych na usługi, projektowanie i optymalizacja baz danych (MS SQL, MySQL, PostgreSQL), projektowanie infrastruktury sieciowej, dobór sprzętu odpowiedniego do projektu; Unix/*BSD/Linux, MS Windows Server 2000/2003/2008/2012.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *