论文标题
LeapFrog:协议解析器的认证等价
Leapfrog: Certified Equivalence for Protocol Parsers
论文作者
论文摘要
我们提出了LeapFrog,这是一个基于COQ的框架,用于验证网络协议解析器的等效性。我们的方法基于P4解析器的自动机模型,以及用于使用“ leapps”的象征性计算双仿真的紧凑表示的算法。证明是由经过认证的汇编链提供的,从一阶需要到低级BITVECTOR验证条件,该条件使用现成的SMT求解器放电。结果,Leapfrog中的解析器等效证明是全自动和按钮。 我们机械地证明了基于我们方法的核心元心疗法,包括关键转换和几个优化。我们在一系列实用案例研究上评估了跨越,所有这些都需要最小的配置,并且不需要手动证明。我们最大的案例研究使用LeapFrog对从自动机到硬件管道的第三方编译器进行翻译验证。总体而言,Leapfrog代表着朝着一个世界上所有关键网络基础架构的解析器迈出的一步。它还提出了跟进努力的指示,例如验证涉及安全性的关系属性。
We present Leapfrog, a Coq-based framework for verifying equivalence of network protocol parsers. Our approach is based on an automata model of P4 parsers, and an algorithm for symbolically computing a compact representation of a bisimulation, using "leaps." Proofs are powered by a certified compilation chain from first-order entailments to low-level bitvector verification conditions, which are discharged using off-the-shelf SMT solvers. As a result, parser equivalence proofs in Leapfrog are fully automatic and push-button. We mechanically prove the core metatheory that underpins our approach, including the key transformations and several optimizations. We evaluate Leapfrog on a range of practical case studies, all of which require minimal configuration and no manual proof. Our largest case study uses Leapfrog to perform translation validation for a third-party compiler from automata to hardware pipelines. Overall, Leapfrog represents a step towards a world where all parsers for critical network infrastructure are verified. It also suggests directions for follow-on efforts, such as verifying relational properties involving security.