draft-mw-oauth-tls-session-bound-tokens
TLS-Session-Bound Access Tokens for OAuth 2.0
This document defines a mechanism for binding OAuth 2.0 access tokens
to a specific mutual TLS (mTLS) connection. The binding is achieved
through a proof token that incorporates the TLS Exporter value
[RFC5705] derived from the current connection and an access token
hash, signed by the client's private key corresponding to its mTLS
certificate. This mechanism prevents stolen bearer tokens from being
replayed on a different TLS connection. The proof is constructed
once per (token, connection) pair and reused across all requests on
that connection, delivering session binding with no per-request
signing overhead and no additional key management beyond what mTLS
already provides. The mechanism is applicable to TLS 1.2, TLS 1.3,
and QUIC transports. While applicable to any OAuth 2.0 access token
presented over mTLS, this specification is primarily motivated by the
Token Exchange protocol [RFC8693], where multi-hop delegation chains
in autonomous, agent-driven architectures create elevated replay
risk.