Criptovalute e blockchain sono difficili da spiegare. Ed è ancora più complesso farlo in modo semplice e intuitivo a chi non ha basi tecniche in merito. Come spieghereste la Zero Knowledge Proof a un dodicenne? Semplice, usando le caramelle di Halloween.
Il protocollo Zero Knowledge (noto anche come Zero Knowledge Password Proof, o ZKP) fa sì che le password non vengono trasferite tra le parti, il che rende impossibile il loro furto. Si tratta di un’ottima soluzione che protegge e rende sicura la vostra comunicazione, in modo che nessun altro possa vedere di cosa state parlando o quali file state scambiando.
In poche parole, la ZKP consente di dimostrare a chi si trova all’altro “capo” della comunicazione che si è a conoscenza di uno o più segreti senza rivelarli realmente.
L’espressione “conoscenza zero” deriva dal fatto che non viene fornita alcuna informazione (“zero”) sul segreto, ma la seconda parte (denominata “Verificatore”) è (correttamente) convinta che la prima persona (denominata “Prover”) conosca il segreto in questione.
Perché si dovrebbe rivelare il segreto per dimostrare di conoscerlo? Quando si deve convincere l’altra persona che si è a conoscenza di qualcosa anche se non ci si fida. Che cosa comporta quindi la procedura?
Table of Contents
Prendiamo come esempio Marco e Alice, che hanno ricevuto delle barrette di cioccolato per Halloween:
Fine della spiegazione per bambini, passiamo al succo della Zero Knowledge Proof 🙂
L’autenticazione è il processo per determinare se un certo dato dichiarato come vero da un’entità è effettivamente vero. L’autenticazione è il processo di verifica effettiva dell’identità di una persona o di una cosa, in contrapposizione all’identificazione, che si riferisce all’atto di esprimere o indicare in altro modo un’affermazione che ha lo scopo di attestare apparentemente tale identità.
Nell’autenticazione basata sul segreto, le parti concordano che un segreto (S) riflette l’identità pubblica di un prover (P). P deve solo rivelare S alla seconda persona, il verificatore (V), per dimostrare di essere effettivamente P. Esiste un protocollo generico che si applica indipendentemente dal metodo di autenticazione:
Il prover trasmette la propria identità (P) e un segreto (S(P)), come una coppia di login e password.
Per verificare S(P), il verificatore lo confronta con i record del database delle credenziali.
È fondamentale che le parti dispongano di un segreto pre-condiviso per qualsiasi metodo di autenticazione che si basa su segreti.
Le soluzioni di autenticazione basate su segreti presentano dei rischi importanti:
Alternative a questi problemi? È possibile bloccare le intercettazioni occulte mediante:
La divulgazione del segreto può essere fermata da:
Inoltre, per rafforzare l’autenticazione a chiave segreta si utilizzano abitualmente OTP e altre strategie MFA.
Considerate la possibilità che il verificatore sia un aggressore o che un aggressore si sostituisca al verificatore. Potrebbe anche accadere a livello locale, perché è così che agisce di solito il malware che prende di mira le banche.
I metodi tradizionali sono limitati nelle loro possibilità. Una volta che il Prover si è autenticato con un Verifier fraudolento, quest’ultimo può spesso convincere qualsiasi terza parte di essere il Prover, poiché è a conoscenza del segreto.
Il vantaggio maggiore è che nessuna quantità di materiale rilasciato dal Prover nell’ambito del protocollo Zero-Knowledge Proof è sufficiente per riavviare il processo o ricostruire il segreto.
Themis è una libreria crittografica intuitiva che offre un protocollo ZKP interattivo per il confronto e l’autenticazione dei segreti.
Scopri Themis
I protocolli ZKP, o zero-knowledge proof, permettono a due parti di controllare (verificare) se condividono un segreto senza rivelarlo (ad esempio, determinare se condividono la stessa password per i loro account separati). Alcuni protocolli Zero-Knowledge consentono di ottenere segreti condivisi (uno o molti) come risultato della procedura.
Nel corso del tempo, i crittografi hanno elaborato alcune spiegazioni intelligenti dello ZKP per le “persone comuni”:
Come posso utilizzare lo ZKP nella vita reale per le mie attività? Lo ZKP non è un trucco magico esoterico che può consentire di creare fiducia senza richiedere alle parti di rivelare i propri segreti. ZKP è una forte aggiunta agli attuali modelli di autenticazione:
ZKP, che in realtà è semplicemente un’altra implementazione dell’architettura di autenticazione, viene utilizzato per convalidare i segreti in contesti ostili.
Tuttavia, diverse funzioni di prova di ZKP potrebbero trarre vantaggio da alcune tecniche di sicurezza inventive.
L’uso più comune è l’autenticazione login/password, in cui si scambiano informazioni di login in un formato aperto (o facilmente decifrabile) e poi si usa ZKP per dimostrare che sia voi che il server siete in possesso della password.
Le richieste di dati sensibili possono essere autenticate, e questo è un altro metodo utile. La coppia nome/SSN ne è un esempio lampante. Quando una banca contatta l’agenzia di rating del credito tramite l’SSN per richiedere un punteggio di rating, rivela direttamente che l’SSN appartiene al cliente della banca e consente all’agenzia di rating del credito di costruire un record dal nulla (basato solo sul fatto che il titolare dell’SSN ha contattato la banca). Il nome, invece, è un’identificazione piuttosto generica che non indica specificamente un individuo.
Immaginiamo che l’agenzia di rating del credito sia il Prover e che voi, la banca, siate il Verificatore. Si avvia una ZKP su SSN e si sottopone al verificatore il requisito pubblico (nome). Il verificatore assegna un elenco di SSN che corrispondono a questo nome ed esegue uno ZKP su ciascuno di essi.
Di conseguenza, il protocollo può avere successo solo se l’autorità di rating del credito dispone di alcuni record che corrispondono all’SSN richiesto e la divulgazione dell’SSN all’autorità conferisce valore al verificatore.
Esistono tecniche di memorizzazione più complesse in cui entrambe le parti possiedono i segreti che utilizzano come identificatori di tali segreti e i loro derivati. Queste tattiche funzionano bene quando c’è un solo identificatore e la sua fuga è già problematica.
Abbiamo bisogno di confermare la sincerità di entrambe le parti per imporre un comportamento corretto nei protocolli pericolosi (come la firma delle transazioni nell’online banking), poiché non sappiamo mai dove un attaccante potrebbe colpire.
A tal fine, possiamo autenticare ogni fase del protocollo utilizzando il segreto S e le informazioni private della fase precedente. In questo modo, manteniamo una catena di fiducia fin dall’inizio del protocollo (il valore iniziale può essere qualsiasi chiave derivata) e non ci affidiamo a token di fiducia effimeri come le chiavi di sessione.
Tesla, Inc. continua a essere al centro dell'attenzione degli investitori, grazie alle recenti raccomandazioni degli…
Scopri la scelta migliore e più conveniente per investire: il segreto dei rendimenti sicuri tra…
Via libera dall'Unione Europea ai nuovi bonus per giovani e donne! Le aziende potranno usufruire…
Le previsioni sull’inflazione della BCE per il 2025 sono in rialzo rispetto alle attese precedenti.…
Vuoi andare in pensione anticipata con soli 20 anni di contributi? Scopri le opzioni disponibili…
Ethereum sta vivendo un periodo di consolidamento, con movimenti di prezzo che catturano l'attenzione di…