ACE Working Group                                           F. Palombini
Internet-Draft                                               Ericsson AB
Intended status: Standards Track                      September 21, 2020
Expires: March 25, 2021


          Identifier Negotiation for the OSCORE Profile of ACE
                draft-palombini-ace-oscore-profile-id-00

Abstract

   This document defines a mechanism to negotiate OSCORE security
   material identifiers for the OSCORE profile of ACE.

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 March 25, 2021.

Copyright Notice

   Copyright (c) 2020 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.






Palombini                Expires March 25, 2021                 [Page 1]


Internet-Draft      Id Negotiation for OSCORE Profile     September 2020


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Background  . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Identifiers Negotiation . . . . . . . . . . . . . . . . . . .   4
     3.1.  C-to-AS:  . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.2.  C-to-RS: POST to authz-info endpoint  . . . . . . . . . .   4
     3.3.  RS-to-C: 2.01 (Created) . . . . . . . . . . . . . . . . .   4
     3.4.  Not Supported . . . . . . . . . . . . . . . . . . . . . .   5
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
     5.1.  OAuth Parameters Registry . . . . . . . . . . . . . . . .   5
     5.2.  OAuth Parameters CBOR Mappings Registry . . . . . . . . .   6
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   6
   7.  Normative References  . . . . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   In the OSCORE profile, the client and resource server receive the
   OSCORE Sender and Recipient Identifiers from the AS.  This has some
   limitations, especially if the OSCORE profile is used in conjuction
   with other mechamisms that also derive identifiers, in which case
   either collisions would happen, or longer identifiers need to be used
   as a result.  This document describes a way to negotiate the
   identifiers so that collisions does not happen even if other
   authentication mechanisms are used.

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   Readers are expected to be familiar with the terms and concepts
   described in [I-D.ietf-ace-oauth-authz]
   [I-D.ietf-ace-oscore-profile], such as Authorization Server (AS) and
   Resource Server (RS).

   Readers are expected to be familiar with the terms and concepts
   described in [RFC8613], especially on the use of Sender, Recipient
   and Context Identifiers.






Palombini                Expires March 25, 2021                 [Page 2]


Internet-Draft      Id Negotiation for OSCORE Profile     September 2020


2.  Background

   TODO: introduce OSCORE Sender and Recipient Identifiers and how they
   are used in OSCORE.

   The OSCORE profile specifies that the AS assigns and sends the OSCORE
   Sender and Recipient Identifiers to both Client and RS, together with
   the rest of the input material to derive the complete OSCORE Security
   Context.  That is done by including these identifiers in the Access
   Token and Access Information response to the Client.  The access
   token containing these identifiers is also forwarded to the RS by the
   Client.

             C                            RS                   AS
             |                            |                     |
             | ----- POST /token  ----------------------------> |
             |                            |                     |
             | <---------------------------- Access Token ----- |
             |                           + Access Information   |
             | ---- POST /authz-info ---> |                     |
             |     (access_token, N1)     |                     |
             |                            |                     |
             | <--- 2.01 Created (N2) --- |                     |
             |                            |                     |
           /Sec Context             /Sec Context                |
             Derivation/              Derivation/               |
             |                            |                     |
             | ---- OSCORE Request -----> |                     |
             |                            |                     |
             |                    /proof-of-possession          |
             |                    Sec Context storage/          |
             |                            |                     |
             | <--- OSCORE Response ----- |                     |
             |                            |                     |
          /proof-of-possession            |                     |
          Sec Context storage/            |                     |
             |                            |                     |
             | ---- OSCORE Request -----> |                     |
             |           ...              |                     |

                     Figure 1: OSCORE Profile Overview

   This works with a number of requirements: the OSCORE profile states
   that if other authentication mechanisms are used to set up OSCORE
   between the same client and RS, that do not rely on an AS assigning
   identifiers, collisions may happen and need to be mitigated.  Such
   mitigation mechanism also need to be used if a different AS (not
   sinchronized with the first AS) or authentication protocol is used to



Palombini                Expires March 25, 2021                 [Page 3]


Internet-Draft      Id Negotiation for OSCORE Profile     September 2020


   set up OSCORE between the same RS and other clients.  A mitigation
   example would be to use distinct namespaces of context identifiers
   for different authentication mechanisms or authentication servers.
   Another solution would be to use longer random identifiers.  A third
   possible solution, acceptable if collisions are not expected to be
   numerous, would be to rely on trial and error of security contexts
   when receiving a message.

   These solutions have the drawback of requiring longer identifiers to
   be used in general, which leads to larger message sizes, or
   additional processing on the RS.

   This document specifies a different mechanism to assign identifiers
   that works on top of the current OSCORE profile, and that allows to
   set up identifiers without collisions, even when other authentication
   mechanisms or non-syncrhonized AS are used.

3.  Identifiers Negotiation

   This section details the message exchange.

3.1.  C-to-AS:

3.2.  C-to-RS: POST to authz-info endpoint

   The client generates its own Recipient Id for the OSCORE Security
   Context that it is establishing with the RS.  By generating its own
   Recipient Id, the client makes sure that it does not collide with any
   other Recipient Identifiers stored in memory.  The client posts it
   together with what is described in Section 4.1 of
   [I-D.ietf-ace-oscore-profile].  The Client includes the Recipient Id
   in the POST to authz-info request, as a ace_client_recipientid
   parameter, as registered in Section 5.1 and Section 5.2.

   When receiving the POST to authz-info request including the
   ace_client_recipientid parameter, the RS MUST set its own Sender
   Identifier to the value of the ace_client_recipientid and discard any
   ServerId present in the access token.

3.3.  RS-to-C: 2.01 (Created)

   The RS generates its own Recipient Id for the OSCORE Security Context
   that it is establishing with the client.  The Recipient Id MUST be
   different than the ace_client_recipientid received from the client.
   By generating its own Recipient Id, the RS makes sure that it does
   not collide with any other Recipient Identifiers stored in memory.
   The RS sends it to the Client together with what is described in
   Section 4.2 of [I-D.ietf-ace-oscore-profile].  The RS includes the



Palombini                Expires March 25, 2021                 [Page 4]


Internet-Draft      Id Negotiation for OSCORE Profile     September 2020


   Recipient Id in the 2.01 (Created) response, as a
   ace_server_recipientid parameeter, as registered in Section 5.1 and
   Section 5.2.

   When receiving the response including the ace_server_recipientid
   parameter, the Client MUST set its own Sender Identifier to the value
   of the ace_server_recipientid and discard any ClientId present in the
   access token.

3.4.  Not Supported

   If the RS does not support this specification, and the client sends
   its Recipient Id in the ace_client_recipientid, the server will not
   recognize the parameter and either respond with an error response or
   discard the parameter.

   If the RS replies with an error response or if the RS replies with a
   2.01 (Created) not including the ace_server_recipientid parameter the
   Client MUST assume the server uses the identifiers in the token and
   do the same.

   TODO: so it is possible for anybody in the middle to revert back to
   OSCORE profile, without this addition, and therefore create
   collisions without identifiers.

4.  Security Considerations

   TODO

5.  IANA Considerations

   This document has the following actions for IANA.

5.1.  OAuth Parameters Registry

   The following registrations are done for the OAuth ParametersRegistry
   following the procedure specified in section 11.2 of [RFC6749]:

   o Parameter name: ace_client_recipientid o Parameter usage location:
   client-rs request o Change Controller: IESG o Specification
   Document(s): [[This specification]]

   o Parameter name: ace_server_recipientid o Parameter usage location:
   rs-client response o Change Controller: IESG o Specification
   Document(s): [[This specification]]






Palombini                Expires March 25, 2021                 [Page 5]


Internet-Draft      Id Negotiation for OSCORE Profile     September 2020


5.2.  OAuth Parameters CBOR Mappings Registry

   The following registrations are done for the OAuth Parameters CBOR
   Mappings Registry following the procedure specified in section 8.9 of
   [I-D.ietf-ace-oauth-authz]:

   * Name: ace_client_recipientid
   * CBOR Key: TBD (range -256 to 255)
   * Value Type: byte string
   * Reference: \[\[This specification\]\]

   * Name: ace_server_recipientid
   * CBOR Key: TBD (range -256 to 255)
   * Value Type: byte string
   * Reference: \[\[This specification\]\]

Acknowledgments

   This document was started from comments and discussion with the
   following individuals: John Mattsson, Jim Schaad, Goeran Selander.

7.  Normative References

   [I-D.ietf-ace-oauth-authz]
              Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and
              H. Tschofenig, "Authentication and Authorization for
              Constrained Environments (ACE) using the OAuth 2.0
              Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-35
              (work in progress), June 2020.

   [I-D.ietf-ace-oscore-profile]
              Palombini, F., Seitz, L., Selander, G., and M. Gunnarsson,
              "OSCORE profile of the Authentication and Authorization
              for Constrained Environments Framework", draft-ietf-ace-
              oscore-profile-11 (work in progress), June 2020.

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

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

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.



Palombini                Expires March 25, 2021                 [Page 6]


Internet-Draft      Id Negotiation for OSCORE Profile     September 2020


   [RFC8613]  Selander, G., Mattsson, J., Palombini, F., and L. Seitz,
              "Object Security for Constrained RESTful Environments
              (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019,
              <https://www.rfc-editor.org/info/rfc8613>.

Author's Address

   Francesca Palombini
   Ericsson AB
   Torshamnsgatan 23
   Kista  SE-16440 Stockholm
   Sweden

   Email: francesca.palombini@ericsson.com





































Palombini                Expires March 25, 2021                 [Page 7]