Conflitto tra cipher-suite e certificato

0

Durante l'acquisizione della mia sessione SSL (utilizzando Chrome) ho notato che il server ha scelto TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ( 0xc02b ) come la suite di crittografia e il certificato signedcertificate signature era sha256WithRSAEncryption .

Come mai il certificato utilizza RSA mentre Cipher-suite è ECDSA?

Ho trovato la risposta:

In TLSv1.2 e solo in TLSv1.2 - se il client ciao include un'estensione chiamata "signature_algortithm", il server può firmare il certificato con uno dei metodi menzionati nell'estensione, indipendentemente dalla suite di crittografia scelta con cui lavorare.

puoi vedere la struttura di estensione qui:

saluti, Amigal

    
posta amigal 28.07.2015 - 21:08
fonte

3 risposte

2

its the session to google server called ssl.gstatic.com

In breve: l'ECDSA nella suite di crittografia si riferisce alla chiave del certificato dei siti. La RSA nella firma si riferisce alla chiave dell'emittente dei certificati. In dettaglio:

Per verificare quale tipo di certificato ottieni con questa cifra:

openssl s_client -connect ssl.gstatic.com:443 \
   -cipher 'ECDHE-ECDSA-AES128-GCM-SHA256' -tls1_2 -servername ssl.gstatic.com \
  | openssl x509 -text

Fornisce un certificato con una chiave EC, come previsto:

Issuer: C=US, O=Google Inc, CN=Google Internet Authority G2
...
Subject: C=US, ST=California, L=Mountain View, O=Google Inc, CN=*.google.com
Subject Public Key Info:
   Public Key Algorithm: id-ecPublicKey
      Public-Key: (256 bit)

Ma anche se il certificato stesso utilizza una chiave EC, è firmato con una chiave RSA:

Signature Algorithm: sha256WithRSAEncryption

Questo perché la firma è creata dall'emittente e sta quindi utilizzando la chiave del certificato dell'emittente. E l'emittente sta utilizzando una chiave RSA:

Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
Subject Public Key Info:
   Public Key Algorithm: rsaEncryption
      Public-Key: (2048 bit)
    
risposta data 28.07.2015 - 21:49
fonte
1

Non riesco a riprodurre questa istanza dalla mia macchina.

Supponendo che il server abbia effettivamente negoziato TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 e utilizzi ancora un certificato con una chiave pubblica RSA, questo sarebbe in violazione dello standard , eppure potrebbe ancora funzionare con alcune implementazioni client: il client SSL conosce perfettamente il tipo di chiave pubblica del server (è scritto nel certificato del server, che il client ha appena validato) e ci si può aspettare che alcuni client sono indulgenti (o pigri) a sufficienza per utilizzare semplicemente tali informazioni senza tenere conto delle informazioni ridondanti nella suite di crittografia.

(Ma, ripeto, non posso confermare questa situazione poiché osservo qualcosa di diverso dalla mia stessa macchina.)

    
risposta data 28.07.2015 - 21:30
fonte
0

In TLSv1.2 e solo in TLSv1.2 - se il client ciao include un'estensione chiamata "signature_algortithm", il server può firmare il certificato con uno dei metodi menzionati nell'estensione, indipendentemente dalla suite di crittografia scelta con cui lavorare.

    
risposta data 24.08.2015 - 17:02
fonte

Leggi altre domande sui tag