Convalida del certificato a più certificati di root?

1

Ho trovato questo articolo e sono incappato nella parte:

So if a client trusts either of the G5 certificates as a trusted root, it will trust any certificate issued by a subordinate CA such as the G3.

Per quanto riguarda la mia comprensione di RFC5280 (Sezione 6.1.1 (d)), la il server deve indicare su quale TrustAnchor il client deve convalidare il percorso del certificato. L'autore del primo articolo (a mia conoscenza) afferma che questa indicazione non è necessaria e / o che il client accetterà il mio certificato se si fida di qualsivoglia delle CA di firma.

Quindi, supponendo di avere uno scenario come questo:

Root A --> intermediate
Root B --> intermediate
intermediate --> my Cert

dove Root A e Root B firmati intermedi e intermedi firmati my Cert . Il Server è configurato per fornire intermedio e mia Cert come percorso del certificato e suggerirà che Root A dovrebbe essere l'Ancoraggio di Trust.

  1. Un client accetta ovviamente my Cert se ha root A come ancoraggio di fiducia.
  2. Un client accetterà my Cert se ha solo Root B come ancoraggio di attendibilità?
  3. Un client accetterà my Cert se ha solo intermedio come ancoraggio di fiducia?
  4. Un client accetterà my Cert se ha solo una versione autofirmata di intermedia (ma stessa chiave / soggetto pub / privato) come Trust Anchor?
  5. Qualche risposta cambia se Root A e Root B hanno entrambi lo stesso Soggetto?
  6. Se una risposta è No, come può un server sapere quale Trust Anchor ha il Cliente, come in quale RootCA indicare per la convalida del percorso?
posta Niklas 26.07.2017 - 16:23
fonte

1 risposta

1

Sospetto, stai parlando della convalida dei certificati SSL / TLS in un contesto HTTPS.

how can a server know which Trust Anchor the Client has, as in which RootCA to indicate for the Path-Validation?

il server non sa e non è tenuto a conoscere gli ancore affidabili installati sul client. Il server invia certificati CA foglia e intermedio (senza radici) e il resto dipende dal client.

Il client utilizza i certificati recuperati e costruisce catene di certificati. Durante il percorso di certificazione è possibile produrre catene multiple (a causa della certificazione incrociata). Cioè, il certificato foglia ha più di un percorso per uno o più ancore fidati. A seconda della configurazione del client (libreria crittografica), solo la catena singola (la migliore) viene scelta e utilizzata per il resto del processo di convalida del certificato.

Alla fine, potrebbe esserci un caso in cui le catene su server e client sono diverse. Ad esempio, il server ha Root A come ancoraggio sicuro (ma nessun Root B), mentre il client ha Root B come ancoraggio affidabile (ma nessun Root A). Se il certificato intermedio può essere incatenato alla radice A sul server e alla radice B sul client, il certificato verrà accettato con successo.

Does any answer change if Root A and Root B both have the same Subject?

devono avere lo stesso oggetto, poiché uno dei vincoli del certificato nelle regole della catena è che il campo emittente del certificato deve corrispondere al campo Oggetto del certificato emittente. In caso contrario, il certificato dell'emittente potrebbe non essere trovato.

Will a client accept my Cert if it has only a self-signed Version of intermediate (but same priv/pub Key and Subject) as Trust Anchor?

se la libreria crittografica supporta l'uso di certificati non autofirmati come ancoraggio sicuro (ad esempio, Microsoft CryptoAPI), è possibile. Quindi il certificato radice non ha alcun effetto nella costruzione del percorso di certificazione.

    
risposta data 26.07.2017 - 17:46
fonte

Leggi altre domande sui tag