Actualmente, estoy desarrollando una aplicación para Android relacionada con el banco. Compartiría mis conocimientos y quizás también ustedes sean más expertos que yo para que puedan agregar sus ideas a la lista.
El banco es un cliente muy especial. Ellos realmente se preocupan por las cosas de seguridad. Sin embargo, al mismo tiempo, quieren tener mucha flexibilidad y una gran característica para consolar a sus usuarios. Realmente creo que la seguridad y la comodidad no se relacionan entre sí.
Entonces, ¿qué he hecho son:
- Use SSL para comunicarse desde la aplicación y la API web.
- Usar la autenticación de token para asegurarse de que la solicitud a la API sea de la aplicación oficial. Lo más probable es que use una clave de token compartida que se actualice cada mes. El token se basará en la cadena aleatoria acordada, la identificación de Android y la identificación de la aplicación.
- Para evitar la ingeniería inversa, utilizo proguard para ofuscar la aplicación. No estoy realmente seguro de cuán seguros son los programas, pero los Java Class son muy fácilmente reversibles. Con suerte, con proguard puede hacerlo más difícil.
- También uso MCSSID de simcard y Android ID para validar el inicio de sesión de cada usuario y cuando se inicia la aplicación. Una vez que se cambia la tarjeta SIM, el usuario debe volver a registrar toda la información (como el número CC, el teléfono móvil y la OTP del banco). Además, el servidor comprobará una vez que la ID de Android no coincida. El servidor marcará la transacción con mayor riesgo. El banco puede llamarlos para verificar su transacción.
- La aplicación no podrá ejecutarse en dispositivos Rooted. Si los dispositivos están enraizados, no permitirá continuar y finalizar la actividad en ejecución después de la alerta.
- Además, en el futuro, estoy planeando revisar regularmente el inicio de sesión del comportamiento del usuario (como Tiempo, Ubicación) para garantizar que cualquier actividad inusual se marque como de alto riesgo
De los pasos dados anteriormente, ¿hay alguna acción preventiva que pueda impulsar más en el lado de la seguridad?
Gracias