<?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.14 (Ruby 2.6.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dance-architecture-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.1 -->
  <front>
    <title abbrev="DNS-Bound Identities Architecture">An Architecture for DNS-Bound Client and Sender Identities</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dance-architecture-00"/>
    <author initials="A." surname="Wilson" fullname="Ash Wilson">
      <organization>Valimail</organization>
      <address>
        <email>ash.d.wilson@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Huque" fullname="Shumon Huque">
      <organization>Salesforce</organization>
      <address>
        <email>shuque@gmail.com</email>
      </address>
    </author>
    <author initials="O." surname="Johansson" fullname="Olle Johansson">
      <organization>Edvina.net</organization>
      <address>
        <email>oej@edvina.net</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works Inc</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2022" month="July" day="28"/>
    <area>Internet</area>
    <workgroup>DANCE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This architecture document defines terminology, interaction, and authentication patterns, related to the use of DANE DNS records for TLS client and messaging peer identity, within the context of existing object security and TLS-based protocols.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    DANE Authentication for Network Clients Everywhere Working Group mailing list (dance@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dance/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ashdwilson/draft-dance-architecture"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>A digital identity, in an abstract sense, possesses at least two features: an identifier (or name), and a means of proving ownership of the identifier. One of the most resilient mechanisms for tying an identifier to a method for proving ownership of the identifier is the digital certificate, issued by a well-run Certification Authority (CA). The CA acts as a mutually trusted third party, a root of trust.</t>
      <t>Certificate-based identities are limited in scope by the issuing CA, or by the namespace of the application responsible for issuing or validating the identity.</t>
      <t>An example of this limitation is well-illustrated by organizational Public Key Infrastructure (PKI). Organizational PKI is very often coupled with email and LDAP systems, and can be used for associating a human or machine identity identifier with a public key. Within the organization, authentication systems already agree on the roots of trust for validating entity certificates issued by organizational PKI.</t>
      <t>Attempting to use organizational PKI outside the organization can be challenging. In order to authenticate a certificate, the certificate's CA must be trusted. CAs have no way of controlling identifiers in certificates issued by other CAs. Consequently, trusting multiple CAs at the same time can enable entity identifier collisions. Asking an entity to trust your CA implies trust in anything that your CA signs. This is why many organizations operate a private CA, and require devices connecting to the organization's networks or applications to possess certificates issued by the organization's CA.</t>
      <t>These limitations make the implementation and ongoing maintenance of a PKI costly, and have a chilling effect on the broader adoption of certificate-based IoT device identity. If certificate-based device identity were easier to manage, more broadly trusted, and less operationally expensive, more organizations and applications would be able to use it.</t>
      <t>The lack of trust between PKI domains has lead to a lack of simple and globally scalable solutions for secure end-to-end inter-domain communication between entities, such as SIP phones, email and chat accounts and IoT devices belonging to different organizations.</t>
      <t>DANCE seeks to make PKI-based IoT device identity universally discoverable, more broadly recognized, and less expensive to maintain by using DNS as the constraining namespace and lookup mechanism. DANCE builds on patterns established by the original DANE RFCs to enable client and sending entity certificate, public key, and trust anchor discovery. DANCE allows entities to possess a first-class identity, which, thanks to DNS, may be trusted by any application also trusting the DNS. A first-class identity is an application-independent identity.</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>
      <t><strong>This section will be interesting to define. We have great examples of identity terminology in the https://datatracker.ietf.org/doc/html/draft-sarikaya-t2trg-sbootstrapping-06 document, but this document also admits that there is semantic drift on terms like "bootstrapping", depending on who's talking.</strong></t>
      <t><strong>Identity provisioning:</strong> This refers to the set of tasks required to securely provision an asymmetric key pair for the device, sign the certificate (if the public credential is not simply a raw public key), and publish the public key or certificate in DNS. Under some circumstances, these steps are not all performed by the same party or organization. A manufacturer may instantiate the key pair, and a systems integrator may be responsible for issuing (and publishing) the device certificate in DNS. In some circumstances, a manufacturer may also publish device identity records in DNS. In this case, the system integrator needs to perform network and application access configuration, since the identity already exists in DNS.</t>
      <t><strong>Security Domain:</strong> DNS-bound client identity allows the device to establish secure communications with any server with a DNS-bound identity, as long as a network path exists, the entity is configured to trust its communicating peer by name, and agreement on protocols can be achieved. The act of joining a security domain, in the past, may have involved certificate provisioning. Now, it can be as simple as using a manufacturer-provisioned identity to join the device to the network and application.  [Is the security domain defined by how broadly the identity is recognized, or by the breadth of the application or network access policy?]</t>
      <t><strong>Client:</strong> This architecture document adopts the definition of "Client" from RFC 8446: "The endpoint initiating the TLS connection"</t>
      <t><strong>Server:</strong> This architecture document adopts the definition of "Server" from RFC 8446: "The endpoint that did not initiate the TLS connection"</t>
      <t><strong>Sending agent:</strong> Software which encodes and transmits messages. A sending agent may perform tasks related to generating cryptographic signatures and/or encrypting messages before transmission.</t>
      <t><strong>Receiving agent:</strong> Software which interprets and processes messages. A receiving agent may perform tasks related to the decryption of messages, and verification of message signatures.</t>
      <t><strong>Store-and-forward system:</strong> A message handling system in-path between the sending agent and the receiving agent.</t>
      <t><strong>Hardware supplier role:</strong> The entity which manufactures or assembles the physical device. In many situations, multiple hardware suppliers are involved in producing a given device. In some cases, the hardware supplier may provision an asymmetric key pair for the device and establish the device identity in DNS. In some cases, the hardware supplier may ship a device with software pre-installed.</t>
      <t><strong>Systems integrator:</strong> The party responsible for configuration and deployment of application components. In some cases, the systems integrator also installs the software onto the device, and may provision the device identity in DNS.</t>
      <t><strong>Consumer:</strong> The entity or organization which pays for the value provided by the application, and defines the success criteria for the output of the application.</t>
    </section>
    <section anchor="communication-patterns">
      <name>Communication Patterns</name>
      <section anchor="clientserver">
        <name>Client/Server</name>
        <t>Client/server communication patterns imply a direct connection between an entity which provides a service (the server), and an entity which initiates a connection to the server, called a client. A secure implementation of this pattern includes a TLS-protected session directly between the client and the server. A secure implementation may also include public key-based mutual authentication.</t>
        <t>Extending DANE to include client identity allows the server to authenticate clients independent of the private PKI used to issue the client certificate. This reduces the complexity of managing the CA certificate collection, and mitigates the possibility of client identifier collision.</t>
      </section>
      <section anchor="peer2peer">
        <name>Peer2peer</name>
        <t>The extension also allows an application to find an application identity and set up a secure communication channel directly. This pattern can be used in mesh networking, IoT and in many communication protocols for multimedia sessions, chat and messaging.</t>
      </section>
      <section anchor="decoupled">
        <name>Decoupled</name>
        <t>Decoupled architecture, frequently incorporating store-and-forward systems, provides no direct connection between the producer and consumer of information. The producer (or sending agent) and consumer (or receiving agent) are typically separated by at least one layer of messaging-oriented middleware. The Messaging-oriented middleware components may act as a server for the purpose of establishing TLS sessions for the producer and consumer. This allows the assertion of identity between the middleware and sending agent, and the middleware and receiving agent. The trust relationship between the sending agent and receiving agent is based on the presumed trustworthiness of the middleware, unless an identity can be attached to the message itself, independent of transport and middleware components.</t>
        <t>Within many existing store-and-forward protocols, certificates may be transmitted within the signed message itself. An example of this is S/MIME. Within IoT applications, we find that networks may be more constrained. Including certificates in message payloads can present an unnecessary overhead on constrained network links. Decoupled applications benefit from an out-of-band public key discovery mechanism, which may enable the retrieval of certificates only when needed, and sometimes using a less expensive network connection.</t>
      </section>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="mutual-tls-authentication">
        <name>Mutual TLS Authentication</name>
        <t>Using DNS to convey certificate information for authenticating TLS clients gives a not-yet-authenticated client the ability to trigger a DNS lookup on the server side of the TLS connection. An opportunity for DDOS may exist when malicious clients can trigger arbitrary DNS lookups. For instance, an authoritative DNS server which has been configured to respond slowly, may cause a high concurrency of in-flight TLS authentication processes as well as open connections to upstream resolvers. This sort of attack (of type slowloris) could have a performance or availability impact on the TLS server.</t>
        <section anchor="example-1-tls-authentication-for-https-api-interaction-dane-preauthorization">
          <name>Example 1: TLS authentication for HTTPS API interaction, DANE preauthorization</name>
          <ul spacing="normal">
            <li>The client initiates a TLS connection to the server.</li>
            <li>The TLS server compares the dane_clientid (conveyed via the DANE Client Identity extension) to a list of allowed client domains.</li>
            <li>If the dane_clientid is allowed, the TLS server then performs a DNS lookup for the client's TLSA record. If the dane_clientid is not allowed, authentication fails.</li>
            <li>If the client's TLSA record matches the presented certificate or public key, the TLS handshake completes successfully and the authenticated dane_clientid is presented to the web application in the (TBD) header field.</li>
          </ul>
          <t>This pattern has the following advantages:</t>
          <ul spacing="normal">
            <li>This pattern translates well to TLS/TCP load balancers, by using a TCP TLV instead of an HTTP header.</li>
            <li>No traffic reaches the application behind the load balancer unless DANE client authentication is successful.</li>
          </ul>
          <section anchor="example-2-tls-authentication-for-https-api-interaction-dane-matching-in-web-application">
            <name>Example 2: TLS authentication for HTTPS API interaction, DANE matching in web application</name>
            <ul spacing="normal">
              <li>The client initiates a TLS connection to the server.</li>
              <li>The TLS server accepts any certificate for which the client can prove possession of the corresponding private key.</li>
              <li>The TLS server passes the certificate to the web application in (TBD) header field.</li>
              <li>The HTTP request body contains the dane_clientid, and is passed to the web application.</li>
              <li>The web application compares the dane_clientid to a list of allowed clients or client domains.</li>
              <li>If the dane_clientid is allowed, the web application makes the DNS query for the TLSA records for dane_clientid</li>
              <li>If the presented certificate (which was authenticated by the TLS server) matches at least one TLSA record for dane_clientid, authentication succeeds.</li>
            </ul>
            <t>This pattern has the following advantages:</t>
            <ul spacing="normal">
              <li>In a web application where a TLS-terminating load balancer sits in front of a web application, the authentication logic in the load balancer remains simple.</li>
              <li>The web application ultimately decides whether to make the DNS query to support DANE authentication. This allows the web application to reject clients with identifiers which are not allowed, before making a DNS query for TLSA retrieval and comparison. No need to manage an allow-list in the load balancer.</li>
              <li>This can be implemented with no changes to the TLS handshake.</li>
            </ul>
          </section>
        </section>
        <section anchor="iot-device-to-cloud">
          <name>IoT: Device to cloud</name>
          <t>Direct device-to-cloud communication is common in simple IoT applications. Authentication in these applications is usually accomplished using shared credentials like API keys, or using client certificates. Client certificate authentication frequently requires the consumer to maintain a CA. The CA trust anchor certificate is installed into the cloud application, and used in the TLS authentication process.</t>
          <t>Using DANE for device identity can allow parties other than the implementer to operate the CA. A hardware manufacturer can provide a pre-established identity, with the certificate or public key already published in DNS. This makes PKI-based identity more approachable for small organizations which currently lack the resources to operate an organizational CA.</t>
        </section>
        <section anchor="oauth2">
          <name>Oauth2</name>
          <t>[This can be a broad topic. Should we include, or wait until a re-chartering to update?]</t>
        </section>
        <section anchor="edge-computing">
          <name>Edge Computing</name>
          <t><eref target="Edge Computing">https://datatracker.ietf.org/doc/html/draft-hong-t2trg-iot-edge-computing-01</eref> may require devices to mutually authenticate in the field. A practical example of this pattern is the edge computing in construction use case [https://datatracker.ietf.org/doc/html/draft-hong-t2trg-iot-edge-computing-01#section-6.2.1]. Using traditional certificate-based identity, the sensor and the gateway may have certificates issued by the same organizational PKI. By using DANE for client and sender identity, the sensor and the gateway may have identities represented by the equipment supplier, and still be able to mutually authenticate. Important sensor measurements forwarded by the gateway to the cloud may bear the DNS name and signature of the originating sensor, and the cloud application may authenticate the measurement independent of the gateway which forwarded the information to the application.</t>
        </section>
        <section anchor="sip-and-webrtc-inter-domain-privacy">
          <name>SIP and WebRTC inter-domain privacy</name>
          <t>End to end security in SIP is currently based on a classical S/MIME model which has not received much implementation. There are also SIP standards that build upon a trust chained anchored on the HTTP trust chain (SIP identity, STIR). WebRTC has a trust model between the web browser and the servers using TLS, but no inter-domain trust infrastructure. WebRTC lacks a definition of namespace to map to DNS, where SIP is based on an email-style addressing scheme. For WebRTC the application developer needs to define the name space and mapping to DNS.</t>
          <t>By using DNS as a shared root of trust SIP and WebRTC end points can anchor the keys used for DTLS/SRTP media channel setup. In addition, SIP devices can establish security in the SIP messaging by using DNS to find the callee's and the callers digital identity.</t>
          <t>[https://datatracker.ietf.org/doc/html/draft-johansson-sipcore-dane-sip]</t>
          <t><strong>NOTE: include reference to earlier drafts for SIP + DANE</strong></t>
        </section>
        <section anchor="dns-over-tls-client-authentication">
          <name>DNS over TLS client authentication</name>
        </section>
        <section anchor="smtp-starttls">
          <name>SMTP, STARTTLS</name>
        </section>
        <section anchor="ssh-client">
          <name>SSH client</name>
        </section>
        <section anchor="network-access">
          <name>Network Access</name>
          <section anchor="eap-tls-with-radius">
            <name>EAP-TLS with RADIUS</name>
            <section anchor="terminology">
              <name>Terminology</name>
              <t><strong>Supplicant:</strong> The entity which acts as the TLS client in the EAP-TLS authentication protocol. This term is defined in IEEE 802.1x. The suppliant acts as a client in the EAPOL (EAP over LAN) protocol, which is terminated at the authenticator (defined below).</t>
              <t><strong>Authentication server:</strong> The entity which acts as the TLS server in the EAP-TLS protocol. RADIUS (RFC 2865) is a frequently-used authentication server protocol.</t>
              <t><strong>Authenticator:</strong> The authenticator is the device which acts as a server the EAPOL (EAP over LAN) protocol, and is a client of the authentication server. The authenticator is responsible for passing EAP messages between the supplicant and the authentication server, and for ensuring that only authenticated supplicants gain access to the network.</t>
              <t><eref target="EAP-TLS">https://datatracker.ietf.org/doc/html/rfc5216</eref> is a mature and widely-used protocol for network authentication, for IoT and IT equipment. IEEE 802.1x defines the encapsulation of EAP over LAN access technologies, like IEEE 802.11 wireless and IEEE 802.3 ethernet. RADIUS is a protocol and server technology frequently used for supporting the server side of EAP-TLS authentication. Guidance for implementing RADIUS strongly encourages the use of a single common CA for all supplicants, to mitigate the possibility of identifier collisions across PKIs. The use of DANE for client identity can allow the safe use of any number of CAs. DNS acts as a constraining namespace, which prevents two unrelated CAs from issuing valid certificates bearing the same identifier. Certificates represented in DNS are valid, and all others are un-trusted.</t>
            </section>
          </section>
          <section anchor="radsec">
            <name>RADSEC</name>
            <t>The RADIUS protocol has a few recognized security problems. <eref target="RADSEC">https://datatracker.ietf.org/doc/html/rfc6614</eref> addresses the challenges related to the weakness of MD5-based authentication and confidentiality over untrusted networks by establishing a TLS session between the RADIUS protocol client and the RADIUS protocol server.  RADIUS datagrams are then transmitted between the authenticator and authentication server within the TLS session. Updating the RADSEC standard to include the use of DANE for client and server identity would allow a RADIUS server and client to mutually authenticate, independent of the client's and server's issuing CAs. The benefit for this use case is that a hosted RADIUS service may mutually authenticate any client device, like a WiFi access point or ethernet switch, via RADSEC, without requiring the distribution of CA certificates.</t>
          </section>
        </section>
        <section anchor="lorawan">
          <name>LoRaWAN</name>
          <t><strong>We should ask S. if he wants to contribute to this section</strong></t>
        </section>
      </section>
      <section anchor="object-security">
        <name>Object Security</name>
        <section anchor="structured-data-messages-josecose">
          <name>Structured data messages: JOSE/COSE</name>
          <t>JOSE and COSE provide formats for exchanging authenticated and encrypted structured data. JOSE defines the x5u field in <eref target="RFC7515">https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.5</eref>, and COSE defines a field of the same name in <eref target="draft-ietf-cose-x509">https://datatracker.ietf.org/doc/html/draft-ietf-cose-x509-08#section-2</eref> which can be used for out-of-band x.509 certificate discovery. By adopting DANE for out-of-band certificate discovery, CBOR and JSON data may be authenticated, even if the originating sending agent not have IP connectivity, provided that the sending agent's certificate is discoverable in DNS and the receiving agent has access to DNS.</t>
        </section>
      </section>
      <section anchor="operational-anomaly-reporting">
        <name>Operational anomaly reporting</name>
        <section anchor="mud-reporting-for-improper-provisioning">
          <name>MUD reporting for improper provisioning</name>
        </section>
        <section anchor="xarf-for-abuse-reporting">
          <name>XARF for abuse reporting</name>
        </section>
      </section>
      <section anchor="adjacent-ecosystem-components">
        <name>Adjacent Ecosystem Components</name>
        <section anchor="certification-authority">
          <name>Certification Authority</name>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="confidentiality">
        <name>Confidentiality</name>
        <t>DNS clients should use DNS over TLS with trusted DNS resolvers to protect the identity of authenticating peers.</t>
      </section>
      <section anchor="integrity">
        <name>Integrity</name>
        <t>The integrity of public keys represented in DNS is most important. An altered public key can enable device impersonation, and the denial of existence for a valid identity can cause devices to become un-trusted by the network or the application. DNS records should be validated by the DNS stub resolver, using the DNSSEC protocol.</t>
        <t>Compartmentalizing failure domains within an application is a well-known architectural best practice. Within the context of protecting DNS-based identities, this compartmentalization may manifest by hosting an identity zone on a DNS server which only supports the resource record types essential for representing device identities. This can prevent a compromised identity zone DNS server from presenting records essential for impersonating web sites under the organization's domain name.</t>
        <t>The naming pattern suggested in <eref target="https://datatracker.ietf.org/doc/html/draft-huque-dane-client-cert">https://datatracker.ietf.org/doc/html/draft-huque-dane-client-cert</eref> includes an underscore label (_device) which also prevents the issuance of Web PKI-validating certificates in the event a DNS server hosting a client identity zone, which is capable of presenting A and AAAA records, is compromised.</t>
      </section>
      <section anchor="availability">
        <name>Availability</name>
      </section>
      <section anchor="privacy">
        <name>Privacy</name>
        <t>If the name of the identity proven by a certificate is directly or indirectly relatable to a person, privacy needs to be considered when forming the name of the DNS resource record for the certificate.
When creating the name of the RR, effects of DNS zone walking and possible harvesting of identities in the DNS zone will have to be considered. The name of the RR may note have to have a direct relation to the name of the subject
of the certificate.</t>
        <t>Further work has do be done in this area.</t>
        <t>AW: Consider if an approach like the email local-part hashing used in SMIMEA <eref target="https://datatracker.ietf.org/doc/html/rfc8162">https://datatracker.ietf.org/doc/html/rfc8162</eref> might work for this. If the identifier/local-part is hashed and the certificate association is a SHA256 or SHA512 hash, the effort required to walk a zone would not produce much useful information.</t>
        <section anchor="dns-scalability">
          <name>DNS Scalability</name>
          <t>In the use case for IoT an implementation must be scalable to a large amount of devices. In many cases, identities may also be very short lived as revocation is performed by simply removing a DNS record. A zone will have to manage a large amount of changes as devices are constantly added and de-activated.</t>
          <t>In these cases it is important to consider the architecture of the DNS zone and when possible use a tree-like structure with many subdomain parts, much like reverse DNS records or how telephone numbers are represented in the ENUM standard (RFC 6116).</t>
          <t>If an authoritative resolver were configured to respond quite slowly (think slow loris), is it possible to cause a DoS on the TLS server via complete exhaustion of TCP connections?</t>
          <t>The availability of a client identity zone is essential to permitting clients to authenticate. If the DNS infrastructure hosting client identities becomes unavailable, then the clients represented by that zone cannot be authenticated.</t>
          <t><strong>OEJ: We may want to have a discussion with the IETF DNS directorate. The scalability section above is from a discussion with one of the members...</strong></t>
        </section>
        <section anchor="change-of-ownership">
          <name>Change of ownership</name>
          <t>What happens if an organization owning the client identity goes out of business? What's the best way to transfer an identifier to another zone? &lt;note: there may be an opportunity here to take advantage of EST, or another protocol supporting certificate renewal, to allow client devices to rotate to another zone&gt;</t>
        </section>
      </section>
    </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="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>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
XgAA

-->

</rfc>
