Estoy trabajando en una API pública para el proyecto X. El sistema permite registrar un app_id y llamar a los métodos de la API, como de costumbre. Ahora, necesito desarrollar un cliente móvil oficial para el proyecto X que debería tener más posibilidades que los no oficiales construidos sobre esta API.
En otras palabras, pensemos, por ejemplo, que tenemos una API que consta de 5 métodos GET. Ahora voy a implementar 1 nuevo método PUT y quiero permitir que solo 1 app_id exacto lo use.
El problema de seguridad es que:
-
Si simplemente codifico el cheque para app_id, será fácil de superar, simplemente detectando el tráfico o eliminando la aplicación para encontrar este app_id oficial y luego simularlo
-
La aplicación es móvil, por lo que no puedo limitar el acceso por IP
-
Criptografía de clave pública, donde la clave pública está en el cliente y las claves privadas mantenidas en secreto por el servidor parecen iguales al problema 1. para mí, ¿no?
Creo que no es un problema de supernova, por favor sugiera soluciones confiables, por favor.