Da qualche parte nelle istruzioni di installazione, una directory viene copiata integralmente su ogni portatile perché era più semplice che decidere quali file vi appartengono. Quella directory contiene ca.key, e nel momento in cui raggiunge un secondo dispositivo l’autorità di certificazione smette di essere un’autorità. Ogni detentore può ora emettere identità di cui si fiderà il resto della rete.

Vale la pena districare questa confusione una volta, perché i due file si somigliano e fanno cose opposte.

Materiale di verifica e materiale di firma

Un client ha bisogno del certificato pubblico della CA per controllare che il certificato presentato da una controparte sia stato firmato da quella autorità. È un compito di verifica e non richiede alcun segreto. Firmare il certificato di una controparte è un altro compito, eseguito una sola volta da chi gestisce la CA, con la chiave privata che non lascia mai il proprio archivio protetto. Tenere separati questi due compiti è l’intero motivo per cui si distribuiscono due file.

Quindi ca.crt appartiene al profilo e ca.key non appartiene a nessun posto vicino. I nomi dei file sono una convenzione, non una garanzia, perciò il tipo va ispezionato invece che dedotto dal nome.

Un’architettura con una CA intermedia o un servizio di emissione online non fa eccezione. È il modo abituale di tenere la capacità di firma lontana dagli endpoint pur emettendo certificati di dispositivo su larga scala.

Che cosa un client deve dimostrare con la propria chiave

Ogni dispositivo riceve la propria coppia di chiavi e il proprio certificato, firmato una volta dalla CA. Il client presenta quel certificato e dimostra di possedere la chiave privata corrispondente, e il server decide se accettarlo. È l’identità che viene revocata quando un portatile va perduto.

Il contrasto conta soprattutto dopo un furto. Con identità per dispositivo, un client esposto viene rimosso tramite revoca o rimozione della controparte, e il resto della flotta continua a funzionare.

Una chiave di autorità divulgata non si può trattare così. Ogni certificato che abbia firmato o potuto firmare diventa sospetto, quindi la risposta è sostituire la fiducia e non una singola revoca. È un progetto, non un ticket.

FileRoleBelongs on
ca.crtPublic certificate used to verify signaturesEvery client profile
ca.keyPrivate key that issues certificatesProtected CA storage only
client key pairProves one device's identityThat device alone

Leggere un file prima di copiarlo da qualche parte

Due comandi dicono che tipo di oggetto si ha in mano senza stampare alcun segreto. Il primo indica il soggetto e il flag CA di un certificato; il secondo convalida una chiave e ne riporta il tipo. Eseguili entrambi sui file del pacchetto che si sta per distribuire. Tutto ciò che si convalida come chiave privata non appartiene a una directory client.

openssl x509 -in ca.crt -noout -subject -ext basicConstraints
openssl pkey -in ca.key -noout -check

Se il secondo comando riesce su un file che si trova in un pacchetto client, fermarsi e considerare il pacchetto compromesso. Un output che dice che una chiave è valida dice anche che è presente, e la presenza è tutto il problema.

Nota anche la direzione opposta: un profilo client contiene legittimamente la chiave privata di quel client. Cancellare ogni chiave che si trova interrompe la connessione senza migliorare nulla, quindi l’oggetto va identificato prima di rimuoverlo.

Contenere una chiave già distribuita

Non dare per scontato che cancellare la copia locale annulli l’esposizione. Chiunque abbia avuto il file può averlo copiato, e l’ipotesi sicura è che lo abbia fatto. Segui la procedura di incidente dell’operatore e sostituisci l’ancora di fiducia, riemettendo i certificati di dispositivo sotto una nuova CA.

Poi cambia il confezionamento che ha creato il problema. Invia un elenco della directory con una lista bianca esplicita dei file, mantieni la chiave della CA su una macchina che non entra mai nella flotta dei client, e annota quale sistema la custodisce.

Se l’autorità deve emettere spesso, sposta la firma dietro un servizio o un’intermedia con ambito ristretto e validità breve. Così un errore futuro espone un sottoinsieme dell’emissione e non la radice di fiducia dell’intera installazione.

Articoli correlati