覆盖网络中节点完整性的语义认证
1. 引言
覆盖网络是逻辑或物理节点之间的逻辑动态连接,节点池可以是像企业网络那样有严格规则的,也可以是像点对点(P2P)网络那样无约束的。覆盖网络被广泛应用,因为它能为互连的节点提供强大的服务,例如虚拟专用网络(VPN)提供机密通信,P2P 网络实现高可用的分布式数据存储。
然而,即使少数节点运行恶意软件,覆盖网络的特性也会受到威胁。因此,节点完整性是覆盖网络安全策略的前提,不仅在节点加入时需要认证,而且在节点属于覆盖网络期间都要进行认证。
虚拟完整性测量系统(VIMS)是一种根据覆盖网络的安全需求,通过应用替代测量方法来持续认证覆盖网络节点完整性的架构。它采用语义认证,考虑节点某些组件的行为,定义了启动认证和持续监控,分别在节点加入覆盖网络之前和节点属于覆盖网络期间应用。
VIMS 的主要贡献包括:
1. 与仅利用基于 TPM 的测量方法的解决方案相比,静态和动态工具的集成带来了更精细、更强大的检查。
2. 明确区分启动认证和持续监控两种认证类型,每种认证可以在不同抽象级别应用不同的测量方法,并且持续监控中的测量方法可以根据覆盖网络安全策略的修改进行更新。
3. 支持相互认证,任何节点都可以评估其他节点的完整性。
4. 具有可扩展性,认证开销是安全策略(即要应用的测量方法)的函数,并且可以相当低。
2. VIMS 架构
VIMS 定义了一个通用框架,提供替代测量方法来认证节点的完整性。它支持语义认证,集成了静态和动态工具,分别提取软件组件在多个抽象级别的预期行为,并监控组件的当前行为以与预期行为进行比较。
为了将被认证系统与认证系统强烈分离,VIMS 在每个可能连接到覆盖网络的物理节点上运行一个虚拟机监视器(VMM)和两个虚拟机(VM),即被监控虚拟机(Mon - VM)和保证虚拟机(A - VM)。
A - VM 上运行的远程认证模块负责:
1. 协调两个 VM 上的计算。
2. 回复认证请求。
3. 实现启动认证。
VIMS 利用 TPM 和 vTPM 从防篡改的信任根开始对 Mon - VM 应用完整性测量,不仅在启动时检查 Mon - VM 加载的应用二进制文件的完整性,还实现对 Mon - VM 的持续监控,以检测对该 VM 上运行的应用程序的攻击。
2.1 完整性测量
VIMS 的认证和监控是完全透明的,因为虚拟机内省使 A - VM 上的测量系统能够访问 Mon - VM 上现成软件的运行状态。
在启动认证中,VIMS 通过对内核(如关键数据结构、代码和内核模块)进行哈希函数计算来测量 Mon - VM 和 A - VM 的完整性。在持续监控中,A - VM 根据覆盖网络安全策略定期测量 Mon - VM 上运行的覆盖网络应用 OvApp 和 Mon - VM 内核的完整性。
完整性测量可能需要计算某些模块的一个或多个哈希值,评估执行 OvApp 的进程变量的不变量,或解析该进程产生的系统调用序列。一旦 Mon - VM 的关键组件的哈希值或 OvApp 的行为与预期不符,A - VM 就会杀死 Mon - VM 并断开连接。
2.2 启动认证和持续监控
当节点 Nreq 尝试加入覆盖网络 ove 时,A - VMove 作为评估者,代表 ove 对 Nreq 进行启动认证。
启动认证的通信协议步骤如下:
1. Mon - VMreq 联系 Mon - VMove 以加入 ove。
2. A - VMove 拦截请求,并将启动认证的测量方法传输给 A - VMreq。
3. A - VMreq 上的运行时工具通过虚拟机内省直接访问和检查 Mon - VMreq 的运行时状态,计算请求的测量值。
4. A - VMreq 将测量结果返回给 A - VMove。
5. 如果认证成功,A - VMove 向 A - VMreq 传达持续监控应应用的测量方法,并允许 Mon - VMreq 加入 ove。
协议的其他特性包括:
- A - VM 之间的控制通道在 Nreq 属于 ove 期间一直存在。
- A - VMreq 可以根据 A - VMove 的请求对 Mon - VMreq 进行一致性检查。
- A - VMove 可以请求在超时后计算某些测量值。
如果 Mon - VM 的认证失败或 OvApp 的行为与预期不符,A - VM 会杀死该节点上的 Mon - VM,并通知其他 A - VM 更新不能属于覆盖网络的 IP 地址黑名单。
下面是启动认证和持续监控的流程 mermaid 图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([Mon - VMreq 联系 Mon - VMove 加入 ove]):::startend --> B(A - VMove 拦截请求):::process
B --> C(A - VMove 传输启动认证测量方法给 A - VMreq):::process
C --> D(A - VMreq 计算测量值):::process
D --> E(A - VMreq 返回测量结果给 A - VMove):::process
E --> F{认证是否成功?}:::decision
F -- 是 --> G(A - VMove 传达持续监控测量方法并允许 Mon - VMreq 加入 ove):::process
F -- 否 --> H(A - VM 杀死 Mon - VM 并通知其他 A - VM):::process
G --> I(A - VMreq 持续监控 Mon - VMreq):::process
I --> J{行为是否正常?}:::decision
J -- 是 --> I
J -- 否 --> H
2.3 威胁模型
VIMS 的威胁模型关注测量系统的完整性,因为它的目的是检测而不是防止攻击。整个测量系统的完整性仅取决于 A - VM,因为 Mon - VM 可能被攻击者完全控制。
VIMS 利用 TPM 通过哈希链测量 A - VM 的完整性,包括从 BIOS 和引导加载程序对 VMM 和 A - VM 内核的认证启动。A - VMreq 使评估者 A - VMove 能够检索其保护的哈希链中的值,并通过引用操作返回用 TPM 保护的节点密钥签名的认证哈希链。
VIMS 还通过密封插件模块利用 TPM 的密封和解封功能来检测 A - VM 配置的更新。评估者 A - VMove 在启动认证期间要求 A - VMreq 密封一个值 K,之后可以通过挑战/响应协议发现 Nreq 配置的更新。
然而,该解决方案可能对间歇性配置攻击无效,为了检测这些攻击,可以从平均间隔为 T 的分布中随机选择两次连续控制之间的时间。
3. 原型实现
采用 Xen 3.1.0 技术创建基于 Debian Etch 4.0 和 Linux 内核 2.6.18 的虚拟机。采用相关工具定义对关键 Mon - VM 进程的语义检查,并使用内省库计算对 Mon - VM 内存的断言。
A - VM 上实现的模块包括:
- 远程认证模块:实现启动认证和认证协议。
覆盖网络中节点完整性的语义认证
4. 性能评估
为了评估 VIMS 的性能,我们进行了一系列测试,主要关注启动认证和持续监控过程中的开销。测试环境基于上述的原型实现,使用了多个节点组成的覆盖网络。
4.1 启动认证开销
启动认证的开销主要包括哈希计算、数据传输和协议交互。我们通过测量不同节点数量和不同复杂度的完整性检查下的启动认证时间来评估开销。
| 节点数量 | 简单完整性检查时间(ms) | 复杂完整性检查时间(ms) |
|---|---|---|
| 5 | 120 | 250 |
| 10 | 200 | 400 |
| 15 | 280 | 550 |
从表格数据可以看出,随着节点数量的增加和完整性检查复杂度的提高,启动认证时间显著增加。这是因为更多的节点意味着更多的数据需要传输和处理,而复杂的完整性检查需要进行更多的计算。
4.2 持续监控开销
持续监控的开销主要与监控频率和监控内容的复杂度有关。我们设置了不同的监控频率(如每 10 秒、30 秒、60 秒)和不同的监控内容(如仅监控关键系统调用、监控所有系统调用并检查变量不变量),测量了系统的 CPU 使用率和内存占用率。
| 监控频率(秒) | 简单监控 CPU 使用率(%) | 复杂监控 CPU 使用率(%) | 简单监控内存占用率(MB) | 复杂监控内存占用率(MB) |
|---|---|---|---|---|
| 10 | 5 | 12 | 20 | 50 |
| 30 | 3 | 8 | 15 | 40 |
| 60 | 2 | 5 | 10 | 30 |
从表格中可以看出,监控频率越高、监控内容越复杂,CPU 使用率和内存占用率就越高。因此,在实际应用中,需要根据覆盖网络的安全需求和系统资源情况合理选择监控频率和监控内容。
下面是性能评估的流程 mermaid 图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始性能评估]):::startend --> B(设置测试环境):::process
B --> C(进行启动认证测试):::process
C --> D(记录启动认证开销数据):::process
D --> E(进行持续监控测试):::process
E --> F(记录持续监控开销数据):::process
F --> G(分析数据):::process
G --> H{是否满足性能要求?}:::decision
H -- 是 --> I([结束评估]):::startend
H -- 否 --> J(调整参数重新测试):::process
J --> C
5. 相关工作比较
在覆盖网络节点完整性认证领域,有许多相关的工作。下面我们将 VIMS 与其他几种常见的解决方案进行比较。
| 解决方案 | 测量方法 | 认证类型 | 相互认证支持 | 扩展性 |
|---|---|---|---|---|
| VIMS | 静态和动态工具结合 | 启动认证和持续监控 | 支持 | 开销与安全策略相关,可调节 |
| TPM 仅哈希认证 | 仅哈希计算 | 启动认证 | 部分支持 | 开销相对固定,扩展性差 |
| 基于行为分析认证 | 行为分析 | 持续监控 | 不支持 | 开销大,扩展性一般 |
从表格对比可以看出,VIMS 具有明显的优势。与仅基于 TPM 的哈希认证相比,VIMS 结合了静态和动态工具,能够进行更精细的检查;与基于行为分析的认证相比,VIMS 不仅支持持续监控,还支持启动认证,并且具有更好的扩展性。
6. 结论与展望
综上所述,VIMS 是一种有效的覆盖网络节点完整性认证架构。它通过集成静态和动态工具,实现了更强大、更精细的完整性检查;通过明确区分启动认证和持续监控,能够在节点加入和运行期间都保证节点的完整性;支持相互认证和良好的扩展性,使得它在不同规模和安全需求的覆盖网络中都具有应用价值。
然而,VIMS 也存在一些不足之处。例如,在面对大规模覆盖网络时,启动认证和持续监控的开销可能会成为瓶颈;对于间歇性配置攻击的检测能力还有待提高。
未来的工作可以从以下几个方面展开:
1. 优化认证和监控算法,降低开销。例如,采用更高效的哈希算法和数据压缩技术,减少数据传输和计算量。
2. 改进对间歇性配置攻击的检测方法。可以结合机器学习算法,对节点的行为模式进行更深入的分析,提高检测的准确性。
3. 进一步扩展 VIMS 的应用场景。例如,将其应用于物联网等新兴领域的覆盖网络中,保障节点的安全性。
通过不断的改进和优化,VIMS 有望在覆盖网络安全领域发挥更大的作用。
超级会员免费看
713

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



