Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-06-01 Thread Andreas Metzler via Exim-users
On 2021-06-01 Marcin Gryszkalis via Exim-users  wrote:
[...]
> so I checked what is the difference between these two boxes - and finally
> found it - problematic exim uses EC certificate, while mail.fuze.pl uses (as
> you could see) RSA. The change was caused by
> switch of defaults in deydrated Let's Encrypt client:
[...]

Just for the archives: I had the same problem with GnuTLS built exim
where it shows up as 
2021-02-20 12:13:53 TLS error on connection from [...]
(gnutls_handshake): No supported cipher suites have been found.
in the log. I am now running exim dual-stacked, with both RSA and
secp384r1 certificates.

cu Andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Marcin Gryszkalis via Exim-users

On 31.05.2021 23:29, Viktor Dukhovni via Exim-users wrote:

I see, the version of OpenSSL may be relevant here.

Is the server in question "mail.fuze.pl"?  On port 25 for that server I


This is not the server but It uses the same configuration and same 
FreeBSD/openssl version - but as I tested it with s_client it didn't fail!


openssl s_client -connect mail.fuze.pl:465 -tls1_2 -curves P-256

Server Temp Key: ECDH, P-256, 256 bits
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384

so I checked what is the difference between these two boxes - and 
finally found it - problematic exim uses EC certificate, while 
mail.fuze.pl uses (as you could see) RSA. The change was caused by

switch of defaults in deydrated Let's Encrypt client:

https://github.com/dehydrated-io/dehydrated/commit/174616becd96c202e3ff6dc0f28b3b435644f623

The EC cert is secp384r1 / P-384 so forcing P-256 only causes the alert.
In fact, testing with s_client and  -curves P-256:P-384 is successful.

Server Temp Key: ECDH, P-256, 256 bits
New, TLSv1/SSLv3, Cipher is ECDHE-ECDSA-AES256-GCM-SHA384
Server public key is 384 bit

So I think I'll switch back to RSA for few more years ;)

thank you all for helping to debug this stuff, best regards
--
Marcin Gryszkalis, PGP 0xA5DBEEC7 http://fork.pl/gpg.txt

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Viktor Dukhovni via Exim-users
On Mon, May 31, 2021 at 11:19:23PM +0200, Marcin Gryszkalis via Exim-users 
wrote:

> On 31.05.2021 22:59, Viktor Dukhovni via Exim-users wrote:
> >> I checked on exim built on FreeBSD 12 (with openssl 1.1) and it works fine 
> >> - but fails on other installation with openssl 1.0.
> > 
> > So what version of FreeBSD and OpenSSL are on the system with the
> > reported issue?  Support for negotiated ECDHE groups has evolved in
> > OpenSSL over time.  With older OpenSSL releases unless group selection
> > is explicitly set to "auto", the server picks some single default group,
> > which may not match this particular client's choice.
> 
> Sorry, I forgot to mention this.
> 
> This is OpenSSL 1.0.2u (base version for FreeBSD 11.4).

I see, the version of OpenSSL may be relevant here.

Is the server in question "mail.fuze.pl"?  On port 25 for that server I
see:

No client certificate CA names sent
Peer signing digest: SHA512
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3757 bytes and written 475 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol  : TLSv1.2
Cipher: ECDHE-RSA-AES256-GCM-SHA384
Session-ID: ...
Session-ID-ctx:
Master-Key: ...
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1622494851
Timeout   : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no

Which does show working support for ECDHE with P-256.  I'd also humbly
suggest not bothering with 4096 bit RSA certs, they're rather pointless.
The major CAs are all using 2048 bit RSA.  RSA 4096 is just bloat.

> I could switch to 1.1.1k from ports but that would require rebuilding 
> exim and the rest.
> I also could switch to libressl or even GnuTLS...

I would not recommend either of those two, but OpenSSL 1.1.1 would be a
much better choice, 1.0.2 has been EOL for quite some time.

-- 
Viktor.

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Marcin Gryszkalis via Exim-users

On 31.05.2021 22:59, Viktor Dukhovni via Exim-users wrote:

I checked on exim built on FreeBSD 12 (with openssl 1.1) and it works fine - 
but fails on other installation with openssl 1.0.


So what version of FreeBSD and OpenSSL are on the system with the
reported issue?  Support for negotiated ECDHE groups has evolved in
OpenSSL over time.  With older OpenSSL releases unless group selection
is explicitly set to "auto", the server picks some single default group,
which may not match this particular client's choice.


Sorry, I forgot to mention this.

This is OpenSSL 1.0.2u (base version for FreeBSD 11.4).

I could switch to 1.1.1k from ports but that would require rebuilding 
exim and the rest.

I also could switch to libressl or even GnuTLS...

best regards
--
Marcin Gryszkalis, PGP 0xA5DBEEC7 http://fork.pl/gpg.txt

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Viktor Dukhovni via Exim-users
On Mon, May 31, 2021 at 11:08:22PM +0300, Evgeniy Berdnikov via Exim-users 
wrote:

> > SSL-Session:
> > Protocol  : TLSv1.2
> > Cipher: ECDHE-ECDSA-AES256-GCM-SHA384
> > Session-ID: ...
> > Session-ID-ctx:
> > Master-Key: ...
> > Key-Arg   : None
> > PSK identity: None
> > PSK identity hint: None
> > SRP username: None
> > Start Time: 1622470949
> > Timeout   : 7200 (sec)
> > Verify return code: 0 (ok)
> > 
> > 
> > But - I tried to specify the curve and it failed
> > 
> > openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher
> > ECDHE-ECDSA-AES256-GCM-SHA384 -curves prime256v1

This cipher requires the server to have an ECDSA certificate,
you've probably only configured an RSA certificate.  The
support SHA384 ciphers in OpenSSL 1.1.1 are:

$ OpenSSL_1_1_1/bin/openssl ciphers -s -tls1_2 -v ALL+SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256)  
Mac=SHA384
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-CAMELLIA256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA 
Enc=Camellia(256) Mac=SHA384
ECDHE-RSA-CAMELLIA256-SHA384 TLSv1.2 Kx=ECDH Au=RSA  Enc=Camellia(256) 
Mac=SHA384

>  It looks like recent libssl considers ECDHE-ECDSA-AES256-GCM-SHA384
>  as TLSv1.3-only cipher. And post-handshake message mentions it
>  in some other manner:

That's not the case.

-- 
Viktor.

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Viktor Dukhovni via Exim-users
On Mon, May 31, 2021 at 04:42:55PM +0200, Marcin Gryszkalis via Exim-users 
wrote:

> openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher 
> ECDHE-ECDSA-AES256-GCM-SHA384

> But - I tried to specify the curve and it failed
> 
> openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher 
> ECDHE-ECDSA-AES256-GCM-SHA384 -curves prime256v1
> 
> CONNECTED(0004)
> 34380884168:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake 
> failure:/usr/src/crypto/openssl/ssl/s3_pkt.c:1498:SSL alert number 40
> 34380884168:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake 
> failure:/usr/src/crypto/openssl/ssl/s3_pkt.c:659:
> 
> prime256v1 = secp256r1
> 
> I checked on exim built on FreeBSD 12 (with openssl 1.1) and it works fine - 
> but fails on other installation with openssl 1.0.

So what version of FreeBSD and OpenSSL are on the system with the
reported issue?  Support for negotiated ECDHE groups has evolved in
OpenSSL over time.  With older OpenSSL releases unless group selection
is explicitly set to "auto", the server picks some single default group,
which may not match this particular client's choice.

-- 
Viktor.

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Evgeniy Berdnikov via Exim-users
On Mon, May 31, 2021 at 04:42:55PM +0200, Marcin Gryszkalis via Exim-users 
wrote:
> openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher
> ECDHE-ECDSA-AES256-GCM-SHA384
> 
> SSL-Session:
> Protocol  : TLSv1.2
> Cipher: ECDHE-ECDSA-AES256-GCM-SHA384
> Session-ID: ...
> Session-ID-ctx:
> Master-Key: ...
> Key-Arg   : None
> PSK identity: None
> PSK identity hint: None
> SRP username: None
> Start Time: 1622470949
> Timeout   : 7200 (sec)
> Verify return code: 0 (ok)
> 
> 
> But - I tried to specify the curve and it failed
> 
> openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher
> ECDHE-ECDSA-AES256-GCM-SHA384 -curves prime256v1

 My quick experiments on openssl/libssl 1.1.1k
 with s_server <--> s_client show that combination
 "s_client ... -tls1_2 -cipher ECDHE-ECDSA-AES256-GCM-SHA384"
 always leads to such SSL alert number 40, even if server is running
 with "-cipher ALL".

 Running "s_server ... -tls1_2" leads to similar result.

 It looks like recent libssl considers ECDHE-ECDSA-AES256-GCM-SHA384
 as TLSv1.3-only cipher. And post-handshake message mentions it
 in some other manner:

SSL-Session:
Protocol  : TLSv1.3
Cipher: TLS_AES_256_GCM_SHA384
Session-ID: ...
Session-ID-ctx: 
Resumption PSK: ...
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)

 It seems this behaviour reflects some unstable internals of libssl
 and has no relation to Exim.
-- 
 Eugene Berdnikov

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Jeremy Harris via Exim-users

On 31/05/2021 13:27, Viktor Dukhovni via Exim-users wrote:

40884 SSL_accept: error in error
40884 SSL_accept: error in error


I haven't seen that one much.  Perhaps an issue in the Exim OpenSSL glue
code.


Best guess is that is from an info callback into Exim from OpenSSL
( registered via SSL_CTX_set_info_callback() ), with a "where"
of SSL_CB_EXIT and that second "error" string helpfully provided
by SSL_state_string_long().
--
Cheers,
  Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Jeremy Harris via Exim-users

On 31/05/2021 12:44, Marcin Gryszkalis via Exim-users wrote:

extended_master_secret is not supported by exim


Exim supports it if the OpenSSL version (both compile-time
and run-time) supports it.
--
Cheers,
  Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Marcin Gryszkalis via Exim-users

On 31.05.2021 14:42, Cyborg via Exim-users wrote:

The client did not offer a cipher you have allowed.


But it's not true (see details in my reponse to Viktor's mail).


You can do various tests to find out with openssl's s_client:


with s_client I always succeed - eg. when I use first cipher from Client 
Hello


openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher 
ECDHE-ECDSA-AES256-GCM-SHA384


SSL-Session:
Protocol  : TLSv1.2
Cipher: ECDHE-ECDSA-AES256-GCM-SHA384
Session-ID: ...
Session-ID-ctx:
Master-Key: ...
Key-Arg   : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1622470949
Timeout   : 7200 (sec)
Verify return code: 0 (ok)


But - I tried to specify the curve and it failed

openssl s_client -connect 127.0.0.1:465 -tls1_2 -cipher 
ECDHE-ECDSA-AES256-GCM-SHA384 -curves prime256v1


CONNECTED(0004)
34380884168:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert 
handshake failure:/usr/src/crypto/openssl/ssl/s3_pkt.c:1498:SSL alert 
number 40
34380884168:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake 
failure:/usr/src/crypto/openssl/ssl/s3_pkt.c:659:


prime256v1 = secp256r1

I checked on exim built on FreeBSD 12 (with openssl 1.1) and it works 
fine - but fails on other installation with openssl 1.0.


It's a bit strange as exim advertises this curve when connecting as smtp 
client - and list_curves also lists is:


openssl ecparam -list_curves | grep 256v1
  prime256v1: X9.62/SECG curve over a 256 bit prime field


--
Marcin Gryszkalis, PGP 0xA5DBEEC7 http://fork.pl/gpg.txt

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Marcin Gryszkalis via Exim-users

On 31.05.2021 14:27, Viktor Dukhovni via Exim-users wrote:

On Mon, May 31, 2021 at 01:44:39PM +0200, Marcin Gryszkalis via Exim-users 
wrote:

exim's cipher list is wide
ALL:!EXPORT:!DES:!RC2:!RC4:!MD5:!PSK:!aNULL:!eNULL:!EXP:!SRP:!DSS:!DHE:!3DES


What is the reason for disabling DHE ciphers?


So there's no need to remember to prepare proper dh params, not 
important anyway I guess.



This cipher list looks rather kludgey.  Try "DEFAULT".


This problem applies to one server only, any other can connect without 
problems. I left TLS1.0 and 1.1 because they are still used. Here are 
the stats from exim log:


   2 TLS1.2:AES128-GCM-SHA256:128
   3 TLS1.2:AES256-SHA:256
  12 TLS1.2:AES256-GCM-SHA384:256
  15 TLS1.1:ECDHE-ECDSA-AES256-SHA:256
  18 TLS1.2:ECDHE-RSA-AES256-SHA:256
  43 TLS1.1:ECDHE-RSA-AES256-SHA:256
  54 TLS1.2:ECDHE-ECDSA-AES256-SHA384:256
 149 TLS1:AES256-SHA:256
 156 TLS1.2:DHE-RSA-AES256-GCM-SHA384:256
 307 TLS1:DHE-RSA-AES256-SHA:256
 313 TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128
 384 TLS1:ECDHE-ECDSA-AES256-SHA:256
 672 TLS1.2:ECDHE-ECDSA-AES128-GCM-SHA256:128
1214 TLS1:ECDHE-RSA-AES256-SHA:256
1467 TLS1.2:ECDHE-RSA-AES256-SHA384:256
3192 TLS1.2:ECDHE-ECDSA-AES256-GCM-SHA384:256
15980 TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256

As you can see this list have common part with the list from Client 
Hello, eg. first one -  TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) 
is on the list ( 672 TLS1.2:ECDHE-ECDSA-AES128-GCM-SHA256:128 )


The curve proposed by client (secp256r1) is also supported.


40884 openssl option, adding to 03104000: 0200 (no_sslv3 +no_sslv2 
+cipher_server_preference)
40884 openssl option, adding to 03104000: 0100 (no_sslv2 
+cipher_server_preference)
40884 openssl option, adding to 03104000: 0040 
(cipher_server_preference)
40884 setting SSL CTX options: 0x3504000
40884 Diffie-Hellman initialized from default with 2048-bit prime
40884 ECDH OpenSSL 1.0.2+ temp key parameter settings: autoselection
40884 tls_certificate file '/letsencrypt/certs/mail.domain.com/fullchain.pem'
40884 tls_privatekey file  '/letsencrypt/certs/mail.domain.com/privkey.pem'
40884 Initialized TLS
40884 required ciphers: 
ALL:!EXPORT:!DES:!RC2:!RC4:!MD5:!PSK:!aNULL:!eNULL:!EXP:!SRP:!DSS:!DHE:!3DES
40884 host in tls_verify_hosts? no (option unset)
40884 host in tls_try_verify_hosts? no (end of list)
40884 SMTP>> 220 TLS go ahead
40884 Calling SSL_accept
40884 SSL_accept: before/accept initialization
40884 SSL3 alert write:fatal:handshake failure


That rather looks like your own server is initiating the handshake
failure.  It is writing the alert, not reading a remote alert.


I think it says that exim returned handshake error (it did).


40884 SSL_accept: error in error
40884 SSL_accept: error in error

I haven't seen that one much.  Perhaps an issue in the Exim OpenSSL glue
code.


could be


The server does not believe it has any shared ciphers available.  You
should also check the system-wide "openssl.cnf" file for any vendor
configured protocol or cipher restrictions.


it's default FreeBSD's openssl.cnf without any modifications


wireshark dump from client hello

This does not look like the entire client hello message.


I did some cleaning, here is missing prefix:
Transport Layer Security
TLSv1.2 Record Layer: Handshake Protocol: Client Hello
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 120
Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 116
Version: TLS 1.2 (0x0303)
Random: 60b49...
GMT Unix Time: May 31, 2021 10:07:16.0 CEST
Random Bytes: f233...
Session ID Length: 0


  Cipher Suites Length: 24
  Cipher Suites (12 suites)
  Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
  Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
  Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
  Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
  Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
  Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
  Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
  Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)
  Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)
  Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
  Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
  Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
  Compression Methods Length: 1
  Compression Methods (1 method)
  Compression Method: null (0)
  Extensions Length: 51
  Extension: supported_groups (len=4)
  Type: supported_groups 

Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Viktor Dukhovni via Exim-users
On Mon, May 31, 2021 at 01:44:39PM +0200, Marcin Gryszkalis via Exim-users 
wrote:

> exim's cipher list is wide 
> ALL:!EXPORT:!DES:!RC2:!RC4:!MD5:!PSK:!aNULL:!eNULL:!EXP:!SRP:!DSS:!DHE:!3DES

What is the reason for disabling DHE ciphers?  And though in modern
OpenSSL releases there are no longer any "LOW" ciphers, for some reason
you've left those potentially enabled, while making extra sure to delete
the export ones twice.  The "PSK" and "SRP" ciphers are harmless, since
they're off by default anyway, without appropriate configuration.

This cipher list looks rather kludgey.  Try "DEFAULT".

> 40884 openssl option, adding to 03104000: 0200 (no_sslv3 +no_sslv2 
> +cipher_server_preference)
> 40884 openssl option, adding to 03104000: 0100 (no_sslv2 
> +cipher_server_preference)
> 40884 openssl option, adding to 03104000: 0040 
> (cipher_server_preference)
> 40884 setting SSL CTX options: 0x3504000
> 40884 Diffie-Hellman initialized from default with 2048-bit prime
> 40884 ECDH OpenSSL 1.0.2+ temp key parameter settings: autoselection
> 40884 tls_certificate file '/letsencrypt/certs/mail.domain.com/fullchain.pem'
> 40884 tls_privatekey file  '/letsencrypt/certs/mail.domain.com/privkey.pem'
> 40884 Initialized TLS
> 40884 required ciphers: 
> ALL:!EXPORT:!DES:!RC2:!RC4:!MD5:!PSK:!aNULL:!eNULL:!EXP:!SRP:!DSS:!DHE:!3DES
> 40884 host in tls_verify_hosts? no (option unset)
> 40884 host in tls_try_verify_hosts? no (end of list)
> 40884 SMTP>> 220 TLS go ahead
> 40884 Calling SSL_accept
> 40884 SSL_accept: before/accept initialization
> 40884 SSL3 alert write:fatal:handshake failure

That rather looks like your own server is initiating the handshake
failure.  It is writing the alert, not reading a remote alert.

> 40884 SSL_accept: error in error
> 40884 SSL_accept: error in error

I haven't seen that one much.  Perhaps an issue in the Exim OpenSSL glue
code.

> 40884 TLS error '(SSL_accept): error:1408A0C1:SSL 
> routines:ssl3_get_client_hello:no shared cipher'
> 
> 40884 LOG: MAIN
> 40884   TLS error on connection from mail.externaldomain.com [1.2.3.4] 
> I=[192.168.1.3]:25 (SSL_accept): error:1408A0C1:SSL 
> routines:ssl3_get_client_hello:no shared cipher
> 40884 TLS failed to start

The server does not believe it has any shared ciphers available.  You
should also check the system-wide "openssl.cnf" file for any vendor
configured protocol or cipher restrictions.

> 
> wireshark dump from client hello

This does not look like the entire client hello message.

> 
>  Cipher Suites Length: 24
>  Cipher Suites (12 suites)
>  Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 
> (0xc02b)
>  Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
>  Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 
> (0xc023)
>  Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
>  Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
>  Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
>  Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
>  Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)
>  Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)
>  Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
>  Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
>  Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
>  Compression Methods Length: 1
>  Compression Methods (1 method)
>  Compression Method: null (0)
>  Extensions Length: 51
>  Extension: supported_groups (len=4)
>  Type: supported_groups (10)
>  Length: 4
>  Supported Groups List Length: 2
>  Supported Groups (1 group)
>  Supported Group: secp256r1 (0x0017)
>  Extension: ec_point_formats (len=2)
>  Type: ec_point_formats (11)
>  Length: 2
>  EC point formats Length: 1
>  Elliptic curves point formats (1)
>  EC point format: uncompressed (0)
>  Extension: signature_algorithms (len=20)
>  Type: signature_algorithms (13)
>  Length: 20
>  Signature Hash Algorithms Length: 18
>  Signature Hash Algorithms (9 algorithms)
>  Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
>  Signature Hash Algorithm Hash: SHA256 (4)
>  Signature Hash Algorithm Signature: RSA (1)
>  Signature Algorithm: rsa_pkcs1_sha384 (0x0501)
>  Signature Hash Algorithm Hash: SHA384 (5)
>  Signature Hash Algorithm Signature: RSA (1)
>  Signature Algorithm: rsa_pkcs1_sha1 

Re: [exim] TLS error no shared cipher with SSL_accept: error in error

2021-05-31 Thread Cyborg via Exim-users

Am 31.05.21 um 13:44 schrieb Marcin Gryszkalis via Exim-users:

Hi, I have problem with one server connecting to my exim.
Just after Client Hello server sends "Handshake Failure" and closes 
connection.


exim's cipher list is wide 
ALL:!EXPORT:!DES:!RC2:!RC4:!MD5:!PSK:!aNULL:!eNULL:!EXP:!SRP:!DSS:!DHE:!3DES
and contains ciphers that are mentioned by client, the same for 
curves, signatures etc. The only difference is extended_master_secret 
is not supported by exim but I guess it should be ignored.




The client did not offer a cipher you have allowed.

You can do various tests to find out with openssl's s_client:

Firts find out, what you would offer with openssl:

$ openssl ciphers

now you can compare it with the list the client send or you do it the 
hard way and test it manually:


Examples:

$ openssl s_client --connect c1:25 -starttls smtp -ssl3
CONNECTED(0003)
140007688099648:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert 
handshake failure:ssl/record/rec_layer_s3.c:1543:SSL alert number 40


2021-05-31 14:32:15 TLS error on connection from (mail.example.com) 
[XXX] (SSL_accept (SSLv3)): error:14209102:SSL 
routines:tls_early_post_process_client_hello:unsupported protocol



$ openssl s_client --connect c1:25 -starttls smtp -tls1 -cipher 
RSA-PSK-AES128-CBC-SHA  ( this one would work with tls1_3+ only )

CONNECTED(0003)
140164130756416:error:141A90B5:SSL routines:ssl_cipher_list_to_bytes:no 
ciphers available:ssl/statem/statem_clnt.c:3801:No ciphers enabled for 
max supported SSL/TLS version


2021-05-31 14:34:42 TLS error on connection from (mail.example.com) 
[XXX] (SSL_accept): error:140940F4:SSL 
routines:ssl3_read_bytes:unexpected message


TLS 1.3:

$ openssl s_client --connect c1:25 -starttls smtp -tls1_3 -cipher 
RSA-PSK-AES128-CBC-SHA


best regards,
Marius

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/