We provide a framework consisting of tools and metatheorems for the end-to-end verification of security protocols, which bridges the gap between automated protocol verification and code-level proofs. We automatically translate a Tamarin protocol model into a set of I/O specifications expressed in separation logic. Each such specification describes a protocol role's intended I/O behavior against which the role's implementation is then verified. Our soundness result guarantees that the verified implementation inherits all security (trace) properties proved for the Tamarin model. Our framework thus enables us to leverage the substantial body of prior verification work in Tamarin to verify new and existing implementations. The possibility to use any separation logic code verifier provides flexibility regarding the target language. To validate our approach and show that it scales to real-world protocols, we verify a substantial part of the official Go implementation of the WireGuard VPN key exchange protocol.
翻译:我们提供了一个由安全协议端至端核查工具和元理论组成的框架,以弥合自动化协议核查与代码级验证之间的差距。我们自动将一个塔马林协议模型转换成一套以分离逻辑表达的I/O规格。每个这样的规格都描述了一个协议作用的预想I/O行为,然后核查该作用的履行情况。我们的正确性结果保证了经核实的执行继承了塔马林模式所证明的所有安全(追踪)属性。因此,我们的框架使我们能够利用塔马林先前的大量核查工作来核查新的和现有的执行情况。使用任何分离逻辑代码核查器的可能性为目标语言提供了灵活性。为了验证我们的方法,并表明它与现实世界协议的规模,我们核查正式执行WireGuard VPN关键交换协议的很大一部分内容。