安全协议定时方面的多重集重写模型解析
1. 引言
在安全协议的验证和规范中,考虑时间因素至关重要。传统的模型可能无法准确反映现实世界中消息传输和处理的时间限制,因此需要引入更精确的定时模型。本文将介绍一种多重集重写(MSR)模型,用于指定和验证安全协议的定时方面,包括定时入侵者模型、验证问题以及复杂度分析。
2. 定时入侵者模型
2.1 标准 Dolev - Yao 入侵者的局限性
标准的 Dolev - Yao 入侵者(DY)能够在任何时间和地点拦截和发送消息,这在现实中是不合理的,因为它违反了物理定律,速度似乎超过了光速。为了更准确地验证定时协议,我们需要引入更合适、能力较弱的入侵者理论。
2.2 定时入侵者的特点
我们的定时入侵者仍然具备标准 DY 入侵者在消息组合和分解方面的能力,包括加密和生成随机数,但它们会遵守与时间相关的物理定律。此外,我们还考虑了具有有限内存的入侵者。
2.3 入侵者的标识和知识表示
为了模拟多个入侵者的存在,我们为每个入侵者分配一个标识(id)。通过事实 M(id, X) 和 P(id) 来表示特定入侵者的知识和内存:
- M(id, x)@t 表示入侵者 id 从时刻 t 开始知道术语 x。
- P(id)@t 表示有限内存入侵者 id 从时刻 t 开始有一个可用的内存槽(空事实)。
2.4 入侵者规则的时间成本
为了模拟处理时间,每个入侵者规则都有一个相关的时间成本,由函数 dur 指定。例如,加密通常比消息对的组合花费更多的时间。
2.5 有限内存定时 Dolev - Yao 入侵者
有限内存定时 DY 入侵者的规则是平衡的,并且包含表示入侵者可用内存的空事实。一般的无界内存定时 DY 入侵者理论可以通过从图 3 的理论中删除空事实和内存管理规则得到。
在时间 T,入侵者 I 只能访问已知的术语 M(I, X)@T ′ 和空内存槽 P(I)@T ′,并且所有出现在规则左侧的空事实 P(I)@T ′ 都有相关的时间约束 T ′ ≤ T,以确保在当前时间 Time@T 有可用的内存槽。
删除内存中的事实(由 DELM 规则表示)也可能需要时间。COMP 规则通过 dur 函数有两个相关的时间常数,一个表示生成消息对所需的时间,另一个表示使空事实可用所需的时间。REC 和 SND 规则与入侵者在传输介质上接收和发送消息有关,并且入侵者必须遵守与消息传递和传输介质可用性相关的物理定律。
此外,攻击者可以通过发送大量消息来阻塞通道,通过 SND 规则消耗 E 事实来耗尽系统的网络。为了表示特定通道的容量,可以添加表示网络带宽的特殊空事实并与每个通道关联。对于特定场景,其他入侵者能力也可能相关,例如在无线通道上操纵消息的能力,可以通过添加 Xor 函数和相应的入侵者规则在我们的模型中形式化。
3. 验证问题
3.1 可达性问题的可判定性
一般来说,MSR 的可达性和相关问题是不可判定的。但通过施加一些限制,如只使用平衡规则和限制事实的大小,这些问题在具有新值的定时模型中变得可判定。用于协议验证的平衡系统隐式地限制了可以并发执行的协议会话的数量,但跟踪中的会话数量是无界的。
3.2 安全协议验证中的问题
在安全协议的验证中,可以考虑各种问题,以下是一些常见的问题:
3.2.1 保密问题
给定一个协议理论 P、网络理论 N、入侵者理论 I1, …, Ik 和一个初始配置 S0,表示初始协议设置(包括密钥分配、通信能力、网络距离)以及一个只有某个代理知道的常量 s,协议理论 P 的保密问题是确定是否可以使用 N、I1, …, Ik 和 P 中的规则从 S0 到达包含事实 M(I, s)(对于某个入侵者标识符 I)的配置。换句话说,就是确定入侵者是否可以学习到最初只有诚实代理知道的秘密 s。
3.2.2 错误接受问题
给定一个具有距离界限 R 的 DB 协议理论 P、网络理论 N、入侵者理论 I1, …, Ik 和一个初始配置 S0,表示初始协议设置(包括密钥分配、通信能力等),错误接受问题是确定是否可以使用 N、I1, …, Ik 和 P 中的规则从 S0 到达一个表示验证者授予入侵者或位于边界 R 之外的证明者访问权限的配置。
3.2.3 错误拒绝问题
给定一个具有距离界限 R 的 DB 协议理论 P、网络理论 N、入侵者理论 I1, …, Ik 和一个初始配置 S0,表示初始协议设置(包括密钥分配、通信能力等),错误拒绝问题是确定是否可以使用 N、I1, …, Ik 和 P 中的规则从 S0 到达一个表示验证者拒绝授予位于边界 R 之内的诚实证明者访问权限的配置。
3.3 示例:Hancke - Kuhn 协议理论
Hancke - Kuhn(HK)距离限制协议旨在确保证明者 P 位于验证者 V 的附近。假设证明者和验证者共享一个长期秘密密钥 K 和一个公共哈希函数 h。
3.3.1 协议的初始阶段
在协议的初始阶段,验证者和证明者生成随机数 NV 和 NP,用于使用 K 和 h 计算 2n 位的序列:h = h(K, NV, NP) = R01, …, R0n || R11, …, R1n,其中 Rji ∈ {0, 1}。设 s = ⟨K, h, NV, NP⟩ 表示在特定协议会话的初始阶段后,两个参与者都知道的数据。
3.3.2 单比特交换阶段
初始阶段之后是一系列 n 个单比特交换。在第 i 轮中,验证者发送一个随机挑战比特 Ci,证明者根据 Ci 的值立即回复 R0i(如果 Ci = 0)或 R1i(如果 Ci = 1)。我们使用随机数生成和一个返回比特的函数 b 来形式化验证者的随机比特生成,即 b(x) ∈ {0, 1}。使用一个函数 r 根据比特 Ci 和 h 返回第 i 轮的正确比特 RCii,即 r(i, h, x) =
[
\begin{cases}
h_i, & x = 0 \
h_{n + i}, & x = 1
\end{cases}
]
对于每一轮,验证者记录发送挑战比特的时间和收到响应的时间。在协议的最后阶段,验证者计算与证明者的距离并检查响应是否正确。如果所有比特交换的时间测试都成功(不超过预定义的距离界限 R)并且所有 n 个比特都正确交换,验证者将授予证明者访问权限。考虑到可能的错误(例如噪声),验证者的决策可以参数化,例如,如果在 n 轮中的 k1 轮中时间测试满足,并且 n 个响应比特中的 k2 个正确,则授予访问权限。
3.3.3 形式化表示
为了说明,我们只形式化了具有 n 个挑战 - 响应轮的 HK 协议的比特交换阶段。假设 HK 协议会话 S 的初始阶段已经完成,用事实 SV0(S, s, h, 1) 和 SP0(S, s, h, 1) 表示验证者和证明者角色的初始协议状态。完成 n 轮比特交换用事实 SV4(S, s, h) 表示。
初始配置除了代理使用传输介质、密钥等的能力外,还包括以下辅助事实:
- Bits(S, 0)@0 表示具有正确比特响应的轮数。
- Test(S, 0) 表示成功通过时间测试的轮数。
由于协议的距离测量阶段在技术上执行时与读取和响应比特相关的处理时间可以忽略不计,我们将相关处理时间设置为零。为了模拟实际的验证者(通常不是非常强大的处理器,以一定的时钟速率运行),形式化区分了发送挑战比特或接收响应比特的实际时间和记录时间,通过时间约束 T > T1 实现,其中 T 是全局时间,T1 是发送或接收比特的实际时间。或者,可以使用函数 dur 来指定特定的时间延迟。
3.3.4 攻击表示
-
错误接受问题
:对于图 5 中给定的 HK 协议规范,具有协议距离界限 R,错误接受问题(表示在时钟滴答之间的攻击)可以指定为一个可达性问题,目标配置为:
{Start(S, X1)@T11, Stop(S, X1)@T12, …, Start(S, Xk1)@Tk11, Stop(S, Xk1)@Tk12, Decision(S, ok)@T} | {T12 - T11 > R, …, Tk12 - Tk11 > R}
更一般的错误接受可以用目标配置 SV5(S, A, C, X)@T, SP2(S, B, C, Y)@T1, Decision(S, ok)@T2 表示,其中 D(A, B, C) > R。 - 错误拒绝问题 :错误拒绝可以用目标配置 SV5(S, A, C, X)@T, SP2(S, B, C, Y)@T1, Decision(S, reject)@T2 表示,其中 D(A, B, C) ≤ R。
-
提前猜测攻击
:提前猜测攻击可以通过检查响应比特是否在必要的传输时间之前收到来捕获,目标配置为:
Decision(S, ok)@T, SV5(S, A, C, X)@T, SP2(S, B, C, Y)@T1, Start(S, i)@T2, Stop(S, i)@T3 | T3 - T2 < 2D(A, B, C)
3.4 示例:带超时的 Needham - Schroeder 协议
带超时的 Needham - Schroeder(NS)协议中,发起者角色 A 有一个相关的超时。只有在预期的回复消息在超时时间内收到时,才会发送最终的协议消息,否则会话结束。
3.4.1 协议的形式化表示
带超时的 NS 协议的平衡定时理论如图 6 所示。协议状态 SA0 有相关的超时。这里,* 表示一个虚拟常量,di 表示动作持续时间的常量,b0 表示超时的常量。为了简单起见,我们使用公钥来表示代理的名称,Agent 谓词用于指定公钥,而属于诚实参与者的公钥和私钥对用 Guy 事实表示。
3.4.2 协议的安全性
协议的安全性通常考虑“接受”的随机数 NA 和 NB 是否只被执行协议的 Alice 和 Bob 知道。该协议仍然容易受到定时版本的 Lowe 攻击,但一个合适的超时可以增强协议的安全性。
3.4.3 示例分析
假设 d0 = d1 = d2 = d3 = d4 = 1,即所有动作都需要一个时间单位来执行。设 b0 = 10,即状态 SA0 在 10 个时间单位后超时。设 D(kA, kB, c) = D(kB, kA, c) = 3。在这种设置下,执行规则 ROLES、A1、B1 和网络规则至少需要 (1 + 1 + 3 + 1 + 3 = 9) 9 个时间单位,即 Alice 可以期望在设置的超时内收到回复并使用规则 A2 继续协议执行。
考虑 Mallory 位于 Alice 和 Bob 之间的最优位置,D(kA, kM, c) = D(kM, kA, c) = 2,D(kB, kM, c) = D(kM, kB, c) = 1。为了简单起见,假设 Mallory 入侵者规则也有一个时间单位的相关时间成本。Mallory 需要拦截、解密、加密和发送消息,这将需要一些额外的时间。现在,从 ROLES 到 A2 规则的协议、入侵者和网络规则的执行至少需要 15 个时间单位(Mallory 必须使用 REC、DEC、ENC、SND 规则序列,然后是 REC 和 SND 规则),此时协议会话超时,Lowe 类型的攻击失败。如果超时设置得足够高(例如 b0 = 20),模型中会有一个表示 Lowe 攻击的跟踪。
4. 复杂度结果
4.1 问题描述
定时 MSR 理论(包含网络、协议和入侵者理论)是用于指定和验证安全协议的一般定时 MSR 的一部分。我们基于之前对定时 MSR 的保密问题和可达性问题的复杂度结果,得到了第 6 节中描述的定时版本保密问题的复杂度结果。需要注意的是,这种验证涉及到并发协议会话数量有限但总协议会话数量无界的跟踪。
4.2 定理及证明
4.2.1 定理 1
在假设事实大小有界的情况下,关于有限内存定时 Dolev - Yao 入侵者、平衡网络和协议理论的保密问题是 PSPACE 完全的。
4.2.2 证明
- 上界证明 :我们依赖于具有实时的一般 MSR 可达性问题的 PSPACE 完全性,因为保密问题是可达性问题的一个实例。定时 MSR 的规则包含网络、协议和入侵者理论。可达性问题的目标被指定为一个包含 M(I, s)@T(对于某个入侵者标识符 I)且没有附加时间约束的配置。因此,从相关结果可知,当考虑平衡定时网络、协议和入侵者理论且事实大小有界时,保密问题属于 PSPACE。
- 下界证明 :下界来自于无定时版本的有限内存入侵者和平衡 MSR 协议理论的保密问题的 PSPACE 完全性。可以通过向事实添加时间戳、根据定义 2 和图 3 向协议和入侵者理论的规则添加时间约束,并考虑一些任意的网络拓扑和一个所有代理和入侵者都可以用于发送和接收消息的单一传输通道,将其编码为定时保密问题。具体来说,定时协议理论的协议状态没有附加超时。时间戳的精确值、规则的持续时间以及消息传输时间(由拓扑指定)对编码没有影响。实际上,目标是入侵者发现秘密,无论花费多少时间,因为目标不涉及相关的时间约束,并且所有附加到网络、入侵者和协议规则的约束都不影响编码。
5. 总结
本文介绍的多重集重写模型为安全协议的定时方面提供了一种有效的指定和验证方法。通过引入定时入侵者模型,我们能够更准确地模拟现实世界中的攻击场景。验证问题的定义和示例展示了如何使用该模型来分析协议的安全性。复杂度结果为协议验证的可行性提供了理论依据。在实际应用中,可以根据具体的协议需求和安全要求,选择合适的入侵者模型和验证方法,以确保协议的安全性和可靠性。
以下是相关的 mermaid 流程图:
graph TD;
A[初始配置] --> B[协议执行];
B --> C{是否满足条件};
C -- 是 --> D[授予访问权限];
C -- 否 --> E[拒绝访问权限];
以下是一个简单的表格,总结了本文中提到的验证问题:
| 验证问题 | 描述 |
| — | — |
| 保密问题 | 确定入侵者是否可以学习到最初只有诚实代理知道的秘密 s |
| 错误接受问题 | 确定验证者是否会授予入侵者或位于边界 R 之外的证明者访问权限 |
| 错误拒绝问题 | 确定验证者是否会拒绝授予位于边界 R 之内的诚实证明者访问权限 |
6. 技术点分析
6.1 定时入侵者模型的优势
定时入侵者模型相较于标准 Dolev - Yao 入侵者模型有显著优势。标准模型中入侵者能在任意时间和地点操作,不符合现实物理定律。而定时入侵者模型考虑了时间因素,更贴合实际情况。例如,在实际网络中,消息传输需要时间,加密和解密操作也有相应的处理时间。定时入侵者模型通过为每个规则分配时间成本,能够准确模拟这些现实情况。
6.2 平衡规则和事实大小限制的作用
在 MSR 中,可达性问题一般是不可判定的。但通过使用平衡规则和限制事实大小,这些问题在定时模型中变得可判定。平衡规则隐式地限制了并发执行的协议会话数量,这有助于控制模型的复杂度。同时,限制事实大小也使得模型更易于分析和验证。例如,在协议验证中,这可以确保系统不会因为过多的并发会话而陷入不可预测的状态。
6.3 协议验证问题的重要性
不同的验证问题,如保密问题、错误接受问题和错误拒绝问题,对于确保安全协议的可靠性至关重要。保密问题关注秘密信息是否会被入侵者获取,这是安全协议的核心目标之一。错误接受问题和错误拒绝问题则涉及到协议在实际应用中的准确性,避免验证者做出错误的决策。例如,在访问控制系统中,错误接受可能导致非法用户获得访问权限,而错误拒绝则可能阻止合法用户正常使用系统。
6.4 示例协议的分析价值
通过 Hancke - Kuhn 协议和带超时的 Needham - Schroeder 协议这两个示例,我们可以更直观地理解如何使用多重集重写模型进行协议验证。Hancke - Kuhn 协议的形式化表示展示了如何处理单比特交换和时间测试,以及如何检测不同类型的攻击。带超时的 Needham - Schroeder 协议则说明了超时机制在增强协议安全性方面的作用。这些示例为实际协议的设计和验证提供了参考。
7. 操作步骤总结
7.1 协议建模步骤
- 定义协议理论、网络理论和入侵者理论。
- 确定初始配置,包括密钥分配、通信能力等信息。
- 对于每个协议规则,分配相应的时间成本。
- 考虑使用平衡规则和限制事实大小,以确保可达性问题可判定。
7.2 验证问题求解步骤
- 明确要验证的问题,如保密问题、错误接受问题或错误拒绝问题。
- 将问题转化为可达性问题,指定目标配置。
- 使用合适的算法或工具来求解可达性问题。
- 根据求解结果判断协议是否满足安全要求。
7.3 攻击检测步骤
- 针对不同类型的攻击,定义相应的目标配置。
- 在协议执行过程中,检查是否能够达到这些目标配置。
- 如果达到目标配置,则说明协议可能存在安全漏洞,需要进一步分析和改进。
8. 复杂度分析的意义
复杂度分析为协议验证的可行性提供了理论依据。PSPACE 完全性结果表明,在一定条件下,保密问题可以在多项式空间内解决。这意味着在实际应用中,我们可以使用合理的计算资源来验证协议的安全性。同时,复杂度分析也有助于我们理解问题的难度,为算法设计和优化提供指导。
9. 未来展望
虽然本文介绍的多重集重写模型已经取得了一定的成果,但仍有一些方面可以进一步研究和改进。例如,可以考虑更复杂的入侵者模型,包括具有自适应能力的入侵者。还可以探索如何将该模型应用于更广泛的安全协议,如物联网协议和区块链协议。此外,对于验证问题的求解算法,可以进行优化,以提高验证效率。
以下是另一个 mermaid 流程图,展示协议验证的整体流程:
graph LR;
A[协议建模] --> B[定义验证问题];
B --> C[求解可达性问题];
C --> D{是否满足安全要求};
D -- 是 --> E[协议安全];
D -- 否 --> F[分析改进协议];
F --> A;
以下是一个表格,总结了不同协议示例的特点:
| 协议示例 | 特点 |
| — | — |
| Hancke - Kuhn 协议 | 用于距离限制,通过单比特交换和时间测试验证证明者位置 |
| 带超时的 Needham - Schroeder 协议 | 引入超时机制,增强协议安全性,防止 Lowe 攻击 |
通过以上内容,我们可以看到多重集重写模型在安全协议定时方面的重要性和应用价值。它为我们提供了一种系统的方法来指定、验证和分析安全协议,有助于确保协议在实际应用中的安全性和可靠性。
超级会员免费看
2万+

被折叠的 条评论
为什么被折叠?



