Postgres sicurezza della password

7

Quanto è sicura la password di un utente Postgres?

Quando viene creato un nuovo utente db, la password memorizzata è hash e salata?

    
posta LINUX G33NYUS 03.03.2017 - 21:06
fonte

2 risposte

5

Postgres usa MD5 come algoritmo con il nome utente come "salt".

L'uso di un sale previene normalmente il calcolo degli hash, ad esempio nelle tabelle arcobaleno. L'utilizzo del nome utente come sale copre solo parzialmente questo problema. È possibile precalibrare gli hash per nomi utente comuni, come "root" o "postgres".

Inoltre, MD5 è uno degli hash crittografici più veloci che ci siano. È possibile calcolare 10¹¹ hash MD5 al secondo . Ciò rende possibile rompere le password usando un attacco a forza bruta, cioè provando molte password. Le moderne funzioni di hashing della password sono progettate per essere lente, quindi un attacco di forza bruta richiede molto tempo.

Secondo me la tecnica di archiviazione della password di Postgres non è conforme ai moderni standard di sicurezza. Puoi mitigarlo utilizzando una password lunga e casuale e non riutilizzando la password da nessun'altra parte.

    
risposta data 03.03.2017 - 21:44
fonte
2

Pg memorizza le sue password in pg_authid

Password (possibly encrypted); null if none. If the password is encrypted, this column will begin with the string md5 followed by a 32-character hexadecimal MD5 hash. The MD5 hash will be of the user's password concatenated to their user name. For example, if user joe has password xyzzy, PostgreSQL will store the md5 hash of xyzzyjoe. A password that does not follow that format is assumed to be unencrypted.

Puoi vederli eseguendo

SELECT rolpassword
FROM pg_authid;

Nota, non tutti gli utenti autorizzano MD5. Puoi consentire agli utenti di eseguire l'autenticazione sulla maggior parte di qualsiasi utilizzando i moduli di autenticazione PG o un modulo PAM.

    
risposta data 03.03.2017 - 21:12
fonte

Leggi altre domande sui tag