[MDEV-22221] Official binary compiled with WolfSSL doesn't support TLS 1.3 and AES-GCM cipher Created: 2020-04-11 Updated: 2021-07-21 Resolved: 2021-07-21 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | SSL |
| Affects Version/s: | 10.4.12 |
| Fix Version/s: | 10.4.21, 10.5.12, 10.6.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | Bohan Yang | Assignee: | Vladislav Vaintroub |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Tested on: |
||
| Issue Links: |
|
||||||||
| Description |
| Comments |
| Comment by Daniel Black [ 2020-04-12 ] | |||||||||||||||||||||||||||
|
btw nice use of openssl s_client, I hadn't realised they had added --starttls mysql | |||||||||||||||||||||||||||
| Comment by Daniel Black [ 2020-04-13 ] | |||||||||||||||||||||||||||
|
PR complete. WolfSSL TLSv1.3 when a client provides a certificates will segfault until https://github.com/wolfSSL/wolfssl/pull/2901 is applied. As a test of this. run main.ssl_8k_key test with --tls-version=TLSv1.3. There are TLSv1.3 test gaps however I've added mysqltest support to TLS-VERSION in the PR. FP_MAX_BITS is twice the HAVE_FFDHE_3072 and clang/x86_64 gets the higher numbers enabled so compiles and tests pass on gcc/x86_64 and clang(8)/x86_64 (Linux only tested). Bohan's test cases above also pass correctly. | |||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2020-04-14 ] | |||||||||||||||||||||||||||
|
danblack, is PR really complete? I'm trying to use the TLSv1.3 that supposedly would work, with WolfSSL
| |||||||||||||||||||||||||||
| Comment by Daniel Black [ 2020-04-19 ] | |||||||||||||||||||||||||||
|
So definitely need the more tls1.3 tests in the suite. along with the failing 8k test (currently generating a duplicate free, waiting on wolfssl upstream for some clue as to why). | |||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2020-04-19 ] | |||||||||||||||||||||||||||
|
Alright, on Windows the schannel-based client does not do TLSv1.3 | |||||||||||||||||||||||||||
| Comment by Daniel Black [ 2020-05-02 ] | |||||||||||||||||||||||||||
|
On the non-windows server side, the openssl build has TLSv1.3 now. So should we aim to deliver that with wolfssl while disabling the TLSv1.3 on Windows? Wolfssl TLSv1.3 8k client certificate support just got fixed upstream (https://github.com/wolfSSL/wolfssl/pull/2933). So options:
I looked for a hook that could detect a 8k client certificate however CallbackRsaVerify was called too late. Which mariadb release branch should be targeted for these changes? | |||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2020-05-02 ] | |||||||||||||||||||||||||||
|
Do all openssl builds support TLSv1.3? Usually, we take major releases. If there is something truly important, I guess an exception is possible. The submodule changes go into lowest applicable version, which would be 10.4 | |||||||||||||||||||||||||||
| Comment by Daniel Black [ 2020-05-03 ] | |||||||||||||||||||||||||||
|
note: openssl-1.1.1 introduced tlsv1.3 - https://www.openssl.org/blog/blog/2017/05/04/tlsv1.3/ (and https://github.com/openssl/openssl/blob/master/CHANGES.md#changes-between-110i-and-111-11-sep-2018). | |||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-27 ] | |||||||||||||||||||||||||||
|
Side note: Downstream in Debian the release team finally gave us premission to use OpenSSL and thus WolfSSL (ssl=bundled) was now dropped for MariaDB 10.5 in Debian and OpenSSL introduced, and along with it support for TLSv1.3. Ref: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/commit/ca2574aa88434d1c49456c677b7dcb904902daaf | |||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2021-06-09 ] | |||||||||||||||||||||||||||
|
I allowed AES-GCM on WolfSSL now, but TLS1.3 will have to wait longer. |