2011-05-15 14 views
5

Estamos utilizando una aplicación multiplataforma que debe ejecutarse tanto en Windows como en Mac. Nuestra aplicación se basa en OpenSSL como SSL y proveedor de material relacionado. Utiliza el certificado de cliente para establecer conexiones seguras e identificar al usuario final.Integración de OpenSSL y Apple Keychain

Queremos utilizar almacenes de certificados nativos de Windows y Mac para garantizar la máxima seguridad. Openssl tiene un motor para interactuar con el Almacén de certificados de Windows (motor CAPI). Sin embargo, no logramos encontrar una solución para el llavero de Mac.

¿Existe una integración entre OpenSSL y Apple's Keychain?

Si no, ¿cuál es su sugerencia?

+0

Acabamos de tropezar con este enlace (http://www.mentby.com/wim-lewis-2/using-cdsacssm-modules-as-openssl-engines.html) para algún tipo de implementación de un motor openssl para Mac. Estamos comprobando si responde a nuestras necesidades. – Guy

Respuesta

0

Además de gestionar el certificado del cliente, también deberá verificar el certificado del servidor.

Para hacerlo, deberá proporcionarle a OpenSSL una devolución de llamada que utiliza el marco de seguridad de Mac OS X para validar el certificado del servidor. Use la función OpenSSL SSL_CTX_set_cert_verify_callback para establecer su devolución de llamada de validación de certificado personalizada. Su devolución de llamada debe convertir los certificados OpenSSL a SecCertificateRef, crear un SecPolicyRef para conexiones SSL, crear un SecTrustRef y evaluarlo. Vea Certificate, Key, and Trust Services Reference para más detalles.

0

Creo que la solución "más simple" sería escribir un motor OpenSSL para CSSM (API para CDSA, security architecture used by Mac OS X). Deberías preguntar en la lista de distribución de openssl-dev si alguien está interesado en ayudar (y puede que ya haya comenzado).