Cos'è la Crittografia Zero-Knowledge? Una Guida Semplice
La crittografia zero-knowledge significa che il provider non può accedere ai tuoi dati.
La crittografia a conoscenza zero è un'architettura limitata al provider in cui il servizio non detiene la chiave necessaria per decrittografare il contenuto utente archiviato. A differenza della crittografia cloud standard in cui il provider controlla la chiave del contenuto, la crittografia lato client può mantenere tale funzionalità sui dispositivi degli utenti. Una richiesta legale, una violazione o un insider potrebbero comunque esporre testo cifrato, record di account, dati sul traffico o altri metadati conservati dal provider. Le indicazioni del NIST sulla gestione delle chiavi rendono la custodia delle chiavi un elemento centrale per l'accesso, ma l'app client, il sistema operativo e il dispositivo sbloccato rimangono 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 un pattern. Una funzione di derivazione della chiave basata su password la combina con un salt per produrre una chiave sul dispositivo dell'utente. Un progetto ben separato può utilizzare quella chiave per sbloccare una chiave di crittografia del contenuto casuale invece di crittografare 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 provider non riceve alcuna chiave di contenuto in testo normale. Le chiavi di contenuto esistono necessariamente nella memoria del client durante l'uso e possono anche essere archiviate localmente o in remoto all'interno di buste crittografate autenticate. Il provider può archiviare testo cifrato e chiavi incapsulate senza conservare il segreto utente necessario per aprirli. I metadati di account, traffico, dimensione del record e tempistica potrebbero rimanere ancora visibili.
Il vincolo critico: se l'utente perde tutte le credenziali valide e il percorso di ripristino, il contenuto crittografato diventa inaccessibile. Il recupero può ancora esistere, ma occorre spiegarne la custodia delle chiavi. Se il solo ripristino dell'e-mail 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 provider ha mantenuto un percorso efficace per tornare al 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) |
| Crittografia 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 dei dati |
| Crittografia lato client senza provider | Percorso di ripristino controllato dal client e dall'utente | Nessuna chiave di contenuto in testo normale mantenuta dal provider | Il contenuto può rimanere crittografato; i metadati e il testo cifrato potrebbero ancora trapelare | Depositi crittografati 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 crittografia lato client provider-blind, al servizio non viene fornita la chiave del contenuto in testo normale tramite il protocollo documentato. Il testo cifrato archiviato può rimanere opaco per il provider, mentre il software client, il percorso di ripristino, i metadati dell'account e il canale di distribuzione del software richiedono comunque fiducia e revisione.
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, colpendo circa 353 milioni di persone. Quando un provider detiene chiavi di contenuto, una violazione può esporre sia i dati archiviati che un percorso per decrittografarli. La crittografia senza provider separa tali risorse: una violazione del server può comunque esporre testo cifrato e metadati, ma non una chiave di contenuto in testo normale detenuta dal provider. L'ipotesi delle credenziali e la compromissione del cliente rimangono rischi separati.
La Coercizione Legale È una Minaccia Reale
Ai fornitori può essere richiesto di divulgare i dati che conservano. Una progettazione senza provider può limitare tale risposta al testo cifrato e ai metadati di account, traffico, fatturazione o servizio disponibili perché il provider non detiene la chiave del contenuto in testo normale. Se un'altra parte possa ottenere le credenziali di un utente, sfruttare un cliente o imporne la divulgazione è una questione separata. Apple ha introdotto la protezione avanzata dei dati nel iOS 16.2 come espansione opzionale della crittografia end-to-end per iCloud dati.
"Fidatevi di Noi" Non È un'Architettura di Sicurezza
La crittografia lato server si basa su chiavi e policy controllate dal provider. La crittografia senza provider modifica la custodia delle chiavi in modo che il percorso del servizio documentato sia privo di una chiave di contenuto in testo normale. Si tratta di un limite architettonico più forte, ma la sua forza dipende ancora dal codice client corretto, dalla distribuzione del software autenticato, dal ripristino dell'audio, dai dispositivi sicuri e da un'implementazione che corrisponda alle specifiche.
Lo Standard NIST Dietro la Crittografia
AES-GCM è stato standardizzato dal National Institute of Standards and Technology in SP800-38D (2007). La stessa AES è stata selezionata dal NIST attraverso un concorso pubblico nel 2001. Il "256" in AES-256 si riferisce a una chiave a 256 bit. La ricerca esaustiva su una chiave uniformemente casuale è computazionalmente irrealizzabile, ma una password o un modello umano possono fornire molta meno entropia anche quando una funzione di derivazione della chiave 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 (Funzione 2 di derivazione della chiave basata su password), specificata in RFC8018, converte una credenziale fornita da un essere umano in materiale con chiave di lunghezza fissa tramite ripetute chiamate a funzioni pseudocasuali. Più iterazioni aumentano il costo di ogni ipotesi. Non aggiungono entropia a uno schema o a una password prevedibili, quindi la scelta delle credenziali e la verifica offline continuano ad avere importanza.
Come Vaultaire implementa la separazione fornitore-chiave
Voltaire è un deposito crittografato lato client per iPhone. Nel senso del prodotto spesso commercializzato come "conoscenza zero", la sua affermazione documentata più ristretta è che Wraxle non riceve il contenuto del vault in testo normale o le chiavi necessarie per decrittografarlo. Ecco come funzionano l'implementazione e i restanti limiti di fiducia a ogni livello.
Derivazione chiave. L'utente disegna un motivo su una griglia 5x5 di 25 punti. PBKDF2-HMAC-SHA512 combina quella sequenza con una a livello di dispositivo Keychain salt per 600.000 iterazioni per ricavare una chiave dell'insieme di credenziali a 256 bit. La chiave dell'insieme di credenziali autentica l'indice crittografato e racchiude una chiave master casuale separata a 256 bit. Le informazioni di ripristino, incluso il pattern, sono archiviate in un file AES-GCM crittografato Keychain database anziché file di testo normale o un account Vaultaire.
Crittografia dei file. Ogni file importato viene crittografato con AES-256-GCM sotto la chiave principale casuale. CryptoKit crea scatole sigillate autenticate con nuovi nonce e il formato di streaming deriva un nonce distinto per ogni blocco ordinato.
Crittografia dei metadati. Nomi dei file, MIME vengono protetti anche tipi, date, record di indice e dati in miniatura AES-256-GCM. Vaultaire non utilizza ChaCha20 per i metadati del vault.
Gestione delle chiavi. Vaultaire archivia normalmente il sale del dispositivo e il database di ripristino crittografato iOS Keychain elementi con password generica protetti con il file WhenUnlockedThisDeviceOnly classe di accessibilità. Le chiavi dell'insieme di credenziali derivate da pattern e le chiavi master casuali vengono elaborate nella memoria dell'app tramite CryptoKit. Il blocco elimina lo stato della chiave attiva, ma Swift e iOS non supportano la garanzia che ogni copia transitoria venga sovrascritta.
Scoperta del caveau. L'interfaccia normale non mostra un elenco di depositi. Il formato locale memorizza esattamente 1 file di indice crittografato per ciascun deposito e il codice di manutenzione può enumerare tali file. Qualcuno con accesso al contenitore dell'app può quindi contare gli indici crittografati, sebbene i nomi dei file non rivelino modelli, nomi o contenuti in chiaro. Vedi l'intero architettura di sicurezza e spiegazione della crittografia del modello.
Come Capire se un'App Usa Vera Crittografia Zero-Knowledge
Inizia con tre test rapidi, quindi verifica l'architettura pubblicata:
Il test della password dimenticata. Se il solo ripristino della posta elettronica ripristina i dati leggibili, chiedere quale meccanismo gestito dal provider ha recuperato la chiave del contenuto effettiva. Le frasi di ripristino gestite dall'utente, l'approvazione dei vecchi dispositivi e i ripristini controllati dal provider sono progetti diversi.
Il test del nuovo dispositivo. Se un nuovo dispositivo ripristina contenuto leggibile, identifica il dispositivo segreto o attendibile che lo ha autorizzato. Il solo accesso all'account suggerisce un percorso di ripristino controllato dal provider; una frase di ripristino più record di backup crittografati possono preservare la separazione della chiave del provider.
La prova del conto. Un indirizzo e-mail o un numero di telefono collega l'identità ai metadati del servizio, ma di per sé non dimostra che il fornitore possa decrittografare il contenuto. Esaminare la gerarchia delle chiavi, la progettazione del ripristino, il codice client o il controllo, la policy dei metadati e se il testo cifrato autenticato consente controlli delle credenziali offline.
Questi test sono filtri, non una prova di sicurezza. Una specifica coerente dovrebbe nominare la chiave del contenuto, la chiave di sblocco, i sali, i parametri di derivazione, il formato di crittografia autenticata, le regole nonce, le buste di ripristino, l'archiviazione segreta locale, i metadati del cloud e il punto in cui esistono le chiavi di testo in chiaro. La 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 permanentemente inaccessibili se tutte le credenziali valide e le buste di ripristino vengono perse. Un ripristino controllato dal provider o una chiave master indebolirebbero il confine del provider, pertanto il ripristino deve essere progettato separatamente. Voltaire genera una frase personalizzata contenente 9 parole separate la cui chiave di ripristino derivata apre una busta della chiave dell'archivio crittografata. La frase non rigenera né codifica la chiave e anche il ripristino del nuovo dispositivo richiede la corrispondenza crittografata CloudKit record.
Le forze dell'ordine possono accedere ai dati cifrati zero-knowledge?
Un fornitore potrebbe dover divulgare il testo cifrato memorizzato e l'account, il traffico, la fatturazione o i metadati del servizio che conserva. Senza una chiave di contenuto in testo normale conservata dal provider, tale provider non può utilizzare il suo normale percorso di servizio per decrittografare il contenuto. Lo sfruttamento dei dispositivi, il rilevamento delle credenziali, le copie di recupero e la divulgazione forzata sono percorsi separati la cui legalità ed efficacia variano in base alla giurisdizione e ai fatti.
La crittografia zero-knowledge è più lenta della crittografia normale?
AES-256-GCM le prestazioni non dipendono da chi detiene la chiave. La derivazione basata su password aggiunge lavoro durante lo sblocco e la sua durata dipende dall'algoritmo, dal conteggio delle iterazioni, dal dispositivo e dall'implementazione. Le applicazioni dovrebbero misurare tale costo sull'hardware supportato e bilanciare la reattività con il costo imposto su ogni ipotesi offline.
Zero-knowledge significa che l'app non raccoglie dati?
Non necessariamente. Il termine si riferisce al limite della chiave di contenuto del provider, non a ogni flusso di dati. Un'app può comunque elaborare dati di account, analisi, rapporti sugli arresti anomali, indirizzi IP, dimensioni dei record, tempistiche o altri metadati di servizio. Vaultaire non richiede alcun account di identità e afferma che le sue analisi basate sul consenso escludono contenuti, modelli, frasi e chiavi di decrittazione del vault; suo politica sulla privacy descrive le attuali regole di raccolta e conservazione.
Come si confronta la crittografia zero-knowledge con Advanced Data Protection di Apple?
La protezione avanzata dei dati (ADP) di Apple, introdotta nel iOS 16.2, estende la crittografia end-to-end ad ulteriori iCloud categorie e utilizza il modello di recupero dell'account Apple. Vaultaire mantiene i contenuti del vault locali per impostazione predefinita e non richiede alcun account identificativo di Vaultaire; backup, sincronizzazione e condivisione opzionali utilizzano la crittografia lato client CloudKit record nell'account Apple dell'utente. Vaultaire offre anche accesso al vault separato da schemi e modalità coercizione, con i limiti di conservazione e recupero descritti nella sua documentazione di negabilità plausibile.
Sintesi
La crittografia a conoscenza zero è meglio trattata come un'affermazione di separazione della chiave del provider: il servizio non contiene la chiave di testo in chiaro necessaria per decrittografare il contenuto archiviato. Ciò è più efficace della crittografia lato server con chiavi controllate dal provider, ma non significa che le chiavi esistano solo in memoria, che i metadati scompaiano o che ogni compromissione di client e dispositivi venga sconfitta. Giudicare il prodotto in base alla gerarchia delle chiavi, alla progettazione del ripristino, all'implementazione e alla revisione indipendente.