Could checking for weak passwords using tools like John or rainbow tables be considered "best practice"?
Assolutamente, in effetti, molte distribuzioni Linux fanno un po 'di questo fuori dalla scatola. Dovresti dare un'occhiata a pam_cracklib, che applica una serie di test a una nuova password prima di accettare una modifica. È lo stesso di quello vecchio? Il vecchio si è invertito? Quasi tutti gli stessi personaggi dell'ultimo? La password esiste nel dizionario che hai specificato per verificare?
Trovo che la recensione di Hal Pomeranz su pam_cracklib sia un ottimo punto di partenza. Giustamente fa notare che non è ben documentato, il che rende più difficile per gli amministratori utilizzarlo per proteggere i propri siti, e presenta una semplice guida per renderlo sensato.
Questo riguarda la manutenzione preventiva di buone password, che è sicuramente una "migliore pratica". Un'altra procedura che segue è il cracking attivo, in cui gli amministratori eseguono John the Ripper contro i propri sistemi e, quando la password di un utente è incrinato, costringono l'utente a cambiare la propria password. Ciò potrebbe essere fatto su base continuativa o su base programmata (trimestrale / semestrale / annuale). Ci sono alcuni problemi da considerare prima di scegliere di fare questo; vuoi che i tuoi amministratori conoscano le password degli utenti quando si rompono? Hai un posto sicuro in cui non puoi accedere a un attaccante? Se gli utenti aggiornano le password con la stessa rapidità con cui vengono violate, sarà troppo intenso? ("Tutti gli utenti devono cambiare le loro password nei giorni che terminano in" Y "...)
Infine, la tua domanda si concentra sulla forza della password. Per motivi difensivi, ti invito a prestare attenzione anche alla codifica hash delle password. Le password Unix / Linux possono essere sottoposte a hash con DES, MD5 o Blowfish; è configurabile a livello di sistema. Molti sistemi usano l'algoritmo più vecchio e più comune, DES, che è banalmente rotto. Se puoi modificare le impostazioni del tuo sistema e le tue password in MD5 o Blowfish, diventerà molto più difficile per gli hacker crackare le tue password, anche se l'utente sceglie "Pa $$ w0rd" come password.