On 09/12/2021 17:24, Peter Eisentraut wrote:
On 07.12.21 19:49, Jacob Champion wrote:
= Implicit TLS =
Reactions to implicit TLS were mixed, from "we should not do this" to
"it might be nice to have the option, from a technical standpoint".
Both a separate-port model and a shared-port model were tentatively
proposed. The general consensus seems to be that the StartTLS-style
flow is currently sufficient from a security standpoint.

I didn't see any responses that were outright in favor, so I think my
remaining question is: are there any committers who think a prototype
would be worth the time for a motivated implementer?

I'm quite interested in this.  My next question would be how complicated
it would be.  Is it just a small block of code that peaks at a few bytes
and decides it's a TLS handshake?  Or would it require a major
restructuring of all the TLS support code?  Possibly something in the
middle.

ProcessStartupPacket() currently reads the first 4 bytes coming from the client to decide what kind of a connection it is, and I believe a TLS ClientHello message always begins with the same sequence of bytes, so it would be easy to check for.

You could use recv(.., MSG_PEEK | MSG_WAITALL) flags to leave the bytes in the OS buffer. Not sure how portable that is, though. Alternatively, you could stash them e.g. in a global variable and modify secure_raw_read() to return those bytes first.

Overall, doesn't seem very hard to me.

- Heikki


Reply via email to