If the ClientHello contains signature_algorithms_cert but does not contain signature_algorithms, the TLS1.2 handshake fails. #22727
-
|
OpenSSL version: 3.X If the ClientHello contains signature_algorithms_cert but does not contain signature_algorithms, the TLS1.2 handshake fails. In the tls1_set_server_sigalgs function: Is this result expected? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
|
When signature_algorithms is omitted, TLS 1.2 (foolishly...) defined the client as advertising only SHA-1. I believe OpenSSL disables SHA-1 by default now, so that may be the cause. |
Beta Was this translation helpful? Give feedback.
-
signature_algorithms are optional in TLSv1.2. If they are not present then OpenSSL should fallback to "default" signature algorithms. This is specified in RFC5246: All of the default sig algs are based on SHA1 - which OpenSSL disallows in its default security level. In that case I would expect the "no shared signature algorithms" message that you are seeing. If the default security level is set to 0 (e.g. by setting "@SECLEVEL=0" at the end of the ciphersuites list), then a successful handshake should still be possible. "signature_algorithms_cert" only specifies the sig algs to be used in signing certs. It is never used for handshake signatures.
Yes |
Beta Was this translation helpful? Give feedback.
signature_algorithms are optional in TLSv1.2. If they are not present then OpenSSL should fallback to "default" signature algorithms. This is specified in RFC5246: