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.
翻译:我们提出“Leapfrog”这个基于Coq的网络协议分析器等效核查框架。我们的方法基于一个P4授精器的自动模型,以及一个使用“跃出”来象征性地计算一个精细模拟的缩压表示法。证据的动力来自一个经过认证的汇编链链,从一阶的必然结果到低位位位推位器的核查条件,这些要求使用现成的SMT解答器来解开。结果,Leapfrog中的等效证明完全自动和按键。我们机械地证明了支撑着我们的方法的核心元理论,包括关键转换和若干优化。我们在一系列实际案例研究中评估了精精精度,所有这些都需要最低限度的配置和没有人工证明。我们最大的案例研究利用Leapfrog为从自动磁盘到硬件管道的第三方编纂器进行翻译验证。总体而言,Leapfrog代表着向一个世界迈出了一步,在这个世界里,关键网络基础设施的所有极分器都得到验证。我们还提出了后续努力的方向,例如核实涉及安全的关系属性。