Giter Site home page Giter Site logo

viperproject / protocol-verification-refinement Goto Github PK

View Code? Open in Web Editor NEW
0.0 10.0 0.0 102.33 MB

Artifact of the paper "Sound Verication of Security Protocols: From Design to Interoperable Implementations"

License: Mozilla Public License 2.0

Go 15.95% Java 1.00% Makefile 1.08% Haskell 56.98% CSS 0.42% JavaScript 0.91% Tcl 1.05% Shell 0.19% Dockerfile 0.18% Vim Script 0.32% Emacs Lisp 0.09% Python 13.48% M4 4.07% OCaml 4.26% Standard ML 0.01%
automated-verification implementation protocol-verification separation-logic symbolic-security tamarin

protocol-verification-refinement's Introduction

Sound Verication of Security Protocols: From Design to Interoperable Implementations (artifact)

DH & WireGuard Protocol Model Verification DH Code Verification WireGuard Code Verification License: MPL 2.0

I/O Specification Generator & Diffie-Hellman (DH) and WireGuard Case Studies

This repository contains the artifact for the paper "Sound Verication of Security Protocols: From Design to Interoperable Implementations", which appeared at the IEEE Symposium on Security and Privacy (S&P), 2023. [published version] [extended version]

This artifact provides the following content:

  • Subdirectory wireguard/model contains the Tamarin model together with instructions how to verify it
  • Subdirectory wireguard/implementation contains the verified Go implementation together with instructions how to verify and execute it.
  • The subdirectory dh contains the verified DH protocol model together with a verified Go and Java implementations. Additionally, dh/faulty-go-implementation contains a Go implementation that tries to send the DH private key in plaintext for which verification fails because the IO specification does not permit such a send operation.
  • The subdirectory specification-generator contains the sources of our tool to generate I/O specifications for Gobra & VeriFast from a Tamarin model.

This artifact has been archived on Zenodo (DOI: 10.5281/zenodo.7409524). The paper can be cited as follows (for BibTeX):

@inproceedings{ArquintWLSSWBM23,
  author = {Arquint, Linard and Wolf, Felix A. and Lallemand, Joseph and Sasse, Ralf and Sprenger, Christoph and Wiesner, Sven N. and Basin, David and M\"uller, Peter},
  booktitle = {2023 IEEE Symposium on Security and Privacy (SP)},
  title = {Sound Verification of Security Protocols: From Design to Interoperable Implementations},
  year = {2023},
  volume = {},
  number = {},
  pages = {1077-1093},
  keywords = {protocol-verification;symbolic-security;automated-verification;tamarin;separation-logic;implementation},
  publisher = {IEEE},
  month = may,
  doi = {10.1109/SP46215.2023.10179325},
  url = {https://doi.org/10.1109/SP46215.2023.10179325},
  urltext = {Publisher},
  url1 = {https://pm.inf.ethz.ch/publications/ArquintWolfLallemandSasseSprengerWiesnerBasinMueller23.pdf},
  url1text = {PDF}
}

protocol-verification-refinement's People

Contributors

arquintl avatar soundverification avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.