Indice
1. Introduzione
Le password rimangono la forma dominante di autenticazione degli utenti nonostante le spinte del settore verso soluzioni senza password. Memorizzare gli hash delle password è una pratica standard, ma testarne la robustezza tramite cracking è dispendioso in termini di risorse. L'outsourcing di questo compito a server di terze parti introduce rischi significativi per la privacy, poiché sia il digest hash che il testo in chiaro recuperato vengono esposti. Questo articolo introduce il protocollo Privacy-Preserving Password Cracking (3PC), che consente a un client di sfruttare la potenza computazionale di una terza parte per il cracking degli hash senza rivelare l'hash target o la password risultante.
2. Il Protocollo 3PC
Il protocollo 3PC è progettato per risolvere il problema di fiducia nel cracking di password in outsourcing. La sua innovazione principale consiste nel consentire a una terza parte di eseguire il lavoro computazionalmente intensivo senza apprendere nulla sui dati effettivi del cliente.
2.1 Core Mechanism & Predicate Function
Il protocollo si basa sul concetto di predicate encryption, adattato per le funzioni hash. Il cliente non invia direttamente l'hash target $H(p)$. Invece, invia un insieme di anonimato contenente l'hash reale mescolato con $k-1$ hash esca accuratamente costruiti. Il ruolo del server di terze parti è di decifrare tutti gli hash in questo insieme utilizzando un dizionario di password fornito o un set di regole.
La chiave è la funzione predicato $f$. Il server valuta una password candidata $p'$ rispetto a ciascun hash nell'insieme di anonimato. La funzione è definita in modo tale che $f(H(p'), H_i) = 1$ se e solo se $H(p')$ corrisponde all'hash $H_i$ nell'insieme. Il server restituisce l'insieme delle password candidate che soddisfano $f=1$ per qualsiasi hash nell'insieme, senza sapere per quale hash specifico (reale o esca) è stata trovata una corrispondenza.
2.2 Decoy Hash Generation & Anonymity Set
Generare esche plausibili è fondamentale per la sicurezza. Gli hash delle esche devono essere indistinguibili dall'hash reale per il server. Il documento propone di generare le esche da una distribuzione che corrisponde allo spazio di output della funzione hash target (ad esempio, NTLM, SHA-256). Ciò garantisce l'anonimato $k$ per l'hash reale. Il client mantiene negabilità plausibile, poiché nemmeno il client può provare crittograficamente quale hash fosse il target originale dopo aver inviato l'insieme.
Key Insights
- Privacy attraverso l'Oscurità in un Insieme: La sicurezza deriva dal nascondere l'hash reale tra esche, non dalla tradizionale crittografia dell'hash stesso.
- Spostamento del Carico Computazionale: L'overhead del client consiste nella generazione dell'insieme di anonimato; il lavoro pesante degli attacchi brute-force/wordlist è completamente esternalizzato.
- Promessa di Ricerca a Tempo Costante: Il protocollo afferma di consentire un tempo di ricerca indipendente dalla dimensione $k$ dell'insieme di anonimato, limitato solo dagli IOPS del server.
3. Technical Implementation & Analysis
3.1 Fondamenti Matematici
La sicurezza del protocollo può essere modellata probabilisticamente. Sia $S$ l'insieme di anonimato di dimensione $k$, contenente un hash reale $H_r$ e $k-1$ esche $H_{d1}...H_{d(k-1)}$. La probabilità che il server indovini correttamente l'hash reale dopo aver osservato l'insieme e i risultati di decrittazione è al massimo $1/k$, assumendo esche perfette.
La perdita di informazioni $\mathcal{L}$ verso il server può essere quantificata utilizzando la min-entropia: $\mathcal{L} \leq -\log_2(1/k) = \log_2(k)$ bit. Il client può controllare la perdita regolando $k$. La valutazione della funzione predicato per un candidato $p'$ su tutti i $k$ hash può essere rappresentata come un vettore: $\vec{R} = [f(H(p'), H_1), f(H(p'), H_2), ..., f(H(p'), H_k)]$. Una corrispondenza sulla qualsiasi posizione restituisce $p'$ al client.
3.2 Performance & Scalability
L'articolo sostiene che il collo di bottiglia principale non siano le operazioni crittografiche, ma le operazioni di input/output al secondo (IOPS) della configurazione di cracking del server (ad esempio, la larghezza di banda della memoria GPU/FPGA). Poiché il server deve testare ogni password candidata contro tutti gli $k$ hash, il fattore di lavoro aumenta linearmente in teoria ($O(k)$). Tuttavia, sfruttando un'elaborazione in batch efficiente su hardware parallelo, il rallentamento effettivo può essere minimizzato, avvicinandosi alla presunta ricerca a "tempo costante" per valori pratici di $k$.
4. Experimental Results & Chart Description
Gli autori hanno implementato una proof-of-concept su un'architettura FPGA. Sebbene le specifiche cifre di prestazione non siano dettagliate nell'estratto fornito, l'articolo afferma di dimostrare la fattibilità del protocollo.
Grafico delle Prestazioni Ipotetico (Basato sulla Descrizione del Protocollo): Un grafico a linee mostrerebbe probabilmente la "Velocità Effettiva di Decrittazione" sull'asse Y (ad esempio, hash/secondo) rispetto alla "Dimensione dell'Insieme di Anonimato (k)" sull'asse X. La curva per un attacco tradizionale su un singolo hash sarebbe una linea alta e piatta. La curva per il 3PC protocol mostrerebbe un declino all'aumentare di k, ma la pendenza sarebbe meno ripida di una proiezione lineare ingenua a causa dell'elaborazione in batch ottimizzata su FPGA/GPU. Una terza linea potrebbe rappresentare il "Theoretical Upper Bound (IOPS Limit)", che agisce come un asintoto per la curva 3PC.
5. Esempio di Caso di Studio del Framework di Analisi
Scenario: Un penetration tester freelance (Client) recupera un hash NTLM dal sistema di un cliente. La politica delle password è nota: combinazione alfanumerica di 9 caratteri. Il tester non dispone della potenza GPU necessaria per eseguire il cracking in tempi utili.
Applicazione del Protocollo 3PC:
- Configurazione del Client: Il tester imposta un parametro di privacy, ad esempio, $k=100$. L'hash NTLM reale è $H_{real}$. Il software del client genera 99 hash NTLM esca crittograficamente plausibili, creando l'insieme di anonimato $S$.
- Coinvolgimento del Server: Il tester invia $S$ a un servizio commerciale di cracking (Server) con la richiesta di decifrare tutti gli hash utilizzando un dizionario e regole per password alfanumeriche di 9 caratteri.
- Elaborazione del Server: Il server esegue i propri strumenti di cracking. Per ogni password candidata generata, calcola il suo hash NTLM e verifica la corrispondenza con tutti i 100 hash in $S$ in un'operazione batch.
- Restituzione del Risultato: Il server restituisce un elenco di tutte le password che hanno corrisposto qualsiasi Hash in $S$. Non specifica quale hash corrisponda.
- Filtraggio Client: Il tester conosce l'hash originale $H_{real}$. Calcola l'hash di ogni password restituita per identificare quella che corrisponde a $H_{real}$, recuperando così la password target. Le altre password restituite corrispondono a esche decifrate e vengono scartate.
6. Core Insight & Analyst's Perspective
Core Insight: The 3PC protocol is a clever, pragmatic hack that turns a fundamental limitation of cryptography—the one-way nature of hash functions—into a privacy feature. It recognizes that in password cracking, the goal isn't to hide the processo ma per nascondere il target e il risultato all'interno del rumore intrinseco del processo. Non si tratta tanto di crittografia "inalterabile", quanto piuttosto di un'offuscamento strategico delle informazioni, simile nello spirito a come reti di mixing come Tor nascondono l'origine di un messaggio all'interno di una folla.
Flusso Logico: La logica è solida ma si basa su un presupposto critico, spesso trascurato: la capacità di generare esche perfettamente indistinguibili. Se il server può distinguere statisticamente gli hash reali dalle esche (ad esempio, in base alla frequenza in violazioni precedenti o a pattern nella generazione degli hash), il modello di $k$-anonimato collassa. L'estensione proposta dal paper della crittografia predicativa alle funzioni hash è innovativa, ma la sicurezza nel mondo reale dipende più dalla qualità dell'algoritmo di generazione delle esche che dalla funzione predicativa stessa.
Strengths & Flaws: Il suo punto di forza è l'applicabilità diretta a una nicchia reale e poco servita (pentester attenti alla privacy) e il suo overhead crittografico relativamente leggero per il client. Un difetto importante, come in molti sistemi che preservano la privacy, è il modello trust-but-verify Paradosso. Il client deve fidarsi del server affinché esegua correttamente il protocollo e non alteri il processo (ad esempio, registrando stati intermedi per correlare i tempi). A differenza di protocolli crittografici avanzati come la Fully Homomorphic Encryption (FHE), che offre una garanzia teorica più forte ma è impraticabilmente lenta (come visto nelle prime implementazioni come il lavoro pionieristico di Gentry), il 3PC sacrifica la sicurezza crittografica assoluta per l'efficienza pratica. Questo è un compromesso ingegneristico valido, ma deve essere comunicato chiaramente.
Approfondimenti Pratici: Per i team di sicurezza, questo protocollo è uno strumento valido per audit sicuri delle password, specialmente quando la conformità (come il GDPR) limita la condivisione di hash sensibili. Il passo immediato è implementare e verificare il modulo di generazione degli esche. Per i ricercatori, la prossima frontiera è rafforzare il protocollo contro attacchi attivi del server e integrarlo con altri PET. Il futuro non riguarda solo il rendere privato il cracking; riguarda la costruzione di una suite di operazioni di sicurezza che preservano la privacy, un po' come l'evoluzione dalla semplice crittografia alle zero-knowledge proof nei protocolli di autenticazione. Il 3PC è un primo passo promettente in quella direzione per la sicurezza offensiva.
7. Future Applications & Research Directions
- Compliance-Driven Security Auditing: Enabling regulated industries (finance, healthcare) to conduct rigorous password strength testing across employee accounts without ever exposing password hashes, even to internal audit teams, aiding GDPR/CCPA compliance.
- Federated Hash Analysis: Più organizzazioni potrebbero contribuire in modo collaborativo a uno sforzo di decrittazione contro un dump di password di un attore di minaccia condiviso (ad esempio, di un gruppo ransomware) senza che nessun partecipante riveli i propri hash interni o veda quelli altrui.
- Integrazione con i Servizi di Allerta per Violazioni delle Password: Gli utenti potrebbero inviare un set di anonimità derivato dai propri hash di password a un servizio come "Have I Been Pwned" senza rivelare l'hash effettivo, migliorando la privacy durante il controllo delle violazioni.
- Direzione di Ricerca - Resilienza Post-Quantistica: Indagare la sicurezza del protocollo in un contesto post-quantistico. Sebbene le funzioni hash possano essere di per sé resistenti ai computer quantistici, i meccanismi di generazione degli esche e della funzione predicato necessitano di analisi contro modelli avversari quantistici.
- Direzione di Ricerca - Modelli di Avversari Attivi: Estendere il modello di sicurezza per considerare server attivamente malevoli che deviano dal protocollo (ad esempio, introducendo side-channel) è cruciale per l'adozione nel mondo reale.
8. References
- Bonneau, J., Herley, C., van Oorschot, P. C., & Stajano, F. (2012). The quest to replace passwords: A framework for comparative evaluation of web authentication schemes. IEEE Symposium on Security and Privacy.
- FIDO Alliance. (2022). FIDO: The Future of Fast, Secure, Passwordless Sign-Ins. https://fidoalliance.org/
- Gentry, C. (2009). Uno schema di crittografia completamente omomorfica (Tesi di dottorato, Stanford University). (Per un confronto sulle tecniche di privacy computazionale).
- NIST. (2020). Digital Identity Guidelines (NIST Special Publication 800-63B).
- Weir, M., Aggarwal, S., de Medeiros, B., & Glodek, B. (2009). Password cracking using probabilistic context-free grammars. IEEE Symposium on Security and Privacy.
- Zhao, F., & Halderman, J. A. (2019). Misurare l'Impatto della Robustezza delle Password sugli Attacchi di IndovinamentoUSENIX Security Symposium.