Come proteggere la chiave privata della CA?


24

Sto per implementare la mia Autorità di certificazione (CA) solo per uso interale.

Ora c'è un problema, che il privato CA non dovrebbe mai essere sfruttato. Quindi in questo momento la chiave privata è crittografata.

Cos'altro si potrebbe fare per migliorare la sicurezza della chiave privata?


Possiamo ottenere il SO su cui stai eseguendo il web server? Probabilmente potresti impostare le autorizzazioni sul file in modo che non sia leggibile da nessuno tranne dall'app e dal superutente.
Rilindo,

stiamo eseguendo RHEL
JMW il

Risposte:


25

Ho lavorato presso un'azienda in cui la sicurezza della chiave CA era fondamentale per il continuo successo dell'azienda. A tal fine, la chiave è stata crittografata utilizzando un protocollo personalizzato che richiedeva la presenza di almeno 2 persone con token fisici collegati ai terminali per decrittografarlo (c'erano almeno 5 di questi token, ogni 2 combinato funzionava). I terminali sono stati fisicamente separati dalla macchina reale con la chiave CA. L'interfaccia che avevano gli utenti che lo decifravano era un terminale VT220 che permetteva loro di inserire i token di decrittazione e quindi selezionare ciò che volevano "firmare" con la chiave (senza mai dare loro accesso alla chiave decifrata). Questo sistema significava che almeno 4 persone avrebbero dovuto lavorare insieme per compromettere la chiave, due possessori di token, il tipo che aveva accesso al data center,

Se sei interessato a maggiori dettagli su questo tipo di installazione, Bruce Schneier ha un ottimo sito che copre la progettazione e l'implementazione della sicurezza informatica:

http://www.schneier.com/

Ha anche pubblicato un ottimo libro Applied Cryptography che ho scoperto mi ha aiutato a capire i fondamenti di sistemi come questo e come progettare infrastrutture più sicure (leggibili da persone che non indossano protezioni tascabili):

http://www.schneier.com/book-applied.html


2
E l'operazione a due tasti (o qualsiasi n da m, m> = n, n> 1) è un'altra precauzione eccellente - ma per i miei soldi, airgap prima e aggiungi perfezionamenti come questo secondo, a seconda del tuo grado di paranoia (cioè, il costo del fallimento).
MadHatter supporta Monica il

1
Perché la persona con accesso root non può scaricare il contenuto della memoria in un file mentre due persone autorizzate svolgono il loro lavoro? Ciò significa che il tipo con root può ottenere la chiave con solo le risorse aggiuntive necessarie per scaricare la memoria dalla macchina.
Slartibartfast,

Il controllo di accesso fisico verificato è importante per questo tipo di sicurezza quanto il controllo di accesso logico verificato. L'operazione di firma non dovrebbe richiedere privilegio sulla scatola (che il controllo è gestito dal requisito qualunque-n-da-m), in modo che il supporto password root non dovrebbe esserci affatto quando keysigning succede. (S) sarà necessario per le attività di manutenzione del sistema, ma queste dovrebbero essere eseguite secondo un preciso script pre-scritto, da qualcuno diverso dallo sceneggiatore, e controllato in tempo reale da una terza persona esperta.
MadHatter supporta Monica il

16

Un grande vantaggio è mantenere la chiave CA privata su un computer dedicato completamente isolata dalla rete. Dovresti quindi firmare, e possibilmente anche generare, nuovi certificati su questa macchina e quindi utilizzare un supporto fisico per trasferire i nuovi certificati dalla macchina CA.

Naturalmente, come l'installazione includerebbe anche considerazioni relative alla disponibilità fisica della macchina, nonché restrizioni sui supporti consentiti. Una chiavetta USB ben percorsa non è probabilmente la scelta migliore ...

(Questo è comunque un chiaro esempio del compromesso tra sicurezza e convenienza.)


Airgap è un'eccellente precauzione di sicurezza e il pericolo di supporti rimovibili può essere mitigato impostando la casella di firma in modo da non autorizzare nulla, consentire binari SUID o fidarsi in alcun modo di eseguibili su tali supporti.
MadHatter supporta Monica il

Questo può essere ulteriormente ottimizzato utilizzando una smart card per generare, archiviare e utilizzare la chiave. Pensa a una smartcard come a una macchina dedicata che ha alcune protezioni contro la manomissione (in sostanza, il chip preferirebbe rompersi piuttosto che rinunciare alla chiave, cosa difficile da fare con un sistema più complesso) e che ha un'interfaccia abbastanza semplice da lo stack di protocollo avrebbe potuto essere verificato correttamente.
Simon Richter,

Secondo il suggerimento della smartcard, ma c'è un rischio lì. Quando la chiave è in grado di trovarsi in un solo posto, è necessario che un solo componente hardware non riesca a rendere inaccessibile la chiave. Penso che una o più smart card possano costituire una parte importante in una generazione sicura di chiavi e pratiche di archiviazione.
Slartibartfast,

Per quanto riguarda il problema di esecuzione automatica. Nel caso di un file manager gui, potrebbe anche essere consigliabile essere espliciti sul fatto che non stia cercando di fare anteprime / miniature intelligenti dei file elencati. Pur non essendo un pericolo in sé, può essere un vettore di attacco a vulnerabilità esistenti.
Andol,

Se la sicurezza è davvero importante, andrei con un sacco di CD-R write-once.
Lie Ryan,

15

Ho valutato le altre due risposte e ho commentato, perché penso che siano entrambe eccellenti. Se decidi di optare per entrambi e questo potrebbe essere appropriato, ti consiglio vivamente di prestare attenzione alla generazione iniziale della chiave, poiché non è in uso il momento migliore per compromettere una chiave (dove è possibile adottare molte precauzioni standard e ripetibili applicato) ma al momento della generazione, che essendo una tantum è molto più facile da sovvertire.

Questa eccellente guida alla conduzione di una cerimonia di generazione di chiavi delinea alcuni dei protocolli standard che possono aiutare a garantire la generazione di chiavi, sebbene si riducano principalmente a (a) avere tutto ciò a cui hanno assistito più auditor esperti, che stanno (b) registrando contemporaneamente tutto ciò che viene fatto (c) secondo un protocollo predeterminato scritto da qualcuno diverso dall'esecutore.


Sì, buon punto sulla gen chiave iniziale.
Andol,

7

A seconda di quanto sei serio, dovresti prendere in considerazione l'utilizzo dell'hardware FIPS 140-2 ( http://en.wikipedia.org/wiki/FIPS_140#Security_levels ) per memorizzare le chiavi CA e il backup di tali chiavi. È necessario disporre di una CA principale e di una CA intermedia in modo da poter mantenere la CA principale offline e fisicamente protetta. Il root è necessario solo per rinnovare o firmare nuove CA intermedie, mentre le CA intermedie rimangono online per le operazioni quotidiane. Come altri hanno suggerito, è importante la generazione sicura delle chiavi e la gestione delle chiavi con il controllo n of m .

Il CPS di VeriSign (ora Symantec) è un buon riferimento per come una CA commerciale genera e protegge le sue chiavi. Guarda i capitoli 5 e 6, in particolare: http://www.verisign.com/repository/cps/ . (Ho lavorato in VeriSign per diversi anni)

Inoltre, NIST ha diverse buone pubblicazioni sulla gestione delle chiavi ( http://csrc.nist.gov/publications/drafts/800-57/Draft_SP800-57-Part1-Rev3_May2011.pdf ) e sulla generazione e la tua azienda dovrebbe avere anche un CPS che specifica le politiche e le pratiche utilizzate per la gestione della CA. La IETF fornisce un buon modello: http://www.ietf.org/rfc/rfc2527.txt


1

Ottima domanda e anche alcune risposte fantastiche.

Tieni presente che sei avanti di circa il 90% rispetto alla maggior parte delle altre persone semplicemente prendendo in considerazione questo problema piuttosto che caricare ciecamente in anticipo.

Avendolo tenuto presente e preso gli altri consigli qui, aggiungerei semplicemente: non riposare sugli allori; tieni d'occhio le notizie sulla sicurezza e sulla crittografia sia per le questioni generali relative all'emissione, la revoca, il cracking dei certificati, ecc. sia, in particolare, per le vulnerabilità e i problemi con i prodotti specifici che usi per generare e gestire le tue chiavi.

Infine: sicurezza fisica. Fare qualcosa di "a prova di hacker" non è di aiuto se riesco a trovare un lavoro come addetto alle pulizie nel tuo edificio e quindi un giorno metto in tasca il disco contenente il certificato di root. Saresti sorpreso di quante persone manchi quello.


Sono contento di sentirlo @jmw - come ho detto, sei già in vantaggio del 90% o forse anche del 99% della maggior parte delle persone, e sembra che tu abbia tutto a portata di mano. Saresti scioccato dalla quantità di persone che spendono settimane e tonnellate di denaro guardando il lato software senza fare nulla per proteggere fisicamente i dati.
Rob Moir,

Grazie, hai assolutamente ragione: rimanere informato sui nuovi rischi è obbligatorio per ogni amministratore. :-) sulla sicurezza fisica: il datacenter, dove si trovano i nostri server, ha un'alta sicurezza fisica. quindi ci sono configurate password per BIOS && grub. anche la partizione in cui è archiviata la roba della CA è crittografata. inoltre la chiave CA stessa è crittografata. E i nagios attiverebbero allarmi "server down" in caso di furto fisico. Sono più preoccupato per gli exploit "non fisici". :-)
JMW,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.