Me he encontrado con un problema ... Estoy desarrollando una aplicación móvil que utiliza un servidor para varias cosas. Una parte es que almacena un par de identificación / clave relacionado con el acceso y el procesamiento de información de transacciones para cuentas específicas. Esta identificación / clave para cuentas específicas se decide de forma dinámica en función de lo que sucede con el cliente y a qué cuenta necesita acceder dentro del código en el lado del cliente. Sin embargo, dado que se accede a toda la información de la aplicación a través de una api a través de HTTP (S), la identificación / clave podría estar disponible públicamente para personas con malas intenciones ..
Soy extremadamente paranoico de las infracciones de seguridad de esta información, pero necesito encontrar una manera de llegar al cliente de forma segura sin la posibilidad de interceptación.
He pensado en algunas maneras, pero no he encontrado nada que parezca completamente comprobado, y no estoy seguro de que haya algo garantizado, ya que incluso un valor cifrado de este par de claves / identificación puede ser adquirido con credenciales API.
¿Mi idea principal fue algún tipo de autenticación dinámica cliente / servidor que se genere e identifique de forma única entre ambas entidades, junto con un cifrado de dos vías de esta ID / clave que se devuelve al cliente? Aunque esto podría ser violado si alguien logró profundizar en el código compilado y ver cómo se genera esta autenticación / sal dinámica.
Obviamente, es 100% mejor no tener que transmitir esta información al cliente, pero desafortunadamente en esta situación específica no hay forma de evitarlo.
Dada la sensibilidad de esta información, la solución aquí debe ser sólida.