Cos’è una rubrica di chiavi pubbliche
Con una chiave pubblica controlli una firma o cifri qualcosa per una persona. Serve solo se sai di chi è la chiave. Una rubrica di chiavi pubbliche è il posto che lo dice, e qui spieghiamo come può farlo senza chiederti di crederle sulla parola.
Scritto il
Una chiave da sola non dice niente#
Una chiave pubblica è una lunga stringa di caratteri, e ogni chiave sembra uguale alle altre. Qualcuno te ne manda una e dice che è sua. Dalla stringa non puoi capire se arriva davvero da lui o da qualcuno che si è messo in mezzo. Se la chiave ti è arrivata dallo stesso canale che controlla chi attacca, come un account violato o un’email falsa, controllare le firme con quella chiave non prova niente.
Le app di messaggi risolvono la cosa al loro interno con i codici di sicurezza che due persone confrontano di persona. Funziona per una conversazione. Non aiuta quando devi controllare un rilascio, un commit o un messaggio di qualcuno che conosci solo online.
Legare la chiave agli account che la gente conosce#
Le persone si conoscono per account: un nome Discord, un profilo GitHub, un indirizzo email, un dominio, un profilo del Fediverso. Una rubrica diventa utile quando ogni chiave arriva con le prove che la stessa persona controlla quegli account. Così parti da quello che sai già e arrivi alla chiave giusta.
Su Veil questo è una scheda. Contiene le chiavi di dispositivo del proprietario e gli account che ha collegato, ognuno con la sua prova, e funziona nei due versi. Da un account ottieni la chiave. Da una chiave, un’impronta o una firma ottieni la scheda e gli account che la confermano. E siccome le chiavi restano sui dispositivi del proprietario, chi ruba uno di quegli account ci può entrare ma non può firmare a suo nome.
Come un registro di trasparenza tiene onesta la rubrica#
Una rubrica potrebbe mentire. Potrebbe darti una chiave vecchia, o mostrare una chiave a te e un’altra a tutti gli altri. Un registro di trasparenza rende visibile questo tipo di bugia. Ogni modifica di ogni scheda viene aggiunta in fondo al registro, e niente di quello che c’è si può più correggere o togliere. Le voci formano un albero di Merkle, e una breve nota firmata, il checkpoint, dice quanto è grande l’albero e qual è l’hash della sua radice.
Con questo arrivano due piccole prove. La prova di inclusione mostra che una voce sta nell’albero descritto da un checkpoint. La prova di consistenza mostra che un checkpoint più nuovo allunga uno più vecchio senza cambiare niente di quello che c’era. Il tuo browser le chiede tutte e due e le controlla. Certificate Transparency, su cui ogni browser conta per i certificati HTTPS, funziona allo stesso modo.
Cosa fanno i testimoni#
Un registro potrebbe comunque mostrare due alberi diversi a due lettori diversi. I testimoni chiudono questo varco. Sono operatori indipendenti che tengono ciascuno la propria copia dell’ultimo checkpoint, controllano che ogni nuovo checkpoint sia coerente con il precedente e solo allora lo controfirmano. Il registro di Veil è seguito da testimoni del Witness Network, tra cui il team trasparenza di Google, Mullvad e Geomys, e un checkpoint vale solo con almeno due delle loro firme.
Per mostrarti una scheda diversa da quella che vedono gli altri, Veil dovrebbe far controfirmare ai testimoni due storie che non possono essere vere insieme. Un testimone onesto rifiuta la seconda, perché non allunga la storia che ha già visto. Il registro pubblico è aperto a chiunque voglia leggerlo.
Domande#
Un registro di trasparenza è una blockchain?
No. Un registro di trasparenza ha un solo gestore che scrive e tanti lettori e testimoni che controllano. Non c’è mining, non ci sono token, e per controllare una voce bastano un paio di piccole prove.
Di cosa mi devo fidare quando uso Veil?
Del codice che fa il controllo nel tuo browser, che puoi leggere, e del fatto che il registro di Veil e i testimoni che lo controfirmano non mentano tutti insieme. Del server di Veil non ti devi fidare, perché le sue risposte vengono controllate con il registro.
Chi altro usa la trasparenza delle chiavi?
Certificate Transparency copre i certificati del web da anni. WhatsApp e iMessage di Apple hanno annunciato entrambi la trasparenza delle chiavi per i loro utenti. Veil applica la stessa idea a una rubrica aperta che chiunque può leggere.
Posso controllare il registro da solo?
Sì. Il registro è pubblico su log.veil.pub, e la riga di comando veil controlla schede e checkpoint da un terminale con le stesse regole del browser.