The only truly secure computer is one that is isolated from the internet, turned off, unplugged, buried in a bunker 100ft under ground, with armed guards at the only entrance. Even then, I'd check in on it every once in a while.
L'hashing delle password fa parte di ciò che è noto come "sicurezza in profondità". Hai ragione nel dire che, in un mondo ideale, non avresti commesso errori che avrebbero consentito agli aggressori di accedere a quei dati, quindi in teoria non avrebbe importanza se si trattasse di password in chiaro o hash. In un mondo reale, si verificano intrusioni, ed è notevolmente difficile prevedere come e dove si verificheranno. L'idea alla base della sicurezza è far sì che, in teoria, anche se un utente malintenzionato compromette in qualche modo il tuo sistema, ti sei sforzato di mitigare il danno.
Nel mondo reale, c'è una necessità naturale di accedere agli hash su base regolare. Ogni volta che un utente effettua l'accesso, è necessario poterlo accedere. Di conseguenza, sono quasi sempre accessibili a qualunque applicazione stia facendo l'autenticazione. Se qualcuno compromette la tua applicazione, potrebbe essere in grado di leggere i dati che non avrebbero dovuto essere in grado di leggere.
I modi in cui si verificano questi attacchi sono infiniti. È possibile avere attacchi SQL injection se non si riesce a disinfettare i dati immessi. Si può avere un sovraccarico del buffer, dando all'aggressore la possibilità di eseguire il proprio codice. Potresti avere un errore di autorizzazione, rendendo casualmente un file leggibile dalle persone quando non dovresti avere. L'utente malintenzionato potrebbe mettere le mani su uno dei nastri di backup a causa della cattiva gestione del servizio di backup!
Tutti questi attacchi danno al malintenzionato un punto d'appoggio sul tuo computer, ma non sempre portano a un'interruzione completa. È possibile che sia stato eseguito il chroot del server SQL, in modo che il processo del server SQL non visualizzi letteralmente l'intero resto del computer. Tuttavia, in tali situazioni, le informazioni di accesso necessarie agli utenti devono trovarsi entro la portata del server SQL o essere prive di valore. Pertanto, le informazioni di accesso vengono generalmente compromesse prima che si verifichino altri compromessi più nefandi.
Tagliando le password, diminuisci il loro valore. Un hash non è utile ai fini del login. Hanno bisogno di avere la password che hash a quel valore. Potrebbero o potrebbero non essere in grado di permettersi il costo di rompere l'hash. Nel migliore dei mondi, in primo luogo non devi mai preoccuparti di questo, ma se ti iscrivi all'approccio di sicurezza in profondità, assicurati che anche un'intrusione di successo non comprometta tutti i tuoi dati.