Proof-of-Possession Tokens for OAuth Using JWS HTTP Signatures
draft-richanna-oauth-http-signature-pop-00

Document Type Active Internet-Draft (individual)
Last updated 2019-11-18
Stream (None)
Intended RFC status (None)
Formats plain text xml pdf htmlized bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                    A. Backman, Ed.
Internet-Draft                                                    Amazon
Intended status: Standards Track                       November 19, 2019
Expires: May 22, 2020

     Proof-of-Possession Tokens for OAuth Using JWS HTTP Signatures
               draft-richanna-oauth-http-signature-pop-00

Abstract

   This document describes a method of generating and validating proof-
   of-possession tokens for use with OAuth 2.0.  The required proof is
   provided via a JSON Web Signature (JWS) representing a signature of a
   minimal subset of elements from the HTTP request.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 22, 2020.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Backman                   Expires May 22, 2020                  [Page 1]
Internet-Draft       OAuth PoP Using HTTP Signatures       November 2019

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Generating the Signature  . . . . . . . . . . . . . . . . . .   3
   4.  Sending the signed object . . . . . . . . . . . . . . . . . .   3
     4.1.  HTTP Authorization header . . . . . . . . . . . . . . . .   3
     4.2.  HTTP Form body  . . . . . . . . . . . . . . . . . . . . .   4
     4.3.  HTTP Query parameter  . . . . . . . . . . . . . . . . . .   4
   5.  Validating the request  . . . . . . . . . . . . . . . . . . .   4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
     6.1.  The 'pop' OAuth Access Token Type . . . . . . . . . . . .   5
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
     7.1.  Denial of Service . . . . . . . . . . . . . . . . . . . .   5
   8.  Privacy Considerations  . . . . . . . . . . . . . . . . . . .   5
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   6
   10. Normative References  . . . . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   In order to prove possession of an access token and its associated
   key, an OAuth 2.0 client needs to compute some cryptographic function
   and present the results to the protected resource as a signature.
   The protected resource then needs to verify the signature and compare
   that to the expected keys associated with the access token.  This is
   in addition to the normal token protections provided by a bearer
   token [RFC6750] and transport layer security (TLS).

   Furthermore, it is desirable to bind the signature to the HTTP
   request.  Ideally, this should be done without replicating the
   information already present in the HTTP request more than required.
   However, many HTTP application frameworks insert extra headers, query
   parameters, and otherwise manipulate the HTTP request on its way from
   the web server into the application code itself.  It is the goal of
   this draft to have a signature protection mechanism that is
   sufficiently robust against such deployment constraints while still
   providing sufficient security benefits.

   The key required for this signature calculation is distributed via
   mechanisms described in companion documents (see
   [I-D.ietf-oauth-pop-key-distribution] and
   [I-D.ietf-oauth-pop-architecture]).  The JSON Web Signature (JWS)
   specification [RFC7515] is used for computing a digital signature
   (which uses asymmetric cryptography) or a keyed message digest (in
   case of symmetric cryptography).

Backman                   Expires May 22, 2020                  [Page 2]
Internet-Draft       OAuth PoP Using HTTP Signatures       November 2019
Show full document text