Problem
The current Keyless TLS design exposes a /v1/sign endpoint on the relay that performs certificate signing during the TLS handshake.
Although the relay does not normally decrypt tenant traffic, it still controls the TLS signing authority. This means the relay can impersonate tenant endpoints by generating valid handshake signatures.
As a result, the current model effectively requires trust in the relay operator, and should be considered a trusted edge rather than a trust-minimized relay.
Proposed Solution
Replace the single relay-owned signer with a threshold MPC signer.
Instead of one relay holding signing authority:
- the private key is split into multiple shares
- signing requires cooperation between multiple signer nodes
- no single node can sign independently
This changes the trust model from 1-of-1 relay trust to t-of-n threshold trust.
Implementation
Use tss-lib for threshold signing. tss-lib supports:
- distributed key generation (DKG)
- threshold ECDSA signing
- MPC-based key management
The relay would forward /v1/sign requests to the MPC signer cluster, which jointly produces the TLS signature.
Problem
The current Keyless TLS design exposes a /v1/sign endpoint on the relay that performs certificate signing during the TLS handshake.
Although the relay does not normally decrypt tenant traffic, it still controls the TLS signing authority. This means the relay can impersonate tenant endpoints by generating valid handshake signatures.
As a result, the current model effectively requires trust in the relay operator, and should be considered a trusted edge rather than a trust-minimized relay.
Proposed Solution
Replace the single relay-owned signer with a threshold MPC signer.
Instead of one relay holding signing authority:
This changes the trust model from 1-of-1 relay trust to t-of-n threshold trust.
Implementation
Use tss-lib for threshold signing. tss-lib supports:
The relay would forward /v1/sign requests to the MPC signer cluster, which jointly produces the TLS signature.