Markov attacco (probabilistico) — Operazione completa

Documento di riferimento del progetto Time2Crack
Recipienti: sviluppatori, ricercatori di sicurezza, utenti avanzati

Contenuto

  • Panoramica
  • Sfondo storico e accademico
  • Fondazioni matematiche: le catene di Markov
  • Architettura di un cracktool di Markov
  • Fase 1 — formazione corpus di password reali
  • Fase 2 — Generazione ordinata dei candidati
  • Ridurre lo spazio di ricerca: La chiave per l'efficacia
  • Variazioni e implementazioni notevoli
  • Comportamento contro diversi tipi di password
  • Integrazione in Time2Crack: Modellazione e parametri
  • Confronto con altri attacchi probabilistici
  • Limiti dell'attacco Markov
  • Efficace difesa
  • Referenze

  • 1. Panoramica

    Markov Attack è un metodo di cracking password probabilità e statistica Invece di testare tutte le combinazioni possibili in ordine alfabetico — come fa la forza grezza — ordina i candidati dal più probabile almeno, concentrando lo sforzo di calcolo in cui le password umane sono effettivamente situati.

    In termini semplici : un aggressore che ha abbastanza GPU e un modello ben addestrato Markov testerà "letmein", "p@ssword" e "sun2024" prima di testare "aaaaaaa", "aaaab" o "xqzfkw" — perché gli esseri umani creano password che sembrano parole, non rumore bianco. Efficienza misurata : Dürmuth et al. (2015) la ricerca sul corpus RockYou (14 milioni di password) mostra che un modello Markov 5 riduce lo spazio effettivo di ricerca per 0,6% dello spazio lordo per le password con una tipica struttura umana — una riduzione del 99,4 %.

    2. Sfondo storico e accademico

    2.1 Origini

    L'applicazione dei canali di Markov al cracking password è prima delle pubblicazioni accademiche formali. I professionisti della sicurezza offensivi hanno usato modelli simili dal 2000, ma la formalizzazione rigorosa risale principalmente al 2010.

    Cronologia delle pietre miliari : AnnoEvento ---------------- 2005Nakashima & Oyama: prima applicazione formale di n-grams a password 2009Weir et al. (IEEE S&P): PCFG — concorrente diretto, posizioni probabilità strutturali 2012Ma et al. (USENIX Security): Studio comparativo dei modelli probabilistici sulle password 70M 2013Durmuth: prime analisi OMEN su diversi corpus 2015Dürmuth, Angelstorf, Horsch, Nürnberger, Rüegge: OM (ESORICS 2015) — importante riferimento accademico 2016Wheeler (zxcvbn) conferma l'efficacia di n-grams nel stimare l'entropia reale 2018OMEN+: versione migliorata con levigatura e interpolazione 2019–2022Markov lavoro ibrido + reti neurali (PassGAN, FuzzyPSM)

    2.2 Ente di riferimento

    La formazione del modello Markov si basa su database di password da perdite di dati note:

  • LinkedIn (2012) : 6,5 milioni di hash SHA-1 non salati (compreso 4,4M cracked)
  • Adobe (2013) : 153 milioni di identificatori (3 DES hashs - cracked da analisi di frequenza)
  • Collezione #1–5 (2019) : 2,7 miliardi di coppie che identificano/password
  • Sono stato pestato (2024) : 14 miliardi di credenziali aggregate singole
  • Questi corpus rivelano l'effettiva distribuzione statistica delle password umane, che differisce radicalmente da una distribuzione uniforme.


    3. Fondazioni matematiche: Catena di Markov

    3.1 Definizione formale

    Markov catena di ordine # su un alfabeto # Personaggi precedenti:

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

    Per le password, di solito include 95 caratteri ASCII stampabili (26 caso inferiore + 26 caso superiore + 10 cifre + 33 simboli).

    Ordine 1 (bigram) :
    P("password") = P("p") × P("a"|"p") × P("s"|"a") × P("s"|"s") × ...
    Ordine 5 (ottimo secondo 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")

    Ordine 5 cattura contesti come "dopo "passw", il follow-up più probabile è "o" — informazioni inaccessibili a un modello di ordine 1.

    3.2 La matrice di transizione

    Per un ordine di 1 su 95 caratteri, la matrice di transizione è dimensione 95 × 95 = 9,025 ingressi. Per ordine 5, va a 955 × 95 = ~7.7 × 1010 input teorici — ma la maggior parte dell'ordine n-grams 5 non appare mai nei dati reali.

    3.3 probabilità di log e selezione

    Per evitare sovraccarichi galleggianti su 8+-carattere password (probabilità dell'ordine di 10−20), gli strumenti funzionano probabilità di log :

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

    Questo valore è punteggio Markov I candidati sono generati in ordine descrescente di punteggio, cioè il più probabile almeno probabile.

    3.4 Perché ordinare 5?

    La ricerca empirica (Dürmuth 2015, confermata da Ma et al. 2012) mostra che:

  • Ordine 1 : cattura le frequenze dei singoli caratteri (e, a, o comuni in minuscolo), riduzione ~50%
  • Ordine 2 : cattura bigrams comuni (pa, ss, wo, rd), riduzione ~75%
  • Ordine 3 : cattura trigrammi (non, ass, ssw), riduzione ~90%
  • Ordine 4 : inizio dei ritorni in diminuzione, riduzione ~95 %
  • Ordine 5 : Optimum empirico su RockYou, riduzione ~99,4%
  • Ordine 6+ : overfitting, modello memorizza le password di formazione senza generalizzare

  • 4. Architettura di un cracktool di Markov

    4.1 Componenti principali

    ┌─────────────────────────────────────────────────────────────┐
    │                    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 Integrazione con Hashcat

    L'attuazione più diffusa in pratica è tramite Modalità Hashcat stdin (-a 0 con un generatore esterno) o tramite moduli Python come statsgen (dal toolkit PACK):

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

    Strumenti dedicati come OM (Apri Markov Estimator di Next password) genera direttamente liste di candidati ordinati.


    5. Fase 1 — Corpo di formazione vera password

    5.1. Estrazione di n-grammi

    Per ogni password nel corpus, tutti i n-grammi vengono estratti (con un marcatore di avvio). ^ e la fine $)

    Esempio con "ciao" (ordine 2):

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

    Esempio con "P@ss1!" (ordine 2):

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

    5.2 Contabilità e standardizzazione

    Per ogni contesto (n-1 caratteri precedenti), vengono conteggiati e normalizzati gli eventi di ciascun personaggio seguente:

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

    Queste distribuzioni rivelano le abitudini del linguaggio umano: dopo "pa", la gente scrive massicciamente "s" (password, pass, pablo...).

    Smoothing

    Il problema dei n-grammi non osservati: se "xq" non appare mai nel corpus, P(c)xq) = 0 per qualsiasi c — che blocca la generazione.

  • Add-one (Laplace) : aggiungere 1 a tutti i conti
  • Buona durata : ridistribuire la probabilità dei n-grammi visti una volta a quelli mai visti
  • Kneser-Ney : stato del metodo d'arte, utilizzato in OMEN+
  • Smoothing permette anche al modello di generare candidati fuori dal corpo di formazione — cruciale per coprire le password leggermente nuove.

    5.4 Cosa impara il modello

    Dopo l'allenamento su RockYou, un modello di 5 ordini Markov interiorizza modelli come:

  • Suffissi digitali : i numeri appaiono massicciamente alla fine della password (→ "123", "2024", "1!")
  • Inizio corrente : "pa", "my", "lo", "ch", "123", "abc" sono frequenti inizi
  • Pagamento iniziale : la tomaia nella prima posizione è molto più probabile che al centro della catena
  • Rari simboli nel mezzo : "@", "#", "!" appaiono principalmente in sostituzione di lettere o suffisso
  • Ripetizioni umane : "aa", "ll", "eee" sono più frequenti dei duplicati delle consonanti rare

  • 6. Fase 2 — Generazione ordinata dei candidati

    6.1 Il problema dell'enumerazione del punteggio

    Generando candidati in ordine decrescente di probabilità Markov è un problema non banale. Non possiamo semplicemente calcolare le probabilità di tutti i candidati possibili (948 x 6 × 1015 per 8 serbatoi) e poi ordinare fuori.

    La soluzione: Ricerca euristica con coda prioritaria L'algoritmo è simile a Dijkstra:

  • Inizializzare la linea con gli inizi più probabili (^a^p^1...
  • Ad ogni fase, depilate il candidato parziale più probabile
  • Estendilo con ogni carattere possibile, calcola il punteggio del candidato esteso
  • Se la lunghezza del bersaglio è raggiunta, rilascia il candidato
  • In caso contrario, file indietro
  • Questo approccio garantisce una selezione approssimativamente decrescente senza memorizzare l'intero spazio.

    6.2. Soglia di soglia

    Per evitare di generare miliardi di candidati improbabili, un Punteggio minimo sotto il quale viene eliminato un candidato parziale (sladding).

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

    Threshold è un parametro critico: troppo alto → si perde password al limite; troppo basso → si genera troppi candidati e rallentare l'attacco.

    6.3 Gestione della lunghezza

    I modelli Markov sono formati e generalmente funzionano per lunghezza fissaUn attacco tipico:

  • Lunghezza 6: generare candidati N in ordine descrescente di probabilità
  • Lunghezza 7: Idem
  • Lunghezza 8: Idem (lunghezza più comune in corpus)
  • Lunghezza 9-12: riduzione della copertura
  • Distribuzione di lunghezza in RockYou: 8 serbatoi = 24%, 7 serbatoi = 21%, 9 serbatoi = 12%, 6 serbatoi = 10%...


    7. Ridurre lo spazio di ricerca: La chiave per l'efficacia

    7.1 Quantificazione empirica (Dürmuth 2015)

    Per una password di 8 caratteri con l'alfabeto completo (94 serbatoi):

    MetodoSpazio di ricercaFattore di riduzione -------------------------------------- Forza lorda948 6 × 10151× (riferimento) Markov Ordine 1~3 × 1015♪ Markov Ordine 3~6 × 1013- 100? Markov Ordine 5Voce principale:~ 166 000 × Markov Ordine 5 (tipo umano)~4 × 107~ 150 milioni ×

    La differenza tra "spazio ridotto" e "spazio umano fisico" può essere spiegata dal fatto che le password umane reali sono concentrate in top-k% molto probabilmente A seconda del modello.

    7.2 Perché gli esseri umani sono prevedibili

    I fattori di prevedibilità utilizzati da Markov:

    Limiti linguistici "letmein", "sunshine", "iloveyou" seguire le regole fonotiche dell'inglese — le transizioni di lettere sono altamente probabili. Limiti cognitivi Una password casuale come "xqzfw9@" raramente viene scelta spontaneamente. Modelli culturali Questi modelli creano cluster ad alta densità nello spazio password. Sostituzioni prevedibili Questi cambiamenti sono così comuni che fanno parte del modello. Posizione dei numeri e dei simboli : i numeri alla fine della password (passwd123) sono 10× più frequenti dei numeri all'inizio. I simboli suffissi (passwd!) sono 5× più frequenti che nella posizione centrale.

    7.3 Il caso dei modelli di tastiera

    Le sequenze di tastiera (qwerty, asdf, zxcv, 1234, azerty...) sono particolarmente vulnerabili.

  • Le transizioni dei caratteri seguono i vincoli della topologia della tastiera
  • Da ogni chiave, solo 4-8 vicini immediati sono rilevanti
  • Un modello Markov guidato su corpus compreso questi modelli raggiunge una riduzione di 99,7 % (vs 99,4% per parole umane generali)
  • In Time2Crack (versione corrente), questa distinzione non è più un cuscinetto fisso. kbPat come segnale in un estimatore di rango (markovExpectedGuesses) poi interpolare continuamente tra regimi "umano-come" e "a forma di casualità".


    8. Notevoli variazioni e implementazioni

    8.1 OMEN (Aperto Markov Estimatore delle prossime password)

    Sviluppato da : Dürmuth, Angelstorf, Horsch, Nürnberger, Rüegge (ESORICS 2015) Disponibilità : Open source (GitHub) Innovazione principale : programmazione ottimizzata per punteggio di livello (supplemento per gradi di probabilità)

    OMEN utilizza una discretizzazione delle probabilità in livelli interi per accelerare la generazione:

  • Ogni n-gram riceve un punteggio intero (0 = molto probabile, 10 = improbabile)
  • La somma dei punteggi di una password è la sua punteggio complessivo
  • Le password sono generate in ordine crescente di punteggio complessivo
  • Questo approccio risolve elegantemente il problema dell'enumerazione ordinata senza coda di priorità costosa.

    8.2 OMEN+

    Estensione di OMEN con:

  • Smoothing Kneser-Ney per una migliore generalizzazione
  • Interpolazione multiordine : combina le previsioni d'ordine 3, 4 e 5
  • Adeguamento della soglia basato sulla distribuzione empirica del corpus
  • Prestazioni segnalate: +15 - +20% password screpolate vs OMEN originale con pari budget.

    8.3 Statsgen / PACK (Password Analysis and Cracking Kit)

    Sviluppato da : Peter Kacherginsky (iphelix) Approccio : più leggero di OMEN, genera maschere e statistiche compatibili Hashcat Uso tipico : analisi di una serie di password incrinate per adattare gli attacchi futuri

    8.4 JohnTheRipper — Modalità Markov

    John TheRipper integra un modalità nativo Markov (sviluppato da Samuele Giovanni Tonon):

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

    Parametro --markov-threshold (0-400): controlla la soglia di taglio. 150 = parametro standard raccomandato.

    La modalità JtR Markov utilizza statistiche precalcolate memorizzate nei file .mkv (file di statistiche di Markov) generato da calcStare.

    8.5 Modelli ibridi Markov

    Markov + regole : generare candidati Markov, quindi applicare regole di trasformazione Hashcat Markov + dizionario : utilizzare le password di Markov come base per attacchi ibridi Markov + PCFG : combinare l'ordine probabilistico Markov con lo stress strutturale PCFG

    Queste ibridazioni sono utilizzate nelle configurazioni professionali di cracking per massimizzare la copertura di budget CPU/GPU.

    8.6 Modelli linguistici moderni (LLM/LSTM) — successori di Markov

    Le reti LSTM e Transformer possono essere viste come generalizzazioni dei canali Markov:

  • Markov ordine k = k gettoni finestra di contesto fissa
  • LSTM = finestra di contesto variabile e non-bounded (memoria a lungo termine)
  • Trasformare = attenzione complessiva all'intera sequenza
  • PassGAN (2017), FLA (2019), PassBERT (2022) ha superato i classici modelli Markov del 20-30% in tassi di crepa sul corpus moderno.


    9. Comportamento contro diversi tipi di password

    9.1 Password da parole naturali

    Esempi : sole, letmein, dragon, iloveyou vulnerabilità : estrema Meccanismo : il modello assegna una probabilità molto elevata alle sequenze dell'inglese attuale. superiore 0.001 % candidati generati. Tempo : millisecondi su MD5/SHA-1

    9.2 Parole con leetspeak sostituzioni

    Esempi : p@ssw0rd, L3tm3In, $unsh1ne vulnerabilità : Meccanismo Il modello ha imparato che "@" segue spesso "p" (perché "p@ss..." è molto comune nel corpus), che "0" segue spesso "w" (w0rd...), ecc Le sostituzioni più comuni sono integrate nella probabilità di transizione. Tempo : secondi a minuti

    9.3 Parole con suffisso digitale

    Esempi : password123, sole2024, dragon1! vulnerabilità : Meccanismo I suffissi numerici sono così comuni che il modello ha un'alta probabilità per la lettera→ transizioni alla fine della sequenza. "123", "1", "2024", "12" sono i suffissi più probabili. Tempo : secondi a pochi minuti

    9.4 Nomi e nomi appropriati

    Esempi : Thomas92, AnneM@rie, NICOLAS vulnerabilità da moderato a alto Meccanismo : I nomi comuni (in inglese) sono ben rappresentati nel corpo di riferimento. Tempo : minuti a ore a seconda della popolarità del nome

    9.5 Passare parole di apparente struttura casuale ma mnemotechnic

    Esempi : Tr0ub4dor&3 (dell'articolo XKCD), Il0v3myC@t! vulnerabilità moderato Meccanismo Queste password hanno una struttura umana (baseword + sottostituzioni + suffisso), ma la base e le trasformazioni specifiche non sono nella parte superiore di candidati Markov. Il modello alla fine li raggiunge, ma cadono nel 10-30% dello spazio. Tempo : ore a giorni secondo la lunghezza e l'algoritmo di hash

    9.6 Modelli di tastiera

    Esempi : qwerty, 1234567, azerty, qweasdzxc vulnerabilità : estrema (parola che parole naturali) Meccanismo : le transizioni della tastiera sono così rappresentate nel corpus che il modello li classifica tra le prime migliaia di candidati — a volte le prime dieci. Tempo : microsecondi a millisecondi

    9.7 password davvero casuali

    Esempi : xQz7@mK9, 4#pL$2nR, kRf9!Ws3 vulnerabilità : basso a zero Meccanismo : Le transizioni di carattere in queste password hanno probabilità molto basse in un modello addestrato sulle password umane. Comportamento Il vero "costo" della sicurezza è l'entropia lorda. Tempo : paragonabile o superiore alla forza lorda

    9.8 Passphras

    Esempi : equitazione-staple-corretto, monchieneestlouisXIV vulnerabilità : variabile Meccanismo complesso :
  • Un modello Markov può catturare transizioni inter-parole in un breve passphrase (2 parole) se queste combinazioni sono comuni nel corpus
  • Ma per lunghe frasi (4+ parole), lo spazio candidato ordinato da Markov li raggiungerà solo dopo aver esaurito tutte le tipiche password corte
  • Attacco combinatore è generalmente più efficace di Markov su passphrases

  • 10. Integrazione in Time2Crack: Modellazione e parametri

    logica generale del calcolo (v2)

    Time2Crack ora modelli Markov in atteso rango (basato in franchigia) piuttosto che con fattori di riduzione fissi.

    Linea di calcolo:

  • Tokenizzazione Unicode in segmenti L/D/S
  • stima di un grado umano tramite scheletro + forma + righe di gettoni,
  • modulazione per segnali strutturali (kbPatseqdtrephybridVuln),
  • interpolazione continua verso un regime "a rado" secondo charset e lunghezza,
  • conversione del tempo tramite budgetTime(rangestime, vitesseHah).
  • 10.2 Tokenizzazione Unicode e profilo calibrato per lingua

    Il modello Markov v2 utilizza le classi Unicode (\p{L}\p{N}, altrimenti simbolo) e un profilo calibrato per lingua (caricato da data/markov-calibration.json, con ricaduta interna).

    Il profilo contiene:

  • skeletonRanks (L8D2L8D2S1...
  • shapeRanks (LDLDS...
  • tokenRanks per classe/lunghezza,
  • moltiplicatori di lingua (shapeMultipliers),
  • moltiplicatori di segnale (signalMultipliers).
  • 10.3. Interpolazione continua (fine delle soglie ripide)

    Il vecchio modello utilizzato cuscinetti (0.003 / 0.006 / 0.25 / 0.9). Il modello v2 sostituisce questa logica con interpolazione continua tra:

  • humanRank (area strutturale probabile),
  • randomRank (area vicino al grezzo, delimitata).
  • Il peso casuale è una funzione continua della lunghezza, del serbatoio e della forza dei segnali umani, evitando così le discontinuità artificiali.

    10.4 Punteggio di fiducia e applicabilità

    Time2Crack modello di punteggio (funzione annotateScenarioApplicability()) assegna a Markov:

    Confidenza di base : 0.75 (linea 4800) Interpretazione: l'attacco di Markov è considerato moderatamente affidabile — più affidabile della stima neurale (0.7) o PRINCE (0.7), meno del dizionario (0.9) o delle tabelle di scanalatura (0.95). Punteggio di domanda (linea 4873-4874):
    case "markov":
      return context.looksHuman ? 0.76 : 0.34;
  • looksHuman = true → punteggio 0.76: attacco Markov è molto applicabile, il modello sfrutta le regolarità umane
  • looksHuman = false → punteggio 0.34: applicabile ma senza grande vantaggio sulla forza bruta
  • Punteggio delle prove (linea 4829-4830):
    case "markov":
      return Number(!!context.looksHuman) + Number(!!context.kbPat)
           + Number(!!context.seq)        + Number(!!context.rep);
    Ogni segnale di "carattere umano" della password aumenta il punteggio evidente di Markov.

    10.5 Regolazione HF

    Con Markov v2, i segnali strutturali sono già integrati nel rango stimato. La regolazione HF è quindi neutrale per Markov al fine di evitare doppio conteggio.

    10.6 Priorità al tiebreak

    Quando più attacchi danno tempi simili (± 1ms di differenza), Time2Crack sceglie il più rilevante secondo una priorità semantica:

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

    Markov è un utile attacco di complemento che sfrutta le regolarità statistiche. Ha la precedenza sulla forza lorda per le password con la struttura umana, ma dà la precedenza a attacchi dizionario e ibridi che sono più diretti.

    10.7 Ultra-weak caso

    Per le password ultra-basse (detected by isWeakPassword()), Markov utilizza un tempo basato su un grado minimo (weakGuessTime) piuttosto che una costante fissa:

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

    Ragione: una password ultra-bassa (password, 123456, qwerty...) è nella top-100 assoluto Markov spazio — sarà testato prima, l'accuratezza del calcolo è irrilevante.


    11. Confronto con altri attacchi probabilistici

    11.1 Markov vs PCFG

    DimensioneMarkovPCF ------------------------ Unità di analisiTransizioni individuali di carattereStrutture di segmento (L/D/S) Informazioni acquisiteRegolarità locali (n-gram)Globale (grammatica) Forza suParole naturali, schemi continuiParole + numeri, strutture composte LimiteNon cattura le strutture globaliNon catturare transizioni locali ComplementariIdeale per parole pureIdeale per Password123 Esempio ottimale"sunshine"Sole #93 Ordine in Time2CrackMarkov = 8, PCFG = 6PCFG più accurato se la struttura rilevata

    11.2 Markov vs. Attacco basato sulla regola

    DimensioneMarkovA base di regole --------------------- ApproccioGenerazione ad initio probabilisticoTrasformazione di un dizionario esistente CoperturaTutte le password probabiliTraduzioni di parole dizionario Forza suParole rare o leggermente non dizionarieTradizionali trasformazioni di parole conosciute LimiteMeno efficace del dittatore+regole per le mutazioni attualiDipende interamente dalla qualità del dizionario

    11.3 Markov vs Neural Networks (PassGAN, LSTM)

    DimensioneMarkov (Ordine 5)Rete neuronale -------------------------------- ComplessitàO(k ×) per previsioneO(n2 × d) (Transformer) Dati richiesti1-10M esempi sufficienti10M-1B per buoni risultati InterpretazioneTotale (tavole di probabilità)Scatola nera GeneralizzazioneLimitato al contesto locale kPotenziale complessivo Tassi di prelievoRiferimento+20-30% su password moderne Velocità di generazioneMolto veloceLentamente

    11.4 Posizionamento globale

    In un flusso di lavoro professionale di cracking, l'ordine tipico è:

  • Dizionario (credlist) — note password esatte
  • Imbottitura Credenziale — coppie ID/mdp riutilizzate
  • Irrorazione di password — superiore a 20 comuni
  • ibrido — dico + regole Hashcat
  • PCF — se la struttura L+D rilevata
  • Maschera — se il modello posizionale è rilevato
  • Markov — copertura statistica generale
  • Neurale — se il bilancio disponibile
  • Forza lorda — ultima risorsa
  • Markov è spesso sfondo linea forza bruta anteriore: copre efficacemente le password umane che sono sfuggiti più attacchi mirati.


    12. Limiti dell'attacco di Markov

    12.1 Dipendenza dal corpo della formazione

    Un corpus dominato dalle password inglesi (RockYou, LinkedIn) interpreta le regolarità:

  • Password in lingue ad alta densità morfologica (polacco, ceco, finlandese)
  • Password basate su culture non rappresentate ( mandarino traslitterato, arabo romanizzato)
  • Password da campi specializzati assenti da perdite (slang medico, gergo tecnico raro)
  • Soluzione parziale : formare modelli specifici per lingua e per campo (approssimarsi che richiedono diversi corpus).

    12.2 indipendenza interposizionale a lungo raggio

    Un modello Markov 5 non vede più di 5 caratteri. Per una password di 12 caratteri, non può correlare il 12 ° carattere con il 1 °. Un passphrase come "stargate2004!" ha una struttura globale ("parola + anno +!") che Markov percepisce localmente ma non globalmente — PCFG è migliore qui.

    12.3 Insensibilità alle strutture compositive

    "HorseStapleBattery" (majusculum iniziale + 3 parole concatenate) è difficile per Markov perché transizioni inter-parole (e→S, e→B) sono inaspettate. L'attacco combinatore o PCFG è più adatto.

    12.4 Inefficacia della password casuale

    Una password generata da /dev/urandom con 12+ caratteri alfanumerici non ha struttura sfruttabile da Markov. Il tempo di attacco Markov converge alla forza cruda.

    12.5 Sensibilità alla politica di password aggiornata

    Se un'organizzazione ha imposto regole severe (lunghezza ≥ 16, obbligatoria 1 capitale + 1 cifra + 1 simbolo), le password risultanti possono avere una distribuzione diversa del corpo di formazione — riducendo l'efficacia del modello.


    13. Efficace difesa

    13.1 Ciò che neutralizza completamente Markov

    Generatori di password casuali : qualsiasi password manager (Bitwarden, 1Password, KeePass) con un generatore crittografico sicuro produce sequenze senza struttura sfruttabile da Markov. Abbastanza lunghezza con casuale : anche con un serbatoio ridotto (solo a-z), 16 caratteri casuali rappresentano 26^16

    13.2 Che riduce notevolmente l'efficacia di Markov

    Passfraghe lunghe di parole rare : 4+ parole non comuni separate sono dei migliori candidati Markov, soprattutto se le parole provengono da lingue diverse o vocabularie specializzate. Evitare i sostituti di leetspeak comuni : Le sottostituzioni a→@, e→3, ecc. sono integrate nel modello, ma trasformazioni non standard (a→ Evitare modelli di tastiera e parole naturali : La massima vulnerabilità di Markov.

    13.3 Che cosa non difende contro Markov

    Requisiti di complessità (majuscule + cifra + simbolo) : se questi elementi sono aggiunti a una parola naturale (P@ssw0rd!), il modello cattura questi modelli. falsa sicurezza percepita. Sostituzioni di base delle leetspeak : completamente catturato dal modello (transizioni "@"→"s", "3"→"y"...). Suffissi digitali/prefissi : "parola + 123" o "parola + 2024" modelli sono tra i primi testati.

    13.4 Raccomandazione finale

    La difesa più efficace contro Markov (e qualsiasi attacco probabile) è quella dieliminare qualsiasi struttura umana prevedibile, che equivale a delegare la creazione di password a un generatore casuale sicuro.


    14. Riferimenti

    Academics (peer-reviewed)

    Dürmuth, M., Angelstorf, F., Horsch, J., Nürnberger, S., & Rüegge, A. (2015). OMEN: Password più veloce indovinando utilizzando un Enumeratore di Markov ordinato. Software e sistemi sicuri di ingegneria (ESSoS 2015), LNCS 8978, pp. 119–132. → Riferimento principale per la calibrazione probabilistica di Markov utilizzata in Time2Crack (RockYou 14M, Ordine 5) Ma, J., Yang, W., Luo, M., & Li, N. (2014). Uno studio di modelli di password probabilistic. IEEE Symposium on Security and Privacy (S&P 2014). → Confronto empirico Markov, PCFG, n-grammi su password 70M Weir, M., Aggarwal, S., de Medeiros, B., & Glodek, B. (2009). Tracciamento di password utilizzando Grammatica Probabilistica Senza Contesto. IEEE Symposium on Security and Privacy (S&P 2009). → Lavoro di fondazione sui metodi probabilistici strutturali (concorso di Markov) Wheeler, D.L. (2016). zxcvbn: stima della forza della password a basso costo. 25 ° Simposio di sicurezza USENIX. → Conferma l'efficacia di n-grams per una stima realistica della forza password Pasquini, D., Cianfriglia, M., Ateniese, G., & Bernaschi, M. (2021). Ridurre Bias nella modellazione della forza di password reale-mondo attraverso l'apprendimento profondo e i dizionari dinamici. 30 ° Simposio di sicurezza USENIX. → Confronto quantitativo Markov vs deep learning su moderno corpus Hitaj, B., Gasti, P., Ateniese, G., & Perez-Cruz, F. (2019). PassGAN: Un Approccio Deep Learning per l'Indovinazione della Password. ACNS 2019. → Markov Neural Successor, punto di confronto per Time2Crack descNeural

    Esecuzioni open source

    OM https://github.com/RUB-SysSec/OMEN John TheRipper (modalità Markov) https://www.openwall.com/john/doc/MARKOV.shtml PACK (statsgen/maskgen) https://github.com/iphelix/pack Hashcat https://hashcat.net/hashcat/

    Fonti di corpus

    RockYou (2009) : 14,3M password dal difetto del social network RockYou # I Been Pwned # https://haveibeenpwned.com — ~14 miliardi di credenziali aggregate (Troy Hunt) SecLismo : https://github.com/danielmiessler/SecLists — dizionari di riferimento e liste di parole

    Fonti web citate nell'applicazione Time2Crack

    Springer (chapter Markov / cracking probabilistico). http://link.springer.com/chapter/10.1007/978-319-24174-67 → Correlato fonte in descMarkov (app.js) per la riduzione efficace dello spazio di ricerca per priorità statistica.
    Documento generato per il progetto Time2Crack — ultimo aggiornamento: 2026-04-01 Sulla base dell'implementazione in app.js (Markov v2 base di rango) e pubblicazioni accademiche citate