Testy wykonane w programie John the Ripper 1.7.9. Wersji programu ze strony prowadzącego nie udało się zainstalować. Do obliczeń wykorzystane czasy real.
System Ubuntu 11.04 64 bit
Procesor Intel Core i7 2670QM - wykorzystywany jeden wątek z ośmiu
Łamanie haseł w trybie: INCREMENTAL
1. Tryb Incremental umożliwia łamanie haseł stosując tak zwany atak brutalny (sprawdzanie wszystkich dostępnych kombinacji).
Hasła w pliku n_hasla.txt składały się z samych cyfr, natomiast w pliku p_hasla.txt z samych liter. Numer użytkownika odpowiadał liczbie odpowiednio cyfr bądź liter. Łamanie hasła w trybie incremental zostało wykonane za pomocą polecenia:
time ./john --incremental:Digits --user:nk n_hasla.txt
dla trybu ([Incremental:Digits]) lub
time ./john --incremental:Digits --user:nk p_hasla.txt
dla trybu [Incremental:Alpha]. Parametr nk oznaczał nazwę odpowiedniego użytkownika.
Podczas łamania haseł była odpowiednio zmieniana wartość parametrów MinLen i MaxLen w pliku john.conf dla odpowiedniego trybu poprzez przypisanie im wartości odpowiadającej numerowi aktualnie sprawdzanego użytkownika.
2. Wyniki
Hasła złożone z samych cyfr:
Długość hasła |
Hasło |
Czas real [s] |
ilość kombinacji na sekundę [c/s] |
1 |
5 |
0,174 |
15,38 |
2 |
28 |
0,188 |
386 |
3 |
735 |
0,176 |
100 |
4 |
2914 |
0,605 |
8485 |
5 |
27148 |
3,006 |
11297 |
6 |
154297 |
57,773 |
12104 |
7 |
8452825 |
466,039 |
12170 |
8 |
- |
- |
~12100 |
9 |
- |
- |
~12100 |
Dla haseł złożonych z samych cyfr brutalne łamanie nie ma sensu już dla 8 znaków, ponieważ zajmuje to bardzo dużo czasu (na używanym komputerze).
Hasła złożone z samych liter:
Długość hasła |
Hasło |
Czas real [ s ] |
ilość kombinacji na sekundę [c/s] |
1 |
g |
0,284 |
100 |
2 |
le |
0,211 |
1658 |
3 |
raw |
0,669 |
9006 |
4 |
ftba |
10,054 |
11939 |
5 |
acdge |
129,548 [2m 9,5s] |
12082 |
6 |
- |
- |
~12060 |
7 |
- |
- |
~12100 |
8 |
- |
- |
~12100 |
9 |
- |
- |
~12100 |
Dla haseł złożonych z samych liter brutalne łamanie nie ma sensu od długości co najmniej 6 znaków, ponieważ zajmuje to bardzo dużo czasu.
Teoretycznie istnieje możliwość, że haker może dysponować dużo lepszym komputerem (grupą komputerów) niż używany przez nas i dużym zapasem czasu. Dlatego hasła powinny być jak najdłuższe oraz co jakiś czas zmieniane. Ponadto zalecane jest, aby w haśle składającym się z liter była zawarta przynajmniej jedna liczba oraz w idealnej sytuacji znak specjalny taki jak ; $ ^. W takim wypadku hasło ponad 7 znakowe można uznać za odporne na atak brutal force.
3.
Parametr c/s mówi nam o tym ile kombinacji haseł program sprawdza w czasie jednej sekundy.
Liczba wszystkich kombinacji dla hasła n znakowego, przy wykorzystaniu alfabetu złożonego złożonego z k znaków wynosi:
Hasła złożone z samych cyfr. W tabeli założono, że złamanie hasła następuje w momencie, gdy osiągnięto połowę z wszystkich dostępnych kombinacji.
Długość hasła |
Liczba kombinacji |
Wyliczony czas |
|||
|
|
sekundy |
minuty |
godziny |
|
1 |
10 |
0,325098 |
|
|
|
2 |
100 |
0,129534 |
|
|
|
3 |
1000 |
5 |
|
|
|
4 |
10000 |
0,589275 |
|
|
|
5 |
100000 |
4,425954 |
|
|
|
6 |
1000000 |
41,30866 |
|
|
|
7 |
10000000 |
410,8463 |
6,85 |
|
|
8 |
100000000 |
4132,231 |
68,87 |
1,15 |
|
9 |
1000000000 |
41322,31 |
688,71 |
11,48 |
Czas obliczony na powyższym wykresie oznacza moment osiągnięcia połowy kombinacji. Porównując zmierzone dane i obliczone można stwierdzić, że dla hasła 1, 3, 5 znakowego czas odgadnięcia hasła był mniejszy niż czas wyliczony. Dla wartości 2, 6 i 7 znaków czas odgadnięcia hasła był większy niż czas wyliczony.
Hasła złożone z samych liter. W tabeli założono, że złamanie hasła następuje w momencie, gdy osiągnięto połowę z wszystkich dostępnych kombinacji.
Długość hasła |
Liczba kombinacji |
Wyliczony czas |
||||
|
|
sekundy |
minuty |
godziny |
dni |
lata |
1 |
26 |
0,13 |
|
|
|
|
2 |
676 |
0,20386 |
|
|
|
|
3 |
17576 |
0,975794 |
|
|
|
|
4 |
456976 |
19,13795 |
|
|
|
|
5 |
11881376 |
491,6974 |
8,194957 |
|
|
|
6 |
308915776 |
12807,45 |
213,4576 |
3,56 |
|
|
7 |
8031810176 |
331893 |
5531,55 |
92,19 |
3,84 |
|
8 |
2,08827E+11 |
8629218 |
143820,3 |
2397,00 |
99,88 |
|
9 |
5,4295E+12 |
2,24E+08 |
3739328 |
62322,13 |
2596,76 |
7,11 |
Czas obliczony na powyższym wykresie oznacza moment osiągnięcia połowy kombinacji. Porównując zmierzone dane i obliczone można stwierdzić, że dla hasła 3, 4, 5 znakowego czas odgadnięcia hasła był mniejszy niż czas wyliczony. Dla wartości 1 i 2 znaków czas odgadnięcia hasła był większy niż czas wyliczony.
Tworzenie własnych użytkowników i haseł
W tej części ćwiczenia zostało utworzonych 6 użytkowników z pewnymi hasłami.
user1 aabb
user2 golumek
user3 9999
user4 1111
user5 $to$
user6 !to?
Fragment zawartości pliku /etc/shadow w systemie Ubuntu 11.04 64 bit
user1:$6$Na1.5ZWV$G40zFYns5VfOkStJAbQCpUYiMajfRcjCN0kPEQVqh34DDPX6KInONJSe.nT0272A167E3hxxhRrWMtL0Pee1y0:15422:0:99999:7::: user2:$6$Xqxvurdu$PmcjDK/O.6s3x6uyMlr4d3RUjD9xHIGpwiSky8Q7/OcaHvVy53CwPVPE9bMsRGpVd3f3YyAnsDfhtxLaNNGxI/:15422:0:99999:7::: user3:$6$YjnQ1Xbm$a20ozA0NNCsKEaSd/cOtPBUP.DZsZTr4mi08RLuBZZwug7kmNHoOusq6jqhEfFcZvtjevrlofCMfXMUPzXl4f/:15422:0:99999:7::: user4:$6$mROneRiY$O41Tx6eXwlyGsZHiV7J0bZOlDmNQ7bdoTDh9guZ5q8ASKTZxHEG3aXker5GdVu4zYav9uvmjuewIzmiB6ML.6.:15422:0:99999:7::: user5:$6$mj.cykXO$eBfpyWutb2.TDAdeSAC125EP7hTdZzI.1IAFsxQcSnZQE7s14GBZmC7KLqTLtQZpF03bH8ELGwC/0aRTS1pIn0:15422:0:99999:7::: user6:$6$xSIG2cEG$EbHg1tlOPJtfs1EEyv2zafhKow3OsXL2Xy2LwWRpw6uQuqCN5TNOPzPMt7TwO8wGQJl5GDPDv9fewQksaZcO0.:15422:0:99999:7:::
Program John the Ripper nie potrafił odczytać przedstawionych powyżej haszów.