Visual RFC.
ALL RFCs / RFC 7800
Read the RFC ↗
RFC 7800 / JWT PROOF-OF-POSSESSION KEYS

Check a public key and a separate proof

02

A JSON Web Key (JWK) carries the public verification key; a separate protocol demonstrates possession of its private counterpart.

RFC 7800 · § 3.2EXAMPLE
4 / 4
Check a public key and a separate proofA validated token provides one own public P-256 teaching JWK with complete kty,crv,x,y fields and no private d. Recipient sends illustrative nonce-A toward presenter, then presenter returns an example ECDSA SHA-256 signature toward recipient. It is a protocol sketch, not a wire protocol defined by RFC7800. The separate wrong-key case retains bound public key A while a proof with private key B stops before application use. Scalar1 is an intentionally insecure test fixture, never a production credential.The JWT signature and the key proof are separatePresenterRecipientprivate key Bbound public key Aproof made with B · verify with ASignature does not verify under bound key AReject proof · do not authorize from it
04
Reject a signature from another key.

Separate failure: a token bound to key A is accompanied by a signature using private key B. The recipient cannot verify that proof with public key A.

Source for this drawing: RFC 7800 · Read RFC section 3.2 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A key is different from permission.

An app, a person, and a server have different roles. Follow who asks, who grants permission, and who checks the credential. A key in the drawing is an analogy, not a literal protocol field.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Verify the JWT before trusting its confirmation key, then verify the presenter’s proof.

  • For an asymmetric proof key, cnf.jwk represents the corresponding public key and MUST contain the required members for that JWK key type. Other members, including kid, MAY appear.
  • The private key remains with the presenter. An issuer signature on the JWT is not itself the presenter’s proof of possession.
  • A recipient-selected nonce signed by the presenter is one example. This RFC intentionally leaves the nonce format, transport and proof-message format to another protocol or application profile.
DETAILS

The displayed public fixture comes from the intentionally insecure test scalar 1, used only to make regressions reproducible. Never use it in a real system. No nonce/signature encoding is standardized here; no complete JWT or proof implementation is supplied.

Read the RFC section ↗

All chapters in RFC 7800

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗