[ 
https://issues.apache.org/jira/browse/CASSANDRA-9633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15674920#comment-15674920
 ] 

Ben Bromhead commented on CASSANDRA-9633:
-----------------------------------------

There appears to be a bit of a stall on this ticket, I'm happy to address / 
review / help out on any outstanding comments / nits. I've included a few of my 
initial thoughts on some of the above issues, however I'm still going through 
the code and testing:

bq. Enabling encryption on a table silently discards any compression settings 
on the table

One note on supporting compression with encryption is that it's tricky to do 
correctly. Performing compression on input that is potentially attacker 
controlled is generally a big no-no. For an example of why this is not a good 
idea, check out the CRIME attack against SSL, which leverages using compression 
influenced size as an oracle https://en.wikipedia.org/wiki/CRIME.

I know this is done in DSE, I'm not familiar with the Datastax implementation 
as these are closed source, however I would be cautious using 
EncryptingSnappyCompressor et al. 

On the flip side performing compression after the SSTable has been encrypted 
tends to not be particularly effective due to apparent increase of entropy in 
the SSTable after encryption.

Due to the above, I would not worry about supporting the ability to encrypt AND 
compress SSTables in this first release of the feature.

bq. Not every cipher mode supports initialization vectors

Supporting cipher modes that don't use IVs allows users to shoot themselves in 
the foot. The example given above of AES/ECB/NoPadding is definitely a cipher 
mode we don't want to support. See https://blog.filippo.io/the-ecb-penguin/ 



> Add ability to encrypt sstables
> -------------------------------
>
>                 Key: CASSANDRA-9633
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9633
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jason Brown
>            Assignee: Jason Brown
>              Labels: encryption, security, sstable
>             Fix For: 3.x
>
>
> Add option to allow encrypting of sstables.
> I have a version of this functionality built on cassandra 2.0 that 
> piggy-backs on the existing sstable compression functionality and ICompressor 
> interface (similar in nature to what DataStax Enterprise does). However, if 
> we're adding the feature to the main OSS product, I'm not sure if we want to 
> use the pluggable compression framework or if it's worth investigating a 
> different path. I think there's a lot of upside in reusing the sstable 
> compression scheme, but perhaps add a new component in cqlsh for table 
> encryption and a corresponding field in CFMD.
> Encryption configuration in the yaml can use the same mechanism as 
> CASSANDRA-6018 (which is currently pending internal review).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to