Интеграция OpenSSL и Apple Keychain
Мы используем мультиплатформенное приложение, которое должно работать как на Windows, так и на Mac. Наше приложение основано на OpenSSL в качестве поставщика SSL и сопутствующих материалов. Он использует сертификат клиента для установления безопасных соединений и идентификации конечного пользователя.
Мы хотим использовать собственные хранилища сертификатов Windows и Mac для обеспечения максимальной безопасности. Openssl имеет механизм взаимодействия с хранилищем сертификатов Windows (механизм CAPI). Однако нам не удалось найти такое решение для брелка Mac.
Есть ли интеграция между OpenSSL и Apple Keychain?
Если нет, что вы предлагаете?
2 ответа
Помимо обработки клиентского сертификата, вам также необходимо проверить сертификат сервера.
Для этого вам необходимо предоставить OpenSSL обратный вызов, который использует платформу безопасности Mac OS X для проверки сертификата сервера. Используйте функцию OpenSSL SSL_CTX_set_cert_verify_callback
установить свой собственный обратный вызов проверки сертификата. Ваш обратный вызов должен преобразовать сертификаты OpenSSL в SecCertificateRef
, создать SecPolicyRef
для соединений SSL создайте SecTrustRef
и оцените это. См. Сертификат, Ключ и Справочник по трастовым службам для более подробной информации.
Я думаю, что самым "простым" решением было бы написать движок OpenSSL для CSSM (API для CDSA, архитектура безопасности, используемая в Mac OS X). Вы должны спросить в списке рассылки openssl-dev, заинтересован ли кто-нибудь в помощи (и, возможно, уже начал).