Cosa fa una prova a conoscenza zero
Di solito, dimostrare qualcosa significa mostrare le prove: inserire una password o consegnare una carta d'identità. Ciò può rivelare più di quanto l'altra persona abbia bisogno di sapere.
Una prova a conoscenza zero è un metodo crittografico che cambia la situazione. Una persona, il dimostratore, dimostra un'affermazione precisa a un altro, il verificatore, senza rivelare il segreto utilizzato per rendere vera quell'affermazione. Il verificatore apprende la risposta di cui ha bisogno, ad esempio se soddisfi un requisito di età, ma non la tua data di nascita, indirizzo o numero di documento.
Non è una vaga promessa di privacy. Una prova deve essere progettata per un'affermazione esatta, e i buoni progetti rendono estremamente improbabile l'imbroglio.
L'esempio della grotta
Immagina una grotta con due percorsi che si incontrano dietro una porta chiusa a chiave. La porta si apre solo con una parola segreta. Dici di conoscerla, ma non vuoi dirla ad alta voce.
Entri da uno dei due percorsi mentre il tuo amico aspetta fuori. Il tuo amico ti dice ad alta voce da quale percorso vuole che tu torni. Se conosci la parola, puoi aprire la porta dentro la grotta e tornare da uno dei due percorsi. Se stai solo indovinando, hai solo il cinquanta per cento di probabilità di trovarti dalla parte richiesta.
Ripeti il test molte volte con una scelta nuova e imprevedibile ogni volta. Dieci round riusciti lasciano a chi bluffa circa una possibilità su 1.000 di essere stato fortunato. Il tuo amico ottiene una prova solida che conosci la parola, ma non la sente mai.
Dalla storia della grotta al software reale
Le prove reali usano la matematica al posto di una grotta, ma l'obiettivo di privacy è lo stesso. Possono dimostrare che una transazione rispetta le regole senza rivelarne tutti i dettagli. Possono anche permettere che una singola prova sostituisca un'intera serie di controlli, il che può rendere alcuni sistemi più veloci da verificare.
Le credenziali digitali sono un altro uso pratico. Invece di caricare un documento d'identità intero su ogni servizio, una credenziale ben progettata potrebbe rispondere solo alla domanda posta: “Questa persona ha più di 18 anni?” oppure “Possiede questa qualifica?”
I dettagli contano. Una prova protegge solo le informazioni per cui è stata creata. L'app circostante può comunque raccogliere dati, identificarti o fare una scelta di sicurezza inadeguata altrove.
Prova a conoscenza zero vs crittografia a conoscenza zero
La frase “a conoscenza zero” è usata anche nell'archiviazione cloud. È un'idea diversa. La crittografia a conoscenza zero significa che il fornitore di archiviazione non può leggere i tuoi file perché non possiede le chiavi di decrittografia.
Una prova a conoscenza zero risponde a una domanda senza svelare il segreto dietro la risposta. La crittografia a conoscenza zero mantiene i file archiviati illeggibili per un fornitore. Entrambi possono migliorare la privacy, ma non sono intercambiabili.
Una lezione pratica sulla privacy
Le prove a conoscenza zero sono un utile promemoria per condividere le informazioni minime necessarie per un'attività. Non ti rendono anonimo né proteggono ogni parte di un'app. Un servizio potrebbe comunque sapere che ti sei connesso, quando lo hai fatto e altri dati al di fuori della prova.
Sealby non ha bisogno di prove a conoscenza zero perché non ha account o server che ti chiedano di dimostrare qualcosa. I file vengono crittografati sul tuo iPhone. Per quanto riguarda la privacy di tutti i giorni, la domanda pratica è semplice: cosa ha davvero bisogno di sapere questo servizio, e può funzionare con meno?