-
Notifications
You must be signed in to change notification settings - Fork 450
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Add support for TLS 1.3 #1633
Comments
@banjaxedben Hi. Thank you for pointing this out. You are correct; this is the first time we have recognized this issue. We greatly appreciate your contribution and attention to our project. We plan to support this feature in the next version. |
@ysfscream : Thanks for picking this up. What did you mean by "Our system should automatically adapt between TLS 1.2 and TLS 1.3 based on the client's capabilities." I am running the MQTTX desktop app on Windows Server 2022 Datacenter. Do you think I need to do something in the OS to enable TLS 1.3? In my Wireshark data you can see: Apart from possible Windows configuration issues, I believe that the reason my client won't connect is that I am using EdDSA (ed25519) keys. In my Wireshark data you can also see that the Client Hello message contains the signature_algorithms extension, with 9 algorithms listed, but none of them include EdDSA. I think this is why the server throws an error: it knows that its own leaf cert contains an ed25519 key, so the signature_algorithms supported by the client aren't going to work. According to RFC 8446 (The Transport Layer Security (TLS) Protocol Version 1.3) I need ed25519 (0x0807) to be listed. Note that RFC 8422 is titled "Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS) Versions 1.2 and Earlier". It seems to suggest that EdDSA can be supported in TLSv1.2. I have 2 options:
|
I'm hoping it's helpfulp you. |
I tried using the As expected, the signature_algorithms extension in the Client Hello message now includes ed25519 (0x0807). So my question becomes: if my client system environment and network configurations are able to support TLS 1.3, why doesn't MQTTX use it? Also, even if MQTTX was able to somehow "automatically adapt between TLS 1.2 and TLS 1.3 based on the client's capabilities", I suggest that the UI could be improved to provide more control to the user. The openssl s_client is an example of a client that allows the user to enable or disable specific TLS versions. The mosquitto command-line clients also provide a |
YES, this is also a good option for users. Based on the Node.js documentation, we should be able to implement it. We will try in the next version. https://nodejs.org/docs/v20.12.1/api/tls.html#tlscreatesecurecontextoptions Thank you for your suggestion. |
Motivation
At the moment (v1.9.10), when I enable SSL/TLS, the client seems to use TLS version 1.2 by default.
TLS 1.3 (RFC 8446) was published in 2018, and offers multiple improvements.
Detailed design
At the moment there is a binary toggle to disable or enable TLS. I suggest providing 3 radio buttons:
The text was updated successfully, but these errors were encountered: