Re: BUG #16079: Question Regarding the BUG #16064

Stephen Frost <[email protected]>
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <[email protected]>
Greetings,

* Thomas Munro ([email protected]) wrote:
> On Tue, Oct 29, 2019 at 4:48 AM Stephen Frost <[email protected]> wrote:
> > Uh, the user's credentials certainly are sent to the PG server.
> 
> Perhaps we should log a warning when PostgreSQL has received a
> password over the network without SSL.  Perhaps we should log another
> warning when PostgreSQL has sent a password over the network without
> SSL.

I like the idea of having these warnings, I don't like the idea of
limiting it to when SSL is or isn't being used.

> > users password is: hello
> 
> The fact that you can steal the password from PostgreSQL's memory
> seems like a next level problem to me, but the fact that it's easy to
> configure PostgreSQL in a way that sends cleartext passwords over the
> network a couple of times seems to be a bigger problem to me.

Both are issues and clearly users are confused when they use an
enterprise authentication system (eg: Active Directory) and configure PG
to use it ("ldap") and expect us to do things intelligently like other
similar products do (SQL Server).

Is it our fault that they don't realize that they aren't configuring PG
properly in an AD environment when they use the LDAP auth method?  Maybe
not *technically*, but we sure don't make it very clear that the LDAP
auth method is *not* the same as what they get with something like a
SQL Server instance and that it's an poor way of doing authentication
when you're in an Active Directory environment.

> Here's a demonstration.  I run make -C src/test/ldap check, just to
> get a working slapd setup, and then I start it like so:
> 
> /usr/local/libexec/slapd -f slapd.conf -h ldap://localhost:8888
> 
> I put this into my pg_hba.conf:
> 
> host postgres test1 127.0.0.1/32 ldap
> ldapurl="ldap://localhost:8888/dc=example,dc=net?uid?sub"
> 
> I trace my postmaster + children with truss -p PID -s 1024 -f, and
> then I try to log in with psql -h localhost -p 8888 postgres test1,
> and give the password "foobar".  Here is my password, which travelled
> over the network in cleartext twice (into PostgreSQL, and then out to
> slapd):
> 
> 38412: accept(6,{ AF_INET 127.0.0.1:12891 },0x801d07118) = 9 (0x9)
> ...
> 38412: fork()                                    = 38459 (0x963b)
> ...
> 38459: recvfrom(9,"p\0\0\0\vfoobar\0",8192,0,NULL,0x0) = 12 (0xc)
> ...
> 38459: connect(4,{ AF_INET 127.0.0.1:8888 },16)  = 0 (0x0)
> 38459: write(4,"0-\^B\^A\^A`(\^B\^A\^C\^D\^[uid=test1,dc=example,dc=net\M^@\^Ffoobar",47)
> = 47 (0x2f)

Yes, this is indeed also terrible, heh.

Thanks,

Stephen
signature.asc (application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCgAGBQJd5r5UAAoJEO1sijiDR2RVgYUP/i3Pnt5KIBufyxbI+aZ8jUuy
SVuZIZjcw2HCsz60p5rMyTceBso9BksClR7B5/2/N5qQ0uS4j3qjmhBUK2RMwL5c
isA4MAdpd1QV0Nukqhn92xNWLRuUQZLiF/WS6FjyqL56gKldj9ag0pmmJGv9rUWi
f/msu6m89EdhutpD7LLznO3mifgF2A7Coj0ZMn8b0UufASccovmls97o4Z+Cqg9m
Gal8KZVyjY9hs5RCISqCZmqkVyiEQCdzZE9089WT6Z7wK7xhKVKdXsddoq/tuA3T
NuldYLe+8SCW62KOrSds0oVDT3m8wF8rWG+WR+Ws0uXJTe/Oxj2kEaz7ZdeLKFsK
DaSXXBxm7cgC9yV4istk94uHl07JEsIXeN0X2vHAWHId6T0zdcTrkgKsqVAp8OhY
WQcj1lrhBqscr2xjpsl9ri2mmApL0n3JimYPn75N67rOao4eGcdXtMTEnCgZULo6
JBgZgm4RYgP66VXi+6EvESAPqAb2XS45l5BKSDk5yBuj9hbtTMsFBrqIytASk64r
fqOM493z7js0SbshfQuN8d9mCEYIKtpaxK7RfZ50u3NmU7OshTyQ6bagU8IdtMk1
ZEWFz/2nwGEYw0o/IUmC4lPtvEM7fBVtru9vd9mj5UkNsvyLXs7qXUl1glwVwfSs
pKdE5ui6jQxBU7iHS4w1
=xohU
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.