Cos'è la Crittografia Zero-Knowledge? Una Guida Semplice
La crittografia zero-knowledge significa che il provider non può accedere ai tuoi dati.
La cifratura a conoscenza zero è un'architettura con un confine sul fornitore, in cui il servizio non possiede la chiave necessaria per decifrare i contenuti salvati dagli utenti. A differenza della normale cifratura cloud, in cui il fornitore controlla la chiave dei contenuti, la cifratura lato client può lasciare questa capacità sui dispositivi degli utenti. Una richiesta legale, una violazione o un dipendente infedele possono comunque esporre testo cifrato, record degli account, dati sul traffico o altri metadati conservati dal fornitore. Le linee guida del NIST sulla gestione delle chiavi rendono la custodia delle chiavi centrale per l'accesso, ma l'app client, il sistema operativo e il dispositivo sbloccato restano parte del confine di fiducia.
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 come una password, una passphrase o una sequenza. Una funzione di derivazione delle chiavi basata su password la combina con un salt per produrre una chiave sul dispositivo dell'utente. Un progetto ben separato può usare quella chiave per sbloccare una chiave di cifratura dei contenuti casuale, invece di cifrare ogni file direttamente con la credenziale umana.
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 fornitore non riceve alcuna chiave dei contenuti in chiaro. Le chiavi dei contenuti esistono per forza nella memoria del client durante l'uso e possono anche essere conservate in locale o in remoto dentro buste cifrate autenticate. Il fornitore può conservare testo cifrato e chiavi incapsulate senza conservare il segreto dell'utente necessario per aprirli. I metadati di account, traffico, dimensione dei record e tempi possono restare visibili.
Il vincolo critico: se l'utente perde tutte le credenziali valide e il percorso di ripristino, il contenuto cifrato diventa inaccessibile. Un ripristino può comunque esistere, ma bisogna spiegare chi custodisce le sue chiavi. Se il solo recupero tramite email ripristina il contenuto leggibile senza l'approvazione del vecchio dispositivo, una frase di ripristino, una chiave di ripristino o un segreto equivalente conservato dall'utente, il fornitore ha mantenuto un percorso effettivo verso il testo in chiaro.
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) |
| Cifratura end-to-end della piattaforma | Dispositivi client e sistema di recupero dell'account | Non attraverso il normale percorso di servizio | Dipende dal client, dal ripristino e dall'esposizione dei metadati | iCloud con Protezione avanzata dati |
| Cifratura lato client cieca per il fornitore | Client e percorso di ripristino controllato dall'utente | Nessuna chiave dei contenuti in chiaro in mano al fornitore | Il contenuto può restare cifrato; metadati e testo cifrato possono comunque trapelare | Casseforti cifrate e sistemi di backup |
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 cifratura lato client cieca per il fornitore, il protocollo documentato non consegna al servizio la chiave dei contenuti in chiaro. Il testo cifrato salvato può restare opaco per il fornitore, mentre il software client, il percorso di ripristino, i metadati dell'account e il canale di distribuzione del software richiedono comunque fiducia e verifica.
Perché la Crittografia Zero-Knowledge Conta
Le Violazioni dei Dati Espongono Miliardi di Record Ogni Anno
L'Identity Theft Resource Center ha segnalato 3.205 compromissioni di dati negli Stati Uniti nel 2023, che hanno colpito circa 353 milioni di persone. Quando un fornitore possiede le chiavi dei contenuti, una violazione può esporre sia i dati salvati sia un modo per decifrarli. La cifratura cieca per il fornitore separa queste due cose: una violazione del server può comunque esporre testo cifrato e metadati, ma non una chiave dei contenuti in chiaro in mano al fornitore. I tentativi sulle credenziali e la compromissione del client restano rischi separati.
La Coercizione Legale È una Minaccia Reale
Ai fornitori può essere richiesto di consegnare i dati che conservano. Un progetto cieco per il fornitore può limitare questa risposta al testo cifrato e ai metadati disponibili di account, traffico, fatturazione o servizio, perché il fornitore non possiede la chiave dei contenuti in chiaro. Se un'altra parte possa ottenere le credenziali di un utente, sfruttare un client o imporre la divulgazione è una questione separata. Apple ha introdotto la Protezione avanzata dati in iOS 16.2 come estensione facoltativa della cifratura end-to-end per i dati di iCloud.
"Fidatevi di Noi" Non È un'Architettura di Sicurezza
La cifratura lato server si basa su chiavi e policy controllate dal fornitore. La cifratura cieca per il fornitore cambia la custodia delle chiavi, così il percorso di servizio documentato non ha alcuna chiave dei contenuti in chiaro. È un confine architetturale più forte, ma la sua forza dipende ancora da un codice client corretto, da una distribuzione autenticata del software, da un ripristino ben progettato, da dispositivi sicuri e da un'implementazione conforme alla specifica.
Lo Standard NIST Dietro la Crittografia
AES-GCM è stato standardizzato dal National Institute of Standards and Technology in SP800-38D (2007). AES stesso è stato scelto dal NIST con un concorso pubblico nel 2001. Il «256» di AES-256 indica una chiave a 256 bit. La ricerca esaustiva su una chiave uniformemente casuale è computazionalmente irrealizzabile, ma una password o una sequenza umana possono fornire molta meno entropia anche quando una funzione di derivazione delle chiavi restituisce 256 bit.
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 RFC8018, trasforma una credenziale fornita da una persona in materiale di chiave a lunghezza fissa tramite chiamate ripetute a una funzione pseudocasuale. Più iterazioni aumentano il costo di ogni tentativo. Non aggiungono entropia a una sequenza o a una password prevedibili, quindi la scelta delle credenziali e la verifica offline contano ancora.
Come Vaultaire separa le chiavi dal fornitore
Vaultaire è una cassaforte cifrata lato client per iPhone. Nel senso commerciale spesso indicato come «conoscenza zero», la sua affermazione documentata più ristretta è che Wraxle non riceve il contenuto in chiaro delle casseforti né le chiavi necessarie per decifrarlo. Ecco come funziona l'implementazione e quali confini di fiducia restano a ogni livello.
Derivazione della chiave. L'utente disegna una sequenza su una griglia 5x5 di 25 punti. PBKDF2-HMAC-SHA512 combina quella sequenza con un salt del Keychain a livello di dispositivo per 600.000 iterazioni per derivare una chiave della cassaforte a 256 bit. La chiave della cassaforte autentica l'indice cifrato e incapsula una chiave master casuale separata a 256 bit. Le informazioni di ripristino, compresa la sequenza, sono conservate in un database nel Keychain cifrato con AES-GCM invece che in file di testo in chiaro o in un account Vaultaire.
Cifratura dei file. Ogni file importato viene cifrato con AES-256-GCM sotto la chiave master casuale. CryptoKit crea sealed box autenticate con nonce nuovi, e il formato in streaming deriva un nonce distinto per ogni blocco ordinato.
Cifratura dei metadati. Anche nomi dei file, tipi MIME, date, record dell'indice e dati delle miniature sono protetti con AES-256-GCM. Vaultaire non usa ChaCha20 per i metadati delle casseforti.
Gestione delle chiavi. Vaultaire conserva il salt del dispositivo e il database di ripristino cifrato come normali elementi password generici del Keychain di iOS, protetti con la classe di accessibilità WhenUnlockedThisDeviceOnly. Le chiavi della cassaforte derivate dalla sequenza e le chiavi master casuali vengono elaborate nella memoria dell'app tramite CryptoKit. Il blocco scarta lo stato delle chiavi attive, ma Swift e iOS non permettono di garantire che ogni copia transitoria venga sovrascritta.
Individuazione delle casseforti. L'interfaccia normale non mostra un elenco delle casseforti. Il formato di storage tiene una cartella di storage per ogni cassaforte. Chi ha accesso al contenitore dell'app può quindi contare le casseforti, anche se i nomi delle cartelle non rivelano sequenze, nomi o contenuti in chiaro. Consulta l'intera architettura di sicurezza e la spiegazione della cifratura basata sulla sequenza.
Come Capire se un'App Usa Vera Crittografia Zero-Knowledge
Parti da tre test rapidi, poi verifica l'architettura pubblicata:
Il test della password dimenticata. Se il solo recupero tramite email ripristina dati leggibili, chiedi quale meccanismo gestito dal fornitore ha recuperato la chiave effettiva dei contenuti. Frasi di ripristino in mano all'utente, approvazione dal vecchio dispositivo e ripristini controllati dal fornitore sono progetti diversi.
Il test del nuovo dispositivo. Se un nuovo dispositivo ripristina contenuti leggibili, individua il segreto o il dispositivo attendibile che lo ha autorizzato. Il solo accesso all'account fa pensare a un percorso di ripristino controllato dal fornitore; una frase di ripristino più record di backup cifrati possono mantenere la separazione delle chiavi dal fornitore.
Il test dell'account. Un indirizzo email o un numero di telefono collega l'identità ai metadati del servizio, ma da solo non dimostra che il fornitore possa decifrare i contenuti. Esamina la gerarchia delle chiavi, il progetto del ripristino, il codice client o un audit, la policy sui metadati e se il testo cifrato autenticato consente verifiche offline delle credenziali.
Questi test sono filtri, non una prova di sicurezza. Una specifica credibile dovrebbe indicare la chiave dei contenuti, la chiave di sblocco, i salt, i parametri di derivazione, il formato di cifratura autenticata, le regole sui nonce, le buste di ripristino, lo storage locale dei segreti, i metadati nel cloud e dove esistono chiavi in chiaro. Una revisione indipendente è una prova più forte dell'etichetta di un prodotto.
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 inaccessibili per sempre se perdi tutte le credenziali valide e le buste di ripristino. Un ripristino controllato dal fornitore o una chiave master in suo possesso indebolirebbe il confine sul fornitore, quindi il ripristino va progettato a parte. Vaultaire genera una frase personalizzata di 9 parole, da cui deriva una chiave di ripristino che apre una busta cifrata con la chiave della cassaforte. La frase non rigenera né codifica la chiave, e il ripristino su un nuovo dispositivo richiede anche i record CloudKit cifrati corrispondenti.
Le forze dell'ordine possono accedere ai dati cifrati zero-knowledge?
Un fornitore può essere obbligato a consegnare il testo cifrato salvato e i metadati di account, traffico, fatturazione o servizio che conserva. Senza una chiave dei contenuti in chiaro in suo possesso, quel fornitore non può usare il normale percorso del servizio per decifrare i contenuti. Lo sfruttamento del dispositivo, la cattura delle credenziali, le copie di ripristino e la divulgazione forzata sono percorsi separati, la cui legalità ed efficacia variano secondo la giurisdizione e i fatti.
La crittografia zero-knowledge è più lenta della crittografia normale?
Le prestazioni di AES-256-GCM non dipendono da chi possiede la chiave. La derivazione da password aggiunge lavoro allo sblocco, e la sua durata dipende da algoritmo, numero di iterazioni, dispositivo e implementazione. Le app dovrebbero misurare questo costo sull'hardware supportato e bilanciare la reattività con il costo imposto a ogni tentativo offline.
Zero-knowledge significa che l'app non raccoglie dati?
Non necessariamente. Il termine riguarda il confine delle chiavi dei contenuti del fornitore, non ogni flusso di dati. Un'app può comunque trattare dati dell'account, statistiche, rapporti sugli arresti anomali, indirizzi IP, dimensioni dei record, tempi o altri metadati del servizio. Vaultaire non richiede alcun account. Le statistiche dell'app e la diagnostica degli arresti anomali sono attive per impostazione predefinita e si possono disattivare con "Condividi gli errori in forma anonima" in Impostazioni. La policy documentata sugli eventi esclude i contenuti delle casseforti, le sequenze, le frasi e le chiavi di decifratura; l'informativa sulla privacy descrive le regole attuali di raccolta e conservazione.
Come si confronta la crittografia zero-knowledge con la Protezione avanzata dati di Apple?
La Protezione avanzata dati (ADP) di Apple, introdotta in iOS 16.2, estende la cifratura end-to-end ad altre categorie di iCloud e usa il modello di recupero dell'account Apple. Vaultaire cifra i contenuti delle casseforti sul dispositivo e non richiede alcun account Vaultaire; il suo backup iCloud, attivo per impostazione predefinita, più sincronizzazione e condivisione usano record CloudKit cifrati lato client nell'account Apple dell'utente. Vaultaire offre anche l'accesso separato alle casseforti tramite sequenza e la modalità coercizione, con i limiti di conservazione e ripristino descritti nella sua documentazione sulla negabilità plausibile.
Sintesi
La cifratura a conoscenza zero va intesa soprattutto come un'affermazione sulla separazione delle chiavi dal fornitore: il servizio non possiede la chiave in chiaro necessaria per decifrare i contenuti salvati. È più solida della cifratura lato server con chiavi controllate dal fornitore, ma non significa che le chiavi esistano solo in memoria, che i metadati spariscano o che ogni compromissione del client e del dispositivo venga sventata. Giudica il prodotto dalla gerarchia delle chiavi, dal progetto del ripristino, dall'implementazione e dalla revisione indipendente.