WebAuthn PRF-Based Vault Key Wrapping and Zero-Knowledge PWA Storage Architecture
Questo articolo presenta un'architettura di sicurezza lato client per i vault di credenziali basati sul web che ottiene forti proprietà di zero-knowledge combinando l'estensione PRF di WebAuthn con la crittografia simmetrica e modelli di archiviazione del browser ottimizzati.
Articolo originale sotto licenza CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di avere una cassaforte digitale (una "vault") dove conservi i tuoi segreti più importanti, come password o note private. Di solito, per aprire questa cassaforte serve una chiave maestra (una password). Ma cosa succederebbe se potessi aprirla usando il tuo volto, la tua impronta digitale o una chiave di sicurezza fisica? E se, anche se un hacker rubasse una copia del contenuto della tua cassaforte, non riuscisse comunque a leggere una singola parola senza la tua specifica chiave biometrica?
Questo articolo di Ian Pinto descrive un nuovo modo per costruire una cassaforte digitale di questo tipo, ultra-sicura, per i browser web. Combina alcuni concetti tecnologicamente avanzati in un sistema che mantiene i tuoi dati "zero-knowledge" (a conoscenza zero) — il che significa che il server o il sistema di archiviazione non sanno nulla di ciò che c'è all'interno, nemmeno la chiave per aprerlo.
Ecco come funziona, suddiviso in parti semplici:
1. La Chiave Magica: WebAuthn PRF
Pensa alla tua passkey (quella che usi per accedere con il volto o l'impronta digitale) non solo come un guardiano "Sì/No", ma come un generatore di ricette segrete.
- Il Vecchio Modo: Dimostri di essere tu, e il sistema dice "Accesso Concesso".
- Il Nuovo Modo (PRF): Quando dimostri di essere tu, il tuo dispositivo esegue segretamente una complessa ricetta matematica (chiamata Funzione Pseudo-Casuale o PRF) utilizzando un "sale" speciale (un ingrediente casuale). Questa ricetta produce una "salsa segreta" unica e di alta qualità (un codice a 32 byte) che solo il tuo specifico dispositivo sa come preparare.
- Il Problema: Questa salsa segreta viene creata all'interno del chip sicuro del tuo dispositivo. Non lascia mai il dispositivo e non viene mai salvata sull'hard disk. Esiste per un istante fugace, il tempo necessario per sbloccare la tua cassaforte, e poi viene immediatamente cancellata.
2. Il Lucchetto: Avvolgere la Chiave della Cassaforte
La tua cassaforte ha una chiave maestra (chiamiamola Chiave K) che effettivamente blocca i dati.
- Il sistema prende quella salsa segreta fugace dalla tua passkey e la usa per avvolgere la Chiave K in una busta digitale (crittografia).
- Una volta avvolta, la Chiave K viene chiusa dentro questa busta. Il sistema salva questa busta nella memoria del tuo browser (IndexedDB).
- Punto Cruciale: Il sistema non salva mai la salsa segreta o la Chiave K non avvolta. Salva solo l'involucro chiuso. Se un hacker ruba l'archiviazione, avrà solo una scatola chiusa senza chiave.
3. La Casa Sicura: Archiviazione IndexedDB
L'articolo propone un modo specifico per organizzare questi dati nell'archiviazione del browser (IndexedDB), che è come un archivio digitale.
- Il Sistema di Archiviazione: Il sistema crea tre cartelle specifiche:
- Le Vault (Le Cassaforti): Dove vivono le buste chiuse (le chiavi avvolte).
- Le Credenziali: Un elenco delle tue passkey e dei loro "numeri di serie" (per assicurarsi che nessuno stia usando una copia falsa della tua chiave).
- I Meta: Note generali per l'app.
- Garanzia Zero-Knowledge: L'articolo sostiene che poiché l'archiviazione contiene solo le buste chiuse e i metadati pubblici, un ladro che ruba l'intero archivio non può ricostruire la chiave. Rimarrà bloccato con la scatola chiusa e nessun modo per aprirla senza il tuo dispositivo fisico.
4. Il Piano di Riserva: Il "Fallback della Password"
E se il tuo browser non supportasse questa sofisticata funzione di "salsa segreta" (come su alcuni tablet Android)?
- Il sistema ha un piano di riserva chiamato pw-v1. Inveve di usare la salsa segreta della passkey, utilizza un puzzle matematico molto lento e pesante (scrypt) basato su una password tradizionale che digiti.
- È più lento e meno conveniente, ma garantisce che tu possa comunque aprire la tua cassaforte anche se la funzione hardware avanzata non è disponibile. È come avere una serratura fisica accanto allo scanner biometrico.
5. Controlli di Sicurezza: Fermare gli Attacchi di Replay
L'articolo enfatizza un "controllo di replay".
- Immagina che un ladro registri il tuo segnale di "sblocco" e provi a riprodurlo in seguito per aprire la cassaforte.
- Il sistema tiene un contatore (come il contatore dei chilometri su un'auto). Ogni volta che sblocchi la cassaforta, il contatore sale. Se il sistema vede un segnale con un numero di contatore vecchio, sa che si tratta di una registrazione e la rifiuta.
- Nota: L'articolo ammette che questo non è perfetto per tutti i dispositivi (alcune passkey sincronizzate non aggiornano il contatore), ma aggiunge uno strato di difesa.
6. Cosa questo articolo NON fa
L'autore è molto attento a specificare contro cosa non protegge questo sistema:
- Non protegge da un virus sul tuo computer. Se un hacker è già all'interno del tuo browser mentre stai digitando, può rubare la chiave mentre viene utilizzata. Questo sistema protegge solo i dati "a riposo" (quando sono fermi nell'archiviazione).
- Non protegge dai leak "side-channel". Se l'app comprime i dati prima di bloccarli, o se la dimensione della scatola chiusa cambia in base alla lunghezza della tua password, un hacker esperto potrebbe indovinare cosa c'è dentro semplicemente misurando la dimensione della scatola. L'articolo avverte gli sviluppatori di aggiungere del "padding" ai propri dati (rendere tutte le scatole della stessa dimensione) per evitare questo.
Riassunto
Questo articolo presenta il progetto per una cassaforte per password basata sul web che è matematicamente provata come illeggibile per chiunque non possieda la tua specifica passkey fisica. Utilizza la tua passkey per generare un codice temporaneo e unico che blocca i tuoi dati, assicura che quel codice non venga mai salvato e organizza l'archiviazione in modo che anche un furto totale del database non fornisca altro che scatole chiuse. È un sistema "Zero-Knowledge" dove il fornitore dell'archiviazione (o un hacker) non sa nulla dei tuoi segreti.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.