TIGRESS                                                     D. Vinokurov
Internet-Draft                                                  C. Astiz
Intended status: Informational                              A. Pelletier
Expires: 10 May 2023                                        J. L. Giraud
                                                             A. Bulgakov
                                                             M. Byington
                                                               Apple Inc
                                                                  N. Sha
                                                            Alphabet Inc
                                                              M. Gerster
                                                        Mercedes-Benz AG
                                                         6 November 2022


          Transfer Digital Credentials Securely - Requirements
                     draft-tigress-requirements-03

Abstract

   This document describes the use cases necessitating the secure
   transfer of digital credentials between two devices and defines
   general assumptions, requirements and the scope of the corresponding
   Tigress Internet-draft [Tigress-00].

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://datatracker.ietf.org/doc/draft-tigress-requirements/.  Status
   information for this document may be found at
   https://datatracker.ietf.org/doc/draft-tigress-requirements/.

   Source for this draft and an issue tracker can be found at
   https://github.com/dimmyvi/tigress-requirements.

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/.






Vinokurov, et al.          Expires 10 May 2023                  [Page 1]

Internet-Draft            tigress-requirements             November 2022


   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 10 May 2023.

Copyright Notice

   Copyright (c) 2022 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 Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions and Definitions . . . . . . . . . . . . . . . . .   3
   3.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Relationships . . . . . . . . . . . . . . . . . . . . . . . .   4
   5.  Assumptions . . . . . . . . . . . . . . . . . . . . . . . . .   4
   6.  Requirements  . . . . . . . . . . . . . . . . . . . . . . . .   5
     6.1.  Intermediary server requirments . . . . . . . . . . . . .   6
   7.  Review of existing solutions  . . . . . . . . . . . . . . . .   6
     7.1.  Arbitrary Messaging Channel (Email / WhatsApp / SMS /
           Signal / etc.)  . . . . . . . . . . . . . . . . . . . . .   7
     7.2.  GSS-API, Kerberos . . . . . . . . . . . . . . . . . . . .   7
     7.3.  Signal Protocol . . . . . . . . . . . . . . . . . . . . .   7
   8.  Out of Scope  . . . . . . . . . . . . . . . . . . . . . . . .   7
   9.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   11. Normative References  . . . . . . . . . . . . . . . . . . . .   8
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Introduction

   TODO Introduction






Vinokurov, et al.          Expires 10 May 2023                  [Page 2]

Internet-Draft            tigress-requirements             November 2022


2.  Conventions and Definitions

   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.

   General terms:

   *  Credential information - data used to authenticate the user with
      an access point.

   *  Provisioning information - data transferred from Sender to
      Receiver device that is both necessary and sufficient for the
      Receiver to request a new credential from Provisioning Partner to
      provision it to the Receiver device.

   *  Provisioning - A process of adding a new credential to the device.

   *  Provisioning Partner - an entity which facilitates Credential
      Information lifecycle on a device.  Lifecycle may include
      provisioning of credential, credential termination, credential
      update.

   *  Sender (device) - a device initiating a transfer of Provisioning
      Information to a Receiver that can provision this credential.

   *  Receiver (device) - a device that receives Provisioning
      Information and uses it to provision a new credential.

   *  Intermediary (server) - an intermediary server that provides a
      standardized and platform-independent way of transferring
      provisioning information between Sender and Receiver devices.

3.  Use Cases















Vinokurov, et al.          Expires 10 May 2023                  [Page 3]

Internet-Draft            tigress-requirements             November 2022


   *  Let's say Ben owns a vehicle that supports digital keys which
      comply with the CCC [CCC-Digital-Key-30] open standard.  Ben would
      like to let Ryan borrow the car for the weekend.  Ryan and Ben are
      using two different mobile phones with different operating
      systems.  In order for Ben to share his car key to Ryan for a
      weekend, he must transfer some data to the receiver device.  The
      data structure shared between the two participants is defined in
      the CCC.  In addition, the CCC requires the receiver to generate
      required key material and return it to the sender to sign and
      return back to the receiver.  At this point, the receiver now has
      a token that will allow them to provision their new key with the
      car.

   *  Bob booked a room at a hotel for the weekend, but will be arriving
      late at night.  Alice, his partner, comes to the hotel first, so
      Bob wants to share his key to the room with Alice.  Bob and Alice
      are using two different mobile phones with different operating
      systems.  In order for Bob to share his key to the hotel to Alice
      for a weekend, he must transfer some data to her device.  The data
      structure shared between the two participants is proprietary to
      the given hotel chain (or Provisioning Partner).  This data
      transfer is a one-time, unidirectional from Bob's device to
      Alice's.  Once Alice receives this data, she can provision a new
      key to her device, making a call to Provisioning Partner to
      receive new credential information.

4.  Relationships

   mermaid sequenceDiagram actor S as Sender participant I as
   Intermediary actor R as Receiver S ->> I : upload credential data
   break Generic messaging channel S ->> R : send invite end Loop
   Provision credential R ->> I : request credential data I ->> R :
   deliver credential data end

5.  Assumptions

   *  Original credential information (with cryptographic key material)
      MUST NOT be sent or shared.  Instead, sender SHALL be transferring
      its approval token for Receiver to acquire new credential
      information.

   *  Provisioning Partner SHALL NOT allow for two users to use the same
      credential / cryptographic keys.

   *  Security: Communication between Sender / Receiver and Provisioning
      Partner SHOULD be trusted.





Vinokurov, et al.          Expires 10 May 2023                  [Page 4]

Internet-Draft            tigress-requirements             November 2022


   *  The choice of intermediary SHALL be defined by the application
      initiating the credential transfer.

   *  Sender and Receiver SHALL both be able to manage the shared
      credential at any point by communicating with the Provisioning
      Partner.  Credential lifecycle management is out of scope for this
      proposal.

   *  Any device OEM with a digital credential implementation adherent
      to Tigress [Tigress-00] SHALL be able to receive shared
      provisioning information, whether or not they can originate
      provisioning information themselves or host their own
      intermediary.

   *  Provisioning a credential on the Receiver MAY require multiple
      round trips.

6.  Requirements

   *  (Req-Connectivity) Sender and Receiver SHALL be allowed to be
      online at different times.  Sender and Receiver SHALL never need
      to be online at the same time.

   *  (Req-init) Solution SHOULD allow Sender to send the share
      invitation to Receiver over any messaging channel, with various
      degrees of security.

   *  (Req-P2P) A goal of credential transfer covered in this document
      SHALL include transfer from one device to another (group sharing
      SHALL not be a goal).

   *  (Req-Security) Solution SHOULD provide security of the
      provisioning data transferred (confidentiality, integrity and
      availability).

   *  (Req-Revoke) Solution SHALL maintain access control, allowing
      Sender to revoke before the share has been accepted, and for
      Receiver to end transfer at any time.

   *  (Req-ArbitraryFormat) The solution SHALL support arbitrary message
      formats to support both keys that implement public standards like
      CCC as well as proprietary implementations of digital keys.

   *  (Req-UnderstoodFormat) Both Sender application and Receiver
      application MUST be able to recognize the format.






Vinokurov, et al.          Expires 10 May 2023                  [Page 5]

Internet-Draft            tigress-requirements             November 2022


   *  (Req-RoundTrips) Solution SHALL allow for multiple round trips or
      multiple reads/writes between one set of Sender and Receiver
      devices.

   *  (Req-Preview) Solution SHOULD allow for extensibility and
      discoverable extensions (preview of share invitation).

   *  (Req-RedemptionHandling) Shared Provisioning Information SHOULD
      route Receiver to redeem Provisioning Information using the
      designated Credential Management Application (e.g.  Wallet).

6.1.  Intermediary server requirments

   If the solution requires an intermediary server, it should have the
   following requirements.

   *  (Req-Privacy) An Intermediary server SHALL not be able to
      correlate users between exchanges, or create a social graph.
      Intermediary server shall not be an arbiter of Identity.

   *  (Req-Notify) Solution SHOULD support a notification mechanism to
      inform devices on the content update on Intermediary server.

   *  (Req-IntermediaryProvision) An Intermediary server MUST not be
      able to provision credential on their own.

   *  (Req-Opaque) Message content between Sender and Receiver MUST be
      opaque to an Intermediary.

   *  (Req-IntermediaryAttestation) An Intermediary SHALL implement
      mechanisms to prevent abuse by share initiating device, verifying
      that the device is in good standing and content generated by the
      sender device can be trusted by the Intermediary.  The trust
      mechanism could be proprietary or publicly verifiable ( e.g.
      WebAuthN).

   *  (Req-ReceiverTrust) The Receiver device SHOULD be able to evaluate
      the trustworthiness of the Intermediary using a list of trusted/
      approved intermediaries.

7.  Review of existing solutions

   A number of existing solutions / protocols have been reviewed in
   order to be used for secure credential transfer based on the
   requirements: GSS-API, Kerberos, AWS S3, email, Signal.  None of the
   existing protocols comply with the requirements; the effort of
   modifying the existing protocols has been accessed to be
   significantly higher than introducing a new solution to solve this



Vinokurov, et al.          Expires 10 May 2023                  [Page 6]

Internet-Draft            tigress-requirements             November 2022


   problem.  The goal of the Tigress draft [Tigress-00] is not to define
   a new encryption or secure message exchange protocol, but rather a
   standardized mechanism of exchanging access-specific encrypted
   credential information.

7.1.  Arbitrary Messaging Channel (Email / WhatsApp / SMS / Signal /
      etc.)

   The Provisioning Information MAY be sent from Sender to Receiver over
   an arbitrary messaging channel that supports binary file transfer,
   but this would not support provisioning flows which require multiple
   round trips as requied by (Req-RoundTrips).

7.2.  GSS-API, Kerberos

   GSS-API [RFC2078] and Kerberos [RFC4120] are authentication
   technologies which could be used to authenticate Sender, Receiver and
   intermediary.  However, as they provide strong authentication, they
   would allow the Intermediary server to build a social graph in
   violation of (Req-Privacy).  Their setup also require strong
   coordination between the actors of the system which seems overly
   costly for the intended system.  AWS S3 could be used as an
   Intermediary server but it would force all participants to use a
   specific cloud service which is in violation of (Req-AnyPlatorm).

7.3.  Signal Protocol

   As a messaging protocol, Signal could be used between Sender,
   Receiver and Intermediary but this protocol is fairly complex and its
   use would most like violate (Req-Simplicity).  The system will
   however support the Signal service for share initiation, in line with
   (Req-init).

8.  Out of Scope

   *  Identification and Authorization - solution shall not require
      strong identification and authentication from user (e.g. using PKI
      certificates).

   *  Fully stopping people from sharing malicious content ("cat
      pictures").

   *  Solving problem of sharing to groups.

   *  Detailing how credentials are provisioned either on a device or
      with a provisioning partner.





Vinokurov, et al.          Expires 10 May 2023                  [Page 7]

Internet-Draft            tigress-requirements             November 2022


9.  Security Considerations

   TODO Security

10.  IANA Considerations

   This document has no IANA actions.

11.  Normative References

   [CCC-Digital-Key-30]
              Car Connectivity Consortium, "Digital Key – The Future of
              Vehicle Access", November 2021, <https://global-
              carconnectivity.org/wp-content/uploads/2021/11/
              CCC_Digital_Key_Whitepaper_Approved.pdf>.

   [RFC2078]  Linn, J., "Generic Security Service Application Program
              Interface, Version 2", RFC 2078, DOI 10.17487/RFC2078,
              January 1997, <https://www.rfc-editor.org/rfc/rfc2078>.

   [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/rfc/rfc2119>.

   [RFC4120]  Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The
              Kerberos Network Authentication Service (V5)", RFC 4120,
              DOI 10.17487/RFC4120, July 2005,
              <https://www.rfc-editor.org/rfc/rfc4120>.

   [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/rfc/rfc8174>.

   [Tigress-00]
              Vinokurov, D., Byington, M., Lerch, M., Pelletier, A., and
              N. Sha, "Transfer Digital Credentials Securely", September
              2022,
              <https://datatracker.ietf.org/doc/draft-art-tigress/>.

Acknowledgments

   TODO acknowledge.

Authors' Addresses

   Dmitry Vinokurov
   Apple Inc



Vinokurov, et al.          Expires 10 May 2023                  [Page 8]

Internet-Draft            tigress-requirements             November 2022


   Email: dvinokurov@apple.com


   Casey Astiz
   Apple Inc
   Email: castiz@apple.com


   Alex Pelletier
   Apple Inc
   Email: a_pelletier@apple.com


   Jean-Luc Giraud
   Apple Inc
   Email: jgiraud@apple.com


   Alexey Bulgakov
   Apple Inc
   Email: abulgakov@apple.com


   Matt Byington
   Apple Inc
   Email: mbyington@apple.com


   Nick Sha
   Alphabet Inc
   Email: nicksha@google.com


   Manuel Gerster
   Mercedes-Benz AG
   Email: manuel.gerster@mercedes-benz.com















Vinokurov, et al.          Expires 10 May 2023                  [Page 9]