2011-05-15 3 views
5

우리는 Windows와 Mac에서 모두 실행해야하는 다중 플랫폼 응용 프로그램을 사용하고 있습니다. 우리의 응용 프로그램은 OpenSSL을 SSL 및 관련 물건 공급자로 사용합니다. 클라이언트 인증서를 사용하여 보안 연결을 설정하고 최종 사용자를 식별합니다.OpenSSL 및 Apple Keychain 통합

우리는 최대 보안을 위해 Windows 및 Mac 고유 인증서 저장소를 사용하고자합니다. Openssl에는 Windows의 인증서 저장소 (CAPI 엔진)와 상호 작용할 수있는 엔진이 있습니다. 그러나 우리는 Mac의 Keychain과 같은 솔루션을 찾을 수 없었습니다.

OpenSSL과 Apple의 키 체인이 통합되어 있습니까?

그렇지 않은 경우 제안 사항은 무엇입니까?

+0

우리는이 링크 (http://www.mentby.com/wim-lewis-2/using-cdsacssm-modules-as-openssl-engines.html)에 대한 openssl 엔진의 일종의 구현을 우연히 발견했습니다. 맥. 우리는 그것이 우리의 필요에 응답하는지 확인하고 있습니다. – Guy

답변

0

클라이언트 인증서를 처리하는 것 외에도 서버 인증서를 확인해야합니다.

이렇게하려면 OpenSSL에 Mac OS X 보안 프레임 워크를 사용하여 서버 인증서의 유효성을 확인하는 콜백을 제공해야합니다. OpenSSL 함수 SSL_CTX_set_cert_verify_callback을 사용하여 사용자 정의 인증서 유효성 검증 콜백을 설정하십시오. 콜백은 OpenSSL 인증서를 SecCertificateRef으로 변환하고 SSL 연결을 위해 SecPolicyRef을 만들고 SecTrustRef을 만들고이를 평가해야합니다. 자세한 내용은 Certificate, Key, and Trust Services Reference을 참조하십시오.

0

"가장 간단한"해결책은 CSSM 용 OpenSSL 엔진 (CDSA 용 API, security architecture used by Mac OS X)을 작성하는 것이라고 생각합니다. 누구든지 도움을 원한다면 openssl-dev 메일 링리스트에 질문해야합니다 (이미 시작했을 수도 있습니다).