Re: Protocol problem with GSSAPI encryption?

From: Jakob Egger <jakob(at)eggerapps(dot)at>
To: Stephen Frost <sfrost(at)snowman(dot)net>
Cc: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Protocol problem with GSSAPI encryption?
Date: 2019-12-06 14:35:38
Message-ID: E1C8BAD2-F683-44ED-B9DF-5B1FC2409346@eggerapps.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


> On 4. Dec 2019, at 06:24, Stephen Frost <sfrost(at)snowman(dot)net> wrote:
>
> Greetings,
>
> * Andrew Gierth (andrew(at)tao11(dot)riddles(dot)org(dot)uk) wrote:
>>>>>>> "Peter" == Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> writes:
>>
>>>> It seems to me that this is a bug in ProcessStartupPacket, which
>>>> should accept both GSS or SSL negotiation requests on a connection
>>>> (in either order). Maybe secure_done should be two flags rather than
>>>> one?
>>
>> Peter> I have also seen reports of that. I think your analysis is
>> Peter> correct.
>>
>> I figure something along these lines for the fix. Anyone in a position
>> to test this?
>
> At least at first blush, I tend to agree with your analysis and patch.

I agree with the patch, but this also needs to be fixed on the client side.
Otherwise libpq won't be able to connect to older servers.

I'm attaching a proposed second patch to detect the error on the client side and reconnect to this message.

This patch was first submitted as a separate thread here:
https://www.postgresql.org/message-id/F27EEE9D-D04A-4B6B-B1F1-96EA4DD996D0@eggerapps.at

Jakob

Attachment Content-Type Size
0002-libpq-Retry-after-failed-ssl-gss-negotiation.patch application/octet-stream 5.6 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Julien Rouhaud 2019-12-06 14:50:58 Online checksums verification in the backend
Previous Message Jakob Egger 2019-12-06 14:27:33 Re: Frontend/Backend Protocol: SSL / GSS Protocol Negotiation Problem