Attacco PCFG — Operazione completa

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

Contenuto

  • Panoramica
  • Sfondo storico e accademico
  • Fondazioni: grammatica strutturale delle password
  • Imparare il modello PCFG
  • Generazione ordinata di candidati
  • Perché PCFG rompe segreti con alta apparente entropia
  • Attuazione in Time2Crack: addPCFGAttacks()
  • Funzione pcfgKeyspace() e presupposti
  • Gestione digitale: tappo morbido (sostituimento del tappo duro)
  • Taratura ad alta fedeltà
  • Benchmarks e ordini di grandezza
  • Esempi concreti
  • Limiti di attacco PCFG
  • Efficace difesa
  • Referenze

  • 1. 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:

    Il modello impara che alcuni modelli (L8D2L6D4) sono comuni, altri rari.

    4. Imparare il modello PCFG

  • Segment password in classi.
  • Stima la probabilità di scheletri.
  • Stima la probabilità di gettoni in ogni slot.
  • 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:

  • componente lettera (wordGuesses),
  • Componente numeri (10^digitLen),
  • componente simbolo (32^symbolCount),
  • fattore di variazione strutturale.
  • 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:

  • lineare sotto un punto di gomito (knee),
  • compressione progressiva sopra,
  • asintote ad un massimo numerico (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 = 1e14
  • PCFGMAXGUESSES = 1e18
  • Effetto: 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

  • dipendenza dal corpo di formazione,
  • prestazioni basse sul reale casuale,
  • complessità della calibrazione linguistica multi-dominio,
  • il v1 del modello rimane un'approssimazione di PCFG (non una grammatica guidata online).
  • 14. Efficace difesa

  • Evitare le strutture abituali (Word+Digits+Symbol).
  • Utilizzare segreti generati casualmente.
  • Solid KDF + MFA.
  • 15. Riferimenti biblici

  • Weir et al. (2009).
  • Ma et al. (2014). IEEE S&P.
  • Ruote, D. (2016).