Proof of Possession
Proof of Possession is a check that confirms a party actually holds a specific secret key, rather than just claiming to. It is used to make sure that whoever presents a credential or token is the legitimate holder of the private key tied to it, which helps prevent stolen tokens from being reused by an attacker.
Proof of Possession (PoP) is a verification process by which a relying party gains assurance that an entity actually controls the private key associated with a given public key. In the context of OAuth 2.0, PoP techniques are used to sender-constrain tokens so that a token is bound to a specific client's key and cannot simply be replayed by any bearer. RFC 9449 specifies one such application-level mechanism, Demonstrating Proof-of-Possession (DPoP), which binds access tokens (and, depending on configuration, refresh tokens) using asymmetric cryptography and JSON Web Tokens, requiring the client to demonstrate continued possession of the corresponding private key. PoP is a cryptographic assurance mechanism and is distinct from establishing user identity; the specific guarantees, token types covered, and replay protections depend on the profile and deployment. Note that DPoP is one particular PoP mechanism and the two terms are not interchangeable.
Why it matters
The predominant token format in OAuth 2.0 deployments is the bearer token, where possession of the token alone is sufficient to use it. This means that if an access token is intercepted, leaked through a misconfigured proxy, or exfiltrated from a compromised client, an attacker who obtains the token can typically replay it against the resource server as if they were the legitimate client. Proof of Possession addresses this class of risk by requiring the presenter to cryptographically demonstrate control of a specific private key, so that a stolen token cannot be reused by any party that does not also hold the corresponding key.
Sender-constraining tokens through PoP raises the bar for token theft because an attacker must obtain not only the token but also the private key material, which in many deployments is held only by the legitimate client and never transmitted. This narrows the window and value of intercepted tokens and is particularly relevant in architectures where tokens traverse multiple network hops or intermediaries. The strength of this protection, however, depends on the specific mechanism, the token types it covers, and how the private key is protected in the client environment; PoP is a cryptographic assurance about key control, not a guarantee of user identity or of end-to-end security.
Who it's relevant to
Inside PoP
Common questions
Answers to the questions practitioners most commonly ask about PoP.
