Certificado SSL autofirmado: ¿Cómo verificarlo correctamente en el lado del cliente?

0

Para nuestra implementación actual, estamos utilizando un certificado raíz autofirmado, que luego se utiliza para firmar certificados ssl para nuestra conexión http segura.

Mi pregunta se relaciona con la lógica de verificación en el cliente, que desafortunadamente, no tendrá acceso al certificado raíz en la autoridad de certificados raíz de confianza.

¿Es suficiente almacenar la huella digital del certificado SSL en el cliente en una bóveda secreta y luego verificar el cumplimiento de la función de devolución de llamada durante el protocolo de enlace https? Considerando que podría ser posible que alguien cree su propio certificado SSL y solo use este valor de huella digital (que por supuesto está disponible públicamente)? ¿Me equivoco o es que un certificado x.509 estándar no puede garantizar que los datos no hayan sido manipulados?

¿No sería más seguro almacenar la clave pública del certificado raíz y usar esto para verificar la huella digital por ti mismo?

¿Esto justifica la sobrecarga adicional para cada solicitud inicial?

    
pregunta HansMusterWhatElse 29.06.2017 - 09:15
fuente

1 respuesta

2
  

Mi pregunta se relaciona con la lógica de verificación en el cliente, que desafortunadamente, no tendrá acceso al certificado raíz en la autoridad de certificados raíz de confianza.

En este caso, no puede validar con la CA raíz, pero debe confiar en cada certificado por sí mismo.

  

... ¿podría ser posible que alguien cree su propio certificado SSL y solo use este valor de huella digital (que por supuesto está disponible públicamente)?

La huella digital o la huella digital de un certificado o clave pública es un hash criptográfico sobre el certificado que contiene la clave pública o solo la clave pública. Dado que la clave privada secreta debe coincidir con la clave pública en el certificado y es probable que un atacante no tenga acceso a esta clave privada (ya no sería tan privado entonces) es prácticamente imposible para un atacante crear un certificado con la misma huella digital Y TIENE la clave privada para esto.

Dado que la propiedad de la clave privada del certificado se verifica durante el protocolo de enlace TLS, esto significa que es suficiente para verificar el certificado del servidor contra una huella digital almacenada, siempre que esta huella digital se haya creado utilizando un hash seguro como SHA-256 y no una Una insegura como la MD5. Pero, por supuesto, la aplicación también puede almacenar el certificado completo esperado o la clave pública y compararlo.

  

¿Esto justifica la sobrecarga adicional para cada solicitud inicial?

No creo que haya una diferencia notable entre comparar la huella dactilar o comparar el certificado completo. Si hay alguna diferencia, la comparación del certificado completo es probablemente la más rápida, ya que no es necesario crear la huella digital del certificado para poder compararla.

    
respondido por el Steffen Ullrich 29.06.2017 - 09:29
fuente

Lea otras preguntas en las etiquetas