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

Maulin Vasavada edited comment on CASSANDRA-13428 at 2/23/25 1:39 AM:
----------------------------------------------------------------------

Thanks [~smiklosovic] I'll make those suggested changes. I had that wrapper 
since before I started I thought I may need it for sharing the same logic 
between PEM and JKS but ultimately I realized that we don't need it. However, 
when password is not configured as well as specified password file path is not 
specified, we should throw a configuration exception in my opinion. Will make 
those changes and will also add specific tests which were done as part of the 
wrapper class that got removed now.

Thanks [~Jyothsnakonisa] Stefan can probably add you as a reviewer since I 
don't have access to add you on the PR.


was (Author: maulin.vasavada):
Thanks [~smiklosovic] I'll make those suggested changes. I had that wrapper 
since before I started I thought I may need it for sharing the same logic 
between PEM and JKS but ultimately I realized that we don't need it. However, 
when password is not configured as well as specified password file path is not 
specified, we should throw a configuration exception in my opinion. Will make 
those changes and will also add specific tests which were done as part of the 
wrapper class that got removed now.

Thanks [~Jyothsnakonisa] Stefan can probably add you as a reviewer since I 
don't have access to add you on the PR.

> Security: provide keystore_password_file and truststore_password_file options
> -----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-13428
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13428
>             Project: Apache Cassandra
>          Issue Type: Improvement
>          Components: Feature/Encryption, Local/Config
>            Reporter: Bas van Dijk
>            Assignee: Maulin Vasavada
>            Priority: Normal
>   Original Estimate: 3h
>          Time Spent: 10m
>  Remaining Estimate: 2h 50m
>
> Currently passwords are stored in plaintext in the configuration file as in:
> {code}
>     server_encryption_options:
>       keystore_password: secret
>       truststore_password: secret
>     client_encryption_options:
>       keystore_password: secret
> {code}
> This has the disadvantage that, in order to protect the secrets, the whole 
> configuration file needs to have restricted ownership and permissions. This 
> is problematic in operating systems like NixOS where configuration files are 
> usually stored in world-readable locations.
> A secure option would be to store secrets in files (with restricted ownership 
> and permissions) and reference those files from the unrestricted 
> configuration file as in for example:
> {code}
>     server_encryption_options:
>       keystore_password_file: /run/keys/keystore-password
>       truststore_password_file: /run/keys/truststore-password
>     client_encryption_options:
>       keystore_password_file: /run/keys/keystore-password
> {code}
> This is trivial to implement and provides a big gain in security.
> So in summary I'm proposing to add the {{keystore_password_file}} and 
> {{truststore_password_file}} options besides the existing 
> {{keystore_password}} and {{truststore_password options}}. The former will 
> take precedence over the latter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to