2010-08-17 11 views
9

Estoy terminando mi aplicación para iPhone. Solo me preocupa la seguridad en nuestro nivel de servidor web. Los datos se transfieren a la aplicación iphone a través de servicios web.Hacer un servicio web seguro

¿Qué medidas de seguridad puedo aplicar a los servicios web para que no sea vulnerable?

Gracias

+0

He agregado la etiqueta de iPhone para que alguien con experiencia en iPhone pueda compartir cierta información sobre las funciones de seguridad permitidas en el iPhone. –

+0

@Ladislav - Eso está más allá del alcance de la pregunta. Esto es para servicios web. Se debe hacer una pregunta por separado con respecto a las características de seguridad del iPhone. –

+0

@Kyle: No estoy de acuerdo. Si desea escribir el servicio web consumido por el cliente de iPhone, debe saber qué características de seguridad son fácilmente aplicables en la plataforma del cliente. Puedo desarrollar fácilmente un servicio seguro que no podrá consumir en el iPhone. También he visto muchas preguntas sobre problemas de consumo de servicios con WS-Security en iPhone. –

Respuesta

4

algunas sugerencias:

  • verificar todas las solicitudes del servicio Web utilizando RSA signed XML
  • asegurarse de que todo se transmite a través SSL
  • cifrar el tráfico de todos los datos. Recomiendo buscar en el sistema de administración de claves DUKPT, usando el cifrado AES.
  • Use WCF - Es el último estándar después de todo (también this)
  • Utilice algún tipo de autenticación de servicio web. Esto puede ser tan simple como que todas las solicitudes que necesiten un nombre de usuario y contraseña sean válidas. Esto ralentizará los intentos de llamadas directas, y si obtiene el cifrado correcto, no tendrá que tener los nombres de usuario y las contraseñas en XML simple.
  • Lo más importante es asegurarse de que el servidor en sí sea seguro. Si alguien rompe el servidor, estás muerto en el agua, no importa qué más hagas.

EDIT:

Tenga una mirada en this question para iPhone a .NET AES Interoperabilidad.

+0

¿Hay una encriptación estándar? Me refiero a encriptar en el.nivel de red en el servidor que descifrado en xcode en el nivel de Apple iPhone? Espero que esta no sea una pregunta estúpida. – Matt

+0

@Tricky - Básicamente deberás echarle un vistazo. AES es un estándar, por lo que el iPhone debería ser capaz de soportarlo. –

+0

Es probable que estés limitado por el lado del iPhone de las cosas. –

1

Puede proteger sus servicios con HTTP Auth, SSL normal si no está utilizando la carga del servicio web para implementar la autenticación. ¿Eres el programador del lado del servidor también?

0

No importa lo que "ponga" el servicio WCF si su servicio WCF es inseguro. Debe suponer que un atacante puede acceder a su servicio web sin el cliente de iPhone. ¿Su servicio web es vulnerable a la inyección sql? ¿Está exponiendo una funcionalidad desagradable que podría permitirle a un atacante leer archivos en su servidor o cambiar otra cuenta de usuario? Mantenga OWASP Injection flaws en mente. Use HTTPS para mantener a sus clientes a salvo de la transmisión de información. El resto debe asegurarse de que la funcionalidad que expone sea segura.

Un atacante podrá encontrar cualquier clave secreta o contraseña que intente guardar en el iPhone binario o en la memoria. El atacante tiene más control sobre el iPhone que tú, puede romper el dispositivo y entonces no hay lugar donde esconderse.

Cuestiones relacionadas