APP下载

基于ECC 的SIP 身份认证密钥协商协议

2023-10-14黄朝阳陈金木

电子科技大学学报 2023年5期
关键词:匿名性口令双向

黄朝阳,陈金木

(厦门海洋学院信息工程学院 福建 厦门 361100)

身份认证协议作为网络安全的首道屏障,其重要性不言而喻。随着网络应用的增长,特别是自新型冠状病毒肺炎疫情暴发以来,带来了远程办公等工作方式的转变,全球即时通信应用程序和服务的使用呈指数级增长,导致基于SIP 协议的即时通信服务的需求与日俱增。

SIP 协议(session initialization protocol)具有灵活、开放和可扩展的特性,为多种即时通信业务提供完整的会话创建和会话更改服务。因此,SIP 协议的安全性对于即时通信的安全起着至关重要的作用。SIP 协议一般工作在不安全的公共信道环境。而且传统SIP 的原始身份认证机制是基于HTTP 摘要的,其强度不足以提供针对各种流行攻击所需的安全性,这一先天缺陷使它很容易受到攻击[1]。现有的SIP 协议中所使用的身份认证机制可能被攻击者绕过,导致未经授权的访问和信息泄露需要安全且高效的SIP 认证和密钥协商协议来解决即时通信的安全要求。设计一种可证安全且高效的SIP 身份认证协议具有紧迫性和重要意义。

近年来对于SIP 协议的研究和改良层出不穷,为了提高传统SIP 协议的安全性,先后引入了多种安全机制,如Hash 函数、公钥密码体制、双线性对映射、椭圆曲线密码技术、混沌映射、生物特征和智能卡等。但各种研究表明:公钥密码体制面临PKI 体系证书管理复杂的困难、双线性对映射在效率上的缺陷明显、结合生物特征和智能卡的认证协议则可能出现效率明显下降等问题。而引入Hash 函数、椭圆曲线密码技术或混沌映射的安全、可扩展和轻量级的SIP 身份认证协议正成为当前研究热点。

在相同的安全级别上,椭圆曲线密码(elliptic curve cryptography)在密钥长度上比RSA 小很多,能有效降低计算和存储的成本开销。鉴于ECC 的明显优势,文献[2]提出了基于ECC 的SIP 认证协议,并声称其有更好的安全性和效率。文献[3]在2009 年证明了文献[2]协议对已知的Denning-Sacco攻击、Stolen-Verifier 攻击和离线口令猜测攻击是不安全的,并提出了改良的基于ECDH(elliptic curve diffie–hellman key exchange)的身份认证协议。2011 年,文献[4]又揭示了文献[3]的协议不能抵抗内部人员攻击和离线口令猜测攻击。文献[5]于2012 年指出文献[3]协议无法抵御Stolen-Verifier攻击和离线口令猜测攻击,并提供了一种改进的方案。然而,次年文献[6]又证明了文献[5]协议仍然受到离线口令猜测攻击和冒充服务攻击威胁,并给出了一种增强方案。

匿名认证是指用户在证明自己身份合法性的同时能够确保自己身份信息、位置信息的匿名性。在身份认证过程中保护用户匿名性是当下身份认证技术的发展趋势。2015 年,文献[7]在文献[6]工作的基础上提出了一种基于椭圆曲线密码技术的匿名SIP 认证协议,声称可以很好地保护用户隐私。文献[8]研究发现该协议不能抵御内部人员攻击,并在此基础上提出一种更为安全的SIP 认证协议,声称协议可以抵御各种已知攻击,同时比其他相关协议具有更低的计算成本。2018 年,文献[9]研究发现文献[8]协议也存在无法保护用户匿名性的安全漏洞。

本文深入研究了文献[8]提出的SIP 协议,在分析其安全漏洞的基础上通过改进认证消息构成,提出一种基于ECC 的更为安全高效的SIP 协议。新协议秉承ECC 安全高效的特征,采用标准的挑战/应答信息交互模式,运算量小的优势明显。通过对新协议的BAN 逻辑分析、非形式化安全分析证明其更为安全;通过性能比较分析展示其在效率方面的实用性。

1 文献[8]协议及其安全漏洞分析

本文所用符号如表1 所示。

表1 协议中的符号标记与含义

文献[8]协议的认证阶段在用户端所构造生成的登录请求消息M_request 存在设计缺陷,敌手可以根据在公共信道上窃取的登录请求消息来验证自己对用户账号的猜测,从而非法获得用户U的账号IDi这一关键信息;该协议的认证阶段在服务器端所构造生成的挑战消息M_challenge 同样存在设计缺陷,这一缺陷将使敌手可以根据已掌握的用户账号IDi和公共信道上窃取的登录请求消息轻易伪造出可以通过用户验证的挑战消息M_challenge,从而成功实施冒充服务器攻击。文献[8]协议的注册及认证阶段细节如图1 所示,针对文献[8]协议的安全漏洞分析如下。

图1 文献[8]协议的注册及认证阶段细节

图2 针对文献[8]协议实施冒充服务器攻击的细节

1.1 无法抵御冒充服务器攻击

敌手Uatt可以通过以下方法非法获取用户U的账号信息IDi。Uatt在公共信道上窃取的U登录请求消息M_request = {B, HID,C},计算HID⊕B= (IDi⊕T)⊕(T⊕A) =IDi⊕A。继而,Uatt使用一个猜测的用户账号信息IDi′计算出A′ = HID⊕B⊕IDi′,然 后Uatt通 过 验 证 等 式hash(IDi′ ||A′) =C是否成立来判断所猜测用户账号信息IDi′的正确性。Uatt可以变换猜测新的IDi′′,不断验证上述等式直到找到正确的用户账号信息IDi为止。在获取用户U的账号信息IDi后,Uatt可以通过下列步骤实施冒充服务器攻击。

1.2 无法保护用户匿名性和实现双向认证

根据上述分析,敌手Uatt可以获取合法注册用户的账号信息。因此,文献[8]协议无法保护用户匿名性。由于敌手可以假冒合法服务器骗取用户的认证,这意味着文献[8]协议无法实现双向认证。

2 新的SIP 认证协议

为了克服文献[8]协议所暴露的安全问题,本文提出一种更为安全高效的SIP 认证协议。协议所使用的椭圆曲线离散对数难题(ECDLP)以及单向hash 函数是其可靠的安全基石[10]。

协议由用户注册、双向认证和口令更新3 个阶段构成。协议中所用符号如表1 所示。

2.1 用户注册

1) 用户U选定自己的账号IDi、口令PWi和私钥Kpri_U,计算出C= Hash(PWi|| Kpri_U),U通过安全信道向服务器S发送向注册请求消息{IDi,C}。

2)S收到U的消息{IDi,C}后,结合自己的私钥Kpri_S计算出W= Hash(IDi||C) ⊕C⊕Hash(Kpri_S)。S于本地数据库中写入W。新协议注册阶段的细节如图3 所示。

图3 新协议注册阶段的细节

图4 新协议登录和双向认证阶段的细节

2.2 双向认证

用户U与服务器S通过以下步骤实现双向认证及密钥协商。

1) 用户U输入自己的账号IDi,口令PWi,计算出TE = Hash( IDi|| Hash( PWi|| Kpri_U) )。U生成高熵随机数RU,并计算A=RU·p,V= Hash (A|| Hash( PWi⊕ Kpri_U) )。U向S发送登录请求消息M_request ={ TE,A,V}。

2.3 口令更新

数据库中的W,口令更新完成。

新协议在认证阶段巧妙设计了在用户端所生成的登录请求消息M_request 格式,让用户账号及其伴随信息都置于hash 函数的保护之下,规避了用户账号信息泄露的可能性,真正实现用户匿名性;同时,新协议改进了服务器端挑战消息M_challenge的组成部分Auth_s的格式,使敌手无法通过在公共信道上窃取的消息计算出Auth_s*,有效阻止敌手通过伪造服务器的挑战消息实施冒充服务器攻击。新协议增加一个服务器端所生成的高熵随机数RS2,以保证后续消息的新鲜性,有效防止重播攻击。

3 BAN 逻辑分析

Burrows、Abadi 和Needham 于1989 年 提 出BAN 逻辑分析方法具有里程碑式的意义,它是第一个将形式化手段用于验证密码协议安全性的分析方法,作为分析密码协议一种公认的重要工具而广为使用[11]。它在用户设置的理想假设和协议步骤的前提下,对协议能否在没有冗余信息的条件下实现安全认证的目的,以及协议中的加密信息是否在明文传输时不会影响协议的安全性这两个问题给出解答[12]。BAN 逻辑分析过程所使用的符号与含义如表2 所示。

表2 BAN 逻辑的符号与含义

BAN 逻辑是一种基于信仰的内涵逻辑,它不计量由于协议的真实实现额外带来的安全问题,也不考虑由于加密体制的安全缺陷可能带来的协议缺陷,所以BAN 逻辑存在一定的局限性。但是,在协议设计阶段使用BAN 逻辑分析可尽早规避潜在的设计缺陷。

下面在假定密码算法是安全的前提下,使用BAN 逻辑分析方法对协议本身结构的安全性展开形式化证明。

3.1 BAN 逻辑推理法则

3.2 协议理想化

本协议的理想化形式为:

3.3 形式化安全假设

本文协议满足下列基本假设:

3.4 协议目标

假设协议所设置的参数和流程是正确的,那么本文协议必须满足下列安全目标:

3.5 安全证明

分析推理过程如下。

由P2 和消息新鲜法则R4 可得:

由式(1)、式(2)和临时值验证法则R2 可得:

由式(3)和信念法则R5 可得:

于是,G1 得以证明。

由式(4)和P5,以及管辖权法则R3 可得:

于是,G2 得以证明。

由P1 和消息新鲜法则R4 可得:

由式(6)、式(7)和临时值验证法则R2 可得:

由式(8)和信念法则R5 可得:

于是,G3 得以证明。

由式(9)和P6,以及管辖权法则R3 可得:

于是,G4 得以证明。

通过上述BAN 逻辑形式化证明,本协议的4 个安全目标全部得以证实。所以,在理想化的环境下,本协议可以实现真实有效的双向认证和会话密钥协商。

4 安全性分析

围绕几个相关协议[2-3,5,7-8]所暴露出来的安全问题,对本协议的一些重要的安全目标开展启发式安全分析。

1) 抵御重播攻击

在本协议框架内,假定某敌手Uatt伪装成合法用户U向服务器S重播登录请求消息M_request ={TE,A,V},S将返回挑战消息M_challenge ={realm,B, Auth_s,RS2}。但Uatt因不掌握RU和C从而无法伪造出Auth_U进行应答,从而无法通过S的验证。同时,由于随机数RU和RS2的新鲜性,Uatt如果通过重播S的挑战消息M_challenge ={realm,B, Auth_s,RS2}来伪装成合法S时,根本无法通过U方Auth_s′ = Auth_s这一等式验证。所以协议可以抵御重播攻击。

2) 保护用户匿名性

在新协议的双向认证实施过程中,公共信道上传输的用户账号信息以hash 函数散列值的形式TE =Hash(IDi|| Hash( PWi|| Kpri_U) )存 在。 根 据hash 函数的单向安全特性,敌手Uatt无法从截取的TE 中计算获取用户U的账号信息IDi。与用户账号信息IDi同时存在于TE 中的伴随信息是C=Hash( PWi|| Kpri_U),协议设计了用户在注册阶段通过安全信道发送C给服务器S,C也不以明文的形式存储于S的数据库中,故如果敌手Uatt使用本文1.1 节所述方法来猜测并验证用户账号信息必然失败。所以新协议可以实现保护用户匿名性的目标。

3) 抵御冒充服务器攻击

敌手Uatt想成功冒充服务器S骗取用户U的认证,必须能生成正确的挑战消息M_challenge ={realm,B, Auth_s,RS2},但因Uatt无法获取S的私钥Kpri_S和S本地数据库所存储的W,故不能计算得出C′ ,当然也就无法生成正确的挑战消息要件Auth_s。所以,Uatt无法成功冒充服务器S骗取用户U的认证。

4) 抵御内部人员攻击

在注册阶段,用户的口令以密文C= Hash( PWi|| Kpri_U)的形式在安全信道上传输,服务器数据库中所存储W= Hash( IDi||C) ⊕C⊕Hash( Kpri_S)也非明文形式。在没有掌握U口令PWi和私钥Kpri_U的前提下,敌手Uatt无法在多项时间内把它们同时猜中,更无法使用W来验证这一猜测。并且,由于hash 函数的单向安全特性,从C中计算得出U的口令PWi也是行不通的。所以,内部人员无法从用户的注册信息中获取U的口令PWi。内部人员攻击对本协议无效。

5) 抵御身份假冒攻击

如前1)所证明,重播攻击已无法实施。敌手Uatt伪装成U实现身份假冒攻击的前提是能生成正确的登录请求消息M_request ={TE,A,V}和应答消息M_response = {realm, Auth_U},但并不掌握的U的账号IDi、口令PWi和私钥Kpri_U,根本无法计算出TE,生成正确的C和V则更为困难,根本伪造不出正确的M_request 和M_response 要件Auth_U,从而无法通过S的身份认证。所以,身份假冒攻击无法实施。

6) 抵御离线口令猜测攻击

敌手随机猜测用户的口令值,然后使用非法获取的消息来验证这一猜测,所以离线口令猜测攻击往往最具有破坏性。假定Uatt在公共信道上截取认证过程的所有交互消息{TE,A,V,B, Auth_s,RS2,Auth_U}。然后Uatt猜测一个口令PWi′ ,但在未掌握用户私钥Kpri_U的前提下,显然无法使用TE或V验证所猜测口令PWi′的正确性。所以,离线口令猜测攻击对本协议无效。

7) 实现双向认证同时协商一次性会话密钥

根据以上分析,本协议在安全性上填补了相关协议的常见漏洞,同时展现出较强的保护用户匿名性和双向认证功能,可以协商生成一次性会话密钥,具有较高的安全性能。

5 效能分析

5.1 效率比较

效率比较主要考量各相关协议在双向认证阶段执行椭圆曲线点乘、切比雪夫多项式、对称加密/解密、模逆运算和hash 运算所需的计算开销。与上述运算相比较而言,字符串连接操作和异或运算所需耗时要小得多,不列入各协议的计算开销比较[13]。用户注册和口令更新为非经常性操作,其计算开销也不计算在内[14-15]。

为了更准确地评估各相关协议在双向认证阶段的计算效率,在运行平台Windows 10、Intel Core i7-3 770、16GB RAM,matlab 仿真环境中测试ECC 点乘、切比雪夫多项式、模逆运算、AES-128和SHA-3 运算耗时。每种密码操作均运行10 000次后,统计所需耗时的算术平均值如表3 所示。相关协议和本文新协议在双向认证阶段的主要计算开销及交互次数比较如表4 所示。

表3 各种密码运算所需耗时的算术平均值 ms

表4 效率比较

表中,TCP为计算一次切比雪夫多项式;TPM为执行一次椭圆曲线点乘;TSED为执行一次对称加密/解密;TINV为执行一次模逆运算;TH为执行一次hash 运算。

从表4 可知,本协议的总计算开销为4TPM+10TH,总耗时为32.716 8 ms,与文献[19]协议基本持平,并明显少于其他相关协议。本协议展现出更高的计算效率。各相关协议在双向认证阶段所需总交互次数都是3 次,无差别。各相关协议认证阶段的主要运算总耗时比较如图5 所示。

图5 认证阶段的主要运算总耗时比较

5.2 安全特性比较

本协议与其他几个相关协议的安全特性对比如表5 所示。文献[8]协议无法抵御冒充服务器攻击,无法保护用户匿名性,无法真正实现双向认证。文献[17-19]未给部分安全特性的分析结果。本文协议克服了文献[8]协议的安全缺陷,能抵御多种常见攻击,提供用户匿名性保护和前向安全性,可以真正实现双向认证,展示出比文献[17-19]更高的安全性能。文献[16]虽然也可以抵御各种已知攻击,但它在认证过程中所使用的椭圆曲线点乘点运算达9 次之多,明显增加了运算总用时。根据表4 和表5 的比较分析可知,本协议在安全性和效率方面的综合性能优于其他相关协议。

6 应用场景分析

与所有新兴技术一样,即时通信面临着需要克服安全方面的挑战,以确保该技术能够成功大规模部署。在保密性、完整性和真实性方面,安全方面的挑战尤为重要。SIP 协议有良好的可扩展性,在语音通信、视频通信、网络游戏、物联网等领域应用前景广阔,但如果把生物特征、智能卡和公钥密码体制等多种安全因素同时糅合到改良的SIP 协议中,确实可以大大提升SIP 协议的安全性能,但同时也将给协议带来臃肿,执行效率退化等问题。

身份认证协议的安全级别越高,它所需的运算量、带宽要求、应用成本等各种开销也大。找寻认证协议的安全性能和开销的合理平衡点一直是协议设计者的追求目标。本协议使用少量的椭圆曲线点乘运算和必要的hash 运算,较好地保持了SIP 协议轻量化的优势,可以认为本协议在认证安全性能与认证开销之间获得一个较好的平衡点,适用于对安全性能有较高要求的应用场景:涉及商业机密的企业通信、涉及国家机密的政府和军事应用、涉及个人健康信息的医疗保健行业以及可能使用SIP 协议来传输银行交易敏感信息的金融机构。

7 结 束 语

本文对文献[8]提出的SIP 认证协议展开深入研究,指出其存在的安全缺陷。通过改良协议的认证消息格式,提出一种新的SIP 认证协议。通过BAN 逻辑形式化分析,以及多种非形式化的安全分析证明,新的SIP 认证协议可以安全地抵御各种已知的安全攻击,既保护了用户匿名性又可以实现双向认证,具备协商生成后续会话所需一次性密钥的功能。通过效能比较分析可知,新协议是高效、安全的,具有较高的实际应用和推广价值。

猜你喜欢

匿名性口令双向
双向度的成长与自我实现
高矮胖瘦
口 令
好玩的“反口令”游戏
去个体化心理分析
SNMP服务弱口令安全漏洞防范
微信弹性社交中的失范行为分析
一种软开关的交错并联Buck/Boost双向DC/DC变换器
一种工作频率可变的双向DC-DC变换器
基于双向预测的图像去噪