Hendrik van Huyssteen created CASSANDRA-7848:
------------------------------------------------

             Summary: Additional keystore configurations for SSL with HSMs
                 Key: CASSANDRA-7848
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7848
             Project: Cassandra
          Issue Type: Improvement
          Components: Config
            Reporter: Hendrik van Huyssteen
            Priority: Minor


In order to use Cassandra with a Hardware Security Module (HSM) for encrypted 
communications, additional configuration options are required in terms of 
keystore configurations. 

A user configuring Cassandra must be able to:
# Specify the truststore and keystore type independently (eg. keystore would be 
in hardware and truststore in software)
# Specify the desired certificate and private key entry that should be used, by 
setting an alias
# Specify the keystore and keypair passwords independently
 
At the moment Cassandra only allows:
# A global keystore type
# Expects one keypair per keystore and
# Uses the same password for the keystore and keypair
 
The appropriate changes have been made to Cassandra 1.2 to support the above 
mentioned configuration.

The proposed cassandra.yaml would then look as follows, with the new changes 
marked with *:
{noformat}
server_encryption_options:
    internode_encryption: all
    keystore: <path to keystore>
    keystore_password: <password of keystore>
    store_type: <hsm storetype>
    *keystore_entry_alias: <alias of key entry in keystore to use>*
    *keystore_entry_password: <password of key entry in keystore to use>*
 
    truststore: <path to truststore>
    truststore_password: <password of truststore>
    # More advanced defaults below:
    # protocol: TLS
    *truststore_type: JKS*
    # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]
{noformat}
 
In terms of backwards compatibility, the following defaults should be used for 
the newly proposed settings:
* truststore_type = store_type;
* keystore_entry_password = keystore_password;
* keystore_entry_alias = autoselect

Example use case with HSM:
* Keystore is stored in HSM.
* store_type is set to the HSM store type.
* keystore_password is set to the slot password of the HSM.
* keystore_entry_password set to the keypair password.
* Truststore is stored on disk, with type set to JKS. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to