Un'autorità di certificazione può firmare un altro certificato CA?

1

Disclaimer: I have low knowledge of X.509 and PKI, so I would appreciate an answer that is not entirely technical, i.e. by using real-life example scenarios.)

Stavo cercando informazioni sui certificati TLS 4096-bit, trovato un articolo che ne parlava e su come poter generare un certificato autofirmato.

Signing your own key.

openssl x509 -req -days 730 -in my.csr -signkey my.key -out my.crt

Signing your key will save you the few bucks a year a CA will charge you, but it will not be recognized by others unless they import your certificate.

La parte non riconosciuta da altri mi ha lasciato meravigliato. Per me, X.509 / PKI funziona un po 'come OpenPGP: ha crittografia asimmetrica, la fiducia è costruita con certificazioni, ecc.

Prendiamo una CA ampiamente affidabile, ad esempio VeriSign. Se firmare un certificato asserisce fiducia (= il certificato VeriSign radice firma il cert VeriSign intermedio, anche quest'ultimo diventa attendibile), allora ho la seguente domanda:

È possibile che una CA (come VeriSign) faccia affidamento su un'altra CA (in modo che, ad esempio, un CAcert - il certificato omesso diventerebbe valido e riconosciuto nei browser, solo da VeriSign che firma il certificato root / intermedio di CAcert)?

Potrebbe funzionare anche con certificati autofirmati? O capisco erroneamente che X.509 e CA non possano interagire tra loro?

    
posta Diti 12.05.2014 - 14:21
fonte

4 risposte

7

Sì, è possibile, ma la domanda migliore sarebbe? La reputazione della CA è la loro linfa vitale. Perché darebbero un'autorità firmante affidabile a un'altra CA che potrebbe non essere all'altezza dei loro standard (e potrebbe essere un concorrente diretto in futuro). Per quanto ne so, nessuna CA offre questo tipo di servizio, né vedo qualsiasi motivo per cui dovrebbero prendere in considerazione di farlo in futuro. Apparentemente alcune CA lo consentono, ma hanno ampi requisiti per la sicurezza del certificato secondario e addebitano un importo molto elevato per il privilegio.

    
risposta data 12.05.2014 - 16:18
fonte
4

Non solo potrebbero - alcuni lo fanno. Ma stanno effettivamente delegando il loro monopolio a te, che ti faranno pagare un sacco di soldi per il privilegio (come se tu avessi bisogno di chiedere, allora non puoi permettertelo). Non è redditizio a meno che non stiate emettendo un ENORME numero di certificati.

    
risposta data 12.05.2014 - 18:45
fonte
1

Quando accedi a un sito Web https dal tuo browser, il server invierà al client il suo certificato (sto saltando altri parametri di comunicazione per semplicità). Il client utilizzerà queste informazioni per autenticare il server

  • Il periodo di validità del certificato è valido?
  • La CA dell'emittente è affidabile? Il client avrà un elenco di CA fidate ("Catena di fiducia") , quindi diciamo nel certificato di gerarchia 2 (esclusi i certificati personali), la CA radice e la CA intermedia il client supporto. Il campo dell'emittente nel certificato avrà i dettagli dell'emittente.
  • La chiave pubblica della CA convalida la firma digitale dell'emittente?
  • Il nome di dominio nel certificato del server corrisponde al server attuale.

Ora alla tua domanda, la gerarchia più in alto sarà il certificato di base emesso da (nel tuo esempio) Verisign. La chiave qui è che è il certificato di root, quindi il certificato di root è la anchor di fiducia da cui la catena di fiducia è derivato.

Quindi no, personalmente non penso che ciò che stai chiedendo sia possibile.

Modifica: ho dimenticato di aggiungere, la fiducia avviene gerarchicamente così, nel tuo scenario, anche se in qualche modo riesci a ottenere questo - > Certificato - > CA intermedio autofirmato - > Verisign root ... Il browser cercherà l'emittente dei certificati, ovvero il certificato autofirmato in cui la fiducia fallirà. Quindi arrivare a firmare il certificato autofirmato con una radice attendibile come Verisign è inutile, la fiducia fallirà prima di allora

    
risposta data 12.05.2014 - 14:54
fonte
1

Il modello CA si basa sulla totale fiducia in ogni autorità di certificazione di agire in maniera affidabile e mantenere le proprie chiavi private al sicuro.

Si tratta di un design problematico quando il tuo browser, sistema operativo o altro SSL / TLS che usa l'applicazione si affida implicitamente a centinaia di certificati, spesso da fonti meno rinomate.

Qualsiasi autorità di certificazione può firmare qualsiasi certificato, quindi se una singola autorità di certificazione viene compromessa, la maggior parte delle connessioni SSL / TLS può essere segretamente sottoposta a un attacco Man-in-the-Middle. L'unico modo per rilevare questo è se in effetti si ispezionassero i dettagli del certificato e si fosse notato che l'autorità che ha firmato il certificato non è l'autorità che avrebbe dovuto firmare il certificato. Questo può essere fatto da blocco dei certificati in cui ti fidi solo di un certo certificato (o certificati firmati dalla chiave privata corrispondente a quel certificato). Ad esempio, il blocco dei certificati ha impedito i siti google a cui è stato effettuato l'accesso tramite il browser google chrome vulnerabile agli attacchi MitM che utilizzano certificati fraudolenti firmati da diginotar .

    
risposta data 12.05.2014 - 20:47
fonte