Conflicto entre el conjunto de cifrado y el certificado

0

Al capturar mi sesión SSL (usando Chrome), he notado que el servidor eligió TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ( 0xc02b ) como la suite de cifrado y la firma del certificado signedcertificate fue sha256WithRSAEncryption .

¿Por qué el certificado utiliza RSA mientras que la suite de cifrado es ECDSA?

Encontré la respuesta:

En TLSv1.2, y solo en TLSv1.2 - si el cliente incluye una extensión llamada "signature_algortithm", el servidor puede firmar el certificado con cualquiera de los métodos mencionados en la extensión, independientemente del conjunto de cifrado que elija. para trabajar con.

puedes ver la estructura de la extensión aquí:

saludos, Amigal

    
pregunta amigal 28.07.2015 - 21:08
fuente

3 respuestas

2
  

es la sesión del servidor de Google llamada ssl.gstatic.com

En resumen: el ECDSA en el conjunto de cifrado se refiere a la clave del certificado de sitios. El RSA en la firma se refiere a la clave del emisor de certificados. En detalle:

Para verificar qué tipo de certificado obtiene con este cifrado:

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

Esto proporciona un certificado con una clave EC, como se esperaba:

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)

Pero incluso si el certificado utiliza una clave EC, se firma con una clave RSA:

Signature Algorithm: sha256WithRSAEncryption

Esto se debe a que la firma la crea el emisor y, por lo tanto, utiliza la clave del certificado del emisor. Y el emisor está utilizando una clave RSA:

Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
Subject Public Key Info:
   Public Key Algorithm: rsaEncryption
      Public-Key: (2048 bit)
    
respondido por el Steffen Ullrich 28.07.2015 - 21:49
fuente
1

No puedo reproducir esta instancia desde mi máquina.

Suponiendo que el servidor efectivamente negoció TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 y aún usa un certificado con una clave pública RSA, esto violaría el estándar estándar , y aún así podría funcionar con alguna implementación de cliente: el cliente SSL conoce perfectamente el tipo de clave pública del servidor (está escrito en el certificado del servidor, que el cliente acaba de validar) y se puede esperar que algunos clientes son lo suficientemente indulgentes (o perezosos) como para simplemente usar esa información sin tener en cuenta la información redundante en el conjunto de cifrado.

(Pero, repito, no puedo confirmar esta situación ya que observo algo diferente de mi propia máquina).

    
respondido por el Tom Leek 28.07.2015 - 21:30
fuente
0

En TLSv1.2, y solo en TLSv1.2 - si el cliente incluye una extensión llamada "signature_algortithm", el servidor puede firmar el certificado con cualquiera de los métodos mencionados en la extensión, independientemente del conjunto de cifrado que elija. para trabajar con.

    
respondido por el amigal 24.08.2015 - 17:02
fuente

Lea otras preguntas en las etiquetas