Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Jak szybko przestępcy mogą złamać hashowanie haseł wykorzystane w Morele.net?

20 grudnia 2018, 20:30 | W biegu | komentarzy 18

Jak pewnie wiecie ostatnio wyciekło około 2.2 miliona kont użytkowników z Morele.net – w tym zahashowane hasła.

Wprawdzie sam sklep nie pisze o wykorzystanej metodzie hashowania, tutaj rąbka tajemnicy uchyliła osoba, która wykradła dane.

Jest to funkcja md5crypt (nie mylić z MD5), wspierana przez hashcata. Funkcja ta używa maksymalnie 8 znakową sól. Takie zresztą warianty (sól 8 znaków) widzieliśmy w zamazanych fragmentach wyciekniętych hashy.

Na potrzeby testowe używaliśmy hashcata 5.0, wykorzystującego kartę graficzną NVIDIA GTX 1070. Uwaga – NIE MAMY (i nawet mieć nie chcemy) realnej bazy.

Wracając do głównego tematu, na wspomnianej karcie prędkość łamania pojedynczego solonego hasha to 6,7 miliona sprawdzeń na sekundę:

Session..........: hashcat
Status...........: Running
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: md5crypt.txt
Guess.Mask.......: ?l?l?l?l?l [5]
Guess.Queue......: 5/8 (62.50%)
Speed.#1.........:  6772.8 kH/s (8.08ms) @ Accel:512 Loops:250 Thr:32 Vec:1
Recovered........: 0/1000 (0.00%) Digests, 0/1000 (0.00%) Salts
Progress.........: 177684480/11881376000 (1.50%)
Rejected.........: 0/177684480 (0.00%)

Bardziej obrazowo: dla hasła 8-znakowego (składającego się z losowych, małych liter) mamy 26^8 = 208827064576 możliwości, prędkość łamania pojedynczego hasha 6 772 000 sprawdzeń na sekundę. Czyli pesymistycznie do złamania potrzeba 208827064576 / 6 772 000 = 30836 sekund (około 8,5h). Czas łamania wariantów haseł < 8 znaków pomijamy – nie wnosi to wiele do rozważań.

Tak wyglądają obliczenia przy łamaniu jednego hasha. Jeśli ktoś chce ich złamać np. 1000 to czas wydłuża się (pesymistycznie) 1000 razy = 8500h = 354 dni.

Dla hasła bardziej złożonego (małe, duże litery, cyfry – hasło wygenerowane losowo) mamy 375 dni dla jednego hasła. Na małym klastrze złożonym z ośmiu nowszych kart – to okolice 15 dni.

Czy wykorzystanie md5crypt() jest lepsze od MD5() ?

Zdecydowanie lepsze. Dla 'gołego’ MD5() prędkość łamania jest około 1000 razy większa:

Session..........: hashcat
Guess.Mask.......: ?l?l?l?l?l?l?l?l [8]
Guess.Queue......: 8/8 (100.00%)
Speed.#1.........:  5114.0 MH/s (11.56ms) @ Accel:128 Loops:32 Thr:1024 Vec:1
Recovered........: 375/1000 (37.50%) Digests, 0/1 (0.00%) Salts
Progress.........: 78485913600/208827064576 (37.58%)
Rejected.........: 0/78485913600 (0.00%)

Co więcej hasła można łamać hurtem (czyli podobną prędkość ma łamanie jednego hasła jak i miliona).

Wszystkie te dywagacje są przy hasłach składających się z losowej kombinacji znaków – ale wiele użytkowników będzie miało hasła słownikowe – lub niemal słownikowe. Zauważcie, że przeglądnięcie całego słownika języka polskiego (np. milion słów; nota bene: istnieją mniejsze, ale i większe słowniki) – dla jednego hasła to rząd wielkości kilku sekund. Dla miliona kont – też jest w zasięgu złodzieja.

Pewnie trzeba dać wiarę informacji, którą podaje Z3S:

złodziej twierdzi, że złamał już kilkaset tysięcy haszy haseł i jest to możliwe

Podsumowując – jeśli używacie hasła słownikowego lub prawie słownikowego (np. Katarzyna1) – może być ono dość szybko złamane. Jeśli używacie losowej kombinacji małych liter – graniczną wartością jest 10 znaków (od tego momentu złamanie będzie dość trudne). Jeśli macie w haśle np. losową kombinację małych, dużych liter, znaków specjalnych – granicą będzie 9 znaków.

Tak czy siak warto zmienić hasło. Po stronie serwerowej, do hashowania haseł polecamy wykorzystać bcrypt(), choć warto to zrobić dobrze

–sekurak

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. adro

    Miałem tam konto,hasło złożone z 15 losowych znaków. GL :) Ale i tak zmieniłem na nowe,tym razem 32 znaki cya later

    Odpowiedz
  2. Dbx

    Osobiście używam totalnie śmieciowych haseł do serwisów tego typu. Jeżeli chodzi o dane osobowe to nie ma tam nic co właściwie nie jest ogólnodostępne. Pytanie co może mi grozić jeżeli ktoś złamie moje hasło oraz będzie w posiadaniu danych z takiego serwisu? W mojej opinii nic ale może ktoś mnie naprostuje?

    Odpowiedz
    • nnm

      Mając Twoje pełne dane z nr pesel? Brać kredyty, chwilówki

      Odpowiedz
    • Wujek Pawel

      A uzyles tej samej pary email/login/haslo w innych serwisach i tam nie zmieniles hasla? Jak tak to sam sobie odpowiedz, jak nie to bedziesz „tylko” dostawal wiecej spamu.

      Odpowiedz
    • Śmieciowe hasło do sklepu, w którym podajesz najprawdopodobniej dane personalne aby otrzymać paczkę?

      Brzmi jak świetna rada (y).

      Albo bait na który złapałeś mnie.

      Odpowiedz
      • Monsterlevel

        Niekoniecznie trzeba coś kupować, żeby mieć tam konto, nieprawdaż? :) Np. w celu zapisania jakiegoś zestawu lub rzeczy do listy ulubionych.

        Odpowiedz
      • Seb

        Może o innego rodzaju śmieciowe mu chodzi – jak robiłem zakupy w morelach musiałem tam założyć konto, z którego później i tak nie zamierzałem korzystać wygenerowałem mega skomplikowane z Last Passa do użytku tylko na ten raz – dla mnie śmieciowe, bo nie do zapamiętania i nie do wykorzystania ponownie ;-).

        Odpowiedz
      • Wszystkie dane, które podaję w sklepie, są ogólnodostępne (może oprócz nr tel ale w moim przypadku on również jest ogólnodostępny).
        Jak mnie gdzieś proszą o pesel to sobie stamtąd idę po prostu.

        Co komuś da posiadanie danych w których posiadanie może wejść absolutnie każdy?

        Odpowiedz
        • Jarek

          Ale rozumiesz że to bardziej chodzi o to ze ludzie ustawiają te same hasla do innych serwisow, Allegro, banków itp?

          Odpowiedz
    • Shgei7

      Jak wyciagnie dane personalne to Ci moze strzelic wala lub Twoim znajomym. Choc raczej poziom ameby trzeba miec zeby to lyknac. Nr tel tez mozna krecic. Po co sie wystawiac na takie ryzyko….

      Odpowiedz
      • Nie wiem jakie dane podajesz w sklepach internetowych ale w moim przypadku ciężko byłoby na tym wałki kręcić – podaję tylko to, co jest niezbędne do wysyłki. Równie dobrze ktoś może podejść do mojej skrzynki na listy i sobie wyciągnąć jakiś list – zdobędzie te same dane. Poza tym prowadzę DG – moje dane teleadresowe są ogólnodostępne.

        Odpowiedz
    • w66

      Skąd w sklepie internetowym miałby się wziąć pesel? Ok, może w niektórych kontach, gdzie ktoś brał coś na raty, nie wiem, w życiu nic na raty nie brałem. W normalnym sklepie nigdy żadnego peselu nie podawałem, a swój adres do wysyłki i nazwisko i tak podałeś już w stu innych sklepach zamawiając cokolwiek

      Odpowiedz
  3. nn

    Głównie będzie mógł zaadresować maile i smsy do ciebie po imieniu i nazwisku. Przy odrobinie szczęścia, może uda mu się ciebie gdzieś złapać…

    Odpowiedz
    • openworld

      Raczej efektywniejsze jest wysyłanie w jego imieniu…
      Bolesne.

      Odpowiedz
      • root

        Przecież jak masz np. jednoosobową to twoje dane i tak są w sieci ogólnodostępne.

        Odpowiedz
  4. narq

    Bcrypt nie jest zly, ale niedlugo juz bedzie sie zalecac Argon2, ktora jest bardziej odporna na zrownoleglanie.

    Odpowiedz
  5. ACoTam2

    Miałem 20 znakowe hasło z samych cyfr i znaków specjalnych… raczej jestem bezpieczny ale i tak pozmieniałem hasła ALBO dałem 2fa tam gdzie miałem takie samo

    Odpowiedz
  6. adderek

    Czyli z solą jeden wektor ataku prawie przepadł :)
    Próbowałem niedawno złamać hasło md5crypt z 8-znakową solą… szukałem jakiejkolwiek kolizji… szukanie słownikowe idzie szybko… ale bez sukcesu. Zapuściłem próbę na nie-słownikowym brute-force… no i po kilku dniach odpuściłem :( A szkoda, ponieważ atakuję swój własny router z softem OpenWRT (GPLv2 gdzie producent złamał licencję i nie udostępnił źródeł)… no i wskoczyłem bez problemu na OS z pominięciem hasłą… ale router ma podsystem (też OpenWRT i identyczne hasło roota) i tam już nie mogę znaleźć skutecznego wektora… dropbear byłby najłatwiejszy gdybym znał to hasło (mam tylko hash+salt md5crypt)…
    Nawet nie wiem po co to piszę… i tak nikogo nie obejdzie

    Odpowiedz

Odpowiedz