Cos'è la Crittografia Zero-Knowledge? Una Guida Semplice
La crittografia zero-knowledge significa che il provider non può accedere ai tuoi dati.
La crittografia zero-knowledge è un'architettura crittografica in cui il provider di servizi non può accedere ai dati dell'utente perché le chiavi di crittografia sono derivate e memorizzate esclusivamente sul dispositivo dell'utente e non vengono mai trasmesse ai server del provider. A differenza della crittografia cloud standard in cui il provider detiene le chiavi, la crittografia zero-knowledge significa che anche con un ordine del tribunale, una violazione dei dati, o un dipendente disonesto, il provider non ha nulla da consegnare. Le linee guida NIST sulla gestione delle chiavi (SP 800-57) stabiliscono il principio che la custodia delle chiavi determina l'accesso ai dati -- la crittografia zero-knowledge porta questo principio alle sue conclusioni logiche.
Come Funziona la Crittografia Zero-Knowledge
L'analogia più semplice: una cassaforte in hotel dove solo tu imposti la combinazione, e l'hotel non la conosce mai. Se dimentichi la combinazione, l'hotel non può aprire la cassaforte per te. Non è un difetto del design. È il design.
In termini tecnici, la crittografia zero-knowledge funziona attraverso tre fasi:
Derivazione della chiave sul dispositivo. L'utente fornisce una credenziale (password, passphrase, o pattern). Una funzione di derivazione della chiave (tipicamente PBKDF2 o Argon2) combina questa credenziale con un salt crittografico unico per produrre una chiave di crittografia. Questo avviene interamente sul dispositivo dell'utente.
Crittografia prima della trasmissione. Tutti i dati vengono cifrati sul dispositivo usando la chiave derivata prima di lasciare il dispositivo per l'archiviazione cloud o il backup. L'output cifrato (testo cifrato) è ciò che viene caricato.
Il provider non vede mai la chiave. La chiave di crittografia esiste solo nella memoria del dispositivo durante l'uso attivo. Non viene mai trasmessa ai server del provider. Il provider memorizza blob cifrati indistinguibili da dati casuali.
Il vincolo critico: se l'utente perde le proprie credenziali e non ha una frase di recupero, i dati sono permanentemente inaccessibili. Non esiste alcun flusso "password dimenticata" che funzioni senza un meccanismo di recupero memorizzato indipendentemente. Se un servizio offre la reimpostazione della password via email e i tuoi dati riappaiono, quel servizio non usa la crittografia zero-knowledge. Detiene le tue chiavi.
Crittografia Zero-Knowledge vs Altri Tipi di Crittografia
Il termine "crittografia" appare nei materiali di marketing di quasi ogni servizio cloud. Le differenze tra i tipi sono sostanziali.
| Tipo | Chi Detiene la Chiave | Il Provider Può Leggere i Dati | Sopravvive a una Violazione del Provider | Esempio |
|---|---|---|---|---|
| Nessuna crittografia | N/D | Sì | No | Dropbox (tier standard) |
| Crittografia in transito (TLS) | Provider | Sì (a riposo sui loro server) | No | Google Photos |
| Crittografia a riposo lato server | Provider | Sì (detengono la chiave di decifratura) | Parzialmente (dipende dalla portata della violazione) | iCloud (standard) |
| E2E crittografia gestita dal provider | Provider genera, utente memorizza | Tecnicamente no, ma il provider aveva accesso alla generazione della chiave | Parzialmente | iCloud Advanced Data Protection |
| Crittografia zero-knowledge | Solo utente (derivata sul dispositivo) | No. Matematicamente impossibile. | Sì. I blob cifrati sono inutili senza la chiave dell'utente. | Signal, Proton Mail, Vaultaire |
La distinzione tra "crittografia a riposo" e "crittografia zero-knowledge" è quella più comunemente confusa. Con la crittografia a riposo, il provider cifra i tuoi dati sui propri server usando chiavi che controlla. Questo protegge contro il furto fisico dell'hardware del server. Non protegge contro il provider che legge i tuoi dati, una citazione in giudizio governativa per i dati e le chiavi, o una minaccia interna. Il provider ha la capacità di decifratura.
Con la crittografia zero-knowledge, il provider non ha mai la capacità di decifratura. I dati cifrati sui loro server sono opachi per loro come lo sono per qualsiasi aggressore esterno.
Perché la Crittografia Zero-Knowledge Conta
Le Violazioni dei Dati Espongono Miliardi di Record Ogni Anno
L'Identity Theft Resource Center ha riportato 3.205 compromissioni dei dati negli Stati Uniti nel 2023, che hanno colpito circa 353 milioni di individui. Quando un provider che detiene le chiavi di crittografia subisce una violazione, l'aggressore ottiene potenzialmente accesso sia ai dati cifrati che alle chiavi per decifrarli. L'architettura zero-knowledge elimina completamente questo rischio. Il server violato contiene solo testo cifrato che è computazionalmente infeasibile da decifrare.
La Coercizione Legale È una Minaccia Reale
Le agenzie governative in diverse giurisdizioni possono obbligare i provider a consegnare i dati memorizzati. Se il provider detiene le chiavi di crittografia, deve conformarsi. Con l'architettura zero-knowledge, la risposta del provider a una citazione in giudizio è il blob cifrato, che è inutile senza le credenziali dell'utente. Advanced Data Protection di Apple per iCloud si muove in questa direzione ma è stata introdotta solo in iOS 16.2 (dicembre 2022) e non è abilitata per impostazione predefinita.
"Fidatevi di Noi" Non È un'Architettura di Sicurezza
La crittografia standard si basa sulla promessa del provider di non accedere ai tuoi dati. La crittografia zero-knowledge sostituisce quella promessa con una garanzia matematica. Il provider non può accedere ai dati nemmeno se vuole, nemmeno se un dipendente diventa disonesto, nemmeno se viene acquisito da un'azienda con valori di privacy diversi. L'architettura impone il vincolo.
Lo Standard NIST Dietro la Crittografia
AES-256-GCM, il cifrario più comunemente usato nelle implementazioni zero-knowledge, è stato standardizzato dal National Institute of Standards and Technology in SP 800-38D (2007). AES stesso è stato selezionato dal NIST attraverso una competizione pubblica nel 2001, sostituendo il vecchio standard DES. Il "256" si riferisce alla lunghezza della chiave in bit -- una chiave a 256 bit ha 2^256 valori possibili, un numero così grande che la forza bruta richiederebbe più energia di quanta il sole produrrà nel resto della sua vita.
GCM (Galois/Counter Mode) aggiunge la crittografia autenticata, il che significa che il processo di decifratura rileva qualsiasi manomissione del testo cifrato. Se anche un solo bit dei dati cifrati viene alterato, la decifratura fallisce invece di produrre output corrotto. Questo impedisce agli aggressori di manipolare i dati cifrati senza rilevamento.
PBKDF2 (Password-Based Key Derivation Function 2), specificata in RFC 8018, converte una credenziale fornita dall'utente in una chiave crittografica tramite hashing ripetuto. Eseguire la funzione hash centinaia di migliaia di volte rende ogni tentativo di password computazionalmente costoso, trasformando un semplice pattern o password in una chiave che resiste agli attacchi di forza bruta.
Come Vaultaire Implementa la Crittografia Zero-Knowledge
Vaultaire è un'app vault per iPhone costruita su architettura zero-knowledge. Ecco come funziona l'implementazione a ogni livello.
Derivazione della chiave. L'utente disegna un pattern su una griglia 5x5 di 25 punti. La sequenza dei punti, nell'ordine, viene inserita in PBKDF2 con HMAC-SHA512 e un salt crittografico unico per vault. L'output è una chiave di crittografia AES a 256 bit. Il pattern non viene mai memorizzato sul dispositivo. Non come hash, non come rappresentazione, non in alcuna forma.
Crittografia dei file. Ogni file importato viene cifrato con AES-256-GCM usando la chiave derivata e un vettore di inizializzazione (IV) generato casualmente e unico per quel file. File identici producono testo cifrato diverso perché l'IV differisce.
Crittografia dei metadati. Nomi dei file, date di creazione e dati delle anteprime vengono cifrati separatamente usando ChaCha20, un cifrario diverso che fornisce diversità crittografica ed elimina gli attacchi side-channel di temporizzazione della cache.
Gestione delle chiavi. Il Secure Enclave di Apple memorizza il materiale chiave in un coprocessore hardware dedicato con la propria memoria cifrata. Le chiavi vengono cancellate dalla memoria dell'app quando Vaultaire si chiude o l'utente passa ad altra app.
Nessun registro vault. Non esiste alcun database che elenca i vault, nessun conteggio, nessun nome. Ogni pattern apre un vault diverso. L'app stessa non può determinare quanti vault esistano. Consulta l'architettura di sicurezza completa e la spiegazione della crittografia pattern.
Come Capire se un'App Usa Vera Crittografia Zero-Knowledge
Tre test che richiedono meno di un minuto:
Il test della password dimenticata. Se l'app può reimpostare la tua password via email e i tuoi dati riappaiono, l'app detiene le tue chiavi di crittografia. Non è zero-knowledge.
Il test del nuovo dispositivo. Se accedi su un nuovo dispositivo e i tuoi dati appaiono senza trasferire le chiavi dal vecchio dispositivo o inserire una frase di recupero, il server ha le tue chiavi. Non è zero-knowledge.
Il test dell'account. Se l'app richiede un indirizzo email o un numero di telefono, il provider ha un collegamento tra la tua identità e i tuoi dati. Non è necessariamente squalificante, ma combinato con uno dei precedenti, conferma che il provider può accedere ai tuoi dati.
App che superano tutti e tre: Signal, Proton Mail, Standard Notes, Vaultaire. App che ne falliscono almeno uno: la maggior parte dei servizi di archiviazione cloud, la maggior parte delle app "vault" sull'App Store.
Domande Frequenti
La crittografia zero-knowledge è uguale alla crittografia end-to-end?
Si sovrappongono ma non sono identiche. La crittografia end-to-end (E2EE) significa che i dati vengono cifrati sul dispositivo del mittente e decifrati solo sul dispositivo del destinatario. La crittografia zero-knowledge significa che il provider non può accedere ai dati. Un servizio può essere end-to-end cifrato senza essere zero-knowledge se il provider ha generato o ha accesso alle chiavi in qualche momento. La crittografia zero-knowledge è lo standard più rigoroso.
Cosa succede se perdo la password con la crittografia zero-knowledge?
I tuoi dati diventano permanentemente inaccessibili. Non esiste alcuna chiave master, nessuna backdoor, e nessun processo di recupero che funzioni senza una frase di recupero memorizzata separatamente. Questo è il compromesso fondamentale: la privacy assoluta richiede responsabilità assoluta. Alcune app zero-knowledge (incluso Vaultaire) generano una frase di recupero alla creazione del vault che può rigenerare la chiave di crittografia se la credenziale principale viene persa.
Le forze dell'ordine possono accedere ai dati cifrati zero-knowledge?
Le forze dell'ordine possono obbligare il provider a consegnare i dati memorizzati. Con la crittografia zero-knowledge, i dati che il provider consegna sono un blob cifrato inutile senza la chiave dell'utente. Se le forze dell'ordine possano obbligare l'utente a fornire la chiave è una questione giuridica separata che varia a seconda della giurisdizione. I tribunali negli USA hanno generalmente ritenuto che lo sblocco biometrico forzato (Face ID, impronte digitali) sia ammissibile, mentre la divulgazione forzata di password/pattern è più contestata ai sensi del Quinto Emendamento.
La crittografia zero-knowledge è più lenta della crittografia normale?
Le operazioni di crittografia e decifratura sono identiche. AES-256-GCM funziona alla stessa velocità indipendentemente da chi detiene la chiave. L'unico costo aggiunto è la derivazione della chiave: eseguire PBKDF2 con centinaia di migliaia di iterazioni richiede circa 0,5-2 secondi su un iPhone moderno. Questo avviene una volta allo sblocco del vault, non per ogni file. In pratica, gli utenti non notano alcuna differenza di velocità.
Zero-knowledge significa che l'app non raccoglie dati?
Non necessariamente. Zero-knowledge si riferisce specificamente all'architettura di crittografia. Il provider non può accedere ai contenuti cifrati. L'app può comunque raccogliere analisi anonime, report di crash, o metadati di utilizzo se l'utente acconsente. Ciò che non può raccogliere è il contenuto dei file cifrati, la chiave di crittografia, o le credenziali usate per derivarla. La privacy policy di Vaultaire descrive in dettaglio esattamente quali dati opzionali vengono raccolti con il permesso dell'utente.
Come si confronta la crittografia zero-knowledge con Advanced Data Protection di Apple?
Advanced Data Protection (ADP) di Apple, introdotto in iOS 16.2, estende la crittografia end-to-end alla maggior parte delle categorie di dati iCloud. Con ADP abilitato, Apple non può accedere ai dati protetti. Le differenze principali rispetto a un'app vault zero-knowledge dedicata: ADP è opt-in (disattivato per impostazione predefinita), richiede un Apple ID, e protegge i dati solo all'interno dell'ecosistema Apple. Un'app vault zero-knowledge come Vaultaire funziona indipendentemente dall'infrastruttura Apple, non richiede un account, e aggiunge funzionalità come la negabilità plausibile e la modalità coercizione che ADP non fornisce.
Sintesi
La crittografia zero-knowledge è l'architettura in cui il provider non può matematicamente accedere ai dati dell'utente perché le chiavi di crittografia non lasciano mai il dispositivo dell'utente. Si differenzia dalla crittografia standard, dalla crittografia a riposo, e persino da alcune forme di crittografia end-to-end in un aspetto critico: l'incapacità del provider di accedere ai dati è imposta dalla matematica, non dalla policy. Il compromesso -- perdere la chiave significa perdere i dati -- non è un bug. È il meccanismo che rende reale la garanzia.