You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jason Brown (JIRA)" <ji...@apache.org> on 2018/01/10 12:46:00 UTC

[jira] [Commented] (CASSANDRA-14107) Introduce simple key alias versioning scheme for TDE

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

Jason Brown commented on CASSANDRA-14107:
-----------------------------------------

Does this mean that users would need to add keys to a keystore (or whatever) in a named manner like this; day intervals are just for example:

- mykey:1 (on day 1)
- mykey:2 (on day 100)
- mykey:3 (on day 300)
- mykey:4 (on day 500)
- ... and so on

If so, then we would need to load all available keys at startup, sort by index, and choose the highest indexed value for the current encryption key. We then store the proper name of the key ("mykey:3", for example) in the file to know which specific key to use for decryption. Is this a reasonable understanding of what you are proposing?

> Introduce simple key alias versioning scheme for TDE
> ----------------------------------------------------
>
>                 Key: CASSANDRA-14107
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14107
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Stefan Podkowinski
>            Assignee: Stefan Podkowinski
>            Priority: Minor
>              Labels: encryption
>             Fix For: 4.x
>
>
> Handling of encryption keys as introduced in CASSANDRA-9945 takes place by referencing a key alias in either cassandra.yaml, or the header of the (commitlog/hints) file that has been encrypted. Using the alias as literal value will work, but requires some attention when rotating keys.
> Currently each time a key is rotated (i.e. adding a new key to the keystore while preserving the previous version), the alias in cassandra.yaml has to be update as well and the node needs to be restarted. It would be more convenient to use a symbolic reference instead. My suggestion here would be to use "<alias>:latest" for referring to the latest version. In this case Cassandra always picks the key with the highest version in "<alias>:<seq_number>".
> The non-trivial part of this suggestion is how the "latest" key is referenced in the file header. If we use "latest", e.g. for the commit log header, and the key gets rotated, we'd now try do decrypt the file with the new key, instead of the key it has been created with. Therefor we'd have to introduce an extra step that will resolve the canonical version for "latest" and refer to that one during any encrypt operation. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org