Attacco PCFG — Operazione completa
Documento di riferimento del progetto Time2Crack
Recipienti: sviluppatori, ricercatori di sicurezza, utenti avanzati
Contenuto
addPCFGAttacks()pcfgKeyspace() e presupposti1. Panoramica
PCFG (Probabilistic Context-Free Grammar) modella la struttura della password in segmenti digitati (lettere, numeri, simboli), e genera i candidati più probabili in priorità.
2. Sfondo storico e accademico
Il lavoro di Weir et al. (2009) ha stabilito PCFG come un metodo principale di cracking probabilistico, spesso superiore a approcci puramente dizionario con pari budget sul corpo umano.
3. Fondazioni: grammatica strutturale delle password
Esempio:
Password123!- >L8 D3 S1
Il modello impara che alcuni modelli (L8D2♪ L6D4) sono comuni, altri rari.
4. Imparare il modello PCFG
5. Generazione ordinata di candidati
PCFG prima produce bypass ad alta probabilità. Questa priorità è la fonte principale della sua efficacia.
6. Perché PCFG rompe i segreti con alta apparente entropia
Una catena può sembrare forte nell'entropia cruda pur essendo strutturalmente molto prevedibile (parola + cifre + simbolo).
7. Attuazione in Time2Crack: addPCFGAttacks()
Time2Crack calcola un budget tramite pcfgKeyspace(pw) poi converte in tempo con budgetTime(...).
Categoria: cat: "pcfg", nota: nPCFGDetected.
8. Funzione pcfgKeyspace() e presupposti
Il modello interno approssima le dimensioni lessicali, numeriche e simboliche, e limita quindi lo spazio chiave a rimanere realistico in uso interattivo.
Componenti principali:
wordGuesses),10^digitLen),32^symbolCount),Il bilancio PCFG viene quindi convertito in tempo budgetTime(pcfgGuesses, rate).
9. Gestione digitale: tappo morbido (sostituimento del tappo duro)
Time2Crack ora utilizza un tappo morbido per evitare vassoi artificiali causati da una singola testata rigida.
9.1 Approccio precedente (copia dura)
Uno Math.min(..., cap) schiaccia tutti i valori sopra la voce nella stessa costante, rimuovendo la gerarchia tra i casi "difficili" e "molti difficili".
9.2 Nuovo approccio (corso morbido)
Il modello applica compressione continua:
knee),max).Formula utilizzata:
soft = knee + (max - knee) * (1 - exp(-(raw - knee)/(max - knee))) per raw > knee.
Altrimenti soft = raw.
9.3 Parametri correnti (app.js)
PCFGSOFTCAPKNEE = 1e14PCFGMAXGUESSES = 1e18Effetto: stabilità digitale conservata senza rottura brusca o perdita totale di differenziazione.
10. Taratura ad alta fedeltà
Con PCFG v2, i segnali strutturali sono già integrati nella stima del grado (pcfgKeyspaceLa regolazione HF è quindi neutrale per evitare il doppio conteggio.
11. Benchmarks e ordini di grandezza
Su hash veloce, le strutture attuali cadono molto rapidamente.
Su KDF lento, l'ordine PCFG rimane vantaggioso ma il costo per tentativo rimane decisivo.
12. Esempi pratici
Password123 : obiettivo ideale PCFG.xQ7$vP2!mL9@ : bassa compatibilità PCFG.13. Limiti dell'attacco PCFG
14. Efficace difesa
Word+Digits+Symbol).