Атаки повторного использования (replay-атаки) — распространённый вектор для злоумышленников. Если атакующий получает доступ к валидному токену, он может выступать от имени первоначального владельца. Механизм Demonstrating Proof of Possession (DPoP) определяет способ подтверждения владения токеном, защищающий все стороны от атак повторного использования, направленных на токены доступа, а в некоторых случаях — и на токены обновления.
DPoP представляет собой механизм подтверждения владения токеном на уровне приложения, ограничивающий использование токенов доступа и обновления OAuth [RFC6749] конкретным отправителем. Он позволяет клиенту подтвердить владение парой ключей (публичным и приватным), включая заголовок DPoP в HTTP-запрос. Значением этого заголовка является JSON Web Token (JWT) [
RFC 7519], на основе которого сервер авторизации может привязать выданные токены к публичному ключу из клиентской пары. Получатели таких токенов затем могут проверить эту привязку, убедившись, что клиент, предъявляющий токен, действительно владеет соответствующим приватным ключом (что подтверждается подписью в заголовке DPoP). Иными словами, легитимным владельцем токена может быть только тот отправитель, который доказал владение приватной частью ключевой пары.
Привязка токенов к криптографическим ключам, чьи приватные ключи никогда не раскрываются в рамках протокола, делает невозможным использование перехваченных токенов: у злоумышленника нет приватного ключа, защищающего эти токены. Клиент всегда сохраняет приватный ключ у себя и никогда не передаёт его серверу — хотя доказательство владения им (в виде цифровой подписи) отправляется в составе заголовка DPoP. Это обеспечивает более высокий уровень защиты по сравнению с «токенами-носителями» (bearer tokens), ранее являвшимися стандартом для OAuth 2.0. Пары приватных и публичных ключей — отличное решение [
RFC 6750].