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

Validate ciphers offered by Minio server #253

Closed
nitisht opened this issue Jan 13, 2018 · 6 comments
Closed

Validate ciphers offered by Minio server #253

nitisht opened this issue Jan 13, 2018 · 6 comments
Assignees
Milestone

Comments

@nitisht
Copy link
Contributor

nitisht commented Jan 13, 2018

The issue minio/minio#5244 reported that Minio offers some of the known vulnerable ciphers like ECDHE-RSA-DES-CBC3-SHA and DES-CBC3-SHA.

The issue was fixed by minio/minio#5245, but we should add tests to Mint to validate the ciphers and make sure none of the vulnerable ciphers are exposed again.

@nitisht nitisht added this to the Current milestone Jan 13, 2018
@aead
Copy link
Member

aead commented Jan 14, 2018

@nitisht Since TLS config is not really a functional requirement - it's a compliance requirement - should we add this to minio-go functional tests or should we start non-functional tests?

@harshavardhana
Copy link
Member

Since we support ENABLE_HTTPS we could turn this test off during non tls run and enable this conditionally.

@aead
Copy link
Member

aead commented Jan 14, 2018

@harshavardhana Sure, my question was just about organization - Should we separate functional from non-functional tests? Like functional_tests.go and non-functional_tests.go (or arbitrary other name) or should we mix both. We can later reorganize of course but if we already know that we have several non-functional requirements which should be tested than we should separate...

@nitisht
Copy link
Contributor Author

nitisht commented Jan 15, 2018

@aead can we create a separate test directory called testssl and use https://github.com/drwetter/testssl.sh directly in Mint? I think that is better compared to writing our own program

@aead
Copy link
Member

aead commented Jan 15, 2018

@nitisht In general correct. The issue here has two separate parts:

  • General TLS configuration: Like does the server reject SSL2/3, TLS1.0 and TLS1.1, does the server implement countermeasure against ROBOT, does the server support PFS and so on. That should be checked by testssl.sh
  • The specific issues of minio/minio#5244: The Go TLS stack does not implement all things other TLS libraries (Open/Boring/LibreSSL ...) do. For example no SHA256 timing countermeasures, P384 and P521 constant time implementations and so on. For those cases we cannot rely on testssl.sh because I don't seen a way to use testssl.sh to do such implementation specific testing.

EDIT: As far as I can see there is no way to use testssl.sh to just allow a specific subset of ciphers...

@nitisht
Copy link
Contributor Author

nitisht commented Jan 15, 2018

As far as I can see there is no way to use testssl.sh to just allow a specific subset of ciphers.

In that case, IMO we can have a separate directory with just these tests. As you indicated, it is not a good idea to have these tests added to minio-go functional tests.

aead pushed a commit to aead/mint that referenced this issue Jan 15, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds a new subdirectory `/run/tls`.

Fixes minio#253
aead pushed a commit to aead/mint that referenced this issue Jan 15, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds a new subdirectory `/run/tls`.

Fixes minio#253
aead pushed a commit to aead/mint that referenced this issue Jan 15, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds a new subdirectory `/run/tls`.

Fixes minio#253
aead pushed a commit to aead/mint that referenced this issue Jan 16, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds a new subdirectory `/run/tls`.

Fixes minio#253
aead pushed a commit to aead/mint that referenced this issue Jan 17, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds a new subdirectory `/run/tls`.

Fixes minio#253
aead pushed a commit to aead/mint that referenced this issue Jan 22, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds a new subdirectory `/run/tls`.

Fixes minio#253
nitisht pushed a commit that referenced this issue Jan 22, 2018
This change adds non-functional tests to check whether a
minio endpoint (TLS) is configured properly.

This includes:
 - SSL/TLS version checks
 - Cipher suite checks

To separate TLS tests from functional tests this change adds 
a new subdirectory `/run/security`.

Fixes #253
@nitisht nitisht added the fixed label Jan 22, 2018
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

3 participants