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
- Usar
WebClient
para ingresar a nuestro sitio web e iniciar sesión usando el usuario credenciales proporcionadas: Sin embargo, esto podría ser vulnerable aMITM
ataque. - 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 ataqueMITM
y descifrar elSSL
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:
- Nuestra aplicación solo se conecta a nuestro servidor y no a ningún servidor falso servidor (por el atacante).
- 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)
).