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 预言.
   260   261   262   263   264   265   266   267   268   269   270