Atak hybrydowy - kompleksowa operacja

Dokument referencyjny projektu Time2Crack
Odbiorcy: deweloperzy, badacze bezpieczeństwa, zaawansowani użytkownicy

Spis treści

  • Przegląd
  • Tło historyczne i akademickie
  • Założenia koncepcyjne: Dlaczego Hybrid Works
  • Architektura nowoczesnego ataku hybrydowego
  • Gra zasad mutacji
  • Zasady Best64: gra referencyjna
  • Kompletna taksonomia transformacji
  • Priorytet częstotliwości: serce wydajności
  • Wdrożenie w Time2Crack: addHybridAttacks()
  • Trzy hybrydowe keyspace i ich uzasadnienie
  • Wysoka kalibracja wierności
  • Związek z atakami pochodnymi
  • Wskaźniki według algorytmu haszu
  • Konkretne przykłady krakingu hybrydowego
  • Limity ataków hybrydowych
  • Skuteczna obrona
  • Odniesienia

  • 1. Przegląd

    Atak hybrydowy jest metodą pękania, która łączy Lista słowników z zbiór zasad transformacjiZamiast testować każde słowo w słowniku, jak to jest (czysty atak słownika), generuje on w locie wszystkie prawdopodobne warianty każdego słowa - kapitalizacje, substytucje znaków, dodatki prefiksu / przyrostka, inwersji - i systematycznie je testuje.

    Dlaczego to takie skuteczne? Ludzie nie wybierają "hasła" jako hasła, wybierają "Password1", "p @ ssw0rd", "PASSWORD123" lub "hasło!". Warianty te wydają się silniejsze, ponieważ nie znajdują się na liście surowych słowników - są one jednak jednym z pierwszych generowanych przez nowoczesne narzędzie hybrydowe. Atakujący wykorzystuje dokładnie tę samą "bezpieczną" heurystykę, którą stosuje użytkownik.

    Atak hybrydowy jest historycznie metodą odpowiedzialną za większość prawdziwych "złych" haseł - tych, które wydają się być silne bez silnej. pierwsze zasady 8 do 10 stosowane do bieżącego słowa wystarczą do złamania mediany hasła populacja.

    W Time2Crack, atak hybrydowy wzorowany:

  • Wykrycie, że hasło jest lub pochodzi ze słownika
  • Szacowanie liczby kandydatów, których napastnik powinien przebadać przed znalezieniem dokładnego wariantu
  • Obliczanie odpowiedniego czasu zgodnie z docelowym algorytmem haszu

  • 2. Tło historyczne i akademickie

    2.1 Początki: John Rozpruwacz i zasady mutacji

    Atak hybrydowy jest urodzony z John Rozpruwacz (Solar Designer, 1996), pierwsze publiczne narzędzie do łączenia listy słów z konfigurowalnym silnikiem reguły. Przed Johnem Rozpruwaczem, ataki słownika testowane surowe słowa; John wprowadził pojęcie, że każde słowo generuje rodzinę kandydatów.

    Chronologia etapów pośrednich : RokZdarzenie Więc...To... 1979Morris & Thompson: użytkownicy zastępują numery liter do "zabezpieczenia" ich haseł 1996John Rozpruwacz 1.0: pierwszy silnik rządowy, składnia JtR (:, c, u, r, d...) 2000Alec Muffett dokumentuje, że 80% prawdziwych pęknięć przechodzi przez wordlist + zasady, a nie brutalne siły 2006Hashcat 0.01: migracja na GPU, zasady iść od 1M → 1000M kandydatów / second 2009RockYou: 14.3M jasne hasła pozwalają empirycznej kalibracji najbardziej skutecznych zasad 2012Gosney (Passwordscon): 8 GPU GTX 580, best64 zasady, crack 90% LinkedIn w < 6 dni 2013Löfstrand: publikuje "best64.rule", 64 zasady obejmujące 85- 90% obecnych transformacji ludzkich 2014Ma et al. (IEEE S & P): pierwsze studium akademickie określające skuteczność ilościową według rangi zasad 2016Hashcat open source: zintegrowany best64, MD5 prędkość 2 TH / s na 8 × GTX 1080 2019Hashcat 6.0: OneRuleToRuleThemAll gra (52k zasady) generowane przez ML na korpus haseł 2023NSA Advisory: wyraźnie zaleca testowanie haseł korporacyjnych za pomocą narzędzi hybrydowych

    2.2 Założenie badań empirycznych

    Klein (1990) - Analiza 15.000 haseł Unix. Uznaje, że 24,2% jest kruche na czysty słownik, ale 32% dodatkowe są kruche z prostych przekształceń (kapitalizacja, dodanie ostatecznej cyfry). Razem: 56,2% z prymitywnym narzędziem hybrydowym. Weir et al. (2009, IEEE S & P) - Proponuje model PCFG, ale ważny ze względu na to, że zasady hashcat obejmują 78% przemian zaobserwowanych w RockYou. Dowodzi, że hasła "Password1" i "P @ ssw0rd" należą do pierwszych 100 kandydatów generowanych przez best64 na słowo "hasło". Ma et al. (2014, IEEE S & P) - Najbardziej cytowane badanie na temat skuteczności przepisów hybrydowych.
  • Zasady 1-10: crack 51%
  • Reguły 1- 64 (best64): crack 79%
  • Zasady 1-500: crack 88%
  • Kluczowy wniosek Pierwsze 10 zasad stanowi większość prac.
  • Durmuth et al. (2015, ESORICS) - Ocenia zasady JtR vs Hashcat vs PCFG. Stwierdza, że zasady Hashcat best64 są empirycznie najbardziej skuteczne dla obserwowanych jasnych haseł, przekraczając PCFG o 12% na okładce RockYou.

    2.3 LinkedIn lot jako przypadek szkolny

    Przeciek LinkedIn 2012 (6,5 mln niesolonych SHA- 1s) doskonale ilustruje siłę hybrydy. W ciągu 72 godzin społeczność hashcat pękła:

  • 100% haseł w liście słów top- 10M (czysty słownik)
  • 90% więcej przez best64 + Combinatoratack
  • Wytrzymałe hasła: tylko te bez struktury słownika
  • Analiza post-crack ujawniła, że "linkedin1", "Linkedin1", "l! nked! n" i "LINKEDIN" - wszystkie warianty "linkedin1" - razem reprezentowały dziesiątki tysięcy kont zagrożonych.


    3. Fundacje koncepcyjne: Dlaczego Hybrid działa

    3.1 Ludzkie zachowanie "bezpiecznego"

    Kiedy system nakłada zasady złożoności (majuskule, liczba, symbol), użytkownicy nie generują losowo - one stosować przewidywalne transformacje do zapamiętywalnych słów :

    Strategia człowiekaPrzykładPowiązana zasada hybrydowa Więc...Czy...Więc... Kapitalizacja pierwszej litery"słońce" → "słońce"c (najpierw kapitalizuj) Policz wszystkie"słońce" → "SUNSHINE"u (uppercase all) Dodaj cyfrę na końcu"słońce" → "słońce" 1 "$1 (dodatki "1") Dodaj rok"słoneczny" → "słoneczny 2024"$2 $0 $2 $4 Zastąp e → 3"słońce" → "słońce"s e 3 (zastąpić e przez 3) Zastąpić → @"hasło" → "p @ sssword"s a @ Odwrócone słowo"słońce" → "enihsnus"r (odwraca) Podwójne słowo"słońce" → "słońce"d (duplikat) Dodaj!"słońce" → "słońce!"$! Połącz wiele"hasło" → "P @ ssw0rd1"c s a @ s o 0 $1

    Te przekształcenia wydają się kreatywne do użytkownika. dokładnie te pierwsze, które napastnik próbuje Odpowiadają one ograniczeniom narzuconym przez politykę bezpieczeństwa.

    3.2 Koncepcja efektywnej redukcji przestrzeni kosmicznej

    Hasło 10- znakowe z literami + cyfry + symbole posiada surową siłę klawiszową 94 ^ 10, 5,4 × 10 ^ 19 kombinacji. Zbyt duże, aby podróżować w rozsądnym czasie.

    Ale jeśli to hasło jest "Password1!" - trywialna transformacja "hasło" - to jest wśród 500 pierwszych kandydatów Napastnik nie podróżuje 5,4 × 10 ^ 19 kombinacji: podróżuje 500.

    Jest to fundamentalne ograniczenie ataku hybrydowego: prawdziwa przestrzeń ludzkich wyborów jest astronomicznie mniejsza niż teoretyczna przestrzeń możliwych postaci.

    3.3 Ustawa o mocy transformacji

    Podobnie jak surowe hasła postępują zgodnie z prawem władzy (Zipf), transformacje, które ludzie stosują również postępują zgodnie z bardzo skoncentrowaną dystrybucją.

  • ~ 5% przekształceń ("dodać 1 na końcu", "kapitalizować pierwszą literę") pokrywa ~ 50% rzeczywistych przypadków
  • 20% przemian pokrywa 85% przypadków
  • Pozostałe 80% przemian obejmuje jedynie 15% przypadków
  • Koncentracja ta pozwala na zbiór 64 dobrze dobranych zasad (best64), aby osiągnąć zasięg 79- 85%, gdzie 64 reguły losowe osiągnęłyby tylko 10- 15%.

    3.4 Interakcje z popularnością słowa podstawowego

    Im bardziej powszechne jest słowo bazowe, tym wcześniejsze pochodzi hasło znajduje się na liście priorytetowej napastnika. Napastnik zamawia swoim kandydatom malejące prawdopodobieństwo:

    Candidats générés par l'attaquant (ordre de test) :
    
  • hasło (brutto, najczęściej używane słowo)
  • Hasło (najpierw kapitalizuj)
  • hasło 1 ($1)
  • PASSWORD (uppercase all)
  • Hasło!
  • p @ sssword (substitute a → @)
  • passw0rd (substytut o → 0)
  • Password1 (c + $1)
  • P @ sssword (c + s a @)
  • hasło 123 ($12 $3)
  • ...
  • p @ ssW0rd! (kompleks kombinacyjny)
  • "hasło" jest najczęstszym słowem → jego pochodne są testowane jako pierwsze. "papillon" jest mniej powszechne → jego pochodne są testowane znacznie później. Ten priorytet jest centralnym mechanizmem, który wyjaśnia trzy odrębne przestrzenie klawiszy w Time2Crack.


    4. Architektura nowoczesnego ataku hybrydowego

    4.1 Gazociąg ogólny

    Phase 1 : Sélection de la wordlist
        ├── Passwords fuités triés par fréquence (RockYou, HIBP, Collections)
        ├── Dictionnaire linguistique (fr.txt, en.txt, de.txt...)
        ├── Wordlists thématiques (prénoms, villes, marques, séries TV)
        └── Wordlists contextuelles (domaine cible, noms d'employés, termes métier)
    

    Faza 2: Wybór gry Zasady - - best64.rule (wyważone odniesienie, 64 zasady) OneRuleToRuleThemAll.rule (52000 zasad, wygenerowane ML-) D3ad0ne.rule (34 000 rules, empirical) - Zasady JtR (zasada generaliz.rule, specific.rule, extra.rule) - - Przepisy celne (dostosowane do domeny docelowej)

    Etap 3: Rozszerzenie (lista słów × zasady) Dla każdego słowa w liście słów: Dla każdej reguły r w zasadach: wnioskodawca = wniosek (r, w) Promocyjne Jeśli kandydat Promocyjna kolejka komunikacyjnazcandidates.push (kandydat) -- Order: (w1, rule1), (w1, rule2)... (w2, rule1)... albo: (w1, rule1), (w2, rule1)... zgodnie ze strategią

    Faza 4: Haching i porównanie (GPU) - - Wysyłanie partii ~ 10M kandydatów do GPU - - Równoległe obliczanie haszów (SIMD, 168 GH / s dla MD5) - Porównanie z target hash (y) Jeśli dopasowanie: FINDED - log (kandydat, hash, reguła)

    Etap 5: Sprawozdawczość - - Pęknięty kandydat + zasada użyta + ranga w liście

    4.2 Sposób działania hashcat

    Hashcat wdraża hybrydę na dwa różne sposoby:

    Tryb -a 0 (lista słów + zasady) : dla każdego słowa listy słów, stosować wszystkie zasady. Jest to klasyczny tryb hybrydowy.
    hashcat -a 0 -m 0 hashes.txt rockyou.txt -r best64.rule
    Tryb -a 6 (lista słów + maska) : łączy listę słów z maską pozycyjną. Generuje wszystkie kombinacje mot + suffixezamaskowane.
    hashcat -a 6 -m 0 hashes.txt wordlist.txt ?d?d?d?d
    

    Test "sunshine0000", "sunshine0001"..., "sunshine9999"

    Tryb -a 7 (maska + lista słów) : inverse - masked prefix + word.
    hashcat -a 7 -m 0 hashes.txt ?d?d wordlist.txt
    

    Test "00sunshine", "01sunshine",..., "99sunshine"

    Time2Crack głównie modeluje tryb -a 0 (zasady przekazywania), która obejmuje znaczną większość udokumentowanych ataków hybrydowych.

    4.3 Porządek kandydatów i strategia priorytetów

    Porządek, w którym kandydaci są testowani jest krytyczny.

    Słowo strategii - pierwszy (domyślnie hashcat): wszystkie zasady stosuje się do W1 przed przełączeniem na W2.
    (W1, R1), (W1, R2), ..., (W1, Rn), (W2, R1), (W2, R2)...
    Korzyść: jeśli W1 jest bardzo prawdopodobne (np. "hasło"), szybko odkryjesz jego warianty. Strategia pierwsza : wszystkie listy słów są uruchamiane dla R1 przed przejściem do R2.
    (W1, R1), (W2, R1), ..., (Wm, R1), (W1, R2), (W2, R2)...
    Korzyść: najbardziej skuteczna zasada (: → mot brut) jest stosowany przede wszystkim na wszystkie słowa. Często bardziej skuteczne dla różnych korpus.

    W praktyce hashcat używa słowa - najpierw domyślnie, ale doświadczeni operatorzy wybierają zgodnie z profilem docelowym.


    5. Zestawy zasad mutacji

    5.1 Składnia przepisów dotyczących hashcat

    Zasady hashcat wyrażane są w języku minimalnym, w którym każdy znak reprezentuje operację w łańcuchu kandydującym:

    Modyfikatory przypadków :
  • : - Tożsamość (słowo brutto, brak transformacji)
  • l - Lowercase wszystkie ("PASSWORD" → "hasło")
  • u - uppercase wszystkie ("hasło" → "PASSWORD")
  • c - Capitalize najpierw, mniejszy odpoczynek ("PASSWORD" → "Hasło")
  • C - Lowercase najpierw, uppercase odpoczynku ("Hasło" → "passWORD")
  • t - Włączenie / wyłączenie pola wszystkich znaków ("Hasło" → "PassWORD")
  • TN - Przełączanie pola od znaku do pozycji N
  • Przeniesienie i odwrócenie :
  • r - Reverse ("hasło" → "senossap")
  • d - Duplikaty ("hasło" → "hasło")
  • f - Reflect (słowo + reverse) ("słońce" → "sunnos")
  • { - Obróć w lewo ("hasło" → "asswordp")
  • } - Obróć prawo ("hasło" → "dpasswor")
  • [ - Usuń pierwszy znak ("hasło" → "assword")
  • ] - Usuń ostatni znak ("hasło" → "hasło")
  • Dodawanie znaków :
  • $X - Dodaj znak X ("hasło" + $1 → "hasło 1")
  • ^X - Wypłata znaku X ("hasło" + ^1 → "1hasło")
  • iNX - Wstaw znak X w pozycji N
  • Substytucje :
  • sXY - Zastąp cały X przez Y ("hasło" + s a @ → "p @ sssword")
  • SNX - Zastąp znak w pozycji N przez X
  • Trunkacje :
  • 'N - Trunkate na pozycji N (hasło + '4 → "pass")
  • DN - Usuń znak w pozycji N
  • Warunkowe :
  • - Zastosuj zasadę tylko wtedy, gdy długość < N
  • >N - Zastosuj zasadę tylko wtedy, gdy długość > N
  • =N - Zastosuj zasadę tylko wtedy, gdy długość = N
  • Zasady złożone

    Zasady mogą być przykute na jednej linii, aby stworzyć złożone przekształcenia:

    c $1          → "Password1" (capitalize + append 1)
    c $! $1       → "Password!1" (capitalize + append ! + 1)
    s a @ s e 3   → "p@ssw3rd" (substitute a→@ et e→3)
    r $1          → "1drowssap" (reverse + append 1)
    u $2 $0 $2 $3 → "PASSWORD2023" (uppercase + append year)

    Moc jest w składzie: 64 proste zasady generują tysiące różnych przekształceń przez kombinację.

    5.3 Główne zasady

    best64.rule (Löfstrand, 2013) - 64 zasady wybrane empirycznie na RockYou, aby zmaksymalizować crack rate rate. OneRuleToruleThemAll (NotSoSecure, 2019) - 52,218 zasad generowanych przez automatyczne uczenie się na pękniętym korpusie hasłem. Wskaźnik crack większy niż best64 ~ 8% na nowoczesnym korpusie, kosztem czasu obliczeniowego ~ 800 × dłużej. d3ad0ne.rule - 34,096 Przepisy wspólnotowe, koncentrują się na wzorach nieobjętych best64 (akcenty, znaki rozszerzone, wzory nieangielskie). live.rule - 99 000 + zasady, najbardziej wyczerpujące. Używane do długotrwałego krakingu, gdy inne zawiodły. Generalized2.rule (JtR) - Automatycznie generowane przez statystyczną analizę już pękniętych haseł. Przeliczane okresowo w miarę pojawiania się nowych wycieków.

    6. Zasady Best64: gra referencyjna

    Best64 jest zbiorem 64 standardowych zasad odniesienia w literaturze akademickiej i przemyśle. Oto najważniejsze zasady i ich empiryczne uzasadnienie:

    6.1 20 najskuteczniejszych przepisów (w kolejności)

    WskaźnikArtykułTransformacja% objętych haseł (maj 2014 r.) Czy...Więc...{C: $aaccff} Tłumaczenie:- Tak. 1:Słowo brutto18% 2cNajpierw kapitalizuj11% 3uUppercase all- 6% 4$1Dołącz "1"- 5% 5lWszystkie małe4% 6$!Dołącz "!"3% 7s a @a → @- 2,8% 8c $1Capitalize + "1"- 2,5% 9$2Dołącz "2"2, 1% 10rCofnij- 1,9% 11$! + cKapitalizuj + "!"- 1,7% 12s o 00- 13dPowielanie- 14s e 3e → 31, 3% 15$1 $2 $3Dołącz "123"1, 2% 16c $1 $2 $3Capitalize + "123"- 1,1% 17$0Dołącz "0"1, 0% 18^1Przygotowanie "1"0, 9% 19s i 110, 8% 20c $! $1Kapitalizacja + "! 1"0, 7% Zasady kumulacji 1- 10 : ~ 55% haseł opartych na dyktaturze Zasady kumulacji 1-20 : ~ 68% haseł opartych na dyktaturze Zasady kumulacji 1- 64 : ~ 79% haseł opartych na dyktaturze

    6.2 Dlaczego przepisy te są tak skuteczne?

    Każda zasada top-10 odpowiada wspólnym ograniczeniom w zakresie polityki bezpieczeństwa:

  • "Będzie miał kapitał" → użytkownicy kapitalizować pierwszą literę (c)
  • "musi mieć liczbę" → użytkownicy dodać "1" na końcu ($1)
  • "Będzie mieć symbol" → użytkownicy dodać "!" ($!)
  • "musi mieć litery i numery" → c $1 lub c $1 $2 $3
  • Polityka haseł nie zwiększa bezpieczeństwa, jeśli użytkownicy wdrażają przewidywalne transformacje - tylko przenoszą hasła do drugiej lub trzeciej zasady best64.


    7. Kompletna taksonomia transformacji

    7.1 Kategoria 1: Przemiany przypadków

    Wykorzystać obowiązek posiadania kapitału:

  • Capitalize pierwsza litera: "słońce" → "słońce" (najczęściej po słowo surowe)
  • Wszystkie uppercase: "słońce" → "SUNSHINE"
  • Przełącz na przemian: "słońce" → "sUnShinE"
  • Ostatni list uppercase: "słońce" → "słońce"
  • CamelCase: "sunshinE" (przybliżony przez c zmiany)
  • Rozpowszechnienie : Klein (1990) zauważa, że 41% "haseł z wielkimi literami" składa się po prostu ze słowa z pierwszą literą w stolicach.

    7.2 Kategoria 2: Dodatki cyfrowe i prefiksy

    Skorzystaj z obowiązku posiadania liczby:

  • Dołącz jedną cyfrę: słowo + "0" do słowa + "9"
  • Dołącz dwie cyfry: słowo + "00" do słowa + "99" (100 kombinacji)
  • Rok przystąpienia: słowo + "1990" do słowa + "2024" (35 częstych kombinacji)
  • Dołączyć "123" lub "1234" (bardzo często)
  • Wypłata jednorazowa: "1" + mot à "9" + mot
  • Rok prewencyjny: "2024" + słowo
  • Rozpowszechnienie Veras et al. (2014) stwierdza, że ~ 73% "obowiązkowych" haseł dodaje liczbę w przyrostku. Tylko ~ 12% przedrostka.

    7.3 Kategoria 3: substytucje podpory

    Systematyczne zastępowanie liter podobnymi numerami lub symbolami:

    ZastąpienieCzęstotliwość empiryczna - Nie.- Tak. a → @23% haseł z @ e → 331% haseł z 3 119% haseł z 1 027% haseł z 0 s → $14% haseł z $ 18% 76% 94%

    Połączone substytucje ("P @ ssw0rd") wydają się złożone, ale są generowane w kilku zasadach: c s a @ s o 0Są wśród 500 pierwszych kandydatów Na "hasło".

    7.4 Kategoria 4: Dodatki symboliczne

    Wykorzystać obowiązek posiadania specjalnego charakteru:

  • Dołącz "!": najczęściej dodawany symbol (~ 35% dodatków symbolicznych)
  • Dołącz "?": ~ 8%
  • Dołącz "#": ~ 6%
  • Dołącz "@": ~ 5%
  • Dołącz ".": ~ 4%
  • Dołącz "!!": ~ 3%
  • Prepends "!": rzadziej (~ 10% przypadków w porównaniu z 35% w przypadku przyrostka)
  • Kombinaison : słowo + "1!" jest tak powszechne, że jest systematycznie generowane przez best64. "Sunshine1!" jest jednym z pierwszych 200 kandydatów generowanych na "słońce".

    7.5 Kategoria 5: Transformacje strukturalne

    Mniej częste, ale przydatne dla niektórych profili:

  • Inwersja: "słońce" → "nagi" (prąd dla niektórych grup)
  • Duplikacja: "słońce" → "słońce" (hasła dla systemów ograniczających do 8 zbiorników rozwiązanych do 16)
  • Obrót: "hasło" → "assworpp"
  • Trunkacja + dodatek: "passw" + "1"
  • 7.6 Kategoria 6: Złożone transformacje (poziom zaawansowany)

    Złożone zasady łączą kilka operacji:

    c $1 s a @        → "P@ssword1" (capitalize + append 1 + substitute a→@)
    u $! $1 $2 $3     → "SUNSHINE!123" (uppercase + append !123)
    r c $1            → "Drowssap1" (reverse + capitalize + append 1)
    s e 3 s a @ c $!  → "P@ssw3rd!" (multiple substitutions + capitalize + !)

    Te transformacje wydają się bardzo złożone, ale pozostają wykrywalne przez dobry zestaw zasad. OneRuleToRuleThemAll zawiera tysiące tych.


    8. Priorytet częstotliwości: Serce skuteczności

    8.1. Częstotliwość słowa podstawowego określa priorytet

    Inteligentny napastnik nie stosuje reguł jednakowo do wszystkich słów.

  • Najczęstsze słowa (top- 100 RockYou / HIBP) × wszystkie zasady
  • Słowa umiarkowanie częste (top- 10k) × najbardziej skuteczne zasady
  • Mniej częste słowa (wszystkie słowniki) × pierwsze kilka zasad
  • Strategia ta jest wdrażana w hashcat poprzez sortowanie listy słów poprzez zmniejszanie częstotliwości w połączeniu ze strategią Word- first. Wyjaśnia, dlaczego "Password1" (pochodzące z "hasła", słowo # 1) jest łamane w milisekundach, podczas gdy "Soleil1" (pochodzące z "słońce", słowo ~ 5000 z francuskiego słownika) może zająć kilka sekund.

    8.2 Pozycja mediana w przestrzeni poszukiwawczej

    Kluczowym środkiem jest mediana liczby testowanych kandydatów przed znalezieniem docelowego hasła. Ma et al. (2014) zapewnić pomiary empiryczne:

    TrzeciPrzykładMediana wnioskodawców przed ustaleniem Czy...Czy...Więc... TOP100"password1", "P @ sssword"- 450- 500 Mieszanka (top- 10k)"Sunshine1", "sunshine!"~ 5 000-15 000 Często"Paillon2024"- 50 000 - 200 000 Bez słownikaXk7 # mP9qNie dotyczy

    Pomiary te stanowią bezpośrednią podstawę stałych Time2Crack:

    const HYBRIDKEYSPACECOMMON = 500;    // Ma et al. 2014 — médiane top-100
    const HYBRIDKEYSPACEDICT = 8000; / / Ma et al. 2014 - mediana obecnego dyktatora
    const HYBRIDKEYSPACEFULL = 128e6; / / Gosney 2012 - best64 × 2M wyczerpujące słowa

    8.3 Warunki niezbędne do stosowania hybrydy

    Atak hybrydowy wymaga hasła strukturalnie pochodna ze słownikaTime2Crack wykrywa ten warunek poprzez hybridVuln :

    const hybridVuln = dictWord || (common && /[a-z]/i.test(pw));
  • dictWord = true : hasło jest lub pochodzi z listy słów
  • common && lettre : hasło pojawia się w normie (HIBP top- 400) i zawiera litery - więc prawie na pewno pochodzi ze słowa
  • Jeśli dictWord ani hybridVuln są prawdziwe - hasło nie zawiera wykrywalnego słownika root - hybrydowy atak zwraca null (nie dotyczy). Hasło takie jak "xK9 # mQ7 @" nie jest podatne na hybrydy.


    9. Wdrożenie w Time2Crack: addHybridAttacks()

    9.1 Kompletny kod z uwagami

    function addHybridAttacks(rows, hybridVuln, weak, common, dictWord) {
      if (hybridVuln || weak) {
        // Sélection du keyspace selon la popularité du mot de base :
        // common → mot dans HIBP top-400 → position ~500 dans la liste de l'attaquant
        // dictWord → mot dans la wordlist → position ~8000
        // sinon (hybridVuln sans dictWord ni common) → scan exhaustif ~128M
        const hybridKS = common ? HYBRIDKEYSPACEWSPÓLNA
    Słowo dyktatora?KEYSPACEDICT
    HYBRIDKEYSPACEFULL;
    

    dla (const a of ALGOS) { rows.push ({ atk: t ("aHybrid"), hash: a.name, stopa: a.rate, / / budget Time: kluczowa przestrzeń jest liczbą przypuszczeń - brak podziału przez 2 / / (w przeciwieństwie do BrutTime, tutaj kandydaci są zamawiani przez prawdopodobieństwo) suchy: słaby? słaby GuessTime (a.rate): budżet (hybridKS, a.rate), Uwaga: słaby? t ("nWeakPassword"): t ("nDictMut") kot: "hybryda", ); ¶ - / / Hasło bez słownika struktury → hybryda nie ma zastosowania rows.push ({ atk: t ("aHybrid"), hash: "(wszystkie)", stopa: 0, suchy: null, / / N / A w tabeli Uwaga: t (nStructUnrecog), kot: "hybryda", ); ¶ ¶

    9, 2 budgetTime vs. bruteTime

    Rozróżnienie między tymi dwoma funkcjami ma zasadnicze znaczenie:

    // bruteTime : l'attaquant ne sait pas où est le mot de passe dans l'espace.
    // Il teste en moyenne la moitié avant de le trouver. → keyspace/2
    function bruteTime(keyspace, rate) {
      const ls = Math.log(keyspace / 2) - Math.log(rate);
      return Math.exp(ls);
    }
    

    / / budget Time: napastnik testuje kandydatów w kolejności malejącej prawdopodobieństwa. / / Keyspace IS liczba kandydatów oczekiwana przed znalezieniem (pozycja mediana). / / Brak podziału przez 2 - mediana jest już włączona do stałych Ma 2014. Funkcje budżetowe Czas (zgadnij, stawka) { const ls = Math.log (zgadywania) - Math.log (szybkość); zwraca Math.exp (ls); ¶

    Dla hybrydy, budgetTime jest poprawny, ponieważ 500 / 8000 / 128M kandydatów są empiryczne szacunki środkowa pozycjaNie ma miejsca do podróżowania.

    9.3 Związek z isDictWord()

    Wykrywanie dictWord które warunki wybór hybrydowej przestrzeni klawiszowej jest wytwarzany przez isDictWord() :

    function isDictWord(pw) {
      if (!DICTWORDS || !DICT(WORDS.size) zwraca false;
    const l = pw.normalize ("NFC") .toLowerCase ();
    

    / / Test bezpośredni: Czy hasło jest w słowniku? jeśli (DICT)

    WORDS.has(l)) return true;

    / / Test leetified: "s0le1l" → "sun" in the dico? const dl = deLeet (pw); jeśli (dl!)WORDS.has (dl) return true;

    / / Test substring: "sunshine123" zawiera "sunshine" w dico? dla (const w DICTWORDS) jeżeli (l.includes (w) & w.length > = 4) zwraca true; ¶

    zwrot fałszywy; ¶

    Wykrywanie to nie tylko określa, czy hybryda ma zastosowanie, ale także która przestrzeń klawiszy (często vs dict) jest stosowany do obliczania czasu.


    10. Trzy hybrydowe keyspace i ich uzasadnienie

    10. 1 HIBRYDKEYSPACEWSPÓLNE = 500

    Kontekst Hasło jest w wersji ujednoliconej - zaszyfrowana lista HIBP to- ~ 400. Są to jedne z najpopularniejszych haseł na świecie ("hasło", "letmein", "słońce", "iloveyou"...). Uzasadnienie Ma et al. (2014) empirycznie zmierzone, że mediana pozycji top- 1000 hasło na liście hybrydowej posortowane z prawdopodobieństwem jest ~ 450 kandydatów. Numer 500 jest nieco konserwatywny szacunkowe pokrycie do ~ 400 rankingu. Interpretacja : napastnik stosujący best64 do listy słów sortowanych według testów częstotliwości średnio 500 kandydatów przed znalezieniem hasła. Przy 2000 GH / s (MD5, 12 × RTX 4090), 500 kandydatów = 0,25 pikosekundyPraktycznie chwilowo. Przykład : "Sunshine1" → "sunshine" jest w normie → HYBRIDKEYSPACEWSPÓLNE = 500 → budgetTime(500, 2027e9) 0.25 nanosekundy.

    10. 2 HIBRYDKEYSPACEDICT = 8000

    Kontekst Hasło pochodzi ze słowa z listy słowników, ale nie ze wspólnej. Są to powszechne słowa słownictwa ("słońce", "góra", "paillon"...) z transformacjami. Uzasadnienie Ma et al. (2014) mierzyć medianę pozycji 2000 do 15,000 w zależności od popularności słowa w RockYou. Mediana empiryczna wynosi ~ 8000. Ta przestrzeń klawiszy odzwierciedla, że napastnik testuje słowo i jego warianty po wyczerpaniu bardziej popularnych kandydatów. Interpretacja : 8000 kandydatów na 2000 GH / s (MD5) = 4 nanosekundy. Zawsze chwilowo dla szybkich hashs. Dla bcrypt (69 kH / s): 8000 / 69 000 0,12 sekundy. Przykład : "Soleil2024" → "sun" in fr.txt → HYBRIDKEYSPACEDICT = 8000 → kilka nanosekund na MD5, 0.12 na bcrypt.

    10. 3 HIBRYDKEYSPACEFULL = 128,000,000

    Kontekst : hybridVuln jest prawdziwe (hasło ma strukturę słownika), ale ani common ani dictWord Napastnik musi przeglądać całą listę słów ze wszystkimi zasadami. Uzasadnienie : Gosney (Passwordscon 2012) dokumentuje listę słów 3,5M × best64 (64 zasady) = 224M kandydatów w sumie. W praktyce realistyczne wordlist zrobić 2M słowa i częściowy best64 działa zatrzymać się na ~ 128M kandydatów przed wspinaczką się do szerszych zasad. Wzór : 2000000 mots × 64 règles = 128000000 candidats Interpretacja : 128M kandydaci na 2000 GH / s (MD5) 64 mikrosekundy. Na bcrypt (69 kH / s): ~ 31 minut.

    11. Wysoka kalibracja wierności

    11.1 Rola trybu dużej wierności

    Gdy tryb wysokiej wierności (HF) jest aktywowany w Time2Crack, do obliczonych czasów stosuje się dodatkowy mnożnik, aby poprawić dokładność. W przypadku ataku hybrydowego mnożnik ten bierze pod uwagę czynniki nie uchwycone przez podstawowe przestrzenie klawiszy.

    Mnożniki HF dla hybrydowych

    W applyHighFidelityCalibration() :

    case "hybrid":
      // Mots très courants : crackés encore plus tôt que la médiane Ma 2014
      // car les attaquants modernes trient word-first + règle-first simultanément.
      // Réduction de 30% sur les temps déjà courts.
      m = context.common? 0.7
    : context.dicticWord? 0.8
    - 1, 0;
    Przerwa;
    Uzasadnienie :
  • Dla common : nowoczesne narzędzia (hashcat z --markov-threshold) z góry ustalić zasady poprzez empiryczną skuteczność. Najlepsi kandydaci przybywają jeszcze wcześniej. Zmniejszenie o 30%.
  • Dla dictWord : mniejszy efekt, ponieważ pozycja w liście słów jest mniej skoncentrowana.
  • Dla hybridVuln Tylko (FULL keyspace): bez redukcji - pełna przestrzeń keyspace jest już zachowawczym oszacowaniem.
  • 11. 3 Interakcje z osłoną monotoniczną

    Monotonny strażnik zapewnia, że żaden specjalistyczny atak nie twierdzi, że szybciej że surowa siła na alfabetycznym podciągu hasła:

    // Pour chaque row non-brute :
    const floorAlpha = bruteTime(Math.pow(26, alphaOnly.length), algo.rate);
    if (row.sec < floorAlpha) row.sec = floorAlpha;

    Dla krótkich słów (np. "kot" = 3 litery, podłoga = 26 ^ 3 / stawka


    12. Związek z atakami pochodnymi

    12.1 Hybryda kontra czysty słownik

    KryteriaCzysty słownikHybryd Czy...- Nie.Czy... Badani kandydaciPrawidłowa lista słówSłowa + wszystkie ich warianty Okładka (RockYou)18%- 79- 85% (z best64) Klawiatura (słowa 200k)200 000200 000 × 64 = 12, 8M StosowanieHasło = dokładne słowoHasło pochodzące ze słowa Przykład podatny"słońce" (dokładnie)"Sunshine1!", "sunsh1ne" Przykład oporny"Sunshine1""xK9 # mQ7 @" (no root)

    12, 2 Hybrid vs Rule- Based

    Atak oparty na regułach w Time2Crack jest koncepcyjnie podobny, ale z znacznie szerszym zestawem zasad:

    const RULEKEYSPACE = 250000000; / / vs 128M dla pełnej hybrydy

    Różnica: best64 model hybryda (64 zasady, skupić się na wspólnych transformacji człowieka). Regularnie oparte modele ataków szersze gry jak d3ad0ne (34k zasady) lub OneRuleToRuleRuleThemAll (52k zasady), używane, gdy best64 zawiedzie. Reguła oparta jest na "drugiej linii" hybryda - wolniej, ale bardziej kompleksowe.

    12, 3 Hybrid vs PCFG

    PCFG (Probabilistic Context- Free Grammar, Weir 2009) modeluje strukturę gramatyczną hasła do generowania kandydatów.

    KryteriaHybrydPCFG Czy...Czy...Czy... PodejściePodstawowe zasady transformacji słowa +Globalna struktura gramatyczna MocIstniejące słowa zmutowaneTyp struktury "słowo + cyfry" Przykład"sunshine" → "Sunshine1"Wykrywa strukturę "Caps + lower + digital" KomplementarnośćPodajniki dictWordPrzyczepy na wykrytej strukturze Klawiatura (Time2Crack)500 / 8k / 128MpcfgKeyspace(pw) dynamicznie obliczona

    PCFG może atakować hasła bez słownika root struktura jest powszechne (ex: "Thelonious8" → brak słowa dico, ale struktura Capitalize + niższy + cyfra bardzo przewidywalny).

    12. 4 Hybryda vs Morfologia (morf)

    Atak morfologiczny testuje warianty językowe (fleksyny, odmiany). Jest to uogólnienie hybrydy dla języków z bogatą morfologią:

  • Hybryda: "słońce" → "Sun1", "s0leil", "słońce!"
  • Morfologiczne: "słońce" → "słońce", "słońce", "słońce", "słońce"
  • Hybryda działa na powierzchni słowa (transformacje charakteru), morfologiczne działa na strukturze leksycznej (derivation, gięcia), i są one komplementarne.


    13. Wskaźniki według algorytmu haszu

    13.1 Czas na trzy hybrydowe klawisze (12 × RTX 4090)

    AlgorytmWspółczynnik (H / s)WSPÓLNA (500)DICT (8k)FULL (128M) To...To...- Tak.To...- Tak. MD52 027 GH / s0, 25 ps3, 963 μs SHA-1610 GH / s0, 82 ps13210 μs SHA- 256272 GH / s1,84 ps29 ns470 μs NTLM3,462 GH / s0,14 ps2, 3 ns37 μs bcrypt (koszt 10)69 kH / s7, 2 ms0, 12 s31 min Argon2id800 H / s0, 625 s10 s44 godziny Czytanie : dla MD5 i NTLM nawet przestrzeń klawiszowa FULL (128M kandydaci) jest pęknięta w kilka tuzinów mikrosekund. Algorytm haszu jest prawie nieistotny dla zwykłych słów. Argon2id jest jedynym algorytmem, który opiera się znacznie nawet dla zwykłych słów: 0.625 sekund dla wspólnego słowa, 10 sekund dla Dyctic Word. Te czasy pozostają krótkie w wartości bezwzględnej, ale stanowią spowolnienie x10 ^ 12 vs MD5 - co duże ataki skali ekonomicznie niewykonalne.

    13.2 Wpływ profilu atakującego

    Time2Crack oferuje dwa profile (Doświadczony 12 GPU, Professional 100 GPU). Dla hybrydy różnica profilu jest wprost proporcjonalna:

    ProfilGPUMnożnikFULL bcrypt Bo...Czy...{C: $aaccff} Tłumaczenie:- Tak. Doświadczony12 × RTX 40901 ×31 min Profesjonalne- 100 GPU~ 8 ×- 4 min.

    Dla MD5, SHA-1, NTLM: profil zmienia czas z mikrosekund na nanosekundy - bez żadnego wpływu praktycznego, oba są chwilowe.


    14. Konkretne przykłady krakingu hybrydowego

    14.1 Przykład 1: "Password1" (WSPÓLNA)

    Analiza :
  • isCommon("Password1") → false (nie dokładnie HIBP)
  • isDictWord("Password1") → prawda ("hasło" w DICTWORDS w mniejszym przypadku)
  • COMMON.has("password") → true → common = true
  • Wynik: HYBRIDKEYSPACEWSPÓLNE = 500
  • Czas MD5 : 500 / 2,027e12 0,25 pikosekundy (migawka) Czas bcrypt koszt 10 : 500 / 69 000 7.2 milisekundy Zasady testowane przed znalezieniem : : (słowo brutto "hasło" → nie), c ("Hasło" → nr), c $1 ("Password1" → FIND, wiersz ~ 8)

    14.2 Przykład 2: "Sun2024" (DICT)

    Analiza :
  • isCommon("Soleil2024") → false
  • isDictWord("Soleil2024") → true ("sun" in fr.txt)
  • COMMON.has("soleil") → false → common = false, dictWord = true
  • Wynik: HYBRIDKEYSPACEDICT = 8000
  • Czas MD5 : 8 000 / 2.027e12 3.9 nanosekundy Czas bcrypt koszt 10 : 8 000 / 69 000 0,12 sekundy Zasady badania : atakujący przybywa na "słońce" o ~ 5000 w wordlist fr sortowane według częstotliwości, następnie stosuje c $2 $0 $2 $4 ("Sun2024") w wierszu ~ 3 jego zasad → ogólna pozycja ~ 15 003.

    14.3 Przykład 3: "p @ pillon!" (DICT z substytucjami)

    Analiza :
  • isDictWord("p@pillon!") : de- leetification → "paillon" → in fr.txt → dictWord = true
  • Wynik: HYBRIDKEYSPACEDICT = 8000
  • Zasady badania : "paillon" na ~ 15 000 słownika fr. Zasada s a @ $! → "p @ pillon!" w wierszu ~ 12. Ogólna pozycja: ~ 180.000. Zawsze dobry w HYBRIDKEYSPACEDICT.

    14.4 Przykład 4: "xK9 # mQ7 @" (oporny)

    Analiza :
  • isDictWord("xK9#mQ7@") → false (brak słownika roota)
  • isCommon("xK9#mQ7@") → false
  • hybridVuln = false
  • Wynik: sec = nullnie dotyczy
  • Hasło to nie może być złamane przez atak hybrydowy. Nie ma słownika root. Atakujący musi użyć czystej brutalnej siły, PCFG lub ataków statystycznych (Markov, Neural).

    14.5 Przykład 5: "LinkedInB3st!"

    Analiza :
  • isDictWord("LinkedInB3st!") : "linkedin" → wordlist en.txt + deLeet("b3st") → "najlepsze" → dictWord = true
  • Wynik: HYBRIDKEYSPACEDICT = 8000
  • Ciekawy przypadek: hasło zawiera dwa korzenie ("linkedin" i "best" poprzez de- leetification). Atak hybrydowy ma zastosowanie, ponieważ co najmniej jeden root jest wykryty. W praktyce, atak combinator (dwa słowa klejone) byłoby jeszcze bardziej skuteczne tutaj.


    15. Hybrydowe limity ataku

    15. 1 Wartości graniczne wewnątrz

    Zależność od jakości listy słów : jeśli słowo podstawowe nie znajduje się w liście słów, hybryda nie może działać. Hasło oparte na bardzo specjalistycznym pojęciu (neologizm, niejasny termin techniczny, słowo rzadkiego języka) może się oprzeć, jeśli nie jest on obecny we wszystkich powszechnych listach słów. Niepełne pokrycie transformacji : nawet OneRuleToRuleThemAll z regułami 52k nie obejmuje 100% możliwych do wyobrażenia transformacji. Niektóre bardzo rzadkie transformacje (podstawy 64 częściowe encodings, wymyślone wzory) unikają zasad. Połączenie eksplozji z długą listą słów Przy 2,000 GH / s (MD5), to trwa ~ 250 sekund - ale z bcrypt (69 kH / s), ~ 230 000 lat. Skalability hybrydy jest ograniczony przez długość listy słów i powolność algorytmu haszu.

    15.2 Co Time2Crack nie przechwytuje

    Context Wordlist : atakujący skierowany do konkretnej firmy będzie budować listę słów z nazwą firmy, produkty, nazwy pracowników, terminy biznesowe. "Videult2024!" zostanie złamana natychmiast przez atakującego celującego Renault - ale Time2Crack nie modeluje tego kontekstu (jest to rola ataku "Targeted OSINT"). Złożone zasady multipass Niektóre hasła opierają się best64, ale poddają się regułom dwupasowym (zastosować jedną zasadę, a następnie zastosować inną zasadę na wynik). Efekty i zapamiętywanie pamięci : hashcat utrzymuje tabelę kandydatów już przetestowanych, aby uniknąć duplikatów, co przyspiesza działa w praktyce. Nie wzorowane w Time2Crack (konserwatywny).

    15.3 Przypadki, w których hybryda jest przeszacowana

    Time2Crack może przecenić prędkość hybrydową w dwóch przypadkach:

  • Długie hasła Hasło 20- znakowe oparte na słowniku słów ("includsibleities1!") jest wykrywane jako słownik, ale narzędzia hybrydowe zwykle filtrują kandydatów zbyt długo. Prawdziwa przestrzeń klawiszowa jest być może 10 × większa.
  • Języki o bogatej morfologii Turecki, fiński, węgierski mają bardziej złożone listy słów. "Güneş2024" może przejść pod radary, jeśli turecka lista słów nie zawiera wszystkich form morfologicznych.

  • 16. Skuteczna obrona

    16.1 Co opiera się hybrydyzacji

    Atak hybrydowy zawiedzie, jeśli hasło nie pochodzi z istniejącego słownikaSkuteczne strategie:

    Hasła losowe "xK9 # mQ7 @ vP2!" nie zawiera słownika root. Żadna reguła hybrydowa nie może go wygenerować. Generatory haseł : menedżerowie haseł (Bitwarden, 1Hasło, KeePass) generują losowe ciągi. Passphrases of really random words : "tabouret- marmot- ginger- flash" - cztery przypadkowe słowa. Atak hybrydowy w trybie klasycznym nie generuje kombinacji 4 słów (jest to rola combinatora). Passphrase opiera się standardowej hybrydy.

    16. 2 Czym NIE jest oporność na hybrydę

    Najczęstsze strategie "wzmacniania" nie sprzeciwiają się:

    StrategiaPrzykładOporność To...Czy.../ Kapitalizacja pierwszej literySłoneczkoArtykuł c, wiersz 2 Dodaj cyfrę"sunshine1"Artykuł $1, wiersz 4 Dodaj symbol"Słoneczko!"Artykuł $!, wiersz 6 Zastąp e → 3"Suns3ine"Artykuł s e 3, top- 20 Połącz wszystkie"Suns3ine!"Reguła złożona, top-100 Wybierz rzadkie słowo"Papillon123" Podwójne słowo"Słońce"Artykuł d, top- 30 Cofnij"enihsnus"Artykuł r, top-15 Wniosek Każda strategia oparta na "weź słowo + zmodyfikuj go" jest podatna na hybrydę. Wyjątkiem jest tak skomplikowana i rzadka modyfikacja, że nie jest ona objęta żadną regułą - ale jeśli użytkownik musi pamiętać o tej złożonej transformacji, zazwyczaj kończy wybierając coś przewidywalnego.

    16.3. Wytrzymałe algorytmy haszu

    Nawet jeśli hasło jest wrażliwe na hybrydę strukturalną, algorytm haszu może sprawić, że atak będzie ekonomicznie niewykonalny:

    AlgorytmCzas na DICT (zgadywanie 8k)Ćwicz atak To...Więc...To... MD5 / NTLM< 1 nanosekundaNatychmiastowy SHA- 25630 nanosekundNatychmiastowy bcrypt koszt 10- 0.12 sekundyTrivial bcrypt koszt 1432 sekundyStopniowe Argon2id (domyślnie)10 sekundStopniowe Argon2id (silny parametr)100 sekundPowoli, ale możliwe. Argon2id z wysokimi parametrami (t = 4, m = 65536) jest jedynym algorytmem, który sprawia, że hybryda jest bardzo droga, nawet na słabych haseł.

    16. 4 Zalecenia praktyczne

  • Użyj menedżera hasła : generuje czysty losowy, nieobowiązujący hybryda
  • W razie potrzeby : 4 + słowa faktycznie losowe passphrase (z EFR)
  • Nigdy "zabezpieczyć" słowo przez podstawienie : hybryda automatycznie generuje je
  • Wymagany koszt bcrypt ≥ 12 lub Argon2id strona serwera: jedyny prawdziwy wolniejszy
  • Włącz MFA : sprawia, że kraking offline teoretyczny bez wpływu operacyjnego

  • 17. Referencje

    Publikacje akademickie

    Klein, D.V. (1990) "Foiling the Cracker": Badanie bezpieczeństwa haseł i ulepszeń Proceedings of the USENIX Security Workshop, 1990. - Pierwsze badanie empiryczne określające wpływ zasad mutacji na pokrycie pękające. Zauważa, że 56% haseł jest kruchych z słownikiem + proste transformacje. Weir, M., Aggarwal, S., de Medeiros, B., & Globek, B. (2009) Hasło Śledzenie Korzystanie Probabilistic Context- Free Grammars IEEE Symposium on Security and Privacy (S & P), 2009. - Założony model PCFG i ważny przez sposób, że zasady hashcat obejmują 78% ludzkich transformacji zaobserwowanych w RockYou. Ma, J., Yang, W., Luo, M., & Li, N. (2014) Badanie probabilistycznych modeli haseł Sympozjum IEEE na temat bezpieczeństwa i prywatności (S & P), 2014. - Bezpośrednie badanie referencyjne dla Time2Crack: empiryczny pomiar położenia mediany (500 dla top- 100, 2000- 15000 dla bieżącego przemówienia) w hybrydowym skanowaniu uporządkowanym przez prawdopodobieństwo na 10M prawdziwych haseł. Durmuth, M., Chaabane, A., Perito, D., & Castelluccia, C. (2015) Podczas spotkań Prywatności Bezpieczeństwo: Leveraging Dane osobowe do śledzenia haseł ESORICS 2015. - Porównaj zasady JtR vs Hashcat vs PCFG. Zawiera, że best64 przewyższa PCFG o 12% na RockYou. Veras, R., Collins, C., & Thorpe, J. (2014) O semantycznych wzorach haseł i ich wpływie na bezpieczeństwo NDSS 2014. - Analiza języka wzorców semantycznych. Ur, B., Bees, J., Segreti, S. M., Bauer, L., Christin, N., & Cranor, L. F. (2015) Czy percepcje użytkowników pasujące do rzeczywistości bezpieczeństwa hasła? ACM CHI 2015. - Wykazuje, że użytkownicy systematycznie przeceniają siłę zmutowanych haseł. "P @ ssw0rd" otrzymuje subiektywny wynik "silny", ale jest pęknięty w < 1 s. Wheeler, D.L. (2016) zxcvbn: Szacunkowa moc hasła w budżecie 25. USENIX Sympozjum Bezpieczeństwa, 2016. - Zmuszanie biblioteki do wykrywania zasad mutacji.

    Konferencje i prezentacje przemysłowe

    Gosney, J (2012)
    8x Nvidia GTX 580 Cluster Hashcat Stopy / LinkedIn crack session Passwordscon 2012, Oslo. - Document the LinkedIn crack: best64 + wordlist 3.5M = 224M candidates, 90% cracked in 6 days.KEYSPACEFULL = 128M. Löfstrand, K. (2013) best64.rule - Empiryczny wybór 64 zasad hashcat Wewnętrzne, opublikowane na GitHub. - Zestaw 64 zasad wybranych empirycznie na RockYou, aby zmaksymalizować crack rate rate. Steube, J. (2016- obecny) Hashcat Zaawansowane odzyskiwanie haseł https: / / hashcat.net / hashcat / - Oficjalna dokumentacja trybu -a 0, -a 6, -a 7. Składnia zasad. Oficjalne kryteria GPU na 12 × RTX 4090. NotSoSecure (2019) OneRuleToRuleThemAll - zestaw zasad hashcat generowanych przez ML- https: / / github.com / NotSoSecure / hasłokrakingzasady - 52 218 zasad generowanych przez automatyczne uczenie się na korpusie pękniętych haseł.

    Narzędzia odniesienia

    John Rozpruwacz (Solar Designer, 1996- obecny) https: / / www.openwall.com / john / - Pionier z listy słów + zasady hybrydowe. Składnia JtR zawsze używane równolegle z Hashcat. Hashcat (Steube, 2009- obecny) https: / / hashcat.net / hashcat / - Referencyjna implementacja GPU. Tryby -a 0 / 6 / 7 dla hybryd. best64 zintegrowany. Lista słów RockYou (2009) 14,3M jasnych haseł. Standardowe korby kalibracyjne dla wszystkich zestawów reguł hybrydowych. Sektory (Daniel Miessler, 2012- obecny) https: / / github.com / danielmiessler / SecLists - Gromadzenie listy słów według języka, domeny, tematu. Główne źródło Time2Crack słowników.

    Źródła internetowe cytowane w aplikacji Time2Crack

    Chick3nman (kryteria / zasady dla Hashcat). https: / / gist.github.com / Chick3nman / 32e662a5bbb63bbbc4f51b847bb4222fd - Powiązane źródło descHybrid (app.js) dla rzędu wielkości zastosowanych zasad mutacji. IEEE Xplore (odniesienie hybrydowe). https: / / ieeexplore.ieee.org / document / 6956583 - Powiązane źródło descHybrid (app.js) dotycząca empirycznej skuteczności zmutowanych haseł.
    Dokument wygenerowany w ramach projektu Time2Crack - 2026 Zob. także: BRUTEFORCEATTACKEXPLAINED.md, MARKOVATTACKWYKRYTO.ATTACKEXPLAINED.md *