SOMMARIO RAPIDO:
Sembra che i siti Web moderni, per motivi di sicurezza, debbano tutti avere il client con le proprie password prima di inviarli al server, che li ridistribuisce, per evitare la perdita della password originale (probabilmente riutilizzata su diversi siti), e anche per rendere necessaria la decrittografia su base individuale, piuttosto che semplicemente decifrare una singola chiave SSL.
QUESTIONE ORIGINALE:
Ho appena fatto un rapido controllo per essere sicuro, e sono rimasto stupito nel vedere che i principali siti Web sembrano ancora inviare le password nel loro formato originale per gli accessi, anche se su SSL / TLS. Capisco che sono hashing e salting / peppering prima di metterli nel database. Tuttavia, vedo ancora un problema con questo.
Sembra che l'hashing di tutte le password con un sale unico sul sito prima di inviarle, e poi l'hashing hash sarebbe sostanzialmente più sicuro per i client, specialmente alla luce di notizie recenti :
The NSA and its allies routinely intercept such connections -- by the millions. According to an NSA document, the agency intended to crack 10 million intercepted https connections a day by late 2012. The intelligence services are particularly interested in the moment when a user types his or her password. By the end of 2012, the system was supposed to be able to "detect the presence of at least 100 password based encryption applications" in each instance some 20,000 times a month. (Emphasis added)
Pur capendo che dal punto di vista dell'efficienza, avere la password del client hash non è necessaria, sono più interessato al fatto che l'hashing della password originale significherebbe che anche se i dati sono stati intercettati, sul server, -se durante la connessione o durante la decodifica del protocollo SSL, sarebbe utile solo per accedere al sito Web per cui è stato intercettato.
Suppongo che dovrebbe essere una preoccupazione importante considerando molte persone che riutilizzano le password , tuttavia questi enormi siti inviano ancora il password originale e hashing sulla loro fine. C'è una ragione tecnica dietro questa, o è solo una vecchia pratica che dovrebbe idealmente essere cambiata?
MODIFICA PER CHIARIMENTO: Non sto suggerendo che questi siti inizino a fare tutto ciò che è di hashing sul lato client e lo buttino nel loro DB così com'è, dovrebbero sicuramente hash / salt l'hash. Il mio suggerimento è che il client esegua l'hashing della password in modo che il server non abbia idea di quali fossero i dati originali e quindi la stessa password può essere riutilizzata e un compromesso su un sito Web non significherebbe compromettere la password su altri siti. Come bonus, limiterebbe anche l'accesso scoperto dai proxy malintenzionati ai siti registrati, piuttosto che passargli la password.