论文部分内容阅读
摘要:针对HDFS集群环境中Kerberos协议身份认证机制所面临的时间同步问题、KDC安全问题、字典攻击问题以及抵赖机制问题,提出了一种基于公钥加密体系改进HDFs环境下Kerberos协议的身份认证机制,首先,分析现存HDFs体系下的身份认证过程,并提出认证过程所面临的安全问题;其次,结合公钥加密机制与数据签名机制对HDFS下的Kerbems协议进行了针对性的修正,并给出了改进后Kerberos协议在HDFS环境下详细的身份认证工作流程;最后,根据公钥加密特点以及HDFs集群特性,充分分析论证了改进Kerbems在HDFS环境下的可行性.实验表明,在公钥级安全保证下,改进后的Kerberos协议与现有的身份认证机制相比在认证请求达到120次以上后时间性能优势明显,为HDFs集群提供了更可靠、更高效的身份认证解决方案.
关键词:云计算;Had00p Distributed File system;身份认证;Kerberos;公钥加密
DoI:10.15938/j.jhust.2016.04.003
中图分类号:TP99
文献标志码:A
文章编号:1007-2683(2016)04-0013-06
0引言
Hadoop是Apache基金会旗下一款具备PT级数据存储与分析能力的分布式系统基础架构,作为云计算领域内海量数据的存储与计算的核心技术取得了广泛的应用,该架构主要由分布式文件系统HDFS(Hadoop Distributed File System)与分布式编程模型Mapreduce两个核心组件组成.HDFS是Google的分布式文件系统GFS(Goode File Sys-tern)的开源实现,为Hadoop平台提供基础的分布式文件存储服务,是整个Hadoop得以运行的基础。在身份认证安全方面,HDFS是基于Kerberos协议实现的.但鉴于对称密钥机制下的Kerberos其安全性面临着很大的不足,很多学者也做了相关的研究.张晓提出了一种基于PKI改进的Kerberos协议,该方案通过使用公钥加密机制代替对称密钥机制使得认证协议安全性达到了公钥级别,但在时间效率上却有着不足,邵叶秦等提出了一种公钥加密机制与私钥加密机制相结合的Kerberos协议,在安全性和时间上均有所提高,但由于对称密钥是由密钥分发中心KDC生成,在对称密钥交换上存在安全漏洞.李延改等提出了一种基于数字证书CA的HDFS环境下的认证及安全传输机制,该改进为通信双方提供证明自身身份的数字证书,实现了通信双方的身份认证,但管理过于繁多的数字证书增加了使用者的开销。
本文将在综合分析HDFS现存Kerberos认证机制的基础上,充分利用公钥加密机制与对称密钥加密机制各自特点,将对称密钥的生成管理方由集中式的KDC改变为分布式的集群服务申请者,以期最终给出一套完善的HDFS环境下的Kerberos协议身份认证机制。
1.Kerberos应用分析
Hadoop在设计之初,默认整个集群是在一个可信任的域中,并没有为集群引入各实体间的认证机制,随着Hadoop应用的不断普及Hadoop设计者也逐渐意识到集群存在的安全性问题,针对Hadoop的安全缺陷,自Hadoopl.0.0版本后,为其引入了基于Kerberos协议的第三方安全身份认证机制,用于保障各通信节点间的可信性。
1.1基于Kerberos协议下的HDFS认证机制
Kerberos最初是由MIT研发的,当前最新的协议版本为Kerberos V5,该协议可为处于不安全的网络环境下通信的双方提供可信认的身份认证机制,该协议在网络安全与身份认证领域有着广泛的应用,HDFS下Kerberos的基本原理:在Hadoop集群中建立一个集中保存客户端、DataNode以及NameNode的用户名和密码的认证中心KDC,进行用户的身份认证和授权工作,KDC在是由两个逻辑上相互独立的认证服务器AS和票据发放服务器TGS组成的,Hadoop集群下的任何需要申请服务的用户在申请服务时,首先通过与AS服务器通信获得票据授权票据TGT,然后利用TGT与TGS服务器通信获取用于服务的票据Ticket,最后用户利用票据Ticket与所需服务提供节点通信取得服务。
HDFS下Kerberos协议具体实现过程如图4所示
1.2 HDFS下Kerberos协议安全性分析
通过为HDFS引入Kerberos协议,解决了原有HDFS集群所遇到的如下安全问题
1)非法用户利用Hadoop集群的动态扩展特性,伪装成DataNode节点服务器加入到HDFS集群内,接收NameNode分派的文件数据信息;
2)非法用户通过更改网络发送数据包伪装成授权用户的身份,向NameNode与DataNode请求服务资源;
3)在非安全的网络环境中,非法用户可以窃听数据报文的交换过程,并可使用重放攻击干扰Nam—eNode、DataNode服务器的正常运行.
虽然Kerberos協议可以为HDFS提供身份认证机制,但是HDFS下的Kerberos身份认证机制还存在局限性,面临着如下安全问题:
1)HDFS集群时间同步性问题.由于在整个Kerberos协议身份认证过程中会通过借助对比时间戳来判断用户身份真实性,这就要求整个HDFS集群内部网络具备很高的时钟同步能力,而这对于构建于廉价商用机群之上的HDFS集群来说难于实现的.即使HDFS集群所处的Kerberos服务域内可做到高度的时钟同步,使得接收方可以在规定的可信时间内(通常设置t=5min)得到新消息,但只要恶意用户事先准备好伪造的消息,一旦截获服务票据并马上发出,Kerberos机制是难以在这5分钟内检测出恶意用户发起的攻击。 2)KDC的安全性及“瓶颈”问题.KDC作为Kerberos认证协议中的一个重要组成部分,用于存储和分发HDFS集群客户端、NameNode和DataNode的密钥等相关信息.一方面,集中式的密钥存储简化了整个系统的管理复杂难度,然而一旦KDC被恶意用户攻破,则将会对整个HDFS集群安全造成灾难性的打击;另一方面为应对非法用户恶意收集票据用于重放攻击,KDC需要为密钥设定一个安全的有效期时限,这样的设计使得HDFS集群认证申请方为保证自身持有密钥的有效性需要周期性的向KDC申请票据.鉴于HDFS自身集群规模庞大性以及申请方需要周期性的向中心服务器KDC提出申请,这将导致服务器服务能力下降和处理能力减弱,产生性能瓶颈。
3)字典攻击问题.在Kerberos认证过程中,AS服务器并不是直接验证用户身份,而是通过返回用客户端密钥Kc加密的TGT信息,只有知道Kc的用户才可解密得到TGT,进而进行后续的认证步骤.然而目前即使引入了认证技术及数据加密技术的强健安全网络(RSN)在通信安全方面依然存在相关的安全隐患,汪定。等指出即使在强健安全网络(RSN)环境下,基于中间人MitM的信息篡改、信息窃取等攻击方式依然具有严重威胁性,并提出中一个关于MitM攻击的框架和有效攻击条件,给出该框架下一个有效攻击实例,因此若恶意用户可在HDFS集群通信线路上收集足够数量的TGT信息,从而可以通过离线的口令分析技术,进行针对性的密钥破解.针对恶意用户的离线分析状况,基于对称加密体制目前还无法给出有效性防止方案.
4)抵赖机制问题.有效的不可抵赖机制是现如今通信网络双方所極为推崇的重要安全技术.当前的不可抵赖机制实现是基于数字签名技术,而数字签名的实现则依赖于散列函数与公钥加密算法.由于Kerberos协议采用的是对称加密机制而非公私钥机制,所以也就不能为信息的发送方提供数字签名技术,不能实现HDFS集群认证过程中发送信息不可抵赖机制。
为消除HDFS下Kerberos身份认证机制的这些局限性问题,本文将会在Hadoop集群现有的认证机制的的框架内就Kerberos协议做出适当的修改,通过为Kerberos协议引入非对称加密体质,充分利用现有非对称密钥机制的特点解决上述Hadoop集群身份认证问题。
2.Kerberos改进及实现
在保证现有Kerberos认证框架前提下,本方案对Kerberos协议认证内容做了改进性修正(具体流程参见图5).首先,服务申请方在生成请求信息时摒弃了原有协议中采取的对称加密方式,而是采用公钥加密技术对传输信息进行安全级别更高的公钥加密,并且加密信息中包含本次连接所使用的对称加密密钥;其次,在HDFS集群用户认证信息发送的端与端之间引入数字签名技术,对所需传输内容采取先签名后传输策略;最后,鉴于公钥加密技术的引进,修改后协议在认证信息方面只保留了基本的信息字段,舍弃了不再需要的IP地址等信息,做到了HDFS集群内端与端之间传递认证信息精简化。
改进后协议认证流程如下:
2.1 Client请求NameNode
认证过程中用到符号说明如下:
Client:服务的请求方
KDC:Key Distribute Center密钥分发中心
2.2 Client请求DataNode服务过程
该部分认证同Client请求NameNode服务过程类似,限于篇幅不再累述.
3.结果分析
下面将分别从安全性与时间效率两个方面对改进后的Kerberos协议在HDFS下身份认证过程进行分析.
3.1安全性分析
通过对传输信息的数据签名确保了发送者的身份的可识别,通过对传输数据的公钥加密确保了只有私钥持有者可以解密得到正确的数据,这一改进解决了原有认证机制的安全隐患,具体安全性分析如下:
1)相比较于改进前,改进后的认证协议对集群内时间同步性要求降低.由于只有拥有私钥的一方才可以解密使用公钥加密的数据并且公钥加密体制破解难度大,使得时间戳在认证协议中变为辅助判断票据有效性和防止重放攻击的手段.
2)改进后的Kerberos协议引入公钥加密体制,用户各自本地化存储私钥,公钥信息在集群内获得,使得KDC服务器无需实现集中存储包含所有用户密码机密敏感信息.通过此改进将极大降低了KDC服务可能面临的安全隐患,即使KDC服务器被攻破,攻击者也无法获取用户的私钥信息,无法冒充用户身份取得服务。
3)通过引入公钥加密,使得改进后认证过程杜绝了字典攻击的发生。
4)在用户、KDC服务器、NameNode和DataNode的认证信息发送、接收过程中都使用了公私钥加密及私钥签名,基于私钥的私有性,使得信息发送方的身份真实性得到了有效的证明,防止了抵赖.
3.2效率分析
实验仿真
测试系统中使用一台服务器作为独立密钥分发中心KDC,一台服务器作为NameNode节点,三台服务器为DataNode节点,三台服务器作为Client节点.测试系统使用Hadoop-1.0.O版本搭建,各个组成部分所使用的软硬件配置如表1:
为最大限度的减少机器本身性能对实验数据的影响,现将改进前后的两套系统分别部署到相应的机器上,依次验证两套系统在不同请求规模级别下用户认证过程所需的平均时间值.现在分别对以下几种规模性请求情况进行测试:3个认证请求、15个认证请求、30个认证请求、45个认证请求、60个认证请求、90个认证请求、105个认证请求、120个认证请求、135个认证请求。
注:为使实验接近真实规模,在有限的三台Cli.ent上采用了改变请求信息中IDc字段值的办法模拟不同的申请者,已达到规模性认证请求情况.
下图是认证协议改进前后两种情况所对应的平均时间测试的对比结果:
通过图6关于认证协议改进前与改进后的对比实验结果可以得出:在该实验环境下,随着请求次数增加二者均呈近似线性增长趋势,但改进后增长幅度要小于改进前.在请求低于120以下时改进后时间需求要大于改进前,但随着请求高于120次改进后时间效率更占优势.总之,改进后更适用于大规模请求,更适合Hadoop集群环境下的身份认证请求过程。
4.结论
Hadoop经历了从无安全机制到引入Kerberos身份认证机制的过程,本文也正是在基于Kerberos协议的基础上结合Hadoop集群本身的特点,开展了相关身份认证安全研究,首先,分析并指出了原有Kerberos协议中对称密钥机制在Hadoop集群环境下可能会遇到的时钟同步、KDC安全、字典攻击以及抵赖机制等相关安全问题;其次,针对相关问题提出基于公钥加密体制的Kerberos协议改进策略;最后通过相关分析验证了改进协议在解决上述问题的可行性,当然Hadoop面临的是一系列的安全问题,认证只是其中的保证集群安全的起始部分,还包括访问控制、数据存储安全等安全问题,这些问题也将是后续需要研究并解决的问题。
关键词:云计算;Had00p Distributed File system;身份认证;Kerberos;公钥加密
DoI:10.15938/j.jhust.2016.04.003
中图分类号:TP99
文献标志码:A
文章编号:1007-2683(2016)04-0013-06
0引言
Hadoop是Apache基金会旗下一款具备PT级数据存储与分析能力的分布式系统基础架构,作为云计算领域内海量数据的存储与计算的核心技术取得了广泛的应用,该架构主要由分布式文件系统HDFS(Hadoop Distributed File System)与分布式编程模型Mapreduce两个核心组件组成.HDFS是Google的分布式文件系统GFS(Goode File Sys-tern)的开源实现,为Hadoop平台提供基础的分布式文件存储服务,是整个Hadoop得以运行的基础。在身份认证安全方面,HDFS是基于Kerberos协议实现的.但鉴于对称密钥机制下的Kerberos其安全性面临着很大的不足,很多学者也做了相关的研究.张晓提出了一种基于PKI改进的Kerberos协议,该方案通过使用公钥加密机制代替对称密钥机制使得认证协议安全性达到了公钥级别,但在时间效率上却有着不足,邵叶秦等提出了一种公钥加密机制与私钥加密机制相结合的Kerberos协议,在安全性和时间上均有所提高,但由于对称密钥是由密钥分发中心KDC生成,在对称密钥交换上存在安全漏洞.李延改等提出了一种基于数字证书CA的HDFS环境下的认证及安全传输机制,该改进为通信双方提供证明自身身份的数字证书,实现了通信双方的身份认证,但管理过于繁多的数字证书增加了使用者的开销。
本文将在综合分析HDFS现存Kerberos认证机制的基础上,充分利用公钥加密机制与对称密钥加密机制各自特点,将对称密钥的生成管理方由集中式的KDC改变为分布式的集群服务申请者,以期最终给出一套完善的HDFS环境下的Kerberos协议身份认证机制。
1.Kerberos应用分析
Hadoop在设计之初,默认整个集群是在一个可信任的域中,并没有为集群引入各实体间的认证机制,随着Hadoop应用的不断普及Hadoop设计者也逐渐意识到集群存在的安全性问题,针对Hadoop的安全缺陷,自Hadoopl.0.0版本后,为其引入了基于Kerberos协议的第三方安全身份认证机制,用于保障各通信节点间的可信性。
1.1基于Kerberos协议下的HDFS认证机制
Kerberos最初是由MIT研发的,当前最新的协议版本为Kerberos V5,该协议可为处于不安全的网络环境下通信的双方提供可信认的身份认证机制,该协议在网络安全与身份认证领域有着广泛的应用,HDFS下Kerberos的基本原理:在Hadoop集群中建立一个集中保存客户端、DataNode以及NameNode的用户名和密码的认证中心KDC,进行用户的身份认证和授权工作,KDC在是由两个逻辑上相互独立的认证服务器AS和票据发放服务器TGS组成的,Hadoop集群下的任何需要申请服务的用户在申请服务时,首先通过与AS服务器通信获得票据授权票据TGT,然后利用TGT与TGS服务器通信获取用于服务的票据Ticket,最后用户利用票据Ticket与所需服务提供节点通信取得服务。
HDFS下Kerberos协议具体实现过程如图4所示
1.2 HDFS下Kerberos协议安全性分析
通过为HDFS引入Kerberos协议,解决了原有HDFS集群所遇到的如下安全问题
1)非法用户利用Hadoop集群的动态扩展特性,伪装成DataNode节点服务器加入到HDFS集群内,接收NameNode分派的文件数据信息;
2)非法用户通过更改网络发送数据包伪装成授权用户的身份,向NameNode与DataNode请求服务资源;
3)在非安全的网络环境中,非法用户可以窃听数据报文的交换过程,并可使用重放攻击干扰Nam—eNode、DataNode服务器的正常运行.
虽然Kerberos協议可以为HDFS提供身份认证机制,但是HDFS下的Kerberos身份认证机制还存在局限性,面临着如下安全问题:
1)HDFS集群时间同步性问题.由于在整个Kerberos协议身份认证过程中会通过借助对比时间戳来判断用户身份真实性,这就要求整个HDFS集群内部网络具备很高的时钟同步能力,而这对于构建于廉价商用机群之上的HDFS集群来说难于实现的.即使HDFS集群所处的Kerberos服务域内可做到高度的时钟同步,使得接收方可以在规定的可信时间内(通常设置t=5min)得到新消息,但只要恶意用户事先准备好伪造的消息,一旦截获服务票据并马上发出,Kerberos机制是难以在这5分钟内检测出恶意用户发起的攻击。 2)KDC的安全性及“瓶颈”问题.KDC作为Kerberos认证协议中的一个重要组成部分,用于存储和分发HDFS集群客户端、NameNode和DataNode的密钥等相关信息.一方面,集中式的密钥存储简化了整个系统的管理复杂难度,然而一旦KDC被恶意用户攻破,则将会对整个HDFS集群安全造成灾难性的打击;另一方面为应对非法用户恶意收集票据用于重放攻击,KDC需要为密钥设定一个安全的有效期时限,这样的设计使得HDFS集群认证申请方为保证自身持有密钥的有效性需要周期性的向KDC申请票据.鉴于HDFS自身集群规模庞大性以及申请方需要周期性的向中心服务器KDC提出申请,这将导致服务器服务能力下降和处理能力减弱,产生性能瓶颈。
3)字典攻击问题.在Kerberos认证过程中,AS服务器并不是直接验证用户身份,而是通过返回用客户端密钥Kc加密的TGT信息,只有知道Kc的用户才可解密得到TGT,进而进行后续的认证步骤.然而目前即使引入了认证技术及数据加密技术的强健安全网络(RSN)在通信安全方面依然存在相关的安全隐患,汪定。等指出即使在强健安全网络(RSN)环境下,基于中间人MitM的信息篡改、信息窃取等攻击方式依然具有严重威胁性,并提出中一个关于MitM攻击的框架和有效攻击条件,给出该框架下一个有效攻击实例,因此若恶意用户可在HDFS集群通信线路上收集足够数量的TGT信息,从而可以通过离线的口令分析技术,进行针对性的密钥破解.针对恶意用户的离线分析状况,基于对称加密体制目前还无法给出有效性防止方案.
4)抵赖机制问题.有效的不可抵赖机制是现如今通信网络双方所極为推崇的重要安全技术.当前的不可抵赖机制实现是基于数字签名技术,而数字签名的实现则依赖于散列函数与公钥加密算法.由于Kerberos协议采用的是对称加密机制而非公私钥机制,所以也就不能为信息的发送方提供数字签名技术,不能实现HDFS集群认证过程中发送信息不可抵赖机制。
为消除HDFS下Kerberos身份认证机制的这些局限性问题,本文将会在Hadoop集群现有的认证机制的的框架内就Kerberos协议做出适当的修改,通过为Kerberos协议引入非对称加密体质,充分利用现有非对称密钥机制的特点解决上述Hadoop集群身份认证问题。
2.Kerberos改进及实现
在保证现有Kerberos认证框架前提下,本方案对Kerberos协议认证内容做了改进性修正(具体流程参见图5).首先,服务申请方在生成请求信息时摒弃了原有协议中采取的对称加密方式,而是采用公钥加密技术对传输信息进行安全级别更高的公钥加密,并且加密信息中包含本次连接所使用的对称加密密钥;其次,在HDFS集群用户认证信息发送的端与端之间引入数字签名技术,对所需传输内容采取先签名后传输策略;最后,鉴于公钥加密技术的引进,修改后协议在认证信息方面只保留了基本的信息字段,舍弃了不再需要的IP地址等信息,做到了HDFS集群内端与端之间传递认证信息精简化。
改进后协议认证流程如下:
2.1 Client请求NameNode
认证过程中用到符号说明如下:
Client:服务的请求方
KDC:Key Distribute Center密钥分发中心
2.2 Client请求DataNode服务过程
该部分认证同Client请求NameNode服务过程类似,限于篇幅不再累述.
3.结果分析
下面将分别从安全性与时间效率两个方面对改进后的Kerberos协议在HDFS下身份认证过程进行分析.
3.1安全性分析
通过对传输信息的数据签名确保了发送者的身份的可识别,通过对传输数据的公钥加密确保了只有私钥持有者可以解密得到正确的数据,这一改进解决了原有认证机制的安全隐患,具体安全性分析如下:
1)相比较于改进前,改进后的认证协议对集群内时间同步性要求降低.由于只有拥有私钥的一方才可以解密使用公钥加密的数据并且公钥加密体制破解难度大,使得时间戳在认证协议中变为辅助判断票据有效性和防止重放攻击的手段.
2)改进后的Kerberos协议引入公钥加密体制,用户各自本地化存储私钥,公钥信息在集群内获得,使得KDC服务器无需实现集中存储包含所有用户密码机密敏感信息.通过此改进将极大降低了KDC服务可能面临的安全隐患,即使KDC服务器被攻破,攻击者也无法获取用户的私钥信息,无法冒充用户身份取得服务。
3)通过引入公钥加密,使得改进后认证过程杜绝了字典攻击的发生。
4)在用户、KDC服务器、NameNode和DataNode的认证信息发送、接收过程中都使用了公私钥加密及私钥签名,基于私钥的私有性,使得信息发送方的身份真实性得到了有效的证明,防止了抵赖.
3.2效率分析
实验仿真
测试系统中使用一台服务器作为独立密钥分发中心KDC,一台服务器作为NameNode节点,三台服务器为DataNode节点,三台服务器作为Client节点.测试系统使用Hadoop-1.0.O版本搭建,各个组成部分所使用的软硬件配置如表1:
为最大限度的减少机器本身性能对实验数据的影响,现将改进前后的两套系统分别部署到相应的机器上,依次验证两套系统在不同请求规模级别下用户认证过程所需的平均时间值.现在分别对以下几种规模性请求情况进行测试:3个认证请求、15个认证请求、30个认证请求、45个认证请求、60个认证请求、90个认证请求、105个认证请求、120个认证请求、135个认证请求。
注:为使实验接近真实规模,在有限的三台Cli.ent上采用了改变请求信息中IDc字段值的办法模拟不同的申请者,已达到规模性认证请求情况.
下图是认证协议改进前后两种情况所对应的平均时间测试的对比结果:
通过图6关于认证协议改进前与改进后的对比实验结果可以得出:在该实验环境下,随着请求次数增加二者均呈近似线性增长趋势,但改进后增长幅度要小于改进前.在请求低于120以下时改进后时间需求要大于改进前,但随着请求高于120次改进后时间效率更占优势.总之,改进后更适用于大规模请求,更适合Hadoop集群环境下的身份认证请求过程。
4.结论
Hadoop经历了从无安全机制到引入Kerberos身份认证机制的过程,本文也正是在基于Kerberos协议的基础上结合Hadoop集群本身的特点,开展了相关身份认证安全研究,首先,分析并指出了原有Kerberos协议中对称密钥机制在Hadoop集群环境下可能会遇到的时钟同步、KDC安全、字典攻击以及抵赖机制等相关安全问题;其次,针对相关问题提出基于公钥加密体制的Kerberos协议改进策略;最后通过相关分析验证了改进协议在解决上述问题的可行性,当然Hadoop面临的是一系列的安全问题,认证只是其中的保证集群安全的起始部分,还包括访问控制、数据存储安全等安全问题,这些问题也将是后续需要研究并解决的问题。