Comunicación segura entre la aplicación .Net y el sitio web

0

Recientemente, desarrollamos una aplicación que queremos que sus usuarios paguen por una suscripción mensual para poder usarla. Entonces, lo primero que nos vino a la mente fue cómo implementar una forma segura para que nuestra aplicación verificara la validez del usuario y surgieron esas ideas

  1. Usar WebClient para ingresar a nuestro sitio web e iniciar sesión usando el usuario credenciales proporcionadas: Sin embargo, esto podría ser vulnerable a MITM ataque.
  2. Usando el primer enfoque pero usando el certificado SSL (para asegurarse que nos estamos conectando a nuestro servidor y no a los atacantes '): Sin embargo, Fiddler puede hacer fácilmente un ataque MITM y descifrar el SSL comunicación, lo que resultará en la misma vulnerabilidad que la primer acercamiento.

Debido a la falta de documentación en Internet de lo que necesitamos, tuvimos que pedir aquí a alguien que nos explique cómo podemos asegurarnos de que:

  1. Nuestra aplicación solo se conecta a nuestro servidor y no a ningún servidor falso servidor (por el atacante).
  2. La comunicación es segura. No alterado ni editado de alguna manera en orden. Para permitir el acceso injusto a nuestra aplicación. (enviando un falso respuesta a la aplicación o editando la respuesta original antes de la la aplicación lo recibe (replay attack) ).
pregunta Danny Rob 17.03.2014 - 18:16
fuente

1 respuesta

0

No puedes evitar que un usuario sofisticado craquee la aplicación. Lo único que puede hacer es hacer que sus medidas de seguridad sean difíciles de eludir. Según entiendo, su aplicación proporciona todas las funciones a menos que su servidor diga "no". Tienes varias formas de lograr esto

Texto sin formato : fácil de eludir. Edite el archivo de hosts, escriba un pseudo servidor, listo.

Transporte cifrado : Ligeramente más difícil de eludir. Agregue un certificado Root-CA, escriba un pseudo-servidor, hecho.

Mensaje cifrado : la aplicación genera una solicitud cifrada, el servidor responde con una respuesta cifrada. Difícil de sortear a nivel de red. Tendría que extraer la clave de la aplicación (que se puede ofuscar en el código). Debería usar nonces aquí para evitar ataques de reproducción.

Siempre posible : busque la instrucción que dice sí / no dentro de la aplicación, parche para que siempre diga sí, listo :-)

    
respondido por el fr00tyl00p 17.03.2014 - 19:56
fuente

Lea otras preguntas en las etiquetas