Estoy usando OpenSSL para verificar el certificado de un servidor. Dado que OpenSSL se envía sin ninguna CA raíz integrada, debemos distribuir el certificado de CA raíz con nuestro software (enlazamos estáticamente OpenSSL). Por lo general, la forma de hacerlo es distribuir un archivo de certificado en formato PEM y llamar a SSL_CTX_load_verify_locations.C++/OpenSSL: Usar CA raíz desde el búfer en lugar del archivo (SSL_CTX_load_verify_locations)
Sin embargo, esta función toma una ruta de archivo/directorio y lee los archivos de certificado raíz directamente desde el sistema de archivos. Realmente nos gustaría poder codificar el certificado en nuestro archivo binario en lugar de guardarlo en el sistema de archivos.
En otras palabras, nos gustaría tener una función como SSL_CTX_load_verify_locations que tome un X509 * en lugar de una ruta de archivo.
¿Algo como esto existe? o hay una manera fácil de hackear nosotros mismos? Parece que no podemos encontrar mucha información sobre esto.
¡Muchas gracias por cualquier sugerencia!
¿Qué le impide guardar el certificado raíz codificado en el disco antes de llamar a SSL_CTX_load_verify_locations? –
Nada lo impide: sin embargo, somos una aplicación de seguridad y nos preocupa la interferencia maliciosa. En particular, si es fácil localizar y sobreescribir nuestro archivo de certificado raíz, puede obstruir cualquiera de nuestras transacciones SSL. Seguiremos esta ruta si es necesario, pero sería genial poder compilar el certificado raíz en el propio binario. – DSII
No es más seguro tener su CA raíz codificada que mantenerla en un archivo. –