Entendiendo cómo funciona la validación de certificados

3

Estoy usando Wireshark para comprender mejor cómo se establece una conexión SSL. Capturé el tráfico de visitar tres páginas: reddit, facebook y ésta. Todos los HTTPS por supuesto.

Reddit: después de que el servidor envía Certificate , envía un Certificate Status con la respuesta del servidor OCSP. ¿Por qué el servidor está enviando esta información? ¿No debería ser el cliente el que consulta el OCSP para conocer el estado del certificado del servidor?

Security SE: veo que no hay ninguna validación en absoluto. Una vez que el cliente recibe el certificado, intercambian la clave simétrica y se establece el canal cifrado. ¿Por qué no hay validación?

Facebook: después de establecer la conexión SSL, es decir, después de crear el canal cifrado, el cliente consulta el servidor OCSP. ¿Por qué no consulta el OCSP antes de establecer la conexión?

PD: si alguien está interesado en las capturas, solo ejecuta Wireshark, visita esos sitios y usa ssl.handshake filter.

    
pregunta yzT 02.03.2016 - 14:13
fuente

1 respuesta

5

Validación se trata de asegurarse de que un certificado sea genuino. El objetivo es saber si la clave pública que ve es realmente propiedad del servidor con el que desea hablar. Esta validación implica una gran cantidad de pasos, descritos allí en todos sus detalles sangrientos; la mayoría de ellos son completamente locales a la máquina cliente, por lo que no los verá aparecer de ninguna manera con los trazados de red. De hecho, esa es toda la idea de los certificados: permitir la validación sin conexión.

Todavía hay un paso de validación de certificado que no puede estar realmente fuera de línea, que es la comprobación del estado de revocación . Por definición, la revocación consiste en cancelar un certificado que, de lo contrario, parece correcto. Los tres métodos principales para determinar el estado de revocación son:

  • CRL: la CA (u otra entidad a la que se delegó ese poder) publica regularmente una lista de certificados revocados. La CRL está firmada y es válida por algún tiempo (algunas horas o días).

  • OCSP: se puede solicitar a un servidor OCSP debidamente designado el estado actual de un certificado. La respuesta OCSP está firmada y tiene sus propias fechas de validez, por lo que una respuesta OCSP es de alguna manera equivalente a una CRL que habla de un solo certificado.

  • Nada: durante mucho tiempo, los navegadores web simplemente asumieron que nunca se revocó ningún certificado, lo que hace que la implementación sea mucho más sencilla.

La URL para la descarga de CRL o para hablar con un servidor de OCSP está escrita en el propio certificado. Un sistema que quiera validar un certificado (su navegador web; una "parte dependiente" en la terminología X.509), y no use el método de verificación de revocación "nada", querrá descargar un CRL nuevo u obtener un OCSP nuevo. respuesta. Sin embargo, también puede almacenar en caché la respuesta CRL u OCSP obtenida; Windows, en particular, mantiene un caché de CRL que es resistente en todos los reinicios. Por lo tanto, si el navegador descarga una CRL, verá que la descarga de CRL en su red se realiza solo una vez por día (dependiendo del campo CRL nextUpdate ). Puede inspeccionar el caché de CRL de Windows con certutil -URLcache CRL . Tenga en cuenta que Firefox realiza su propia validación de forma completamente independiente del soporte de Windows para certificados.

Grapado OCSP es una extensión SSL / TLS por la cual un cliente puede pedirle al servidor que envíe, como CertificateStatus message, una respuesta de OCSP que establece que el certificado del servidor no está revocado (por ahora): dado que las respuestas de OCSP están fechadas y firmadas, la forma en que se obtiene dicha respuesta no tiene importancia. Dado que el servidor puede suponer razonablemente que todos los clientes que lo consulten necesitarán verificar el estado de revocación del certificado que envía el servidor, tiene sentido utilizar el propio servidor como caché para la respuesta OCSP relevante. Evita la necesidad de que el cliente abra una conexión adicional con el respondedor OCSP, y también hace la vida más fácil para el respondedor OCSP, ya que solo tiene que firmar una respuesta nueva una vez cada pocas horas.

No todos los servidores admiten el grapado OCSP, por lo que no verá CertificateStatus messages para todos servidores.

    
respondido por el Tom Leek 02.03.2016 - 14:45
fuente

Lea otras preguntas en las etiquetas