Estamos desarrollando una aplicación móvil y queremos implementar algún tipo de autenticación para asegurarnos de que nuestra aplicación solo acceda a la API. Los usuarios de la aplicación son anónimos, sin inicios de sesión, aunque sí los identifico a través de la identificación del dispositivo para mantener la configuración y demás.¿Cómo asegurarnos de que las solicitudes de API provengan de nuestra aplicación móvil (ios/android)?
El enfoque más fácil parece ser la generación de una clave Guid/API que envío con cada solicitud a través de SSL.
Lo que me preocupa es la posibilidad de que una persona malintencionada con mucho tiempo libre descargue la aplicación, la descompile para obtener la clave API y las solicitudes JSON, y luego destruya mi base de datos lo mejor que pueda.
¿Es suficiente SSL, una clave de API, una identificación de dispositivo y una API con llamadas lo más limitadas posible? ¿Debo tomar un enfoque diferente? ¿Mis miedos están fundados o son infundados?
No entiendo cómo esto hace que algo sea más seguro. El punto de vulnerabilidad solo es diferente en su caso: el servicio de registro. Puedo atacar eso y también tengo acceso completo. Creo que para Android, al menos, es posible hacer algo como esto: http://android-developers.blogspot.de/2013/01/verifying-back-end-calls-from-android.html – therealmarv
¿Cómo atacarías el servicio de registro para obtener acceso completo? –