È possibile creare un'autorità di certificazione autofirmata?

6

Sarebbe possibile creare un certificato legittimo con il set di bit CA? Non ho un usecase associato a questo, sono semplicemente curioso.

Per spiegare la mia domanda: Supponiamo che firmi una chiave pubblica (appartiene a "B" di cui mi fido), sarebbe possibile lasciare che "B" firmi da solo le altre chiavi pubbliche (Beloning a "C", "D", "E", ecc.) In modo tale che io sia la root attendibile conosciuta? "C", "D", "E" ecc non dovrebbero essere autorizzati a firmare altri certificati che hanno me come root attendibile.

La mia comprensione è che quando firmo la chiave pubblica, il bit CA dovrebbe essere impostato, tuttavia quando "B" lo firma, il bit CA non verrà impostato.

È così?

    
posta AJ Henderson 23.01.2013 - 06:32
fonte

4 risposte

11

Quello che descrivi è un "certificato CA privato" e vengono utilizzati tutti i giorni. Un "certificato autofirmato" è qualsiasi certificato che non ha la firma digitale di un'autorità di certificazione superiore; il certificato dice fondamentalmente a qualcuno che lo ottiene "Io sono il garante per me stesso, puoi fidarti o meno di me". Gli SSC possono affermare di essere CA, quindi, se ci si fida di loro, ci si fida dei certificati firmati con il certificato CA. Il certificato CA autofirmato diventa in effetti una "radice attendibile privata". Poiché manca di fiducia globale, questo certificato generalmente non è abbastanza buono per un client anonimo che si connette al tuo server web su Internet, ma entro i confini di una rete di computer che controlli completamente, puoi dire a quei computer di fidarsi di qualsiasi certificato ti piace.

Senza un'autorità centrale, ogni macchina sulla rete richiederebbe il certificato di ogni altra macchina sulla rete e si fiderebbe implicitamente di tutti loro. Questa semplice struttura di trust "web" piatta è fattibile per un numero limitato di macchine come 3-5, ma in una rete con, ad esempio, 100 macchine, ogni macchina deve avere il certificato per l'altro 99 e la macchina successiva da aggiungere alla rete deve in qualche modo ottenere il suo certificato implicitamente accettato da tutte le 100 macchine esistenti. La struttura della CA snellisce drasticamente questo processo; tutte le macchine si fidano implicitamente di un solo certificato (quello della CA) e un certificato firmato dalla CA presentato da una nuova macchina dirà a tutti gli altri computer che "la CA si fida di me, anche tu dovresti".

Ora, ciò richiede ancora che la CA sia affidabile ; solo perché è fidato non significa necessariamente che dovrebbe essere. La chiave privata del certificato CA deve essere protetta dai tentativi di furto da parte di un utente malintenzionato e, in caso di attacco da parte di un utente malintenzionato, è necessario disporre di un modo per revocare tale certificato senza perdere la fiducia in tutta la rete. In una piccola rete domestica, come afferma il commento di AJ, non è un grosso problema revocare il certificato di una CA primaria e rigenerare tutti i certificati sulla rete, ma nelle reti più grandi può portare il tutto a una brusca frenata.

In genere, la ridondanza e la tolleranza al compromesso vengono raggiunte con più livelli (almeno due) di CA nella catena di affidabilità, proprio come funziona la catena CA di livello globale. Ci sarebbe un certificato "trusted root", una "chiave d'oro", la cui versione pubblica è implicitamente attendibile dalle macchine di rete. La chiave privata viene archiviata su un HSM e, quando non genera certificati CA "pubblici", viene conservata in un deposito protetto che richiede l'accesso da più dirigenti per l'accesso.

Questi certificati CA "pubblici" sono quelli utilizzati dai server PKI per generare i certificati non CA rilasciati a server e client sulla rete. Se un utente malintenzionato compromette uno di questi certificati CA, tale certificato può essere revocato (dicendo a tutti i computer di non fidarsi di esso o qualsiasi certificato firmato da esso), e qualsiasi computer con un certificato firmato da tale CA può dimostrare la propria identità in qualche altro modo al sistema PKI e ottenere un nuovo certificato da uno dei certificati CA non compromessi. Nel frattempo, gli exec firmano, l'HSM viene recuperato sotto l'occhio vigile di molte persone interessate e viene generato un certificato CA sostitutivo per sostituire quello revocato nel sistema PKI.

    
risposta data 23.01.2013 - 17:07
fonte
3

Sì, è possibile. Questo è solo concatenamento certificato. Puoi creare un certificato con tutte le impostazioni che desideri, l'unico problema è che, a meno che il computer di qualcuno non abbia specificamente attendibile il tuo certificato di root, non si fiderà di nessuno dei certificati che traggono fiducia dalla tua root.

Questa è generalmente chiamata CA privata o CA aziendale e viene utilizzata molto regolarmente per l'infrastruttura PKI aziendale. I dettagli esatti su come impostarne uno sono probabilmente al di fuori dell'ambito di un sito di controllo qualità, ma una ricerca rapida su Google per "autorità di certificazione privata" o "autorità di certificazione aziendale" dovrebbe fornirti tutti i dettagli che dovresti sapere su di esso.

    
risposta data 23.01.2013 - 15:30
fonte
1

Questa intenzione non è ben spiegata. Lo scenario menzionato non è altrettanto chiaro. Ci sono alcuni fatti I certificati CA non possono essere classificati come punti di emissione di certificati autofirmati. Usi ssc quando non ci sono CA per svolgere l'attività. Presumo che tu stia partendo dal presupposto che dopo che una CA ha rilasciato un certificato a un utente, gli utenti hanno dato la possibilità di creare una ssc. O creare un certificato per conto del punto principale di emissione. Il secondo metodo può essere raggiunto ma ci sono determinati requisiti. Ad esempio, con server Windows e un pki, se un determinato utente o un computer è considerato affidabile da un controller di dominio, è possibile emettere il certificato per conto degli utenti, ecc. Applicabile anche quando è richiesta l'implementazione di smart card. È anche possibile registrare membri non di dominio, ma il requisito è di avere un profilo valido con un client su cui è installato il certificato radice. Puoi avere più di un agente di registrazione e distribuire punti di emissione. Questo vale anche per le autorità di certificazione commerciale. Delano i trust. Distribuire i punti di rilascio in base a varie politiche. Ma nota che ci sono i profili dei requisiti per ogni scenario. E un modo di fidarsi. È possibile stabilire catene di attendibilità con le CA ma non con gli SSC.

    
risposta data 23.01.2013 - 09:16
fonte
1

Ho dovuto aggiungere un'altra risposta a causa del fatto che la domanda è cambiata (a cura di) o che si sono verificati dei malintesi e devo scusarmi. La domanda originale aveva la parola Certificato autografato che faceva confusione. Se si utilizza una CA, non è necessario creare certificati autofirmati. Quello che stai citando qui è una gerarchia di CA privata. SSC non richiede CA. Ma le CA hanno un certificato autofirmato (cioè Root attendibile). La gerarchia CA emittente firma i certificati in base alla gerarchia stessa. Gli SSC sono appena firmati da una certa persona o da un server. Se si desidera utilizzare il concatenamento non importa se è interno o esterno (privato o pubblico). È abbastanza possibile creare la catena di fiducia con una PKI. Questa è l'intenzione principale e ciò che stai effettivamente citando.

Se si considera la rete interna, è possibile creare una gerarchia di 2 o 3 livelli di livelli di servizio certificati per una maggiore sicurezza. Le CA di primo livello o radice possono essere utilizzate solo quando è necessario e di solito non sono in linea mentre le CA di emissione eseguono il lavoro (livello 3). Viene utilizzato per emettere certificati per la gerarchia e non per utenti finali / dispositivi. Le CA intermedie possono essere utilizzate per emettere certificati per CA di emissione. Potrebbero esserci anche server delle politiche, un server speciale per governare le politiche per ogni livello. Le CA di emissione rilasciano i certificati a utenti, computer, dispositivi ecc. Per verificare se il certificato è stato revocato, è possibile utilizzare gli elenchi di revoche di certificati e per l'accesso esterno è possibile distribuire i server OCSP. L'intenzione dell'evocazione del certificato è di prevenire la compromissione dei certificati e problemi di affidabilità. Se il certificato richiede di non essere considerato attendibile o non è più necessario, può essere revocato o sospeso fino a quando il problema non viene risolto.

In questo modo è possibile acquisire una catena di fiducia e status. Ma nota che la revoca dei certificati ha delle vulnerabilità. Questo è il motivo per cui Google ha abbandonato il CR. La catena della fiducia e della propagazione della fiducia è l'intenzione di una Gerarchia CA ben consolidata.

Per l'azienda non è necessaria una gerarchia completa. Può essere distribuita anche una CA aziendale root. Tuttavia, devono ancora essere mantenute le lacune. È altamente consigliato agli amministratori di distribuire autorità di certificazione subordinate e un server di policy separato. Ma questo non è molto economico quando si tratta di piccole reti. Ma offre ancora maggiore sicurezza. Potresti anche usare le smart card con una PKI corretta. Tuttavia, si noti che esiste una sfida con l'accesso esterno ai CRL con un'infrastruttura PKI privata aziendale. Ma è comunque efficiente se ben pianificato.

    
risposta data 24.01.2013 - 10:09
fonte