Hasła są najczęściej stosowanym zabezpieczeniem dostępu do systemów informatycznych. Swoją popularność zawdzięczają temu, że są proste, niedrogie oraz łatwe w użyciu i administracji. Hasło stanowi jednak dość słabą formę ochrony, gdyż jest uzależnione od najbardziej zawodnego ogniwa w systemie bezpieczeństwa – człowieka.
Tworzenie dobrych haseł
Dobre hasło to takie, które nie może zostać łatwo odgadnięte ani złamane. Jednocześnie nie może być zbyt skomplikowane, ponieważ istnieje duże prawdopodobieństwo, że zostanie gdzieś zapisane przez użytkownika. Najlepszym hasłem jest losowa kombinacja nie powiązanych ze sobą znaków, np. \”k@1W.at#N\”. Trudno takie hasło złamać, ale równie trudno zapamiętać. Dobre hasło powinno być więc kompromisem pomiędzy hasłem, które jest trudne do odgadnięcia a hasłem, które jest łatwe do zapamiętania.
Aby ułatwić użytkownikom wybór właściwego hasła, opracowano kilka technik tworzenia łatwych do zapamiętania ciągów znaków. Pierwsza metoda polega na budowaniu haseł, w których występują naprzemiennie samogłoski i spółgłoski. W ten sposób powstają bezsensowne wyrazy, które można bez problemu wymówić, co ułatwia ich zapamiętanie.
Inny sposób to użycie pierwszych liter wyrazów z jakiegoś zwrotu. Może to być fragment z książki, piosenki lub wiersza. Np. \”Być albo nie być; oto jest pytanie\” utworzy hasło \”banbojp\”. Trzecia metoda polega na połączeniu dwóch krótkich wyrazów za pomocą symbolu lub znaku interpunkcyjnego, np. pies#kot. Po utworzeniu hasła za pomocą jednej z opisanych technik, warto je jeszcze urozmaicić za pomocą dużych liter, cyfr i symboli.
Tworząc hasła należy pamiętać o pewnych podstawowych zasadach. Po pierwsze hasło nie może być zbyt krótkie. Zaleca się, aby zawierało co najmniej 8 znaków. Po drugie hasło powinno być jak najbardziej zróżnicowane – absolutne minimum to stosowanie małych i dużych liter oraz cyfr.
Istnieją również reguły określające czego należy unikać podczas budowania hasła. Co prawda część z opisanych tam metod może zwiększać jakość hasła, jednak są one powszechnie znane hakerom i przez to dają złudne poczucie bezpieczeństwa.
Generatory
Aby pomóc użytkownikom w tworzeniu bezpiecznych haseł, stworzono wiele programów generujących losowe ciągi znaków. Jednym z takich rozwiązań był opracowany na początku lat 80. w Departamencie Stanu USA generator, który tworzył hasła składające się z trzech krótkich, łatwych do zapamiętania kawałków. Wszystkie hasła były tworzone zgodnie ze wzorem: spółgłoska samogłoska spółgłoska, cyfra cyfra, spółgłoska samogłoska spółgłoska. Taki schemat pozwalał na stworzenie blisko 500 mln różnych kombinacji.
10 lat później rząd amerykański rozwinął standard pozwalający tworzyć pseudolosowe ciągi znaków, które mogły być wymawiane przez osoby posługujące się językiem angielskim. Wygenerowane hasło było sprawdzane za pomocą tabel wymowy i jeśli nie dawało się wymówić, było odrzucane, a system tworzył nowe hasło – i tak aż do skutku. W efekcie tworzone były 10-literowe pseudowyrazy pochodzące z puli 1,6 biliona możliwych wariantów.
Wiele systemów operacyjnych posiada wbudowane generatory haseł. Aby w systemach z rodziny Windows NT (NT4, 2000, XP, 2003) przydzielić użytkownikowi losowe hasło, należy w wierszu poleceń wydać komendę:
{stala}net user NazwaUżytkownika /random{/stala}
Spowoduje to przypisanie wybranemu użytkownikowi hasła o długości 8 znaków, które składa się z małych i dużych liter oraz cyfr, i jego wyświetlenie na ekranie.
Z kolei użytkownicy Linuksa mają do dyspozycji pakiet pwgen, który pozwala tworzyć dające się wymówić losowe ciągi znaków. Tworzone hasła mogą składać się z małych i dużych liter oraz mogą być urozmaicone poprzez dodanie cyfr.
Pwgen działa w dwóch trybach. W pierwszym program wyświetla na ekranie wygenerowane hasła, umożliwiając użytkownikowi wybranie jednego z nich. Takie rozwiązanie uniemożliwia postronnej osobie poznanie hasła wybranego przez użytkownika. Drugi tryb programu generuje tylko jedno hasło i często jest wykorzystywany przez skrypty do uzyskania losowego ciągu znaków.
Dostępne są także samodzielne aplikacje generujące losowe hasła. Takie programy umożliwiają zazwyczaj bardzo szczegółowe określenie parametrów, jakie powinno spełniać tworzone hasło (długość, znaki, z których ma się składać, maska itp.). Kilka takich programów typu freeware i shareware zostało przedstawionych w tym artykule.
Programy generujące hasła
{tlo_1}
Atory Password Generator
Atory Password Generator to prosta aplikacja, która pozwala określić długość hasła oraz znaki, z których będzie się ono składać (liczby, duże litery, małe litery, symbole). Program ma również opcję automatycznego kopiowania hasła do schowka.
Licencja: freeware
http://www.atory.com/Password_Generator/
{/tlo}
{tlo_0}
Password Generator
Program pozwala wygenerować listę haseł, którą można następnie skopiować do schowka lub zapisać w pliku tekstowym. Użytkownik może wybrać predefiniowane zbiory znaków, z których zostanie utworzone hasło, jak również określić własny zestaw. Password Generator wyposażono także w funkcję tworzenia haseł, które łatwo wymówić.
Licencja: freeware
http://www.securesafepro.com/pasgen.php?source=wincatalog.com
{/tlo}
{tlo_1}
Universal Password Generator
Generator z Rosji służący odzyskiwaniu zapomnianych haseł. Na podstawie danych podanych przez użytkownika (przypuszczalna długość hasła, znaki i wyrazy, które mogły zostać w nim użyte, maska wykorzystana przy tworzeniu hasła itp.) program tworzy plik tekstowy zawierający wszystkie możliwe kombinacje ciągów znaków spełniających podane kryteria.
Licencja: shareware 30 dni
http://www.artumsoft.nm.ru
{/tlo}
{tlo_0}
Tessera Password Generator
Jest to program mogący generować hasła o długości od 4 do 128 znaków. Pozwala określić zarówno znaki, które zostaną użyte przy tworzeniu hasła, jak i te, które zostaną pominięte. Wynik może zostać przeniesiony do schowka systemowego, jak również zapisany na dysku w jednym z obsługiwanych formatów (czysty tekst, Word, Excel, HTML).
Licencja: shareware 14 dni
http://www.cranium-software.com
{/tlo}
{tlo_1}
Truly Random
Generuje wartości losowe na podstawie próbki pobranej z karty dźwiękowej. Użytkownik może samodzielnie określić parametry pracy generatora, jak również skorzystać z jednego z wbudowanych kreatorów, które pozwalają tworzyć 3 rodzaje danych losowych: hasła, liczby (z zadanego przedziału) oraz numery PIN.
Licencja: shareware 30 dni
http://www.truly-random.com/
{/tlo}
{tlo_0}
APassword
Umożliwia losowe tworzenie haseł oraz nazw użytkowników o długości do 49 znaków, które można zapisać na dysku w formatach TXT, CSV oraz DAT. Istnieje również możliwość wygenerowania haseł dla listy użytkowników wczytanej z pliku.
Licencja: shareware 30 dni
http://www.info-pack.com/apassword/
{/tlo}
Informacje i metody, których NIE należy wykorzystywać przy tworzeniu haseł:
- dane, które można łatwo zdobyć na nasz temat (inicjały, imiona, nazwisko, numer telefonu, adres, data i miejsce urodzenia, nazwy ukończonych szkół, nazwa pracodawcy, dane związane z wykonywaną pracą, imiona zwierzaków, numer rejestracyjny i marka samochodu itp.)
- te same informacje w stosunku do krewnych, przyjaciół i znajomych
- słowa które można znaleźć w słownikach (również obcojęzycznych)
- przykładowe hasła zaczerpnięte z książek i artykułów na temat bezpieczeństwa
- imiona religijne, mitologiczne, imiona fikcyjnych lub legendarnych postaci
- nazwy obiektów, miejsc, ras, wydarzeń
- tytuły książek, filmów, wierszy, piosenek, płyt, utworów muzycznych
- numery seryjne zakupionych produktów
- daty
- klawiaturowe lub alfabetyczne sekwencje znaków (np. \”abcdef\”, \”qwerty\”)
- dwa niczym nie oddzielone słowa
- hasła złożone tylko z liter lub cyfr
- powtórzenie z rzędu jednej litery więcej niż raz
- poprzedzanie lub kończenie wyrazu liczbą bądź znakiem interpunkcyjnym
- zastępowanie liter podobnie wyglądającymi cyframi
- zastępowanie cyfr podobnie wyglądającymi liczbami
- pisanie tylko pierwszego lub ostatniego znaku dużą literą
- dodawanie na początku lub końcu symboli, znaków interpunkcyjnych lub cyfr
- używanie odmiany lub liczby mnogiej wyrazów
- używanie słów ze skasowanymi samogłoskami
- pisanie dużą literą tylko samogłosek lub tylko spółgłosek
- pisanie wyrazów od tyłu
- pisanie wyrazów wielkimi literami
Zasady bezpiecznego używania haseł
- używaj różnych haseł dla różnych kont
- hasło zmieniaj regularnie (im ważniejsze konto, tym częściej należy to robić)
- nie korzystaj z już wcześniej użytych haseł
- wpisując nowe hasło upewnij się, że nikt nie jest w stanie podejrzeć jakie znaki wpisujesz na klawiaturze
- nie zapisuj haseł w kalendarzu, na przyklejanych karteczkach itp.
- nie przechowuj hasła online w miejscach, do których również inne osoby mają dostęp
- pamiętaj, aby po zakończeniu pracy online wylogować się z serwisu
- nikomu nie ujawniaj swojego hasła
- unikaj zapisywania haseł na lokalnym komputerze (np. w programach pocztowych), jeśli nie masz pewności, że nikt oprócz ciebie nie ma dostępu do komputera
- nie korzystaj z udostępnianej przez wiele serwisów opcji automatycznego logowania
Jak system operacyjny przechowuje hasła
Kiedy użytkownik wprowadza nowe hasło, zostaje ono zaszyfrowane i zapisane w pliku. Do kodowania hasła stosuje się zazwyczaj szyfrowanie jednokierunkowe, co uniemożliwia jego odkodowanie. Hasło w czystej postaci nie jest nigdzie przechowywane. W momencie logowania system odczytuje wpisany przez użytkownika ciąg znaków, szyfruje go i porównuje z wersją zapisaną w pliku. Jeśli oba hasła są identyczne, użytkownik uzyskuje dostęp do systemu.
Zdobywanie haseł
Intruzi pragnący uzyskać dostęp do zastrzeżonych zasobów mogą zdobyć chroniące je hasła na wiele sposobów. Jedną z najprostszych metod jest podejrzenie klawiszy naciskanych przez użytkownika podczas wprowadzania hasła na klawiaturze. Także hasło zapisane na kartce papieru może stać się łatwym łupem. Do pozyskiwania haseł hakerzy wykorzystują również inżynierię społeczną, która ma na celu nakłonienie użytkowników do zdradzenia hasła. Przykładem może być podszycie się pod administratora firmowej sieci, który kontaktuje się z pracownikiem prosząc o podanie hasła.
Hasło może zostać również podsłuchane podczas jego przesyłania przez sieć z wykorzystaniem protokołów transmitujących dane czystym tekstem (np. POP3, FTP, Telnet). Inny wariant polega na zainstalowaniu na komputerze ofiary programu, który będzie rejestrował wszystkie znaki, które użytkownik wpisze na klawiaturze. Takie rozwiązanie pozwala nie tylko na uzyskanie haseł, ale również numerów kart kredytowych i kodów PIN.
W pewnych przypadkach haker w ogóle nie musi zdobywać hasła. Wiele systemów udostępnia konto gościa niezabezpieczone hasłem lub też chronione dobrze znanymi domyślnymi hasłami. Również aplikacje sieciowe (np. systemy zarządzania bazami danych) tworzą podczas instalacji konto administratora ze standardowym hasłem. Podobnie wygląda sytuacja w przypadku urządzeń sieciowych – spora część przełączników i ruterów posiada fabryczne hasła, które jeśli nie zostały zmienione, pozwalają atakującemu na łatwe uzyskanie dostępu do sieci.
Aby uzyskać informacje potrzebne do wejścia do systemu, hakerzy kradną także pliki z hasłami. W przypadku systemów Windows NT, 2000 i XP hasła użytkowników są zapisane w pliku SAM. Normalnie plik ten jest blokowany i może zostać skopiowany tylko jeśli uruchomi się komputer z innym systemem operacyjnym lub gdy zostanie on odczytany z kopii zapasowej. W systemach z rodziny UNIX hasła są przechowywane najczęściej w plikach passwd lub shadow. Możliwość odczytania tych plików jest determinowana przez uprawnienia grup i użytkowników.
Łamanie haseł
Jeśli hakerowi nie uda się zdobyć potrzebnego hasła, nadal ma on spore szanse na uzyskanie dostępu do konta użytkownika. Może logować się do systemu, sprawdzając różne hasła w poszukiwaniu tego, które zapewni mu wejście. Atakujący będzie w znacznie lepszej sytuacji, jeśli uda mu się zdobyć plik z hasłami. Co prawda hasła w pliku są zapisane w zaszyfrowanej postaci, ale stosując programy łamiące można uzyskać ich oryginalną postać.
Atak na system komputerowy chroniony hasłem może przebiegać na kilka sposobów. Najprostsza metoda polega na próbie odgadnięcia hasła użytkownika. Atakujący wykorzystuje fakt, że użytkownicy często stosują w hasłach słowa i nazwy opisujące pewne aspekty ich życia.
Haker może także wykorzystać informacje osobiste, które są zapisywane w wielu aplikacjach użytkowych (programy pocztowe, PIM-y itp.). Innym źródłem danych może być system operacyjny. Korzystając z pewnych programów oraz wykorzystując dziury w bezpieczeństwie systemu, atakujący może uzyskać status aktualnie zalogowanych użytkowników.
Najczęściej stosowaną metodą łamania haseł jest atak słownikowy. Wykorzystuje on fakt, że użytkownicy wykazują tendencję do wybierania jako hasła wyrazów, które można znaleźć w słownikach. Metoda ta zapewnia dużą szybkość i skuteczność, pod warunkiem, że dysponuje się odpowiednim zbiorem wyrazów. Dlatego też hakerzy korzystają zazwyczaj z wielu różnych słowników jednocześnie.
Prawdziwa siła ataku słownikowego bierze się jednak z wykorzystania wiedzy na temat transformacji stosowanych przez użytkowników podczas tworzenia haseł. Typowe sposoby polegają na dołączaniu z przodu i tyłu wyrazu liczb i znaków interpunkcyjnych, odwracania wyrazów, zmiany wielkości liter wyrazów, konwertowania wyrazów do samych dużych lub małych liter, zastępowania liter lub cyfr innymi literami oraz kombinacje tych metod. Poprzez zastosowanie popularnych przekształceń do każdego słowa z listy, szanse na odgadnięcie hasła gwałtownie rosną.
Najskuteczniejszym sposobem łamania jest tak zwany atak siłowy (ang. brute force). Polega on na wygenerowaniu wszystkich możliwych kombinacji ciągów znaków i porównaniu ich z zakodowanym hasłem. Z użyciem tej metody można teoretycznie złamać dowolne hasło.
Zakończenie
Według amerykańskiej organizacji CERT (Computer Emergency Response Team) 80% wszystkich problemów z bezpieczeństwem w środowisku sieciowym jest spowodowanych przez złe hasła. Użytkownicy wolą hasła, które są łatwe do zapamiętania i dlatego wybierają słowa i inne łatwe do zapamiętania ciągi znaków.
Wiele osób nie dba o swoje hasła, zakładając, że skoro nie posiadają na swoich kontach istotnych danych, to nie są zagrożeni włamaniem. Takie podejście do problemu jest jak najbardziej błędne, ponieważ skompromitowane konto umożliwia intruzowi wejście do systemu i może stanowić pierwszy krok do przejęcia nad nim pełnej kontroli.
Stosowanie słabych haseł jest obecnie znacznie bardziej niebezpieczne niż kiedyś. Wynika to ze znaczącego wzrostu mocy obliczeniowej komputerów, co prowadzi do skrócenia czasu potrzebnego na złamanie hasła. Również popularyzacja sieci informatycznych pozwoliła na przyspieszenie procesu łamania dzięki wykorzystaniu do tego celu wielu maszyn jednocześnie (przetwarzanie rozproszone).
Dlatego też stosowanie samych haseł nie zapewnia obecnie wystarczającego poziomu bezpieczeństwa i należy oczekiwać, że w najbliższym czasie hasła będą zastępowane lub uzupełniane innymi metodami identyfikacji użytkowników (karty identyfikacyjne, odciski palców, podpisy cyfrowe itp.).