Sto creando un'app per Android banking:
Parte I
Pertanto, mentre l'utente sta effettuando l'accesso, dovrà fornire la propria email e password in un modulo all'interno dell'app. Ok, quindi possiamo crittografare la password utilizzando RSA e invieremo il messaggio crittografato (Let this message be called E)
al server (nel mio caso un php), che decritterebbe i dati e confronterebbe la password con hash ... E il server saprebbe la password è corretta.
1) Un hacker non può monitorare i dati trasferiti tra il telefono dell'utente e un wifi in grado di conoscere E
? Quindi non sarebbe in grado di inviare E
al server e fingere di essere l'utente che sta effettuando l'accesso?
Parte II
Ora il server risponde al client, dopo aver verificato la password, e gli invia alcuni dati privati, ad esempio il suo saldo (o le transazioni private).
caso a: Non crittografiamo i dati privati, l'hacker qui sarebbe ovviamente in grado di vedere i dati privati (che dovrebbero essere privati).
caso b: crittografiamo i dati, utilizzando la crittografia a chiave pubblica segreta, in modo che la chiave privata si trovi all'interno dell'app.
2) Ma la chiave privata in questo caso (caso b) non sarebbe effettivamente "non privata" in quanto un hacker potrebbe decifrare il mio file apk e vedere la chiave privata? Qual è la soluzione?
3) Nel caso b, il metodo di crittografia (RSA) è sbagliato? C'è un metodo migliore?