formal-verification-of-the-session-protocol
This repository contains the resources and files related to the formal verification of the Session protocol using the Tamarin prover. The work focuses on verifying the security properties of the Session protocol in the symbolic model, encompassing peer-to-peer message delivery and onion routing.
https://github.com/dambrosidenis/formal-verification-of-the-session-protocol
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Keywords
Repository
This repository contains the resources and files related to the formal verification of the Session protocol using the Tamarin prover. The work focuses on verifying the security properties of the Session protocol in the symbolic model, encompassing peer-to-peer message delivery and onion routing.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Verifying the Security Properties of the Session Protocol in the Symbolic Model with the Tamarin Prover
In recent years, the necessity for robust security in digital communications has become crucial due to the ubiquitous nature of interconnected systems. This thesis focuses on the formal verification of the Session Messaging App, an open-source messaging application designed to offer end-to-end encrypted, anonymous communication through a decentralized network. By utilizing the Tamarin prover, this work aims to rigorously verify the security properties of Session's communication protocol. The study encompasses reverse-engineering the protocol from available source code, formalizing its security properties, and analyzing both peer-to-peer message delivery (abstracting the underlying network) and the onion routing protocol that underpins the infrastructure. The results demonstrate the protocol's adherence to its security specifications within the assumed constraints, providing a comprehensive specification of the protocol and suggesting improvements for future iterations.
Repository Structure
CITATION.cff: Citation file for referencing this work.LICENSE: License file for the repository.README.md: This README file.src/: Contains the source files for the Tamarin prover theories and custom oracles.e2e/: Files related to the end-to-end subprotocol.e2e.spthy: Tamarin theory for the e2e protocol.e2eoracle.py: Custom oracle script for the e2e theory proofs.e2epriorities.json: Support information for the e2e oracle.onionrouting/: Files related to verifying the onion routing infrastructure.onionrouting.spthy: Tamarin theory for the onion routing protocol.onionroutingoracle.py: Custom oracle script for the onion routing proofs.
thesis.pdf: The bachelor thesis document providing detailed information on the theories, implementation, and verification process.
Getting Started
Prerequisites
To run the Tamarin prover and the custom oracles, you need to have the following installed:
- Tamarin Prover (version 1.6.1 was used for this thesis)
- Python (for running the custom oracles)
Running the Theories
Clone the Repository:
bash git clone https://github.com/yourusername/your-repository.git cd your-repositoryNavigate to the Source Directory:
bash cd srcRun the Tamarin Prover on the Theories:
For the e2e theory:
bash tamarin-prover e2e/e2e.spthyFor the onion routing theory:
bash tamarin-prover onionrouting/onionrouting.spthy
Documentation
For detailed information about the theories, implementation, and verification process, please refer to thesis.pdf. This document is the comprehensive source of information and should be the main reference point for understanding and working with the contents of this repository.
Citation
If you use this repository or find it helpful, please cite it using the information provided in CITATION.cff.
License
This repository is licensed under the terms specified in the LICENSE file.
Owner
- Login: dambrosidenis
- Kind: user
- Repositories: 2
- Profile: https://github.com/dambrosidenis
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
Formal Verification of the Session Protocol in the
Symbolic Model
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Denis
family-names: D'Ambrosi
email: dambrosidenis@gmail.com
affiliation: University of Udine
orcid: 'https://orcid.org/0009-0001-2275-6496'
repository-code: >-
https://github.com/dambrosidenis/Formal-Verification-of-the-Session-Protocol
keywords:
- Formal Verification
- Formal Methods
- Dolev Yao
- Cryptographic Protocols
- Symbolic Model
license: MIT