Hasło w sieci – tworzenie.

Odpowiadając na Wasze prośby dotyczące serii artykułów o aircrack-ng, postanowiłem taką serię stworzyć, zaczynając jednak od podstaw. Ponieważ poprzedni artykuł przeczytało ponad tysiąc osób, chcąc powstrzymać falę ataków na sieci (podejrzewam, że niewielu zachowa poziom i ograniczy się do własnych routerów) najpierw opiszę zasady bezpiecznego zachowania, by potem przejść do samych ataków.

Nie przeczę, przez całą serię będzie się przewijała nutka paranoi, jednak każda rada tu opisana ma odzwierciedlenie w rzeczywistości i by ją wprowadzić w życie, trzeba jedynie wyrobić w sobie pewną rutynę…

Dziś zastanowimy się jak tworzyć hasła biorąc pod uwagę ataki mające na celu jego znalezienie metodą „prób i błędów”. Zaczynamy!

Znaki można podzielić na następujące grupy:

  • litery małe,
  • litery wielkie,
  • cyfry,
  • znaki i symbole,
  • znaki regionalne.

Pierwsze 4 grupy znajdują się w tablicy ASCII (1-7 bity strony kodowej) i to właśnie z nich powinno się korzystać. Ostatnią grupę stanowią znaki, które znajdują się w zestawach kodowania (ósmy bit tablicy znaków) i są odmienne w zależności od zastosowanego kodowania. Powodować to może kłopoty z zapamiętaniem danego ciągu i jego późniejszą weryfikacją.

Mocne hasło powinno zawierać znaki z każdej z pozostałych grup, poszerza to bowiem pulę możliwości skomponowania wyrazu danej długości (dla przykładu dodając do puli znaków cyfry, ilość 10-cio znakowej wariacji rośnie o 11^9*10 możliwości). Zmniejsza to szansę na trafienie odpowiedniego hasła, jak również wydłuża czas potrzebny na znalezienie go metodą brute-force.

Niestety niekiedy wielkość znaków nie ma wpływu na rozpoznawanie hasła – tak jest w przypadkach, gdy system przed sprawdzeniem hasła zamienia wszystkie znaki alfabetu na ich WIELKIE lub małe odpowiedniki. Czemu to ma służyć? Nie wiem..,

Kolejną kwestią jest długość hasła. Ma to również znaczący wpływ na ilość wariacji. Ilość takich możliwości możemy wyliczyć wg wzoru:

V(x,y) = x^y

x = ilość znaków w tablicy dozwolonych znaków,
y = długość hasła.

Pamiętać należy również o nieużywaniu w hasłach słów słownikowych lub używanych popularnie a także nazw z gier, filmów, książek, nazw miejsc, imion, nazwisk, wulgaryzmów, czyli wszystkich słów które możemy usłyszeć podczas rozmowy na dowolny temat. Zwiększa to ryzyko rozpoznania hasła metodą słownikową. Nie pomaga też dołożenie do takich słów cyfr. Nie powinno się również używać w hasłach (nawet jako jego część) znaczących dat (data urodzenia, data lądowania na księżycu), popularnych liczb lub kolejnych cyfr, ani znaków które w jakiś konkretny sposób są na klawiaturze („qwerty” to niezwykłe popularne hasło). Sklejanie słów tez nie wchodzi w grę. Numery dowodów, IMEI telefonu czy numer dowodu rejestracyjnego Waszego trabanta też nie powinien się w nim pojawić.

Całość ma nie tylko wyglądać, ale i w rzeczywistości być losowym zlepkiem wszystkich dopuszczalnych znaków o jak największej długości. Ma to utrudnić przeprowadzenie ataków metodą bruteforce, słownikową a także socjotechniczną.

Warto również sprawdzić w internetowych bazach haseł czy nasze hasło nie jest zbyt popularne. Często pojawiają się w sieci bazy kont/haseł (również pin), korzystając z nich oraz ze słowników do ataków sprawdzić czy nie korzystamy z popularnego hasła. Jednak nie należy tego robić przez wpisanie hasła w formularzu, a poprzez wyświetlenie wszystkich hasłem z bazy i używając opcji wyszukiwania w przeglądarce lub w edytorze tekstu.

Teraz trochę policzymy. Tablica ASCII składa się z:

  • 26 liter małych,
  • 26 liter wielkich,
  • 10 cyfr,
  • 33 znaków i symboli,

Korzystając z wcześniej podanego wzoru, otrzymujemy następujące względne czasy łamania hasła:

Długość Małe litery + duże litery + cyfry + znaki/symbole
5 1 32 77 651
8 17576 4499456 18376668 558370033
12 8031810176 3,2898E+013 2,7154E+014 4,5480E+016
16 3,6703E+015 2,4054E+020 4,0124E+0,21 3,7043E+024
21 4,3609E+022 9,1454E+028 3,6759E+030 2,8663E+034

 

Widzimy zatem, że skomplikowane i długie hasło złamać znacznie trudniej niż proste i krótkie. No chyba, że skorzystamy z hasła znajdującego się w słowniku…

Na koniec rozważań przytoczę pytanie, które zadał Piotr Konieczny na łamach niebezpiecznika przy okazji wpadki Lotniczego Pogotowia Ratunkowego. Otóż kilka tygodni temu podczas wywiadu dla Teleekspresu przeprowadzonego w budynku LPR można było dostrzec na tablicy z notatkami login i hasło do serwisu obsługi latających karetek RescueTrack. Hasło wyglądało na losowe, zawierało małe i duże litery oraz cyfry. Było ono teoretycznie trudne do złamania, jednak dało plamę tutaj najsłabsze ogniwo każdego systemu: człowiek. Widocznie operatorka stanowiska nie była w stanie zapamiętać takiego hasła, dlatego zostało ono zapisane. W rezultacie system był dostępny dla wszystkich przez około dobę, między innymi można było wysyłać sms’y do załóg helikopterów, wysyłać je na akcje oraz śledzić ich poczynania. I tu pojawia się wspomniane pytanie:

„Czy należy stosować hasła łatwiejsze do zapamiętania i zarazem złamania, czy lepiej używać długich i losowych które w wielu przypadkach trzeba gdzieś i tak zapisać”?

Każdy musi sobie na to pytanie odpowiedzieć we własnym zakresie, biorąc pod uwagę oczekiwane bezpieczeństwo danych swoich oraz zapewne firmy w której pracuje.

Oczywiście nikogo nie zachęcam do zapisywania haseł na żółtych karteczkach i obklejania nimi monitora. Polecam natomiast program Keepass, pozwala on na zapisywanie plików w szyfrowanym pliku na dysku, grupując hasła na kategorie. Umożliwia też generowanie haseł wg kryteriów. Plik z hasłami zapisuje zabezpieczając go hasłem lub plikiem autoryzacji. Pakiet znajduje się w repozytorium, a opis jego instalacji i konfiguracji niedługo pojawi się na łamach ubuntu-pomoc.org.

Złym pomysłem jest trzymanie haseł w przeglądarce (korzystając z opcji jego zapamiętywania). W przypadku włamania czy infekcji, cracker (kim on jest i jaka jest różnica między nim a hakerem wyjaśni Wam np. ciocia Wikipedia) wszystkie te hasła mimo „szyfrowania” są możliwe do wyświetlenia bez większych problemów – jest w stanie je rozgryźć pierwszy lepszy program z Google.

Następna podobna wpadka:
„W środowisku bezpieczników krąży historia o pewnej ogólnopolskiej państwowej spółce, która po wymianie sprzętu w serwerowni zaprosiła dziennikarzy aby pokazać im nowe szafy pełne mrugających diod (PR musi być!). Następnego dnia, na drugiej stronie Gazety Wyborczej można było znaleźć zdjęcie przedstawiające na pierwszym planie uśmiechniętych administratorów, na drugim pachnące nowością serwery, a na trzecim tablice z wypisanym IP, loginem i hasłem do firmowego VPN-a…”

Przedruk z portalu www.niebezpiecznik.pl

Na koniec ważna sprawa: hasła nie wykorzystujemy więcej niż raz. Jeśli w każdym serwisie zastosujmy inne, w przypadku wycieku bazy danych lub włamania na nasze konto nie ryzykujemy utratą tożsamości na innych stronach. Warto też stosować wielostopniową autoryzację (jeszcze o tym wspomnę).

Kończąc ten przydługawi artykuł, zachęcam Was do zmiany haseł na bardziej bezpieczne, oryginalne i losowe. W przyszłym artykule opiszę w jaki sposób nasze hasła są przetrzymywane, a także wprowadzę do podstawowych metod ich łamania i sposobów jak się przed atakami zabezpieczyć.
Przypominam o możliwości oceniania artykułu – pod tytułem znajdują się gwiazdki. Wysoka ocena jest dobrą motywacją do kontynuowania wątku. Proszę też o komentarze, chętnie wysłucham Waszych opinii.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • nick jackson

    …chcąc powstrzymać falę ataków na sieci (podejrzewam, że niewielu zachowa poziom i ograniczy się do własnych routerów) najpierw opiszę zasady bezpiecznego zachowania, by potem przejść do samych ataków…

    To jest to, tak trzymać i dziękuję za przekazywaną wiedzę.

  • Kuba

    Nie zgodzę się z autorem. Po pierwsze skąd atakujący ma wiedzieć czy w moim haśle są cyfry/znaki specjalne. Po drugie, wydaje mi się, ze losowych ciąg znaków jaki będziemy w stanie zapamiętać nie może być bardzo długi (max 10 znaków?). Według mnie znacznie bezpieczniejsze od hasła „Akd)370Ja” będzie hasło takie jak np. „ToMojeHasloNaFacebookaKtoregoNiktNieZgadnie”

    • Kiro

      1) ataki zaczyna się stosując najpierw małe litery, potem dokładając duże itd. Do tego dochodzą metody socjotechniczne o których wspomnę.
      2) temat ten poruszyłem, przeczytałeś cały artykuł?
      3) hasło jest słownikowe, znacznie prostsze od „Akd)370Ja”

      • clfapujc

        Moim zdaniem to hasło jest mocne. Zawiera 9 słów. Zakładając, że mieszczą się one wśród 500 najczęściej używanych słów, daje to siłę hasła 9^500 = 1,322070819e+477 Użyte słowa zawierają dodatkowo końcówki fleksyjne zwiększając trudność odgadnięcia hasła.

      • Kuba

        1. Masz racje, mój błąd.

        2. Sam tez trzymam hasła w KeePassie, ale hasło do maila, czy na kilka najczęściej używanych portali warto jednak pamiętać (zapisywania ich na jednym komputerze to utrata mobilności, nie na wszystkie OSy znajdziesz programy czytające KeePassa).
        3. Chcąc układać wszystkie kombinacje 9 słów, nawet tak aby powstały tylko sensowne zdania będziesz miał znacznie wiecej kombinacji niż przy 10-znakowym losowych haśle. Do tego można zastąpić o przez 0 [zero] i hasło jest praktycznie nie do złamania.

        • Rafal

          Zastępowanie o przez 0 [zero] w niczym nie różni się od zwykłego dodania 3 w środku hasła. po prostu dodaje się kolejne kryterium (liczbę) do odgadnięcia. Więc wcale nie czyni to hasła do nieodgadnięca.

          Hasła wykrada się większości za pomocą specjalnych programów, które sprawdzają po kolei wszystkie litery dostępne w alfabecie. Jeśli żadna z liter nie daje dostępu do konta, program sprawdza kolejne kryterium – liczby. Następne w kolejności są znaki oraz symbole.

          • Kuba

            Miałem tutaj na myśli uniemożliwienie ataku słownikowego, w tak długim haśle sprawdzanie każdej kombinacji będzie trwało wieki.

      • http://minio.xt.pl Mirosław Zalewski
  • http://linux-nie-gryzie.blogspot.it/ ganfar

    Jak zapamiętać pozornie losowy ciąg znaków?
    Przykład:

    cwgwctbctb

    ma swój odpowiednik:

    Ciemno wszędzie, głucho wszędzie,
    Co to będzie, co to będzie?

    Jak pewnie łatwo zauważyć, możliwości są tysiące (co najmniej tyle ile znamy wierszyków). Na koniec zagadka. Skąd to hasło:

    ntwcntpsrbdck

    Pozdrawiam.

    • http://www.ubuntu-pomoc.org Łukasz Schmidtke

      Dodatkowo można tak stworzony „skrót” urozmaicić stosując „blogaskowy styl” np.
      CwgVVcT8ct8 – i mamy już dosyć mocne hasło.

    • clfapujc

      Moje najmocniejsze hasło składa się z całego zdania zawierającego pewne rzadkie słowa. 26^35 to moim zdaniem wystarczająco silne hasło.

      • http://www.ubuntu-pomoc.org Łukasz Schmidtke

        Już nie jest takie silne jak przed napisaniem tego komentarza – znamy jego długość :D

        • clfapujc

          Haha :P Wziąłem to pod uwagę i nie podałem dokładnej długości. Zresztą hasło zawsze można zmienić. Ostatnio zrobił mi się bałagan w hasłach, za dużo tego i myślę nad jakimś stworzeniem prostego do zapamiętania systemu w zależności od tego, czy to są e-maile, fora czy dane na dysku.

          • simca2

            kiedyś przeczytałem coś takiego
            hasło lamera – Zosia (bo kto będzie wiedział że tak ma jego żona na imię)
            hasło zaawansowane – kbhj%^$&)9-0jkl bez komentarza
            hasło hakera – Zosia bo jak ktoś się uprze to i tak złamie

            Pozdrawiam

  • etmoon

    Bardzo ciekawy artykuł ze wskazówkami jak tworzyć własne, silne hasła. Podziękował autorowi artykułu i czekam na następne artykuły w o tej tematyce.
    Pozdrawiam.

  • nick jackson

    Zastanawiam się, jak mocne byłoby hasło, które byłoby „zwykłym” słowem, ale z dodatkową jedną literą/cyfrą, np: „dre1wno”? Czy gdy byłoby potraktowane metodą „słownikową” zostałoby uznane za „drewno” czy raczej jako losowe i ciężkie do odgadnięcia? Czy może dla metody „brut force” byłaby to bułka z masłem…?

    • Kiro

      Jeśli już ktoś jeszcze wpadł na podobny pomysł i w słowniku zostało umieszczone takie hasło, to nie jest problemem jego odnalezienie. Czy tak jest sprawdź sam w słownikach :)
      Zakładając, że do metody brute force wykorzystujemy tylko małe znaki i cyfry to znalezienie hasła o długości 7 znaków to ok godzinka na średniej klasy sprzęcie.

      • nick jackson

        Czyli wychodzi na to, że na dobrą sprawę nie ma pewnego hasła, bo jeśli nie metodą słownikową to brutalną osoba atakująca jest w stanie to hasło poznać. Tylko kwestia czasu ile się spędzi w zależności od długości hasła przy „brucie”, no i w efekcie chęci atakującego na czekanie :(
        Być może jednak w kolejnych odsłonach swojego cennego jak dla mnie cyklu artykułów, dasz nam (oprócz już wspomnianych) jakieś wskazówki „jak żyć panie premierze” ;)
        Osobiście poczytałbym chętnie o tym, czy ktoś może wykraść moje hasło np bankowe, podczas przeprowadzania transakcji przez Internet, ale może to nie Twoja „działka”, więc nie chcę narzucać jakichkolwiek tematów ewentualnych następnych cykli…
        Jeszcze raz serdeczne dzięki za to, co już napisałeś i oczywiście czekamy (mam nadzieję, że piszę nie tylko w swoim imieniu) na kolejne kursy.

        • Kuba

          Generalnie nie da się wykraść hasła bankowego podczas dokonywania transakcji online, ponieważ wszystkie takie strony są szyfrowane openssl (można poznać po https:// w adresie). To co wpisujesz u siebie, jest szyfrowane na twoim komputerze i odszyfrowywane na serwerze banku/strony na którą się logujesz (w drugą stronę działa to tak samo). Jeżeli strona nie używała by openssl, to z danych, po przechwyceniu (co jest trudne w większości przypadków), można by wyciągnąć wszystko. To co wysyła twój komputer do Internetu (i co odbiera) można podejrzeć programem Wireshark (opis jego używania to osobny temat).

          • Kiro

            Nie wyprzedaj faktów, do wszystkiego dojdziemy, ale jak mówiłem, najpierw skupiam sie na studiach. Na pewno jeden artykuł tygodniowo będzie, jak się ogarnę to będzie ich więcej. Polecam z uwagą oczekiwać następnych odcinków (które tak czy siak już są w przygotowaniu). Mogę zdradzić, że nastepny mikroartykuł będzie nt. Keepass a następny większy znów o hasłach acz z innej strony.

          • Kuba

            @Kiro: Czekam, czekam i już się nie wtrącam ;-)

  • Kuba

    Każdemu, kto chciałby zobaczyć ile potrwa łamanie hasła metodą brute force na własnym komputerze polecam program Rarcrack – łamacz haseł do archiwów zip, rar i 7zip.
    Link do pobrania
    Instrukcja instalacji i używania:
    1. Pobrany plik rozpakuj do jakiegoś folderu (np. utwórz folder rarcrack w folderze domowym).
    2. Otwórz Terminal i przejdź do folderu np. cd ~/rarcrack
    3. W tym folderze będą znjdowały się już 3 przykładowe archiwa z hasłem (test.zip, test.rar i test.7z)
    4. Aby złamać hasło do archiwum wydaj polecenie ./rarcrack NAZWA_PLIKU –type TYP ARCHIWUM (zip/rar/7z) Przykładowo będzie to
    ./rarcrack test.zip –type zip
    I mała uwaga: Program ten nie jest z pewnością najlepiej wykorzystującym zasoby komputera.

    • Kiro

      Można to również sprawdzić wykonując polecenie:
      aircrack-ng -S

  • sj65

    Czy to wszystko ma sens gdy przesyłamy nasze hasła otwartym kodem?
    Chyba trudne hasła to tylko iluzja.

    Ile stron https jest istotnych w waszym internetowym działaniu.

    Poza bankiem spotykam się zazwyczaj ze stronami http i tu najwymyślniejsze hasła logowania czy ich siła mogą się zdać psu na budę.

    Moim skromnym zdaniem jakość hasła istotna jest przy logowaniu na pocztę, gdzie zazwyczaj połączenie jest szyfrowane. Przy dalszym zabezpieczaniu korespondencji lub zabezpieczaniu plików na dysku (pgp, gpg), ewentualnie truecryptem.

    Pozdrawiam

  • Wizard

    1. (To co pisał już Kuba wcześniej) xkcd.com/936/
    2. Duże litery to są na plakacie. W tekście mogą być wielkie litery.

    • anonimus

      Na plakacie też mogą być wielkie litery i bardzo wielkie, mogą być duże i małe a także maleńkie nie wspominając o olbrzymich i ogromniastych.
      Rozmiar bez miarki to pojęcie względne, bo i plakat może być duży i wielki, tak ja pociąg czy samochód, nie mówiąc o górach, morzach czy oceanach.
      To że Słownik Poprawnej Polszczyzny wspomina o wielkich literach nie znaczy, że za parę lat zwrot „duże litery” nie zostaną uznany jako poprawny w odniesieniu do liter którymi zaczynamy pisać zdanie. Przecież tak naprawdę to one są tylko trochę większe. Ale żeby zaraz wielkie, duże czy ogromne.
      Wszystkie te zwroty są mało trafne.
      Wyobraź sobie na arkuszu A0 namalowaną literkę „a” tak, że zajmuje plakat od góry do dołu. Na tym samym plakacie, czcionką o rozmiarze 3 wydrukowano literkę „A”.
      Która jest wielka? Która jest większa?
      To tak jakby porównywać czy cyfra 9 jest mniejsza lub większa od cyfry 0.
      Zapomniałeś o ewolucji języka i tym, że wiele form niedopuszczalnych wczoraj dzisiaj jest pełnoprawnych.

      • Wizard

        Na pewno „zwrot duże litery nie zostaną uznany jako poprawny” nie będzie poprawny nawet za 50 lat :)
        Być może też za parę lat zniosą ograniczenia prędkości, ale to nie oznacza, że dziś można ich nie przestrzegać. Wracaj do podstawówki :)