Atak Markova (probabilistyczny) - kompleksowa operacja

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

Spis treści

  • Przegląd
  • Tło historyczne i akademickie
  • Podstawy matematyczne: łańcuchy Markova
  • Architektura narzędzia tnącego Markov
  • Faza 1 - szkolenie korpusu prawdziwych haseł
  • Etap 2 - Uporządkowana generacja kandydatów
  • Ograniczenie przestrzeni badawczej: klucz do skuteczności
  • Notowalne zmiany i implementacje
  • Zachowanie wobec różnych typów haseł
  • Integracja z Time2Crack: Modelowanie i Parametry
  • Porównanie z innymi atakami probabilistycznymi
  • Granice ataku Markova
  • Skuteczna obrona
  • Odniesienia

  • 1. Przegląd

    Markov Attack to metoda łamania haseł probabilistyczne i statystyczne Zamiast testować wszystkie możliwe kombinacje w porządku alfabetycznym - tak jak robi to surowa siła - sortuje kandydatów przynajmniej z najbardziej prawdopodobnych, koncentrując wysiłek obliczeniowy, w którym faktycznie znajdują się ludzkie hasła.

    W prostych słowach : napastnik, który ma wystarczająco dużo GPU i dobrze wyszkolony model Markov będzie testować "letmein", "p @ sssword" i "sun2024" przed testowaniem "aaaaaa", "aaaaab" lub "xqzfkw" - ponieważ ludzie tworzą hasła, które wyglądają jak słowa, a nie biały hałas. Sprawność zmierzona : Dürmuth et al. (2015) Research on the RockYou corpus (14 million haseł) pokazuje, że model Markov 5 redukuje rzeczywistą przestrzeń wyszukiwania do 0,6% przestrzeni brutto dla haseł o typowej strukturze ludzkiej - redukcja o 99,4%.

    2. Tło historyczne i akademickie

    2.1 Początki

    Zastosowanie kanałów Markova do łamania haseł jest wcześniej niż formalne publikacje akademickie. Ofensywni specjaliści bezpieczeństwa stosowali podobne modele od 2000 roku, ale rygorystyczna formalizacja pochodzi głównie z 2010 roku.

    Chronologia etapów pośrednich : RokZdarzenie Więc...To... 2005Nakashima & Oyama: pierwsze formalne zastosowanie n-gramów do haseł 2009Weir et al. (IEEE S & P): PCFG - bezpośredni konkurent, pozycja prawdopodobieństwa strukturalnego 2012Ma et al. (USENIX Security): Badanie porównawcze modeli probabilistycznych na hasłach 70M 2013Durmut: pierwsze analizy OMEN na kilku ciałach 2015Dürmuth, Angelstorf, Horsch, Nürnberger, Rüegge: OMEN (ESORICS 2015) - główny punkt odniesienia akademicki 2016Wheeler (zxcvbn) potwierdza skuteczność n-gramów w szacowaniu rzeczywistej entropii 2018OMEN +: ulepszona wersja z wygładzaniem i interpolacją 2019- 2022Praca hybrydowa Markov + sieci neuronowe (PassGAN, FuzzyPSM)

    2.2 Organ referencyjny

    Szkolenie modelu Markov opiera się na bazach haseł ze znanych wycieków danych:

  • LinkedIn (2012) : 6,5 miliona niesolonych haszów SHA-1 (w tym 4,4M pękniętych)
  • Adobe (2013) : 153 mln identyfikatorów (3DES hashs - cracked by frequency analysis)
  • Kolekcja # 1- 5 (2019) : 2,7 miliarda par identyfikujących / haseł
  • Czy zostałem zarzucony (2024) : ~ 14 mld pojedynczych danych zagregowanych
  • Korpus ten ujawnia rzeczywisty statystyczny rozkład haseł ludzkich, który różni się radykalnie od jednolitego rozkładu.


    3. Podstawy matematyczne: łańcuchy Markova

    3.1 Definicja formalna

    Łańcuch zamówień Markov k na alfabecie k Poprzednie znaki:

    P(cₙ | c₁c₂...cₙ₋₁) = P(cₙ | cₙ₋ₖ...cₙ₋₁)

    Dla haseł zazwyczaj zawiera 95 znaków ASCII (26 znaków dolnych + 26 znaków górnych + 10 cyfr + 33).

    Zarządzenie 1 (bigram) :
    P("password") = P("p") × P("a"|"p") × P("s"|"a") × P("s"|"s") × ...
    Zamówienie 5 (optymalne według Dürmuth 2015) :
    P("password") = P("p") × P("a"|"p") × P("s"|"pa") × P("s"|"pas")
                    × P("w"|"pass") × P("o"|"passw") × P("r"|"passwo")
                    × P("d"|"passwor")

    Zamówienie 5 rejestruje konteksty takie jak "po" passw ", najbardziej prawdopodobnym następstwem jest" o "- informacje niedostępne dla modelu zlecenia 1.

    3.2 Matryca przejściowa

    Dla rzędu 1 przez 95 znaków macierz przejściowa jest wielkości 95 × 95 = 9,025 wejśćDla porządku 5, to idzie do 955 × 95 = ~ 7,7 × 1010 teoretycznych wejść - ale większość zamówień n- grams 5 nigdy nie pojawia się w rzeczywistych danych. Wdrożenia używać pustych struktur danych (próby, hash maps) do przechowywania tylko obserwowane n- grams.

    3.3 Prawdopodobieństwo i sortowanie dziennika

    Aby uniknąć płynących przekroczeń na 8 + -znaków haseł (prawdopodobieństwa rzędu 10 − 20), narzędzia pracują w prawdopodobieństwo logowania :

    log P("password") = log P("p") + log P("a"|"p") + log P("s"|"a") + ...

    Ta wartość jest wynik Markov Kandydaci są generowani w porządku malejącym wyniku, tj. co najmniej prawdopodobne.

    3.4 Dlaczego Zamówienie 5?

    Badania empiryczne (Dürmuth 2015, potwierdzone przez Ma et al. 2012) pokazują, że:

  • Zamówienie 1 : rejestruje częstotliwości poszczególnych znaków (e, a, o wspólne w małych), zmniejszenie ~ 50%
  • Zamówienie 2 : rejestruje wspólne bigramy (pa, ss, wo, rd), redukcja ~ 75%
  • Zamówienie 3 : rejestruje trygramy (nie, dupa, ssw), redukcja ~ 90%
  • Zamówienie 4 : zmniejszenie zwrotu start, redukcja ~ 95%
  • Zamówienie 5 : Optymalne empiryczne na RockYou, redukcja ~ 99,4%
  • Zamówienie 6 + : nadmiarowość, model zapamiętuje hasła treningowe bez uogólnienia

  • 4. Architektura narzędzia tnącego Markov

    4.1 Główne elementy

    ┌─────────────────────────────────────────────────────────────┐
    │                    OUTIL DE CRACKING MARKOV                 │
    ├─────────────────┬───────────────────┬───────────────────────┤
    │  Phase          │  Composant        │  Rôle                 │
    ├─────────────────┼───────────────────┼───────────────────────┤
    │  Entraînement   │ Corpus Parser     │ Lit les mots de passe │
    │                 │ N-gram Counter    │ Compte les transitions│
    │                 │ Probability Table │ Normalise en probas   │
    │                 │ Model Serializer  │ Sauvegarde le modèle  │
    ├─────────────────┼───────────────────┼───────────────────────┤
    │  Génération     │ Candidate Gen     │ Énumère par score     │
    │                 │ Length Controller │ Filtre par longueur   │
    │                 │ Threshold Filter  │ Coupe les improbables │
    ├─────────────────┼───────────────────┼───────────────────────┤
    │  Attaque        │ Hash Engine       │ Compare aux cibles    │
    │                 │ GPU Interface     │ Hashcat backend       │
    └─────────────────┴───────────────────┴───────────────────────┘

    4.2 Integracja z Hashcatem

    Najbardziej rozpowszechnione wdrażanie w praktyce jest poprzez Tryb Hashcat stdin (-a 0 z zewnętrznym generatorem) lub za pośrednictwem modułów Pythona jako statsgen (z zestawu narzędzi PACK):

    # Exemple d'attaque Markov pratique
    python statsgen.py rockyou.txt --output markovmodel.stats
    python maskgen.py markovmodel.stats | hashcat -a 0 -m 1000 targethashes.txt

    Dedykowane narzędzia, takie jak OMEN (Open Markov Estimator of Next haseł) bezpośrednio generuje listy posortowanych kandydatów.


    5. Faza 1 - Ciało prawdziwego szkolenia hasła

    5.1. Ekstrakcja n-gramów

    Dla każdego hasła w korpusie, wszystkie n-gramy są ekstrahowane (z markerem startowym). ^ i koniec $):

    Przykład "hello" (kolejność 2):

    ^h, he, el, ll, lo, o$

    Przykład "P @ ss1!" (kolejność 2):

    ^P, P@, @s, ss, s1, 1!, !$

    5.2 Liczenie i normalizacja

    Dla każdego kontekstu (n-1 poprzednich znaków), zdarzenia każdego następującego znaku są liczone i normalizowane:

    Contexte "pa" → {s: 847, r: 12, t: 8, l: 3, ...}
    → P(s|pa) = 847/870 = 0.973
    → P(r|pa) = 12/870 = 0.014

    Te dystrybucje ujawniają ludzkie nawyki językowe: po "pa", ludzie piszą masywnie "s" (hasło, pass, pablo...).

    Wygładzanie

    Problem nieużywanych n-gramów: jeśli "xq" nigdy nie pojawia się w korpusie, P (c) xq) = 0 dla każdego c - który blokuje generację.

  • Add- one (Laplace) : dodać 1 do wszystkich kont
  • Good- Turing : redystrybucji prawdopodobieństwa n-gramów widzianych raz do tych nigdy nie widzianych
  • Kneser- Ney : state of the art method, used in OMEN +
  • Wygładzanie pozwala również modelowi na generowanie kandydatów z korpusu szkoleniowego - co jest kluczowe dla pokrycia nieco nowych haseł.

    5.4 Co model uczy

    Po treningu na RockYou model 5-rzędowy Markov internalizuje wzorce takie jak:

  • Przyrostki cyfrowe : liczby pojawiają się masowo na końcu hasła (→ "123", "2024", "1!")
  • Bieżące początki : "pa", "my", "lo", "ch", "123", "abc" to częste początki
  • Płatność początkowa : uppercase w pierwszej pozycji jest znacznie bardziej prawdopodobne niż w środku łańcucha
  • Rzadkie symbole w środku : "@", "#", "!" pojawiają się głównie w zastępstwie liter lub przyrostek
  • Ludzkie powtórzenia : "aa", "ll", "ee" są częstsze niż duplikaty rzadkich spółgłosek

  • 6. Etap 2 - Porządnie generowanie kandydatów

    6.1 Problem wyliczenia punktów

    Nie możemy po prostu obliczyć prawdopodobieństwa wszystkich możliwych kandydatów (948 x 6 × 1015 dla 8 czołgów), a następnie uporządkować je.

    Roztwór: Heuristyczne poszukiwania z priorytetowym ogonem Algorytm jest podobny do Dijkstry:

  • Inicjalizacja linii z najbardziej prawdopodobnymi początkami (^a, ^p, ^1...)
  • Na każdym etapie depilacja najbardziej prawdopodobnego kandydata częściowego
  • Rozszerzyć go o każdy możliwy znak, obliczyć wynik rozszerzonego kandydata
  • Jeżeli osiągnięta została docelowa długość emisji, proszę wydać
  • Jeśli nie, zawróć
  • Podejście to zapewnia w przybliżeniu malejące sortowanie bez zapamiętywania całej przestrzeni.

    Progi progowe

    Aby uniknąć generowania miliardów nieprawdopodobnych kandydatów, Minimalny wynik poniżej którego eliminowany jest częściowy kandydat (ukośnik).

    Si log P(candidatpartiel) < THRESHOLD → abandon de cette branche

    Próg jest krytycznym parametrem: zbyt wysoki → można przegapić hasła na granicy; zbyt niski → można wygenerować zbyt wiele kandydatów i spowolnić atak.

    6.3 Zarządzanie długością

    Modele Markov są szkolone i ogólnie działają o stałej długościTypowy atak:

  • Długość 6: generować N kandydatów w kolejności malejącej prawdopodobieństwa
  • Długość 7: Idem
  • Długość 8: Idem (najczęściej w ciałach)
  • Długość 9- 12: zmniejszenie zasięgu
  • Rozkład długości w RockYou: 8 zbiorników = 24%, 7 zbiorników = 21%, 9 zbiorników = 12%, 6 zbiorników = 10%...


    7. Zmniejszenie przestrzeni badawczej: klucz do skuteczności

    7.1 Obliczenie empiryczne (Dürmuth 2015)

    Hasło 8 znaków z pełnym alfabetem (94 zbiorniki):

    MetodaPrzestrzeń badawczaWspółczynnik redukcji Czy...- Tak.- Tak. Moc brutto948 6 × 10151 × (odniesienie) Zamówienie Markov 1~ 3 × 1015~ 2 × Zamówienie Markov 3~ 6 × 1013~ 100 × Zamówienie Markov 5~ 3.6 × 1010~ 166 000 × Markov Order 5 (typowy człowiek)~ 4 × 107- 150 milionów ×

    Różnica między "zredukowaną przestrzenią" a "typową przestrzenią ludzką" może być wyjaśniona faktem, że prawdziwe ludzkie hasła są skoncentrowane w top- k% najprawdopodobniej W zależności od modelu.

    7.2 Dlaczego ludzie są przewidywalni

    Czynniki przewidywalności stosowane przez Markova:

    Ograniczenia językowe haseł pochodzą z istniejących słów. "letmein", "sunshine", "iloveyou" postępują zgodnie z fonotycznymi zasadami angielskiego - przejścia liter są wysoce prawdopodobne. Ograniczenia kognitywne Ludzie nie pamiętają naprawdę losowych sekwencji. Przypadkowe hasło takie jak "xqzfw9 @" rzadko jest wybierane spontanicznie. Wzory kulturowe Wzory te tworzą klastry o dużej gęstości w przestrzeni hasła. Przewidywalne substytucje Zmiany te są tak powszechne, że stanowią część modelu. Umiejscowienie numerów i symboli : liczby na końcu hasła (passwd123) są 10 × częstsze od liczb na początku. Symbole sufiksu (passwd!) są 5 × częstsze niż w pozycji centralnej.

    7.3 Przypadek szablonów klawiatury

    Sekwencje klawiatury (qwerty, asdf, zxcv, 1234, azerty...) są szczególnie narażone.

  • Przejścia znaków podążają za ograniczeniami topologii klawiatury
  • Z każdego klucza, tylko 4- 8 bezpośrednich sąsiadów są istotne
  • Model Markov napędzany ciałami, w tym te wzorce, osiąga redukcję 99, 7% (w porównaniu z 99,4% w przypadku ogólnych słów ludzkich)
  • W Time2Crack (wersja bieżąca) rozróżnienie to nie jest już stałe łożysko. Model Markov v2 zawiera kbPat jako sygnał w estymatorze rankingu (markovExpectedGuesses) następnie bezustannie interpole między "ludzkimi" i "losowymi" reżimami.


    8. Notowalne zmiany i implementacje

    8.1 OMEN (Open Markov Estimator kolejnych haseł)

    Stworzony przez : Dürmuth, Angelstorf, Horsch, Nürnberger, Rüegge (ESORICS 2015) Dostępność : Open source (GitHub) Główne innowacje : zoptymalizowany harmonogram według poziomu (podsumowanie według stopni prawdopodobieństwa)

    OMEN wykorzystuje dyskrecjonalizację prawdopodobieństwa w poziomy całkowite przyspieszenie generacji:

  • Każdy n-gram otrzymuje wynik liczby całkowitej (0 = bardzo prawdopodobne, 10 = mało prawdopodobne)
  • Suma wyników hasła jest jego ogólna ocena
  • Hasła są generowane w kolejności rosnącej ogólnego wyniku
  • Podejście to elegancko rozwiązuje problem uporządkowanego wyliczania bez kosztownego priorytetowego ogona.

    8.2 OMEN +

    Rozszerzenie OMEN o:

  • Wygładzanie Kneser- Ney lepsze uogólnienie
  • Interpolacja wieloporządkowa : łączy przewidywania zamówień 3, 4 i 5
  • Dostosowanie progu na podstawie dystrybucji izotopów empirycznych
  • Zgłoszone wyniki: + 15 do + 20% pęknięte hasła vs oryginalne OMEN z równym budżetem.

    8.3 Statsgen / PACK (analiza haseł i zestaw do łamania)

    Stworzony przez : Peter Kacherginsky (iphelix) Podejście : lżejszy niż OMEN, generuje kompatybilne maski i statystyki Hashcat Typowe zastosowanie : analiza zestawu pękniętych haseł w celu dostosowania przyszłych ataków

    8.4 JohnTheRipper - tryb Markov

    John TheRipper integruje Tryb rodzimy Markov (opracowany przez Samuele Giovanni Tonon):

    john --markov --min-length=6 --max-length=8 hashes.txt

    Parametr --markov-threshold (0- 400): kontroluje próg odcięcia. 150 = zalecany parametr standardowy.

    Tryb JtR Markov wykorzystuje wstępnie obliczone statystyki przechowywane w plikach .mkv (pliki statystyk markov) generowane przez calcstat.

    8.5 Modele hybrydowe Markov

    Zasady Markov + : generować kandydatów Markov, następnie stosować zasady transformacji Hashcat Słownik Markov + : użyj haseł Markov jako podstawy ataków hybrydowych Markov + PCFG : połączenie porządku probabilistycznego Markov ze stresem strukturalnym PCFG

    Te hybrydyzacje są wykorzystywane w profesjonalnych konfiguracjach krakingu do maksymalizacji pokrycia budżetu CPU / GPU.

    8.6 Nowoczesne modele językowe (LLM / LSTM) - następcy Markova

    Sieci LSTM i Transformer można postrzegać jako uogólnienia kanałów Markov:

  • Markov order k = k żetony stałe okno kontekstowe
  • LSTM = zmienne i nieograniczone okno kontekstowe (pamięć długookresowa)
  • Transformacja = ogólna uwaga na całą sekwencję
  • PassGAN (2017), FLA (2019), PassBERT (2022) przekroczył klasyczne modele Markov o 20- 30% w skali crack na nowoczesnych ciałach.


    9. Zachowanie przed różnymi rodzajami haseł

    9.1 Hasła z słów naturalnych

    Przykłady : sunshine, letmein, dragon, iloveyou Wrażliwość : extreme Mechanizm : model przypisuje bardzo wysokie prawdopodobieństwo sekwencjom obecnego języka angielskiego. 0, 001% wygenerowanych kandydatów. Czas : milisekundy na MD5 / SHA-1

    9.2 Słowa z podstawieniem leetspeak

    Przykłady : p @ ssw0rd, L3tm3In, $unsh1ne Wrażliwość : wysoki Mechanizm Model nauczył się, że "@" często następuje po "p" (ponieważ "p @ ss"... jest bardzo powszechne w ciałach), że "0" często następuje po "w" (w0rd...) itp. Najczęstsze substytucje są zintegrowane z prawdopodobieństwem przejścia. Czas : sekundy do minut

    9.3 Słowa z przyrostkiem cyfrowym

    Przykłady : password123, sunshine2024, dragon1! Wrażliwość : wysoki Mechanizm Liczba przyrostów są tak powszechne, że model ma wysokie prawdopodobieństwo dla litery → przejścia na końcu sekwencji. "123", "1", "2024", "12" są najbardziej prawdopodobne przyrostki. Czas : sekundy do kilku minut

    9.4 Nazwy i nazwy właściwe

    Przykłady : Thomas92, AnneM @ rie, NICOLAS Wrażliwość umiarkowany do wysokiego Mechanizm : Nazwy zwyczajne (po angielsku) są dobrze reprezentowane w korpusie referencyjnym. Mniej pospolite nazwy w korpusie angielskim (francuskim, polskim itp.) korzystają mniej z modelu. Czas : minuty do godzin w zależności od popularności imienia

    9.5 Przemijające słowa o pozornej strukturze losowej, ale mnemoternic

    Przykłady : Truub4dor & 3 (artykuł XKCD), Il0v3myC @ t! Wrażliwość umiarkowane Mechanizm Hasła te mają ludzką strukturę (słowo bazowe + substytuty + przyrost), ale podstawa i konkretne transformacje nie są w górze-k kandydatów Markov. Model ostatecznie do nich dotrze, ale wpadają w 10- 30% przestrzeni. Czas : godziny do dni według algorytmu długości i haszu

    9.6 Wzory klawiatury

    Przykłady : qwerty, 1234567, azerty, qlashdzxc Wrażliwość : ekstremalne (gorsze niż słowa naturalne) Mechanizm : przejścia klawiszowe są tak reprezentowane w korpusie, że model klasyfikuje je wśród pierwszych tysięcy kandydatów - czasami pierwszych dziesiątek. Czas : mikrosekundy do milisekund

    9.7 Naprawdę przypadkowe hasła

    Przykłady : xQz7 @ mK9, 4 # pL $2nR, kRf9! Wrażliwość : niskie do zera Mechanizm : Przejścia znaków w tych hasłach mają bardzo niskie prawdopodobieństwo w modelu wytrenowanym na ludzkich hasłach. Znajdują się one w ostatnich procentach wygenerowanej przestrzeni. Zachowanie Prawdziwym "kosztem" bezpieczeństwa jest entropia. Czas : porównywalne lub większe niż siła brutto

    9.8 Passphrases

    Przykłady : horse-battery- staple- corrective, monchienestlouisXIV Wrażliwość : zmienna Złożony mechanizm :
  • Model Markov może uchwycić przejścia między słowami w krótkim passphrase (2 słowa), jeśli te kombinacje są wspólne w korpusie
  • Ale na długie passphrases (4 + słowa), przestrzeń kandydacka zamówiona przez Markova dotrze do nich tylko po wyczerpaniu wszystkich typowych krótkich haseł
  • Atak kombinator jest ogólnie bardziej skuteczny niż Markov na passphrases

  • 10. Integracja z Time2Crack: Modelowanie i Parametry

    Ogólna logika obliczeń (v2)

    Time2Crack teraz modele Markov w spodziewany stopień (oparte na rankach), a nie na stałych współczynnikach redukcji.

    Linia obliczeniowa:

  • Unicode tokenizacji w segmentach L/D/S,
  • oszacowanie ludzkiej rangi przez szkielet + kształt + rzędy żetonów,
  • modulacja za pomocą sygnałów strukturalnych (kbPat, seq, dt, rep, hybridVuln),
  • ciągła interpolacja w kierunku systemu "losowo-podobnego" według charset oraz długość,
  • konwersja czasu poprzez budgetTime(rangestime, vitesse).
  • 10.2 Unicode Tokenizacja i kalibrowany profil według języka

    Model Markov v2 wykorzystuje klasy Unicode (\p{L}, \p{N}, inaczej symbol) i skalibrowany profil na język (załadowany od data/markov-calibration.json, z wewnętrznymi zapasami).

    Profil zawiera:

  • skeletonRanks (L8D2, L8D2S1,...),
  • shapeRanks (LD, LDS,...),
  • tokenRanks według klasy / długości,
  • Mnożniki językowe (shapeMultipliers),
  • mnożniki sygnału (signalMultipliers).
  • 10.3. Interpolacja ciągła (koniec stromych progów)

    Stary model zastosował łożyska (0.003 / 0.006 / 0.25 / 0.9). Model v2 zastępuje tę logikę ciągłą interpolacją pomiędzy:

  • humanRank (prawdopodobny obszar strukturalny),
  • randomRank (obszar bliski surowi, ograniczony).
  • Losowa waga jest ciągłą funkcją długości, czołgu i wytrzymałości sygnałów ludzkich, unikając w ten sposób sztucznych przerw.

    10.4 Ocena zaufania i możliwości zastosowania

    Time2Crack Scoring Model (funkcja annotateScenarioApplicability()) przydziela Markovowi:

    Podstawowe zaufanie : 0,75 (linia 4800) Interpretacja: Uważa się atak Markov umiarkowanie niezawodny - bardziej wiarygodne niż szacunki neuronowe (0,7) lub PRINCE (0,7), mniej niż słownik (0,9) lub tabele rowków (0,95). Ocena zastosowania (linia 4873- 4874):
    case "markov":
      return context.looksHuman ? 0.76 : 0.34;
  • looksHuman = true → wynik 0.76: Atak Markov jest bardzo ważne, model będzie wykorzystywać ludzkie regularności
  • looksHuman = false → wynik 0.34: dotyczy, ale bez większych korzyści nad brutalną siłą
  • Wynik dowodowy (linia 4829- 4830):
    case "markov":
      return Number(!!context.looksHuman) + Number(!!context.kbPat)
           + Number(!!context.seq)        + Number(!!context.rep);
    Każdy sygnał "ludzkiego charakteru" hasła zwiększa oczywisty wynik Markova.

    10.5 Regulacja HF

    Z Markov v2, sygnały strukturalne są już zintegrowane z szacowaną rangą. Dostosowanie HF jest zatem neutralne dla Markov w celu uniknięcia podwójnego liczenia.

    10.6 Priorytet w przerwie

    Gdy kilka ataków daje podobne czasy (< 1ms różnicy), Time2Crack wybiera najbardziej istotne zgodnie z semantycznym priorytetem:

    const tieBreakPriority = {
      // ...
      markov: 8,    // Statistical n-gram — broad coverage
      // ...
    };

    Markov jest użytecznym atakiem uzupełniającym, który wykorzystuje statystyczną regularność. Ma pierwszeństwo przed siłą brutto dla haseł z ludzką strukturą, ale daje pierwszeństwo słownikowi i atakom hybrydowym, które są bardziej bezpośrednie.

    10. 7 Przypadek osłabienia ultradźwięków

    Dla ultraniskich haseł (wykryte przez isWeakPassword()), Markov wykorzystuje czas oparty na minimalnej randze (weakGuessTime) raczej niż stała stała:

    if (weak) {
      rows.push({ ..., sec: weakGuessTime(a.rate), note: t("nWeakPassword"), cat: "markov" });
    }

    Uzasadnienie: ultraniskie hasło (hasło, 123456, qwerty...) znajduje się w absolut Przestrzeń Markov - będzie najpierw testowany, dokładność obliczeń jest nieistotna.


    11. Porównanie z innymi atakami probabilistycznymi

    11. 1 Markov vs PCFG

    WymiarMarkov PrzewodniczącyPCFG To...Bo...Czy... Jednostka analitycznaIndywidualne zmiany znakówStruktury segmentu (L / D / S) Informacje przechwyconeLokalne prawidłowości (n- gram)Globalny (gramatyka) SiłaNaturalne słowa, ciągłe wzorySłowa + liczby, struktury kompozytowe LimitNie obejmuje struktur globalnychNie przechwytywać lokalnych przejść KomplementarnośćIdealny do czystych słówIdealny dla Password123 Optymalny przykład"słońce"Sunshine # 93 Zamówienie w Time2CrackMarkov = 8, PCFG = 6PCFG dokładniejszy, jeśli wykryta struktura

    11.2 Markov vs.

    WymiarMarkov PrzewodniczącyRule- based To...Bo.../ PodejścieGeneracja ab initio probabilisticTransformacja istniejącego słownika ZakresWszystkie możliwe hasłaTłumaczenia słowników SiłaRzadko lub nieznacznie niesłowne słowaTradycyjne przekształcenia znanych słów LimitMniej skuteczne niż dyktator + zasady dla obecnych mutacjiZależy wyłącznie od jakości słownika

    11.3 Markov vs Neural Networks (PassGAN, LSTM)

    WymiarMarkov (zarządzenie 5)Sieć neuronalna To...- Nie.- Nie. KompleksowośćO (k ×) przez przewidywanieO (n2 × d) (transformator) Wymagane dane1-10M przykłady wystarczające10M- 1B dla dobrych wyników InterpretabilityOgółem (tabele prawdopodobieństwa)Czarne pudełko OgólizacjaOgraniczone do kontekstu lokalnego kPotencjał ogólny Współczynnik załamaniaOdniesienie+ 20- 30% na nowoczesnych hasłach Prędkość generacjiBardzo szybkoWolniej

    11.4 Globalne pozycjonowanie

    W profesjonalnym procesie krakingu typowa kolejność to:

  • Słownik (lista kredytowa) - znane dokładne hasła
  • Wypychanie kredowe - ponownie używane pary ID / mdp
  • Rozpylanie haseł - to- 20 często
  • Hybryd - zasady dico + Hashcat
  • PCFG - jeśli wykryto strukturę L + D
  • Maska - jeśli wykryto wzorzec pozycyjny
  • Markov Przewodniczący - ogólny zakres statystyczny
  • Neural - jeśli dostępny budżet
  • Moc brutto - ostateczność
  • Markov jest często linia tła front brute force: skutecznie obejmuje ludzkie hasła, które uniknęły bardziej ukierunkowanych ataków.


    12. Granice ataku Markova

    12.1 Zależność od struktury kształcenia

    Model jest tak dobry jak jego korpus. Korpus zdominowany przez angielskie hasła (RockYou, LinkedIn) źle rozumie regularność:

  • Hasła w językach o wysokiej gęstości morfologicznej (polski, czeski, fiński)
  • Hasła oparte na niereprezentowanych kulturach (przetłumaczona mandarynka, romanizowany arabski)
  • Hasła ze specjalistycznych pól niewystępujących w przeciekach (slang medyczny, rzadki żargon techniczny)
  • Roztwór częściowy : szkolenie poszczególnych modeli według języka i dziedziny (podejście wymagające zróżnicowania korpusu).

    12.2 Niezależność międzypozycyjna od długości pasma

    Model Markov 5 widzi nie więcej niż 5 znaków. Dla hasła 12 znaków, nie może korelować 12 znaków z 1. Passphrase jak "stargate2004!" ma globalną strukturę ("słowo + rok +!"), że Markov postrzega lokalnie, ale nie globalnie - PCFG jest tu lepiej.

    12.3 Niewrażliwość na struktury składu

    "HorseStapleBattery" (initial majusculum + 3 concatenated words) jest trudne dla Markova, ponieważ między-słowo przejścia (e → S, e → B) są nieoczekiwane.

    12.4 Przypadkowa nieskuteczność hasła

    Hasło wygenerowane przez /dev/urandom z 12 + alfanumerycznych znaków nie ma struktury exploitable przez Markov. Czas ataku Markov zbiega się do surowej siły.

    12.5 Wrażliwość na uaktualnioną politykę dotyczącą hasła

    Jeżeli organizacja nałożyła ścisłe zasady (długość ≥ 16, obowiązkowy 1 kapitał + 1 cyfra + 1 symbol), wynikające z nich hasła mogą mieć inny podział korpusu szkoleniowego - zmniejszając skuteczność modelu.


    13. Skuteczna obrona

    13.1 Co całkowicie neutralizuje Markova

    Losowe generatory hasła : każdy menedżer haseł (Bitwarden, 1Password, KeePass) z kryptograficznie zabezpieczonym generatorem tworzy sekwencje bez wyzysku struktury przez Markova. Hasło 16 losowych znaków jest poza zasięgiem niezależnie od ataku. Dość długości z losowym : nawet przy zredukowanym zbiorniku (tylko a- z), 16 znaków losowych reprezentuje 26 ^ 16

    13.2 Co znacznie zmniejsza skuteczność leku Markov

    Długie passphrases rzadkich słów : 4 + nietypowe słowa oddzielone są od najlepszych kandydatów Markov, zwłaszcza jeśli słowa pochodzą z różnych języków lub specjalistycznych słowników. Unikaj zwykłych substytutów leetspeak : Substituions a → @, e → 3, itp. są zintegrowane z modelem, ale niestandardowe transformacje (a → Unikaj wzorów klawiatury i słów naturalnych : Największa wrażliwość Markova.

    13.3 Co nie chroni przed Markovem?

    Wymogi dotyczące kompletności (majuskul + cyfra + symbol) : jeśli te elementy są dodawane do słowa naturalnego (P @ ssw0rd!), model rejestruje te wzory. fałszywa ochrona postrzegane. Podstawowe substytucje leetspeak : w pełni uchwycony przez model (przejścia "@" → "s", "3" → "y"...). Dodatki cyfrowe / przedrostki : "word + 123" lub "word + 2024" wzorce są jednymi z pierwszych testowanych.

    13.4 Zalecenie końcowe

    Najskuteczniejszą obroną przed Markovem (i każdym atakiem probabilistycznym) jestwyeliminować wszelkie przewidywalne struktury ludzkieCo oznacza przekazanie hasła do bezpiecznego generatora losowego.


    14. Odniesienia

    Akademika (peer-review)

    Dürmuth, M., Angelstorf, F., Horsch, J., Nürnberger, S., & Rüegge, A. (2015). OMEN: Szybsze Password Guessing Using an Ordered Markov Enurator. Inżynieria Bezpieczne oprogramowanie i systemy (ESSOS 2015), LNCS 8978, pp. 119- 132. → Główne odniesienie do kalibracji probabilistycznej Markova stosowanej w Time2Crack (RockYou 14M, Order 5) Ma, J., Yang, W., Luo, M., & Li, N. (2014). A Study of Probabilistic Password Models. Sympozjum IEEE na temat bezpieczeństwa i prywatności (S & P 2014). → Porównanie empiryczne Markov, PCFG, n-gramy na 70M haseł Weir, M., Aggarwal, S., de Medeiros, B., & Globek, B. (2009). Hasło Śledzenie Korzystanie Probabilistic Context- Free Grammars. Sympozjum IEEE na temat bezpieczeństwa i prywatności (S & P 2009). → Prace założycielskie nad strukturalnymi metodami probabilistycznymi (konkurent Markov) Wheeler, D.L. (2016). zxcvbn: Szacunkowa moc hasła w budżecie. 25. USENIX Sympozjum Bezpieczeństwa. → Potwierdza skuteczność n-gramów dla realistycznego oszacowania siły hasła Pasquini, D., Cianfriglia, M., Ateniese, G., & Bernaschi, M. (2021). Redukcja Bias w Modeling Real- World Hasło Siła poprzez głębokie nauki i Dynamiczne słowniki. 30. USENIX Sympozjum Bezpieczeństwa. → Porównanie ilościowe Markov vs głębokie uczenie się na nowoczesnych ciałach Hitaj, B., Gasti, P., Ateniese, G., & Perez- Cruz, F. (2019). PassGAN: Podejście oparte na głębokim uczeniu się w celu przypuszczenia hasła. ACNS 2019. → Markov Neural Successor, punkt porównawczy Time2Crack descNeural

    Wdrażanie otwartego źródła

    OMEN https: / / github.com / RUB- Syssec / OMEN John TheRipper (tryb Markova) https: / / www.openwall.com / john / doc / MARKOV.shtml PAKK (statsgen / maskgen) https: / / github.com / iphelix / pack Hashcat https: / / hashcat.net / hashcat /

    Źródła ciałka

    RockYou (2009) : 14,3M haseł z sieci społecznościowej RockYou Czy zostałem wrobiony? https: / / haveibeenpwned.com - ~ 14 mld zagregowanych mandatów (Troy Hunt) Sektory : https: / / github.com / danielmiessler / SecLists - słowniki referencyjne i słowniki

    Źródła internetowe cytowane w aplikacji Time2Crack

    Springer (rozdział Markov / probabilistyczne pęknięcia). https: / / link.springer.com / chapter / 10.1007 / 978-3-319-24174-67 → Powiązane źródło descMarkov (app.js) dla skutecznego zmniejszenia przestrzeni badawczej poprzez ustalenie priorytetów statystycznych.
    Dokument wygenerowany dla projektu Time2Crack - ostatnia aktualizacja: 2026- 04- 01 Na podstawie realizacji w app.js (Markov v2 rank-based) i publikacji akademickich cytowanych