[
https://issues.apache.org/jira/browse/HBASE-12188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Purtell updated HBASE-12188:
-----------------------------------
Summary: Use AES-GCM as the preferred cipher when encrypting HFiles (was:
Use AES-GCM as the preferred mode when encrypting HFiles)
> Use AES-GCM as the preferred cipher when encrypting HFiles
> ----------------------------------------------------------
>
> Key: HBASE-12188
> URL: https://issues.apache.org/jira/browse/HBASE-12188
> Project: HBase
> Issue Type: Improvement
> Reporter: Andrew Purtell
> Priority: Minor
> Fix For: 2.0.0
>
>
> Currently for encrypting HFiles we use AES in CTR mode. This protects data
> against plaintext recovery but does not offer data integrity verification. We
> must continue to rely on HDFS integrity protection mechanisms, or internal
> HFile checksums, which could be subverted. An attacker might be able to
> maliciously introduce corruption that would not be detected during decryption.
> GCM mode operates as a stream cipher like CTR mode while incrementally
> calculating a message authentication code (MAC) concurrent with encryption,
> in a way that affords efficient high performance parallel implementation. The
> process of decryption also verifies the integrity of the data in a
> cryptographically strong manner. Any tampering or corruption will result in a
> reported decryption failure. This provides a marginal improvement in security
> because tampering or corruption will be found at the HFile level and so the
> invalid data will not have a chance to be passed up into higher layers.
> We needed to use AES-CTR when initially developing HFile encryption because
> just about everyone was still using Java 6 in production. This has changed.
> We have dropped support for Java 6 as of branch-1. Conceivably we could
> introduce use of the new Java 7+ APIs for working with AEAD modes like GCM.
> Once doing so, the code will no longer compile if using the JDK 6.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)