En el protocolo de enlace del servidor SSL, ¿el servidor también envía el certificado de CA [duplicado]

11

En el protocolo TCP SSL, ¿el servidor también envía certificados de CA? ¿El servidor necesita enviar todos los certificados de CA intermedios en el servidor Hola?

    
pregunta Rahul_cs12 05.07.2015 - 16:35
fuente

1 respuesta

26

El servidor no envía ningún certificado en el mensaje ServerHello ; envía certificados en el mensaje Certificate con el nombre correcto.

Como se indica en la norma, se supone que el servidor envía un cadena de certificado, completo y ordenado, comenzando con el certificado del servidor propiamente dicho, luego un certificado para la CA intermedia que lo emitió, luego un certificado para la CA intermedia que emitió el certificado de CA intermedia anterior, y así sucesivamente. Al final de la cadena, el servidor tiene la opción de incluir o no incluir el certificado de CA raíz; Si la cadena debe ser de alguna utilidad para el cliente, entonces el cliente ya debe conocer la raíz y, por lo tanto, no necesita una nueva copia de la misma. El texto relevante en la norma es:

   certificate_list
      This is a sequence (chain) of certificates.  The sender's
      certificate MUST come first in the list.  Each following
      certificate MUST directly certify the one preceding it.  Because
      certificate validation requires that root keys be distributed
      independently, the self-signed certificate that specifies the root
      certificate authority MAY be omitted from the chain, under the
      assumption that the remote end must already possess it in order to
      validate it in any case.

que es lo suficientemente claro.

Tenga en cuenta que, en general, la cadena de certificados no es única. Un certificado de servidor dado podría ser susceptible de validación a través de varias, posiblemente muchas cadenas de certificados. Esto ocurre naturalmente con la renovación del certificado de CA intermedio (porque habrá un momento en que el nuevo certificado de CA es válido y el anterior aún es válido, por lo tanto, si usan la misma clave, serán intercambiables). En el caso de una certificación cruzada entre distintas CA, las diversas cadenas para un certificado de servidor determinado pueden incluso conducir a distintas CA raíz. La consecuencia es que si bien se supone que el servidor SSL / TLS envía una "cadena válida", es posible que esa cadena no sea necesariamente la que el cliente hubiera preferido.

En general, los clientes SSL / TLS intentarán validar la cadena de certificados del servidor tal como se recibió del servidor. Si esa cadena no complace al cliente, entonces el comportamiento del cliente depende de la implementación: algunos clientes simplemente se rinden; otros (especialmente Windows / Internet Explorer) intentarán construir otra cadena utilizando una CA intermedia conocida localmente y también descargando certificados de URL que se encuentran en otros certificados (la extensión "acceso de información de autoridad").

    
respondido por el Thomas Pornin 05.07.2015 - 16:54
fuente

Lea otras preguntas en las etiquetas