Markov-aanval (probabilistisch)

Projectreferentiedocument Time2Crack
Ontvangers: ontwikkelaars, security onderzoekers, geavanceerde gebruikers

Inhoud

  • Overzicht
  • Historische en academische achtergrond
  • Wiskundige funderingen: Markovs ketens
  • Architectuur van een Markov cracktool
  • Fase 1: training van echte wachtwoorden
  • Fase 2
  • Reductie van de onderzoeksruimte: de sleutel tot effectiviteit
  • Opmerkelijke variaties en uitvoeringen
  • Gedrag tegen verschillende soorten wachtwoorden
  • Integratie in Time2Crack: modellering en parameters
  • Vergelijking met andere probabilistische aanvallen
  • Limieten van de Markov-aanval
  • Doeltreffende verdediging
  • Referenties

  • 1. Overzicht

    Markov Attack is een wachtwoord kraken methode probabilistisch en statistisch die kandidaten genereert door te vertrouwen op de waargenomen frequenties van overgang tussen tekens in echte menselijke wachtwoorden. In plaats van het testen van alle mogelijke combinaties in alfabetische volgorde en zoals de ruwe kracht doet . . het sorteert kandidaten van de meest waarschijnlijke tenminste, concentreren van de berekening inspanning waar menselijke wachtwoorden daadwerkelijk zijn gevestigd.

    In eenvoudige termen : een aanvaller die genoeg GPU en een goed getrainde Markov model zal testen "letmein," "p@ssword" en "sun2024" voordat het testen van "aaaaaaaaaaaaab" of "xqzfkw" omdat mensen maken wachtwoorden die eruit zien als woorden, niet wit lawaai. Gemeten efficiëntie : Dürmuth et al. (2015) onderzoek aan de RockYou corpus (14 miljoen wachtwoorden) toont aan dat een Markov 5 model de werkelijke zoekruimte vermindert tot 0,6% van de brutoruimte voor wachtwoorden met een typische menselijke structuur een 99,4 % reductie.

    2. Historische en academische achtergrond

    2.1 Oorsprong

    De toepassing van Markov's kanalen op wachtwoord kraken is eerder dan formele academische publicaties. Offensive security beoefenaars gebruikt soortgelijke modellen sinds de jaren 2000, maar strenge formalisering dateert voornamelijk uit de 2010s.

    Chronologie van mijlpalen : JaarGebeurtenis --------------------- 2005Nakashima & Oyama: eerste formele toepassing van n-grams op wachtwoorden 2009Weir et al. (IEEE S&P): directe concurrent, posities structurele kansen 2012Ma et al. (USENIX Security): Vergelijkende studie van probabilistische modellen op 70M wachtwoorden 2013Durmuth: eerste VROUWENanalyses op verschillende corpus 2015Dürmuth, Angelstorf, Horsch, Nürnberger, Rüegge: VROUWEN (ESORICS 2015) 2016Wheeler (zxcvbn) bevestigt de effectiviteit van n-grams bij het schatten van werkelijke entropie 2018VROUWEN+: verbeterde versie met gladmaken en interpoleren 2019Markov hybride werk + neurale netwerken (PassGAN, FuzzyPSM)

    2.2 Referentieorgaan

    Modeltraining Markov is gebaseerd op wachtwoorddatabases van bekende datalekken:

  • LinkedIn (2012) : 6,5 miljoen niet-gezouten SHA-1 hash (inclusief 4,4M gebarsten)
  • Adobe (2013) : 153 miljoen identificatiegegevens (3DES hashs
  • Verzameling #1 : 2,7 miljard paar identificeren/wachtwoord
  • Heb ik gepowned (2024) : ~14 miljard enkele geaggregeerde referenties
  • Deze corpus onthullen de feitelijke statistische verdeling van menselijke wachtwoorden, die radicaal verschilt van een uniforme verdeling.


    3. Wiskundige stichtingen: de kettingen van Markov

    3.1 Formele definitie

    Markov-volgordeketen k op een alfabet k Vorige tekens:

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

    Voor wachtwoorden omvat het meestal 95 afdrukbare ASCII-tekens (26 kleine letters + 26 hoofdletters + 10 cijfers + 33 symbolen).

    Volgorde 1 (bigram) :
    P("password") = P("p") × P("a"|"p") × P("s"|"a") × P("s"|"s") × ...
    Besluit nr. 5 (optimal volgens 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")

    Order 5 vangt contexten zoals "na "passw," de meest waarschijnlijke follow-up is "o" informatie ontoegankelijk voor een ordermodel 1.

    3.2 De overgangsmatrix

    Voor een orde van 1 op 95 karakters is de overgangsmatrix grootte 95 × 95 = 9,025 inputs. Voor Orde 5 gaat het naar 955 × 95 = ~7,7 × 1010 theoretische inputs Implementaties gebruiken holle datastructuren (tries, hash maps) om alleen waargenomen n-grams op te slaan.

    3.3 Log waarschijnlijkheid en sorteren

    Om drijvende overschrijdingen op 8+-karakter wachtwoorden (waarschijnlijkheden van de orde van 10−20) te voorkomen, werken de gereedschappen in log waarschijnlijkheden :

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

    Deze waarde is de score Markov Kandidaten worden gegenereerd in afnemende volgorde van score, d.w.z. de meest waarschijnlijke ten minste waarschijnlijk.

    3.4 Waarom Bestel 5?

    Uit empirisch onderzoek (Dürmuth 2015, bevestigd door Ma et al. 2012) blijkt dat:

  • Volgorde 1 : vangt frequenties van individuele tekens (e, a, o gemeenschappelijk in klein), reductie ~50%
  • Beschikking 2 : vangt gewone bigrams (pa, ss, wo, rd), reductie ~75%
  • Beschikking 3 : vangt trigrams (niet, kont, ssw), reductie ~90%
  • Beschikking 4 : afnemende opbrengst start, reductie ~95 %
  • Beschikking 5 : Optimum empirisch op RockYou, reductie ~99,4%
  • Volgorde 6+ : overfitting, model memoriseert training wachtwoorden zonder generaliseren

  • 4. Architectuur van een Markov cracktool

    4.1 Belangrijkste onderdelen

    ┌─────────────────────────────────────────────────────────────┐
    │                    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 Integratie met Hashcat

    De meest voorkomende uitvoering in de praktijk is via de Hashcat-stdinmodus (-a 0 met een externe generator) of via Python-modules als statsgen (van de PACK toolkit):

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

    Specifieke hulpmiddelen zoals VROUWEN (Open Markov Estimator van Next wachtwoorden) direct genereren lijsten van gesorteerde kandidaten.


    5. Fase 1

    5.1. Extractie van n-grams

    Voor elk wachtwoord in het corpus worden alle n-grams uitgepakt (met een startmarkering). ^ en eindigen $) :

    Voorbeeld met "hallo" (orde 2):

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

    Voorbeeld met "P@ss1!" (orde 2:

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

    5.2 Telling en normalisatie

    Voor elke context (n-1 vorige tekens) worden de gebeurtenissen van elk volgende teken geteld en genormaliseerd:

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

    Deze verdelingen onthullen menselijke taalgewoonten: na "pa" schrijven mensen massaal "s" (wachtwoord, pass, pablo...).

    Gladmaken

    Het probleem van ongeobserveerde n-grams: als "xq" nooit verschijnt in het corpus, P(c)xq) = 0 voor elke c

  • Add-one (Laplace) : voeg 1 toe aan alle rekeningen
  • Goede tournee : herdistribueer de waarschijnlijkheid van de n-grams die ooit gezien zijn naar degenen die nooit gezien zijn
  • Kneser-Ney : state of the art methode, gebruikt in VROUWEN+
  • Smoothing maakt het model ook mogelijk om kandidaten uit de training te genereren .. cruciaal om iets nieuwe wachtwoorden te dekken.

    5.4 Wat het model leert

    Na training op RockYou, een Markov 5-orde model internaliseert patronen als:

  • Digitale achtervoegsels : nummers verschijnen massaal aan het einde van het wachtwoord (→ "123," "2024," "1!")
  • Huidige begin : "pa," "my," "lo," "ch," "123," "abc" zijn veelvuldige beginnelingen
  • Oorspronkelijke betaling : de hoofdletter in de eerste positie is veel waarschijnlijker dan in het midden van de ketting
  • Zeldzame symbolen in het midden : "@," "#," "!" verschijnen voornamelijk ter vervanging van letters of achtervoegsel
  • Menselijke herhalingen : "aa," "ll," "ee" komen vaker voor dan duplicaten van zeldzame medeklinkers

  • 6. Fase 2

    6.1 Het probleem van de opsomming van scores

    Het genereren van kandidaten in dalende volgorde van waarschijnlijkheid Markov is een niet-triviaal probleem. We kunnen niet gewoon de waarschijnlijkheid van alle mogelijke kandidaten (948 x 6 × 1015 voor 8 tanks) berekenen en ze vervolgens uitzoeken.

    De oplossing: Heuristische zoektocht met prioriteit staart Het algoritme lijkt op Dijkstra:

  • Initialiseer de regel met het meest waarschijnlijke begin (^a, ^p, ^1...)
  • In elke fase, depileren de meest waarschijnlijke gedeeltelijke kandidaat
  • Verleng het met elk mogelijk karakter, bereken de score van de uitgebreide kandidaat
  • Als doellengte bereikt is, kandidaat uit te geven
  • Zo niet, bestand terug
  • Deze aanpak zorgt voor een ongeveer afnemende sortering zonder de hele ruimte te onthouden.

    6.2. Drempeldrempel

    Om te voorkomen dat miljarden onwaarschijnlijke kandidaten, een Minimumscore waaronder een gedeeltelijke kandidaat wordt uitgeschakeld (sladen).

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

    Drempelwaarde is een kritische parameter: te hoog → je mist wachtwoorden aan de limiet; te laag → je genereert te veel kandidaten en vertraagt de aanval.

    6.3 Duurbeheer

    Markov modellen zijn opgeleid en werken over het algemeen door vaste lengteEen typische aanval:

  • Lengte 6: N-kandidaten genereren in afnemende volgorde van waarschijnlijkheid
  • Lengte 7: Idem
  • Lengte 8: Idem (meest voorkomende lengte in corpus)
  • Lengtes 9-12: afnemende dekking
  • Lengteverdeling in RockYou: 8 tanks = 24%, 7 tanks = 21%, 9 tanks = 12%, 6 tanks = 10%...


    7. Het verminderen van onderzoeksruimte: de sleutel tot effectiviteit

    7.1 Empirische kwantificering (Dürmuth 2015)

    Voor een wachtwoord van 8 tekens met het volledige alfabet (94 tanks):

    MethodeOnderzoeksruimteVerminderingsfactor ----------------------------------------------------- Brutosterkte948 6 × 10151× (referentie) Markov Order 1~3 × 1015~2× Markov Order 3~6 × 1013~100× Markov Order 5~3,6 × 1010~166 000× Markov Order 5 (typisch menselijk)~4 × 107~150 miljoen×

    Het verschil tussen "gereduceerde ruimte" en "typische menselijke ruimte" kan worden verklaard door het feit dat echte menselijke wachtwoorden geconcentreerd zijn in top-k% waarschijnlijk Afhankelijk van het model.

    7.2 Waarom mensen voorspelbaar zijn

    De door Markov gebruikte voorspelbaarheidsfactoren:

    Taalbeperkingen wachtwoorden zijn afgeleid van bestaande woorden. "letmein," "sunshine," "iloveyou" volgen fonotische regels van het Engels de overgangen van letters zijn zeer waarschijnlijk. Cognitieve beperkingen Mensen herinneren zich niet echt willekeurige sequenties. Een willekeurig wachtwoord zoals "xqzfw9@" wordt zelden spontaan gekozen. Culturele patronen Deze patronen creëren clusters met hoge dichtheid in de wachtwoordruimte. Voorspelbare substituties Deze veranderingen komen zo vaak voor dat ze deel uitmaken van het model. Positie van nummers en symbolen : de nummers aan het einde van het wachtwoord (passwd123) zijn 10× vaker dan de nummers aan het begin. Achtervoegsel symbolen (passwd!) zijn 5× vaker dan in de centrale positie.

    7.3 Het geval van toetsenbordpatronen

    Toetsenbordsequenties (qwerty, asdf, zxcv, 1234, azerty...) zijn bijzonder kwetsbaar.

  • Karakterovergangen volgen de beperkingen van toetsenbordtopologie
  • Van elke sleutel zijn slechts 4-8 directe buren relevant
  • Een Markov model gedreven op corpus met inbegrip van deze patronen bereikt een vermindering van 99,7 % (vs 99,4% voor algemene menselijke woorden)
  • In Time2Crack (huidige versie) is dit onderscheid niet langer een vaste lager. kbPat als signaal in een rangschatting (markovExpectedGuesses) vervolgens voortdurend interpoleren tussen "mens-achtige" en "random-achtige" regimes.


    8. Opmerkelijke variaties en implementaties

    8.1 VROUWEN (Open Markov Estimator van Volgende wachtwoorden)

    Ontwikkeling : Dürmuth, Angelstorf, Horsch, Nürnberger, Rüegge (ESORICS 2015) Beschikbaarheid : Open bron (GitHub) Belangrijkste innovatie : geoptimaliseerde planning volgens niveauscore (samengevat door waarschijnlijkheidsstappen)

    VROUWEN maken gebruik van een discretie van waarschijnlijkheden in hele niveaus om de generatie te versnellen:

  • Elk n-gram ontvangt een integer score (0 = zeer waarschijnlijk, 10 = onwaarschijnlijk)
  • De som van de scores van een wachtwoord is de totale score
  • Wachtwoorden worden gegenereerd in stijgende volgorde van de totale score
  • Deze aanpak lost het probleem van een ordelijke opsomming zonder dure prioritaire staart elegant op.

    8.2 VROUWEN+

    Uitbreiding van vrouwen met:

  • Smoothing Kneser-Ney voor een betere generalisatie
  • Multi-order-interpolatie : combineert ordervoorspellingen 3, 4 en 5
  • Aanpassing van de drempel gebaseerd op empirische corpusdistributie
  • Gerapporteerde prestaties: +15 tot +20% gebarsten wachtwoorden vs originele VROUWEN met gelijk budget.

    8.3 Statsgen / PACK (Wachtwoordanalyse en kraken Kit)

    Ontwikkeling : Peter Kacherginsky (ifelix) Aanpak : lichter dan VROUWEN, genereert Hashcat compatibele maskers en statistieken Typisch gebruik : analyse van een reeks gebarsten wachtwoorden om toekomstige aanvallen aan te passen

    8,4 JohnTheRipper Markov-modus

    John TheRipper integreert een native Markov-modus (ontwikkeld door Samuel Giovanni Tonon):

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

    Parameter --markov-threshold (0-400): regelt de afkapdrempel. 150 = aanbevolen standaardparameter.

    JtR Markov-modus maakt gebruik van vooraf berekende statistieken opgeslagen in bestanden .mkv (markov statistieken bestanden) gegenereerd door calcstat.

    8.5 Markov hybride modellen

    Markov + regels : genereren Markov kandidaten, vervolgens toepassen Hashcat transformatie regels Markov + woordenboek : gebruik Markov wachtwoorden als basis voor hybride aanvallen Markov + PCFG : combineer de probabilistische orde Markov met de structurele stress PCFG

    Deze hybridisaties worden gebruikt in professionele kraakconfiguraties om CPU/GPU budget dekking te maximaliseren.

    8.6 Moderne taalmodellen (LLM/L URL)

    LSTM en Transformer netwerken kunnen worden gezien als generalisaties van Markov kanalen:

  • Markov orde k = k tokens vaste context venster
  • LSTM = variabel en ongebonden contextvenster (langdurig geheugen)
  • Transformeren = totale aandacht voor de gehele reeks
  • PassGAN (2017), FLA (2019), PassBERT (2022) overtrof de klassieke Markov modellen met 20-30% in cracksnelheden op het moderne corpus.


    9. Gedrag tegen verschillende soorten wachtwoorden

    9.1 Wachtwoorden uit natuurlijke woorden

    Voorbeelden : Sunshine, let mein, dragon, ilove you Kwetsbaarheid : extreem Mechanisme : het model kent een zeer hoge waarschijnlijkheid toe aan de sequenties van het huidige Engels. boven 0,001 % gegenereerde kandidaten. Tijd : milliseconden op MD5/SHA-1

    9.2 Woorden met leetspeak substituties

    Voorbeelden : p@ssw0rd, L3tm3In, $unsh1ne Kwetsbaarheid : hoog Mechanisme Het model heeft geleerd dat "@" vaak volgt "p" (omdat "p@ss..." zeer gebruikelijk is in het corpus), dat "0" vaak volgt "w" (w0rd...), enz. De meest voorkomende substituties zijn geïntegreerd in de kans op overgang. Tijd : seconden tot minuten

    9.3 Woorden met digitaal achtervoegsel

    Voorbeelden Wachtwoord123, zonneschijn2024, draak1! Kwetsbaarheid : hoog Mechanisme De numerieke achtervoegsels komen zo vaak voor dat het model een hoge kans heeft op de letter→ overgangen aan het einde van de reeks. "123," "1," "2024," "12" zijn de meest waarschijnlijke achtervoegsels. Tijd : seconden tot enkele minuten

    9.4 Voornamen en juiste namen

    Voorbeelden Thomas92, AnneM@rie, NICOLAS Kwetsbaarheid matig tot hoog Mechanisme : Gewone namen (in het Engels) zijn goed vertegenwoordigd in het referentie corpus. Minder gangbare namen in het Engels corpus (Frans, Pools, enz.) profiteren minder van het model. Tijd : minuten tot uren afhankelijk van de populariteit van de voornaam

    9.5 Pass woorden van schijnbare willekeurige structuur maar mnemotechnische

    Voorbeelden : Tr0ub4dor&3 (van artikel XKCD), Il0v3myC@t! Kwetsbaarheid matig Mechanisme Deze wachtwoorden hebben een menselijke structuur (baseword + substituions + achtervoegsel), maar de basis en de specifieke transformaties zijn niet in de top-k van Markov kandidaten. Het model zal ze uiteindelijk bereiken, maar ze vallen in de 10-30% van de ruimte. Tijd : uren tot dagen volgens lengte en hash algoritme

    9.6 Toetsenbordpatronen

    Voorbeelden : qwerty, 1234567, azerty, qweasdzxc Kwetsbaarheid : extreem (erger dan natuurlijke woorden) Mechanisme : De toetsenbordovergangen zijn zo vertegenwoordigd in het corpus dat het model hen tot de eerste duizenden kandidaten rangschikt. Tijd : microseconden tot milliseconden

    9.7 Echt willekeurige wachtwoorden

    Voorbeelden : xQz7@mK9, 4#pL$2nR, kRf9!Ws3 Kwetsbaarheid : laag tot nul Mechanisme : De karaktertransities in deze wachtwoorden hebben zeer lage waarschijnlijkheden in een model getraind op menselijke wachtwoorden. Ze worden gevonden in de laatste percentages van de gegenereerde ruimte. Gedrag De echte "kosten" van de veiligheid is entropie. Tijd : vergelijkbaar met of groter dan brutokracht

    9,8 Wachtwoordzinnen

    Voorbeelden : paardenbattery-staple-correct, monchieneestlouisXIV Kwetsbaarheid : variabele Complex mechanisme :
  • Een Markov model kan inter-woord overgangen vastleggen in een korte wachtwoordzin (2 woorden) als deze combinaties gemeenschappelijk zijn in het corpus
  • Maar voor lange wachtwoorden (4+ woorden) zal de door Markov bestelde kandidaatruimte ze pas bereiken nadat alle typische korte wachtwoorden zijn uitgeput
  • Aanvallen combinator is over het algemeen effectiever dan Markov op wachtwoorden

  • 10. Integratie in Time2Crack: Modellering en Parameters

    Algemene berekeningslogica (v2)

    Time2Crack nu modellen Markov in verwachte rang (rank-based) in plaats van met vaste reductiefactoren.

    Berekeningslijn:

  • Unicode tokenisatie in segmenten L'D'S,
  • schatting van een menselijke rang via skelet + vorm + rijen tokens,
  • modulatie door structurele signalen (kbPat, seq, dt, rep, hybridVuln),
  • continue interpolatie naar een "willekeurig" regime volgens charset en lengte,
  • tijdconversie via budgetTime(rangestime, vitessehash).
  • 10.2 Unicode Tokenization en gekalibreerd profiel per taal

    Het Markov v2 model maakt gebruik van Unicode klassen (\p{L}, \p{N}, anderszins symbool) en een gekalibreerd profiel per taal (geladen sinds data/markov-calibration.json, met interne terugval).

    Het profiel bevat:

  • skeletonRanks (L8D2, L8D2S1, ...),
  • shapeRanks (LD, LDS, ...),
  • tokenRanks naar klasse/lengte,
  • taalmultipliers (shapeMultipliers),
  • signaalmultiplicatoren (signalMultipliers).
  • 10.3. Continue interpolatie (eind van steile drempels)

    Het oude model gebruikte lagers (0,03 / 0,006 / 0,25 / 0,9). Het v2 model vervangt deze logica door continue interpolatie tussen:

  • humanRank (waarschijnlijke structurele oppervlakte),
  • randomRank (oppervlakte dicht bij ruw, begrensd).
  • Willekeurig gewicht is een continue functie van de lengte, tank en sterkte van menselijke signalen, waardoor kunstmatige onderbrekingen worden vermeden.

    10.4 Vertrouwen en toepasbaarheid score

    Time2Crack Scoring Model (functie annotateScenarioApplicability()) wordt toegewezen aan Markov:

    Basisvertrouwen : 0,75 (lijn 4800) Interpretatie: Markov aanval wordt overwogen matig betrouwbaar Meer betrouwbaar dan de neurale schatting (0,7) of PRINCE (0,7), minder dan het woordenboek (0,9) of de groeftabellen (0,95). Toepassingsscore (lijn 4873-4874):
    case "markov":
      return context.looksHuman ? 0.76 : 0.34;
  • looksHuman = true → score 0,76: Markov aanval is zeer van toepassing, het model zal de menselijke regelmaat benutten
  • looksHuman = false → score 0,34: van toepassing maar zonder groot voordeel boven brute kracht
  • Bewijsscore (lijn 4829-4830):
    case "markov":
      return Number(!!context.looksHuman) + Number(!!context.kbPat)
           + Number(!!context.seq)        + Number(!!context.rep);
    Elk signaal van "menselijk karakter" van het wachtwoord verhoogt Markov's duidelijke score.

    10,5 HF aanpassing

    Bij Markov v2 zijn de structurele signalen al geïntegreerd in de geschatte rang. De HF-aanpassing is daarom neutraal voor Markov om dubbeltelling te voorkomen.

    10.6 Prioriteit in de tiebreak

    Wanneer meerdere aanvallen vergelijkbare tijden (< 1ms van verschil) geven, Time2Crack kiest de meest relevante volgens een semantische prioriteit:

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

    Markov is een nuttige aanvulling aanval die gebruik maakt van statistische regulariteiten. Het heeft voorrang op bruto kracht voor wachtwoorden met menselijke structuur, maar geeft voorrang aan woordenboek en hybride aanvallen die meer direct zijn.

    10.7 Ultra zwakke zaak

    Voor ultra-lage wachtwoorden (gedetecteerd door isWeakPassword()), gebruikt Markov een tijd gebaseerd op een minimum rang (weakGuessTime) in plaats van een vaste constante:

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

    Reden: een ultra-laag wachtwoord (wachtwoord, 123456, qwerty...) is in de top-100 absoluut Markov ruimte


    11. Vergelijking met andere probabilistische aanvallen

    11,1 Markov vs PCFG

    AfmetingenMarkovPCFG ---------------------------- MeeteenheidOvergangen van individuele tekensSegmentstructuren (L/D/S) Opgenomen informatieLokale regelmaat (n-gram)Wereldwijd (grammatica) AandringenNatuurlijke woorden, continue patronenWoorden + getallen, samengestelde structuren MaximumhoeveelheidBevat geen mondiale structurenLokale overgangen niet vastleggen ComplementariteitIdeaal voor pure woordenIdeaal voor Wachtwoord123 Optimaal voorbeeld"zonneschijn"Sunshine#93 Orde in Time2CrackMarkov = 8, PCFG = 6PCFG nauwkeuriger indien structuur gedetecteerd

    11.2 Markov vs. Regelgebonden aanval

    AfmetingenMarkovRegelmatig ----------------------›› AanpakGeneratie ab initio probabilsticTransformatie van een bestaand woordenboek DekkingAlle waarschijnlijk wachtwoordenVertalingen van woordenboek woorden AandringenZeldzame of enigszins niet-woordelijke woordenTraditionele transformaties van bekende woorden MaximumhoeveelheidMinder effectief dan dictator+regels voor huidige mutatiesAfhankelijk van de kwaliteit van het woordenboek

    11.3 Markov vs Neural Networks (PassGAN, LSTM)

    AfmetingenMarkov (orde 5)Neuronale netwerk ------------------------------------------------ ComplexiteitO(k ×) door voorspellingO(n2 × d) (Transformer) Vereiste gegevens1-10M voorbeelden voldoende10M-1B voor goede resultaten VertolkingTotaal (waarschijnlijkheidstabellen)Zwarte doos GeneraliseringBeperkt tot lokale context kAlgemeen potentieel KraaksnelheidRubrieknummer+20-30% op moderne wachtwoorden GeneratiesnelheidZeer snelLangzamer

    11.4 Algemene positionering

    In een professionele kraken workflow is de typische volgorde:

  • Woordenboek (credlist) Bekende exacte wachtwoorden
  • Credential vulling Hergebruikte ID/mdp paren
  • Wachtwoord spuiten Top-20 gemeenschappelijk
  • Hybride Dico + Hashcat regels
  • PCFG Als L+D-structuur is gedetecteerd
  • Masker
  • Markov Algemene statistische dekking
  • Neuraal Indien beschikbaar
  • Brutosterkte Laatste redmiddel
  • Markov is vaak de achtergrondregel front brute kracht: het dekt effectief menselijke wachtwoorden die ontsnapt zijn aan meer gerichte aanvallen.


    12. Grenzen van de Markov aanval

    12.1 Afhankelijkheid van de opleiding

    Het model is zo goed als zijn corpus. Een corpus gedomineerd door Engelse wachtwoorden (RockYou, LinkedIn) begrijpt de regelmaat verkeerd:

  • Wachtwoorden in talen met hoge morfologische dichtheid (Pools, Tsjechisch, Fins)
  • Wachtwoorden op basis van niet-vertegenwoordigde culturen (vertaalde mandarijn, geromaniseerd Arabisch)
  • Wachtwoorden van gespecialiseerde velden afwezig bij lekken (medische slang, zeldzame technische jargon)
  • Gedeeltelijke oplossing : het trainen van specifieke modellen per taal en veld (aanpak vereist diverse corpus).

    12.2 Langeafstandsonafhankelijkheid

    Een Markov 5 model ziet niet meer dan 5 tekens. Voor een wachtwoord van 12 tekens, kan het niet correleren het 12e karakter met de 1e. Een wachtwoordzin zoals "stargate2004!" heeft een globale structuur ("woord + jaar +!") die Markov ziet lokaal, maar niet wereldwijd is PCFG beter hier.

    12.3 Ongevoeligheid voor samenstellingsstructuren

    "HorseStapleBatttery" (eerste majusculum + 3 samengevoegde woorden) is moeilijk voor Markov omdat inter-woord overgangen (e→S, e→B) zijn onverwacht. De combinator aanval of PCFG is beter geschikt.

    12.4 Willekeurig wachtwoord ineffectiviteit

    Een wachtwoord gegenereerd door /dev/urandom met 12+ alfanumerieke tekens heeft geen structuur die Markov kan exploiteren. De aanvalstijd Markov convergeert naar de ruwe kracht.

    12.5 Gevoeligheid voor bijgewerkt wachtwoordbeleid

    Als een organisatie strenge regels heeft opgelegd (lengte ≥ 16, verplicht 1 kapitaal + 1 cijfer + 1 symbool), kunnen de resulterende wachtwoorden een andere verdeling van de opleiding hebben . .


    13. Doeltreffende verdediging

    13.1 Wat Markov volledig neutraliseert

    Willekeurige wachtwoordgeneratoren : elke wachtwoord manager (Bitwarden, 1Password, KeePass) met een cryptografische veilige generator produceert sequenties zonder structuur exploiteerbaar door Markov. Een wachtwoord van 16 willekeurige tekens is buiten bereik, ongeacht de aanval. Genoeg lengte met willekeurige : zelfs met een gereduceerde tank (alleen a-z), 16 willekeurige tekens vertegenwoordigen 26^16

    13.2 Wat de effectiviteit van Markov sterk vermindert

    Lange wachtwoordzinnen van zeldzame woorden : 4+ ongewone woorden gescheiden zijn uit de top Markov kandidaten, vooral als woorden komen uit verschillende talen of gespecialiseerde woordenlijsten. Vermijd gemeenschappelijke leetpiekvervangers : Substituons a→@, e→3, enz. zijn geïntegreerd in het model, maar niet-standaard transformaties (a→ Vermijd toetsenbordpatronen en natuurlijke woorden : Markovs maximale kwetsbaarheid.

    13.3 Wat niet verdedigt tegen Markov

    Complexiteitseisen (majuscule + cijfer + symbool) : als deze elementen worden toegevoegd aan een natuurlijk woord (P@ssw0rd!), legt het model deze patronen vast. valse zekerheid gezien. Basic leetspeak substituties : volledig vastgelegd door het model (overgangen "@"→"s," "3"→"y"...). Digitale achtervoegsels/prefixes : "word + 123" of "word + 2024" patronen behoren tot de eerste getest.

    13.4 Slotaanbeveling

    De meest effectieve verdediging tegen Markov (en elke probabilistische aanval) is omelke te verwachten menselijke structuur elimineren, wat neerkomt op het delegeren van wachtwoorden aan een veilige willekeurige generator.


    14.

    Academici (peer-reviewed)

    Dürmuth, M., Angelstorf, F., Horsch, J., Nürnberger, S., & Rüegge, A. (2015). VROUWEN: Sneller wachtwoord raden met behulp van een bestelde Markov teller. Engineering Secure Software and Systems (ESSOS 2015), LNCS 8978, blz. 119. → Hoofdreferentie voor Markov probabilistische kalibratie gebruikt in Time2Crack (RockYou 14M, Order 5) Ma, J., Yang, W., Luo, M., & Li, N. (2014). Een studie van Probabilistische Password Modellen. IEEE Symposium over beveiliging en privacy (S&P 2014). → Empirische vergelijking Markov, PCFG, n-grams op 70M wachtwoorden Weir, M., Aggarwal, S., de Medeiros, B., & Glodek, B. (2009). Wachtwoord volgen Met behulp van Probabistic Context-Free Grammatica. IEEE Symposium over beveiliging en privacy (S&P 2009). → Oprichting van structurele probabilistische methoden (Markov concurrent) Wheeler (2016). zxcvbn: Low-Budget Wachtwoord Sterkteschatting. 25e USENIX Security Symposium. → Bevestigt de effectiviteit van n-grams voor realistische wachtwoordkrachtschatting Pasquini, D., Cianfriglia, M., Ateniese, G., & Bernaschi, M. (2021). Het verminderen van Bias in Modeling Real-World Password Strength via Deep Learning en Dynamic Dictionarys. 30e USENIX Security Symposium. → Kwantitatieve vergelijking Markov vs diep leren op modern corpus Hitaj, B., Gasti, P., Ateniese, G., & Perez-Cruz, F. (2019). PassGAN: Een diepe leren aanpak voor wachtwoord raden. ACNS 2019. → Markov Neural Successor, vergelijkingspunt voor Time2Crack descNeural

    Open source implementaties

    VROUWEN https://github.com/RUB-SysSec/VROUWEN John TheRipper (Markov-modus) https://www.openwall.com/john/doc/MARKOV.shtml VERPAKKING (statsgen/maskgen) https://github.com/iphelix/pack Hashcat https://hashcat.net/hashcat/

    Bronnen van corpus

    RockYou (2009) : 14,3M wachtwoorden van de RockYou sociale netwerk fout Ben ik verliefd geweest? https://haveibeenpwned.com Seclists : https://github.com/danielmeissler/SecLists

    Webbronnen geciteerd in de Time2Crack-toepassing

    Springer (hoofdstuk Markov/probabilistisch kraken). https://link.springer.com/hoofdstuk/10.1007/978-3-319-24174-67 → Verwante bron in descMarkov (app.js) voor een effectieve vermindering van de onderzoeksruimte door statistische prioritering.
    Document gegenereerd voor Time2Crack project Laatste update: 2026-04-01 Gebaseerd op implementatie in app.js (Markov v2 rang-based) en academische publicaties geciteerd