skip to main content
10.1145/3331542.3342573acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Gaining trust by tracing security protocols

Published:18 August 2019Publication History

ABSTRACT

In this article we test an Erlang implementation of the Noise Protocol Framework, using a novel form of white-box testing. We extend interoperability testing of an Erlang enoise implementation against an implementation of Noise in C. Testing typically performs a noise protocol handshake between the two implementations. If successful, then both implementations are somehow compatible. But this does, for example, not detect whether we reuse keys that have to be newly generated. Therefore we extend such operability testing: During the handshake the Erlang noise implementation is traced. The resulting protocol trace is refactored, obtaining as the end result a symbolic description (a functional term) of how key protocol values are constructed using cryptographic operations and keys. Therafter, this symbolic term is compared, using term rewriting, with a symbolic term representing the ideal symbolic execution of the tested noise protocol handshake (i.e., the "semantics" of the handshake). The semantic symbolic term is obtained by executing a symbolic implementation of the noise protocol that we have developed.

References

  1. Jesper Louis Andersen. 2015. Enacl – Erlang bindings for NaCl/libsodium. https://github.com/jlouis/enaclGoogle ScholarGoogle Scholar
  2. Thomas Arts and Lars-Åke Fredlund. 2002. Trace analysis of Erlang programs. SIGPLAN Notices 37, 12 (2002), 18–24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Duncan Paul Attard and Adrian Francalanza. 2016. A Monitoring Tool for a Branching-Time Logic. In Runtime Verification - 16th International Conference, RV 2016, Madrid, Spain, September 23-30, 2016, Proceedings (Lecture Notes in Computer Science) , Yliès Falcone and César Sánchez (Eds.), Vol. 10012. Springer, 473–481.Google ScholarGoogle Scholar
  4. Duncan Paul Attard and Adrian Francalanza. 2017. Trace Partitioning and Local Monitoring for Asynchronous Components. In Software Engineering and Formal Methods - 15th International Conference, SEFM 2017, Trento, Italy, September 4-8, 2017, Proceedings (Lecture Notes in Computer Science) , Alessandro Cimatti and Marjan Sirjani (Eds.), Vol. 10469. Springer, 219–235.Google ScholarGoogle Scholar
  5. Bruno Blanchet. 2016. Modeling and Verifying Security Protocols with the Applied Pi Calculus and ProVerif. Foundations and Trends in Privacy and Security 1, 1-2 (2016), 1–135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ian Cassar and Adrian Francalanza. 2016. On Implementing a MonitorOriented Programming Framework for Actor Systems. In Integrated Formal Methods - 12th International Conference, IFM 2016, Reykjavik, Iceland, June 1-5, 2016, Proceedings (Lecture Notes in Computer Science) , Erika Ábrahám and Marieke Huisman (Eds.), Vol. 9681. Springer, 176– 192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. James Cheney, Amal Ahmed, and Aacar Umut A. 2011. Provenance as dependency analysis. Mathematical Structures in Computer Science 21, 6 (2011), 1301–1337. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Pierpaolo Degano and Corrado Priami. 1992. Proved Trees. In Automata, Languages and Programming, 19th International Colloquium, ICALP92, Vienna, Austria, July 13-17, 1992, Proceedings (Lecture Notes in Computer Science) , Werner Kuich (Ed.), Vol. 623. Springer, 629–640. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Dorothy E. Denning. 1976. A Lattice Model of Secure Information Flow. Commun. ACM 19, 5 (1976), 236–243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Whitfield Diffie and Martin E. Hellman. 1976. New directions in cryptography. IEEE Trans. Information Theory 22, 6 (1976), 644–654. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jason A. Donenfeld. 2018. WireGuard – fast, modern, secure VPN tunnel. https://www.wireguard.com/Google ScholarGoogle Scholar
  12. Frank Denis et. al. 2013. Sodium – a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more. https://libsodium.gitbook.io/doc/Google ScholarGoogle Scholar
  13. Yanislav Malahov et. al. 2018. The æternity blockchain. https: //aeternity.comGoogle ScholarGoogle Scholar
  14. Adrian Francalanza and Aldrin Seychell. 2015. Synthesising correct concurrent runtime monitors. Formal Methods in System Design 46, 3 (2015), 226–261. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Guillaume Girol. 2019. Formalizing and Verifying the Security Protocols from the Noise Framework . Master’s thesis. ETH Zürich, Switzerland.Google ScholarGoogle Scholar
  16. Alejandro Hevia and Gregory Neven (Eds.). 2012. Progress in Cryptology - LATINCRYPT 2012 - 2nd International Conference on Cryptology and Information Security in Latin America, Santiago, Chile, October 7-10, 2012. Proceedings . Lecture Notes in Computer Science, Vol. 7533. Springer.Google ScholarGoogle Scholar
  17. Nadim Kobeissi and Karthikeyan Bhargavan. 2018. Noise Explorer: Fully Automated Modeling and Verification for Arbitrary Noise Protocols. IACR Cryptology ePrint Archive 2018 (2018), 766. https: //eprint.iacr.org/2018/766Google ScholarGoogle Scholar
  18. Simon Meier, Benedikt Schmidt, Cas Cremers, and David A. Basin. 2013. The TAMARIN Prover for the Symbolic Analysis of Security Protocols. In Computer Aided Verification - 25th International Conference, CAV 2013, Saint Petersburg, Russia, July 13-19, 2013. Proceedings (Lecture Notes in Computer Science) , Natasha Sharygina and Helmut Veith (Eds.), Vol. 8044. Springer, 696–701.Google ScholarGoogle Scholar
  19. Trevor Perrin. 2016. The Noise Protocol Framework. http:// noiseprotocol.org/noise.htmlGoogle ScholarGoogle Scholar
  20. Gordon D. Plotkin. 1981. A Structural Approach to Operational Semantics. Aarhus University report DAIMI FN-19 (1981).Google ScholarGoogle Scholar
  21. Andrei Sabelfeld and Andrew C. Myers. 2006. Language-based Information-flow Security. IEEE J.Sel. A. Commun. 21, 1 (Sept. 2006), 5–19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Andris Suter-Dörig. 2018. Formalizing and Verifying the Security Protocols from the Noise Framework.Google ScholarGoogle Scholar
  23. Hans Svensson. 2005. Verification of Erlang Programs using Testing and Tracing.Google ScholarGoogle Scholar
  24. Hans Svensson. 2018. Enoise – An Erlang implementation of the Noise protocol. https://github.com/aeternity/enoiseGoogle ScholarGoogle Scholar
  25. Rhys Weatherley. 2016. Noise-C, a plain C implementation of the Noise protocol. https://github.com/rweather/noise-cGoogle ScholarGoogle Scholar
  26. Wikipedia. 2012. The HKDF key derivation function. https://en. wikipedia.org/wiki/HKDFGoogle ScholarGoogle Scholar

Index Terms

  1. Gaining trust by tracing security protocols

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            Erlang 2019: Proceedings of the 18th ACM SIGPLAN International Workshop on Erlang
            August 2019
            73 pages
            ISBN:9781450368100
            DOI:10.1145/3331542

            Copyright © 2019 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 18 August 2019

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate51of68submissions,75%

            Upcoming Conference

            ICFP '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader