Интеграция 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, заинтересован ли кто-нибудь в помощи (и, возможно, уже начал).

Другие вопросы по тегам