Symbolic Parallel Composition for Multi-language Protocol Verification
Faezeh Nasrabadi, Robert Künnemann, Hamed Nemati
TL;DR
The paper tackles the challenge of verifying security protocols implemented with components in multiple languages by introducing Symbolic Parallel Composition, which treats different languages as symbolic LTSs connected through a shared symbol space. Central to the approach is symbolic execution semantics for each component and a combined deduction relation that enables cross-language reasoning about messages without translating base types like bitstrings into DY terms. The authors formalize the framework in HOL4, prove correctness and refinement theorems, and instantiate the method with SBIR and Sapic^+ representations, culminating in end-to-end correctness results for ARMv8 binaries via the BIR intermediate representation. The TinySSH and WireGuard case studies demonstrate the practicality of end-to-end verification, showing mutual authentication and forward secrecy preserved across multi-language implementations. Overall, the framework offers a scalable, language-agnostic path to secure interactions in complex, multi-language environments, with potential extensions to probabilistic and multi-party settings.
Abstract
The implementation of security protocols often combines different languages. This practice, however, poses a challenge to traditional verification techniques, which typically assume a single-language environment and, therefore, are insufficient to handle challenges presented by the interplay of different languages. To address this issue, we establish principles for combining multiple programming languages operating on different atomic types using a symbolic execution semantics. This facilitates the (parallel) composition of labeled transition systems, improving the analysis of complex systems by streamlining communication between diverse programming languages. By treating the Dolev-Yao (DY) model as a symbolic abstraction, our approach eliminates the need for translation between different base types, such as bitstrings and DY terms. Our technique provides a foundation for securing interactions in multi-language environments, enhancing program verification and system analysis in complex, interconnected systems.
