Skip to content

Implement MPC-based signer for Keyless TLS #134

Description

@gosunuts

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions