Verifying Protocols with Squirrel: Making Strides Without Compromise Article Swipe
YOU?
·
· 2025
· Open Access
·
· OA: W4415024580
Security protocols are concurrent processes that communicate using cryptography to achieve various security properties. Recent advancements in their formal verification have led to the development of procedures and tools for analysing them and ensuring they fulfill their intended security goals. Squirrel is one such tool.However, in Squirrel, there is a gap between the user-provided protocol description and its internal representation used for formal reasoning. The former is expressed in a process algebra close to the applied pi-calculus, while the latter groups multiple instructions together to reduce system size and simplify the security proofs that the end user must write.In this paper, we justify such a translation by proposing a generic theoretical framework that explains how to group instructions into blocks without losing any behaviours that could lead to an attack. We consider both trace and equivalence security properties. Then, we demonstrate how to instantiate this framework and apply it to the Squirrel prover. Finally, we provide an implementation and show that, in most cases, the new partitioning matches the one originally implemented in Squirrel, which previously lacked justification.