Pregunta

Requisitos para establecer una conexión SSL HTTPS 2 vías desde mi aplicación iPhone para el servidor del cliente. Sin embargo, no veo ninguna forma segura de entregar los certificados de cliente a la aplicación (que es una aplicación de banca electrónica, por lo que la seguridad es realmente un problema). Por lo que he encontrado hasta ahora la única manera de que la aplicación sería capaz de acceder al certificado es proporcionar a los que pre-bundeled con la propia aplicación, o exponer una URL desde la que se han podido recuperar (IPhone aplicación con certificados de clientes SSL ).

Lo que pasa es que ninguna de estas dos maneras prevenir un tercero para obtener el certificado, que si es aceptada como un riesgo elimina la necesidad de 2 vías SSL (ya que cualquier persona puede tener el certificado de cliente).

El protocolo de seguridad conjunto debería tener este aspecto:
- HTTPS 2 vías SSL para autentificar la aplicación
- (par de claves de cliente generada en este paso) OTP (token) de registro de usuario basada
- SOAP / XML WSS-Firma (peticiones firmadas por las claves generadas anteriormente)

Cualquier idea sobre cómo establecer la primera capa de seguridad (HTTPS)?

¿Fue útil?

Solución

Ok, así que para responder a mi propia pregunta ...

Resultó que el título ha escala de medición sin fijo. Los requisitos de seguridad son satisfechas, siempre y cuando el precio para el frenado del sistema es significativamente superior al premio que se obtendría por hacerlo.

En mi situación estamos hablando de sistema de banca electrónica, pero con límites mensuales un tanto bajos (un par de miles de dólares). Como ya he mencionado en mi pregunta habría otra capa de seguridad por encima de la HTTPS que contará con WSS-XML Firmas. El proceso de registro de usuario y su aceptación de la clave pública también se realiza en varios pasos. En el primer paso, el usuario envía su número de teléfono junto con un bacalao recuperado de alguna manera de mi cliente. A continuación, se envía un SMS al usuario con un código de confirmación. El usuario introduce el código de confirmación en una calculadora de OTP que produciría código OTP que identificará al usuario. A continuación, la clave pública se envía al servidor junto con el código OTP. A partir de aquí todas las peticiones que ser firmado por la contraparte privada de la clave pública se envía al servidor anterior.

Así que la mayor debilidad de todo el proceso es la de alguien ingeniería inversa de la aplicación y recupera el certificado de cliente utilizado para la SLL. El único problema que surge de esto es que alguien podría observar las transacciones de los usuarios. Sin embargo, para que una persona para realizar una transacción que necesitaría la clave privada del usuario, que se genera, encriptada y almacenada en el llavero. Y el precio de frenado este nivel de seguridad es muy alto.

Estamos, además, va a pensar en cómo proteger los datos de los usuarios en un nivel superior (por ejemplo, utilizando WSS cifrado), pero por lo inicio que estamos bien con la solución actual.

ninguna opinión?

lo que respecta

Otros consejos

https en realidad no funciona de esta manera. En pocas palabras, usted conecta a un servidor seguro donde los certificados son firmados por una autoridad bien conocida.

Si utiliza Manzanas (iPhone) clases para esto, que sólo aceptará los certificados de 'buenas'. Por bueno, me refiero a lo que Apple considera como aceptable. Si no se utilicen (hay alternativas en el SDK), usted no será capaz de conectarse (excepto, tal vez, en el caso de que usted tiene una licencia a los desarrolladores una 'empresa' - pero no puedo decir que con 100% de certeza ya que no he mirado lo suficiente en esta licencia para estar seguro)

Para continuar, utilizar su conexión HTTPS a su sitio web correctamente firmado y luego instituir algún tipo de inicio de sesión con un teclas de cambio construida en nombre de usuario / contraseña, o desafío / respuesta en base a la ID única del iPhone (por ejemplo) y el uso de esa conexión.

Tenga en cuenta que esto significa que su aplicación tendrá a consulta para los nuevos certificados (cada conexión / conexiones cada X / mes cada aplicación especificada intervalos /) para mantenerlos al día. A continuación, puede utilizar estos certificados para conectarse al servidor más seguro.

[editar]

este post - puede tener más información acerca de lo que está pidiendo que haga

[/ editar]

[Edit2]

Tenga en cuenta que la solicitud es iPhone, no OSX - aprobación tienda de aplicaciones es un tema

[/ Edit2]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top