26、密码认证密钥交换:协议与安全模型

密码认证密钥交换:协议与安全模型

1. 安全证明挑战与BMP定义优势

安全证明的挑战在于,模拟器 $A^ $ 仅能依据 $F_{PAKE}$ 提供的信息进行操作,而这些信息不包含参与者 $P_i$ 的输入密码 $pw$。不过,若 $A^ $ 成功完成模拟,那么真实世界的参与者 $A$ 对模拟消息的响应应与在真实游戏中一致(除了以极小概率区分出 $A^ $ 的模拟消息和 $P_i$ 的真实消息)。若 $A^ $ 将其与预言机 $A$ 之间发送和接收的所有消息都记录在 $transcript_{ideal}[A^*, F_{PAKE}]$ 中,理想世界的记录就可与真实世界的记录难以区分。

基于模拟的BMP定义相较于基于游戏的定义有显著优势。它能适应任意的密码分布,包括相关密码,以及任意的密码信息泄露情况。可以将BMP模型中的敌手 $A$ 拆分为两部分:$A_{real}$ 和 $A_{rm}$。$A_{real}$ 模拟“真实敌手”,即观察和/或干扰诚实参与者PAKE实例的网络攻击者;$A_{rm}$ 扮演“指挥者”角色,通过自适应地为任何会话 $P_i$ 决定密码(以及 $pid$、角色输入),模拟运行这些实例的诚实参与者的任意人为和应用驱动行为。

由于BMP模型将这两个实体结合,意味着 $A_{real}$ 和 $A_{rm}$ 可以任意通信。这一拆分反映了Canetti(2001)的通用可组合(UC)框架,其中 $A_{rm}$ 相当于UC框架中的环境 $Z$,$A_{real}$ 相当于UC框架中的敌手 $A$。

具体而言,$A_{rm}$ 可像BPR安全模型那样从字典 $D$ 中为每个 $P_i$ 选择密码,并在之后的任何时刻将该密码透露给 $A_{real}$,这意味着具备前向安全性。这表明原则上BMP安全蕴含BPR安全。此外,$A_{rm}$ 还能选择具有任意相关性的密码,并将关于这些密码的任意部分信息泄露给 $A_{real}$。而且,由于 $A_{real}$ 和 $A_{rm}$ 之间的通信是双向的,某些PAKE实例选择密码的方式会受到 $A_{real}$ 与先前PAKE协议交互时观察到的情况影响。

基于模拟的安全概念消除了BPR安全中提到的其他非自适应方面。一方面,$A_{real}$ 可自适应地决定是通过在两个会话之间扮演中间人来主动攻击某个会话,还是通过不修改消息路由来“连接”两个会话;另一方面,在基于模拟的概念中,敌手揭示的会话和测试的会话没有区别,因为 $A_{rm}$ 可将所有会话密钥传递给 $A_{real}$。这两方面都表明,如果一个PAKE方案以紧密关系实现BMP概念,那么这比相应的BPR概念更强。

BMP安全模型最初仅针对静态安全制定,即诚实参与者 $P_i$ 永远不会被攻破。不过,可以为BMP模型添加自适应会话攻破的规定。实际上,取代BMP模型的UC PAKE模型允许这种攻破情况。BMP模型对应于UC安全的静态变体,其中所有诚实参与者 $P_i$ 保持未被攻破,敌手控制网络和网络上的先验腐败实体。UC安全的自适应变体对应于BMP模型中的敌手,该敌手可以像BPR模型那样自适应地请求任何诚实 $P_i$ 的临时会话状态。需要注意的是,为了模拟这种攻破,$A^*$ 必须能够通过命令 $(Compromise, P, i)$ 请求 $P_i$ 的密码输入,因为临时PAKE会话状态尤其会揭示其执行所基于的密码输入。

2. EKE使用RO派生的一次性密码本加密

Boyko等人(2000)提供了三种PAKE协议:隐式认证的PAKE协议(如图10.4所示)、PAKE - EA协议(下文讨论)和非对称PAKE协议(见相关章节),其中非对称PAKE协议也是PPK的一种变体。

协议PPK虽未在Boyko等人(2000)中以这种方式呈现,但它是EKE的一个实例。其加密 $E$ 在群 $\langle g \rangle$ 中实现为一次性密码本,该一次性密码本通过对群进行RO哈希派生,即 $E(pw, m) = H(pw) \cdot m$。在Boyko等人(2000)中,$H$ 的输入还包括标识符 $A$、$B$,因为BMP模型强制要求实体标识符一致,但当 $A$、$B$ 不在 $H$ 输入中时,该协议可能仍实现相同功能,因为它们也包含在 $H’$ 的输入中。

对于安全论证的直觉是,一次性密码本加密并非理想密码。具体而言,密文 $c_A$(同样 $c_B$)本身并不使参与者 $A$ 对密码的选择做出承诺。然而,如果 $H$ 是随机预言机(RO),那么在群 $\langle g \rangle$ 的DH假设下,代表参与者 $A$ 发送任何 $c_A$ 的敌手最多只能为一个 $pw$ 计算定义为 $DH_{g^x}(Y) = y^x$ 的函数 $DH_{X[pw]}(\cdot)$,其中 $X[pw] = c_A \cdot (H(pw))^{-1}$。具体来说,如果攻击者能对包含 $DH_X(Y)$(其中 $Y = c_B \cdot (H(pw))^{-1}$)的输入进行 $H’$ 哈希,且 $X$ 取两个不同值 $X = X[pw_1]$ 和 $X = X[pw_2]$,那么可以通过归约解决CDH问题(此归约需谨慎进行,因为 $H(pw)$ 以不同方式影响DH挑战 $Y$ 和 $X$)。需要注意的是,模拟器 $A^ $ 只能从敌手 $A$ 对 $H’$ 的查询中了解到真实世界敌手 $A$ 使用的密码 $pw$。由于 $A$ 可在被攻击的会话 $P_i$ 终止后进行此查询,BMP模型必须允许 $A^ $ 在 $P_i$ 终止后向 $F_{PAKE}$ 发送 $(TestPwd, P, i, pw)$。

PPK协议流程如下:

Party A on input pw A
Party B on input pw B
x ←$ Zq, cA ←gx · H(pw A)
y ←$ Zq, cB ←gy · H(pw B)
-
A, cA
B, cB
Y ←cB · (H(pw A))−1
X ←cA · (H(pw B))−1
sk A ←H′(A, B, cA, cB, Y x, pw A)
sk B ←H′(A, B, cA, cB, Xy, pw B)
g generates group ⟨g⟩of order q; H, H′: RO hash onto resp. ⟨g⟩and {0, 1}κ

Boyko等人(2000)在决策性DH假设下阐述了PPK的安全性,不过这似乎是为了使归约的精确安全性更好,实际上PPK在计算性DH假设下也应保持安全。

3. 具有显式认证的PAKE(PAKE - EA)的BMP模型

之前讨论的BMP安全模型对应于具有隐式认证的PAKE。然而,Boyko等人(2000)还定义了其基于模拟的模型的一个变体,对应于具有显式认证的PAKE - EA。这通过对定义理想化方案的功能 $F_{PAKE}$ 的代码进行两处更改来实现。

首先,在处理 $(NewKey, P, i, P’, j, sk^ )$ 查询时,有两个变化。一是 $A^ $ 不能再请求 $P_i$ 以悬空状态终止;二是NewKey处理的情况3被以下情况取代:
- 3a) 如果 $P_i$ 被标记为新鲜,它是第一个完成的,$pw[P_i] = pw[P’_j]$,$pid[P_i] = P’$,并且没有其他会话在响应指定相同对端 $P’_j$ 的NewKey时输出 $sk \neq \perp$,则设置 $sk_i \leftarrow_R {0, 1}^{\kappa}$。
- 3b) 在其他所有情况下,设置 $sk_i \leftarrow \perp$。

换句话说,$P_i$ 输出 $sk_i \neq \perp$ 的唯一方式是通过情况1(即使用正确密码进行主动攻击),或者通过情况2和3a(即NewKey请求涉及两个因运行相同密码且角色和预期对端标识符匹配而配对的会话)。

第二个变化是在 $F_{PAKE}$ 规则中,这些规则决定 $A^*$ 是否可以为会话 $P_i$ 发送 $TestPwd$。由于PAKE - EA模型消除了“悬空”会话,$TestPwd$ 查询可以针对新鲜会话和以中止输出 $sk = \perp$ 终止的会话进行。

Boyko等人(2000)的PAKE - EA协议:具有密钥确认的单边EKE。该协议称为PAK,其工作方式类似于用PPK实例化的通用PAKE到PAKE - EA编译器(图10.2),但有一个优化:如果PPK按顺序使用,并且响应者的密钥确认消息被附加到其KE消息上,那么响应者可以明文发送其KE消息 $g^y$,即无需对其进行密码加密。这是因为密钥确认消息足以表明响应者在解密发起者的EKE消息时使用的密码。

4. PAKE安全的通用可组合模型

Bellare - Pointcheval - Rogaway(BPR)的基于游戏的模型和Boyko - MacKenzie - Patel(BMP)的基于模拟的模型都不尽如人意。BPR模型存在一些弱点,而BMP模型的主要弱点似乎是非标准,编写和理解BMP模型的证明需要理解一个特殊用途的模型,其后果难以评估。

5年后,Canetti等人提出了PAKE安全的通用可组合(UC)模型(Canetti等人,2005),该模型有效地将BMP模型融入了Canetti(2001)的通用UC框架。由于BPR模型比BMP模型更广泛地用作参考点,Canetti等人(2005)表明UC PAKE模型至少与BPR模型一样强,即每个UC安全的PAKE也是BPR安全的(在调整BPR模型使会话和参与者标识符的工作方式与UC PAKE模型相同时)。对于BMP模型似乎可以证明更强的陈述,即经过下面讨论的两处调整后,BMP和UC PAKE模型是等价的。

通过改进BMP模型并将其融入通用框架,Canetti等人(2005)为PAKE提供了一个比BMP模型更易于使用的基于模拟的模型。虽然仍有学习曲线,因为要理解UC PAKE证明必须理解UC框架,但它不再是仅用于PAKE协议的特殊用途框架。

UC框架允许使用基于模拟的范式来指定密码方案的安全性,与前面描述的BMP模型类似。实际上,BMP模型可以被视为该框架在PAKE中的一个特例,但两者几乎同时出现,因为它们都从多方计算(MPC)安全的基于模拟的定义中获得灵感。与BMP安全模型一样,UC框架将安全性定义为:对于任何高效的区分环境 $Z$ 和任何高效的对抗算法 $A$,真实世界游戏(其中真实世界敌手 $A$ 与执行真实世界方案 $\Pi$ 的诚实参与者交互)和理想世界游戏(其中高效的理想世界敌手,即模拟器 $A^*$ 与定义该密码方案理想化模型的功能 $F$ 交互)之间的不可区分性。

遵循这一范式,Canetti等人(2005)指定了一个理想的PAKE功能 $F_{PAKE}$(采用了Canetti和Krawczyk(2002)为UC AKE提出的一些约定),从而将UC PAKE定义为存在一个高效模拟器 $A^*$ 确保上述真实世界和理想世界游戏不可区分的协议 $\Pi$。

与BMP模型一样,UC PAKE模型确保在任意密码分布和任意密码信息泄露情况下的安全性(意味着相关密码的安全性以及在输入错误密码时的执行安全性),以及并发协议执行的安全性,包括协议输出的任意信息泄露。此外,通过融入通用UC框架,UC PAKE模型具有在任意协议组合下确保安全性的优势。如果一个PAKE协议 $\Pi$ 被证明是UC安全的,那么任何将 $\Pi$ 用作子例程的协议 $\Pi’$ 可以在将 $\Pi$ 替换为功能 $F_{PAKE}$(即“理想”PAKE方案)的简化设置中进行分析。PAKE协议确实可以这样使用,因为它们实现了一个等式测试功能,这是安全协议设计中非常自然的构建块。例如,(对称)UC PAKE协议已在多个非对称PAKE的黑盒构造中用作子协议。

UC PAKE协议的要求:Canetti等人(2005)展示的UC PAKE协议是Katz - Ostrovsky - Yung(KOY)协议(Katz等人,2001)的修改版本,KOY协议是第一个被证明为BPR安全的标准模型PAKE协议。Canetti等人(2005)提出的KOY的UC安全版本在 $A$ 的最后一条消息中添加了第二个密文 $c’_A$,该密文加密相同的密码 $pw_A$,并添加了一个模拟可靠的零知识证明,证明密文 $c’_A$ 和 $c_A$ 加密相同的值。

UC安全的PAKE往往比BPR安全的PAKE更昂贵,主要有两个原因:
- 输入提取:在UC PAKE证明中,模拟器 $A^ $ 需要从攻击者的消息中(直接)提取攻击者在该会话上测试的唯一密码 $pw^ $。这是因为在通用UC安全框架中,真实世界攻击者 $A$ 的任何动作都必须由 $A^ $ 转换为对理想功能的唯一输入。在BPR模型中没有这样的要求,许多BPR模型安全的PAKE似乎不允许这样的提取。
- 模拟“成功攻击”的参与者:在UC PAKE证明模拟器中,$A^
$ 必须在所有情况下正确模拟真实世界的视图,包括攻击者的密码猜测 $pw^*$ 与诚实会话密码 $pw$ 匹配的情况。在BPR模型中,这样的事件将结束安全游戏,因此是否有高效的模拟器可以计算被攻击参与者输出的会话密钥并不重要。实际上,Canetti等人(2005)添加到KOY协议中的神秘“密码重新加密 + NIZK”步骤的好处在于,它允许在模拟会话被攻击且模拟器必须计算被攻击的真实世界参与者将输出的会话密钥的情况下进行高效模拟。

在标准计算模型中,已知的最佳UC PAKE和BPR模型PAKE之间存在效率/假设差距,而在随机预言机模型(ROM)中,这些效率差异得到了弥补。需要注意的是,UC安全的PAKE像任何非平凡的UC功能一样,只能在公共参考字符串(CRS)模型中存在,而BPR安全的PAKE是在没有任何公共信任假设的情况下构建的,尽管具体成本要高得多。

5. 与BMP模型的差异及UC PAKE模型的放松

BMP安全模型可被视为上述范式在PAKE协议情况下的特例。然而,Canetti等人(2005)做出了一些定义选择,使他们的UC PAKE概念与Boyko等人(2000)的BMP模型有所不同。这些差异如下:
- 参与者通过命令 $(NewSession, sid, P, P’, pw, role)$ 启动,其中 $P$、$P’$、$pw$、$role$ 与BMP模型相同,但在UC PAKE模型中有一个新的输入元素,即会话标识符 $sid$,除了两个打算相互运行PAKE的参与者外,它被假定为全局唯一。与BMP一样,除 $pw$ 外的所有输入都被假定为非秘密,因此 $F_{PAKE}$ 将它们发送给 $A^*$。
- 理想世界的敌手只能为新鲜会话发送 $TestPwd$ 命令,特别是不能为以悬空状态终止的会话发送。
- NewKey规则与BMP相同,除了两个会话 $P_{sid}$ 和 $P’ {sid’}$ 只有在满足BMP模型标准(即两个会话都是新鲜的,$pw[P {sid}] = pw[P’ {sid’}]$,$pid[P {sid}] = P’$,$pid[P’ {sid’}] = P$ 且 $role[P {sid}] \neq role[P’_{sid’}]$)的基础上,还满足 $sid = sid’$ 时,才能建立相同的密钥。

与BMP模型一样,敌手可以为每个会话设置输入 $pw$ 并接收输出 $sk$,这现在由通用UC框架暗示,其中环境 $Z$ 为每个参与者确定输入并观察输出。由于UC安全意味着对于任何环境 $Z$ 和敌手 $A$,真实世界和理想世界游戏是不可区分的,所有这些值都可以不失一般性地在 $A$ 之间传递。实际上,不失一般性,可以将 $A$ 视为 $Z$ 的子过程,因此在安全证明中可以将它们视为同一实体,就像在BMP模型中一样。

UC PAKE模型的上述建模决策与BMP模型产生了两个不同之处:一是运行PAKE的参与者必须首先建立匹配的全局唯一标识符 $sid$;二是主动攻击中的密码测试必须在被攻击的会话终止之前完成。

第一个要求可以通过在每次PAKE交互之前交换随机随机数来满足,这些随机数的连接定义了 $sid$。但这会给协议增加一个额外的消息流(第二个随机数可以附加在第一个PAKE消息流上)。第二个要求意味着模拟器 $A^ $ 必须在会话 $P_{sid}$ 终止之前提取主动攻击者 $A$ 对该会话有效使用的密码猜测 $pw^ $,这排除了像Boyko等人(2000)的PPK协议这样的协议,因为其协议消息的分布与密码无关,并且 $A^ $ 可以从敌手对 $H’$ 的哈希查询中提取敌手使用的密码 $pw^ $,而这些查询可以在参与者 $P_{sid}$ 终止后进行。

这两种建模方式都可以放松,以允许使用更少轮数和更高效率的协议。虽然UC框架(Canetti 2001)要求对每个协议实例有一个局部明确的指针,但两个通信参与者的指针不必相同,PAKE功能 $F_{PAKE}$ 可以放宽为一个“机会约会”功能,允许敌手连接任何具有匹配参与者标识符和相反角色的两个会话。甚至可以进一步去除UC PAKE参与者预先指定其对端标识符的要求,并将会话和参与者标识符都设置为PAKE的输出。

Boyko等人(2000)的终止后密码测试通过Abdalla等人(2020)的延迟提取UC PAKE重新引入到UC框架中。除了匹配 $sid$ 的要求(Abdalla等人 2020),Abdalla等人(2020)的延迟提取UC PAKE模型似乎与BMP模型等价。因此,图10.4中的PPK在进行简单调整以满足UC PAKE匹配 $sid$ 要求后,可能是一个安全的延迟提取UC PAKE。

6. PAKE - EA的UC变体

显式认证的PAKE首先在UC框架内针对客户端 - 服务器认证的情况由Abdalla等人(2008)进行了形式化,然后由Groce和Katz(2010)针对相互认证的情况进行了形式化。从技术上讲,UC PAKE - EA在Abdalla等人(2008)和Groce和Katz(2010)中通过一个功能来定义,该功能通过消除终止后密码测试并为两个配对会话建立密钥创建更严格的规则,加强了基于模拟的BMP的PAKE - EA变体,特别是确保如果一个诚实参与者输出 $sk \neq \perp$,那么其配对的对端只能输出 $sk’ = sk$ 或 $\perp$。

综上所述,不同的PAKE安全模型各有优缺点,并且在不同的场景和需求下发挥着重要作用。随着密码学的发展,未来可能会有更高效、更安全的PAKE协议和安全模型出现。

密码认证密钥交换:协议与安全模型

7. 各模型关键特性对比

为了更清晰地理解不同PAKE安全模型的特点,下面对BMP、BPR和UC PAKE模型的关键特性进行对比,具体内容如下表所示:
| 模型 | 密码分布适应性 | 密码信息泄露处理 | 主动攻击决策 | 会话密钥处理 | 安全类型 | 特殊要求 |
| — | — | — | — | — | — | — |
| BMP | 适应任意密码分布,包括相关密码 | 可处理任意密码信息泄露 | $A_{real}$可自适应决定攻击或连接会话 | $A_{rm}$可传递所有会话密钥 | 最初为静态安全,可扩展为自适应安全 | 无 |
| BPR | 未明确提及可适应任意密码分布 | 未明确提及可处理任意密码信息泄露 | 未明确提及自适应攻击决策 | 未明确提及会话密钥传递情况 | 有自适应安全特性 | 无 |
| UC PAKE | 适应任意密码分布,包括相关密码 | 可处理任意密码信息泄露 | 未明确提及自适应攻击决策 | 可通过环境$Z$传递会话密钥 | 有静态和自适应安全变体 | 需要全局唯一会话标识符$sid$,主动攻击密码测试需在会话终止前完成 |

从这个对比表格中可以看出,BMP和UC PAKE模型在密码分布适应性和密码信息泄露处理方面表现相似,但UC PAKE模型有额外的特殊要求。BPR模型在一些特性上的描述相对不够详细,与BMP和UC PAKE模型存在一定差异。

8. 协议效率与安全性权衡

在实际应用中,选择合适的PAKE协议需要在效率和安全性之间进行权衡。不同模型下的PAKE协议在效率和安全性方面有不同的表现。

在标准计算模型中,已知的最佳UC PAKE和BPR模型PAKE之间存在效率/假设差距。UC安全的PAKE往往更昂贵,主要原因在于输入提取和模拟“成功攻击”的参与者这两个方面的要求。而BPR安全的PAKE在没有任何公共信任假设的情况下构建,不过具体成本较高。

在随机预言机模型(ROM)中,UC PAKE和BPR模型PAKE的效率差异得到了弥补。这表明在不同的计算模型下,协议的效率表现会有所不同。

下面是一个简单的流程图,展示了在选择PAKE协议时考虑效率和安全性的决策过程:

graph TD;
    A[开始] --> B{应用场景需求};
    B -->|对效率要求高| C{计算模型};
    B -->|对安全性要求高| D{是否能接受公共信任假设};
    C -->|标准计算模型| E[考虑BPR模型PAKE];
    C -->|随机预言机模型| F[可综合考虑UC PAKE和BPR模型PAKE];
    D -->|是| G[考虑UC PAKE];
    D -->|否| H[考虑BPR模型PAKE];
    E --> I[结束];
    F --> I;
    G --> I;
    H --> I;
9. 未来发展趋势展望

随着密码学的不断发展,PAKE协议和安全模型也将不断演进。未来可能会朝着以下几个方向发展:

  • 更高效的协议设计 :目前UC安全的PAKE在标准计算模型下效率较低,未来可能会设计出更高效的协议,减少计算和通信开销,同时保持高安全性。例如,可以探索新的加密算法和协议结构,优化输入提取和模拟过程。
  • 融合多种安全特性 :将不同模型的优点进行融合,设计出既能适应任意密码分布和信息泄露,又能在各种攻击场景下保持高效安全的协议。例如,结合BMP模型的灵活性和UC模型的通用可组合性。
  • 适应新的应用场景 :随着物联网、区块链等新兴技术的发展,PAKE协议需要适应这些新的应用场景,满足不同的安全和性能需求。例如,在资源受限的物联网设备上实现高效的PAKE协议。
10. 总结

本文详细介绍了密码认证密钥交换(PAKE)的多种协议和安全模型,包括BMP、BPR和UC PAKE模型。BMP模型具有适应任意密码分布和信息泄露的优势,可拆分为$A_{real}$和$A_{rm}$两部分,反映了UC框架的思想。PPK协议是EKE的一个实例,在不同假设下具有一定的安全性。PAKE - EA的BMP模型通过对$F_{PAKE}$的代码更改实现显式认证。

UC PAKE模型将BMP模型融入通用可组合框架,具有在任意协议组合下确保安全性的优势,但也存在一些与BMP模型不同的要求。不同模型在密码分布适应性、效率和安全性等方面各有特点,在实际应用中需要根据具体需求进行选择。未来,PAKE协议和安全模型有望朝着更高效、融合多种特性和适应新应用场景的方向发展。

通过对这些内容的深入理解,开发者和研究人员可以更好地选择和设计适合不同场景的PAKE协议,保障通信的安全性和可靠性。

希望本文能为对PAKE感兴趣的读者提供有价值的参考,帮助大家进一步探索密码认证密钥交换领域的奥秘。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值