Page 265 - 《软件学报》2020年第10期
P. 265
张启慧 等:改进的三方口令验证元认证密钥交换协议 3241
2 安全模型
[5]
本节介绍用于分析三方 PAKE 协议的安全模型,该模型首先由 Abdalla 等人提出 ,随后,文献[29,32]对其进
行了改进.此外,在定义攻击者优势时,考虑到真实口令分布并不服从均匀分布,而是服从严重偏态的 Zipf 分
布 [33] ,我们采用了类似于文献[34]的方式对其进行了改进.
协议参与方.三方 PAKE 协议的参与方包含两个集合:所有用户组成的集合U以及可信服务器组成的集合S.
其中,用户集合U又分为诚实用户集合C和恶意用户集合E,恶意用户集合形式化了意图攻击其他用户的恶意用
户.不失一般性,常常假设服务器集合仅包含一个元素S={S}.
长期密钥.用户集合U中的每一个用户 U∈U都拥有一个口令 π U ,服务器拥有口令列表 pw S = pw〈 S []U 〉 U∈U , 其
中, pw S [] { ,U = s H U }由口令 π U 相对应的盐值 s U 和口令哈希值 H U 组成.
U
j
协议运行模型.假设每个用户或服务器都可能同时运行多个会话,记 U i 表示用户 U 的第 i 个会话,S 表示服
务器 S 的第 j 个会话.概率多项式时间(PPT)攻击者 A 完全控制通信网络,可以随意窃听、修改、伪造、延迟、
删除消息.形式化地讲,攻击者具有询问下述预言的能力.
j
2 i
1 i
1 i
,
● Execute (U S j ,U 2 2 i ) : 模型化攻击者对协议的被动窃听攻击.让用户会话 U 、 U 和服务器会话 S 诚实运
1
1
2
行协议,然后输出用户和服务器之间交换的所有消息.
i
i
● SendClient(U ,m):模型化攻击者对用户会话的主动攻击.攻击者将消息 m 发送给用户会话 U ,然后输出会
i
话 U 在收到消息 m 后的响应消息.
j
j
● SendServer(S ,m):模型化攻击者对服务器会话的主动攻击.攻击者将消息 m 发送给服务器会话 S ,然后输
j
出会话 S 在收到消息 m 后的响应消息.
i
i
● Reveal(U ):模型化会话密钥泄露或丢失.攻击者发给该询问,即可获得会话 U 的所拥有的会话密钥.
● Corrupt(U):模型化敌手腐化用户攻击.攻击者发出该询问,即可获得用户 U 的口令以及用户 U 中所有会
话的内部状态.
● Corrupt(S):模型化敌手腐化服务器攻击.攻击者发出该询问,即可获得服务器 S 中存储的口令列表
pw =〈 pw S []U 〉 U∈ = 〈 { ,s H U }〉 U∈U U .
S
U
i
i
● Test(U ):用以刻画会话密钥的安全性.如果用户会话 U 已经生成会话密钥,则抛掷一枚均匀的硬币
i
b∈ {0,1}. 若 b=1,输出会话 U 的真实会话密钥;若 b=0,输出与会话密钥等长度的随机比特串.
i
i
i
对每个用户会话 U ,记 sid 为会话标识, pid 为其意定通信会话.如果一个会话顺利完成且已生成会话密
U
U
钥,则称其为已经接受(accepted).
2 i
1 i
2 i
1 i
1 i
2 i
匹配会话.称两个会话 U 和 U 是匹配的,如果:(1) U 和 U 都已接受;(2) U 和 U 有相同的会话标识
1
2
2
1
1
2
1 i
2 i
2 i
2 i
1 i
sid;(3) U 和U 互为意定通信方;(4) 除会话U 和U 外没有其他会话的意定通信方为U 或U 1 1 i .
1
1
2
2
2
i
i
i
新鲜会话.称一个会话 U 是新鲜的,如果:(1) U 已接受;(2) 攻击者未对 U 或其匹配会话发起 Reveal 询问;
i
(3) 在会话 U 接受之前,攻击者未对用户 U 以及服务器发起过 Corrupt 询问.
语义安全.在协议运行过程中,PPT 攻击者 A 能以任意顺序发出 Execute、SendClient、SendServer、Reveal
和 Corrupt 询问,但只能针对某个新鲜的用户会话发出一次 Test 询问.最终, A 输出一个比特 b′作为 Test 中的随
机比特 b 的猜测,若 b′=b,则认为攻击者攻击成功,并记该事件为 Succ.假设所攻击的协议为 P,相应口令字典为
D,我们定义攻击者 A 的优势为 Adv ake , PD () =A 2Pr[Succ ] 1− .若对所有发起主动攻击的次数至多为 q send 的 PPT 攻
s′
′
击者 A ,其优势 Adv ake , PD ()A 只比 Cq ⋅ send 大一个可忽略量,则称协议 P 是语义安全的,其中,C′和 s′是相应于字典 D
的 Zipf 参数 [33] .例如,当利用天涯论坛泄露的口令集作为口令分布的模型时,可以得到 C′=0.062239 和 s′=
0.155478 [34] .
会话密钥私密性.为了防止诚实但好奇的(Honest-but-Curious)服务器获知最终的会话密钥,需特别考虑一
个知道所有用户口令的攻击者 A ,并假设 A 能够询问 Execute、SendClient、Reveal 和 Corrupt 预言以及下述
TestPair 预言.