timelock-proxy

An HTTPS forwarding proxy running inside an AWS Nitro Enclave. Everything that passes through it is sealed so that nobody can read it now, including the operator, and only the operator can read it after {{lock_days}} days, enforced by drand timelock encryption.

mode{{mode}}
version{{version}}
lock{{lock_seconds}} s ({{lock_days}} days)
records to{{recipient}}
relay{{relay}}
DNS-over-HTTPS{{doh}}
Encrypted Client Hello{{ech}}
TLS certificate{{cert_issuer}}, sha256 {{cert_sha256}}
enclave key (SPKI)sha256 {{spki_sha256}}

Use it

https://{{host}}/<upstream-host>/<path>

is forwarded live as https://<upstream-host>/<path>, method, headers and body intact. Responses carry x-timelock-proxy-record (the record id) and x-timelock-proxy-unlock-round (the drand round before which the operator cannot open it).

Verify before you trust it

A CA certificate proves nothing here. What matters is the attestation document at /.well-known/attestation?nonce=<hex>: signed by AWS, it binds the enclave's key to the PCR measurements of a reproducible build of the source.

git clone https://github.com/sophiawisdom/timelock-proxy && cd timelock-proxy
cargo build --release -p tlproxy-cli
./target/release/tlproxy verify --proxy https://{{host}} --pcrs measurements/<commit>.pcrs.json \
    --expect-recipient {{recipient}}

Source, threat model, reproducible build instructions and published measurements: github.com/sophiawisdom/timelock-proxy.