<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tigress-sample-implementation-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title abbrev="tigress-sample-implementation">Transfer Digital Credentials Securely: sample implementation and threat model</title>
    <seriesInfo name="Internet-Draft" value="draft-tigress-sample-implementation-00"/>
    <author initials="D." surname="Vinokurov" fullname="Dmitry Vinokurov">
      <organization>Apple Inc</organization>
      <address>
        <email>dvinokurov@apple.com</email>
      </address>
    </author>
    <author initials="A." surname="Bulgakov" fullname="Alexey Bulgakov">
      <organization>Apple Inc</organization>
      <address>
        <email>abulgakov@apple.com</email>
      </address>
    </author>
    <author initials="J. L." surname="Giraud" fullname="Jean-Luc Giraud">
      <organization>Apple Inc</organization>
      <address>
        <email>jgiraud@apple.com</email>
      </address>
    </author>
    <author initials="C." surname="Astiz" fullname="Casey Astiz">
      <organization>Apple Inc</organization>
      <address>
        <email>castiz@apple.com</email>
      </address>
    </author>
    <author initials="A." surname="Pelletier" fullname="Alex Pelletier">
      <organization>Apple Inc</organization>
      <address>
        <email>a_pelletier@apple.com</email>
      </address>
    </author>
    <author initials="J." surname="Hansen" fullname="Jake Hansen">
      <organization>Apple Inc</organization>
      <address>
        <email>jake.hansen@apple.com</email>
      </address>
    </author>
    <date year="2022" month="November" day="06"/>
    <area>ART</area>
    <workgroup>Tigress</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes a sample implementation and its threat model of the secure transfer of digital credentials (Tigress) solution of the corresponding Tigress Internet-draft <xref target="Tigress-00"/>.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/dimmyvi/tigress-sample-implementation"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tigress-sample-implementation/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dimmyvi/tigress-sample-implementation"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This document provides a sample implementation and threat model for it.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <ul spacing="normal">
        <li>DCK - Digital Car Key</li>
        <li>AP - Application Processor</li>
        <li>TTL - Time To Live</li>
      </ul>
    </section>
    <section anchor="sample-implementation-digital-carkey-sharing-example">
      <name>Sample Implementation - Digital CarKey sharing example.</name>
      <ul spacing="normal">
        <li>An owner device (Sender) starts sharing flow with selection of credential entitlements for the key shared - e.g. access entitlements (allow open the car, allow start the engine, allow to drive the car), time of sharing - e.g. from 09/01/2022 to 09/03/2022, then generates a KeyCreationRequest (per CCC spec).</li>
        <li>The owner device generates a new symmetric encryption key (Secret) and encrypts the data. Then generates an attestation blob, that follows a WebAuthn API, specific to Apple - AAA (Apple Anonymous Attestation), which covers the encrypted content. Owner device makes a call to Relay server (Intermediary) - createMailbox, passing over the encrypted content, device attestation, mailbox configuration (mailbox time-to-live, access rights - RWD), preview (display information) details, it's push notification token and a unique deviceClaim.</li>
        <li>Relay server verifies device attestation using WebAuthn verification rules specific to AAA, including verifying device PKI certificate in attestation blob. Relay server creates a mailbox, using mailboxConfiguration received in the request and stores encrypted content in it.</li>
        <li>The mailbox has a time-to-live, time, when it is to expire and be deleted by the Relay server. This time is limited by the value that can be considered both sufficient to complete the transfer and secure to against brute force attacks on the encrypted content the content - e.g. 48 hours.</li>
        <li>Relay server generates a unique mailboxIdentifier value, that is hard to predict - e.g. using GUID - and builds a full URL (shareURL) referencing the mailbox - e.g. "www.example.com/v1/m/2bba630e-519b-11ec-bf63-0242ac130002", which it returns to the Owner device.</li>
        <li>Owner device locally stores the shareURL and the Secret and sends the shareURL with optional vertical in URL parameter and mandatory secret in Fragment part (e.g. "www.example.com/v1/m/2bba630e-519b-11ec-bf63-0242ac130002?v=c#hXlr6aRC7KgJpOLTNZaLsw==") to the Friend's device (Receiver) over SMS.</li>
        <li>Friend device receives the shareURL in SMS, messaging application makes an automatic GET call to shareURL (excluding Fragment part - Secret) - and fetches a preview (Display Information) html page with OpenGraph tags in the head:</li>
      </ul>
      <figure anchor="opengraph-preview-example">
        <name>OpenGraph preview of a credential</name>
        <artwork><![CDATA[
<html prefix="og: https://ogp.me/ns#">
<head>
 <title>Shared Key</title>
 <meta content="Shared Key" property="og:title"/>
 <meta content="You've been invited to add a shared digital car key to your device." property="og:description"/>
 <meta content="https://example.com/displayInfo/general.png" property="og:url"/>
 <meta content="https://example.com/displayInfo/general.png" property="og:image"/>
 <meta content="200" property="og:image:width"/>
 <meta content="100" property="og:image:height"/>
</head>
</html>
]]></artwork>
      </figure>
      <ul spacing="normal">
        <li>Messaging application shows the user a preview of the carKey that Owner wants to share with them. User accepts the shareURL by clicking on the preview in the messaging application. Messaging application redirects the user to wallet (credential manager application) using a deep link mechanism embedded into the OS.</li>
        <li>Wallet receives the shareURL with the Secret in the Fragment. Friend device checks if the Relay server is in allow-list of accepted Relay servers.</li>
        <li>Wallet reads secure content from the mailbox using shareURL (without the Fragment part) with HTTP POST method, passing a unique deviceClaim with the request. Relay server binds the mailbox (identified by mailboxIdentifier) with the Owner device (with Owner device deviceClaim) and the Friend device (with Friend device deviceClaim). Now only these 2 devices are allowed to read and write secure content to this particular mailbox. This secures the message exchange and prevents other devices from altering the exchange between Owner and Friend.</li>
        <li>Friend's device decrypts secure content using Secret and extracts KeyCreationRequest (ref to CCC specification).</li>
        <li>Friend device generates a KeySigningRequest (ref to CCC specification), encrypts it with Secret and uploads to the mailbox with UpdateMailbox call to Relay server, providing its unique deviceClaim and push notification token.</li>
        <li>Relay server sends a push notification to Owner's device via Push Notification Server.</li>
        <li>Owner device, having received a push notification message,  reads secure content from the mailbox using shareURL with HTTP POST method, passing its unique deviceClaim with the request. Owner device decrypts secure content using Secret and extracts KeySigningRequest (ref to CCC specification).</li>
        <li>Owner device signs the Friend's device public key with Owner's private key and creates a KeyImportRequest (ref to CCC specification). Owner device encrypts it with the Secret and uploads to the mailbox with with UpdateMailbox call to Relay server, providing its unique deviceClaim.</li>
        <li>Relay server sends a push notification to Friend device via Push Notification Server.</li>
        <li>Friend device, having received a push notification message,  reads secure content from the mailbox using shareURL with HTTP POST method, passing its unique deviceClaim with the request. Friend device decrypts secure content using Secret and extracts KeyImportRequest (ref to CCC specification). Friend device provisions the new credential to the wallet and deletes the mailbox with DeleteMailbox call to the Relay server. As an additional security measure, Friend device asks for a verification code (PIN code) generated by Owner device and communicated to Friend out-of-band.</li>
      </ul>
    </section>
    <section anchor="threat-model">
      <name>Threat Model</name>
      <t>Threat model for the sample implementation is provided at the following URL:
[threat_model]: https://github.com/dimmyvi/tigress-sample-implementation/blob/main/threat_model.png "Threat model for Tigress sample implementation"</t>
      <table>
        <thead>
          <tr>
            <th align="left">Item</th>
            <th align="left">Asset</th>
            <th align="left">Threat</th>
            <th align="left">Impact</th>
            <th align="left">Mitigation</th>
            <th align="left">Comment</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">Owner's DCK</td>
            <td align="left">Kicking-off arbitrary key sharing by spoofing user identity</td>
            <td align="left">DCK become shared with arbitrary user/adversary allowing them access to the Owner's car</td>
            <td align="left">1) User auth (face/touch ID), 2) Secure Intent</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">Content on Intermediary server</td>
            <td align="left">Content recovery by brute forcing secret</td>
            <td align="left">Exposure of encrypted content and key redemption</td>
            <td align="left">1) Strong source of randomness for salt, 2) At least 128 bit key lenght, 3) Limitted TTL of the mailbox</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">Content on Intermediary server</td>
            <td align="left">Content recovery by intercepting secret</td>
            <td align="left">Ability to decrypt content on Intermediary server</td>
            <td align="left">1) Physical separation between content and secret, e.g. secret sent as URI fragment to recipient, 2) Optional second factor(e.g. Device PIN, Activation Options - please refer to CCC Technical Specification) can be propoused to the user via UI notification based on security options of selected primary sharing channel (used to share URL with secret)</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">Content on Intermediary server</td>
            <td align="left">Accees to content by multiple arbitrary  users/devices</td>
            <td align="left">1) Adversary can go to partner and redeem the shared key, 2) Adversary can send push notifications</td>
            <td align="left">1) Mailboxes identified by version 4 UUID defined in <xref target="RFC4122"/>(hard to guess/bruteforce), 2) Mailboxes 'tied' to sender and recipient (trust on first use via deviceClaim), 3) TTL limit for mailboxes, 4) Mailboxes deleted after pass redemption</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">Content on Intermediary server</td>
            <td align="left">Compromised Intermediary server</td>
            <td align="left">1) Adversary can redeem the sharedKey, 2) Adversary can send push notifications</td>
            <td align="left">1) Separation between content and secret, e.g. secret sent as URI fragment to recipient, 2) TTL limit for mailboxes</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">6</td>
            <td align="left">Content on Intermediary server and Push Tokens</td>
            <td align="left">Unauthenticated access to mailbox on Intermediary server</td>
            <td align="left">1) Adversary can redeem the sharedKey, 2) Adversary can send push notifications</td>
            <td align="left">1) Mailboxes identified by version 4 UUID defined in <xref target="RFC4122"/>(hard to guess/bruteforce), 2) Mailboxes 'tied' to sender and recipient (trust on first use via deviceClaim), 3) TTL limit for mailboxes, 4) Mailboxes deleted after pass redemption</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">7</td>
            <td align="left">Content on Intermediary server</td>
            <td align="left">User stores non-credential information in mailbox (e.g. "cat pictures")</td>
            <td align="left">Service abuse, Adversary can use Intermediary server as cloud storage</td>
            <td align="left">1) Mailboxes have size limit, 2) Mailboxes have TTL</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">8</td>
            <td align="left">Device PIN</td>
            <td align="left">Receiver device compromised (redemption before friend)</td>
            <td align="left">Device PIN can exposure and forwarding to an advarsary</td>
            <td align="left">Activation Options as defined in <xref target="CCC-Digital-Key-30"/>, Section 11.2 Sharing Principles, subsection 11.2.1.3. Activation Options</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">9</td>
            <td align="left">Device PIN</td>
            <td align="left">Weak PIN can be easily guessed</td>
            <td align="left">Anyone with share URL in their possession can guess the PIN and redeem the key</td>
            <td align="left">1) Use of strong RNG as a source to generate Device PIN, 2) Long enough PIN (e.g. 6 digits) as per <xref target="NIST-800-63B"/> reccomendations, 3) Limit numer of retries (e.g. DEvice PIN retry counter + limit) as per <xref target="NIST-800-63B"/> reccomendations</td>
            <td align="left">
              <xref target="NIST-800-63B"/>, section 5.1.1.1 Memorized Secret Authenticators</td>
          </tr>
          <tr>
            <td align="left">10</td>
            <td align="left">Device PIN</td>
            <td align="left">Eavesdropping on weak msg channels/app</td>
            <td align="left">PIN exposure would allow one with possession of share URL and Secret to redeem key</td>
            <td align="left">In person, out of band PIN trasfer, e.g. voice channel</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">11</td>
            <td align="left">Device PIN</td>
            <td align="left">PIN recovery via timing attack</td>
            <td align="left">Adversary with shared URL in possession can recover PIN based on the response delay, in the case where the PIN verification is not invariant</td>
            <td align="left">1) Time invariant compare, 2) PIN retry counter/limit</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">12</td>
            <td align="left">Device PIN retry counter/limit</td>
            <td align="left">Device PIN brute force</td>
            <td align="left">Device PIN successful guess</td>
            <td align="left">1) Use of strong RNG as a source to generate Device PIN, 2) Long enough PIN (e.g. 6 digits) as per  <xref target="NIST-800-63B"/> reccomendations, 3) Limit numer of retries (e.g. DEvice PIN retry counter + limit) as per <xref target="NIST-800-63B"/> reccomendations</td>
            <td align="left">
              <xref target="NIST-800-63B"/>, section 5.1.1.1 Memorized Secret Authenticators</td>
          </tr>
          <tr>
            <td align="left">13</td>
            <td align="left">Sharing Invitation</td>
            <td align="left">Messaging channel eavesdropping</td>
            <td align="left">Share invitation forwarding and DCK redemtion by malicious party</td>
            <td align="left">1) Send invitation and Device PIN via different channels, e.g. Device PIN can be shared out of band (over voice), 2) Use of E2E encrypted msg apps/chhannel</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">14</td>
            <td align="left">Sharing Invitation</td>
            <td align="left">Voluntary/Involuntary forwarding by Friend</td>
            <td align="left">DCK redemption before Friend</td>
            <td align="left">Use of messaging apps with anti-forwarding mechanisms(e.g. hide link, copy/past prevention)</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">15</td>
            <td align="left">Sharing Invitation</td>
            <td align="left">Friend device compromise allow malware to forward invitation to an adversary</td>
            <td align="left">Share invitation forwarding and key redemtion by malicious party</td>
            <td align="left">Activation Options as defined in <xref target="CCC-Digital-Key-30"/>, Section 11.2 Sharing Principles, subsection 11.2.1.3. Activation Options</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">16</td>
            <td align="left">Sharing Invitation</td>
            <td align="left">User mistakenly shares with the wrong person</td>
            <td align="left">DCK redemption by adversary/not intended user</td>
            <td align="left">1) Send invitation and Device PIN via different channels, e.g. Device PIN can be shared out of band (over voice), 2) DCK revocation</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">17</td>
            <td align="left">Sharing Invitation</td>
            <td align="left">Owner device compromise allow malware to forward invitation to an adversary</td>
            <td align="left">Share invitation forwarding and key redemption by malicious party</td>
            <td align="left">Activation Options as defined in <xref target="CCC-Digital-Key-30"/>, Section 11.2 Sharing Principles, subsection 11.2.1.3. Activation Options</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">18</td>
            <td align="left">Sharing Invitation</td>
            <td align="left">Friend device OEM account take over</td>
            <td align="left">DCK provisioning on adversary's device</td>
            <td align="left">1) Binding to deviceClaim, 2) Device PIN shared out of band, 3) Activation Options as defined in <xref target="CCC-Digital-Key-30"/>, Section 11.2 Sharing Principles, subsection 11.2.1.3. Activation Options</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">19</td>
            <td align="left">User's credentials, payment card details, etc</td>
            <td align="left">Phishing attacks leveraging malicious JS on landing page</td>
            <td align="left">1) Landing page URL fragement contains encryption key - meaning malicious JS could use key to decrypt contents, 2) Malicious JS can phish for user credentials, payment card information, or other sensitive data</td>
            <td align="left">1) Properly vet JS that is embeded on landing page, 2) Define strong content security policy</td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="Tigress-00" target="https://datatracker.ietf.org/doc/draft-art-tigress/">
        <front>
          <title>Transfer Digital Credentials Securely</title>
          <author initials="D." surname="Vinokurov" fullname="Dmitry Vinokurov">
            <organization/>
          </author>
          <author initials="M." surname="Byington" fullname="Matt Byington">
            <organization/>
          </author>
          <author initials="M." surname="Lerch" fullname="Matthias Lerch">
            <organization/>
          </author>
          <author initials="A." surname="Pelletier" fullname="Alex Pelletier">
            <organization/>
          </author>
          <author initials="N." surname="Sha" fullname="Nick Sha">
            <organization/>
          </author>
          <date year="2022" month="September"/>
        </front>
      </reference>
      <reference anchor="CCC-Digital-Key-30" target="https://global-carconnectivity.org/wp-content/uploads/2021/11/CCC_Digital_Key_Whitepaper_Approved.pdf">
        <front>
          <title>Digital Key – The Future of Vehicle Access</title>
          <author>
            <organization>Car Connectivity Consortium</organization>
          </author>
          <date year="2021" month="November"/>
        </front>
      </reference>
      <reference anchor="NIST-800-63B" target="https://pages.nist.gov/800-63-3/sp800-63b.html">
        <front>
          <title>NIST Special Publication 800-63B, Digital Identity Guidelines</title>
          <author>
            <organization>NIST</organization>
          </author>
          <date year="2022" month="November"/>
        </front>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba">
            <organization/>
          </author>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC4122">
        <front>
          <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
          <author fullname="P. Leach" initials="P." surname="Leach">
            <organization/>
          </author>
          <author fullname="M. Mealling" initials="M." surname="Mealling">
            <organization/>
          </author>
          <author fullname="R. Salz" initials="R." surname="Salz">
            <organization/>
          </author>
          <date month="July" year="2005"/>
          <abstract>
            <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier).  A UUID is 128 bits long, and can guarantee uniqueness across space and time.  UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
            <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group).  Information from earlier versions of the DCE specification have been incorporated into this document.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4122"/>
        <seriesInfo name="DOI" value="10.17487/RFC4122"/>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
