2011-05-15 17 views
5

Stiamo utilizzando un'applicazione multi piattaforma che deve essere eseguita sia su Windows che su Mac. La nostra applicazione è basata su OpenSSL come fornitore di roba SSL e relativo. Utilizza il certificato client per stabilire connessioni sicure e identificare l'utente finale.Integrazione con Keychain OpenSSL e Apple

Vogliamo utilizzare archivi di certificati nativi Windows e Mac per garantire la massima sicurezza. Openssl ha un motore per interagire con il Certificate Store di Windows (motore CAPI). Tuttavia, non siamo riusciti a trovare una soluzione simile per il portachiavi di Mac.

Esiste un'integrazione tra OpenSSL e il portachiavi di Apple?

In caso negativo, quali sono i tuoi suggerimenti?

+0

Siamo appena incappati in questo link (http://www.mentby.com/wim-lewis-2/using-cdsacssm-modules-as-openssl-engines.html) a una sorta di implementazione di un motore openssl per Mac. Stiamo controllando se risponde alle nostre esigenze. – Guy

risposta

0

Oltre a gestire il certificato client, è inoltre necessario verificare il certificato del server.

Per fare ciò, è necessario fornire a OpenSSL un callback che utilizza il framework di sicurezza Mac OS X per convalidare il certificato del server. Utilizzare la funzione OpenSSL SSL_CTX_set_cert_verify_callback per impostare la richiamata di convalida del certificato personalizzato. Il callback deve convertire i certificati OpenSSL in SecCertificateRef, creare un SecPolicyRef per connessioni SSL, creare un SecTrustRef e valutarlo. Vedi Certificate, Key, and Trust Services Reference per maggiori dettagli.

0

Penso che la soluzione "più semplice" sarebbe quella di scrivere un motore OpenSSL per CSSM (API per CDSA, security architecture used by Mac OS X). Dovresti chiedere sulla mailing list di openssl-dev se qualcuno è interessato ad aiutare (e potrebbe aver già iniziato).