Devo utilizzare un servizio esterno a cui è possibile accedere solo tramite password.
Non mi piace l'idea di archiviare la password in chiaro sul server, ma AFAIK non c'è molto che possa fare.
Considerando che questo servizio sarà accessibile solo da un client (che non può conoscere l'intera password), la mia idea di provare a rendere le cose un po 'più difficili per un hacker, è di memorizzare "metà" della chiave sul server e "metà" della chiave sul client.
So che anche questo non può essere perfetto, e che qualcuno che ottiene pieno accesso al server sarà in grado di scoprire la password, ma è meglio di niente. (Altri suggerimenti sono ben accetti.)
Considerando le modifiche della password di volta in volta e che non voglio cambiare il "server half" di questa password, la mia migliore idea è questa:
- Genera una chiave casuale K e memorizzala sul server
- Cripta password (P) con K, generando E, e consegna E al client
- Ora, ogni volta che il client vuole accedere al servizio, fornisce E e il server decodifica E usando K.
- Quando la password (P) cambia (in P '), devo solo cifrarlo di nuovo con K e fornire la nuova E' al client.
Questo sembra ragionevole? Altre idee?