Due radici per un certificato SSL

3

Considerare il seguente scenario:

  1. Ho un problema con il certificato di fine SSL da parte di un'autorità nota (ad esempio COMODO).

  2. Ho i miei certificati autofirmati root e intermedi che vengono utilizzati dalle applicazioni client (non web, usano le web API) per realizzare connessioni basate su SSL.

(1) è utile per far sì che i browser si connettono al server senza avvisi (come root è noto ai browser). (2) è meglio per la sicurezza poiché le applicazioni si fidano solo di qualsiasi cosa concatenata al mio certificato di root e non è possibile lo spoofing di certificati / indirizzi.

È possibile inoltre firmare (1) con il mio certificato intermedio in modo che possano essere utilizzati client di qualsiasi tipo? Ho un'alternativa di hosting di componenti web e API su host separati, ma i client basati su browser devono comunque raggiungere API con (2) che rovinano l'intera idea.

TIA.

    
posta port443 19.07.2016 - 17:59
fonte

1 risposta

2

Un po 'di teoria

Tecnicamente è possibile che un singolo certificato possa avere più catene, tuttavia non è il tuo caso.

È possibile produrre più catene quando si esegue la certificazione incrociata, quando server CA ha due o più certificati firmati da diversi emittenti e tutti questi certificati sono installati nell'archivio del cliente per creare la catena.

Questa situazione è comune per Microsoft CA (ADCS), quando si rinnova il certificato della CA principale e si riutilizza la coppia di chiavi. In questo caso, la CA radice ha due certificati con (facoltativamente) diverse impostazioni (ad esempio, validità cert), ma con lo stesso oggetto e le stesse informazioni sulla chiave pubblica. Quando il client crea una catena termina con due certificati radice corrispondenti. Spetta al cliente selezionare la catena giusta.

in alternativa, la CA esterna può firmare il certificato CA intermedio (o root) e installare questo certificato nell'archivio dell'utente. Quando il cliente costruisce una catena, può passare attraverso diversi certificati CA intermedi (firmati da radici tue e straniere) e, in base alle impostazioni di fiducia, il cliente può scegliere la migliore catena attraverso una logica.

Uno scenario più sofisticato di certificazione incrociata è il cosiddetto Cross-Certification Bridge, utile quando più organizzazioni gestiscono i propri PKI privati e desiderano stabilire una fiducia reciproca tra ciascuna organizzazione.

Alla tua domanda Per quanto ho capito, ci sono clienti che non si fidano di Comodo, mentre si fidano delle tue CA private? Se questo è corretto, allora puoi fare una certificazione incrociata. Firma la CA di emissione di Comodo con la CA interna e metti questo certificato a tutti i clienti che non si fidano di Comodo. In questo caso, quando i client costruiranno la catena, otterranno due catene: fino alla radice di Comodo non attendibile e alla radice privata attendibile. Se la selezione della catena sui client è buona, allora selezionerà la catena corretta e affidabile.

Purtroppo, non so come farlo in OpenSSL, tuttavia raccomando di leggere il whitepaper di Microsoft sull'argomento: Pianificazione e implementazione della certificazione incrociata e della sottomissione qualificata mediante Windows Server 2003 Qui troverai una spiegazione dettagliata su come funziona la certificazione incrociata.

    
risposta data 19.07.2016 - 18:50
fonte

Leggi altre domande sui tag