Server Side Code Integrity.
Verify that a remote service runs the expected code before connecting to it. Specifically, verify that the service runs in an AWS Nitro Enclave, is signed by Sigstore's Fulcio code signing CA, is built by a GitHub Actions workflow in a specific repository, is logged to Sigstore's Rekor transparency log, and the state of the Rekor log has been witnessed on Ethereum.
The connection is secured by X25519 + ChaCha20-Poly1305. Nobody between you and the enclave can see the data.
Demo
The following demo application (source) is accessible via SSH. It prints the SSH public keys that your client uses to authenticate, but nobody except you can see them - not even us.
Try it out:
proxy_command="deno run --allow-net --allow-env https://ssci.dev/run/connect.min.mjs --remote-url "ws://demo.ssci.dev:8000" --github-repository losfair/whoami.ssci.dev" ssh -o "ProxyCommand $proxy_command" -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking no" user@enclave
If you don't trust ssci.dev, you can also pull the securelink package from
Releases, verify its signature using
cosign, and run connect.mjs locally with
Deno or Node:
mkdir securelink cd securelink wget -O securelink.tar.gz https://github.com/losfair/ssci/releases/download/v0.1.2/securelink-v0.1.2.tar.gz tar -xvf securelink.tar.gz cosign verify-blob --bundle SHA256SUMS.bundle.json --certificate-identity-regexp '^https://github\.com/losfair/ssci/' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' SHA256SUMS sha256sum -c SHA256SUMS proxy_command="node connect.mjs --remote-url "ws://demo.ssci.dev:8000" --github-repository losfair/whoami.ssci.dev" ssh -o "ProxyCommand $proxy_command" -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking no" user@enclave