I'm not Aki but hope you don't mind...
On Wed, Apr 17, 2019, at 10:42 PM, TG Servers via dovecot wrote:
Hi,
MariaDB documentation says it accepts OpenSSL cipher strings in its ssl_cipher parameters like ssl_cipher="TLSv1.2".
This is also mentioned when creating or changing users in terms of setting this with the REQUIRE CIPHER parameter like CREATE USER ... REQUIRE CIPHER 'TLSv1.2'...
So this is all very nice and also working but sadly whith a connection string from dovecot it is not working anymore.
If you set the user only on REQUIRE SSL, the ssl connection and everything is working fine between dovecot and mariaDB.
But when you set REQUIRE CIPHER 'TLSv1.2' in mariaDB and use ssl_cipher=TLSv1.2 in the connection string from dovecot you get the following errors, it does not account the various ciphers of TLSv1.2 but rather expects TLSv1.2 somehow.
[Note] X509 ciphers mismatch: should be 'TLSv1.2' but is 'DHE-RSA-AES256-GCM-SHA384'
A good cipher is sent but the cipher cannot be TLSv1.2 of course :)
But no one will put in explicit ciphers there as this is dangerous in my eyes, people forget updating... Also this is misbehaviour or misdocumented.
The thing is now where to address this. Dovecot or MariaDB.
As dovecot seems to use a good cipher and MariaDB expects a TLSv1.2 string rather than a cipher out of TLSv1.2 I would say mariaDB but am not sure.
Maybe Aki could say something to it, would be great.
Thanks!
The docs from mariaDB to this are here :
https://mariadb.com/kb/en/library/create-user/
But but but...
TLSv1.2 is not a cipher, it's a protocol.
Maria DB docs say the settings excepts a list of ciphers or a protocol name:
In in other software it's common to have two distinct settings, one for protocol and one a cipher "pattern".
Maybe you could try something like this:
kECDHE+CHACHA20:kECDHE+AESGCM
ChaCha / Poly and AES GCM are TLS 1.2 + only ciphers.
This will not include AES CBC which exist with variations in both 1.0 to 1.2, but if you're security conscious, you probably don't want to use CBC anyway.
Or you could match just 1.2 versions with - I think - AESCBC+SHA384:AESCBC+SHA256. This will leave out AES CBC SHA1 which are in 1.0 - 1.1.
And now Aki can correct me :)
-- K
All I'm going to say is that this is 100% mysql/mariadb issue.
Aki