Skip to content
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

TLS1.2 Handshake fails with Brainpool Curves #24207

Open
strauss115 opened this issue Apr 19, 2024 · 0 comments
Open

TLS1.2 Handshake fails with Brainpool Curves #24207

strauss115 opened this issue Apr 19, 2024 · 0 comments
Labels
help wanted triaged: feature The issue/pr requests/adds a feature

Comments

@strauss115
Copy link

Hi,

I would like to use a certificate which has a brainpoolP256r1 curve, same as discussed in issue 21346. That is recommened by e.g. BSI TR-03116 Part 3 Chapter 4.1.
Currently, OpenSSL (tested with 3.0.8, 3.0.11 & 3.2.2) does not allow to establish a connection using TLS1.2 with a certificate using a brainpool curve without forcing the client to announce that it supports brainpool.

As stated in the other issue it works fine with TLS1.3 and OpenSSL >=3.2. However, TLS1.2 (any of the tested OpenSSL versions) only works if the client is explicitly told to use/announce brainpoolP256r1 with

$ openssl s_client -connect [hostname] -tls1_2 -curves brainpoolP256r1 -trace

This adds "brainpoolP256r1" to the client handshake

extension_type=supported_groups(10), length=4
          brainpoolP256r1 (26)

Forcing only TLS1.2 the client sends these supported groups (in this example output is genereated by OpenSSL 3.0.11)
$ openssl s_client -connect [hostname] -tls1_2 -trace

     extension_type=supported_groups(10), length=12
          ecdh_x25519 (29)
          secp256r1 (P-256) (23)
          ecdh_x448 (30)
          secp521r1 (P-521) (25)
          secp384r1 (P-384) (24)

In my understanding using secp256r1 should be compliant in that situation according to RFC8446 , but OpenSSL 3.2.2 and 3.0.11 refuse the TLS1.2 handshake with "no shared cipher" error.

Unfortunately, there seems to be no way to configure the server/OpenSSL like that. Should the behaviour be adapted to maximize compatibility?

@strauss115 strauss115 added the issue: bug report The issue was opened to report a bug label Apr 19, 2024
@t8m t8m added triaged: feature The issue/pr requests/adds a feature help wanted and removed issue: bug report The issue was opened to report a bug labels Apr 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted triaged: feature The issue/pr requests/adds a feature
Projects
None yet
Development

No branches or pull requests

2 participants