Sto sviluppando un software in cui ho bisogno di trasmettere dati sensibili (password) in una configurazione server / client usando TCP. Tutti i dati sono crittografati usando AES (la chiave simmetrica è unica per ogni scambio e trasmessa tramite PGP / RSA, questa parte è sicura).
Mi piacerebbe, per maggiore sicurezza, cancellare i dati sensibili prima di inviarli. Le password sono memorizzate in un database SQL. L'uso di SHA-256/512 fa miracoli, ma preferirei usare BCrypt che è solido come la roccia nel caso in cui il database venisse rubato. Tuttavia, poiché BCrypt richiede la semplice password per verificare le corrispondenze e dal momento che il controllo è eseguito sul lato server, questo mi imporrebbe di inviare la password in testo semplice (anche se crittografata con AES). Ho anche pensato di fare circa 1000 iterazioni hashing della password usando sha-256 / sha-512, ma non sono sicuro che sia davvero l'idea migliore.
Quale sarebbe il modo migliore per garantire una trasmissione completamente sicura e una memorizzazione completamente sicura delle password?