You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Sean Busbey (Jira)" <ji...@apache.org> on 2020/11/09 20:33:00 UTC

[jira] [Resolved] (HBASE-25181) Add options for disabling column family encryption and choosing hash algorithm for wrapped encryption keys.

     [ https://issues.apache.org/jira/browse/HBASE-25181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Busbey resolved HBASE-25181.
---------------------------------
    Fix Version/s: 2.4.0
                   3.0.0-alpha-1
     Release Note: 
<!-- markdown -->
This change adds options for disabling column family encryption and choosing hash algorithm for wrapped encryption keys. Changes are done such that defaults will keep the same behavior prior to this issue.
    
Prior to this change HBase always used the MD5 hash algorithm to store a hash for encryption keys. This hash is needed to verify the secret key of the subject. (e.g. making sure that the same secrey key is used during encrypted HFile read and write). The MD5 algorithm is considered weak, and can not be used in some (e.g. FIPS compliant) clusters. Having a configurable hash enables us to use newer and more secure hash algorithms like SHA-384 or SHA-512 (which are FIPS compliant).

The hash is set via the configuration option `hbase.crypto.key.hash.algorithm`. It should be set to a JDK `MessageDigest` algorithm like "MD5", "SHA-256" or "SHA-384". The default is "MD5" for backward compatibility.

Alternatively, clusters which rely on an encryption at rest mechanism outside of HBase (e.g. those offered by HDFS) and wish to ensure HBase's encryption at rest system is inactive can set `hbase.crypto.enabled` to `false`.
       Resolution: Fixed

Pushed to master and branch-2. I started backporting to branch-1, it was close but there were enough conflicts for me to step away from it. If folks would like to see it in branch-1 please post a backport PR.

> Add options for disabling column family encryption and choosing hash algorithm for wrapped encryption keys.
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-25181
>                 URL: https://issues.apache.org/jira/browse/HBASE-25181
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 2.3.2
>            Reporter: Mate Szalay-Beko
>            Assignee: Mate Szalay-Beko
>            Priority: Major
>             Fix For: 3.0.0-alpha-1, 2.4.0
>
>
> Currently we are using MD5 hash algorithm to store a hash for encryption keys. This hash is needed to verify the secret key of the subject. (e.g. making sure that the same secret key is used during encrypted HFile / WalFile read and write). The MD5 algorithm is considered weak, and can not be used in some (e.g. FIPS compliant) clusters. However, currently it is not possible to use different hash algorithm, or to disable the whole column family encryption globally on the cluster.
> In this patch:
> * I introduce a backward compatible way of specifying the hash algorithm. This enable us to use newer and/or more secure hash algorithms like SHA-384 or SHA-512 (which are FIPS compliant).
> * I added a configuration parameter to globally enable / disable the column family encryption feature. (enabled by default for backward compatibility). This is handy if someone wants to operate an HBase cluster making sure that uses are only relying on other (e.g. HDFS based) encryption mechanisms.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)