一种适用于基于身份的认证密钥协商的逆向防火墙协议
2022-06-21叶净宇周雨阳
刘 畅,王 晋,田 里,王 捷,叶净宇,秦 帆,周雨阳
(1. 国网湖北省电力有限公司电力科学研究院 能源互联网技术中心, 武汉 430077;2. 数字广西集团政企事业部, 南宁 530219;3.重庆大学 大数据与软件学院,重庆,400044;4. 电子科技大学计算机科学与工程学院, 成都 611731)
密钥协商是在不安全信道上建立会话密钥的一种重要方式。Diffie和Hellman[1]基于离散对数困难问题,为密钥分发系统(PKDS, public key distribution system)设计了两方密钥协商协议(DH协议)。该协议在公网上提供了会话密钥服务,防止来自被动攻击者的消息泄露,但不能抵抗来自主动攻击者的扰乱、删除消息等行为:如中间人攻击(MITM,man-in-the-middle)。为了抵抗中间人攻击,Matsumoto等[2]基于DH协议设计了3个密钥协商协议:MTI/A0,MTU/B0,MTI/C0。这些协议能够为通信双方建立双方的认证会话密钥,且不利用签名就能抵抗主动攻击。然而,如果一个长期密钥泄露,攻击者就能计算出两方的会话密钥。Kunz-Jacques和Pointcheval[3]提出了2个新的概念:认证密钥协商(AKA, authenticated key agreement)和带密钥确认的认证密钥协商(AKAC, AKA with key confirmation)。AKA保证只有特定的参与者能够计算出该次会话密钥。AKAC在AKA的基础上,确认了通信实体都获得该次会话密钥。Law等[4]设计了一个两方的AKA协议(MQV协议),同时利用消息认证码(MAC, message authentication code)技术设计了一个三方的AKAC协议。该协议实现了已知密钥安全、前向安全、密钥控制。Krawczyk[5]指出这些协议在CK模型[6]下是不安全的,并且在MQV协议的基础上提出了HMQV协议。为了增强安全模型中攻击者的能力,LaMacchina等[7]在CK模型的基础上提出了eCK模型,允许敌手对临时私钥进行询问。目前,eCK模型成为了AKA协议的主流安全证明模型。Yao和Zhao[8]结合了KEA[9]和HMQV,设计了一个“最优”的AKA协议。KEA是由NSA设计的一个AKA协议,能保证最优的在线效率,但不能在eCK模型中被证明安全。以上这些协议都是基于公钥基础设施 (PKI, public key infrastructure)。在PKI中,为了抵抗公钥替换攻击,采用称为证书权威(CA, certificate authority)的可信机构来颁发数字证书,用于绑定用户身份和公钥。因此,PKI不可避免带来了证书管理的问题,如证书颁发、存储、验证、回收等。
为了解决PKI中的证书管理问题,Shamir[10]提出了基于身份的密码学(IBC, identity-based cryptography)。2002年,受Boneh和Franklin基于身份加密(identity-based encryption, IBE)[11]和Joux的三方DH协议[12]的启发,Smart提出了一个基于身份的密钥协商(identity-based authenticated key agreement, ID-AKA)协议。该协议基于Weil双线性对,消除了证书管理的问题,但由于用户私钥都由一个可信的私钥生成器(PKG, private key generator)生成,带来密钥托管问题,影响会话密钥的前向安全性。这意味着如果PKG被妥协了,敌手将能计算出之前的会话密钥。Chen和Kudla[13-14]利用PKG只能获知长期密钥而非临时密钥实现会话密钥的前向安全性。同时,设计了一个基于身份的密钥协商确认(ID-AKAC, ID-AKA with key confirmation)协议,主要思想是在用户身份信息上加上MAC值。之后,一系列ID-AKA协议[15-17]被提出,这些协议的安全性证明都没基于eCK模型。最近,Daniel等[18]提出了一个适用于eCK模型的无双线性对的ID-AKA协议,能够抵抗公钥替换攻击和已知临时会话秘密值泄露攻击(KSTIA, known session-specific temporary attack)。通过以上分析,发现这些密钥协商协议都是在经典安全模型下被证明安全的。攻击者能够通过设置一些不被发现的后门程序来扰乱这些算法的执行,从而导致用户秘密信息的泄露。
2014年,Bellare等[19]研究算法替换攻击(ASA, algorithm substitution attack),证明了一个攻击者能够通过替换对称加密方案来监视用户,得出了ASA能在任何随机或者无状态的加密方案中发生。ASA的研究为密码学提出了一个新问题:在敌手秘密干扰下,如何保证密码方案的安全性?(这个方向也叫做后斯诺登密码学[20])。为了回答这个问题,Mironov等[21]在2015年的欧密会上提出了逆向防火墙(RF, reverse firewall)的概念。RF处在用户计算机和外界网络之间,能够修改用户收到或者发送的消息。即使用户计算机被妥协了,攻击者也无法辨认所接收的消息是否为真。RF可以取得以下3个性质: 1)维持功能性,即如果用户的计算机正确工作,RF不会破坏密码算法的功能; 2)保持安全性,即无论用户的计算机如何被敌手搅乱,RF的使用将保持与正确执行密码算法一样的安全性; 3)抗泄露性,即无论用户的计算机如何被搅乱运行,逆向防火墙将将阻止计算机向外泄露秘密信息。同年,Ateniese等[22]探讨了RF在数字签名上的应用,得出了任何随机化的数字签证都难抵抗ASA。在2016年的美密会上,Dodis等[23]利用RF,在被妥协机器上实现了安全消息传输。在2016年的亚密会上,Chen等[24]利用可延展平滑映射哈希函数,给出了用于安全消息传输协议、不经意的基于签名的信封和不经意传输协议的RF方案。2018年,Ma等[25]设计了一个适用于在线/离线的基于属性加密(ABE, Attribute-based encryption)的RF方案。方案中含有3个RF,分别部署于发送者、接收者和PKG。2019年,Hong等[26]设计了一个可以在ABE中实现属性分发的RF方案。Zhou等[27]设计了一个适用于IBE的RF方案,其中一个实现了选择明文攻击安全性,另一个在适应性选择密文攻击下达到了半语义安全性。最近,Zhou等[28]为无证书加密和无证书签名设计了RF方案。
目前,认证密钥协商协议中抗后门攻击的方案存在抗攻击能力弱、性能不高等缺点。通过对RF的研究和分析,提出了能否使用RF来提高两方认证密钥协商协议中信息抗泄露问题。将RF与两方密钥协商相结合,设计了一种无需双线性对的基于身份认证密钥协商的逆向防火墙( ID-AKA-RF, reverse firewall for ID-AKA)协议。
1 预备知识
定义1椭圆曲线上的离散对数问题(ECDLP, discrete logarithm problem on elliptic curve):已知椭圆曲线上的点P,给定(P,mP) 求整数m∈q。这个问题称为椭圆曲线上的离散对数问题。当点有大素数阶时,求解ECDLP被认为是计算困难的。
定义2逆向防火墙:假设是W是一个RF,P=(receive, next, output) 是一个组。如果以下等式满足,则W是一个为P设置的RF。其中,σ是初始公共参数,m是传输的消息。
W°P:=(receiveW°P(σ,m)=receiveP(σ,W(m)),
nextW°P(σ)=W(nextP(σ)),
outputW°P(σ)=W(outputP(σ)).
一个合格的RF满足以下3个性质:1)维持功能性; 2)保持安全性; 3)抗泄露性。
定义3维持功能性:假设是W是一个RF,P是一个组,S是一个协议,F是一个函数。Wk°P表示在S中有限个k≥1里,对于P维持F。当P,S和F被清空,就说W维持了原协议的功能。同时,Wk°P=W°(Wk-1°P)表示RF能够堆砌。
定义4保持安全性:假设是W是一个RF,P是一个组,S是一个协议,F是一个函数,A表示安全性要求。如果SP⟹W°P*也满足A,就说对于S中的P能够抵抗攻击F的敌手,则W维持了原协议的安全要求性。其中SP⟹W°P*表示用W°P*代替P,P*是抵抗功能维护性的实现组。当P、S、F和A被清空,就说W维持了原协议的弱安全性。
定义5抗泄露性:假设是W是一个RF,P是一个组,S是一个协议,F是一个函数,A表示安全性要求。如果不存在敌手能够攻破信息泄露LEAK(S,P1,P2,W,λ)游戏,那么W对于P1而言提供了弱抗泄露性。其中,λ表示安全性参数,P1是P2的一个抗攻击F的敌手。
2 系统模型
抗泄露认证密钥协商协议包括一个注册服务器(RS),一个注册服务器的逆向防火墙(WRS),一个用户Alice,另一个用户Bob和他的逆向防火墙(WB),系统模型如图1所示。
图1 系统模型Fig.1 System model
整个方案由系统建立、随机化系统参数、密钥生成、重随机化用户密钥、身份认证与密钥协商5部分组成,具体算法描述如下:
1)系统建立(Setup):该算法由注册服务器根据输入的安全参数k,运行产生系统所需的公共参数par和系统主密钥s。
2)随机化系统参数(WRS.Setup):WRS对系统参数par进行随机化处理,生成新的系统参数par′。
3)密钥生成(KeyGen):用户Alice和Bob分别将自己的身份信息IDA和IDB提交给注册服务器。注册服务器根据输入的身份信息IDA、IDB和系统主密钥s,分别生成Alice和Bob的用户私钥SA和SB。
此处的用户私钥需要通过安全信道回传, 安全信道的实现有离线和在线2种方法.
①离线方式:注册服务器将用户私钥和公共参数输入到智能卡中,并将智能卡安全的交到注册用户手中。
②在线方式:注册服务器通过安全的传输层安全(TLS)回传用户私钥和公共参数给注册用户。
3 安全模型
一个认证密钥协商协议的安全目标主要包括已知会话密钥安全性、前向安全性、PKG前向安全性、抗密钥泄露伪装和已知会话相关临时秘密信息安全性等。eCK模型[7]是目前安全性表达能力最强的安全模型,明确表达了密钥协商协议中最大可能损害安全的秘密泄露情况,也覆盖了最多的安全属性。基于eCK模型,设计了一个逆向防火墙环境下的密钥协商安全性游戏:关于挑战者C和敌手A之间的游戏,如图2所示。具体步骤如下:
图2 挑战者C和敌手A之间的游戏Fig. 2 The game between challenger C and adversary A
1)系统建立阶段: 挑战者C输入安全参数k, 运行系统建立算法,生成系统公共参数par和系统主密钥s,并将公共参数par发送给敌手A, 保存系统主密钥s。
2)询问阶段:敌手A在此阶段可以进行以下多项式有界次数的询问。
①MasterKeyReveal(k):敌手A获得系统在安全参数k下的主密钥。
②Corrupt(i):敌手A获得IDi的经过逆向防火墙重新随机化后的长期私钥。
5)猜测阶段:敌手A输出一比特数据b′。如果b′=b,则A赢得游戏。
定义A赢得游戏的概率为AdvAKAA=|Pr[b′=b]-1/2|,其中Pr[b′=b]表示b′=b的概率。
4 协议构造
协议设计基于Kumar和Saxena的认证密钥协商协议[22], 分为系统建立、随机化系统参数、密钥生成、重随机化用户密钥、身份认证与密钥协商5个部分。
4.1 系统建立(Setup)
注册服务器首先根据给定的安全参数k,选择一个q(q≥2k的素数)阶循环加法群G1,P为G1的生成元,然后注册服务器按照如下步骤进行操作:
3)设置系统参数par=(q,G1,P,Ppub,H1,H2),发送par给自己的防火墙WRS,且保密系统主密钥s。
4.2 随机化系统参数(WRS.Setup)
4.3 密钥生成(KeyGen)
用户提交自己身份信息给注册服务器,注册服务器生成相应的用户私钥。注册服务器收到Alice的身份信息IDA,Bob的身份信息IDB后,开始进行如下操作:
4.4 重随机化用户密钥(WRS.KeyGen)
注册服务器的防火墙WRS可以总结为图3。
图3 注册服务器的逆向防火墙Fig. 3 Reverse firewall for registration server
4.5 身份认证与密钥协商(KeyAgreement)
通过双方计算生成的会话令牌完成用户身份认证,生成相同的会话密钥。图4描述了该部分的过程,以下将介绍具体的协议过程。
图4 Bob的逆向防火墙Fig.4 Reverse firewall for Bob
Alice的会话令牌:
Bob的会话令牌:
如果hA=hB,则KA=KB=K为会话密钥,用户认证与密钥协商结束。
对于WRS的功能,它保证了注册服务器被妥协后用户私钥SA和SB的机密性。在文献[22]协议中,当主密钥s泄露后,敌手能够获得用户私钥。但在协议中,随机化系统参数(WRS.Setup)利用随机数α随机化了主密钥,阻止了敌手获取用户私钥。同样,协议重随机化了用户长期私钥(WRS.KeyGen),抵抗了用户长期密钥泄露攻击。
5 安全性证明与性能分析
5.1 安全性证明
定理1在随机预言模型中, 如果Kumar和Saxena的ID-AKA协议[29]满足认证密钥安全性,则ID-AKA-RF协议能够1)维持功能性; 2)保持安全性; 3)提供抗泄露性。
证明: 以下为3个功能的叙述。
1)维持功能性: 对于Alice,计算
αSAaH1(IDB‖RB)βTB=
αsrAQAaH1(IDB‖RB)βbRB=
αβabsrArBQAQBP,
对于Bob,计算
αSBbH1(IDA‖RA)βTA=
αsrBQBbH1(IDA‖RA)βaRA=
αβabsrArBQAQBP,
因为KA=KB,所以会话密钥
hA=H2(IDA‖IDB‖KA)=hB=H2(IDA‖IDB‖KB)。
2)保持安全性: 通过被篡改的算法Setup*、KeyGen*、KeyAgreement*来证明协议和Kumar和Saxena的ID-AKA协议[29]的密钥协商安全性具有不可区分性。
首先,证明ID-AKA-RF密钥协商安全性的游戏已经被介绍,同时文献[29]中也介绍了ID-AKA密钥协商安全性的标准安全游戏。接下来,考虑以下游戏:
①游戏0:和介绍的游戏一样。
②游戏1:和游戏0一样,除了系统公共参数Ppub是由标准安全游戏中的Setup产生,而不是询问阶段和二次询问阶段中的Setup*和WRS. Setup产生。
③游戏2:和游戏1一样,除了用户长期私钥Si,i∈{D,C}是由标准安全游戏中的KeyGen产生,而不是询问阶段和二次询问阶段中的KeyGen*和WRS. KeyGen产生。
④游戏3:和游戏2一样,除了会话令牌Ti,i∈{A,B}是由标准安全游戏中的KeyAgreement产生,而不是询问阶段和二次询问阶段中的KeyAgreement*和WB. KeyAgreement产生。此时,游戏3是Kumar和Saxena中的ID-AKA标准安全游戏[29]。
接着,证明游戏0和游戏1、游戏1和游戏2、游戏2和游戏3的不可区分性。
③游戏2和游戏3的不可区分性:假设存在一个被篡改的算法KeyAgreement*生成会话令牌Ti,系统利用算法WB.KeyAgreement产生了一个更新后的会话令牌Ti′。Ti′对于算法KeyAgreement来说是一个一致的随机数,因为原ID-AKA协议是可重随机化的,所以Ti′可以看作由是算法KeyAgreement而不是KeyAgreement *生成的。因此,游戏2和游戏3是不可区分的。
因为Kumar和Saxena的ID-AKA协议[29]具有密钥协商安全性,所以ID-AKA-RF协议也具有密钥协商安全性。
3)提供抗泄露性: 游戏0和游戏3之间的不可区分性意味着对于注册服务器和Bob逆向防火墙能够提供消息抗泄露性。
注释1在Kumar和Saxena中的ID-AKA协议的安全模型[29]中,被妥协的PKG不能对会话的临时私钥进行询问。例如,当一次会话进行,敌手获得了一次会话的临时私钥a和b。如果被妥协的PKG泄露了用户长期私钥的秘密值rA和rB,敌手可以通过以下等式计算出会话密钥
K=SAaH1(IDB‖RB)TB=
SAaQBbRB=
rArBsabQAQBP=
rArBabQAQBPpub。
αSAabQBβrBP=
αbrArBQAQBαsP=
所以协议通过密码防火墙提高了原协议的信息抗泄露性。
5.2 性能分析
为了分析ID-AKA-RF协议的性能,将该协议与4个无需双线性对的ID-AKA协议进行比较,包括Cao等[16]、Tseng等[30]、Islam等[31]、Kumar等[29]。为了方便后面的统计, 首先用符号定义协议中所用到的运算, 如表1所示。
表1 符号定义
表2给出了这几个协议的计算成本和通信成本。因为每个用户只需要注册一次, 而每次会话都需要进行认证密钥协商,所以这里只考虑认证密钥协商阶段的计算成本和通信成本。通过表2可以看出,只有Kumar等[29]与ID-AK-RF协议在eCK模型进行了安全性证明,并且实现了抗临时会话秘密值攻击。相比于Kumar等[29]的ID-AKA协议,ID-AKA-RF协议允许敌手进行更强的KSTIA攻击,表现在于敌手在获得一次会话的临时秘密值的同时,还能够获得用户长期私钥的秘密值。
表2 与以往ID-AKA协议比较
在通信成本方面,设置了3个不同的安全等级: 80、120和128[32]。这3个安全等级分别对应于2TDEA (2-key triple-DES)[33],3TDEA (3-key triple-DES)[33]和AES-128。选择了基于有限域E(Fp)上的椭圆曲线y2=x3+xmodp。G1和G2分别是循环加法群和循环乘法群,它们的阶都为q。表3列举了在不同安全等级下p和q的值。根据表3,在80安全等级下,|Zq|=160 bits,|G1|=|G2|=1 024 bits。同样可以计算出其他两个安全等级下群G1和G2中的元素值。
表3 不同安全等级下的p和q (bits)
图5展示了不同安全等级下的ID-AKA协议通信成本,其中取用户的身份信息ID为512比特。通过比较后发现,ID-AKA-RF协议在身份认证与密钥协商阶段所需要的通信带宽窄。随着安全等级的提高,ID-AKA-RF协议带宽优势更加明显,特别是与Islam等[31]相比。
图5 不同安全等级下通信成本的比较Fig.5 Comparison of communication costs under different security levels
图6 不同安全等级下会话密钥协商运行时间的比较Fig.6 Comparison of session key agreement running time under different security levels
表4 不同安全等级下的运行时间
5.3 协议应用
研究提出的协议可以应用到需要建立会话密钥的场景。例如,在移动客户端——服务器环境中,用户(客户端)使用低功耗移动设备访问强大的服务器以便得到某种服务,如移动电子邮件、移动Web访问等。为了防止未经授权的用户访问服务器的服务,需要对用户进行身份验证。此外,客户端和服务器之间传输的消息可能是敏感的,需要在它们之间建立会话密钥。最后,为了防止后门程序扰乱认证密钥协商协议的执行,需要加装逆向防火墙功能。
6 结 论
在不使用双线性对运算的情况下构造了一种适用于基于身份认证密钥协商的逆向防火墙协议。同时在随机预言机模型中,证明了该协议能够抗泄露攻击,特别是能够抵抗强的临时秘密值泄露攻击。最后利用JPBC库,实现了该协议并进行了性能分析。在通信成本方面,该协议具有较低的带宽;在计算成本方面,虽然该协议相比于Cao等[16]和Kumar等[29]的ID-AKA协议有一定的增加,但处于合理范围内。综合安全性方面的考虑,协议与其他同类型ID-AKA协议相比具有很大的性能优势,十分适合应用于资源受限的设备中。