Re: Question sur la sécurité PostgreSQL 9.6

Michael Paquier <[email protected]> Tue, 12 Dec 2017 08:05:20 +0900
Newsgroups gmane.comp.db.postgresql.french
Message-ID <CAB7nPqSfeJvmWBfAM+vXwdPEBA-Q6xQAJXEdOAX4rLxiNae2Kw@mail.gmail.com>
2017-12-12 2:57 GMT+09:00 talk to ben <[email protected]>:
> J'ai trouvé cet article qui semble dire que sans ssl l'identification par
> md5 est vulnérable car le hash du md5 apparait sur le réseau et peut être
> utilisé pour s'authentifier:
>
> https://hashcat.net/forum/thread-4148.html
> https://www.postgresql.org/message-id/[email protected]

Ce problème s'appelle Pass the hash
(https://en.wikipedia.org/wiki/Pass_the_hash). Il est simple de
modifier un client libpq pour créer ce problème. Normalement un
individu n'a pas accès à aux MD5 de mots de passe, mais si un
attaquant a accès à des backups passés il peut facilement les
extraire. Donc vous feriez mieux d'encrypter la connection. SCRAM
résout aussi ces problèmes.

Pour répondre à la question posée ici, si "password" est utilisé dans
pg_hba.conf, oui le mot de passe est envoyé en clair. Si c'est "md5",
le serveur envoie d'abord 4 octets comme sel, que le client utilise
pour compiler md5(md5(password || username), salt), qui est ce que le
serveur utilise pour la comparaison de mot de passe. Un sel ayant
seulement 4 octets, et une compilation de MD5 étant très rapide, MD5
est sensible à ce qui s'appelle aux attaques par rejeu.
-- 
Michael