Adam Cebula „Jasio Rozpruwacz i wizja świata”

Felietony Adam Cebula - 8 lipca 2019

Foto: pexels.com

Sprucie hasła „1234” trwało coś około doby. Jeśli mam być szczery, mocno mnie to zaskoczyło. Musiałem wykonać kilka prób, aby przekonać się, że program o wdzięcznej nazwie John the Ripper faktycznie działa.

Miałem powody do zdziwienia. Komputer z procesorem 3,5 GHz, łamanie w tzw. trybie słownikowym, które w teorii powinno dać wynik natychmiast. Podpiąłem słownik – drobne 15 GB. To „1234” należy podobno do jednych z najczęściej stosowanych głupich haseł. A jednak…

Sprawdziłem. Naprawdę szybko program znajduje hasła, które są tworzone na bazie danych do logowania. Konto „jasio” – hasło „jasio” pada natychmiast, co prawda wymaga to uruchomienia programu w odpowiednim trybie, ale hackarz to umie. Na to trzeba naprawdę uważać, przy tworzeniu konta system (diabli wiedzą po co) wymaga wpisania szeregu danych, które potem figurują w plikach odpowiedzialnych za logowanie. Jeśli jako hasła użyjemy którejkolwiek z tych danych, choćby zmodyfikowanej (np. „jAcio”), to leżymy.

Aliści spokojnie. Kiedy w ogóle hackarz „pruje” hasła? Gdy na skutek różnych tajemnych knowań uzyska dostęp do całego dysku, także obszaru systemu. To się zdarza na wielkich serwisach, dla komputera domowego taki przypadek stanowi kuriozum. Dlaczego hasła trzeba „pruć” i co w ogóle robi ów John the Ripper? Hasła są zapisywane w pamięci komputera w postaci tzw. „haszy”. Logowanie przebiega tak, że po wklepaniu naszego tajnego zaklęcia otwierającego system jest ono przekształcane przez tzw. funkcję jednokierunkową. To operacja, dla której nie znamy odwrotnej. Dostajemy długi, chaotyczny ciąg znaków. Nie ma sposobu, by z niego odtworzyć hasło. Jeśli jest on identyczny z tym, który komputer ma zapisany w pamięci, zostajemy wpuszczeni do systemu. Oczywiście to, z czym przekształcone hasło jest porównywane, co komputer trzyma jako wzorzec, także zostało „zahashowane”, przepuszczone przez tę samą funkcję jednokierunkową.

Jeśli włamywacz przeniknie do komputera, to dostanie jedynie owe zupełnie nieczytelne, długaśne ciągi znaków. Aby mógł się zalogować na konto, musi wiedzieć, z czego powstały, bo to trzeba wpisać jako hasło. John the Ripper zna chyba wszystkie algorytmy produkujące „hasze” i próbuje znaleźć metodą prób i błędów właściwe zaklęcie. Metoda słownikowa (słynna?) jest inteligentniejsza, sprawdzamy realnie stosowane hasła, słowa i ich przekształcenia. Gdy program ma (dobry?) słownik, zaczyna od tych najpopularniejszych. Wedle opisów – „1234” powinno zostać znalezione w ciągu jakiś minut.

W końcu doczytałem się. Problem idiotycznych haseł był ćwiczony już ponoć w gdzieś w 70. latach XX wieku. Wówczas powstał jeden z pierwszych skutecznych pomysłów. Tak zwane „solenie”, haseł metoda Morrisa oraz Thompsona, rok 1979.

Są przynajmniej dwa powody, przez które łamanie haseł z dobrym słownikiem dramatycznie (może nawet dziesiątki tysięcy razy) przyspiesza pracę. Komputer wymija kombinacje znaków, których człowiek nigdy nie użyje. Oczywiście jest ich pewnie 99,9 procenta ze wszystkich jakie można wygenerować. Powód drugi: w słowniku mamy pary hasło-hasz. Komputer nie musi wyliczać owego hasza, przez co czasami wyjątkowo skraca czas przeszukiwania.

Jeśli dodamy do hasła „sól” losowy ciąg znaków, który może być nawet znany włamywaczowi, to słownik leży. Funkcję haszującą konstruuje się tak, żeby zmiana jednego bitu danych wejściowych powodowała zmianę co najmniej ponad połowy bitów na wyjściu – jest „bardzo wrażliwa”. Dodawana sól jest długa, to kilkadziesiąt znaków. Dlatego że hasze są zupełnie inne od zapisanych w słowniku. Wyłoży się także bardziej cwana wersja słownika, tzw. tęczowe tablice, które prócz haseł mają załączone reguły ich przekształcania. „Sole” są w komputerze zapisywane w jawnej postaci, ale nie zmienia to ich skuteczności.

Już ładnych parę lat temu kryptolodzy spotkali się z poważnym problemem w postaci ogromnej mocy obliczeniowej kart graficznych. Zawierają one dziś np. 2048 prostych procesorów. Można na nich prowadzić obliczenia równolegle. Czyli np. pobrać 2048 haszy, haseł z ukradzionej bazy, i każde nich osobno próbować złamać. Albo dla jednego hasza wypróbowywać 2048 kombinacji jednocześnie.

Oczywiście oznacza to ogromny przyrost prędkości procesu krakowania. Co prawda nie jest on wprost proporcjonalny do liczby procesorów na karcie, ale pojawił się taki problem, że moc obliczeniowa porównywalna z wielkimi komputerami znalazła się w dyspozycji tzw. zwykłego użytkownik. Powiedzmy od razu, że nie tak zwykłego, trzeba się jednak dość wysilić i wydać trochę kasy na taki klaster obliczeniowy. Mimo to trzeba było jednak coś przedsięwziąć.

W tej chwili w wielu systemach stosowany jest jest algorytm opracowany w USA przez National Security Agency z serii algorytmów nazywanych sha2 o nazwie SHA512, w którym ustawia się parametr „rounds” oznaczający liczbę przebiegów haszowania. Bierzemy hasło, wykonujemy z niego hasz, następnie z tego hasza kolejny. Tak mnóstwo razy. Cel jest prosty: zwiększyć czas wyliczania hasza na tyle, aby skompensował przyrost mocy obliczeniowej systemów zbudowanych na GPU, czyli nowoczesnych kartach graficznych. Jak wyczytałem, dla sha512 typowa wartość parametru rounds wynosi 5000 i to już załatwia problem.

Warto zauważyć, że gdyby nie solenie haseł, to ta operacja byłaby psu na budę. Słownik bowiem będzie zawierał pary hasz–hasło. Nie trzeba uruchamiać programu wyliczającego ów hasz, przeszukiwanie idzie piorunem.

Ale gdy mamy i solenie, i wielokrotne haszowanie, to znalezienie hasła „1234” trwa naprawdę dziesiątki godzin na normalnym komputerze. Połamania bazy wykradzionych haseł liczącej dziesiątki tysięcy sztuk nie może dokonać ktokolwiek.

Krótko mówiąc, eksperymentalnie się przekonałem, że i w specjalistycznych publikacjach, i w tych popularnych, pisze się bajki: nawet bardzo durne hasło w dzisiejszych czasach nie jest łatwe do przełamania.

Media nam wmawiają, że zagrożenia cybernetyczne rosną. Tyle że jeśli przyjrzeć się technicznym bebechom, to widać coś innego.

Tak, pojawiają się nowe narzędzia crakerów, jak komputery z kartami graficznymi. Lecz znajdujemy się w sytuacji, że posiadają je tylko niektórzy ludzie. To już nie może być kilkunastoletni wandal komputerowy, jak bywało jeszcze kilkanaście lat temu. Ktoś musi wyłożyć kasę, musi mieć w tym jakiś cel. A broniący się może podkręcić mocniej owo „rounds”, np, razy 10, może ustawić minimalną długość hasła w systemie na kilkanaście znaków, może zmienić funkcję haszującą na nowszą. Na przykład bcrypt. Algorytm lub program przeznaczony specjalnie do tego, by spowolnić proces haszowania. Można w nim ustawiać złożoność aż do takich wartości, że na normalnym komputerze operacja będzie trwała gdzieś około 1,5 roku. Jest tak zaprojektowany, że procesu nie da się rozbić na wiele równoległych, nie da się więc złamać algorytmu za pomocą superkomputerów NSA czy NASA albo chińskich gigantów, ponieważ i tak poszczególne procesory pracują z prędkościami bliskimi tych w domowych maszynach. Ten program może stawić czoła wszystkim komputerom na świecie połączonym w jeden klaster. Nawet jeśli ustawimy sobie głupie hasło – i tak możemy ustawić komplikację haszowania na takim poziomie, że jego łamanie będzie trwać za długo dla każdego.

Ściągnij tekst:
Strony: 123

Mogą Cię zainteresować

Adam Cebula „Troll sam w sobie”
Felietony Adam Cebula - 23 lutego 2018

Troll w Internecie jest gatunkiem tępionym. Powód jest oczywisty: tacy osobnicy potrafią…

Adam Cebula „Wykluczenie elektryczne”
Felietony Adam Cebula - 6 kwietnia 2015

Naszła mnie kiedyś pewna bardzo zatroskana kobieta. Zadała kilka pytań i oznajmiła, że jestem…

XXXII Zielonogórski Festiwal Fantastyczny – Bachanalia Fantastyczne
Aktualności Fahrenheit Crew - 10 października 2018

Zapowiedź XXXII Zielonogórskiego Festiwalu Fantastycznego – „Bachanalia Fantastyczne”.

Do NOT follow this link or you will be banned from the site!