Hi Walter,

On Sunday, 21 January 2024 04:23:34 GMT Walter Dnes wrote:
> On Thu, Jan 18, 2024 at 06:42:48PM +0000, Michael wrote
> 
> > openssl s_client -connect smtp.ebox.ca\:587 -starttls smtp -showcerts
> 
> openssl s_client -connect smtp.ebox.ca\:587 -starttls smtp -showcerts >
> x.txt
> 
>   For output to x.txt, see file x.txt in attachment logs.tgz
> 
>   Output to the terminal (stderr ???) is...
> ========================================================================
> depth=2 C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", CN =
> Go Daddy Root Certificate Authority - G2 verify return:1
> depth=1 C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU =
> http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate
> Authority - G2 verify return:1
> depth=0 CN = *.ebox.ca
> verify return:1
> 40F73DC2087F0000:error:0A00014D:SSL routines:tls_process_key_exchange:legacy
> sigalg disallowed or
> unsupported:../openssl-3.0.12/ssl/statem/statem_clnt.c:2254:
> ========================================================================
> 
>   That last line about "legacy sigalg disallowed or unsupported:" looks
> rather ominous.

I think you have found the cause of the problem.  The signature algorithm SHA1 
has been deprecated[1], because SHA1 has known weaknesses to some collision 
and pre-image attacks.  Theoretically some evil actor could concoct a rogue 
certificate which will produce the same SHA1 digest as the Root CA your smtp 
server is using.  Practically, this is of little concern for a Root CA, IF 
your OS trusts directly the Root CA certificate by having it stored in /etc/
ssl/certs/, or in your user's local store for mutt trusted certificates.  Both 
openssl and gnutls report a successful verification of the certificate chain. 


> > or with gnutls-cli:
> > 
> > gnutls-cli --starttls-proto smtp smtp.ebox.ca -p 587
> > 
> > then try to negotiate a connection:
> > 
> > ehlo there
> > ...
> > Ctrl+D
> > 
> > Gnutls should run starttls and when you enter "Ctrl+D" it will print out
> > what
>   See file y.txt in logs.tgz

Same warning shown in y.txt:

"... RSA key 2048 bits, signed using RSA-SHA1 (broken!)"


>   My fibre upgrade is delayed, so I'm testing an unneceassary handoff to
> port 587 on cable when an "insecure" handoff to port 25 will do.

Sending user authentication credentials in the clear is not advisable for the 
security conscious.


> I just
> asked the ISP's direct support to confirm that I'm using the correct
> credentials.  And one last try at "mutt -d 4".  Here's a snippet...
> 
> ========================================================================
> [2024-01-20 23:08:56] mwoh: buf[Subject: Test message 1] is short enough
> [2024-01-20 23:08:56] Looking up smtp.ebox.ca...
> [2024-01-20 23:08:56] Connecting to smtp.ebox.ca...
> [2024-01-20 23:08:56] Connected to smtp.ebox.ca:587 on fd=4
> [2024-01-20 23:08:56] 4< 220 smtp.ebox.ca ESMTP Postfix (Debian/GNU)
> [2024-01-20 23:08:56] 4> EHLO waltdnes.org
> [2024-01-20 23:08:56] 4< 250-smtp.ebox.ca
> [2024-01-20 23:08:56] 4< 250-PIPELINING
> [2024-01-20 23:08:56] 4< 250-SIZE 20000000
> [2024-01-20 23:08:56] 4< 250-VRFY
> [2024-01-20 23:08:56] 4< 250-ETRN
> [2024-01-20 23:08:56] 4< 250-STARTTLS
> [2024-01-20 23:08:56] 4< 250-ENHANCEDSTATUSCODES
> [2024-01-20 23:08:56] 4< 250-8BITMIME
> [2024-01-20 23:08:56] 4< 250 DSN
> [2024-01-20 23:08:56] 4> STARTTLS
> [2024-01-20 23:08:56] 4< 220 2.0.0 Ready to start TLS
> [2024-01-20 23:08:56] gnutls_handshake: A packet with illegal or unsupported
> version was received. [2024-01-20 23:08:58] Could not negotiate TLS
> connection
> ========================================================================
> 
> "illegal or unsupported version" ominous again.

TLS 1.0 was deprecated in 2021 and there have been up to date Root 
certificates issued by this CA using SHA256[2].  Perhaps the server sysadmins 
have not yet updated their smtp server's Root CA?

Anyway, to take you forward you can:

1. Keyword the latest gnutls package in case the gnutls verification criteria 
have been loosened.

2. Copy the Root CA into the users ~/ and point muttrc to it:

set certificate_file = "~/.mutt/certificates"

3. If everything else fails, having verified yourself the server's Root CA and 
child certificates are all legit you can set:

unset ssl_verify_host

Obviously this would not be satisfactory from a security perspective.

[1] https://datatracker.ietf.org/doc/html/rfc8996
[2] https://certs.godaddy.com/repository

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to