A Sound Translation from Tamarin to ProVerif: Enabling Comparative Analysis
本文提出了一种从 Tamarin 到 ProVerif 的可靠转换,通过将 Tamarin 的多重集重写语义编码为 ProVerif 的应用 pi 演算,实现了对安全协议验证工具的严谨比较分析,在实现高覆盖率和显著性能提升的同时,形式化地刻画了忠实转换的极限。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下你是一名试图破解谜题的侦探,但你的“犯罪现场”不是一个犯罪现场,而是一个可能被狡猾黑客破解的秘密代码。在计算机安全领域,这些规则被称为协议(protocols)——它们是让你的手机与银行通信,或让你的游戏机与服务器通信的规则。问题在于,这些规则如此复杂,以至于即使是最聪明的人类侦探也可能会忽略掉黑客可以潜入的微小漏洞。因此,科学家们构建了“自动化侦探”,即超级聪明的计算机程序,旨在检查这些规则中的漏洞。
其中两个最著名的自动化侦探分别名叫 Tamarin 和 ProVerif。你可以把它们看作是两种完全不同的调查风格。Tamarin 就像是一位细致、行动缓慢的图书管理员,它会逐一检查书架上的每一本书,以确保没有遗漏。它极其彻底,极少出错,但完成工作可能需要很长时间。相比之下,ProVerif 则像是一位闪电般的速读专家,快速浏览书架。它可以在几秒钟内检查完一座巨大的图书馆,但由于它是在“扫读”,有时可能会误以为发现了问题(即“虚假警报”)。
多年来,这两位侦探一直在各自独立的办公室工作。因为它们使用的“语言”不同,方法也不同,以至于几乎无法直接对它们进行比较。你无法轻松地询问:“ProVerif 的速度是否值得承担错过真实问题的风险?”或者“Tamarin 的缓慢是否真的能捕捉到 ProVerif 会错过的东西?”这篇论文的内容就是关于构建一个神奇的翻译器,让这两位侦探能够互相交流,从而让他们能够并肩解决同一个案例,以观察谁更快、谁更准确,以及各自的优势在哪里。
伟大的侦探翻译器
本文的作者 Kevin Morio、Yavor Ivanov 和 Robert Künnemann 构建了一个**可靠的翻译(sound translation)**工具。在科学领域,“可靠(sound)”是一个表示“值得信赖”的高级说法。他们创建了一个系统,可以将编写在 Tamarin 这种缓慢但精确的语言中的安全协议,自动重写为 ProVerif 这种快速但侧重扫读的语言。
但棘手之处在于:如果两种语言的语法规则不同,你就不能仅仅进行逐字翻译。Tamarin 使用一种称为**多重集重写规则(multiset rewrite rules)**的方法,这就像拥有一叠实体的卡片,你只能使用一次卡片,用完后卡片就会消失。而 ProVerif 使用的是所谓的 applied-π calculus,这更像是一个数字数据库,其中的条目可以被复制和重复使用。为了使翻译奏效,作者发明了新技巧,强制 ProVerif 表现得像是在使用会消失的实体卡片一样,以确保它不会意外地重复使用“卡片”并制造出虚假问题。他们还研究了如何处理“同时发生的事件”——即 Tamarin 说两件事在同一时刻发生,而 ProVerif 则坚持一切都是先后发生的时刻。他们通过给每个事件分配一个唯一的 ID 标签解决了这个问题,这样 ProVerif 就知道哪些事件属于同一个时刻。
他们的发现:速度 vs. 准确性
团队不仅构建了翻译器,还对其进行了测试。他们提取了 121 个不同的安全模型(可以将其视为 121 种不同的锁与钥匙系统),并让 Tamarin 和经过新 ProVerif 翻译后的版本同时运行。
结果非常引人入胜:
- 一致性: 在两者都能成功运行的 562 项特定安全检查(称为“引理任务”)中,246 出 247 的非复杂情况完全一致。如果 Tamarin 说“安全”,ProVerif 也说“安全”。如果 Tamarin 发现了“黑客”,ProVerک 也发现了同样的“黑客”。唯一一个出现分歧的案例是因为该特定模型的翻译不完整,而不是因为工具本身存在根本性问题。
- 速度差距: 这是 ProVerif 脱颖而出的地方。当两个工具都完成任务时,ProVerif 的平均速度快了 6.74 倍。在内存方面(即计算机大脑的占用量),ProVerif 的效率高出 6.24 倍。
- 为了让你有直观感受:对于一个著名的案例研究(Lowe 对 Andrew Secure RPC 协议的修复),Tamarin 大约花费了 30 秒 来检查五条不同的安全规则。而 ProVerif 完成同样的工作仅用了 0.46 秒。对于这个特定测试,提速近 65 倍!
- “尽力而为”的警告: 作者非常谨慎地指出,某些功能(例如一种特定的数学技巧 XOR)无法被完美翻译。对于这些情况,ProVerif 的结果是“尽力而为”的近似值。在这些棘手的 XOR 案例中,两者出现分歧的情况较多(65 次中有 31 次),因此作者警告用户不要将这些特定的结果视为绝对的证明。
这为什么重要
本文并不声称 ProVerif 现在比 Tamarin “更好”,也不认为 Tamarin 已经过时。相反,它证明了对于大部分安全问题(即“核心部分”),你可以放心地使用快速工具(ProVerif),因为你知道如果它说一个系统是安全的,缓慢而细致的工具(Tamarin)也会同意。
作者表明,通过使用他们的翻译工具,安全研究人员现在可以将 ProVerif 作为“快速后端”来快速检查许多想法,同时仍保留使用 Tamarin 进行最终、最关键检查的选择。这就像拥有一个能在几秒钟内扫描完整个图书馆以找到所需书籍的速读专家,同时又知道如果需要 100% 的确定性,图书管理员会在那里进行复核。
简而言之,这篇论文成功地弥合了两位计算机安全巨头之间的鸿沟,证明了它们可以协同工作,让我们的数字世界变得更安全、更快速、更可靠。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。