We present an investigation into the design and implementation of a parallel model checker for security protocol verification that is based on a symbolic model of the adversary, where instantiations of concrete terms and messages are avoided until needed to resolve a particular assertion. We propose to build on this naturally lazy approach to parallelise this symbolic state exploration and evaluation. We utilise the concept of strategies in Haskell, which abstracts away from the low-level details of thread management and modularly adds parallel evaluation strategies (encapsulated as a monad in Haskell). We build on an existing symbolic model checker, OFMC, which is already implemented in Haskell. We show that there is a very significant speed up of around 3-5 times improvement when moving from the original single-threaded implementation of OFMC to our multi-threaded version, for both the Dolev-Yao attacker model and more general algebraic attacker models. We identify several issues in parallelising the model checker: among others, controlling growth of memory consumption, balancing lazy vs strict evaluation, and achieving an optimal granularity of parallelism.
翻译:我们提出对安全协议核查平行模式检查器的设计和实施的调查,该模式检查器以对手的象征性模型为基础,避免了具体术语和信息的即时反应,直到需要解决某一说法为止。我们提议以这种自然的懒惰方法为基础,平行进行象征性的国家探索和评价。我们在哈斯凯尔使用战略的概念,它从线条管理的低层细节和模块化的附加平行评价战略(在哈斯凯尔被封为月球)中摘述。我们在哈斯凯尔已经执行的现有的象征性模型检查器(OFMC)的基础上再接再厉。我们表明,从最初的单读执行监测器到我们的多读版本(Dolev-Yao攻击器模型和更一般的代数攻击器模型),在同时进行模型检查时,我们发现了几个问题:除其他外,控制记忆消耗的增长,平衡懒惰和严格的评估,以及实现最佳的平行性微粒化,速度大大加快了大约3-5倍。