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

Adding support for cipher suite selection in websockets transport #2135

Merged
merged 9 commits into from
May 5, 2020

Conversation

agclark27
Copy link
Contributor

This PR is modeled after the commits from #1219 and adds cipher suite selection for the websockets transport by setting 'ssl_cipher_list' on the 'lws_context_creation_info' struct to a 'ciphers' value in the websocket transport config. If this value isn't configured, a null is passed in and there is no behavior change. We've tested it with the cipher suites recommended by OWASP for secure protocols and everything is working as expected.

Example config:

ciphers = "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256";

changes and additions to mutex unlocking in textroom and videoroom plugins to improve stability
adding support for existing screenshareFrameRate property as well as new screenshareHeight and screenshareWidth properties in getDisplayMedia
removing default Janus screenshare frame rate and allowing browser to determine default
code style updates
Copy link
Member

@lminiero lminiero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Just added a small note on the config file.

certificates: {
#cert_pem = "/path/to/cert.pem"
#cert_key = "/path/to/key.pem"
#cert_pwd = "secretpassphrase"
#ciphers = "DEFAULT"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd probably set a reasonable default here, like the one we have in the HTTP config file; something that gives people an idea of what the syntax looks like. The example you made in the description may be too long for that, but something along those lines maybe.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated the example cipher string to the two ECDHE ciphers that are supported universally across all modern browsers, and I've linked out to the OWASP page with additional details on cipher strings and browser compatibility.

@lminiero
Copy link
Member

lminiero commented May 5, 2020

Thanks, merging! 👍

@lminiero lminiero merged commit 52efcc4 into meetecho:master May 5, 2020
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

Successfully merging this pull request may close these issues.

2 participants