2008-12-07 9 views
9

¿Alguno de ustedes tiene una pista sobre cómo alterar el contenido de Security.framework/TrustStore.sqlite3? Parece que el iPhone lo usa para almacenar certificados de CA confiables. Realmente quiero que mi iPod touch confíe en mi certificado personalizado. Además de eso, ¿alguno de ustedes conoce una aplicación (win32) para editar archivos de base de datos sqlite3 (excepto sqliteman, este siempre falla para mí).iPhone TrustStore CA certificados

Respuesta

6

me puedo imaginar que alguien más va a encontrar este problema, por lo tanto, me gustaría responder a cómo funciona (Apple no va gustaría ver eso):

1º) Los fideicomisos iPhoneOS todos los certificados CA almacenados en /System/Library/Frameworks/Security.framework/TrustStore.sqlite3

2º) Algunos campos en esa base de datos contienen datos que no entendí, mientras que los significados de otros como "SHA1" son bastante obvios.

3er) Hay dos TrustStore.sqlite3 diferentes en su iPod/iPhone. El segundo se encuentra en /private/var/Keychains/TrustStore.sqlite3. La única diferencia entre ellos es que Apple solo confía en los contenidos de uno en Security.framework.

4º) Este último se utiliza para almacenar los certificados instalados por el usuario (gracias, coreano), mientras que el diseño de la tabla es el mismo.

Quinto) Abra su certificado autofirmado utilizando Mail o Safari e instálelo.

6º) Abra /private/var/Keychains/TrustStore.sqlite3 utilizando su administrador de base de datos SQLite favorito y busque la fila en los enlaces cuyo BLOB "SHA1" contiene el hash de su certificado de CA.

7º) Extraiga toda la fila e insértela en la tabla de ajustes de TrustStore.sqlite3.

8º) Asegúrese de haber copiado la base de datos en el dispositivo, reinícielo.

9º) Por ahora, debe confiar totalmente en los certificados firmados por su CA personalizada.

+0

Gracias por esto, es su opción _ONLY_ cuando se desarrolla en el emulador. El uso de la utilidad de configuración solo funciona para dispositivos físicos. – RandomNickName42

+0

Arrastra eso, la configuración del emulador resultó ser un callejón sin salida para mí. – RandomNickName42

+0

La utilidad de configuración no configurará su propia raíz ca de confianza. –

3

Para la segunda parte de su pregunta, he usado la extensión SQLite para Firefox para crear y editar archivos sqlite db.

addons.mozilla.org

7

Si tiene un servidor web configurado para servir a los certificados digitales con el tipo MIME correcto entonces Safari en el iPhone los añadirá al almacén de confianza.

mime-tipo para un certificado de CA es "application/x-x509-ca-cert" (ejemplo here)

Cuando descargas de Safari este certificado será como el usuario si quieren confiar en ella.

Una vez que es confiable aparece en la configuración | General | Sección de perfiles como un perfil de configuración.

alt text http://o-regan.org/cacert.png

El certificado también se inserta en el db TrustStore.sqlite3. Verificado haciendo una copia de seguridad y extrayendo el DB con iphone backup extractor.

No estoy seguro de si eso significa que ahora es de confianza para otros fines, por ejemplo, como raíz de SSL.

Espero que esto ayude, podría investigar más si el tiempo lo permite.

+0

La extensión por defecto para 'application/x-x509-ca-cert' en'/etc/mime.types' es ' .crt'. – ceving

0

Desde IOS 11 el almacén de confianza se encuentra en: /System/Library/Security/Certificates.bundle lugar de la ubicación habitual: /System/Library/Frameworks/Security.framework

Cuestiones relacionadas