This repository contains a demo application for Qrypt's Secure Tunnel product. It is meant for demonstration purposes only, and is not suitable for a production environment.
Secure Tunnel is a custom Envoy HTTP filter that can be used to enable quantum secure transmission channels across untrusted networks.
This is achieved by installing Envoy proxies on both ends of a channel. These proxies use Qrypt's distributed key generation technology to perform quantum secure One Time Pad encryption/decryption on each end, without ever storing or transmitting any keys.
Secure Tunnel is publicly available as an image on Docker Hub.
docker pull qryptdev001/securetunnel-envoy:1.0.0
The image contains a custom build of Envoy with Secure Tunnel statically linked into it.
The executable is at /usr/local/bin/envoy
.
To run this demo you will need to:
-
Install
docker-compose
-
Create a Qrypt portal account
-
Generate a Qrypt keygen token (this can be done on the portal)
a. When generating the token, ensure that it has the
keygen
scope
In proxies/envoy.sender.yml
and proxies/envoy.receiver.yml
, replace the {YOUR_QRYPT_TOKEN}
placeholder with a valid usage token. Then, run
docker-compose up --build
The services in this demo are intended to give the user a means of inspecting an arbitrary message as it passes through the various stages of encryption and decryption.
The entrypoint
service listens for POST
requests on port 3000
on the host.
NOTE: Requests must have a
Content-Type: application/json
header.
Requests are logged and forwarded to the Envoy sender-proxy
, which then forwards the request to an intermediary eavesdropper
service.
The eavesdropper
service logs the message it receives from the sender-proxy
before forwarding it to the listener-proxy
.
The listener-proxy
then decrypts the message and forwards it to the recipient
service, which finally logs the decrypted plaintext message.
To send a message through the demo tunnel, run
curl -d '{"someKey":"someValue"}' -H "Content-Type: application/json" -X POST http://localhost:3000