Automated Verification for Secure Messaging Protocols and Their Implementations: A Symbolic and Computational Approach

Автоматизированная верификация протоколов безопасного обмена сообщениями и их реализаций: символический и вычислительный подход
Nadim Kobeissi, Karthikeyan Bhargavan, Bruno Blanchet
2017-04-01

CryptoVerifCryptocatProScriptProVerifSignal Protocol variantapplied pi calculus
Many popular web applications incorporate end-toend secure messaging protocols, which seek to ensure that messages sent between users are kept confidential and authenticated, even if the web application's servers are broken into or otherwise compelled into releasing all their data. Protocols that promise such strong security guarantees should be held up to rigorous analysis, since protocol flaws and implementations bugs can easily lead to real-world attacks. We propose a novel methodology that allows protocol designers, implementers, and security analysts to collaboratively verify a protocol using automated tools. The protocol is implemented in ProScript, a new domain-specific language that is designed for writing cryptographic protocol code that can both be executed within JavaScript programs and automatically translated to a readable model in the applied pi calculus. This model can then be analyzed symbolically using ProVerif to find attacks in a variety of threat models. The model can also be used as the basis of a computational proof using CryptoVerif, which reduces the security of the protocol to standard cryptographic assumptions. If ProVerif finds an attack, or if the CryptoVerif proof reveals a weakness, the protocol designer modifies the ProScript protocol code and regenerates the model to enable a new analysis. We demonstrate our methodology by implementing and analyzing a variant of the popular Signal Protocol with only minor differences. We use ProVerif and CryptoVerif to find new and previously-known weaknesses in the protocol and suggest practical countermeasures. Our ProScript protocol code is incorporated within the current release of Cryptocat, a desktop secure messenger application written in JavaScript. Our results indicate that, with disciplined programming and some verification expertise, the systematic analysis of complex cryptographic web applications is now becoming practical.
1
Applied the methodology to a variant of the Signal Protocol, discovering new and previously-known weaknesses and proposing practical countermeasures.
2
Concluded that disciplined programming plus verification expertise makes systematic analysis of complex cryptographic web applications practical.
3
Integrated ProScript protocol code into the Cryptocat JavaScript desktop messenger, demonstrating applicability to real-world web messaging implementations.
4
Introduced ProScript, a domain-specific language for writing cryptographic protocol code that runs in JavaScript and automatically translates to applied pi calculus models.
5
Presented a methodology combining ProScript, ProVerif (symbolic analysis), and CryptoVerif (computational proofs) for iterative automated verification of protocols and implementations.

End-to-end secure messaging protocols and their JavaScript implementations (ProScript code in Cryptocat)

Automated collaborative verification of such protocols and implementations via symbolic (ProVerif) and computational (CryptoVerif) analyses enabled by ProScript model generation, including detection of weaknesses and guidance for countermeasures

Publication Details
Publication Date
2017-04-01
Journal
Publisher
ISSN
Access Type
Author Information
Authors
Nadim Kobeissi
Karthikeyan Bhargavan
Bruno Blanchet
Explore further
Open the scid.ai AI chat with a ready-made request: it will find papers on a similar topic and help build a literature review.
Find similar papers in the chat
Make a presentation
100%