You are looking at a specific version 20161101:154738 of this paper. See the latest version.

Paper 2016/1013

A Formal Security Analysis of the Signal Messaging Protocol

Katriel Cohn-Gordon and Cas Cremers and Benjamin Dowling and Luke Garratt and Douglas Stebila

Abstract

Signal is a new security protocol and accompanying app that provides end-to-end encryption for instant messaging. The core protocol has recently been adopted by WhatsApp, Facebook Messenger, and Google Allo among many others; the first two of these have at least 1 billion active users. Signal includes several uncommon security properties (such as "future secrecy" or "post-compromise security"), enabled by a novel technique called *ratcheting* in which session keys are updated with every message sent. Despite its importance and novelty, there has been little to no academic analysis of the Signal protocol. We conduct the first security analysis of Signal's Key Agreement and Double Ratchet as a multi-stage key exchange protocol. We extract from the implementation a formal description of the abstract protocol, and define a security model which can capture the "ratcheting" key update structure. We then prove the security of Signal's core in our model, demonstrating several standard security properties. We have found no major flaws in the design, and hope that our presentation and results can serve as a starting point for other analyses of this widely adopted protocol.

Note: Update to V1.1.

Metadata
Available format(s)
PDF
Category
Cryptographic protocols
Publication info
Published elsewhere. Major revision. IEEE EuroS&P 2017
Keywords
protocolsmessagingpost-compromise securitySignalfuture secrecyauthenticated key exchangeprovable securitymulti-stage key exchange
Contact author(s)
cas cremers @ cs ox ac uk
History
2019-07-04: last of 5 revisions
2016-10-27: received
See all versions
Short URL
https://ia.cr/2016/1013
License
Creative Commons Attribution
CC BY
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.