Estoy implementando una aplicación móvil que utiliza el algoritmo de cifrado AES para cifrar algunos valores críticos que se envían a un servidor remoto (básicamente, la contraseña del usuario) y luego se descifra en el lado del servidor con la misma clave privada. Esto funciona perfectamente ahora, pero me preocupa un poco cómo almacenar / obtener la clave privada.
Actualmente, he dividido la clave privada (que está codificada) en 3 objetos de cadena, y cuando es necesario, los concatené. Sin embargo, me temo que esta no es una solución válida, ya que cualquier usuario malintencionado podría simplemente descodificar el binario y con un poco de paciencia obtener las tres partes.
Las preguntas son:
-
¿Cuál sería un buen enfoque que al menos dificultaría al atacante conocer la clave privada?
-
¿Le ayudaría usar una clave privada basada en un evento (por ejemplo, la fecha actual) en lugar de almacenarla?