Glossario / Riferimento per sviluppatori
Certificato radice
- Che cos'è un certificato radice?
- Un certificato radice è l'ancora di fiducia autofirmata in cima a una catena di certificati, e gode di fiducia solo perché il fornitore del tuo sistema operativo o del tuo browser lo ha inserito lì.
Ogni verifica di un certificato termina a una radice. Un certificato radice firma se stesso e gode di fiducia solo perché era incluso nell'archivio delle radici del tuo dispositivo; DST Root CA X3, l'esempio più noto, è stato emesso il 30 settembre 2000 ed è scaduto esattamente 21 anni dopo. Se giudichi un exchange solo dal suo lucchetto, stai dando fiducia a quella lista di radici e non a qualcosa che riguarda l'exchange.
Come funziona
Un certificato radice nomina la stessa organizzazione sia nel campo issuer sia nel campo subject, e la chiave che lo ha firmato è la chiave che esso certifica. È proprio questa circolarità il punto. Nulla al di sopra di una radice la avvalora, quindi un verificatore non può confrontarla con nulla di più in alto; può solo cercare il certificato in una lista locale e considerare quella lista autorevole.
Queste liste sono curate da un pugno di aziende. Apple, Microsoft, Mozilla e Google gestiscono ciascuna un programma per le radici con criteri di inclusione, requisiti di revisione e procedure di rimozione pubblicati, e l'archivio sul tuo laptop o sul tuo smartphone è quello che il tuo fornitore ha incluso con il software. L'inclusione dura molto a lungo, perché togliere una radice significa inviare un aggiornamento a ogni dispositivo che la contiene. ISRG Root X1, l'ancora dietro Let's Encrypt, è stato emesso il 4 giugno 2015 e non scade fino al 4 giugno 2035.
La debolezza strutturale è che qualsiasi radice presente nell'archivio può avvalorare qualsiasi nome. Nessuna regola lega un'autorità olandese ai domini olandesi, quindi una sola autorità compromessa mina tutti i siti in una volta. DigiNotar lo ha dimostrato nel 2011: un attaccante ha emesso un certificato fraudolento per google.com il 10 luglio di quell'anno e lo ha usato per intercettare il traffico di utenti iraniani. Mozilla, Google e Microsoft hanno rimosso le radici DigiNotar nei primi giorni di settembre 2011, e l'azienda era fallita prima della fine del mese.
Dove lo vedi
I certificati radice sono entrati in bitcoin tramite BIP70, che chiedeva ai wallet di convalidare la catena di certificati di un esercente fino a una radice considerata affidabile prima di mostrare il nome di un'azienda nella schermata di pagamento. Il software desktop prendeva in prestito per farlo l'archivio del sistema operativo, il software mobile spesso sbagliava, e Bitcoin Core ha eliminato del tutto la funzione nella versione 0.20.0. Il riferimento per sviluppatori di bitcoin.org elenca ancora il termine, ed è il motivo principale per cui oggi qualcuno lo cerca.
Il confronto più utile è con l'ancora propria di bitcoin. Un nodo completo parte da un blocco genesi datato 3 gennaio 2009, codificato nel software, e da lì verifica ogni regola per conto proprio. Nessuno aggiunge una voce a quell'ancora inviando un aggiornamento al tuo smartphone, e nessuna autorità può essere violata o messa sotto pressione per avvalorare un blocco che infrange le regole. Gli archivi delle radici funzionano nella direzione opposta: la fiducia scorre verso il basso da una lista che non hai scritto e non puoi verificare.
Certificato radice vs certificato foglia
Un certificato radice identifica un'autorità di certificazione; un certificato foglia identifica un server. La radice è autofirmata, dura due decenni e conserva la sua chiave privata in un modulo hardware offline estratto poche volte l'anno alla presenza di testimoni. La foglia riporta il nome host a cui ti sei effettivamente connesso, dura mesi e la sua chiave privata si trova su un server web in funzione esposto a internet. Si dice «il certificato è valido» quando si intende che la foglia è stata analizzata e che le date coincidono, ma la domanda che decide se la connessione è affidabile è a quale radice termina la catena.