[ 
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)

Reply via email to