钱兆楼
(淮安信息职业技术学院,江苏 淮安 223003)
基于Hadoop的NoSQL数据库安全探讨
钱兆楼
(淮安信息职业技术学院,江苏 淮安 223003)
针对当前云计算平台下的数据库安全问题,文章以NoSQL非关系型数据库中最为典型的HBase数据安全为背景,提出在采用传统的基于Hadoop安全机制方法外,还必须强化HBase的安全,从而才能更好地实现对非关系型数据库的安全保障。
Hadoop平台;NoSQL数据库;HBase;安全机制;安全策略
随着信息化时代的来临,复杂的数据类型和应用场景给数据库提出了更高的要求。面对海量数据的到来,传统的数据库已经无法满足应用场景的需要,由此非关系型数据库应运而生。之所以NoSQL数据库发展起来,并迅速被人们所接纳,是因为其为海量数据处理提供了一个新的解决方案,并具有高可扩展性、高并发性等优势。本文则以NoSQL非关系型数据库之中的HBase数据库为例,就其安全策略进行探讨。
与传统的关系型数据库进行比较,NoSQL主要改变了传统的存储结构和架构,从而可更好地满足对大规模数据的存储、访问。在关系型数据库之中,其存储的数据大部分都是结构化的数据,并且存储在由不同行列组成的二维表格之中,其中所有含包含的字段都是全部相同。通过这种方式可便于相关表的连接,但是通常会占用大量的磁盘空间,并限制了海量数据的处理性能。而对于NoSQL数据库来讲,是一种以“键值对”作为主要存储架构的数据库,在该数据库中,其每一行的结构不需要完全相同,每行也可以用不同的字段,从而非常有利于存储非结构化的数据。
在实际中,对非关系型数据库的访问通常是通过键值对作为访问接口。这种以键值对访问的方式,不仅可随着数据量的增加而横向扩展,同时还可提高负载能力。而通过横向扩展,将产生的海量数据以键值对的方式存储在云计算平台中的各个节点,提高了整个云平台的集群性能,并且不需要对整个数据库进行扫描,即可通过加入新的节点来实现扩展。因此,针对这种分布式的数据存储方式,在对其安全进行考虑中,通常需要从内部和外部进行考虑,即从数据库内部安全和非关系型数据库客户端与服务器端外部通信两方面入手。
要解决HBase的安全问题,需要解决两方面的问题,一方面提高Hadoop的安全性;另一方面提高非关系型数据库的访问安全。因此本文的思路是在Hadoop层引入Kerberos认证、 ACL权限认证和Token认证,在非关系型数据库中引入Coprocessor机制,从而保障非关系型数据库的访问安全。
3.1Kerberos认证机制
Kerberos认证通常被认为是一种基于对称密钥体制的计算机网络认证协议,通过该协议,可实现机器级别的安全访问认证。换句话说,在非安全访问条件下,某个实体要想对另外一个实体进行访问,必须通过Kerberos才能向另外一个实体证明自己的合法身份。因此,通常我们将Kerberos认证看成是第三方可信认证,并被称为密钥分发中心。在该中心中,有两个独立的逻辑部分:票据授权中心(Ticket Granting Service, TGS)和认证中心(Authentication Service, AS)。Kerberos则持有一个密钥库,对不同用户的密钥进行记录,而这个密钥也只有Kerberos和用户才能知道。如在云计算平台下,两个不同的实体需要通信,那么就会产生一个临时的会话密钥,对两者之间的通信进行加密。
在对该认证进行使用的过程中,管理员首先会手动将集群平台中的服务器节点添加到Kerberos数据库之中,然后会在Kerberos的认证中心中产生对应的Kerberos。通过 Keytab文件,即可以实现与认证中心的通话,并获取密钥分发中心发放的临时密钥,并最终云计算平台中的目标节点认证。
3.2基于ACL的权限控制
在Hadoop的安全配置中,可支持权限控制,并且分为两级:服务级授权(Service Level Authorization, SLA)以及上层的Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)文件权限控制和Map Reduce队列权限验证,其中上述的服务级授权通常为系统级,主要对Hadoop的服务访问方面的控制。同时在Hadoop平台下,其底层的HDFS文件系统本身可通过访问控制列表的方式来管理和控制服务级的访问权限。同时,Hadoop拥有9个不同的可配置访问控制列表,从而针对不同的访问设置不同的控制功能。
通过ACL访问控制,Hadoop可保证HBase数据库在与底层的HDFS文件系统进行访问过程中的安全,从而通过这种组和用户的限制,进一步防止非法用户对数据的访问和操作。
3.3Token认证
研究认为,用户在向HDF发出数据请求之后,可根据自己的需要,制定相应的用户名和组。如果在这个过程中,没有对用户的身份进行认证的话,那么访问用户就很可能伪装成他人对HDFS文件系统进行访问。由此,这给Hadoop平台下得HDFS文件系统带来极大的威胁。因此,加强对HDFS访问的安全控制是保障非关系型数据库的一种重要手段,也就是Token认证。Token认证包含两类:Name Node Delegation Token和Block Access Token。其中Delegation Token的生成过程如图1所示。
图1 Delegation Token生成流程
通过图1看出,当用户在通过Kerberos和Namennode中,会随机生成一个Master Key,然后与Namennode共享,从而完成对 Delegation Token的认证。
而所谓的Block Access Tokens通常是由对称加密体制自动生成。在这个过程中,Name Node和所有的Data Nodes通常是共同享用一个密钥,而这个密钥则成了一个主密钥。对这个密钥来讲,当一个HDFS客户端需要对某个block进行访问的时候,它才将这个Block的ID与其相应的Block Access Token都全部发送给对应的Data Node,在Data Node接收到这个信息之后,会重新计算Token Authenticator,然后将这个计算值也其接收到的Token Authenticator进行对比,如果这两者匹配,那么可以通过验证,如果不一致,则不能通过验证。因为对于该认证方式来讲,只有其中的Name Node和Data Nodes才知道密钥,任何第三方都不知道。
3.4Coprocessor机制
HBase Coprocessor 通常被认为是HBase数据库的一个非常重要的框架,在该框架中,它允许用户可在服务器端插入自己定制的执行代码。而这种执行代码包括两种不同的模式:Observer 模式、Endpoint模式。这两种模式统也可以类似于我们传统数据库当中的触发器和存储过程的概念。在基于Coprocessor框架中,HBase数据库可实现访问控制、聚合以及二次索引等一些非常丰富的特性。
总之,要加强非关系型数据库的安全,必须结合Hadoop和非关系型数据库的特点,在加强对Hadoop访问安全控制的基础上,还必须从NoSQL数据库自身入手,这样可以更好地实现对非关系型数据的保护。也只有加强海量数据的保护,才能为后续大数据技术的更好开展奠定基础。
[1[陆嘉恒.Hadoop实战[M[.北京:机械工业出版社,2012.
[2[李延改,赵华伟.基于PKI的HDFS认证及安全传输机制研究[J[.山东科学,2014(27):34-41.
[3[邵伟.基于Map Reduce模型的并行计算平台设计[J[.计算机光盘软件与应用,2013(9):120-121.
Discussion on the security of NoSQL database based on Hadoop
Qian Zhaolou
(Huaian College of Information Technology, Huaian 223003, China)
Aiming at the safety problem of the database platform under the current cloud computing, the security of HBase data is taken as a typical background of NoSQL in non relational database, this paper proposed using the traditional method based on Hadoop security mechanism, and must strengthen the security of HBase, which can better do good safety to non relational database.
Hadoop platform; NoSQL database; HBase; security mechanism; security policy
钱兆楼(1978— ),男,江苏淮安,硕士,讲师,工程师;研究方向:网络与信息安全,软件工程。