<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi,</p>
<p>I can no longer connect to Dovecot (IMAP). The connection is
terminated by Dovecot after Client Helo. <br>
</p>
<p>My server: <br>
Dovecot 2.3.3<br>
Debian buster/sid<br>
Architecture: ppc</p>
<p>My problems started in late August after upgrading Dovecot.<br>
</p>
<p>SSL settings:<br>
ssl_dh = </etc/ssl/dh2048.pem<br>
ssl_min_protocol = TLSv1.2<br>
ssl_cipher_list =
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256<br>
ssl_prefer_server_ciphers = yes<br>
</p>
<p>Client:<br>
OS Android 6.0.1<br>
Aquamail</p>
<p>Log from Dovecot:</p>
<p>Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL:
where=0x10, ret=1: before SSL initialization<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL:
where=0x2001, ret=1: before SSL initialization<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL:
where=0x2002, ret=-1: before SSL initialization<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL:
where=0x2001, ret=1: before SSL initialization<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL alert:
where=0x4008, ret=598: fatal unknown<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL:
where=0x2002, ret=-1: error<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL error:
SSL_accept() failed: error:14209175:SSL
routines:tls_early_post_process_client_hello:inappropriate
fallback<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Debug: SSL error:
SSL_accept() syscall failed: Invalid argument<br>
Sep 15 23:19:02 debian2 dovecot: imap-login: Disconnected (no auth
attempts in 0 secs): user=<>, rip=XXX.XXX.XXX.XXX,
lip=XXX.XXX.XXX.XXX,TLS handshaking: SSL_accept() syscall failed:
Invalid argument, session=<XXXXXXXXXXX><br>
</p>
<p>Log from client (Aquamail) is a bit longer (see attachment).</p>
<p><br>
</p>
<p>I have also listened to the communication using Wireshark. The
last piece of communication is Client Helo. After the client sends
Client Helo, there is no reply from Dovecot and the server closes
the communication.<br>
</p>
<p>This is the Client Helo, in the "structured view" iin Wireshark:<br>
</p>
<pre style="margin: 0; padding: 0;"><code class="bbc_code">Secure Sockets Layer
TLSv1 Record Layer: Handshake Protocol: Client Hello
Content Type: Handshake (22)
Version: TLS 1.0 (0x0301)
Length: 176
Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 172
Version: TLS 1.2 (0x0303)
Random: 2b7af5ba92040f081a5a3621e9d9cbab2d50b829b7fe755f...
Session ID Length: 0
Cipher Suites Length: 62
Cipher Suites (31 suites)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f)
Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
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_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)
Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x006b)
Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x0067)
Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
Cipher Suite: TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_RC4_128_SHA (0xc007)
Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)
Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)
Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
Cipher Suite: TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0x00ff)
Cipher Suite: TLS_FALLBACK_SCSV (0x5600)
Compression Methods Length: 1
Compression Methods (1 method)
Extensions Length: 69
Extension: server_name (len=17)
Extension: extended_master_secret (len=0)
Extension: signature_algorithms (len=22)
Type: signature_algorithms (13)
Length: 22
Signature Hash Algorithms Length: 20
Signature Hash Algorithms (10 algorithms)
Signature Algorithm: rsa_pkcs1_sha512 (0x0601)
Signature Algorithm: ecdsa_secp521r1_sha512 (0x0603)
Signature Algorithm: rsa_pkcs1_sha384 (0x0501)
Signature Algorithm: ecdsa_secp384r1_sha384 (0x0503)
Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
Signature Algorithm: ecdsa_secp256r1_sha256 (0x0403)
Signature Algorithm: SHA224 RSA (0x0301)
Signature Algorithm: SHA224 ECDSA (0x0303)
Signature Algorithm: rsa_pkcs1_sha1 (0x0201)
Signature Algorithm: ecdsa_sha1 (0x0203)
</code>
<code class="bbc_code">What I tried:
</code></pre>
<ul>
<li><code>change all possible settings in Dovecot
(ssl_min_protocol, ssl_cipher_list ...)</code></li>
<li><code>change certificate I use</code></li>
</ul>
<p><code>I also got in touch with the developer of Aquamail (see our
discussion here:
<a class="moz-txt-link-freetext" href="https://www.aqua-mail.com/forum/index.php?topic=6824.0">https://www.aqua-mail.com/forum/index.php?topic=6824.0</a> ).</code></p>
<p><code>The developer was able to reproduce the handshake error. We
believe that the problem is that Dovecot rejects ClientHello as
long as it is wrapped in the TLSv1 Record Layer (see the second
lilne in the Wireshark log). According to the developer, Dovecot
should accept Client Helo wrapped in the TLSv1 Record Layer.</code><br>
</p>
<pre style="margin: 0; padding: 0;"><code class="bbc_code">Thank you very much for your help.
Best regards
VB
</code></pre>
</body>
</html>