[MDEV-31856] use ephemeral ssl certificates Created: 2023-08-05 Updated: 2024-02-05 Resolved: 2024-02-05 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | SSL |
| Fix Version/s: | 11.4.1 |
| Type: | New Feature | Priority: | Critical |
| Reporter: | Sergei Golubchik | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | Preview_11.3 | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Description |
|
Enable SSL in the server by default. Implement ephemeral ssl certificates — if SSL is enabled but no certificates are provided by the user, let the server generate certificates in memory and use them. FLUSH SSL should either regenerate them or simply fail or do nothing. |
| Comments |
| Comment by Daniel Lenski [ 2023-08-10 ] |
It should not be necessary to make any application-level changes to handle the case where certificates are not provided by the user: TLS already supports this. The TLS standard offers ciphersuites called DH_anon, which basically means "do a DIffie-Hellman KX to agree on a long-term symmetric key, but without verifying any server certificate. https://www.rfc-editor.org/rfc/rfc5246#appendix-C This ciphersuite will protect against passive MITM, but not against active MITM as explained here, so it should be considered very weak against the typical threat model for Internet traffic in 2023, which includes pervasive active MITMs. |
| Comment by Daniel Lenski [ 2023-08-10 ] |
|
Additional reasons why this kind of thing should be done in the TLS layer (left to the TLS experts who write and test TLS libraries
|
| Comment by Sergei Golubchik [ 2023-08-10 ] |
|
Note that Also:
|
| Comment by Daniel Lenski [ 2023-08-16 ] |
This sentence makes me even more confused about
How is that possible? An ephemeral certificate generated by the server on each connection is — by its very nature — one where the client cannot have any foreknowledge of that certificate’s contents or provenance. So how can the client possibly distinguish the ephemeral certificate generated by the real/intended server from one generated by a MITM intermediary? It seems like you should perhaps be writing up a design document that explains the overall approach here. |
| Comment by Sergei Golubchik [ 2023-08-23 ] |
|
yes, sure. the design document is in Also you can check the bb-11.3-serg branch with the implementation of |
| Comment by Sergei Golubchik [ 2023-09-08 ] |
|
see |
| Comment by Oleksandr Byelkin [ 2023-09-12 ] |
|
OK to push |
| Comment by Lena Startseva [ 2024-01-23 ] |
|
Testing done. Ok to push |