CONCEPT Cited by 1 source
PK Token¶
A PK Token is an OpenID Connect ID Token extended to commit to a public key. Introduced by the OpenPubkey project (Linux Foundation, 2023). The extension is done client-side and does not require changes to the OIDC protocol or cooperation from the OpenID Provider (OP).
Why it exists¶
A vanilla OIDC ID Token carries identity claims (email, sub,
iss) signed by the OP, but not the user's public key. This
limits what protocols can do with the token — identity alone
doesn't authenticate a session key, encrypt a message to the
user, or serve as an SSH credential.
A PK Token carries identity and a public key, so one verifier check can answer both: "is this really Alice?" and "is this really Alice's key?".
Concrete meaning¶
"Google says
alice@example.comis using public key 0x123."
An ID Token by itself could only say the first clause. A PK Token says both.
What it enables¶
- SSH without long-lived keys (OPKSSH). The PK Token is packaged into an SSH certificate extension and rides the normal SSH handshake; the server's OpenPubkey verifier checks both identity and key.
- End-to-end-encrypted messaging bound to verified identity (mentioned as motivation in the OpenPubkey project; not explored in the currently-ingested sources).
- Signed commits bound to verified identity (mentioned as motivation; not explored here).
Verifier invariants when consuming a PK Token¶
- PK Token signature is valid against the OP's published JWKS.
- PK Token is unexpired.
- Identity claims are what the relying party expects.
- The public key in the PK Token is the public key actually being used for the session. This last one is the load- bearing one — without it, a stolen PK Token could be bound to an attacker's keypair. Canonical instance of patterns/identity-to-key-binding.
Seen in¶
- sources/2025-03-25-cloudflare-opkssh-open-sourcing —
introduces the PK Token as the primitive underlying OPKSSH;
"Google says
alice@example.comis using public key 0x123."
Related¶
- systems/openpubkey — the protocol that defines PK Tokens.
- systems/opkssh — the canonical application to SSH.
- concepts/sso-authentication — the upstream trust model (OIDC ID Token that PK Tokens extend).
- patterns/identity-to-key-binding — the design pattern the public-key-in-token-must-match-session-key verifier check instantiates.