CN104092702A - 一种分布式系统的网络安全验证方法和系统 - Google Patents
一种分布式系统的网络安全验证方法和系统 Download PDFInfo
- Publication number
- CN104092702A CN104092702A CN201410350382.0A CN201410350382A CN104092702A CN 104092702 A CN104092702 A CN 104092702A CN 201410350382 A CN201410350382 A CN 201410350382A CN 104092702 A CN104092702 A CN 104092702A
- Authority
- CN
- China
- Prior art keywords
- network security
- ssk
- lsk
- security certification
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出一种分布式系统的网络安全验证方法和系统。方法包括:将密钥分发中心(KDC)和服务票证许可服务组件(KDC-TGS)分别集成到各个HBase服务器以形成各个网络安全认证服务器,将Kerberos客户端分别集成到各个HBase客户端以形成各个网络安全认证客户端;网络安全认证客户端向任意的网络安全认证服务器发送验证请求;网络安全认证服务器在验证通过之后,创建登陆会话密钥(lsk)和服务会话密钥(ssk),向网络安全认证客户端返回lsk和ssk;并将lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;网络安全认证客户端利用ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
Description
技术领域
本发明属于分布式系统技术领域,特别是一种分布式系统的网络安全验证方法和系统。
背景技术
随着计算机技术和网络技术的飞速发展,互联网(Internet)技术在人们的日常生活、学习和工作中发挥的作用也越来越大。而且,随着移动互联网的发展,互联网也在向移动化发展。在当今的信息时代中,各种信息设备应运而生:有用于话音传输的固定电话、移动终端;有用于信息资源共享、处理的服务器和个人电脑;有用于视频数据显示的各种电视机等等。这些设备都是在特定领域内为解决实际需求而产生的。随着电子消费、计算机、通信(3C)融合的到来,人们越来越多地将注意力放到了对各个不同领域的信息设备进行综合利用的研究上,以充分利用现有资源设备来为人们更好的服务。
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。
在目前的HBase等分布式系统的安全网络验证中,具有不易维护和不易扩展等问题,而且kerberos协议中具有单点问题。
发明内容
本发明实施方式提出一种分布式系统的网络安全验证方法,以提高维护和扩展程度。
本发明实施方式提出一种分布式系统的网络安全验证系统,以提高维护和扩展程度。
本发明实施方式的技术方案如下:
一种分布式系统的网络安全验证方法,该方法包括:
将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成各个网络安全认证服务器,将Kerberos客户端分别集成到各个HBase客户端以形成各个网络安全认证客户端;
网络安全认证客户端向任意的网络安全认证服务器发送验证请求;网络安全认证服务器在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;
网络安全认证客户端利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
所述验证请求包括:客户端用户名、利用长期密码UK加密的认证符T1以及请求服务操作信息Sinfo;
网络安全认证服务端根据所述客户端用户名查询得到长期密码UK,利用所述长期密码UK对利用长期密码UK加密的认证符T1进行解密以得到认证符T1,并当验证认证符T1有效时创建登陆会话密钥lsk和服务会话密钥ssk,将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心,并向网络安全认证客户端发送使用长期密码UK加密的lsk、使用lsk加密的ssk以及使用ssk加密的认证符T1;
网络安全认证客户端利用长期密码UK解密使用长期密码UK加密的lsk,以得到lsk;利用lsk对使用lsk加密的ssk进行解密以得到ssk;利用ssk对使用ssk加密的认证符T1进行解密以得到认证符T1,将解密得到的认证符T1与发送验证请求中的认证符T1进行对比,当验证通过时确定通过安全网络认证,并且缓存所述lsk和所述ssk。
所述数据中心为常驻内存表、关系数据库或分布式缓存。
该方法进一步包括:当ssk有效时间到达后,数据中心清除所保存的ssk;
网络安全认证客户端利用所述lsk向任意的网络安全认证服务器更新ssk。
该方法进一步包括:当lsk有效时间到达后,数据中心清除所保存的lsk;
网络安全认证客户端利用所述长期密码UK向任意的网络安全认证服务器更新ssk。
一种分布式系统的网络安全验证系统,该网络安全验证系统包括:将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成的各个网络安全认证服务器;以及将Kerberos客户端分别集成到各个HBase客户端以形成的各个网络安全认证客户端;
网络安全认证客户端,用于向任意的网络安全认证服务器发送验证请求;
网络安全认证服务器,用于在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;
网络安全认证客户端,还用于利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器,用于根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
所述验证请求包括:客户端用户名、利用长期密码UK加密的认证符T1以及请求服务操作信息Sinfo;
网络安全认证服务端,用于根据所述用户名查询得到长期密码UK,利用所述长期密码UK对利用长期密码UK加密的认证符T1进行解密以得到认证符T1,并当验证认证符T1有效时创建登陆会话密钥lsk和服务会话密钥ssk,将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心,并向网络安全认证客户端发送使用长期密码UK加密的lsk、使用lsk加密的ssk以及使用ssk加密的认证符T1;
网络安全认证客户端,用于利用长期密码UK解密使用长期密码UK加密的lsk,以得到lsk;利用lsk对使用lsk加密的ssk进行解密以得到ssk;利用ssk对使用ssk加密的认证符T1进行解密以得到认证符T1,将解密得到的认证符T1与发送验证请求中的认证符T1进行对比,当验证通过时确定通过安全网络认证,并且缓存所述lsk和所述ssk。
所述数据中心为常驻内存表、关系数据库或分布式缓存。
当ssk有效时间到达后,数据中心清除所保存的ssk;网络安全认证客户端,进一步用于利用所述lsk向任意的网络安全认证服务器更新ssk。
当lsk有效时间到达后,数据中心清除所保存的lsk;网络安全认证客户端,进一步用于利用所述长期密码UK向任意的网络安全认证服务器更新ssk。
从上述技术方案可以看出,本发明的实施方式中,将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成各个网络安全认证服务器,将Kerberos客户端分别集成到各个HBase客户端以形成各个网络安全认证客户端;网络安全认证客户端向任意的网络安全认证服务器发送验证请求;网络安全认证服务器在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;网络安全认证客户端利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
本发明具有下列优点:
(1)、有两个会话密钥的优势:
假如ssk过期时间为5分钟,当服务端发现ssk失效,则告知用户需要重新获取ssk。用户此时请求新ssk,此时请求携带的内容仍然是E(lsk,Tn)和用户名等信息。如果没有lsk,则需要携带的内容变为:E(UK,Tn)和用户名,以及服务端信息,以获取得到新的ssk。如果有lsk且过期时间是10个小时,即10个小时后lsk才会失效,才会使用自己的用户密码去获取新的会话密钥。如果没有lsk,则如ssk失效时间为5分钟,则每5分钟就会使用自己的长期密钥UK去请求新的会话密钥。有个原则为:使用长期密钥加密的数据,尽量不要在网络上传输。因此,增加了lsk,则登陆会话密钥失效后才会使用UK加密的数据去请求新的会话密钥。这样就减少了使用长期密钥加密的数据在网络上传输的次数。
(2)、防窃听、防重演(Replay Attac)
防窃听:因为服务会话密钥ssk的有效时间比较短,如果你窃听到用户发出的数据,即使你将密钥解密出来,此时该密钥也过期了。防重演:因为每次访问使用的ssk服务会话密钥加密的认证符的内容包含有时间戳,如果重演,时间戳是无效的。
(3)、稳定性和易扩展维护
稳定性:网络安全验证的瓶颈在于HBase表的服务的单点性,因为数据中心的表存储在一张HBase表中,该表被一个RegionServer服务,如果该RegionServer宕机后,服务将被中段,但是该region可以被重新分配到另一台RegionServer上进行服务,并且,RegionServer宕机的几率是很小的,因为HBase的ROOT表也是服务于一个RegionServer上,可以放心HBase的稳定性。
易扩展维护:当添加新的HBase服务器时,和正常的扩展一样,无需多余的操作。
附图说明
图1为Kerberos的认证原理流程图。
图2为根据本发明分布式系统的网络安全验证方法流程图。
图3为根据本发明分布式系统的网络安全验证系统结构图。
图4为根据本发明客户端与服务端的安全网络验证交互示意图。
图5为根据本发明更新ssl示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
本发明首先基于Kerberos协议作了修改,将其单点的服务方式改为分布式的服务方式,然后使用数据中心(比如HBase表)来管理会话密钥等信息,从而发明了一套关于分布式系统(比如HBase系统)的网络安全验证方法。该发明能满足分布式系统对网络安全验证的高安全,高可靠,易扩展和维护,且高稳定性的高要求。
首先,对Kerberos协议进行说明。
在kerberos协议中,有几个角色分别是:
KDC:key distribute center,密钥分发中心,向用户提供身份认证,并为其分发TGT:服务许可票证和登录会话密钥(取名:lsk)。
KDC-TGS:KDC-ticket granting service,服务票证许可服务组件,向用户分发ST服务票证和服务会话密钥(ssk)。KDC和KDC-TGS可以在一个主机上,它们共享一个数据中心(可以是数据库或者缓存池),该数据中心存储了所有用户的长期密码(UK)以及服务(SERVER)的长期密码(SK),并且KDC自己的长期密码(KK)也放在数据中心。
SERVER:向用户提供具体的服务的服务器,需要预先在KDC中注册,使得KDC知道自己的服务,以及自己的长期密码(KK)。
CLIENT:客户端,也需要预先在KDC中注册。
kerberos中的密钥和票证区别如下:
密钥分为长期密钥和短期会话密钥,长期密钥一般是很长时间段有效的,比如用户的密码可能就从来不会更改。短期会话密钥用以在用户和服务器(包括KDC-TGS和SERVER)之间交互的密钥,这种密钥当超过一个时间就会失效。其中:
用户密码:UK,长期有效密钥。
KDC的密钥:KK,KDC和KDC-TGS共享的长期密钥。
SERVER的密钥:SK,SERVER的长期密钥。
登陆会话密钥:lsk,短期密钥,由KDC生成,并分发给用户,用户以此密钥与TGS交互。
服务会话密钥:ssk,短期密钥,由TGS生成,并响应给用户,用户以此密钥与SERVER交互。
TGT:服务许可票证,包含lsk和用户信息,由KDC创建。此票证相当于到TGS的门票,TGS从门票中可以获取到lsk,然后认证用户。
ST:服务票证,包含ssk和用户信息,有TGS创建。此票证相当于到SERVER的门票。SERVER从门票中可以获取ssk,以此认证用户。
图1为Kerberos的认证原理流程图。
如图1所示:
第一步:客户端(Client)向KDC请求身份认证,需要向KDC提供三个信息:
A、用户名:name;B、请求TGT所需要的服务信息:Sinfo;C、用户密码加密的认证符(一般可为时间戳):E(UK,T1)。E(UK,T1)表示用用户的密码UK将认证符即时间戳T1加密。
第二步:KDC先从数据中心中根据client传过来的name查找出client的UK,然后用UK解密加密的T1(D(UK,T1)),如果时间戳是解密有效的,则身份认证通过,证明请求的用户没有被冒充。然后KDC根据用户信息等创建一个登陆会话密钥lsk,并且创建一个TGT,TGT的内容包含了lsk和用户信息。
第三步:身份认证通过后,KDC响应client,响应内容如下:A、E(UK,lsk):经过用户密码UK加密的登陆会话密钥lsk;B、E(KK,TGT):经KDC的密码KK加密的TGT。
第四步:客户端用户使用自己的长期密码UK解密获取得到lsk:即D(UK,lsk)。并将lsk缓存在本地,同时将KDC传过来的用KK加密的TGT也缓存在本地。
第五步:用户向KDC-TGS请求服务票证ST和服务会话密钥ssk。请求携带的内容如下:A、E(lsk,T2):使用登陆会话密钥加密的T2;B、E(KK,TGT):缓存中的使用KDC的密码KK加密的TGT;C、Sinfo:用户想访问的服务和服务器的名称等。
第六步:TGS先用与KDC共享的KDC密码KK解密TGT,然后从中获取得到lsk并缓存之,再用lsk解密T2,验证时间戳是否有效,验证通过则根据Sinfo信息,查看用户是否有访问SERVER的权限,如果有,则下一步。
第七步:根据用户信息等生成一个服务会话密钥:ssk,以及生成一个服务票证ST(C(ssk,ST)即表示生成ssk和ST),ST中包含了ssk和用户信息等。然后根据SInfo找到SERVER的长效密钥SK。
第八步:使用lsk加密ssk:E(lsk,ssk),使用SK加密ST:E(SK,ST),然后将加密后的ssk和ST响应给client。
第九步:用户使用lsk解密获取得到ssk:D(lsk,ssk),并将ssk缓存在本地。并且将使用SK加密的ST也缓存在本地。
第十步:然后用户向真正的服务SERVER请求,携带内容如下:A、E(ssk,T3):使用服务会话密钥加密的认证符T3;B、E(SK,ST):使用服务端的长期密码SK加密的ST,此数据时缓存在本地的,用户不知道SK。
第十一步:服务端先使用SK解密获取的到ST,然后从ST中获取得到ssk,然后用ssk解密获取得到T3,验证时间戳是否有效,验证通过后缓存ssk,响应client。
第十二步:用ssk加密T4(也可以直接是T3),请求用户验证。
第十三步:用户使用ssk解密T4,验证时间戳是否有效。如果有效,证明服务端没有被冒充,因为它能解密得出ST,然后获取到ssk,说明它是知道SK的。
在本发明中,将KDC和KDC-TGS,即身份认证和服务认证,实现为一种可被调用的jar包。而且,修改HBase的客户端和服务端,在网络发送和接收层,加入认证申请和响应的代码,然后在每个HBase的服务器上安装修改后的HBase服务。HBase的所有服务器视为一个服务SERVER。所有的HBaseSERVER共享一张HBase表,表中存储的是用户名称和密钥对,以及登陆会话密钥lsk和服务会话秘钥ssk,定时会话密钥失效,并通过事务操作更新会话密钥。
客户端用户使用自己的长期密钥UK和用户名,发送到任意一个HBase集群的服务器上都可以作安全权限验证,验证通过后的短期会话密钥存储在HBase表中。然后用户就可以使用服务会话密钥进行服务的请求。服务会话密钥过期后会从表中清除,然后用户再使用自己的登陆会话密钥申请新的服务会话密钥。服务会话密钥的过期时间远小于登陆会话密钥。如果新申请服务会话密钥时,登陆会话密钥失效,这时用户才使用自己的长期密钥UK去申请新的登陆会话密钥和服务会话密钥。
图2为根据本发明分布式系统的网络安全验证方法流程图。
如图2所示,该方法包括:
步骤201:将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成各个网络安全认证服务器,将Kerberos客户端分别集成到各个HBase客户端以形成各个网络安全认证客户端。
步骤202:网络安全认证客户端向任意的网络安全认证服务器发送验证请求;网络安全认证服务器在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心。
步骤203:网络安全认证客户端利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
在一个实施方式中:
所述验证请求包括:客户端用户名、利用长期密码UK加密的认证符T1以及请求服务操作信息Sinfo;
网络安全认证服务端根据所述客户端用户名查询得到长期密码UK,利用所述长期密码UK对利用长期密码UK加密的认证符T1进行解密以得到认证符T1,并当验证认证符T1有效时创建登陆会话密钥lsk和服务会话密钥ssk,将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心,并向网络安全认证客户端发送使用长期密码UK加密的lsk、使用lsk加密的ssk以及使用ssk加密的认证符T1;
网络安全认证客户端利用长期密码UK解密使用长期密码UK加密的lsk,以得到lsk;利用lsk对使用lsk加密的ssk进行解密以得到ssk;利用ssk对使用ssk加密的认证符T1进行解密以得到认证符T1,将解密得到的认证符T1与发送验证请求中的认证符T1进行对比,当验证通过时确定通过安全网络认证,并且缓存所述lsk和所述ssk。
在一个实施方式中:
所述数据中心为常驻内存表、关系数据库或分布式缓存。
在一个实施方式中:
该方法进一步包括:当ssk有效时间到达后,数据中心清除所保存的ssk;
网络安全认证客户端利用所述lsk向任意的网络安全认证服务器更新ssk。
在一个实施方式中:
该方法进一步包括:当lsk有效时间到达后,数据中心清除所保存的lsk;
网络安全认证客户端利用所述长期密码UK向任意的网络安全认证服务器更新ssk。
基于上述分析,本发明还提出了一种分布式系统的网络安全验证系统。
图3为根据本发明分布式系统的网络安全验证系统结构图。
如图3所示,该网络安全验证系统包括:将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成的各个网络安全认证服务器(比如命名为Kserver);以及将Kerberos客户端分别集成到各个HBase客户端以形成的各个网络安全认证客户端(比如命名为KClient)。其中HBase服务器是HBase系统的服务器,可以是HMaster,也可以是RegionServer。HBase客户端为访问HBase系统的客户端。Kerberos服务是服务端的kerberos服务,包含了KDC服务和KDC-TGS服务,每个HBase服务器都包含有该服务。Kerberos客户端是客户端新加的一层用以请求安全网络验证的kerberos访问客户端。Kerberos客户端可以请求任意的Kerberos服务。
网络安全认证客户端,用于向任意的网络安全认证服务器发送验证请求;
网络安全认证服务器,用于在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;
网络安全认证客户端,还用于利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器,用于根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
对于HBase,数据中心可以是常驻内存的一张表。当然也可以是关系数据库,也可以是分布式缓存。数据中心要满足或者基于数据中心实现以下接口:
写操作是原子性的:一个客户写的时候不能让其他客户端写。
可以定时清除内容:lsk和ssk的定期失效。
checkAndPut事务操作:查询,更改在一个事务中完成。
这里以HBase为例:
HBase的写操作是原子的,对行加锁。可以定时清除类容,通过设定表CF的TTl可以达到效果。HBase支持checkAndPut的原子事务操作。
根据HBase的特性,设计了一张存储密钥对的HBase表。
在一个实施方式中:
所述验证请求包括:客户端用户名、利用长期密码UK加密的认证符T1以及请求服务操作信息Sinfo;
网络安全认证服务端,用于根据所述用户名查询得到长期密码UK,利用所述长期密码UK对利用长期密码UK加密的认证符T1进行解密以得到认证符T1,并当验证认证符T1有效时创建登陆会话密钥lsk和服务会话密钥ssk,将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心,并向网络安全认证客户端发送使用长期密码UK加密的lsk、使用lsk加密的ssk以及使用ssk加密的认证符T1;
网络安全认证客户端,用于利用长期密码UK解密使用长期密码UK加密的lsk,以得到lsk;利用lsk对使用lsk加密的ssk进行解密以得到ssk;利用ssk对使用ssk加密的认证符T1进行解密以得到认证符T1,将解密得到的认证符T1与发送验证请求中的认证符T1进行对比,当验证通过时确定通过安全网络认证,并且缓存所述lsk和所述ssk。
在一个实施方式中:
所述数据中心为常驻内存表、关系数据库或分布式缓存。
在一个实施方式中:
当ssk有效时间到达后,数据中心清除所保存的ssk;网络安全认证客户端,进一步用于利用所述lsk向任意的网络安全认证服务器更新ssk。
在一个实施方式中:
当lsk有效时间到达后,数据中心清除所保存的lsk;网络安全认证客户端,进一步用于利用所述长期密码UK向任意的网络安全认证服务器更新ssk。
在这里,可以将HBase客户端(client)和kerberos客户端(client)统一定义名称为网络安全认证客户端(KClient),意为带有网络安全验证的客户端;将HBase服务器和kerberos服务统一定义为网络安全认证服务端(KServer),意为带有网络安全验证的服务端。
图4为根据本发明客户端与服务端的安全网络验证交互示意图。
如图4所示,包括:
步骤401:请求服务会话密钥:网络安全认证客户端向HBase中的任意一台服务器传送自己的名字、使用自己的长期密码UK加密的认证符T1,以及请求服务的操作信息Sinfo。如果网络安全认证客户端也是多台,且他们共享一个用户名和长期密钥UK,在网络安全认证服务端也可以通过事务操作控制只有一个网络安全认证客户端实例能够进行创建lsk和ssk的操作,如果其他网络安全认证客户端实例发现已经有人创建好了lsk和ssk并存储在了数据中心,则放弃自己新创建的lsk和ssk,返回网络安全认证客户端实例最新的别的客户端实例申请创建的lsk和ssk。
步骤402:网络安全认证服务端根据用户名查询得到用户的长期密码UK,采用对称加解密算法,解密得出认证符T1,并验证是否有效,有效则说明身份验证通过。网络安全认证服务端然后创建好登陆会话密钥lsk,服务会话密钥ssk,并将lsk,ssk存在数据中心,数据中心可以是分布式缓存,数据库,这里可以是hbase表。而且,网络安全认证服务端向网络安全认证客户端发送票证以及密钥:
E(UK,lsk):使用用户的密码加密lsk,客户端从中可以解密得出lsk;
E(lsk,ssk):使用lsk加密的ssk;
E(ssk,T1):使用ssk加密的认证符T1。用以双向验证。T1有效则客户端对服务端的验证通过。
在这里,只选择传输了加密后的lsk和ssk到客户端,就简化了原有的kerberos协议中要传输TGT和ST两项内容。
步骤403:网络安全认证客户端先使用自己的长期密码UK解密E(UK,lsk),,并获取得到lsk,然后用lsk解密得到ssk,然后用ssk解密得到T1,和之前请求时的时间戳对比,验证通过,则完成整个安全网络认证。最后还要将lsk和ssk缓存起来。这之后,网络安全认证客户端就可以用ssk和任意的网络安全认证服务端进行请求交互。
图5为根据本发明更新ssl示意图。
服务会话秘钥ssk是网络安全认证客户端和网络安全认证服务端进行正常请求时,用以加密认证符(时间戳),再带上请求传给网络安全认证服务端。Ssk是存储在数据中心的,网络安全认证服务端每次接收到请求,都先根据网络安全认证客户端的名字去数据中心查找对应的ssk,如果能找到,就用该ssk去解密认证符,然后验证是否有服务权限。然而该ssk是有时效性的,当一定时间过去,数据中心会将所有的ssk清除掉,这样网络安全认证服务端就获取不到ssk,就认为新请求的ssk已经失效,需要网络安全认证客户端去更新获取ssk。
如图5所示,更新ssk过程如下:
步骤501:网络安全认证客户端本地缓存着登录会话密钥lsk,网络安全认证客户端以lsk加密认证符,然后带上加密后的认证符发送更新ssk的请求,请求内容为:E(lsk,T3),更新ssk需要的信息如用户名和服务信息等。
步骤502:网络安全认证服务端根据用户名和服务信息去数据中心获取得到该用户的lsk,然后用lsk解密T3,验证通过,说明是之前通过身份认证的用户。然后为其重新生成ssk,并将ssk存到数据中心,与上述第一次验证一样。这个操作是事务操作,即只要有一个在更新,其余相同用户的客户端实例就不能更新ssk,且只要数据中心中有ssk存在,就不能做更新,而返回数据中心中的ssk值为最新的ssk给客户端实例。最后返回给网络安全认证客户端的数据为:E(lsk,ssk),E(ssk,T3)。其中ssk是新的。
步骤503:网络安全认证客户端接收到E(lsk,ssk),E(ssk,T3),先用缓存的lsk解密出ssk,然后用ssk解密得出T3,验证有效。至此就获取得到新的ssk和新的加密后的ST,然后更新缓存中的ssk。
类似地,登陆会话密钥lsk失效是当ssk失效时,在上图中的第二步时,服务端根据用户信息到数据中心查询对应的lsk,发现lsk已经被清除(清除过程如同ssk)。此时服务端响应客服端lsk失效,告知更新lsk。此时数据中心该用户的lsk和ssk都为空。更新lsk的操作流程其实就是进行一次安全网络验证的过程。
以ssk失效为例子,当某个用户的ssk失效后,该用户的对应记录中的ssk会被清除(HBase的特性,当时间过去TTl后,该列的值会被清除掉),然后用户的某几个客户端同时发现ssk失效,然后同时申请更新ssk,服务端自然也会同时接收到申请更新ssk的请求,然后服务端在创建好ssk后,在往HBase表中写的时候,就调用checkAndPut操作,当发现已经存在新的ssk的值的时候,就不往里面写,并返回对应客户端当前的ssk的值。这样就可以避免多个服务端同时生成新的ssk或者lsk,并往数据中心更新所产生的不一致的问题。并且,当一个服务端已经更新了ssk或者lsk,后面的人发现已经更新后,就不在将自己的更新写入到数据中心。
实际上,可以通过多种形式来具体实施本发明实施方式所提出的分布式系统的网络安全验证方法。
比如,可以遵循一定规范的应用程序接口,将分布式系统的网络安全验证方法编写为安装到个人电脑、移动终端等中的插件程序,也可以将其封装为应用程序以供用户自行下载使用。当编写为插件程序时,可以将其实施为ocx、dll、cab等多种插件形式。也可以通过Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等具体技术来实施本发明实施方式所提出的分布式系统的网络安全验证方法。
可以通过指令或指令集存储的储存方式将本发明实施方式所提出的分布式系统的网络安全验证方法存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡等。
另外,还可以将本发明实施方式所提出的分布式系统的网络安全验证方法应用到基于闪存(Nand flash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡等。
综上所述,在本发明中,将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成各个网络安全认证服务器,将Kerberos客户端分别集成到各个HBase客户端以形成各个网络安全认证客户端;网络安全认证客户端向任意的网络安全认证服务器发送验证请求;网络安全认证服务器在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;网络安全认证客户端利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
本发明具有下列优点:
(1)、有两个会话密钥的优势:
假如ssk过期时间为5分钟,当SERVER发现ssk失效,则告知用户需要重新获取ssk。用户此时请求新ssk,此时请求携带的内容仍然是E(lsk,Tn)和用户名等信息。如果没有lsk,则需要携带的内容变为:E(UK,Tn)和用户名,以及服务端信息,以获取得到新的ssk。如果有lsk且过期时间是10个小时,即10个小时后lsk才会失效,才会使用自己的用户密码去获取新的会话密钥。如果没有lsk,则如ssk失效时间为5分钟,则每5分钟就会使用自己的长期密钥UK去请求新的会话密钥。有个原则为:使用长期密钥加密的数据,尽量不要在网络上传输。因此,增加了lsk,则登陆会话密钥失效后才会使用UK加密的数据去请求新的会话密钥。这样就减少了使用长期密钥加密的数据在网络上传输的次数。
(2)、防窃听、防重演(Replay Attac)
防窃听:因为服务会话密钥ssk的有效时间比较短,如果你窃听到用户发出的数据,即使你将密钥解密出来,此时该密钥也过期了。防重演:因为每次访问使用的ssk服务会话密钥加密的认证符的内容包含有时间戳,如果重演,时间戳是无效的。
(3)、稳定性和易扩展维护
稳定性:该网络安全验证的瓶颈在于HBase表的服务的单点性,因为数据中心的表存储在一张HBase表中,该表被一个RegionServer服务,如果该RegionServer宕机后,服务将被中段,但是该region可以被重新分配到另一台RegionServer上进行服务,并且,RegionServer宕机的几率是很小的,因为HBase的ROOT表也是服务于一个RegionServer上,我们完全可以放心HBase的稳定性。
易扩展维护:当添加新的HBase服务器时,和正常的扩展一样,无需多余的操作。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式系统的网络安全验证方法,其特征在于,该方法包括:
将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成各个网络安全认证服务器,将Kerberos客户端分别集成到各个HBase客户端以形成各个网络安全认证客户端;
网络安全认证客户端向任意的网络安全认证服务器发送验证请求;网络安全认证服务器在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;
网络安全认证客户端利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
2.根据权利要求1所述的网络安全验证方法,其特征在于,所述验证请求包括:客户端用户名、利用长期密码UK加密的认证符T1以及请求服务操作信息Sinfo;
网络安全认证服务端根据所述客户端用户名查询得到长期密码UK,利用所述长期密码UK对利用长期密码UK加密的认证符T1进行解密以得到认证符T1,并当验证认证符T1有效时创建登陆会话密钥lsk和服务会话密钥ssk,将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心,并向网络安全认证客户端发送使用长期密码UK加密的lsk、使用lsk加密的ssk以及使用ssk加密的认证符T1;
网络安全认证客户端利用长期密码UK解密使用长期密码UK加密的lsk,以得到lsk;利用lsk对使用lsk加密的ssk进行解密以得到ssk;利用ssk对使用ssk加密的认证符T1进行解密以得到认证符T1,将解密得到的认证符T1与发送验证请求中的认证符T1进行对比,当验证通过时确定通过安全网络认证,并且缓存所述lsk和所述ssk。
3.根据权利要求1所述的网络安全验证方法,其特征在于,所述数据中心为常驻内存表、关系数据库或分布式缓存。
4.根据权利要求1所述的网络安全验证方法,其特征在于,该方法进一步包括:当ssk有效时间到达后,数据中心清除所保存的ssk;
网络安全认证客户端利用所述lsk向任意的网络安全认证服务器更新ssk。
5.根据权利要求1所述的网络安全验证方法,其特征在于,该方法进一步包括:当lsk有效时间到达后,数据中心清除所保存的lsk;
网络安全认证客户端利用所述长期密码UK向任意的网络安全认证服务器更新ssk。
6.一种分布式系统的网络安全验证系统,其特征在于,该网络安全验证系统包括:将密钥分发中心KDC和服务票证许可服务组件KDC-TGS分别集成到各个HBase服务器以形成的各个网络安全认证服务器;以及将Kerberos客户端分别集成到各个HBase客户端以形成的各个网络安全认证客户端;
网络安全认证客户端,用于向任意的网络安全认证服务器发送验证请求;
网络安全认证服务器,用于在验证通过之后,创建登陆会话密钥lsk和服务会话密钥ssk,向所述网络安全认证客户端返回所述lsk和ssk;并将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心;
网络安全认证客户端,还用于利用所述ssk与任意的网络安全认证服务器进行请求交互,被请求的网络安全认证服务器,用于根据数据中心所存储的ssk对该网络安全认证客户端进行验证。
7.根据权利要求6所述的网络安全验证系统,其特征在于,所述验证请求包括:客户端用户名、利用长期密码UK加密的认证符T1以及请求服务操作信息Sinfo;
网络安全认证服务端,用于根据所述用户名查询得到长期密码UK,利用所述长期密码UK对利用长期密码UK加密的认证符T1进行解密以得到认证符T1,并当验证认证符T1有效时创建登陆会话密钥lsk和服务会话密钥ssk,将所述lsk和ssk存储在各个网络安全认证服务器均可访问的数据中心,并向网络安全认证客户端发送使用长期密码UK加密的lsk、使用lsk加密的ssk以及使用ssk加密的认证符T1;
网络安全认证客户端,用于利用长期密码UK解密使用长期密码UK加密的lsk,以得到lsk;利用lsk对使用lsk加密的ssk进行解密以得到ssk;利用ssk对使用ssk加密的认证符T1进行解密以得到认证符T1,将解密得到的认证符T1与发送验证请求中的认证符T1进行对比,当验证通过时确定通过安全网络认证,并且缓存所述lsk和所述ssk。
8.根据权利要求6所述的网络安全验证系统,其特征在于,所述数据中心为常驻内存表、关系数据库或分布式缓存。
9.根据权利要求6所述的分布式系统的网络安全验证系统,其特征在于,当ssk有效时间到达后,数据中心清除所保存的ssk;网络安全认证客户端,进一步用于利用所述lsk向任意的网络安全认证服务器更新ssk。
10.根据权利要求6所述的网络安全验证系统,其特征在于,当lsk有效时间到达后,数据中心清除所保存的lsk;网络安全认证客户端,进一步用于利用所述长期密码UK向任意的网络安全认证服务器更新ssk。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350382.0A CN104092702B (zh) | 2014-07-22 | 2014-07-22 | 一种分布式系统的网络安全验证方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350382.0A CN104092702B (zh) | 2014-07-22 | 2014-07-22 | 一种分布式系统的网络安全验证方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092702A true CN104092702A (zh) | 2014-10-08 |
CN104092702B CN104092702B (zh) | 2017-05-31 |
Family
ID=51640382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410350382.0A Active CN104092702B (zh) | 2014-07-22 | 2014-07-22 | 一种分布式系统的网络安全验证方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092702B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485159A (zh) * | 2015-08-28 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 网络安全存储方法和装置 |
CN106656514A (zh) * | 2017-03-02 | 2017-05-10 | 北京搜狐新媒体信息技术有限公司 | kerberos认证集群访问方法、SparkStandalone集群及其驱动节点 |
CN106982192A (zh) * | 2016-01-18 | 2017-07-25 | 天津赞普科技股份有限公司 | 用于商业WiFi的可变密码钥匙串认证与通讯加密机制 |
CN109348479A (zh) * | 2018-11-21 | 2019-02-15 | 长沙理工大学 | 电力集抄系统的数据通信方法、装置、设备及系统 |
CN110620750A (zh) * | 2018-06-20 | 2019-12-27 | 宁德师范学院 | 一种分布式系统的网络安全验证方法 |
CN110784441A (zh) * | 2018-07-30 | 2020-02-11 | 闪亮有限责任公司 | 通过网络的针对客户端的认证方法 |
CN112528319A (zh) * | 2020-12-05 | 2021-03-19 | 江苏秉信科技有限公司 | 一种基于多重认证的信息本地安全缓存方法 |
CN114760116A (zh) * | 2022-03-30 | 2022-07-15 | 北京奇艺世纪科技有限公司 | 验证方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188193A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | Single sign on for kerberos authentication |
US20050091171A1 (en) * | 2003-10-28 | 2005-04-28 | Grobman Steven L. | Server pool kerberos authentication scheme |
CN102025748A (zh) * | 2011-01-04 | 2011-04-20 | 深信服网络科技(深圳)有限公司 | 获取Kerberos认证方式的用户名的方法、装置和系统 |
CN103617232A (zh) * | 2013-11-26 | 2014-03-05 | 北京京东尚科信息技术有限公司 | 一种针对HBase表的分页查询方法 |
CN103780618A (zh) * | 2014-01-22 | 2014-05-07 | 西南交通大学 | 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法 |
-
2014
- 2014-07-22 CN CN201410350382.0A patent/CN104092702B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188193A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | Single sign on for kerberos authentication |
US20050091171A1 (en) * | 2003-10-28 | 2005-04-28 | Grobman Steven L. | Server pool kerberos authentication scheme |
CN102025748A (zh) * | 2011-01-04 | 2011-04-20 | 深信服网络科技(深圳)有限公司 | 获取Kerberos认证方式的用户名的方法、装置和系统 |
CN103617232A (zh) * | 2013-11-26 | 2014-03-05 | 北京京东尚科信息技术有限公司 | 一种针对HBase表的分页查询方法 |
CN103780618A (zh) * | 2014-01-22 | 2014-05-07 | 西南交通大学 | 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485159A (zh) * | 2015-08-28 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 网络安全存储方法和装置 |
CN106485159B (zh) * | 2015-08-28 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 网络安全存储方法和装置 |
CN106982192A (zh) * | 2016-01-18 | 2017-07-25 | 天津赞普科技股份有限公司 | 用于商业WiFi的可变密码钥匙串认证与通讯加密机制 |
CN106656514A (zh) * | 2017-03-02 | 2017-05-10 | 北京搜狐新媒体信息技术有限公司 | kerberos认证集群访问方法、SparkStandalone集群及其驱动节点 |
CN106656514B (zh) * | 2017-03-02 | 2019-05-31 | 北京搜狐新媒体信息技术有限公司 | kerberos认证集群访问方法、SparkStandalone集群及其驱动节点 |
CN110620750A (zh) * | 2018-06-20 | 2019-12-27 | 宁德师范学院 | 一种分布式系统的网络安全验证方法 |
CN110784441A (zh) * | 2018-07-30 | 2020-02-11 | 闪亮有限责任公司 | 通过网络的针对客户端的认证方法 |
US11245532B2 (en) | 2018-07-30 | 2022-02-08 | Blink.ing doo | Authentication method for a client over a network |
CN109348479A (zh) * | 2018-11-21 | 2019-02-15 | 长沙理工大学 | 电力集抄系统的数据通信方法、装置、设备及系统 |
CN112528319A (zh) * | 2020-12-05 | 2021-03-19 | 江苏秉信科技有限公司 | 一种基于多重认证的信息本地安全缓存方法 |
CN114760116A (zh) * | 2022-03-30 | 2022-07-15 | 北京奇艺世纪科技有限公司 | 验证方法、装置、电子设备及存储介质 |
CN114760116B (zh) * | 2022-03-30 | 2024-04-12 | 北京奇艺世纪科技有限公司 | 验证方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104092702B (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111343001B (zh) | 一种基于区块链的社交数据共享系统 | |
CN104092702A (zh) | 一种分布式系统的网络安全验证方法和系统 | |
CN1323508C (zh) | 一种基于数字证书的单点登录方法 | |
CN105103488B (zh) | 借助相关联的数据的策略施行 | |
WO2017063523A1 (zh) | 一种业务认证的方法、装置和系统 | |
CN109587101B (zh) | 一种数字证书管理方法、装置及存储介质 | |
US8578452B2 (en) | Method for securely creating a new user identity within an existing cloud account in a cloud computing system | |
US20120254622A1 (en) | Secure Access to Electronic Devices | |
CN105378649A (zh) | 多权限数据安全和访问 | |
CN104104692A (zh) | 一种虚拟机加密方法、解密方法及加解密控制系统 | |
KR101270991B1 (ko) | 계층적 역할 기반 접근 제어를 위한 키 트리 구성 및 키 분배 방법 | |
CN103051631A (zh) | PaaS平台与SaaS应用系统的统一安全认证方法 | |
US20150121498A1 (en) | Remote keychain for mobile devices | |
CN101764806A (zh) | 一种单点登录方法、系统以及登录服务平台 | |
CN105122265A (zh) | 数据安全服务系统 | |
CN102427447A (zh) | 一种税务云计算系统之间共享身份认证信息的方法 | |
Tayade | Mobile cloud computing: Issues, security, advantages, trends | |
CN107302524A (zh) | 一种云计算环境下的密文数据共享系统 | |
JP2011076505A (ja) | 情報処理システム及び情報処理方法 | |
JP5485452B1 (ja) | 鍵管理システム、鍵管理方法、ユーザ端末、鍵生成管理装置、及びプログラム | |
CN111131160B (zh) | 一种用户、服务及数据认证系统 | |
CN113886793A (zh) | 设备登录方法、装置、电子设备、系统和存储介质 | |
CN108064437A (zh) | 安全地共享内容方法及系统 | |
JP5494171B2 (ja) | ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム | |
CN113987561A (zh) | 一种基于可信执行环境的隐私数据分级方法、系统及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191213 Address after: 100176 room 222, 2f, building C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Jingdong three hundred and sixty degree e-commerce Co., Ltd. Address before: 100080 Beijing city Haidian District xingshikou Road No. 65 building 11C Creative Park West West west Shan East 1-4 layer 1-4 layer Patentee before: Beijing Jingdong Shangke Information Technology Co., Ltd. |
|
TR01 | Transfer of patent right |