Non sono un esperto di sicurezza ma sto cercando di capire come funzionano le attuali migliori pratiche per l'adozione di una politica di sicurezza per un sito Web che conterrà informazioni riservate.
In termini di utenti che tentano di accedere agli account utente attraverso la porta principale / schermata di accesso, sono felice di avere familiarità con informazioni sufficienti a rendere questo esercizio inutile.
Tuttavia voglio anche evitare la possibilità che il database possa essere violato e che una terza parte sia in possesso di tutte le password crittografate.
È a questo punto che non riesco a vedere alcun reale vantaggio nell'usare il metodo di crittografia MD5, MD5 + Salt, AES nei casi in cui il database è compromesso e tutte le chiavi necessarie per testare una password rispetto a qualsiasi l'hash viene mantenuto nel database.
Non sarei più sicuro se avessi preso un metodo di crittografia come MD5 e usato quello per crittografare la password dell'utente, e quindi prendere la stringa crittografata, e attraverso il codice, selezionare dire i primi n caratteri dell'hash e passare quello attraverso la crittografia MD5 e memorizza l'hash nel database?
vale a dire. prendi la password "password"
L'hash generato da MD5 sarebbe 5f4dcc3b5aa765d61d8327deb882cf99
Prendo ad esempio i primi 14 caratteri 5f4dcc3b5aa765 ed eseguo questo attraverso la crittografia MD5 per ottenere un nuovo Hash 316e881b8519579949391d6f8424decb che memorizzo nel database.
Solo il codice dovrebbe sapere quanti caratteri sono stati usati per ricodificare il primo codice hash. Qualsiasi hacker che non sia in possesso sia dei dati del database che del codice sorgente non sarebbe in grado di confrontare i codici hash utilizzando un set di regole del dizionario, anche se potrebbe aver identificato correttamente che viene utilizzata la crittografia MD5.
Tutti i metodi di crittografia che ho cercato fino ad ora sembrano memorizzare le chiavi di crittografia nel database che non sembra dare molta protezione da un errore di dump del database.
È del tutto possibile che io sia ingenuo qui e non capisco la prima cosa sulla sicurezza, ma qualsiasi consiglio da parte di persone che farebbe sarebbe apprezzato.