Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 395

DPoP (Demonstrating Proof of Possession)

DPoP (Demonstrating Proof of Possession) 是什么?

DPoP (Demonstrating Proof of Possession)An OAuth 2.0 extension (RFC 9449) that binds access tokens to a per-client key pair, so a stolen bearer token cannot be replayed by an attacker without also stealing the private signing key.


DPoP (Demonstrating Proof of Possession at the Application Layer), specified in RFC 9449, is an OAuth 2.0 mechanism that converts bearer tokens into sender-constrained tokens without requiring mutual TLS. The client generates an ephemeral asymmetric key pair, includes the public key's JWK thumbprint as `jkt` in the access token (issued by the IdP), and on every API call sends a short-lived JWT proof signed with its private key in the `DPoP` HTTP header. The proof commits to the HTTP method, the request URI, and a fresh nonce or jti, so an attacker who steals the access token but lacks the private key cannot forge a valid proof. Resource servers verify the proof matches both the token's bound key and the current request. DPoP is one of two practical answers to OAuth bearer-token theft (the other being mTLS-bound tokens) and is now widely supported by Okta, Auth0, Entra ID, Keycloak, and several open-source libraries. Combined with PKCE and short refresh-token lifetimes, DPoP dramatically reduces the value of a stolen token to an attacker.

示例

  1. 01

    A mobile banking app signs a DPoP proof JWT with its TEE-stored key on every API call; a stolen access token alone gets the attacker nothing.

  2. 02

    An IdP issues access tokens with `cnf.jkt` bound to the client's DPoP key, and the resource server rejects any request whose proof JWT doesn't match the bound thumbprint.

常见问题

DPoP (Demonstrating Proof of Possession) 是什么?

An OAuth 2.0 extension (RFC 9449) that binds access tokens to a per-client key pair, so a stolen bearer token cannot be replayed by an attacker without also stealing the private signing key. 它属于网络安全的 身份与访问 分类。

DPoP (Demonstrating Proof of Possession) 是什么意思?

An OAuth 2.0 extension (RFC 9449) that binds access tokens to a per-client key pair, so a stolen bearer token cannot be replayed by an attacker without also stealing the private signing key.

DPoP (Demonstrating Proof of Possession) 是如何工作的?

DPoP (Demonstrating Proof of Possession at the Application Layer), specified in RFC 9449, is an OAuth 2.0 mechanism that converts bearer tokens into sender-constrained tokens without requiring mutual TLS. The client generates an ephemeral asymmetric key pair, includes the public key's JWK thumbprint as `jkt` in the access token (issued by the IdP), and on every API call sends a short-lived JWT proof signed with its private key in the `DPoP` HTTP header. The proof commits to the HTTP method, the request URI, and a fresh nonce or jti, so an attacker who steals the access token but lacks the private key cannot forge a valid proof. Resource servers verify the proof matches both the token's bound key and the current request. DPoP is one of two practical answers to OAuth bearer-token theft (the other being mTLS-bound tokens) and is now widely supported by Okta, Auth0, Entra ID, Keycloak, and several open-source libraries. Combined with PKCE and short refresh-token lifetimes, DPoP dramatically reduces the value of a stolen token to an attacker.

如何防御 DPoP (Demonstrating Proof of Possession)?

针对 DPoP (Demonstrating Proof of Possession) 的防御通常结合技术控制与运营实践,详见上方完整定义。

DPoP (Demonstrating Proof of Possession) 还有哪些其他名称?

常见的别称包括: RFC 9449, Demonstrating Proof of Possession。

相关术语