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

Security enhancement: TLS configuration #226

Open
dreibh opened this issue Dec 6, 2016 · 3 comments
Open

Security enhancement: TLS configuration #226

dreibh opened this issue Dec 6, 2016 · 3 comments
Assignees

Comments

@dreibh
Copy link
Contributor

dreibh commented Dec 6, 2016

In neat_security.c: neat_security_install():

SSL_CTX_set_options(private->ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3):
What about adding SSL_OP_NO_TLSv1 and SSL_OP_NO_TLSv1_1 as well, in order to enforce at least TLS 1.2 by default? If a user program wants to allow older versions (TLS 1.0, TLS 1.1), it must explicitly override the default.

SSL_CTX_set_cipher_list(private->ctx, "DEFAULT:-RC4");
This deactivates RC4, which is good. But the TLS ciphers also contain algorithms like DES and SHA-1. What about using only state-of-the-art ciphers by default? If a user program wants to allow weaker algorithms, it must explicitly override the default. NEAT needs an API for setting the ciphers.

@mcmanus
Copy link
Contributor

mcmanus commented Dec 7, 2016

i don't think actually wants an api for setting ciphers - this is something it should simply do correctly as a design choice. but its a design choice and ymmv - but its consistent with the purpose of the api.

the ciphers should be restricted further, I agree.

tls 1.0 and 1.1 are considered acceptable best practice right now (in a way that ssl and rc4 are not) and removing them would break compat with many legacy servers.. as neat endeavors to communicate with non neat system I think the best policy is to keep neat updated with best practices and have it updated independently of the applications it is linked to.

@dreibh
Copy link
Contributor Author

dreibh commented Dec 7, 2016

TLS 1.2 is already more than 8 years old. If users really want to use very old legacy systems, they should explicitly request backwards compatibility (or better fix their systems to have state-of-the-art security). The default should be state-of-the-art security, not legacy support.

@mcmanus mcmanus removed their assignment Nov 11, 2017
@mcmanus
Copy link
Contributor

mcmanus commented Nov 11, 2017

feel free to make the change if you like.

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

No branches or pull requests

2 participants