Atak Markova (probabilistyczny) - kompleksowa operacja
Dokument referencyjny projektu Time2Crack
Odbiorcy: deweloperzy, badacze bezpieczeństwa, zaawansowani użytkownicy
Spis treści
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:
- RockYou (2009) : 14.3 mln prostych haseł - uniwersalny korpus odniesienia
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:
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ę.
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:
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:
^a, ^p, ^1...)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:
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.
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:
Podejście to elegancko rozwiązuje problem uporządkowanego wyliczania bez kosztownego priorytetowego ogona.
8.2 OMEN +
Rozszerzenie OMEN o:
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ów8.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 PCFGTe 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:
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-19.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 minut9.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 minut9.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 imienia9.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 haszu9.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 milisekund9.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 brutto9.8 Passphrases
Przykłady : horse-battery- staple- corrective, monchienestlouisXIV Wrażliwość : zmienna Złożony mechanizm :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:
L/D/S,kbPat, seq, dt, rep, hybridVuln),charset oraz długość,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,shapeMultipliers),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:
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ścilooksHuman = false → wynik 0.34: dotyczy, ale bez większych korzyści nad brutalną siłą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 struktura11.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łownika11.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 szybkoWolniej11.4 Globalne pozycjonowanie
W profesjonalnym procesie krakingu typowa kolejność to:
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ść:
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 ^ 1613.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 Time2CrackdescNeural
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łodescMarkov (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