APP下载

基于票据的名字解析系统切换认证机制

2022-03-15谢金涛王玲芳

电子设计工程 2022年5期
关键词:攻击者密钥票据

谢金涛,王玲芳,李 杨

(1.中国科学院大学,北京 100049;2.中国科学院声学研究所国家网络新媒体工程技术研究中心,北京 100190)

根据思科预测,到2030 年,物联网(Internet of Things,IoT)设备将达到5 000亿台,其中包括大量的智能家居、车联网等移动设备[1]。但是目前的网络架构难以满足这些移动场景的低时延、高吞吐等要求[2-4]。5G 和信息中心网络(Information-Centric Networking,ICN)的融合为解决该问题提供了新的思路[5-7]。ICN以信息为中心,将内容和位置分离,通过名字访问内容实体,可以为5G 网络提供移动性、安全性等支持[8-9]。名字解析系统(Name Resolution System,NRS)作为ICN 的重要组成部分,负责建立、维护和发布信息名字和地址之间的映射关系,提供快速的名字解析功能等[10-11]。

移动节点(Mobile Node,MN)请求NRS 服务需要先通过NRS 代理(NRS Proxy,NP)认证,获取解析节点列表。由于NP 的服务范围有限,MN 存在不同NP 间切换认证的场景。考虑到MN 的计算能力可能有限,并且要确保其服务的连续性,切换认证协议必须满足简单性、高效性和安全性要求[12-14]。根据调研结果,目前针对NRS 中切换认证的研究较少。不过,无线网络和NRS 的切换场景有高度的相似性,可以从中借鉴一二。文献[15-16]通过对称加密的票据减少无线网切换过程中的认证延迟。MN 持有原接入点(Access Point,AP)分发的票据就可以向目标AP 认证。文献[17-18]将多个接入点AP 构成组,MN 使用原AP 私有组密钥加密的票据认证。该方案对AP 要求高。文献[19]采用广播的方式认证。MN 通过认证服务器(Authentication Server,AS)将票据发送给AP。AS 和AP 之间可能有很多跳,这种方式有时延过高的问题。文献[20]提出基于票据广播的切换机制来改进多跳问题。原AP 提前生成票据,通过一跳将票据发送给邻居。文献[21-22]指出文献[20]存在一些漏洞,比如有效期明文存储导致的篡改问题、AP 间密钥相同带来的安全风险等。然而文献[22]改进后同样存在类似的安全问题。文献[21]虽然解决了上述问题,但是认证过程中冗余开销和计算代价都比较大。

文中提出了一种基于票据的名字解析系统切换认证方案,实现安全高效的切换认证。MN 首次接入NRS 时利用AS 预签名的票据与NP 完成认证。在MN 移动过程中,MN 使用从NP 提前获取的票据完成切换认证。分析表明该方案不仅能提供多种安全保障,而且分别通过四次通信和两次通信完成接入认证和切换认证过程,降低了认证交互过程中的冗余开销和计算代价。

1 模型和票据

1.1 NRS模型

NRS 模型如图1 所示,包括解析节点、代理NP以及移动节点MN。其中解析节点在满足时延要求的前提下提供解析服务。NP 负责维护解析节点列表,辅助MN 接入服务。MN 是NRS 的移动用户,可能是手持设备、车辆、工业移动设备等。MN 首先要通过NP 认证获得解析节点列表,才能进一步请求解析节点的服务。由于每个NP 的服务范围有限,当MN 移动后,需要重新向新NP 认证才能获得新解析节点列表。

图1 NRS模型

在移动过程中,MN的服务需要保持连续性,因此切换认证方案必须高效。MN在移动过程中容易被窃听、劫持或破坏,切换认证方案也必须具备一定的安全性:1)双向认证。MN 和NP 要验证对方的合法性。2)隐私保护。MN 的身份标识在移动时不能被攻击者获取,后续通信不能被窃听。3)前向和后向安全性。攻击者即使得到密钥也无法获取之前和之后的通讯内容。4)抵抗重放攻击。攻击者重新发送窃听到的信息,不能通过MN和AP的认证。5)抵抗伪造攻击。攻击者无法以伪造认证信息的方式通过认证。

1.2 票 据

在开始认证前,认证服务器AS对NP和MN的身份票据进行签名。该文方案主要涉及三种票据:移动节点MN 的票据、代理NP 的票据和切换认证的票据。

1)移动节点MN 票据

TMN={IMN,IA,τexp_MN,PMN,SigA_MN},其中IMN是设备MN 的标识。IA是对IMN签名的认证服务器AS 的标识。τexp_MN为票据TMN的有效期,如果票据失效了,MN 需要重新向AS 申请。PMN是MN 的公钥,用于加密消息,防止认证过程中攻击者的窃听行为。SigA_MN是AS 对该票据的数字签名,用于证明MN 是合法拥有该票据,而且使攻击者无法修改票据,保证票据的真实完整。

2)代理NP 票据

TNP={INP,IA,τexp_NP,PNP,SigA_NP},其 中INP为代理NP 的标识。IA是对INP签名的AS 的标识。τexp_NP为票据TNP的有效期。同样地,如果票据失效,NP 需要再次向AS 申请。NP 的公钥PNP用来加密信息,信息内容只能被NP 解密。SigA_NP是AS 对该票据的数字签名,用于证明编号INP的代理拥有该票据的合法性和确保票据安全。

3)切换认证票据

θMN={IMN,INP,IA,τexp_θMN,H(IMN||INP||IA||τexp_θMN)} 其 中IMN、INP、IA分别是对应角色的标识,τexp_θMN是该票据的有效期。H(IMN||INP||IA||τexp_θMN)是这些内容经过单向散列函数运算的结果,以保证θMN的完整性。θMN一旦被篡改或者出错,就会被发现。与上述两个票据不同,θMN是由当前NP 为MN 生成的,用作MN 移动后,向下一个NP 认证的凭证。

文中涉及到的操作符号含义如表1 所示。

表1 操作符号含义

2 认证方案

该文的认证方案包括接入认证和切换认证两部分。前者是MN 首次请求NRS 服务时和代理NP1 之间的认证。后者是MN 移动后与下一个代理NP2 之间的认证。

2.1 接入认证

假设MN和AP1的身份票据获得了AS的签名。MN要接入名字解析系统的服务,首先要和NP1 互相验证票据,进行双向认证。具体认证流程如图2 所示。

图2 接入认证流程

1)当MN 首次请求NRS 服务时,它需要先向周围的NP 广播包含它的标识IMN的消息。

2)代理NP1 收到请求后,向MN 回复消息通知它的存在。回复内容包括NP1 的票据TNP1和NP1 生成的随机数NNP1。MN 收到消息后,首先通过τexp_NP1验证票据是否过期。如果没有过期,MN 验证SigA_NP1是否合法。如果非法,MN 忽略NP1。当SigA_NP1合法,MN 完成对代理NP1 的认证,然后生成随机数NMN0,并计算共享密钥KPMK0=NMN0||NNP1。

3)通过上述步骤,MN 从票据TNP1中获得NP1 的公钥PNP1,并用其加密自己的票据TMN,随机数NMN0以及H(KPMK0)。MN 将加密消息发送给NP1。NP1 收到后使用私钥解密,得到TMN、NMN0和H(KPMK0)。然后NP1 通过τexp_MN验证票据是否过期。如果没有过期,NP1 验证SigA_MN是否合法。当SigA_MN合法,NP1计算共享密钥KPMK0=NMN0||NNP1,并通过单向散列函数运算,与H(KPMK0)进行比较,保证NP1 和MN 持有一致的共享密钥。此时NP1 完成对MN 的认证。最后NP1 为MN 创建用于切换认证的票据θMN。

4)NP1使用共享密钥KPMK0加密θMN和H(NMN0||θMN)后发送给MN。MN 解密得到切换认证票据θMN,并验证H(NMN0||θMN),保证θMN的正确性。

2.2 切换认证

为了实现快速切换,NP1 将一些信息通过路由共享给邻居代理。以邻居代理NP2 为例,NP1 根据NP2 的标识INP2生成临时密钥KPMK1=H(KPMK0||INP2)。同时生成MN 新标识IMN1=H(IMN0||INP2)以保护用户的匿名性。之后NP1 通过NP 间共享密钥加密θMN、KPMK1和IMN1后发送给NP2,用于切换认证。这些计算全部发生在代理,不会给MN 带来计算负担。当MN移动到NP2 时,会进行切换认证。具体流程如图3所示。

图3 切换认证流程

1)MN 首先生成用于切换的临时密钥KPMK1=H(KPMK0||INP2)、新标识IMN1=H(IMN0||INP2)和随机数NMN1。然后MN 使用KPMK1加密IMN1、NMN1、H(IMN1||NMN1||θMN),将加密信息发送给NP2。NP2 收到后,使用从NP1 获取到的临时密钥KPMK1解密,验证H(IMN1||NMN1||θMN)是否正确。如果正确,则NP2 对MN 认证通过。接着NP2 生成随机数NNP2,并计算与MN 的共享密钥KPMK2=NMN1||NNP2。

2)NP2使用KPMK1加密NNP2、H(NNP2||θMN)、H(KPMK2)后,将消息发送给MN。MN 收到并解密得到NNP2,然后使用NNP2验证H(NNP2||θMN)。如果验证通过,则MN完成对NP2 的认证。之后MN 计算它与NP2 的共享密钥KPMK2=NMN1||NNP2,验证H(KPMK2),确保和NP2 拥有一致的共享密钥。

通过以上两次通信完成NP2 和MN 的切换认证,并协商出用于之后通信的共享密钥KPMK2。

3 安全分析

该文将从4 个方面分析本文方案的安全性。

1)双向认证

在接入认证阶段,NP1 和MN 互相发送和验证票据。票据中AS 的签名能保证NP1 和MN 的合法性。此外,MN 的票据TMN经过NP1 公钥PNP1的加密,只能NP1 才能解密出消息内容。在切换认证前,切换认证票据θMN和MN 的新标识被NP1 通过NP 间共享密钥的方式传送给NP2。NP1 和MN 的共享密钥KPMK0是双方各自生成的,没有在信道上传递,不能被攻击者获取,保证了KPMK0加密的θMN的安全。NP2 和MN 使用单向散列函数的方式互相认证θMN,一旦θMN伪造就无法通过认证。因此可以确保NP2和MN 之间的安全认证。

2)隐私保护

MN 的标识IMN0只有在首次请求NRS 服务时用到,切换过程中用到的标识都是由MN 提供的随机数和NP2 的标识生成,而且该标识是NP1 和MN 各自生成的,没有在信道上传递,降低了被获取到的概率。在每次切换过程中更新标识能对MN 的隐私性提供保护。而且切换时NP2 和MN 迅速协商了新的共享密钥,就算攻击者得到了临时密钥,也无法用其窃听后续通信。

3)抵抗重放攻击

攻击者可能会在认证阶段窃听消息,之后重放这些消息试图通过认证。但是该方案不仅在票据上加入有效期防止重放攻击,而且在接入认证和切换认证的过程中都加入了随机数确保信息新鲜度,完成认证后这些随机数就会被丢弃。另外,随机数不是明文传输,通过密钥和单向散列函数的方式,避免被攻击者篡改和窃取。

4)抵抗伪造攻击

在接入认证的过程中,NP1 和MN 的票据由AS的数字签名保证合法有效。认证的信息都会携带相关的单向散列函数的运算结果,确保信息的完整性。如果被伪造就能识别出来。

4 性能分析

如果认证方案中设备的负担过高,会严重影响认证时延,降低认证效率。该文主要以通信开销和计算代价作为性能的衡量指标[20-22]。其中通信开销和认证双方完成认证的通信次数有关。每次通信的时间用T(ms)表示。而计算代价主要和认证过程中的加密(TE),解密(TD),签名(Tsig)、验证(Tver)、哈希(TH)等运算有关,可以通过这些运算使用的算法的计算时延来衡量。实验配置为Intel(R) Core(TM) i5-10210U CPU,16G 内存,Ubuntu 20.04.1 LTS 操作系统,内核版本号4.19.104,编程语言版本为Python3.8,加密库版本为pycryptodome 3.9.9。通过实验得到相关算法的计算时延如表2 所示。实验结果表明认证的开销主要集中在解密和签名操作。

表2 计算时延

不同方案在接入认证和切换认证中主要操作的使用次数及计算代价见表3 和表4。从中可以看出,该文方案的计算代价和通信开销都比较小。与文献[20-22]相比,该文方案在接入认证过程中,通过减少MN 私钥解密操作,大大降低了运算负担。同时对认证交互流程去冗余,认证双方通过四次通信就可以完成安全认证,而其他方案均需要六次通信。认证流程去冗余虽然减少了认证交互的次数,但并不妨碍MN 和NP 协商出一致的共享密钥。这点在切换认证中也有所体现,切换认证双方只需要两次通信就可以完成安全认证并协商出共享密钥。从表4可以看出该文方案切换认证过程的计算代价相比文献[20]和文献[22]增加了0.028 ms 和0.04 ms。考虑到文献[20]在切换认证过程中的明文传输带来的风险以及文献[20]和文献[22]均没有协商新共享密钥导致的后续通信安全问题,这种计算代价的增加是值得的。此外切换认证因为减少一次通信时间,该文方案切换认证的总时间开销对于文献[20-21]有很大的优势。从表5 可以看出,该文方案总认证效率非常高,计算代价比文献[20-22]减少48.8%,通信开销比文献[20-21]降低33.3%,比文献[22]降低25%。

表3 接入认证运算次数比较

表4 切换认证运算次数比较

表5 认证计算总代价

5 结束语

该文结合名字解析系统中移动设备切换代理场景的特点,参考并改进无线网络中的切换认证方案,提出一种基于票据的快速切换认证方案。分析表明该方案在安全性方面能提供诸如隐私保护、双向认证、抵抗重放攻击等保障。在性能方面,该方案的计算代价和通信开销分别减少48%和25%。因此可以保证移动设备的切换认证安全高效。在未来的工作中,需要进一步研究大量移动设备的批量切换认证方案。

猜你喜欢

攻击者密钥票据
基于贝叶斯博弈的防御资源调配模型研究
幻中邂逅之金色密钥
幻中邂逅之金色密钥
正面迎接批判
Android密钥库简析
正面迎接批判
2016年11月底中短期票据与央票收益率点差图
2016年10月底中短期票据与央票收益率点差图
2016年9月底中短期票据与央票收益率点差图
2015年8月底中短期票据与央票收益率点差图