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.

Reply via email to