<?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.22 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tigress-webdav-impl-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title>Tigress-WebDAV-Sample Implementation</title>
    <seriesInfo name="Internet-Draft" value="draft-tigress-webdav-impl-00"/>
    <author initials="C." surname="Astiz" fullname="Casey Astiz">
      <organization>Apple Inc</organization>
      <address>
        <email>castiz@apple.com</email>
      </address>
    </author>
    <date year="2023" month="February" day="18"/>
    <area>Applications and Real-Time</area>
    <workgroup>Transfer dIGital cREdentialS Securely</workgroup>
    <keyword>tigress</keyword>
    <keyword>sample-implementation</keyword>
    <keyword>WebDAV</keyword>
    <abstract>
      <t>This document describes a sample implementation of transferring digital credentials securily (Tigress) using WebDAV protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://datatracker.ietf.org/doc/draft-tigress-webdav-impl/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tigress-webdav-impl/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dimmyvi/tigress-requirements"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Prevously Tigress reviewed an implementation of digital credentials transfer using Tigress protocol (https://datatracker.ietf.org/doc/draft-art-tigress/). In previous IETF meetings community asked to review other possible solutions using alternative standards to illustrate how Tigress problem can be solved differently.
In this document we are trying to describe how an alternative potential implementation of a solution to Tigress <xref target="Tigress-req-02"/> problem of transferring digital
credentials securily can be done using WebDAV Protocol <xref target="RFC4918"/>.</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>
    </section>
    <section anchor="webdav-protocol-sample-implementation">
      <name>WebDAV Protocol Sample Implementation</name>
      <t>WebDAV (Web Distributed Authoring and Versioning)  <xref target="RFC4918"/> is a protocol that allows users to edit and manage files on remote web servers. It extends the HTTP protocol, adding functionality for creating, editing, and moving files and directories on a remote server. The protocol is defined in <xref target="RFC4918"/>, "HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)". Since the core of transferring secure credentials is to allow a data blob to pass between two users, we can leverage the WebDAV protocol to create the secure communication channel between sender and receiver.</t>
      <t>## Secure Credential Transfer with WebDAV:</t>
      <t>For Secure Credential Transfer <xref target="Tigress-req-02"/> with WebDAV, the implementing party will host a remote WebDAV server that mobile devices can interact with. This will act as an intermediary between the sender and receiver device to create a safe communication channel.</t>
      <t>There are two different workflows for transferring of digital credentials. Refer to Credential Transfer Workflows in Secure Credential Transfer Draft: https://github.com/dimmyvi/secure-credential-transfer/blob/main/draft-secure-credential-transfer.md#credential-transfer-workflows. For the stateless flow, the sender device will upload a file with the provisioning information required for the receiver to redeem the pass using HTTP PUT. Because this is the final state this resource will be in, the sender will also perform a HTTP LOCK on the resource.</t>
      <t>The sender will then send the link to the remote server with the resource to the receiving device over any communication channel available to them. The URI for the resource will follow this format: “https://{RelayServerHost}/v{ApiVersion}/{ShareIdentifier}/share.json”. The WebDAV server implementor shall choose the ShareIdentifier for each resource to ensure there are no duplicates.</t>
      <t>Once the receiver has the link, they are able to access the resource with HTTP GET. Optionally, the implementor can incorporate OpenGraph metadata into the response of the GET request so users have a preview of what they are accepting. At this point, the receiver device can optionally call HTTP DELETE to remove the resource from the WebDAV server.</t>
      <t>For the stateful use case, there is a requirement for multiple round trips between devices. In this case, both the sender and receiver will be reading resources with HTTP GET and putting a new or modified resource onto the WebDAV server with HTTP PUT. Once the receiver has redeemed, they can optionally call HTTP DELETE.</t>
      <t>In either case, the WebDAV remote server should clean up any remaining resources after a short period, such as 24 hours for example.</t>
      <t>Continue to use the same structure as defined here: https://github.com/dimmyvi/secure-credential-transfer/blob/main/draft-secure-credential-transfer.md#provisioning-information-structure. Both users must implement WebDAV in order to share and receive keys. As noted in the other solutions, WebDAV will only be used to share the data that is necessary and sufficient to redeem the key. Once the data is obtained by the receiver, it is up to the device OEM or other implementor to redeem that key with the credential authority. If push notifications are required for the use case, the implementor can extend the WebDAV intermediary server to incorporate push notifications to the sender and receiver devices.</t>
    </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>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC4918">
          <front>
            <title>HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)</title>
            <author fullname="L. Dusseault" initials="L." role="editor" surname="Dusseault">
              <organization/>
            </author>
            <date month="June" year="2007"/>
            <abstract>
              <t>Web Distributed Authoring and Versioning (WebDAV) consists of a set of methods, headers, and content-types ancillary to HTTP/1.1 for the management of resource properties, creation and management of resource collections, URL namespace manipulation, and resource locking (collision avoidance).</t>
              <t>RFC 2518 was published in February 1999, and this specification obsoletes RFC 2518 with minor revisions mostly due to interoperability experience.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4918"/>
          <seriesInfo name="DOI" value="10.17487/RFC4918"/>
        </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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="Tigress-req-02" target="https://github.com/dimmyvi/tigress-requirements/">
          <front>
            <title>Tigress requirements</title>
            <author initials="D." surname="Vinokurov" fullname="Dmitry Vinokurov">
              <organization/>
            </author>
            <author initials="A." surname="Pelletier" fullname="Alex Pelletier">
              <organization/>
            </author>
            <author initials="C." surname="Astiz" fullname="Casey Astiz">
              <organization/>
            </author>
            <author initials="B." surname="Lassey" fullname="Brad Lassey">
              <organization/>
            </author>
            <date year="2023" month="February"/>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
8geYAxcAAA==

-->

</rfc>
