On Sat, Mar 22, 2025 at 08:56:39PM -0500, Bob Lindner wrote:

> Thank you, Viktor.  I do think this is possibly a networking issue, as
> things work well until Client Hello, where everything just stops.  tcpdump
> below.

Retransmission with no ACKs is indicative of a firewall issue more than
an application-level barrier, which would typically not prevent TCP
ACKs.  Speculatively, your TLS Client Hello is a bit large at 517 bytes,
but when I tried with a much larger Hello (post-quantum hybrid +
separate X25519 keyshares), the handshake went through fine, but perhaps
this is an anycast IP and you're hitting a problem node...

You might however decode the content of your client hello and see
whether it could be slimmed down a bit, perhaps make sure to use TLS 1.2
for these domains, since that's all they support.  While the successful
TLS 1.3 PQ Client Hellow was in excess of 1500 bytes:

    $ posttls-finger -c -Lssl-debug,summary,ssl-handshake-packet-dump 
"[144.160.235.144]"
    posttls-finger: SSL_connect:before SSL initialization
    posttls-finger: write to 5593153BC8A0 [5593153C4100] (1554 bytes => 1554 
(0x612))
    posttls-finger: SSL_connect:SSLv3/TLS write client hello
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (53 bytes => 53 
(0x35))
    posttls-finger: SSL_connect:SSLv3/TLS write client hello
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (3419 bytes => 3419 
(0xD5B))
    posttls-finger: SSL_connect:SSLv3/TLS read server hello
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (1039 bytes => 1039 
(0x40F))
    posttls-finger: SSL_connect:SSLv3/TLS read server certificate
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (242 bytes => 242 
(0xF2))
    posttls-finger: SSL_connect:SSLv3/TLS read server key exchange
    posttls-finger: SSL_connect:SSLv3/TLS read server certificate request
    posttls-finger: SSL_connect:SSLv3/TLS read server done
    posttls-finger: SSL_connect:SSLv3/TLS write client certificate
    posttls-finger: SSL_connect:SSLv3/TLS write client key exchange
    posttls-finger: SSL_connect:SSLv3/TLS write change cipher spec
    posttls-finger: write to 5593153BC8A0 [5593153C4100] (330 bytes => 330 
(0x14A))
    posttls-finger: SSL_connect:SSLv3/TLS write finished
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (170 bytes => 170 
(0xAA))
    posttls-finger: SSL_connect:SSLv3/TLS write finished
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (1 bytes => 1 (0x1))
    posttls-finger: SSL_connect:SSLv3/TLS read server session ticket
    posttls-finger: read from 5593153BC8A0 [5593153CD203] (5 bytes => 5 (0x5))
    posttls-finger: read from 5593153BC8A0 [5593153CD208] (40 bytes => 40 
(0x28))
    posttls-finger: SSL_connect:SSLv3/TLS read change cipher spec
    posttls-finger: SSL_connect:SSLv3/TLS read finished
    posttls-finger: Untrusted TLS connection established to 
144.160.235.144[144.160.235.144]:25: TLSv1.2 with cipher 
DHE-RSA-AES256-GCM-SHA384 (256/256 bits)

when I explicitly choose TLS 1.2, the TLS Client Hello size is a much
more modest 235 bytes (5 record layer):

    $ posttls-finger -p TLSv1.2 -c 
-Lssl-debug,summary,ssl-handshake-packet-dump "[144.160.235.144]"
    posttls-finger: SSL_connect:before SSL initialization
    posttls-finger: write to 560493462CC0 [56049346A520] (235 bytes => 235 
(0xEB))
    posttls-finger: SSL_connect:SSLv3/TLS write client hello
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (53 bytes => 53 
(0x35))
    posttls-finger: SSL_connect:SSLv3/TLS write client hello
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (4334 bytes => 4033 
(0xFC1))
    posttls-finger: 0fc0 1d                                               .
    posttls-finger: read from 560493462CC0 [560493471589] (301 bytes => 301 
(0x12D))
    posttls-finger: SSL_connect:SSLv3/TLS read server hello
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (1039 bytes => 1039 
(0x40F))
    posttls-finger: SSL_connect:SSLv3/TLS read server certificate
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (242 bytes => 242 
(0xF2))
    posttls-finger: 00ef - <SPACES/NULLS>
    posttls-finger: SSL_connect:SSLv3/TLS read server key exchange
    posttls-finger: SSL_connect:SSLv3/TLS read server certificate request
    posttls-finger: SSL_connect:SSLv3/TLS read server done
    posttls-finger: SSL_connect:SSLv3/TLS write client certificate
    posttls-finger: SSL_connect:SSLv3/TLS write client key exchange
    posttls-finger: SSL_connect:SSLv3/TLS write change cipher spec
    posttls-finger: write to 560493462CC0 [56049346A520] (330 bytes => 330 
(0x14A))
    posttls-finger: SSL_connect:SSLv3/TLS write finished
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (170 bytes => 170 
(0xAA))
    posttls-finger: SSL_connect:SSLv3/TLS write finished
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (1 bytes => 1 (0x1))
    posttls-finger: SSL_connect:SSLv3/TLS read server session ticket
    posttls-finger: read from 560493462CC0 [5604934705C3] (5 bytes => 5 (0x5))
    posttls-finger: read from 560493462CC0 [5604934705C8] (40 bytes => 40 
(0x28))
    posttls-finger: SSL_connect:SSLv3/TLS read change cipher spec
    posttls-finger: SSL_connect:SSLv3/TLS read finished
    posttls-finger: Untrusted TLS connection established to 
144.160.235.144[144.160.235.144]:25: TLSv1.2 with cipher 
DHE-RSA-AES256-GCM-SHA384 (256/256 bits)

    [ tshark(1) decode of the above ]
    TLSv1 Record Layer: Handshake Protocol: Client Hello
        Content Type: Handshake (22)
        Version: TLS 1.0 (0x0301)
        Length: 230
        Handshake Protocol: Client Hello
            Handshake Type: Client Hello (1)
            Length: 226
            Version: TLS 1.2 (0x0303)
            Random: 
154a88a58f98c815e51b9c7512acd03d7b99bcc776569e9189e0a35f55759a23
                GMT Unix Time: Apr 27, 1981 17:56:21.000000000 AEST
                Random Bytes: 
8f98c815e51b9c7512acd03d7b99bcc776569e9189e0a35f55759a23
            Session ID Length: 0
            Cipher Suites Length: 106
            Cipher Suites (53 suites)
                ...
            Compression Methods Length: 1
            Compression Methods (1 method)
                Compression Method: null (0)
            Extensions Length: 79
            Extension: renegotiation_info (len=1)
                Type: renegotiation_info (65281)
                Length: 1
                Renegotiation Info extension
                    Renegotiation info extension length: 0
            Extension: ec_point_formats (len=4)
                Type: ec_point_formats (11)
                Length: 4
                EC point formats Length: 3
                Elliptic curves point formats (3)
                    EC point format: uncompressed (0)
                    EC point format: ansiX962_compressed_prime (1)
                    EC point format: ansiX962_compressed_char2 (2)
            Extension: supported_groups (len=10)
                Type: supported_groups (10)
                Length: 10
                Supported Groups List Length: 8
                Supported Groups (4 groups)
                    Supported Group: x25519 (0x001d)
                    Supported Group: secp256r1 (0x0017)
                    Supported Group: x448 (0x001e)
                    Supported Group: secp384r1 (0x0018)
            Extension: session_ticket (len=0)
                Type: session_ticket (35)
                Length: 0
                Session Ticket: <MISSING>
            Extension: encrypt_then_mac (len=0)
                Type: encrypt_then_mac (22)
                Length: 0
            Extension: extended_master_secret (len=0)
                Type: extended_master_secret (23)
                Length: 0
            Extension: signature_algorithms (len=36)
                Type: signature_algorithms (13)
                Length: 36
                Signature Hash Algorithms Length: 34
                Signature Hash Algorithms (17 algorithms)
                    ...

-- 
    Viktor.
_______________________________________________
mailop mailing list
mailop@mailop.org
https://list.mailop.org/listinfo/mailop

Reply via email to