Attualmente sto sviluppando un gioco che verrà eseguito in un cliente, che si iscriveranno a questo gioco online e creeranno il loro account lì, le loro informazioni saranno archiviate in un database MySQL. Sto creando il gioco usando Lua + Love2D, al momento del lancio del gioco l'utente verrà presentato con un campo login e password. Il processo andrà come segue:
- L'utente invia i propri dati
- Il client invia il proprio nome utente al server richiedendo la password salt
- Il client riceve il sale dal server e lo aggiunge al proprio input
- L'hash del client ha aggiunto la password una certa quantità di volte usando SHA256
- Il client invia l'hash finale al server
- Il server verifica che sia l'hash corretto
- Il client riceve "true" o "false" a seconda che sia la password corretta
Ora la mia domanda è, ho sentito che qualcuno può facilmente intercettare questi dati, e ottenere il loro nome utente, hash e hash password, quindi fondamentalmente inviare queste informazioni al server in qualche modo ottenere loro l'autenticazione per gli account di tali persone. Come posso evitare che ciò accada? Posso usare qualcosa come una chiave di autenticazione? Se sì, puoi spiegare come funzionerebbe?