一种基于公钥算法和SSL协议的多集群Hadoop系统安全优化方法

文档序号:8415631阅读:441来源:国知局
一种基于公钥算法和SSL协议的多集群Hadoop系统安全优化方法
【技术领域】
[0001]本发明涉及一种优化方法,具体涉及一种基于公钥算法和SSL协议的多集群Hadoop系统安全优化方法。
【背景技术】
[0002]Hadoop系统是大数据处理的一个有效工具。早期的Hadoop系统主要运行于单个集群环境,后来的版本开始支持运行于多个集群环境。多集群Hadoop系统是一种跨越多个集群环境运行的扩展版本,如图1所示。JobTracker是MapReduce框架的主服务器,负责管理MapReduce框架执行作业的控制流、监控所有执行中任务的健康状态、检测并重新调度失效的任务直到一个作业的所有任务完成。JobTracker从它的用户侧接收新的作业,然后把作业划分为更小的任务并发送给TaskTracker。TaskTracker是JobTracker的动力引擎。每个TaskTracker都有一个特定的计数槽,来表示其被分配的任务数。TaskTracker通过一个心跳消息定期向JobTracker报告健康状态,这个心跳消息包含所有执行中任务的当前进度和TaskTracker的可用数目。作为回应,JobTracker发送新的指令到TaskTracker,这些指令包括新分配的任务和需执行的任务。TaskTracker的职责是监控执行中任务的健康状态、管理自己的日志文件、检测失效的任务并向JobTracker报告相应信息。
[0003]总体而言,多集群Hadoop系统维持了早期Hadoop系统的主节点/从节点架构,很好地实现了 MapReduce框架。其中,主节点是多集群Hadoop系统架构的中心实体,主要负责管理所有可用文件的元数据和接收用户提交的作业,将作业划分为更小的多个任务,并最终分配任务到从节点,而从节点主要负责执行主节点所分配的任务。
[0004]在安全防护机制方面,单集群Hadoop系统原有的用户身份认证和作业提交机制主要是为运行于单个集群环境设计的,没有考虑到运行于多个集群环境的情况。这些机制要求每个用户与每个集群之间建立一个单独连接,因此并不适合诸如网格这样包含多个集群的大规模分布式环境。此外,当将单集群Hadoop系统运行于多个集群环境时,其安全防护机制还暴露出了其它许多不足之处,包括众多从节点的用户重复登录和身份认证、系统资源的滥用和误用、计算节点难以动态调整、网络攻击防护不力等问题。例如,在单集群Hadoop系统的安全机制中,要求一个用户必须登录所有集群一次以完成身份认证,才能访问所有集群的资源。这对用户来说,是一种繁琐乏味和降低效率的事情。因此,需要有一种更为通用的整体解决方案来弥补单集群Hadoop系统安全机制的不足并减少用户的操作负担。

【发明内容】

[0005]为了克服上述现有技术的不足,本发明提供一种基于公钥算法和SSL协议的多集群Hadoop系统安全优化方法,能够有效地实现跨越多个集群环境运行的Hadoop系统的用户身份认证和网络攻击防护,弥补了单集群Hadoop系统原有安全机制运行于多个集群环境时的不足之处,与单集群Hadoop系统原有安全防护机制共同构成了多集群Hadoop系统的完整安全防护。
[0006]为了实现上述发明目的,本发明采取如下技术方案:
[0007]本发明提供一种基于公钥算法和SSL协议的多集群Hadoop系统安全优化方法,所述方法包括以下步骤:
[0008]步骤1:用户登录主节点时对用户进行身份信息认证;
[0009]步骤2:主节点向CA服务器申请并获得代理证书;
[0010]步骤3:主节点创建从节点列表,并确定主节点身份信息;
[0011]步骤4:主节点与从节点之间进行双向身份认证;
[0012]步骤5:多集群Hadoop系统执行用户提交的作业;
[0013]步骤6:终止用户提交的作业。
[0014]所述步骤I具体包括以下步骤:
[0015]步骤1-1:用户向多集群Hadoop系统提交作业时,输入用户身份信息{Username,Password}单点登录到主节点;
[0016]步骤1-2:多集群Hadoop系统收到用户身份信息{Username,Password}后,主节点搜索自身的用户身份信息库,检查该用户是否存在;如果用户名Username和口令Password正确,并且用户有权访问多集群Hadoop系统的资源,贝U表明用户通过主节点的身份信息认证,进入到步骤1-3 ;否则,表明用户未通过主节点的身份信息认证,主节点将向用户发送错误信息作为反馈;
[0017]步骤1-3:用户通过主节点的身份认证后,提交作业到多集群Hadoop系统,主节点接收用户提交作业,进行初始化并为用户创建用户实例;然后通知CA服务器为该用户实例颁发代理证书。
[0018]所述步骤2具体包括以下步骤:
[0019]步骤2-1:利用SSL协议完成主节点和CA服务器双向身份认证,建立经过加密的安全连接;
[0020]步骤2-2:主节点随机生成主节点密钥对{MN_Pub,MN_Prv},主节点保留主节点私钥MN_Prv,并将主节点公钥MN_Pub发送给CA服务器,向CA服务器发送为用户实例申请代理证书的请求;
[0021]步骤2-3:CA服务器收到主节点发送的主节点公钥MN_Pub后,生成随机信息CA_Rand,并为主节点公钥MN_Pub设定存活周期'Ck服务器使用数字签名为主节点的当前请求颁发代理证书,并发送给主节点;
[0022]步骤2-4:主节点收到包含有随机信息CA_Rand的代理证书后,断开与CA服务器的SSL连接。
[0023]所述代理证书包括代理证书的存活周期、CA服务器的身份ID、随机信息CA_Rand、主节点公钥MN_Pub及MN_Pub的存活周期。
[0024]所述步骤3包括以下步骤:
[0025]步骤3-1:主节点与从节点之间采用SSL协议建立安全连接;
[0026]步骤3-2:主节点创建用户实例的用户会话U_Sess1n,有:
[0027]U_Sess1n = MD5(Username+CA_Rand)
[0028]用户实例的用户会话U_SeSS1n与主节点公钥MN_Pub具有相同的存活周期,均由CA服务器指定,并由代理证书签字;
[0029]步骤3-3:根据用户对从节点的访问权限,主节点为用户实例创建从节点列表;
[0030]步骤3-4:利用主节点私钥MN_Prv对随机信息CA_Rand和用户实例的用户会话U_Sess1n分别进行加密,得到主节点私钥加密的随机信息MN_Rand和主节点私钥加密的用户会话 MN_U_Sess1n,有:
[0031]MN_Rand = PBA.encrypt (CA_Rand, MN_Prv)
[0032]MN_U_Sess1n = PBA.encrypt (U_Sess1n, MN_Prv)
[0033]于是,得到包括代理证书、主节点私钥加密的随机信息MN_Rand和主节点私钥加密的用户会话MN_U_SeSS1n的主节点身份信息。
[0034]所述步骤4中,主节点与从节点之间进行双向身份认证,包括以下步骤:
[0035]步骤4-1:第一次握手,从节点对主节点进行身份认证;
[0036]步骤4-2:第二次握手,主节点对从节点进行身份认证;
[0037]步骤4-3:第三次握手,主节点发送确认信息给从节点。
[0038]所述步骤4-1包括以下步骤:
[0039]步骤4-1-1:主节点发送主节点身份信息到从节点,从节点获得封装在代理证书中的CA服务器的身份ID,并检查CA服务器的身份ID是否正确;如正确,进入步骤4-1-2,否则,表明主节点未通过从节点的身份认证;
[0040]步骤4-1-2:从节点从代理证书中获得主节点公钥MN_Pub,并利用主节点公钥MN_Rand对主节点私钥加密的随机信息MN_Rand进行解密,得到经过主节点私钥加密并通过主节点公钥解密的随机信息CA_RancT,有:
[0041]CA_Rand' = PBA.decrypt (MN_Rand, MN_Pub)
[0042]经过主节点私钥加密并通过主节点公钥解密的随机信息CA_Rand'和封装在代理证书中的随机信息CA_Rand进行比较,并检查代理证书的存活周期和MN_Pub的存活周期;如果代理证书的存活周期和MN_Pub的存活周期检查均通过,表明主节点通过从节点的身份认证,进入步骤4-1-3,如果代理证书的存活周期和MN_Pub的存活周期检查任一未通过,表明主节点未通过从节点的身份认证,从节点反馈拒绝消息给主节点;
[0043]步骤4-1-3:从节点将发送表明主节点通过身份认证的确认消息给主节点,然后利用主节点公钥MN_Pub对主节点私钥加密的用户会话MN_U_SeSS1n进行解密,获取经过主节点私钥加密并通过主节点公钥解密的用户会SLSess1n',有:
[0044]U_Sess1n/ = PBA.decrypt (MN_U_Sess1n, MN_Pub)
[0045]经过主节点私钥加密并通过主节点公钥解密的用户会话[Sess1n'、主节点公钥MN_Pub、代理证书、U_Sess1r^的存活周期、MN_Pub的存活周期和代理证书的存活周期均被存储在从节点上,直到收到主节点发来的作业完成消息或左右终止消息,从节点才删除上述信息。
[0046]所述步骤4-2包括以下步骤:
[0047]步骤4-2-1:从节点随机生成从节点密钥对{SN_Pub,SN_Prv},利用从节点私钥SN_Prv对随机信息CA_Rand和用户实例的用户会话[Sess1n分别进行加密,得到从节点私钥加密的随机信息SN_Rand和从节点私钥加密的用户会话SN_U_SeSS1n,有:
[0048]SN_Rand = PBA.encrypt (CA_Rand,SN_Prv)
[0049]SN_U_Sess1n = PBA.encrypt (U_Sess1n, SN_Prv)
[0050]于是得到包括CA服务器的身份ID、从节点公钥SN_Pub和SN_Pub的存活周期的从节点证书,所述从节点证书由CA服务器颁发;
[0051]步骤4-2-2:从节点采用对称加密算法{SCA,SC_Ke
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1