Attacco della maschera — Operazione completa

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

Contenuto

  • Panoramica
  • Sfondo storico e accademico
  • Fondazioni concettuali: Perché le maschere funzionano
  • Architettura di un moderno attacco maschera
  • Sintassi della maschera (Hashcat/JtR)
  • Riduzione dello spazio chiave: principio matematico
  • Attuazione in Time2Crack: addMaskAttacks()
  • Rilevamento della data e riduzione strutturale
  • Taratura ad alta fedeltà
  • Benchmarks e ordini di grandezza
  • Esempi concreti di cracking maschera
  • Confronto con forza bruta, ibrida e PCFG
  • Limitazioni di attacco maschera
  • Efficace difesa
  • Referenze

  • 1. Panoramica

    Maschera di attacco consiste di test password che seguono un forma posizionata precisa invece di tutte le combinazioni possibili.

    Esempio: invece di testare tutti gli spazi 8 caratteri su 95 simboli (95^8), l'attaccante mira a un motivo probabile come:

  • 5 minuscolo,
  • 2 cifre.
  • O la maschera Hashcat ?u?l?l?l?l?l?d?d.

    L'idea centrale: le password umane non sono casuali, spesso strutturate (Thomas42Marine2024Bonjour!1La maschera sfrutta proprio questa regolarità.


    2. Sfondo storico e accademico

    2.1 Origini

    La logica delle maschere è vecchia: dai primi strumenti di cracking, gli operatori hanno osservato che le politiche password producono formati ripetitivi.

    L'industrializzazione è dotata di:

  • Giovanni lo Squartatore (modi e modelli incrementali),
  • Hashcat (super-ottimizzata modalità maschera GPU),
  • perdite di massa (RockYou, LinkedIn, Adobe), che hanno identificato le strutture più frequenti.
  • 2.2 Validazione empirica

    La letteratura offensiva / difensiva converge: una frazione molto grande di password reali seguono modelli semplici (parola + cifre, capitale iniziale + parola + anno, ecc).

    Wheeler (USENIX 2016), e le opere probabilistiche (Markov/PCFG/OMEN), mostrano che la struttura è decisiva come la lunghezza lorda.


    3. Fondazioni concettuali: Perché le maschere funzionano

    3.1 Gli esseri umani generano strutture, non per caso

    La maggior parte degli utenti costruisce segreti di memoria:

  • parola conosciuta,
  • variazione di rottura,
  • suffisso digitale,
  • simbolo finale opzionale.
  • Questa strategia è prevedibile e altamente comprimibile in maschere.

    3.2 Le politiche di complessità migliorano la prevedibilità

    Una regola del tipo "1 capitale, 1 cifra, 1 simbolo" non impone casualità; spesso spinge verso modelli stabili:

  • Mot123!
  • Prénom2024
  • Ville75#
  • La maschera è lo strumento ideale per sfogliare questi diagrammi a un costo molto basso.

    3.3 Riduzione dello spazio chiave efficace

    Per una password di lunghezza 8 :

  • Totale forza lorda (95^8) 6.63e15 candidati,
  • maschera ?u?l?l?l?l?d?d = 26 26.4 10^2 = 1.19e9 candidati.
  • La riduzione è più di un milione di volte, mentre copre un modello umano comune.


    4. Architettura di un attacco di maschera moderna

    Tipo di tubo:

    1) Profilage de la cible / du corpus
       -> structures fréquentes (L8D2, L6D4, U1L5D2, etc.)
    

    2) Generazione di maschere candidate -> ordinato per probabilità

    3) esecuzione GPU (Hashcat -a 3) - > test paralleli ad alta velocità

    4) Regolazione adattativa -> teniamo le maschere alte, spargiamo i deboli

    Il successo dipende meno dalla quantità lorda di maschere che dalla loro priorità.


    5. Sintassi della maschera (Hashcat/JtR)

    5.1 Classi di base

  • ?l : minuscolo (a-z)
  • ?u : capitali (A-Z)
  • ?d : numero (0-9)
  • ?s : simbolo stampabile
  • ?a : alfabeto misto standard (spesso ?l?u?d?s)
  • 5.2 Esempi

  • ?u?l?l?l?l?d?d - > Thomas42
  • ?l?l?l?l?l?l?d?d?d?d - > summer2024
  • ?u?l?l?l?l?l?l?s?d - > Marine!7
  • 5.3. Maschere personalizzate

    Hashcat consente set di caratteri personalizzati (-1-2, ecc.), per esempio:

  • -1 ?l?uéèàç per lingue latine,
  • -2 0123456789!@# per suffissi probabili,
  • poi maschera combinata ?1?1?1?1?2?2.

  • 6. Riduzione dello spazio chiave: principio matematico

    O una maschera di lunghezza n con cardinalità posizionali c1, c2, ..., cn.

    Lo spazio chiave mascherato è:

    Kmaschera = D(i)

    Tempo (modello di budget):

    T = Kmask / rate

    In un modello ingenuo e smascherato:

    Kpieno =

    Il guadagno della maschera è:

    Gain = Kfull / K_mask

    Più forte è il vincolo posizionale (ad esempio, cifre alla fine, capitale nella testa), maggiore è il guadagno.


    7. Attuazione in Time2Crack: addMaskAttacks()

    Time2Crack implementa la logica della maschera in app.js :

  • funzione: addMaskAttacks(rows, full, len, cs, kbPat, seq, weak, dt, pw)
  • Categoria: cat: "mask"
  • display: aMask / nota nMaskPositionalnKBDetectednSeqDetectednDateDetected
  • 7.1. Calcolo dello spazio chiave mascherato

    Il codice conta gli eventi effettivi di ogni tipo di carattere nella password:

  • lettere maiuscole,
  • piccolo,
  • numeri,
  • simboli.
  • Poi costruito:

    maskKS = 26^U 26. 10^D 33 (approssimazione tramite costanti interne)

    Questo modello un attaccante che conosce la struttura per tipo, non solo la lunghezza totale.

    7.2 Casi speciali

  • weak : stima tramite weakGuessTime(a.rate) (intervallo minimo dipendente dal flusso),
  • dt (data rilevata): riduzione tramite detectDateAndReduce()
  • altrimenti: spazio chiave posizionale standard.
  • Il tempo è quindi stimato da budgetTime(effectiveMaskGuesses, a.rate) (con fattore di grado di maschera e elaborazione Unicode/date).


    8. Rilevazione della data e riduzione strutturale

    Time2Crack include un'elaborazione specifica della data (hasDatedetectDateAndReduce)

  • rilevazione anno 1600-2099
  • rilevazione dei modelli di data (DD/MM/YYYY, varianti di separatore),
  • sostituzione di uno spazio enorme (10^dateChars) da un set plausibile (~200 années o ~36500 dates).
  • Conseguenza: una password di tipo Mot2024! Questo è coerente con la pratica offensiva.


    9. Taratura ad alta fedeltà

    Quando la modalità di alta fedeltà è attiva, la categoria maschera riceve un moltiplicatore aggiuntivo in applyHighFidelityCalibration() :

  • se modello tastiera / sequenza / data: fattore di riduzione aggiuntivo,
  • Altrimenti: preventivo conservatore.
  • Intuizione: Questi segnali aumentano la probabilità di una prima classifica nella linea di maschere testate.


    10. Benchmarks e ordini di grandezza

    Ordini di magnitudo (profilo 12x RTX 4090):

    AlgoritmoTasso di flusso approssimativoTempo per 1st 9 candidati --------- MD5~2.03 TH/s- 10.000. SHA-1~610 GH/s~0.0016 s SHA-256~ 272 GH/s~0.0037 NT1~3.46 TH/s~0.0003 bcrypt (costo 10)~69 kH/s~4.0 h Argon2id~ 800 H/s~ 14,5 giorni

    Lettura:

  • su hash veloce, la maschera è schiacciante,
  • su hash lento, rimane molto pericoloso su modelli frequenti ma il costo diventa concreto.

  • 11. Esempi concreti di cracking maschera

    11 Thomas42

  • maschera rilevante: ?u?l?l?l?l?l?d?d
  • Keyspace: 26 26^4 10. (ordine di grandezza ~1e9)
  • su NTLM/MD5: quasi istantanea.
  • 11 summer2024

  • maschera rilevante: ?l?l?l?l?l?l?d?d?d?d
  • se l'anno rilevato, riduzione affilata (anni plausibili < 10^4).
  • 11 Marine!7

  • maschera rilevante: ?u?l?l?l?l?l?s?d
  • un modello molto comune nelle politiche aziendali.

  • 12. Confronto con Crude Force, Hybrid e PCFG

    AttaccoPunto fortePunto basso --------- Forza lordaCopertura completacosto esponenziale MascheraEfficienza eccellente sulle strutture umaneSensibile per cattiva scelta della maschera Ibrido/ruoleMolto buono su parole + mutazioniDipende da una parola di base PCFCattura la grammatica globalePiù costoso per allenare/operare

    In pratica, gli operatori spesso combinano maschera + regole + probabilità.


    13. Limitazioni di attacco di maschera

  • Dipendenza dalla maschera destra : un cattivo insieme di maschere perde rapidamente in resa.
  • Bassa generalizzazione fuori struttura : su una password davvero casuale, il vantaggio scompare.
  • Esplosione combinata se maschere troppo larghe : ?a Ripeto sulla lunghezza lunga ritorna vicino alla forza bruta.
  • Copertura linguistica parziale : Gli alfabeti univoci/diacritici richiedono giochi personalizzati.

  • 14. Efficace difesa

    14.1 lato utente

  • utilizzare un password manager,
  • generare password casuali lunghe (>= 16),
  • completamente evitare schemi Mot+annéePrénom+chiffresMajuscule+mot+symbole.
  • 14.2. Lato di sistema

  • storage con Argon2id (o bcrypt ad alto costo),
  • Systematic MFA,
  • bloccare le password compromesse,
  • telemetria di connessione e rilevazione delle anomalie.
  • 14.3 Politica

  • controllo della lunghezza e del compromesso prioritario,
  • ridurre le regole di complessità puramente cosmetica che favoriscono i modelli prevedibili.

  • 15. Riferimenti biblici

    Fonti accademiche

    Wheeler, D.L. (2016). zxcvbn: stima della forza della password a basso costo. 25 ° Simposio di sicurezza USENIX. Weir, M., Aggarwal, S., de Medeiros, B., & Glodek, B. (2009). Tracciamento di password utilizzando Grammatica Probabilistica Senza Contesto. Simposio IEEE sulla sicurezza e sulla privacy. Dürmuth, M., Angelstorf, F., Horsch, J., et al. (2015). OMEN: Password più veloce indovinando utilizzando un Enumeratore di Markov ordinato. ESSoS. Ur, B., Kelley, P. G., Komanduri, S., et al. (2012). Come si misura la tua password? UTILIZZAZIONE

    Fonti industriali e tecniche

    Hashcat Wiki.
    Attacco della maschera (-a 3). https://hashcat.net/wiki/ Hashcat (benchmarks). https://hashcat.net/hashcat/ Hive Systems (Tabella password). https://www.hivesystems.io/password-table

    Fonti web citate nell'applicazione Time2Crack

    USE sicurezza nazionale 2016 (Wheeler). https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/wheeler
    Documento generato per Time2Crack Project — Versione 1.0 — 2026-04-01 Codice sorgente: app.js (funzioni addMaskAttacksdetectDateAndReducehasDatebudgetTimeapplyHighFidelityCalibration*