APP下载

一种基于非对称加密算法的安全高效身份认证协议

2020-01-11赵玉超

工业技术创新 2020年6期
关键词:身份认证

摘   要: 为提高非对称加密算法下网络身份认证协议的安全和效率,将哈希函数、挑战应答机制和异或运算融合到传统的非对称密钥认证过程中,提出一种新的双向认证协议,协议中同时协商产生了成功认证后的一次性对称会话密钥。通过数学推导和针对已知攻击的形式化推演,证明了协议能抵御重放攻击、拒绝服务攻击在内的各种已知攻击,具有较高的安全性能。本协议认证双方仅需两次信息交互即可实现双向认证。经统计计算,本协议的认证运算量与传统的非对称密钥身份认证协议相当。

关键词: 身份认证;非对称加密算法;哈希函数;挑战应答机制;异或运算

中图分类号:TN918.1    文献标识码:A    文章编号:2095-8412 (2020) 06-103-05

工业技术创新 URL: http://gyjs.cbpt.cnki.net    DOI: 10.14103/j.issn.2095-8412.2020.06.018

引言

在网络应用日趋普及的今天,身份认证是网络应用的基础,贯穿于所有网络应用的全过程。在网络安全中,身份认证技术作为第一道也是最重要的一道防线,有着极其重要的地位。身份认证的技术基础主要是密码学方法,非对称加密算法具备较好的安全保密性能,被广泛应用于各种身份认证协议中。引入挑战应答机制的、基于非对称加密算法的传统双向认证协议通过四次信息传递来实现双向认证,一直被认为是高效的认证方案[1-2]。结合挑战应答机制的非对称加密认证方案不断推陈出新,但认证双方于认证阶段所需的的信息交互次数都稳定在四次,并且各改进协议陆续被指存在重放攻擊、中间人攻击、网络窃听等重大安全缺陷[3-8]。

哈希函数特有的单向性和高效性,能有效保障信息的完整性[9]。本文将哈希运算结合到非对称加密算法下的双向认证协议中,巧妙地改进双向认证的流程和信息交互格式,使新双向认证协议可以有效抵御重放攻击、冒充攻击、拒绝服务攻击等常见攻击,从而有效地提升了认证安全性能,同时将认证双方在双向认证阶段的信息交互次数减少到两次,极大地降低了认证双方的通信代价,并协商产生用于后续会话的一次性对称密钥。

1 基于非对称加密算法的身份认证协议

本协议的安全性建立在数字证书非对称加密算法和哈希函数的单向性基础之上。协议在不显著提高认证计算量的基础上,把认证双方通信交互的次数减少一半,并有效提升双向认证的安全性。认证双方相互认证后,将各自生成用于后续会话的对称密钥,会话密钥在构成上包含有双方的身份信息和多个随机数信息,且没有将会话密钥在公共信道上明文传输或在认证服务器S上存储会话密钥明文信息。本文的双向认证协议由用户注册阶段、双向认证和密钥协商阶段、口令值更新阶段三个部分组成。后续符号标记描述如表1所示。

1.1  用户注册

Step 1: 用户生成注册申请信息并通过公共信道发送给认证服务器。

用户随机产生,并计算出密保信息的哈希值和密码的哈希值,以用户的私钥加密上述三项信息生成。用户将帐号信息、数字证书、和拼接后,使用认证服务器的公钥加密获得注册申请信息。

用户在公共信道上发送给认证服务器注册申请信息:

Step 2: 认证服务器审核注册申请并返回注册结果给用户。

认证服务器用自己的私钥解密注册申请信息后得到及,根据,通过进一步查询获得,并用它解密,以获得。通过比对和的是否一致来验证用户注册信息的新鲜性,如和比对失败则拒绝注册请求并终止会话。将解密所得的注册内容:、、、、写入到本地数据库。允许注册后将返回结果给用户。

协议的用户注册时序图(含信息交换格式)如图1所示。

1.2  双向认证及一次性会话密钥协商

Step 1: 用户生成并发送登录请求信息给认证服务器。

用户随机产生,生成登录请求信息并经由公共信道传送给认证服务器:

Step 2: 认证服务器验证信息来源、认证用户,计算得出会话密钥。

认证服务器使用解密登录请求信息获得、、、。

根据用户的帐号在本地数据库中查询获取相关信息:、和,继而获取用户的公钥。首先通过比对和来验证登录请求信息来源的合法性,如果比对失败则终止登录认证过程。然后,计算,并通过比对计算所得的与收到的二者是否一致来认证用户身份的合法性。

生成作为第一次成功登录后的双方会话对称密钥,并将和存储于本地数据库。

构造双向认证信息并通过公共信道发给用户:

Step 3: 用户核验认证服务器,计算得出会话密钥。

用户使用解密来自认证服务器的信息,获得认证结果信息、和。通过与本地存储的比对来认证的合法性,如果比对失败则终止登录认证过程。

用户计算出用以向通信的会话称密钥 。

协议的双向认证及一次性会话密钥协商时序图(含信息交换格式)如图2所示。

1.3  口令值更新

用户在口令值更新操作时,首先需要能成功执行上小节的双向认证,详细过程略。

Step 1: 用户向认证服务器发送登录请求信息:

Step 2: 认证的合法性,并返回给双向认证信息:

Step 3: 用户通过比对以认证的合法性,构造并发送的口令值更新信息。

用户选定新的用户密码,同时生成新的随机数。构造以下口令值更新信息并通过公共信道发送给认证服务器:

为保障数据安全,新的用户密码和新的随机数均不以原形的方式存储和传输,而是以它们和原存储值异或后的形式出现:、。本协议的异或值设计使得攻击者在公共信道上截获或者从认证服务器数据库非法取得的的信息无法直接使用。

Step 4: 认证服务器验证注册信息更新的权限,存储新的口令值和随机数,并返回处理结果给用户。

认证服务器以自己的私钥解密收到信息后获取,比对与本地存储的密保信息值是否一致,若二者一致则允许修改注册信息,否则拒绝修改并中止后续口令值更新过程。认证服务器计算、,用这两个新值、替换本地数据库中的对应数据,最后返回口令值更新的结果给用户。口令值修改完成。

协议的口令值更新时序图(含信息交换格式)如图3所示。

2 安全性证明

2.1  认证双方生成的会话密钥一致性证明

证明如下:

由上式可以看出,用户与认证服务器彼此成功认证后,、分别生成的会话密钥与可以用于后续会话的相互加解密操作。

2.2  本文协议的安全性证明

问题1  本文协议如何抵御拒绝服务攻击?

证明:认证服务器的拒绝服务攻击分为如下几种情况。

① 如果攻击者非法用户能假冒合法用户注册信息而进行抢先注册,将会造成合法用户无法正常注册的情况。本协议所设计的注册信息,由于其中的,需由加密而成。非法用户在假冒合法用户注册时,虽然能获得的外层加密,但因为没有而无法伪造内层的密文,在后续执行 和 比对时必然出现失败的结果,从而无法成功假冒合法用户抢先进行注册。如果非法用户反复恶意抢注,可以断开其IP进而实现抵御拒绝服务攻击的目的。

②由于攻击者通过发送高频错误的登录请求给认证服务器,而造成服务器性能下降造成最终无法提供正常服务的拒绝服务攻击是传统数字证书认证的一种情况。对于本文所述协议,合法用户注册成功后在服务器本地数据库上存有注册要素,当S收到登录请求信息后,首先将比对与登录请求信息中所包含的一致性,以验证登录请求信息来源的合法性。由于攻击者无法提供正确的以供验证,注定其所发送的登录请求无法通过。认证服务器会记录来自同一IP连接的登录请求连续错误次数,当连续错误的次数超过设定的限额后,认证服务器将禁止该IP在一段时间内再次执行登录请求。后续此IP连接如果再次发起拒绝服务攻击,这一IP连接的禁止时长将被指数级逐步延长,进而实现抵御拒绝服务攻击的要求。

问题2  本文协议如何抵御冒充攻击?

证明:注册阶段的随机数是经过认证服务器S的公钥加密后传输的。因为攻击者无法获取,所以无法生成合法的登录请求信息,所有本文协议能抵御冒充攻击。

问题3  本文协议如何确定后续会话的一次性对称密钥?

证明:合法用户首次登录并认证服务器S双向认证后,双方各自计算出、值作为后续会话的对称密钥。会话密钥的构成要件中包含的帐号信息、的密码、服务器的帐号等多种信息,同时还包扩若干一次性随机数信息。即便是同一与同一之间发生了的两次不同时间的登录认证后,所生成的会话密钥也会因不同的随机数或用户修改了而不相同。而且会话密钥的所有构成要件均不以原始信息的形式在公共信道上传输,可以真正实现每一次会话都能够生成不同的会话安全密钥。

问题4  本文协议如何抵御重放攻击?

证明:本文的协议在双向认证过程中引入挑战应答机制,重放登录请求信息虽可暂时获得认证服务器的应答,但是由于应答信息是经过用户公钥加密的,非法用户无法取得合法用户的私钥从而无法获取信息。重放攻击由于无法完成后续认证,所以本文协议能够抵御重放攻击。

问题5  本文协议如何抵御来自内部的攻击?

证明:当有内部授权人员盗取了合法用户认证服务器中的相关信息后,只能查询获取相应的认证服务器用于发送给合法用户的用于加密的公钥信息,在没有信息的情况下,无法完成后续的双向认证。内部授权人员无法获得用户的密码原形,原因是由于合法用户的密码是以其哈希值的形式出现,而哈希函数具有单向安全性[10],所以本文协议能够完美抵御来自内部的攻击。

问题6  本文协议如何抵御中间人的攻击?

证明:本文协议的合法的用户與认证服务器双方通过非对称密钥加解密运算来检验彼此信息的正确性,不仅实现了双向认证,而且只有才可能生成正确的登录请求信息,真正拥有的私钥者才可能解密对方用生成的非对称加密信息,因而本文协议能够有效抵御中间人的攻击。

3 性能分析

3.1 通信交互次数分析

根据图2所示,本文所述协议的通信交互次数,是用户和在登录认证阶段仅需通过公共信道进行总共两次信息传递,通信代价明显低于文献[1]和[3]的信息交换次数。

3.2  运算量分析

首先定义如下符号:

: 一次非对称加密操作所需的时间;

: 一次非对称解密操作所需的时间;

: 一次对称加密操作所需的时间;

: 一次哈希函数运算所需的时间;

: 一次异或操作所需的时间。

本文协议的设计未引入运算量较大的双线性对运算[11]。对协议运算量的比较而言,最关键的是登录和双向认证阶段信息构造的运算,特别是认证服务器的运算量[12]。在本协议的登录和双向认证阶段,用户端和认证服务器的运算量都是,运算量相对是较低的,主要的运算量是在非对称加解密操作。在传统的非对称密钥双向认证协议中,双方的运算量至少均需要。两种协议在运算量上没有明显区别。本文协议所需运算量如表2所示。

综上分析可知:本文所述的身份认证协议与传统的非对称密钥双向认证协议相比,通信交互次数减少了一半,而运算复杂度并无明显差别。因而本文协议的性能优于传统身份认证协议。

4 结语

本文提出的身份认证协议的安全性建立在公私钥密码难题和哈希函数单向安全性的基础上,在各种已知方式的攻击中具有较高的安全性能。本协议的运算量及复杂度与传统的基于公钥密码体制认证协议处于同一数量级,在仅使用少量必要的非对称加解密运算和简单哈希运算、异或运算的情况下,将哈希函数、挑战应答机制、异或运算等灵活运用到了基于公钥密码的双向身份认证协议中,在实现双向认证的同时完成了一次性会话密钥协商,认证过程仅需通过两次的信息交互,提高了通信效率,因而具有较高的安全性和应用价值。

参考文献

[1] 赵铭伟, 季晓玉, 江荣安. 一种高效安全的动态口令认证方案[J]. 计算机应用与软件, 2009, 26(5): 255-257.

[2] LAI X J. Security Requirements on Authentication Protocols Using Challenge-Response[J]. Journal of the Graduate School of the Chinese Academy of Sciences, 2002,19(3): 246-253.

[3] 刘怀兰, 侯昕, 王佳. 改进的基于USBKey的动态身份认证方案[J]. 华中科技大学学报: 自然科学版, 2010, 38(11): 41-43.

[4] 曹晨磊, 刘明奇, 张茹, 等. 基于层级化身份的可证明安全的认证密钥协商协议[J]. 电子与信息学报, 2014, 36(12): 2848-2854.

[5] 王增光, 陈立云, 卢昱. 基于OTP的WiFi身份认证模型的设计及分析[J]. 测控技术, 2016, 35(7): 98-101.

[6] 毛可飞, 陈杰, 刘建伟. 层次身份基认证密钥协商方案的安全性分析和改进[J]. 电子与信息学报, 2016, 38(10): 2619-2626.

[7] 孙海燕, 李玲玲, 张玲, 等. 一种增强的移动互联网身份基认证密钥协商协议[J]. 计算机工程, 2019, 45(9): 153-160.

[8] 王霏, 陈明. 完美前向安全的基于身份认证密钥协商方案[J]. 密码学报, 2020, 7(1): 56-68.

[9] 陈庄, 陳亚茹. 基于hash实现低成本RFID的SRFID安全方案[J]. 重庆理工大学学报: 自然科学, 2017, 31(12): 140-145.

[10] 李川, 李学俊. 一种基于散列函数的RFID安全认证方法[J]. 电信科学, 2017, 33(6): 129-137.

[11] 王真, 马兆丰, 罗守山. 基于身份的移动互联网高效认证密钥协商协议[J]. 通信学报, 2017, 38(8): 19-27.

[12] 谌双双, 陈泽茂, 王浩. 基于PKI的通用无线认证协议研究. 计算机科学, 2012, 39(7): 74-77.

作者简介:

赵玉超(1974—),通信作者,男,河北唐山人,本科,实验师。研究方向:电子通信。

E-mail: powerjsj@126.com

(收稿日期:2020-09-02)

猜你喜欢

身份认证
基于标识的动态口令系统
云电子身份管理与认证系统中的关键技术优化改进
校园网云盘系统存在的安全问题及对策
基于指纹身份认证的固定通信台站干部跟班管理系统设计
基于PKI与基于IBC的认证技术比较
基于PKI技术的企业级云存储出错数据证明的研究
信息系统身份认证的分析与研究
Kerberos身份认证协议的改进
基于USB存储设备的透明监控系统
基于鼠标行为的电子商务中用户异常行为检测