Ya pregunté esto en Stack Overflow, here . Me dijeron que podría encontrar respuestas aquí.
Ya pregunté esto en Stack Overflow, here . Me dijeron que podría encontrar respuestas aquí.
Dos cosas:
(Quizás un poco fuera de tema). No estoy seguro de iOS, pero en OSX, CFStream, CFNetwork, etc., permiten que la aplicación utilice una clave privada en el KeyChain sin tener acceso a su contenido. Por ejemplo, si tiene que autenticarse en un sitio con un certificado de cliente, es la capa del sistema operativo / llavero que tratará con la firma usando la clave privada y luego pasa el "identificador" de TLS a la aplicación.
En cierto sentido, hace que las claves sean más seguras, ya que los usuarios no necesitan confiar tanto en la aplicación: incluso si usa su clave privada cuando se lo permite, nunca podrá hacer una copia. de ella (y tal vez enviarlo a un sitio deshonesto). (Tenga en cuenta que esto depende de varias opciones de configuración, por supuesto, ya que también puede proporcionar el contenido de la clave privada a la aplicación si es necesario y el usuario lo permite).
Por lo que sé, OpenSSL no está integrado con el sistema operativo de esta manera (por lo que el proceso de la aplicación debe poder hacerse con la clave privada si quiere usarla).