Confusione sulle catene di certificati fidati

1

Supponiamo che tu abbia una coppia client / server che vuole impostare una connessione sicura usando certificati X509 v3 e crittografia asimmetrica.

Il client invia una catena di certificati (diciamo CA principale: C1 , CA intermedio: C2 e certificato client: C3 ) e il server deve convalidare la catena (e poi, ovviamente, vice versa).

Fino a stamattina ho capito che il server deve sapere (almeno) C1 e averlo in un negozio fidato, l'idea è che la CA radice è l'entità di cui tutti i partecipanti sono disposti a fidarsi.

Dopo aver incontrato esempi in cui questo viene gestito in modo diverso ora sono confuso e ho qualche dubbio.

In un esempio ho trovato che il server aveva solo C3 (o solo C2) nel suo trust store e accettava volentieri la richiesta di connessione contenente il resto della catena (in realtà l'intera catena) dal client.

Quindi mi piacerebbe sapere se questo è un approccio che

  1. può essere considerato sicuro?
  2. è in accordo con gli standard pertinenti?

(Naturalmente capisco che sia, in qualche modo, fino all'amministratore del server decidere quali parti sono affidabili. La domanda è rivolta a uno sviluppatore che dovrebbe implementare la convalida).

    
posta Thomas 12.08.2016 - 10:32
fonte

1 risposta

2

Dalla RFC 5280 :

A user of a security service requiring knowledge of a public key generally needs to obtain and validate a certificate containing the required public key. If the public key user does not already hold an assured copy of the public key of the CA that signed the certificate, the CA's name, and related information (such as the validity period or name constraints), then it might need an additional certificate to obtain that public key. In general, a chain of multiple certificates may be needed...

Il server (dalla tua domanda) convalida la copia di " un certificato contenente la chiave pubblica richiesta " prima controllando il suo archivio di fiducia. Se C3 è nel trust store, non è necessario controllare qualcos'altro. Se non procede ulteriormente.

Si noti la forma potenziale nella RFC: " potrebbe essere necessario ", " potrebbe essere necessario ". Non è necessario controllare l'intero percorso se si fida già di un certificato.

Dai anche un'occhiata a questa risposta che descrive la differenza tra X.509 e TLS.

    
risposta data 12.08.2016 - 10:45
fonte

Leggi altre domande sui tag