¿Cómo realiza Matrix SSL la validación de certificados?

0

Usamos una aplicación personalizada que utiliza Matrix SSL (lado del cliente) para realizar la validación de certificados en sistemas MAC y Linux. Mi pregunta es, ¿Matrix SSL mantiene un caché de almacén de certificados de raíces intermedias y confiables para que pueda realizar sus comprobaciones contra lo que envía el servidor? ¿O llama a algo como OCSP o usa extensiones AIA como lo hacen los navegadores para validar la cadena? ¿O se puede desarrollar Matrix SSL para usar ambos métodos?

    
pregunta user53029 01.08.2014 - 12:14
fuente

2 respuestas

1

Después de ver la documentación de MatrixSSL, asumo que:

  • Como es agnóstico de la capa de transporte, no podrá (y no podrá) recuperar los certificados intermedios faltantes por sí mismo. Para hacer esto, tendría que tener algún tipo de cliente HTTP (tal vez con soporte de proxy) y no puedo ver nada documentado.
  • Tampoco comprobará por sí mismo que el nombre de host coincida con el certificado. Necesita agregar su propio certValidator para hacer esto. Si no verifica el nombre de host en el certificado, aceptará cualquier certificado firmado por una CA de confianza para un host arbitrario, lo que lo dejará abierto a los ataques de intermediarios. Eso significa que la implementación de esto es una obligación, a menos que necesite verificar solo algunos certificados fijos (es decir, la fijación de certificados).
  • La API contiene funciones para el manejo de CRL, pero requiere que el desarrollador proporcione el CRL en sí. Tiene la función de obtener la URL para la CRL pero el desarrollador que tiene que recuperar los datos de la URL por sí mismo.
  • No hay una API documentada para OCSP. Dado que OCSP requiere acceso a HTTP y que MatrixSSL es independiente del transporte, se puede suponer que no realizará búsquedas de OCSP por sí mismo y tampoco le dará al desarrollador la información necesaria para realizar búsquedas de OCSP.

Al final, se trata de la seguridad que obtiene de OpenSSL, es decir, no hay verificación de nombre de host, solo CRL manual, no hay API documentada para OCSP (aunque hay una API no documentada pero bastante compleja en OpenSSL).

Ya que está utilizando MatrixSSL solo para su propia aplicación personalizada, le recomendaría que sea sencillo y seguro aceptando solo algunos certificados específicos que usted controla y que están codificados dentro de la aplicación. En este caso, no necesitaría las cosas más complejas como el nombre de host o las verificaciones de revocación.

    
respondido por el Steffen Ullrich 01.10.2014 - 03:34
fuente
0

Creo que estás confundiendo dos cosas. Para los browers, como para cualquier otra pila TLS que pueda imaginar, la validación de la cadena de certificados se realizará verificando las firmas de los certificados hasta que encuentre un certificado ya en su almacén de confianza. (Puede ir a Preferencias / Opciones de su navegador y verificar las CA de confianza predeterminadas).

Luego, para verificar el estado de la revocación, utilizará CRL, OCSP, o simplemente no se molestará, ya que la revocación está rota de todos modos.

    
respondido por el Dillinur 01.08.2014 - 16:34
fuente

Lea otras preguntas en las etiquetas