安全协议验证与外包数据库查询认证技术解析
1. 安全协议验证中的插值应用
1.1 实验实现
为了验证安全协议,研究人员实现了一个名为 SPiM(Security Protocol interpolation Method)的 Java 原型。该原型基于 Z3 进行可满足性检查,基于 iZ3 进行插值生成。在算法上,采用了改进版的方法,仅在注释能有效停止其他路径执行时才进行传播,即在回溯过程中,只对尚未访问的路径可能到达的位置和边进行注释。
1.2 实验测试
为了验证该方法能加快验证速度,研究人员在 NSL 和 NSPK 协议上对 SPiM 进行了有插值部分(包含 Learn 和 Conjoin 规则)和无插值部分的测试。测试在通用计算机上进行,NSPK 的总执行时间为 8 秒,NSL 为 83 秒。对于 NSPK,由于没有剪枝路径,两种版本的算法执行时间相同;而在 NSL 上,使用插值时,SPiM 的速度快 1.5 - 3.5%(具体取决于计算机性能)。这表明,即使注释方法没有显著剪枝搜索空间(在 NSL 中仅节省了两步符号执行),使用基于插值的注释也能减少验证时间。此外,在 NSL 示例的执行过程中观察到,计算和传播插值的平均时间比执行一步符号执行并进行相应可满足性检查的平均时间低 9.1 - 27.3%。
1.3 方法概述
该方法从正式的安全协议规范出发,结合 Craig 插值、符号执行和标准的 Dolev - Yao 入侵者模型来搜索协议的可能攻击目标。具体而言,采用了 McMillan 提出的 IntraLA 算法。与其他使用 IntraLA 的方法不同,该方法在构建控制流图方面有所创新,以适应安全协
超级会员免费看
订阅专栏 解锁全文
294

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



