[
https://issues.apache.org/jira/browse/CASSANDRA-13325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15924790#comment-15924790
]
Nachiket Patil commented on CASSANDRA-13325:
--------------------------------------------
References Inline:
Yes, I was talking about downgrade attacks. [SSLv3
vulnerability|http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566]
which is taken care of in java8. But [TLSv1
vulnerability|https://www.cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2014-8730]
which has no solution yet.
Many security communities including [PCI
council|https://www.pcisecuritystandards.org/documents/Migrating_from_SSL_Early_TLS_Information%20Supplement_v1.pdf]
and
[NIST|https://www.nist.gov/publications/guidelines-selection-configuration-and-use-transport-layer-security-tls-implementations]
guidelines recommend minimum TLS v1.1.
There is a way to set protocol in Cassandra yaml `server_encryption_options`
and `client_encryption_options` but by definition, it is a preferred protocol
not restricting protocol (may support other versions).
https://docs.oracle.com/javase/7/docs/api/javax/net/ssl/SSLContext.html#getInstance(java.lang.String)
https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#SSLContext
To restrict TLS protocols to we need to set `jdk.tls.client.protocols` which is
not JVM property it is a JDK setting in
`<JRE_HOME>/lib/security/java.security`. Overriding jdk security settings is
also considered a vulnerability.
> Bring back the accepted encryption protocols list as configurable option
> ------------------------------------------------------------------------
>
> Key: CASSANDRA-13325
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13325
> Project: Cassandra
> Issue Type: Improvement
> Components: Configuration
> Reporter: Nachiket Patil
> Priority: Minor
>
> With CASSANDRA-10508, the hard coded list of accepted encryption protocols
> was eliminated. For some use cases, it is necessary to restrict the
> encryption protocols used for communication between client and server.
> Default JVM way of negotiations allows the best encryption protocol that
> client can use.
> e.g. I have set Cassandra to use encryption. Ideally client and server
> negotiate to use best protocol (TLSv1.2). But a malicious client might force
> TLSv1.0 which is susceptible to POODLE attacks.
> At the moment only way to restrict the encryption protocol is using the
> {{jdk.tls.client.protocols}} systems property. If I dont have enough access
> to modify this property, I dont have any way of restricting the encryption
> protocols.
> I am proposing bring back the accepted_protocols property but make it
> configurable. If not specified, let the JVM take care of the TLS negotiations.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)