Estoy creando una aplicación de banca para Android:
Parte I
Por lo tanto, mientras el usuario inicia sesión, deberá proporcionar su correo electrónico y contraseña en un formulario dentro de la aplicación. Bien, entonces podemos cifrar la contraseña usando RSA y enviaríamos el mensaje cifrado (Let this message be called E)
al servidor (en mi caso a php), que descifraría los datos y compararía la contraseña con hash ... Y el servidor sabría la contraseña es correcta.
1) ¿No puede un pirata informático monitorear los datos transferidos entre el teléfono del usuario y un wifi que no puede saber E
? Entonces, ¿no podría enviar E
al servidor y ser el usuario que inicia sesión?
Parte II
Ahora el servidor respondería al cliente, después de verificar la contraseña, y le enviaría algunos datos privados, por ejemplo, su saldo (o transacciones privadas).
caso a: No ciframos los datos privados, el pirata informático obviamente podría ver los datos privados (que se supone que son privados).
caso b: ciframos los datos, usando un cifrado de clave secreta pública, por lo que la clave privada estaría dentro de la aplicación.
2) Pero, ¿no sería la clave privada en este caso (caso b) realmente "no privada", ya que un pirata informático podría descifrar mi archivo apk y ver la clave privada? ¿Cuál es la solución?
3) En el caso b, ¿es incorrecto el método de cifrado (RSA)? ¿Hay algún método mejor?