Implementation of a Multi-Party Off-The-Record Messaging Protocol

Implementation of a Multi-Party Off-The-Record Messaging Protocol

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Υλοποίηση ενός Off-the-Record Πρωτοκόλλου συνομιλίας πολλαπλών χρηστών Συγγραφείς: Επιβλέπων: Κωνσταντίνος Ι. ΑΝΔΡΙΚΟΠΟΥΛΟΣ Αριστείδης ΠΑΓΟΥΡΤΖΗΣ Δημήτριος Θ. ΚΟΛΟΤΟΥΡΟΣ Αν. Καθηγητής Ε.Μ.Π. Διπλωματική εργασία στη Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Αθήνα, Οκτώβριος 2016 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Υλοποίηση ενός Off-the-Record Πρωτοκόλλου συνομιλίας πολλαπλών χρηστών Συγγραφείς: Επιβλέπων: Κωνσταντίνος Ι. ΑΝΔΡΙΚΟΠΟΥΛΟΣ Αριστείδης ΠΑΓΟΥΡΤΖΗΣ Δημήτριος Θ. ΚΟΛΟΤΟΥΡΟΣ Αν. Καθηγητής Ε.Μ.Π. Διπλωματική εργασία στη Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Εγκρίθηκε από την τριμελή εξεταστική επιτροπή: ........................................ ........................................ ........................................ Αριστείδης Παγουρτζής Αν. Άγγελος Κιαγιάς Αν. Παναγιώτης Τσανάκας Καθηγητής Ε.Μ.Π. Καθηγητής Ε.Κ.Π.Α. Καθηγητής Ε.Μ.Π. Αθήνα, Οκτώβριος 2016 ................................... Ανδρικόπουλος Ι. Κωνσταντίνος Διπλωματούχος Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ................................... Κολοτούρος Θ. Δημήτριος Διπλωματούχος Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Copyright © 2016, Ανδρικόπουλος Ι. Κωνσταντίνος & Κολοτούρος Θ. Δημήτριος. This work is licensed under the Creative Commons Attribution 4.0 International Li- cense. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. Περίληψη Σε έναν κόσμο όπου η ανάγκη για εύκολη και άμεση επικοινωνία πρέπει να ξεπεράσει την απειλή της συνεχούς παρακολούθησης, η κρυπτογράφηση από άκρο σε άκρο έχει καταστεί ανάγκη. Παρότι διάφορα πρωτόκολλα επιτρέπουν κρυπτογράφηση από άκρο σε άκρο για δύο άτομα, υπάρχουν λίγες μέθοδοι για την περίπτωση πολλαπλών ατόμων, ειδικά για εφαρμογές προσωπικού υπολογιστή. Σε αυτό το έργο περιγράφουμε την πρώτη υλοποίηση του mpOTR, του Multiparty OTR πρωτοκόλλου. Το πρωτόκολλο αυτό πετυχαίνει εμπιστευτικότητα, αυθεντικοποίηση, μυστικότητα προς-τα-εμπρός, και βασική ομοφωνία. Η υπάρχουσα θεωρητική περιγραφή του mpOTR μεταχειρίζεται κάποια υπο-πρωτόκολλα ως μαύρα κουτιά και δεν τα περιγράφει λεπτομερώς. Η δική μας συνεισφορά είναι η πλήρης και λεπτομερής περιγραφή του mpOTR πρωτοκόλλου, καθώς και η πρώτη του υλοποίηση. Η υλοποίηση αυτή είναι μια ανοικτού κώδικα, επιπέδου παραγωγής επέκταση της προϋπάρχουσας libotr βιβλιοθήκης, συνοδευόμενη και από ένα πρόσθετο Pidgin, γραμμένα και τα δύο σε C. Λέξεις Κλειδιά: Ιδιωτικότητα, Ομαδικές Συνομιλίες, Αυθεντικοποίηση, Κρυπτογράφηση, Συνέπεια Συνομιλίας, Άκρο σε Άκρο, Παρακολούθηση 5 Abstract In a world where the need for easy instant communication must overcome the threat of constant surveillance, end-to-end encryption has become a necessity. While some protocols enable end-to-end encryption for two parties, there are limited solutions for multiparty end-to-end encryption, particularly for desktop applications. In this paper we describe the first implementation of mpOTR, the multiparty OTR pro- tocol. mpOTR achieves confidentiality, authenticity, forward secrecy, deniability, and basic consensus. The existing theoretical introduction of mpOTR treats the underlying subprotocols as black boxes and does not describe them in detail. Our contributions are the complete description of the mpOTR protocol including every subprotocol detail and the first implementation of mpOTR. Our implementation is a production-grade open source extension of the existing libotr library accompanied by a Pidgin plugin written in C. Keywords: Privacy, Group Messaging, Authentication, Encrytpion, Trancript Con- sistency, End to End, Surveillance 7 Acknowledgements We would like to thank our supervisor Professor Aris Pagourtzis, for giving us the opportunity to work on this project, and teaching us cryptography. We must also thank professor Angelos Kiayias for his recommendations which were always to the point. Additionaly, this year-long journey wouldn’t have met its end without the help of Dionysis Zindros, who guided us and sacrificed a great portion of his time to make sure that our work is finished. Petros Angelatos, Kostis Karantias, and Eva Sarafianou have our gratitude for using our software during beta testing. The Authors My co-author, Dimitris, spent a lot of sleepless nights developing the code and solving problems with me or even alone when I couldn’t join him. For this he deserves my gratitude as a person and respect as a software engineer. While the following people were not directly involved in our work, I would never be able to complete this project without their help, teachings and support. Nikos Papaspyrou, Dimitris Fotakis, and Vangelis Koukis played a major role in forming my mathematical and programming background. Without them my aca- demic life would be extremely different. I also can not leave out the Flute protocol’s author, George Kadianakis. My engage- ment in Flute’s development process helped me form a better understanding of the theoretical and practical aspects of secure instant messaging. I would also like to thank my family, and my friends: Alexis L. and Alexis T., Ange- liki, Vasilis K. and Vasilis H., Eleni, Ilias, Korina, Marilena, Orestis, and Panayiotis. Without them this thesis would have been completed much sooner. Finally I must thank the members of the Free Software society of National Technical University of Athens for all the technical and philosophical discussion we had about software development. Andrikopoulos Konstantinos I would like to thank my co-author, Kostis, for the initial idea for the project, his advices on cryptography theory and the excellent collaboration. Also, I owe a debt of gratitude to my parents for their full support all over the years. Finally, I would like to thank my friends Pavlos, Lefteris and Panos who contributed to my emotional well-being throughout the completion of the thesis at hand. Kolotouros Dimitrios 9 Contents Περίληψη 5 Abstract 7 Acknowledgements 9 1 Περιγραφή Πρωτοκόλλου 27 1.1 Εισαγωγή ................................. 27 1.2 Το Πρωτόκολλο .............................. 28 1.3 Τα υπο-πρωτόκολλα ............................ 29 1.3.1 DSKE ............................... 29 1.3.2 GKA ................................ 30 1.4 Πρωτογενείς Διαδικασίες ......................... 30 1.4.1 Ομάδα Diffie–Hellman ...................... 30 1.4.2 Κρυπτογράφηση .......................... 31 1.4.3 Αυθεντικοποίηση ......................... 33 2 Introduction 35 2.1 Motivation ................................ 35 2.2 Our Contributions ............................ 35 2.3 Outline .................................. 36 3 Theoretic Background 37 3.1 Symmetric Encryption .......................... 37 3.2 Block Ciphers ............................... 37 3.3 Modes of Operation ........................... 37 3.4 Message Integrity ............................. 39 3.5 Hash Functions .............................. 39 3.6 Message Authentication ......................... 40 3.6.1 Message Authentication Codes (MAC) ............. 40 3.6.2 Public key signatures ....................... 41 3.7 Key Exchange Protocols (KEP) ..................... 41 3.8 Diffie–Hellman key exchange ....................... 41 3.9 Person-in-the-Middle attacks ...................... 43 3.10 Triple Diffie–Hellman key exchange ................... 44 3.10.1 An Overview ........................... 44 3.10.2 The catch ............................. 45 3.11 Message Ordering ............................. 45 4 Threat Model 47 4.1 The Adversaries .............................. 47 4.1.1 Security adversary 풪 ....................... 47 4.1.2 Privacy adversary ℳ ...................... 47 4.1.3 Consensus adversary 풯 ..................... 47 Definition of Consensus ..................... 47 풯’s goal .............................. 48 4.2 The Goals of the Protocol ........................ 48 5 The mpOTR Protocol 49 11 5.1 Properties of private conversations ................... 49 5.2 Underlying network setting ....................... 49 5.3 High level protocol overview ....................... 50 5.4 Sub-protocols ............................... 51 5.4.1 Offer ................................ 51 5.4.2 Deniable Signature Key Exchange (DSKE) .......... 52 denAKE .............................. 52 Authenticated message exchange ................ 55 5.4.3 Group Key Agreement (GKA) ................. 55 Upflows .............................. 56 Downflow ............................. 57 Example .............................. 57 Detailed description ....................... 59 5.4.4 Attest ............................... 59 5.4.5 Communication .......................... 60 Origin authentication ...................... 60 Encryption ............................ 61 Transcript ............................. 61 5.4.6 Shutdown ............................. 61 5.5 The primitives .............................. 63 5.5.1 Diffie–Hellman Group ...................... 63 5.5.2 Encryption ............................ 64 5.5.3 Authentication .......................... 64 5.6 Participants ordering ........................... 64 5.7 Identity verification ............................ 64 5.8 Handling out-of-order messages ..................... 65 5.9 Message Structure ............................ 65 5.9.1 Top level encoding ........................ 65 5.9.2 Instance tags ........................... 66 5.9.3 Data Types ............................ 66 5.9.4 Message types .........................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    167 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us