On Sat, Oct 15, 2022 at 12:38:31PM -0400, Viktor Dukhovni wrote:
> > > Any chance you could provide (off-list if you prefer) a PCAP recording
> > > of a good and a problem TLS session?
> >
> > I'll send it off-list.
>
> Thanks. I hope that'll shed more light on what's going on.
The diff between the "good" and "bad" handshakes is below. The main
features when tickets are enabled are:
* A zero length server session id
* The server confirms ticket extension support
* The client just hangs up :-(
The most likely issue is a Windows regression with zero length session
ids. I don't think there's anything that can be done here, the client
indicates support for session tickets, and since OpenSSL is then going
to issue a ticket, it does not assign a session id even with the default
setting (which you probably did not change):
https://www.postfix.org/postconf.5.html#smtpd_tls_always_issue_session_ids
smtpd_tls_always_issue_session_ids = yes
Handshake diff:
@@ -108,14 +108,13 @@
Server:
Handshake Protocol: Server Hello
Handshake Type: Server Hello (2)
- Length: 85
+ Length: 57
Version: TLS 1.2 (0x0303)
Random: <...>
- Session ID Length: 32
- Session ID:
ce5485b1f15a265898a3e09db63d1e4e56b28bc5ac3cc2bccb0a5c7be4993cdc
+ Session ID Length: 0
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
Compression Method: null (0)
- Extensions Length: 13
+ Extensions Length: 17
Extension: renegotiation_info (len=1)
Type: renegotiation_info (65281)
Length: 1
@@ -129,7 +128,12 @@
EC point format: uncompressed (0)
EC point format: ansiX962_compressed_prime (1)
EC point format: ansiX962_compressed_char2 (2)
+ Extension: session_ticket (len=0)
+ Type: session_ticket (35)
+ Length: 0
+ Data (0 bytes)
Handshake Protocol: Certificate
Handshake Type: Certificate (11)
@@ -495,15 +499,5 @@
Length: 0
Client:
- Handshake Protocol: Client Key Exchange
- Handshake Type: Client Key Exchange (16)
- Length: 66
- EC Diffie-Hellman Client Params
- Pubkey Length: 65
- Pubkey: <...>
- Change Cipher Spec Message
- Handshake Protocol: Encrypted Handshake Message
-
- Server:
- Change Cipher Spec Message
- Handshake Protocol: Encrypted Handshake Message
+ Transmission Control Protocol, Src Port: 57257, Dst Port: 587, Seq:
202, Ack: 4636, Len: 0
+ Flags: 0x011 (FIN, ACK)
--
Viktor.