一种基于群组密钥池的改进型Kerberos身份认证系统和方法与流程

文档序号:16198301发布日期:2018-12-08 06:21阅读:118来源:国知局
一种基于群组密钥池的改进型Kerberos身份认证系统和方法与流程

本发明涉及量子通信技术领域,尤其涉及基于量子网络的身份认证系统。

背景技术

鉴权,即身份认证是实现信息安全的基本技术,系统通过审查用户的身份来确认该用户是否具有对某种资源的访问和使用权限,同样也可以进行系统与系统间的身份认证。

当前通信网络中身份认证系统普遍采用kerberos认证方案。kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意的读取、修改和插入数据。在以上情况下,kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

在kerberos认证方案中,引入了时间戳timestamp来对重放攻击进行遏止,但是票据有生命周期,在其生命周期的有效时间内仍然可以使用。如果收到消息的时间是在规定允许的范围之内,那么就认为该消息具有新鲜性。但是,在得到许可证后的攻击者可以发送伪造的消息,这样的话,在允许的时间内是很难发现的。

攻击者有可能对加密设备进行攻击,或者利用恶意软件进行攻击,所以很多研究者把对kerberos的改进放在对硬件设备的改进上。目前,适合在kerberos系统的用户端使用的可信任硬件设备是智能卡。把智能卡集成到kerberos系统中去,取得了很好的效果。

随着无线通信技术的不断发展,终端直接通信(devicetodevice,d2d)已成为3gpprel-12标准化技术的热点之一。d2d允许两个用户设备(userequipment,ue)通过特定的信道(sidelinkchannel)直接进行数据传输,而无需经过演进型基站设备(evolutionalnodeb,enb)。当然,d2d并不局限于两个用户设备之间的数据传输,还可以支持单点对多点的群组通信(groupcommunication)。现有的网络认证体系大都是基于单个对象的一对一的认证方式,但是对于单点对多点的数据传输,会根据一定的原则形成群组。在这些应用场景下,当组内接入新的终端时,若采用现有的一对一的认证方式,不仅会增加网络信令,导致网络拥塞,且会占用大量网络资源,因此现有的一对一的网络认证体系不再适用。在这种情况下,为降低认证资源消耗,减少网络拥塞,需要相应的群组认证机制。现有的群组通信系统使用的密钥为传统密钥,传统密钥是由程序所产生的伪随机数,伪随机数都有特定的规律,相对来讲更容易被破译,量子密钥是根据量子特性所产生的真随机数,量子密钥的下一个比特是无法预知的,有效的克服了伪随机数的弊端。

公开号为cn106357649a,发明名称为“用户身份认证系统和方法”的专利文献,公开了一种对称密钥体制的身份认证方法。但是该发明中身份认证只能完成一对一的身份认证,而且其身份认证是单向的,存在较大的安全隐患。

现有技术存在的问题:

(1)现有基于量子密钥卡的身份认证技术只能完成一对一的身份认证,无法完成与群组的身份认证或群组间身份认证。

(2)现有技术中身份认证所传递的挑战信息一般是暴露的随机数,可能被攻击者对挑战和应答进行研究而破解出密钥。

(3)现有基于量子密钥卡的身份认证和加密技术中,执行身份认证和加密前需要量子密钥卡和其颁发方预先约定使用什么密钥,而且在执行身份认证和加密过程中并不更换密钥。

(4)现有身份认证技术基于kerberos认证方案对时间戳的使用导致有出现重放攻击的可能。kerberos协议要求是基于网络中时钟同步,对整个系统时间同步要求高,在大型分布式系统中难以实现。

(5)现有技术中,用户端密钥存储于用户端存储器中,可以被恶意软件或恶意操作窃取。

(6)现有技术中,用户端的长期密钥是不变的,安全性不够高。



技术实现要素:

本发明提供一种适用于群组间身份认证的基于量子网络的身份认证系统。

一种基于群组密钥池的改进型kerberos身份认证系统系统,包括量子网络服务站,以及分别包括多个用户端的主动方群组和被动方群组,进行身份认证时包括:

步骤a、主动方群组中的其中一用户端依据预设的主动方通信范围向量子网络服务站申请tgt;

步骤b、所述用户端依据获得的tgt以及预设的被动方通信范围向量子网络服务站申请相应的ticket以及主动方会话密钥,并在主动方通信范围内共享所述ticket以及主动方会话密钥;

步骤c、主动方通信范围内的一用户端a向被动方通信范围内的一用户端b发送所述ticket,所述ticket中也包含有被动方会话密钥,使得用户端a和用户端b共享用于实施加密通信的会话密钥;

步骤a、b中主动方群组中的用户端与量子网络服务站通信时,以及步骤c中用户端a与用户端b通信时,分别采用真随机数的方式作为身份验证数据。

本发明步骤a中可以是主动方群组中的任一个用户端发起认证请求,主动方通信范围可理解为在主动方群组中某一个用户端拥有ticket以及主动方会话密钥、并可以与被动方通信范围内的用户端进行身份认证以及后续的加密通信;或主动方群组全体用户端都分别拥有ticket以及主动方会话密钥、并可以与被动方通信范围内的用户端进行身份认证以及后续的加密通信。

同理被动方通信范围可理解为被动方群组中某一个用户端可以从ticket中获取并使用被动方会话密钥;或被动方群组中全体用户端都分别可以从ticket中获取并使用被动方会话密钥。

步骤a、b、c中作为身份验证数据的真随机数各不相同,步骤a、b中的真随机数由主动方群组中的用户端匹配的量子密钥卡生成,连同生成真随机数的信息以加密形式发送至量子网络服务站,供量子网络服务站进行验证;

步骤c中的真随机数由量子网络服务站生成,连同生成真随机数的信息以加密形式在步骤b中发送给主动方群组中的用户端,步骤c中,用户端a与用户端b通信时,用户端a将步骤c中的真随机数连同生成真随机数的信息以加密形式发送至用户端b,供用户端b进行验证。

作为优选,主动方群组以及被动方群组的所有用户端分别配置有量子密钥卡;

各用户端的量子密钥卡各自独立的与量子网络服务站共享私有的对称密钥池;

同一群组中所有用户端的量子密钥卡与量子网络服务站共享与所在群组相应的群组密钥池;

步骤b中,所述主动方会话密钥为密文形式,主动方通信范围为主动方群组中某一用户端时,主动方会话密钥利用与该用户端相应的对称密钥池进行加密;主动方通信范围为主动方群组中全体用户端时,主动方会话密钥利用与主动方群组相应的群组密钥池进行加密;

步骤b中,所述ticket中的被动方会话密钥为密文形式,被动方通信范围为被动方群组中某一用户端时,被动方会话密钥利用与该用户端相应的对称密钥池进行加密;被动方通信范围为被动方群组中全体用户端时,被动方会话密钥利用与被动方群组相应的群组密钥池进行加密。

主动方会话密钥和被动方会话密钥内容相同由量子网络服务站生成用于对称加密,步骤b中直接发送给用户端的称为主动方会话密钥,而封装在ticket中的则称为被动方会话密钥。主动方会话密钥和被动方会话密钥的传输均采用密文形式,且根据通信范围选择相应的加密方式,因此只有通信范围内的用户端才可以解密并使用。

在主动方通信范围内共享所述ticket以及主动方会话密钥时,由于主动方会话密钥为密文形式,因此也共享解密主动方会话密钥所需的相关信息。

用于加密主动方会话密钥的为第一安全密钥,用于加密被动方会话密钥为第二安全密钥;

步骤b共享所述主动方会话密钥时,共享的内容为采用第一安全密钥加密的主动方会话密钥,以及生成第一安全密钥的信息;所述ticket中包含有生成第二安全密钥的信息。

步骤b共享所述主动方会话密钥时,为了提高安全性,共享解密相关信息时息并非直接共享第一安全密钥,而是共享生成第一安全密钥的信息,只有在主动方通信范围内的用户端才拥有相应的密钥池,因此外部成员即使获知生成该第一安全密钥的信息,也无法生成第一安全密钥,进一步提高了主动方会话密钥的安全性。

同样的道理,ticket中并不直接包含第二安全密钥,只是包含有生成第二安全密钥的信息,只有在被动方通信范围内的用户端才拥有相应的密钥池,因此外部成员即使获知生成该第二安全密钥的信息,也无法生成第二安全密钥,进一步提高了被动方会话密钥的安全性。

当通信范围为某一用户端而并非群组全体用户端时,可以理解为该用户端从量子网络服务站获取ticket以及主动方会话密钥后,也即完成了共享。

步骤b中,主动方会话密钥的加密以及ticket中被动方会话密钥的加密都是在量子网络服务站中完成,而量子网络服务站也是基于步骤a、步骤b中用户端的指定,作为优选:

步骤a中、所述用户端向量子网络服务站申请tgt时携带有标示符a,用于通知量子网络服务站利用与该用户端相应的对称密钥池、或利用与主动方群组相应的群组密钥池生成第一安全密钥;

步骤b中、所述用户端向量子网络服务站申请相应的ticket以及主动方会话密钥时携带有标示符b,用于通知量子网络服务站利用与被动方群组中某用户端相应的对称密钥池、或利用与被动方群组相应的群组密钥池生成第二安全密钥。

所述第一安全密钥或第二安全密钥的生成方式为量子网络服务站产生真随机数,该真随机数结合密钥生成算法得到指针,该指针指向由标示符a或标示符b指定的密钥池中的一部分,在该密钥池中提取出相应的密钥即作为第一安全密钥或第二安全密钥。

在用户端与量子网络服务站之间,以及用户端之间只需传输真随机数或指针,即生成第一或第二安全密钥的信息,并不需要直接传输第一或第二安全密钥,因此外部成员即使获知生成第一或第二安全密钥的信息,由于并不具备相应的密钥池,因此也无法生成第一或第二安全密钥,进一步提高了会话密钥的安全性。

本发明中量子网络服务站作为可信的第三方,向主动方群组的用户端提供票据ticket,在该用户端向量子网络服务站申请的票据过程中,以及用户端b对用户端a的认证过程中,都涉及身份认证数据的使用。

步骤a中、所述用户端申请tgt时,采用加密的真随机数n1作为与量子网络服务站之间的身份认证数据,真随机数n1采用传输密钥进行加密,该传输密钥由所述用户端利用匹配的量子密钥卡生成,且将生成传输密钥的信息通知量子网络服务站;

量子网络服务站利用相应的方式生成真随机数n1’并与真随机数n1进行对比认证。

作为优选,步骤a的身份认证数据还包括用于生成真随机数n1的真随机数rn1;

所述真随机数n1的生成方式为步骤a中主动方群组中的用户端利用匹配的量子密钥卡生成产生真随机数rn1,真随机数rn1结合预定算法得到指针并指向由标示符a指定的密钥池中的某一部分,在该密钥池中提取出的相应部分即作为真随机数n1。

步骤b中、所述用户端申请ticket以及主动方会话密钥时,采用加密的真随机数n2作为与量子网络服务站之间的身份认证数据,真随机数n2采用第一安全密钥进行加密;

量子网络服务站利用相应的方式生成真随机数n2’并与真随机数n2进行对比认证。

作为优选,步骤b的身份认证数据还包括用于生成真随机数n2的真随机数rn2;

所述真随机数n2的生产方式为步骤a中主动方群组中的用户端利用匹配的量子密钥卡生成产生真随机数rn2,真随机数rn2结合预定算法得到指针并指向由标示符a指定的密钥池中的某一部分,在该密钥池中提取出的相应部分即作为真随机数n2。

步骤c中、用户端a向用户端b发送所述ticket时,采用加密的真随机数n3作为与用户端b之间的身份认证数据,真随机数n3采用第二安全密钥以及主动方会话密钥双重加密;

用户端b利用相应的方式生成真随机数n3’并与真随机数n3进行对比认证。

作为优选,步骤c的身份认证数据还包括用于生成真随机数n3的真随机数rn3,且采用主动方会话密钥加密;

所述真随机数n3的生产方式为量子网络服务站产生真随机数rn3,真随机数rn3结合预定算法得到指针并指向由标示符b指定的密钥池中的某一部分,在该密钥池中提取出的相应部分即作为真随机数n3;

步骤b中、主动方群组中的用户端从量子网络服务站获得ticket以及主动方会话密钥时,也获得采用第二安全密钥加密的真随机数n3,以及采用第一安全密钥加密的真随机数rn3。

所述传输密钥的生成方式为步骤a中的用户端利用匹配的量子密钥卡生成产生真随机数ra,该真随机数ra结合密钥生成算法得到指针,该指针指向由标示符a指定的密钥池中的一部分,在该密钥池中提取出相应的密钥即作为传输密钥。

生成传输密钥的信息即为真随机数ra,至于密钥生成算法等可预先协商。量子网络服务站收到真随机数ra后可依据相应的密钥池生成传输密钥对真随机数n1解密验证。

步骤a中、所述用户端从量子网络服务站接收tgt时还接收利用传输密钥加密的真随机数rq-a,真随机数rq-a为量子网络服务站产生且用于生成所述第一安全密钥。

所述用户端可利用真随机数rq-a结合相应的密钥池生成所述第一安全密钥,用来加密步骤b中的真随机数n2。

所述量子网络服务站包括身份认证服务器和票据许可服务器,所述用户端向身份认证服务器申请tgt,再依据该tgt向票据许可服务器申请ticket。

量子密钥卡中对称密钥池以及群组密钥池长期使用或重复使用会有被破解的可能性,为提高身份认证系统的安全性,作为优选:

所述量子密钥卡中的对称密钥池以及群组密钥池定时更新。

更新时用户端与匹配的量子密钥卡建立通信连接后,用户端通过上层应用程序向量子密钥卡发送更新申请,该更新申请同时也发送至量子网络服务站;

密钥存储卡接收更新申请后,按预先设定的规则更新对称密钥池或群组密钥池;

量子网络服务站接收更新申请后,按预先与量子密钥卡协商一致的规则更新量子网络服务站内相应存储的对称密钥池或群组密钥池。

本发明中,可选的情况是,主动方群组与被动方群组中,所有用户端的量子密钥卡归属于同一量子网络服务站。即均与该量子网络服务站存储有相应的量子密钥,也可视为在局域网环境下。

若在广域网环境下,主动方群组的各用户端匹配的量子密钥卡归属于量子网络服务站a,被动方群组的各用户端匹配的量子密钥卡归属于量子网络服务站b;

步骤a中,主动方群组的用户端向量子网络服务站a的身份认证服务器申请tgt;

步骤b中,主动方群组的用户端再依据该tgt向量子网络服务站a的票据许可服务器申请ticket,该ticket由量子网络服务站b协助生成,并由量子网络服务站a发送给主动方群组的用户端。

由于ticket中的被动方会话密钥采用第二安全密钥加密,而该第二安全密钥是利用被动方群组中相应的对称密钥池或群组密钥池生成,因此需要量子网络服务站b的协助,可以是量子网络服务站b响应量子网络服务站a的请求生成ticket发送给量子网络服务站a;或者是量子网络服务站b件将生产的第二安全密钥或必要信息发送给量子网络服务站a,由量子网络服务站a自行生成ticket。

本发明还提供一种基于群组密钥池的改进型kerberos身份认证系统方法,实施在本发明所述的基于群组密钥池的改进型kerberos身份认证系统中。有关具体步骤可参见本发明的身份认证系统中的相关叙述。

本发明基于对称密钥池与群组密钥池实现身份认证,尤其是引入群组密钥池,可以实现用户与群组或群组之间进行身份认证。在用户与群组完成身份认证后,该用户可以与群组任一用户进行安全通信;在群组与群组完成身份认证后,两群组中每个用户之间都可以进行安全通信。

现有身份认证技术基于kerberos认证方案对时间戳的使用导致有出现重放攻击的可能,并且整个kerberos协议要求是基于网络中时钟同步,对整个系统时间同步要求高,在大型分布式系统中难以实现。本发明使用量子真随机数代替现有方案的时间戳,解决了出现重放攻击的可能。不再使用时间戳也使系统对系统时间同步没有要求。

本发明中身份认证所传递的挑战信息仅仅是用于生成指针的随机数,在没有密钥池的情况下即使被攻击者对挑战和应答进行研究而破解出随机数甚至得到指针也无法得到用于加密的密钥。

本发明中身份认证中,执行身份认证和对身份认证消息加密前不需要量子密钥卡和其颁发方预先约定使用什么密钥,而且在执行身份认证的每条消息都可以随意更换密钥,只需要指出用于计算出指针的随机数即可,而公布该随机数的危险性非常小,一般来说对攻击者毫无用处。

本发明使用量子密钥卡存储用户端密钥而不是用户端存储器,量子密钥卡是独立的硬件设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。

本发明中量子密钥卡中的对称密钥池以及群组密钥池定时更新,与现有技术中用户端长期密钥不变相比安全性大大提高。除此之外,经典身份认证服务器与服务器之间是通过经典网络传输消息的,在当前网络环境下,并不是安全的,而本发明中采用的是qkd网络保证了在广域网络中通信的安全。

附图说明

图1为单个量子网络服务站群组型量子密钥卡的量子密钥结构图。

图2为多个量子网络服务站群组型量子密钥卡的量子密钥结构图。

图3为局域网内身份认证流程图。

图4为广域网内身份认证流程图。

图5为实施例1身份认证方法详细步骤示意图。

图6为实施例2身份认证方法详细步骤示意图。

具体实施方式

本发明身份认证系统可以包括多个量子网络服务站,不同量子网络服务站之间可以通过qkd方式共享站间量子密钥。

量子网络服务站包括:

量子服务中心,主要用于通过经典网络与用户侧的各用户端通信连接以及与其他量子网络服务站通信连接;经典网络包括但不限于电信网、互联网、广播电视网或者其他通信网络等。

量子密钥分发设备,主要用于通过qkd方式实现站间量子密钥的共享。

真随机数发生器,用于接收用户侧密钥管理服务器提出的申请用户侧密钥的请求,生成用户侧密钥,并发送给用户侧密钥管理服务器;此处采用的为真随机数发生器。其优选为量子真随机数发生器,也可以为基于电路的真随机数发生器、基于物理源的真随机数发生器以及其他种类的真随机发生器。

用户侧密钥管理服务器,存放、管理从真随机数发生器生成的用户侧密钥,可以接入可移动式的量子密钥卡,实现发卡、登记、拷贝用户侧密钥,还可以接收量子服务中心提出的申请用户侧密钥请求,发送相应长度的用户侧密钥给量子服务中心。量子密钥卡的详细内容也可参见申请号为“201610846210.6”的专利申请文献。

其中量子服务中心包括:身份认证服务器,票据许可服务器,还可根据需要设置其他服务器,例如数字签名服务器、签名验证服务器、加解密服务器等。

身份认证服务器用于实现用户在接受消息认证、数字签名等服务前与量子网络服务站的相互身份认证。身份认证服务器内部具有采用pci总线接口的加密卡,用于存储身份认证协议,包括密钥生成算法、认证函数、加密传输协议等。

票据许可服务器用于实现用户在获得与量子网络服务站的相互身份认证后,为用户分发其访问某一用户的申请的许可。

各量子网络服务站下配置有用户端,如用户端1~用户端n,本说明书中不同的服务器或其他装置在硬件上也可以根据需要进行整合。

用户端为接入量子网络服务站的设备,可为移动终端,或为固定终端。当为移动终端时,量子密钥卡优选为量子sd卡;当为固定终端时,量子密钥卡优选为usbkey或主机加密板卡。

当客户前往所在区域的量子网络服务站进行注册登记,获批后得到量子密钥卡(具有唯一的量子密钥卡id)。量子密钥卡存储了客户注册登记信息,还内置有身份认证协议,至少包括密钥生成算法以及认证函数,或其他与身份认证相关的算法。

网络侧的各个量子网络服务站也相应的存有认证协议,若协议中各算法存在两种以上,量子密钥卡在与量子网络服务站通信时会将算法标号发送给量子网络服务站,供量子网络服务站选取。

量子密钥卡中的用户侧密钥可能下载自不同的量子网络服务站,因此可按不同来源存在不同的密钥种子集中,用户端可按预先设定的规则取用密钥种子以生成密钥。不同的密钥种子集具有唯一的密钥种子id,其指向的量子网络服务站中存储有相应的密钥种子。

量子密钥卡从智能卡技术上发展而来,是结合了量子物理学技术、密码学技术、硬件安全隔离技术的身份认证产品。量子密钥卡的内嵌芯片和芯片操作系统可以提供私钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,量子密钥卡成为量子真随机数私钥的安全载体。每一个量子密钥卡都有硬件pin码保护,pin码和硬件构成了用户使用量子密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的量子密钥卡和用户pin码,才可以登录系统。即使用户的pin码被泄露,只要用户持有的量子密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的量子密钥卡遗失,拾到者由于不知道用户pin码,也无法仿冒合法用户的身份。

实施例1,局域网内同属于一个量子网络服务站的两个用户端身份认证

本实施例的场景如图1所示,参与身份认证的用户端a匹配的量子密钥卡中含有对称密钥池ka和群组密钥池kpa;参与身份认证的用户端b匹配的量子密钥卡中含有对称密钥池kb和群组密钥池kpb;用户端a和用户端b归属于量子网络服务站q,用户端a和用户端b不属于同一个群组。量子网络服务站q含有所有成员的对称密钥池以及群组密钥池kpa和kpb。a、b和q的密码学模块均持有相对应的密钥池(包括对称密钥池和群组密钥池)和各类算法。用户端a参与的身份认证具体步骤中所使用的密钥池由flaga指定,用户端b参与的身份认证具体步骤中所使用的密钥池由flagb指定。flaga、flagb的值由鉴权发起方即用户端a决定。

根据指定的密钥池的不同可以分为以下三种情况:

1、当flaga指定的密钥池为对称密钥池ka,flagb指定的密钥池为群组密钥池kpb,则指用户端a申请与用户端b所在的群组进行身份认证,具体情况可以是数据链系统中群组a中的成员a申请加入成员b所在的群组b,身份认证完成后,成员a可以与成员b所在的群组b中的所有成员进行安全的通信。

2、当flaga指定的密钥池为群组密钥池kpa,flagb指定的密钥池为对称密钥池kb,则指用户端a所在的群组申请与用户端b进行身份认证,具体情况可以是数据链系统中成员a所在的群组a申请与另一群组中的某一成员b进行身份认证,身份认证完成后,成员b可以与成员a所在的群组a中所有成员进行安全的通信。

3、当flaga指定的密钥池为群组密钥池kpa,flagb指定的密钥池为群组密钥池kpb,则指用户端a所在的群组申请与用户端b所在的群组进行身份认证,具体情况可以是数据链系统中成员a所在的群组a申请与成员b所在的群组b进行身份认证,身份认证完成后,群组a与群组b中所有成员之间都可以进行安全的通信。

以下步骤中,在各用户端侧涉及的多处加解、密操作,都在匹配的量子密钥卡中进行。身份认证服务器和票据许可服务器涉及的加、解密操作,是在量子网络服务站的加解密服务器中完成。

身份认证流程如图3所示,当用户端a、用户端b都同属于一个量子网络服务站时,身份认证过程中所涉及的量子密钥卡在该本地量子网络服务站注册颁发。具体步骤参见图5,图中,大括号内表示被加密的部分,后面紧跟的内容表示使用的密钥,如{rn1+n1}ka表示使用ka加密rn1和n1。

具体步骤文字描述如下:

第一步:用户端a向量子网络服务站申请许可票据tgt。

a.用户侧身份认证随机数以及密钥生成:用户端a匹配的量子密钥卡根据卡内随机数发生器产生真随机数rn1(以下简称rn1,其它同理省去汉字部分作为简称)和真随机数ra。rn1、ra结合特定的密钥生成算法f得到指针pn1、pa。pn1、pa指向由flaga指定的密钥池中的某一部分,可以在该密钥池中提取出相应的身份认证随机数n1和密钥ka(传输密钥)。

b.用户端a发送预身份认证服务请求:用户端a向量子网络服务站的身份认证服务器发送预身份认证服务请求,请求内容包括:

①用户端a的身份信息ainfo(包括ida和用于指定密钥池的flaga)以及ra;

②用ka加密的rn1和n1作为预身份认证数据;

③量子网络服务站中票据许可服务器的身份信息tgsinfo。

c.量子网络服务站与用户端a进行身份认证:量子网络服务站得到ra后,结合特定的密钥生成算法f得到指针pa’,然后使用pa’从flaga指定的密钥池中提取出与密钥ka相同的密钥ka’。

为便于区分原密钥ka,从与生成原密钥不同的密钥池中提取出的密钥以下记为ka’。下同。

使用ka’解密预身份认证数据得到rn1和n1,将rn1结合特定的密钥生成算法f得到指针pn1’,然后使用pn1’从flaga指定的密钥池中提取出n1’。将n1与n1’进行比对,完成量子网络服务站与用户端a之间的身份认证。

d.量子网络服务站发送身份认证服务回复:量子网络服务站根据站内真随机数发生器产生真随机数rq,rq结合特定的密钥生成算法f得到指针pq,pq指向量子网络服务站特有的密钥池中的某一部分,可以在该密钥池中提取出相应的密钥kq。量子网络服务站根据站内真随机数发生器产生真随机数rq-a,rq-a结合特定的密钥生成算法f得到指针pq-a,pq-a指向由flaga指定的密钥池中的某一部分,可以在该密钥池中提取出相应的密钥kq-a(第一安全密钥)。

量子网络服务站与用户端a之间的身份认证完成后,量子网络服务站向用户端a发送一份身份认证服务回复,回复内容包括:

①用ka’加密的rq-a;

②许可票据tgt;

tgt包括rq、ainfo以及使用kq加密的rq-a和tgt到期时间t1。到期时间可以是最大时间段,也可以是最大使用次数,或者两者结合并取先达到的一个。tgt可用于申请获取访问该量子服务站的票据许可服务器能够提供的某一用户端的ticket。

e.用户端a获取回复:用户端a收到身份认证服务回复后,即得到tgt。使用与ka’相同的ka解密第一部分,得到rq-a,结合特定的密钥生成算法f得到指针pq-a,再根据pq-a从flaga指定的密钥池中提取出与密钥kq-a相同的密钥kq-a’。

第二步:用户端a通过tgt向量子网络服务站申请用于访问用户端b的票据ticket。

a.身份认证真随机数生成:用户端a匹配的量子密钥卡生成真随机数rn2。结合特定的密钥生成算法f得到指针pn2,然后使用pn2从由flaga指定的密钥池中提取出真随机数n2。

b.用户端a发送票据许可服务请求:用户端a向量子网络服务站中的票据许可服务器发送票据许可请求,请求内容包括:

①tgt;

②用kq-a’加密的rn2和n2作为身份认证数据;

③用户端a想要访问的用户端b的身份信息binfo(包括用户端b的身份信息idb和用于指定密钥池的flagb)。

c.票据许可服务器对用户端a进行身份认证:量子网络服务站中的票据许可服务器得到tgt后,使用真随机数rq结合特定的密钥生成算法f得到指针pq,然后使用pq从量子网络服务站特有的密钥池中提取出密钥kq。

使用kq解密tgt的加密部分获得rq-a,使用rq-a结合特定的密钥生成算法f得到指针pq-a,然后使用pq-a从由flaga指定的密钥池中提取出密钥kq-a。

使用kq-a解密身份认证数据获得rn2和n2。使用真随机数rn2结合特定的密钥生成算法f得到指针pn2,然后使用pn2从由flaga指定的密钥池中提取出n2’。将n2与n2’进行比对,完成量子网络服务站与用户端a之间的身份认证。

d.量子网络服务站生成加密ticket的密钥kb以及用户端a与用户端b身份认证所需要的n3:量子网络服务站认证用户端a的身份通过后,量子网络服务站根据站内真随机数发生器产生真随机数rb,rb结合特定的密钥生成算法f得到指针pb。然后使用pb从由flagb指定的密钥池中提取出密钥kb(第二安全密钥)。

量子网络服务站根据站内真随机数发生器产生真随机数rn3,rn3结合特定的密钥生成算法f得到指针pn3。然后使用pn3从由flagb指定的密钥池中提取出真随机数n3。

e.量子网络服务站生成会话密钥:量子网络服务站通过站内真随机数发生器生成用户端a与用户端b的会话密钥ka-b。

f.量子网络服务站发送票据许可服务回复:量子网络服务站向用户端a发送票据许可服务回复,回复内容包括:

①使用kq-a加密的ka-b和rn3;

②使用kb加密的n3;

③票据ticket。

ticket包括rb、binfo以及用kb加密的ka-b、用户端a的身份信息ida和ticket到期时间t2。

g.用户端a获取回复:用户端a收到票据许可服务回复后,即得到ticket,并使用kq-a解密第一部分和第二部分,得到ka-b(主动方会话密钥)和rn3。

第三步:用户端a向用户端b提供ticket完成身份认证。

flaga是用于标注密钥池的,ida是用于标注用户端的。

由于ida在ticket加密部分内部,所以虽然用户端a可能与之前的不为同一个,但是ticket是使用同一个。

flagb是用于标注密钥池的,idb是用于标注用户端的。

二次身份认证步骤中,用户端a可修改binfo中的idb,根据idb的不同指向不同的用户端b。

a.用户端a发起会话请求:用户端a向用户端b发起会话请求,请求内容包括:

①ticket;

②用户端a的身份信息ida、rn3,连同收到的使用kb加密的n3一起用ka-b加密作为身份认证数据;

③flag(用于表示是否需要双向验证)。

b.用户端b对用户端a进行身份认证:用户端b得到ticket后,使用真随机数rb结合特定的密钥生成算法f得到指针pb,然后使用pb从由flagb指定的密钥池中提取出与密钥kb相同的kb’。

使用kb’解密ticket的加密部分获得ka-b’(被动方会话密钥),使用ka-b’解密身份认证数据获得rn3。使用真随机数rn3结合特定的密钥生成算法f得到指针pn3,然后使用pn3从由flagb指定的密钥池中提取出n3’。将n3’与使用kb’解密身份认证数据得到的n3进行比对,完成与用户端a之间的身份认证。如果验证成功,则让用户端a访问需要访问的资源,否则直接拒绝对方的请求。

d.如果需要双向验证,用户端b提取身份认证数据中的rn3,使用ka-b加密,并将其发送给用户端a用于用户端a验证用户端b的身份。

实施例2,广域网内的两个用户端的身份认证

广域网内两个用户端的身份认证流程如图4所示,当用户端a、用户端b不属于同一个量子网络服务站时,身份认证过程中所涉及的量子密钥卡分别在该用户端所属的量子网络服务站注册颁发。本实施例中的系统架构区别于实施例1之处为应用在广域网中,一级交换中心是一个地级市或相当大小区域的量子网络核心站,二级交换中心是一个县级市或相当大小区域的量子网络核心站,量子网络服务站是一个乡镇或街道办事处相当大小区域的量子通信接入站点。

一级交换中心和下属的多个二级交换中心以星型网络结构相连,二级交换中心可以和多个下属的量子网络服务站以星型网络结构相连。

由于需要站间通信,因此各交换中心以及量子网络服务站分别设有量子密钥分发设备,可通过qkd方式实现站间密钥的共享。本实施例中量子网络服务站的其他设备以及关于量子密钥卡的描述可参见实施例1。

例如一级交换中心和下属的二级交换中心分别利用量子密钥分发设备实现站间量子密钥的共享,二级交换中心和下属的的量子网络服务站分别利用量子密钥分发设备实现站间量子密钥的共享,量子密钥分发设备可以是一套也可以是至少两套集成。

两个一级交换中心之间由于距离较远,可采用量子中继站的方式实现站间量子密钥共享。

本实施例的场景如图2所示,参与身份认证的用户端a匹配的量子密钥卡中含有对称密钥池ka和群组密钥池kpa;参与身份认证的用户端b匹配的量子密钥卡中含有对称密钥池kb和群组密钥池kpb;用户端a归属于量子网络服务站a,即相对于用户端a而言,其当前量子网络服务站为与用户端a通信连接的量子网络服务站a;同理用户端b归属于量子网络服务站b。用户端a和用户端b不属于同一个群组。量子网络服务站a含有所有成员的对称密钥池以及群组密钥池kpa;量子网络服务站b含有所有成员的对称密钥池以及群组密钥池kpb。用户端a、用户端b、量子网络服务站a和量子网络服务站b的密码学模块均持有相对应的密钥池(包括对称密钥池和群组密钥池)和各类算法。用户端a参与的身份认证具体步骤中所使用的密钥池由flaga指定,用户端b参与的身份认证具体步骤中所使用的密钥池由flagb指定。flaga、flagb的值由鉴权发起方即用户端a决定。指定的密钥池不同所对应的实际情况与实施例1描述一致。

以下步骤中,在各用户端侧涉及的多处加解、密操作,都在匹配的量子密钥卡中进行。身份认证服务器和票据许可服务器涉及的加、解密操作,是在量子网络服务站的加解密服务器中完成。

本实施例区别于实施例1的具体部分为ticket的获取与传输方式以及第三步中真随机数n3的获取与传输方式。

具体步骤参见图6,文字描述如下:

第一步:用户端a向量子网络服务站a申请许可票据tgt。

a.用户侧身份认证随机数以及密钥生成:用户端a匹配的量子密钥卡根据卡内随机数发生器产生真随机数rn1(以下简称rn1,其它同理省去汉字部分作为简称)和真随机数ra。rn1、ra结合特定的密钥生成算法f得到指针pn1、pa。pn1、pa指向由flaga指定的密钥池中的某一部分,可以在该密钥池中提取出相应的身份认证随机数n1和密钥ka。

b.用户端a发送预身份认证服务请求:用户端a向量子网络服务站a的身份认证服务器发送预身份认证服务请求,请求内容包括:

①用户端a的身份信息ainfo(包括ida和用于指定密钥池的flaga)以及ra;

②用ka加密rn1和n1作为预身份认证数据;

③量子网络服务站a中票据许可服务器的身份信息tgsinfo。

c.量子网络服务站a与用户端a进行身份认证:量子网络服务站a得到ra后,结合特定的密钥生成算法f得到指针pa’,然后使用pa’从flaga指定的密钥池中提取出与密钥ka相同的密钥ka’。

使用ka’解密预身份认证数据得到rn1和n1,将rn1结合特定的密钥生成算法f得到指针pn1’,然后使用pn1’从flaga指定的密钥池中提取出n1’。将n1与n1’进行比对,完成量子网络服务站a与用户端a之间的身份认证。

d.量子网络服务站a发送身份认证服务回复:量子网络服务站a根据站内真随机数发生器产生真随机数rq,rq结合特定的密钥生成算法f得到指针pq,pq指向量子网络服务站a特有的密钥池中的某一部分,可以在该密钥池中提取出相应的密钥kq。量子网络服务站a根据站内真随机数发生器产生真随机数rq-a,rq-a结合特定的密钥生成算法f得到指针pq-a,pq指向由flaga指定的密钥池中的某一部分,可以在该密钥池中提取出相应的密钥kq-a。

量子网络服务站a与用户端a之间的身份认证完成后,量子网络服务站a向用户端a发送一份身份认证服务回复,回复内容包括:

①用ka’加密的rq-a;

②许可票据tgt;

tgt包括rq、ainfo以及使用kq加密的rq-a和tgt到期时间t1。到期时间可以是最大时间段,也可以是最大使用次数,或者两者结合并取先达到的一个。tgt可用于申请获取访问该量子服务站a的票据许可服务器能够提供的某一用户端的ticket。

e.用户端a获取回复:用户端a收到身份认证服务回复后,即得到tgt。使用与ka’相同的ka解密第一部分,得到rq-a,结合特定的密钥生成算法f得到指针pq-a,再根据pq-a从flaga指定的密钥池中提取出与密钥kq-a相同的密钥kq-a’。

第二步:用户端a通过tgt向量子网络服务站a申请用于访问用户端b的票据ticket。

a.身份认证真随机数生成:用户端a匹配的量子密钥卡生成真随机数rn2。结合特定的密钥生成算法f得到指针pn2,然后使用pn2从由flaga指定的密钥池中提取出真随机数n2。

b.用户端a发送票据许可服务请求:用户端a向量子网络服务站a中的票据许可服务器发送票据许可请求,请求内容包括:

①tgt;

②用kq-a’加密的rn2和n2作为身份认证数据;

③用户端a想要访问的用户端b的身份信息binfo(包括idb和用于指定密钥池的flagb)。

c.票据许可服务器a对用户端a进行身份认证:量子网络服务站a中的票据许可服务器得到tgt后,使用真随机数rq结合特定的密钥生成算法f得到指针pq,然后使用pq从量子网络服务站a特有的密钥池中提取出密钥kq。

使用kq’解密tgt的加密部分获得rq-a,使用rq-a结合特定的密钥生成算法f得到指针pq-a,然后使用pq-a从由flaga指定的密钥池中提取出密钥kq-a。

使用kq-a解密身份认证数据获得rn2和n2。使用真随机数rn2结合特定的密钥生成算法f得到指针pn2,然后使用pn2从由flaga指定的密钥池中提取出n2’。将n2与n2’进行比对,完成量子网络服务站a与用户端a之间的身份认证。

d.量子网络服务站b生成ticket以及用户端a与用户端b身份认证所需要的n3并发送给量子网络服务站a:

量子网络服务站a将用于说明用户端b的身份以及指定密钥池的binfo传给量子网络服务站b。同时传递的还有ida。

量子网络服务站a与量子网络服务站b利用各自的量子密钥分发设备实现站间量子密钥的共享,使得明文形式的binfo和ida在量子网络服务站a加密后发送至量子网络服务站b,再经解密恢复出明文形式的binfo和ida。

量子网络服务站a与量子网络服务站b之间如果还要通过其他网络节点中转,则直接通信连接的两量子网络服务站(或网络节点)之间通过相应的量子密钥分发设备形成的站间量子密钥,并依次中转传送密文。

站间量子密钥的分发是利用量子力学基本原理实现的异地密钥共享的方式,优选为bb84协议。

量子网络服务站b收到binfo和ida后,根据站内真随机数发生器产生真随机数rb、rn3,rb、rn3结合特定的密钥生成算法f得到指针pb、pn3。然后使用pb、pn3从由flagb指定的密钥池中提取出密钥kb和真随机数n3。

量子网络服务站b通过真随机数发生器生成用户端a与用户端b的会话密钥ka-b。然后量子网络服务站b生成ticket。ticket包括rb,binfo以及使用kb加密的ka-b、ida和到期时间t2。

量子网络服务站b将ticket、ka-b、rn3以及使用kb加密的n3传给量子网络服务站a。传递方式与上文站间传递方式一致。

e.量子网络服务站a发送票据许可服务回复:量子网络服务站a向用户端a发送票据许可服务回复,回复内容包括:

①使用kq-a加密的ka-b和rn3;

②使用kb加密的n3;

③票据ticket。

f.用户端a获取回复:用户端a收到票据许可服务回复后,即得到ticket,并使用kq-a’解密第一部分,得到ka-b和rn3。

第三步:用户端a向用户端b提供ticket完成身份认证。

a.用户端a发起会话请求:用户端a向用户端b发起会话请求,请求内容包括:

①ticket;

②用户端a的身份信息ida、rn3,连同收到的使用kb加密的n3一起用ka-b加密作为身份认证数据;

③flag(用于表示是否需要双向验证)。

b.用户端b对用户端a进行身份认证:用户端b得到ticket后,使用真随机数rb结合特定的密钥生成算法f得到指针pb,然后使用pb从由flagb指定的密钥池中提取出与密钥kb相同的kb’。

使用kb’解密ticket的加密部分获得ka-b’,使用ka-b’解密身份认证数据获得rn3。使用真随机数rn3结合特定的密钥生成算法f得到指针pn3,然后使用pn3从由flagb指定的密钥池中提取出n3’。将n3’与使用kb’解密身份认证数据得到的n3进行比对,完成与用户端a之间的身份认证。如果验证成功,则让用户端a访问需要访问的资源,否则直接拒绝对方的请求。

d.如果需要双向验证,用户端b提取身份认证数据中的rn3,使用ka-b加密,并将其发送给用户端a用于用户端a验证用户端b的身份。

以上公开的仅为本发明的实施例,但是本发明并非局限于此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。显然这些改动和变型均应属于本发明要求的保护范围保护内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何特殊限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1