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

dtls.c: force_renegotiation_info is always set #219

Closed
mrdeep1 opened this issue Jan 5, 2024 · 4 comments
Closed

dtls.c: force_renegotiation_info is always set #219

mrdeep1 opened this issue Jan 5, 2024 · 4 comments

Comments

@mrdeep1
Copy link
Contributor

mrdeep1 commented Jan 5, 2024

If a DTLS client talks to a TinyDTLS server, but does not send any renegotiation information (i.e. no TLS_EMPTY_RENEGOTIATION_INFO_SCSV) in the ClientHello, then when the server calls dtls_check_tls_extension(), this returns an error.

dtls_check_tls_extension(...)
....
  if (config->user_parameters.force_renegotiation_info) {
     if (!config->renegotiation_info) {
       goto error;
     }
  }

Found when running a client using wolfSSL.

Any reason why force_renegotiation_info should be set for a server?

@boaks
Copy link
Contributor

boaks commented Jan 5, 2024

Could you please explain your case?

I guess this is related to issues #175 and #176 and PR #181.

If the client doesn't support RFC5746 then usually you need to configure your server in an way considered to be "unsecure".
So, why do you need to support a client without RFC5746 support?

@boaks
Copy link
Contributor

boaks commented Jan 5, 2024

Just in the case, someone really wants to support "non RFC5746" peers:

Tinydtls uses the dtls_user_parameters_t to configure the behavior.
The defaults are here and a user-callback enables to adjust this default values.

@mrdeep1
Copy link
Contributor Author

mrdeep1 commented Jan 8, 2024

I had latched on to renegotiation being dropped for TLS1.3 and did not think this properly through. I have found that I need to call a function in wolfSSL to make things work as expected when talking to TinyDTLS.

@mrdeep1 mrdeep1 closed this as completed Jan 8, 2024
@boaks
Copy link
Contributor

boaks commented Jan 8, 2024

Thanks for clarifying.

The pain of the protection against renegotiation attacks is, that is required (at least considered to be required) to use the extension even if renegotiation isn't supported. Therefore it's enabled by default, but may be switched off, if required and the trade offs are clear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants