Stiamo progettando un'API Web - accessibile solo tramite https - ma tra la nostra squadra sembrano esserci due scuole di pensiero:
Il gruppo 1 vuole adottare un approccio più preoccupato per la perdita di dati rispetto agli attacchi MITM:
- Le password verranno inviate in chiaro nelle richieste (ma un MITM sarebbe quindi in grado di recuperare la password di un utente).
- Le password verranno offuscate in modo non reversibile nel DB (bcrypt).
Gruppo 2 ritiene che il rischio di un attacco MITM superi quello della perdita di dati. Pertanto:
- Le password verranno inviate in richieste in forma digest, quindi non possono essere ripristinate da un MITM.
- Come risultato dell'utilizzo dei digest, la password originale deve essere ripristinata sul server in modo che il digest possa essere ricreato. Pertanto le password verranno archiviate crittografate nel database.
Mentre la sicurezza totale è ovviamente impossibile, c'è una terza via che può avere il meglio di entrambi i mondi? Mentre l'approccio del Gruppo 1 sembra piuttosto ortodosso, quanto sono comuni le Group 2?