Skip to main content

Automatic local network encryption

Reason this release was yanked:

build dependency fails to build

Project description

vula: automatic local network encryption

With zero configuration, vula automatically encrypts IP communication between hosts on a local area network in a forward-secret and transitionally post-quantum manner to protect against passive eavesdropping.

With manual key verification and/or automatic key pinning and manual resolution of IP or hostname conflicts, vula will additionally protect against interception by active adversaries.

When the local gateway to the internet is also vula peer, internet-destined traffic will also be encrypted on the LAN.

How does it work?

Automatically.

Vula combines WireGuard for forward-secret point-to-point tunnels with mDNS and DNS-SD for local service announcements, and enhances the confidentiality of WireGuard tunnels by using CTIDH implemented by highctidh, a post-quantum non-interactive key exchange primitive, to generate a peer-wise pre-shared key for each tunnel configuration.

Vula's advantages over some other solutions include:

  • design is absent of single points of failure (SPOFs)
  • uses existing IP addresses inside and outside of the tunnels, allowing seamless integration into existing LAN environments using DHCP and/or manual addressing
  • avoids needing to attempt handshakes with non-participating hosts
  • does not require any configuration to disrupt passive surveillance adversaries
  • simple verification with QR codes to disrupt active surveillance adversaries

See NOTES.md for some discussion of the threat model and other technical details, and COMPARISON.md for a comparison of Vula to some related projects.

Current status

status-badge

Vula is functional today, although it has some known issues documented in STATUS.md. It is ready for daily use by people who are proficient with Linux networking and the command line, but we do not yet recommend it for people who are not.

See INSTALL.md for installation and usage instructions.

See HACKING.md for some tips on opening the hood.

See DEPENDENCY.md for diagrams illustrating the different dependecy relationships between internal and external python modules.

Security contact

We consider this project to currently be alpha pre-release, experimental, research quality code. It is not yet suitable for widespread deployment. It has not yet been audited by an independent third party and it should be treated with caution.

If you or someone you know finds a security issue - please open an issue or feel free to send an email to security at vula dot link.

Our current bug bounty for security issues is humble. We will treat qualifying reporters to a beverage after the COVID-19 crisis has ended; ojalá. Locations limited to qualifying CCC events such as the yearly Congress.

Authors

The authors of vula are anonymous for now, while our paper is undergoing peer review.

Acknowledgements

OPERATION_VULA.md has some history about the name Vula.

Vula is not associated with or endorsed by the WireGuard project. WireGuard is a registered trademark of Jason A. Donenfeld.

This project is funded through the NGI Assure Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more on the NLnet project page.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vula-0.2.2023112800.tar.gz (168.9 kB view details)

Uploaded Source

Built Distribution

vula-0.2.2023112800-py3-none-any.whl (188.2 kB view details)

Uploaded Python 3

File details

Details for the file vula-0.2.2023112800.tar.gz.

File metadata

  • Download URL: vula-0.2.2023112800.tar.gz
  • Upload date:
  • Size: 168.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for vula-0.2.2023112800.tar.gz
Algorithm Hash digest
SHA256 1d11e18ab6eb1b148e657f23ff33f0d0c51c039c4244b8549af4305712245147
MD5 0391215eb8d941f5fd7a50afeda9f2ae
BLAKE2b-256 6ec011c30ec099bc5c6c9b79506bd91f49f11be6b9e12b64c1825d3c702cced7

See more details on using hashes here.

File details

Details for the file vula-0.2.2023112800-py3-none-any.whl.

File metadata

File hashes

Hashes for vula-0.2.2023112800-py3-none-any.whl
Algorithm Hash digest
SHA256 9dd11c231cf383c22e71b6ebe550cea66c97dbf62b177b0f67f5e1d0cd335085
MD5 3dd75aeafe07b50c9e87ce38c17341a6
BLAKE2b-256 ed246831386503353d86edbe4d224c297c9f5db5a1b210e369a0ff8f6900653d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page