Deniable Key Exchanges for Secure Messaging
Total Page:16
File Type:pdf, Size:1020Kb
Deniable Key Exchanges for Secure Messaging by Nik Unger A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of Mathematics in Computer Science Waterloo, Ontario, Canada, 2015 Nik Unger 2015 Some rights reserved. BY NC SA This thesis consists of material all of which I authored or co-authored: see Statement of Contributions included in the thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. License This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons. org/licenses/by-nc-sa/4.0/. ii Statement of Contributions The content in Chapter 2 of this thesis was co-authored with Sergej Dechand, Joseph Bonneau, Sascha Fahl, Henning Perl, Ian Goldberg, and Matthew Smith. In particular, the expert usability reviews were performed by Sergej Dechand, Sascha Fahl, Henning Perl, and Matthew Smith, and the figures in Chapter 2 were produced by Sergej Dechand. All other chapters in this thesis contain original work authored under the supervision of Ian Goldberg. iii Abstract Despite our increasing reliance on digital communication, much of our online discourse lacks any security or privacy protections. Almost no email messages sent today provide end-to-end security, despite privacy-enhancing technologies being available for decades. Recent revelations by Edward Snowden of government surveillance have highlighted this disconnect between the importance of our digital communications and the lack of available secure messaging tools. In response to increased public awareness and demand, the market has recently been flooded with new applications claiming to provide security and privacy guarantees. Unfortunately, the urgency with which these tools are being developed and marketed has led to inferior or insecure products, grandiose claims of unobtainable features, and widespread confusion about which schemes can be trusted. Meanwhile, there remains disagreement in the academic community over the definitions and desirability of secure messaging features. This incoherent vision is due in part to the lack of a broad perspective of the literature. One of the most contested properties is deniability|the plausible assertion that a user did not send a message or participate in a conversation. There are several subtly different definitions of deniability in the literature, and no available secure messaging scheme meets all definitions simultaneously. Deniable authenticated key exchanges (DAKEs), the primary cryptographic tool responsible for deniability in a secure messaging scheme, are also often unsuitable for use in emerging applications such as smartphone communications due to unreasonable resource or network requirements. In this thesis, we provide a guide for a practitioner seeking to implement deniable se- cure messaging systems. We examine dozens of existing secure messaging protocols, both proposed and implemented, and find that they achieve mixed results in terms of secu- rity. This systematization of knowledge serves as a resource for understanding the current state-of-the-art approaches. We survey formalizations of deniability in the secure mes- saging context, as well as the properties of existing DAKEs. We construct several new practical DAKEs with the intention of providing deniability in modern secure messaging environments. Notably, we introduce Spawn, the first non-interactive DAKE that offers forward secrecy and achieves deniability against both offline and online judges; Spawn can be used to improve the deniability properties of the popular TextSecure secure messaging application. We prove the security of our new constructions in the generalized univer- sal composability (GUC) framework. To demonstrate the practicality of our protocols, we develop and compare open-source instantiations that remain secure without random oracles. iv Acknowledgments Foremostly, I would like to thank Ian Goldberg, as this thesis would not be possible without his outstanding supervision. I would like to thank Urs Hengartner and Doug Stinson for their excellent feedback. I would also like to thank my other co-authors: Sergej Dechand, Joseph Bonneau, Sascha Fahl, Henning Perl, and Matthew Smith; together we produced source material for Chapter 2 of which we can all be proud. We thank the anonymous reviewers, Trevor Perrin, and Henry Corrigan-Gibbs for their helpful feedback on Chapter 2. Finally, I would like to thank the other members of the CrySP lab (and especially the inhabitants of #crysp) for fostering a fantastic creative environment. The artwork on the quotation page was produced on commission by Danny Rivera; its use is governed by the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. The drawing has been modified from the original version. v Dedication To my parents, for their motivation, love, and support. vi Table of Contents List of Figures xi List of Tables xii List of Algorithms xiii List of Definitions, Theorems, and Conjectures xiv 1 Introduction1 2 Secure Messaging4 2.1 Background...................................5 2.1.1 Types of specification..........................5 2.1.2 Synchronicity..............................5 2.1.3 Deniability................................6 2.1.4 Forward/Backward Secrecy......................6 2.2 Systematization Methodology.........................7 2.2.1 Problem Areas.............................7 2.2.2 Threat Model..............................8 2.2.3 Systematization Structure.......................8 2.3 Trust Establishment.............................. 10 2.3.1 Security and Privacy Features..................... 10 vii 2.3.2 Usability Properties........................... 12 2.3.3 Adoption Properties.......................... 13 2.3.4 Evaluation................................ 14 2.3.5 Discussion................................ 24 2.4 Conversation Security.............................. 26 2.4.1 Security and Privacy Features..................... 26 2.4.2 Usability and Adoption......................... 29 2.4.3 Group Chat Features.......................... 29 2.4.4 Two-party Chat Evaluation...................... 30 2.4.5 Group Chat Evaluation......................... 39 2.4.6 Discussion................................ 43 2.5 Transport Privacy................................ 45 2.5.1 Privacy Features............................ 45 2.5.2 Usability Properties........................... 47 2.5.3 Adoption Properties.......................... 47 2.5.4 Evaluation................................ 48 2.5.5 Discussion................................ 53 2.6 Future Directions................................ 53 3 Deniability for Secure Messaging 56 3.1 Deniability.................................... 57 3.1.1 Deniable Conversations......................... 57 3.1.2 Judges.................................. 58 3.1.3 Practicality............................... 60 3.2 Deniable Authenticated Key Exchanges.................... 60 3.3 Overview of Contributions........................... 62 3.4 Cryptographic Preliminaries and Notation.................. 62 3.4.1 Notation................................. 63 viii 3.4.2 Digital Signatures............................ 63 3.4.3 Public-Key Encryption (PKE)..................... 65 3.4.4 Dual-Receiver Encryption (DRE)................... 66 3.4.5 Non-Committing Encryption (NCE)................. 68 3.4.6 Ring Signatures............................. 69 3.5 The GUC Framework.............................. 70 3.5.1 Universal Composability........................ 70 3.5.2 Generalized UC (GUC)......................... 74 3.6 The Walfish Protocol.............................. 76 IncProc 3.6.1 Ideal Functionality Fkeia ...................... 76 3.6.2 Real Protocol Φdre ........................... 79 3.6.3 An Efficient Instantiation with Interactive DRE........... 80 3.7 An Efficient Interactive DAKE from Ring Signatures............ 82 IncProc 3.7.1 Ideal Functionality Fpost-keia ...................... 83 3.7.2 Real Protocol RSDAKE........................ 85 3.7.3 Proof of Security............................ 87 3.8 A Non-Interactive Deniable Key Exchange.................. 94 IncProc 3.8.1 Ideal Functionality F1psp-keia ...................... 95 3.8.2 Real Protocol Spawn∗ ......................... 97 3.8.3 Unrigging Non-Committing Encryption................ 99 3.8.4 Proof of Interactive Spawn∗ Security................. 99 3.8.5 An Attack on Online Repudiation................... 108 3.8.6 Implications of IncProc......................... 110 3.8.7 Non-Interactive Spawn∗ ........................ 111 3.8.8 Conjecture: The TextSecure Iron Triangle.............. 113 3.8.9 A Practical Relaxation: Spawn.................... 114 3.8.10 Spawn as an Axolotl Bootstrap.................... 116 3.9 Selecting a Protocol............................... 117 ix 4 Implementation 118 4.1 Overview..................................... 118 4.2 Libraries..................................... 119 4.2.1 PBC Go Wrapper............................ 119 4.2.2 Ring Signatures............................. 120 4.2.3 One-Time Signatures.......................... 121 4.2.4 Cramer-Shoup.............................. 122 4.2.5 Non-Interactive DRE.......................... 123 4.2.6 Interactive DRE (IDRE)........................ 124 4.2.7 Φdre ................................... 124 4.2.8 RSDAKE...............................