Glossario / Riferimento per sviluppatori
PKI
Noto anche come Infrastruttura a chiave pubblica.
- Che cos'è la PKI?
- La PKI, o infrastruttura a chiave pubblica, è il sistema di autorità di certificazione, certificati e trust store che permette al software di stabilire se una chiave pubblica appartiene davvero al nome a cui è associata.
La PKI è il modo in cui il web risolve il problema della presentazione: non hai mai incontrato il server, quindi ti affidi a una terza parte che lo garantisce. Il tuo browser arriva con un elenco di qualche centinaio di tali autorità, e ognuna di esse può garantire qualsiasi nome. Bitcoin è stato progettato per non avere affatto bisogno di quell'elenco.
Come funziona
La PKI ha tre componenti, e solo uno di essi risiede sul tuo dispositivo.
Un'autorità di certificazione possiede una chiave di firma ed emette certificati dopo aver verificato qualcosa sul richiedente, che per i normali certificati web significa confermare il controllo di un nome di dominio e nulla di più. Un certificato associa un nome a una chiave pubblica e porta la firma dell'autorità su entrambi. Un trust store, fornito con il tuo sistema operativo o il tuo browser e aggiornato insieme a esso, elenca le autorità che accetti, e tutto il resto discende da quell'elenco.
La debolezza del modello è strutturale, non accidentale. La fiducia non ha un ambito limitato: un'autorità di qualsiasi paese può emettere certificati per qualsiasi dominio del mondo, quindi la sicurezza di ogni sito equivale alla sicurezza dell'autorità più debole del trust store. Non è un'ipotesi. Gli attaccanti che compromisero l'autorità olandese DigiNotar nel 2011 emisero un certificato fraudolento per il dominio di Google e lo usarono contro utenti di internet in Iran, i fornitori di browser rimossero le radici di DigiNotar e la società era in bancarotta entro settembre di quell'anno. Google annunciò nel 2017 che Chrome avrebbe smesso di fidarsi dell'attività di certificati di Symantec dopo aver dichiarato che più di 30.000 certificati erano stati emessi in modo improprio.
Seguirono due misure di mitigazione. Certificate Transparency, specificata nell'RFC 6962 a giugno 2013, impone che i certificati siano pubblicati in registri pubblici a sola aggiunta, così che un'emissione impropria sia almeno rilevabile quando non può essere impedita. Furono anche ridotte drasticamente le durate dei certificati, sulla base dell'idea che una credenziale di breve durata limiti il danno provocato da una che non sarebbe mai dovuta esistere.
Dove lo vedi
La PKI protegge il momento in cui digiti la password di un exchange, che è il suo ruolo principale nella vita di chi compra bitcoin.
È anche il punto in cui i limiti si fanno sentire. Un lucchetto significa che la connessione è cifrata e che il dominio corrisponde a un certificato. Non significa che l'azienda sia onesta, autorizzata o solvibile, e un dominio simile registrato da un truffatore ottiene un certificato valido in pochi secondi proprio perché quel dominio lo gestisce davvero. Controlla come è scritto il nome nella barra degli indirizzi e raggiungi il sito da un segnalibro, non da un annuncio.
I produttori di wallet hardware gestiscono una propria piccola infrastruttura per l'attestazione dei dispositivi, con un'unica radice che gestiscono loro invece di un trust store pubblico. Questa soluzione è molto più solida di quella del web per la semplice ragione che non contiene terze parti.
Il design di Bitcoin prese una strada del tutto diversa. Un indirizzo è derivato da una chiave tramite hashing, quindi non c'è alcun nome da certificare né nessuno a cui chiedere. Verifichi una destinazione confrontando i caratteri, il che peggiora l'usabilità e toglie di mezzo diverse centinaia di parti fidate.
PKI vs chiave pubblica
PKI non è il termine generale per l'uso delle chiavi pubbliche. Generare una coppia di chiavi, ricevere bitcoin all'indirizzo derivato da essa e in seguito firmare una transazione con essa non implica alcuna autorità, alcun certificato e alcun trust store, che è l'intero senso del design. La PKI è la specifica burocrazia costruita per associare nomi del mondo reale alle chiavi, e bitcoin ne fa deliberatamente a meno.