APP下载

Hadoop数据加密解析

2016-03-13

网络安全和信息化 2016年11期
关键词:密钥许可加密

引言: 加密和密码技术形式多样,从一开始加密并没有构建到Apache Hadoop中,而是随着时间的推移才加入并在组件中实施的。如今,加密技术已经成为一种保护金融机构、电信公司、医疗机构、政府机构的大数据的常用方法。

密码技术形式多样,在很早的时候甚至在计算机发明之前就已出现。即便如此,从一开始加密技术并没有构建到Apache Hadoop中,而是随着时间的推移才加入并在组件中实施的。如今加密技术已经成为一种保护金融机构、电信公司、医疗机构、政府机构大数据的常用方法。

Hadoop分布式文件系统加密

Hadoop分布式文件系统加密支持通过一种称为加密区域(Each Encryption)的机制来支持本地的数据加密。一个加密区域从基本说就是一个与加密密钥有关联的Hadoop分布式文件系统加密目录。一旦目录与加密密钥有了关联,此目录及其子目录中的所有文件都会被自动加密。

在使用Hadoop分布式文件系统加密时,并非Hadoop分布式文件系统加密中的所有数据都需要加密,可对非敏感数据以明文存放和处理,而对敏感数据进行加密。Hadoop用户可以用其自己的加密区域来保护来自其他用户的数据。

关于Hadoop分布式文件系统加密的一个常见的错误观念是:在数据被写到数据节点上的磁盘上时才被加密。事实上,在数据被发送到数据节点之前就被加密了。由此,数据在传送过程中也受到了保护,而且这种架构还可以防止在存放数据的数据节点上泄露密钥。

用于加密Hadoop分布式文件系统加密数据的加密算法是行业中普遍认可的AES。默认的是AES-128,但是对于已经普遍实施了更强健的AES-256的企业来说,此算法还是可以配置的。加密区域中的每个文件都被分配了一个随机生成的密钥。这是一种很不错的做法,因为一旦一个密钥被破坏,其后果将只影响到单个文件。

但是对于Hadoop分布式文件系统加密的话,笔者要提出一些警告:

首先,人们无法在一个非空的目录上创建加密区域。换言之,如果期望对一个已有的包含数据的目录建立加密区域进行加密是无法实现的。其工作方式不允许这样做。此时需要一个空目录才能创建加密区域。在此空目录中可以使用Distcp命令从当前目录将所有数据复制到新建立的空的加密目录中,然后再删除旧的文件。

其次,无法使整个“/”根目录成为一个加密区域。

第三,嵌套加密的区域目录并未得到支持,但已准备列入计划。用户可能希望将整个目录或用户目录作为一个加密区域,并允许用户创建自己的嵌套加密区域,但目前此想法并未得到支持。

第四,测试应用程序。在很多情况下,由于用户对加密密钥的许可会造成应用程序崩溃,而对于文件从加密区域中的移动和复制也存在一些限制。

Hadoop密钥管理服务器(KMS)

加密的关键是加密密钥的管理。每个加密区域都有其自己唯一的密钥和相关的使用此密钥的用户许可。每个独立的文件都有其自己唯一的随机生成的密钥。那么,如何存储、管理、保护这些密钥,正是Hadoop 密钥管理服务器展示拳脚所在。Apache Hadoop 密钥管理服务器是一个“三面玲珑”的密钥管理服务:为加密区域生成和存储密钥;生成、加密、解密文件的密钥;保护和管理访问这些密钥的许可。

密钥管理服务器是一种独立于Hadoop集群而运行的服务,它是由信息案例团队管理,而非Hadoop管理员。非常重要的一点是,在涉及到管理访问这些加密密钥的许可时,创建责任分离是很重要的。Hadoop管理员可以访问Hadoop分布式文件系统加密用户和所有的数据,但不能访问密钥。

对密钥的访问许可在密钥管理服务器中被定义为访问控制列表(ACL)。这些ACL许可定义了哪些用户和组可以访问加密密钥,也称为白名单。创建ACL还可以定义哪些用户或组不能访问密钥,即所谓的黑名单。使用ACL,用户们就可以阻止特权和管理员用户(如Hadoop分布式文件系统加密用户)访问用户数据。

密钥管理服务器默认情况下通过JKS(Java KeyStore)来实施。JKS将机密存放在文件中,此文件一般仅由文件系统的许可机制来保护。但JKS的实施有其弊端,由于安全性问题笔者不建议在生产系统中使用。用户可以将一个口令放在JKS文件上,但是,问题是将这个口令放在服务器上文本文件的哪里呢?还有可扩展性和可用性的问题;JKS没有内置的针对JKS文件的复制、冗余、备份机制。

本文中笔者仅仅涉及了静态数据和密钥的Hadoop分布式文件系统的加密,但并非所有的数据都位于Hadoop分布式文件系统的加密中。还有一些位于该系统加密范围之外的敏感数据,也有临时文件,还有传输中的数据。

猜你喜欢

密钥许可加密
版权许可声明
一种新型离散忆阻混沌系统及其图像加密应用
版权许可声明
幻中邂逅之金色密钥
版权许可声明
密码系统中密钥的状态与保护*
本期作者介绍
一种基于熵的混沌加密小波变换水印算法
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统