[Docs] [txt|pdf|xml|html] [Tracker] [Email] [Nits]

Versions: 00 01 02 draft-erdtman-oauth-rpcc

ACE Working Group                                               L. Seitz
Internet-Draft                                                 RISE SICS
Intended status: Informational                                S. Erdtman
Expires: November 11, 2017                                    Spotify AB
                                                            May 10, 2017


     Raw-Public-Key and Pre-Shared-Key as OAuth client credentials
                       draft-erdtman-ace-rpcc-00

Abstract

   This document describes Transport Layer Security (TLS) authentication
   using Raw-Public-Key and Pre-Shared-Key as new mechanisms for OAuth
   client authentication.  Although defined for TLS the mechanisms are
   equally applicable for DTLS.

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 http://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 November 11, 2017.

Copyright Notice

   Copyright (c) 2017 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
   (http://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.



Seitz & Erdtman         Expires November 11, 2017               [Page 1]


Internet-Draft           draft-erdtman-ace-rpcc                 May 2017


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   2
   2.  Pre-Shared-Key for Client Authentication  . . . . . . . . . .   2
   3.  Raw-Public-Key for Client Authentication  . . . . . . . . . .   3
   4.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   4
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
     5.1.  Token Endpoint Authentication Method Registration . . . .   4
       5.1.1.  Registry Contents . . . . . . . . . . . . . . . . . .   4
       5.1.2.  Registry Contents . . . . . . . . . . . . . . . . . .   4
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   4
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   5
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   This document describes Transport Layer Security (TLS) authentication
   using Raw-Public-Key and Pre-Shared-Key as the mechanism for OAuth
   client authentication.  Examples of endpoint requiering client
   authentication are token and introspection.

   The OAuth 2.0 Authorization Framework [RFC6749] defines a shared
   secret method of client authentication but also allows for the
   definition and use of additional client authentication mechanisms
   when interacting with the authorization server's token endpoint.
   This document describes two additional mechanisms of client
   authentication utilizing Raw-Public-Key [RFC7250] and Pre-Shared-Key
   TLS [RFC4279], which provide better security characteristics than
   shared secrets.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  Pre-Shared-Key for Client Authentication

   The following section defines, as an extension of OAuth 2.0,
   Section 2.3 [RFC6749], using Pre-Shared-Key with TLS [RFC4279] to
   authenticate the client.  This method is registered as
   'tls_client_psk' in "OAuth Token Endpoint Authentication Methods"
   registry.





Seitz & Erdtman         Expires November 11, 2017               [Page 2]


Internet-Draft           draft-erdtman-ace-rpcc                 May 2017


   The (D)TLS handshake MUST be done according to [RFC4279], with the
   client indicating support for one or more Pre-Shared-Key cipher
   suites and authorization server selecting a Pre-Shared-Key cipher
   suite.  In order to enable authorization server to select the correct
   pre-shared-key the client MUST send its client identifier in the psk-
   identity field of the ClientKeyExchange message.  How the
   authorization server maps a client identifier to the pre-shared-key
   is out of scope for this specification.

   Note that the client identity MUST be 2^16 bytes or shorter, in order
   to fit into the psk-identity field.

3.  Raw-Public-Key for Client Authentication

   The following section defines, as an extension of OAuth 2.0,
   Section 2.3 [RFC6749], the use of Raw-Public-Key with (D)TLS
   [RFC7250] to authenticate the client.  This method is registered
   as'tls_client_rpk' in "OAuth Token Endpoint Authentication Methods"
   registry.

   The (D)TLS handshake MUST be done according to [RFC7250], with the
   client indicating support for Raw-Public-Key certificates and the
   authorization server asking client send its Raw Public Key
   certificate.  To enable authorization server to validate the client
   RPK it MUST send its client identifier in the ClientHello or
   ClientKeyExchange message.

   Authorization servers MAY use the following method to map a Raw
   Public Key to a client identifier: The client identifier is generated
   from the Raw Public Key using the procedure specified in section 3 of
   [RFC6920].  The digest is calculated on the Raw Public Key only (not
   on the SubjectPublicKeyInfo used in the handshake).  An example is
   shown in Figure 1.

            Raw Public Key (Base64 encoded):
            MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEtboxNKPgxEKV9JTNzy
            tUvAbxEfkCTVB9kOzheF5wRAoOz2NKP+ln+XLVAQSp1D6jfo09tppvN
            poQA1nnBNH6A==";

            Encoding:
            ni:///sha-256;xzLa24yOBeCkos3VFzD2gd83Urohr9TsXqY9nhdDN0

        Figure 1: Example encoding of a raw public key in the Named
                          Information URI Format







Seitz & Erdtman         Expires November 11, 2017               [Page 3]


Internet-Draft           draft-erdtman-ace-rpcc                 May 2017


4.  Acknowledgements

   This document is highly inspired by [I-D.ietf-oauth-mtls] written by
   B.  Campbell, J.  Bradley, N.  Sakimura and T.  Lodderstedt.

5.  IANA Considerations

5.1.  Token Endpoint Authentication Method Registration

   This specification requests registration of the following value in
   the IANA "OAuth Token Endpoint Authentication Methods" registry
   [IANA.OAuth.Parameters] established by [RFC7591].

5.1.1.  Registry Contents

   o  Token Endpoint Authentication Method Name: "tls_client_rpk"
   o  Change Controller: IESG
   o  Specification Document(s): [[ this specification ]]

5.1.2.  Registry Contents

   o  Token Endpoint Authentication Method Name: "tls_client_psk"
   o  Change Controller: IESG
   o  Specification Document(s): [[ this specification ]]

6.  Security Considerations

   TBD

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC4279]  Eronen, P., Ed. and H. Tschofenig, Ed., "Pre-Shared Key
              Ciphersuites for Transport Layer Security (TLS)",
              RFC 4279, DOI 10.17487/RFC4279, December 2005,
              <http://www.rfc-editor.org/info/rfc4279>.

   [RFC6749]  Hardt, D., Ed., "The OAuth 2.0 Authorization Framework",
              RFC 6749, DOI 10.17487/RFC6749, October 2012,
              <http://www.rfc-editor.org/info/rfc6749>.





Seitz & Erdtman         Expires November 11, 2017               [Page 4]


Internet-Draft           draft-erdtman-ace-rpcc                 May 2017


   [RFC6920]  Farrell, S., Kutscher, D., Dannewitz, C., Ohlman, B.,
              Keranen, A., and P. Hallam-Baker, "Naming Things with
              Hashes", RFC 6920, DOI 10.17487/RFC6920, April 2013,
              <http://www.rfc-editor.org/info/rfc6920>.

   [RFC7250]  Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J.,
              Weiler, S., and T. Kivinen, "Using Raw Public Keys in
              Transport Layer Security (TLS) and Datagram Transport
              Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250,
              June 2014, <http://www.rfc-editor.org/info/rfc7250>.

   [RFC7591]  Richer, J., Ed., Jones, M., Bradley, J., Machulak, M., and
              P. Hunt, "OAuth 2.0 Dynamic Client Registration Protocol",
              RFC 7591, DOI 10.17487/RFC7591, July 2015,
              <http://www.rfc-editor.org/info/rfc7591>.

7.2.  Informative References

   [I-D.ietf-oauth-mtls]
              Campbell, B., Bradley, J., Sakimura, N., and T.
              Lodderstedt, "Mutual TLS Profiles for OAuth Clients",
              draft-ietf-oauth-mtls-00 (work in progress), May 2017.

   [IANA.OAuth.Parameters]
              IANA, "OAuth Parameters",
              <http://www.iana.org/assignments/oauth-parameters>.

Authors' Addresses

   Ludwig Seitz
   RISE SICS
   Scheelevaegen 17
   Lund  223 70
   SWEDEN

   Email: ludwig@ri.se


   Samuel Erdtman
   Spotify AB
   Birger Jarlsgatan 61, 4tr
   Stockholm  113 56
   Sweden

   Email: erdtman@spotify.com






Seitz & Erdtman         Expires November 11, 2017               [Page 5]


Html markup produced by rfcmarkup 1.129c, available from https://tools.ietf.org/tools/rfcmarkup/