TLDR. Può essere sicuro se lo si configura correttamente e si utilizzano buone password lunghe.
1. nei postgres md5 auth-method
significa hashing lato client (discussioni: 1 , 2 ), che rende hash equivalente password . Un hash nel db viene confrontato con un hash ricevuto da un client. Un utente malintenzionato può utilizzare qualsiasi hash dalla tabella rubata pg_shadow direttamente, senza nemmeno perdere tempo a crackare l'md5.
È molto più sicuro presumere che gli hash verranno eventualmente rubati e per evitare l'hashing sul lato client.
In realtà puoi semplicemente dare un'occhiata al codice, è piuttosto semplice: link < - link diretto a questa riga:
if (strcmp(crypt_client_pass, crypt_pwd) == 0)
Guarda cosa succede quando port->hba->auth_method == uaMD5
. Sì, non è possibile intercettare un hash clear-text, è di nuovo salato e hash. Ma quando rubato da qualsiasi altro attacco, può essere usato direttamente senza crack.
2. Non sorprendentemente, puoi utilizzare l'hashing md5 lato server con postgres utilizzando password auth-method
e create user whatever with encrypted password
.
These methods operate similarly except for the way that the password
is sent across the connection, namely MD5-hashed and clear-text
respectively.
Usa SSL per proteggere la password in chiaro. Probabilmente dovresti sapere come viene memorizzato il suo hash: il sale viene riutilizzato:
/* Encrypt user-supplied password to match stored MD5 */
if (!pg_md5_encrypt(client_pass, // const char *passwd
port->user_name, // const char *salt
strlen(port->user_name),
crypt_client_pass)) // char *buf
Si potrebbe persino creare nomi utente usa e getta generati casualmente per usarli come sale, ma non sono sicuro che sia una buona idea, questo è soggetto ad errori.
Mentre la raccomandazione generale è di migrare da md5, non è ancora rotta per l'hashing della password. Domanda pertinente: Perché le persone usano / raccomandano MD5 in caso di crack dal 1996?
Non usare password brevi. Le password casuali di alta qualità e lunghe sono ancora al sicuro.
Per una rapida stima, questi link (purtroppo molto vecchi) hanno alcuni numeri:
link < br> link
Aggiornamento : grazie a RhodiumToad dal canale #postgresql su irc.freenode.net per chiarire che md5 non è ancora rotto per l'hashing della password, buone password lunghe salveranno il giorno.