<?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-rfc2629 version 1.5.16 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wilson-dance-architecture-01" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.11.1 -->
  <front>
    <title abbrev="DNS-Bound Identities Architecture">An Architecture for DNS-Bound Client and Sender Identities</title>
    <seriesInfo name="Internet-Draft" value="draft-wilson-dance-architecture-01"/>
    <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>
    <date year="2021" month="November" day="09"/>
    <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" numbered="true" toc="default">
      <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" numbered="true" toc="default">
      <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" format="default"/> <xref target="RFC8174" format="default"/> 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" numbered="true" toc="default">
      <name>Communication Patterns</name>
      <section anchor="clientserver" numbered="true" toc="default">
        <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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
      <name>Use Cases</name>
      <section anchor="mutual-tls-authentication" numbered="true" toc="default">
        <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
            <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <name>DNS over TLS client authentication</name>
        </section>
        <section anchor="smtp-starttls" numbered="true" toc="default">
          <name>SMTP, STARTTLS</name>
        </section>
        <section anchor="ssh-client" numbered="true" toc="default">
          <name>SSH client</name>
        </section>
        <section anchor="network-access" numbered="true" toc="default">
          <name>Network Access</name>
          <section anchor="eap-tls-with-radius" numbered="true" toc="default">
            <name>EAP-TLS with RADIUS</name>
            <section anchor="terminology" numbered="true" toc="default">
              <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" numbered="true" toc="default">
            <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
        <name>Object Security</name>
        <section anchor="structured-data-messages-josecose" numbered="true" toc="default">
          <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" numbered="true" toc="default">
        <name>Operational anomaly reporting</name>
        <section anchor="mud-reporting-for-improper-provisioning" numbered="true" toc="default">
          <name>MUD reporting for improper provisioning</name>
        </section>
        <section anchor="xarf-for-abuse-reporting" numbered="true" toc="default">
          <name>XARF for abuse reporting</name>
        </section>
      </section>
      <section anchor="adjacent-ecosystem-components" numbered="true" toc="default">
        <name>Adjacent Ecosystem Components</name>
        <section anchor="certification-authority" numbered="true" toc="default">
          <name>Certification Authority</name>
        </section>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <section anchor="confidentiality" numbered="true" toc="default">
        <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" numbered="true" toc="default">
        <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" numbered="true" toc="default">
        <name>Availability</name>
        <section anchor="dns-scalability" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
      <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" toc="default">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAOmYimEAA61c/XIbx5H/H0+xR/8RUgdAos5WbJbPCUzSZ9qSqBOpOCmX
yjXADoA1F7vIzi4pOJWqvMZV3VXds9yj5Emuf909H7uAZDuVVBIR+zHT093T
/euP2clkMvoou6pa21S2nVw0ZtlmL0xzl9cPVXZrN9vStHb0ET302lZmY7N2
XbhsWZQ2Wzb1JsvxxqSt83qyq7sGj0y2Td3Wi7qcbvKsrbOVbTPXmqa1+ZTG
kTl4rGXdbEyb0YAyzOd+iC8mnz/Uzd2qqbst/c2XaDSm44aGa9c2O2qLtrRH
RIst82xuy/ohM3LLMaHFxk6z7BaPmvm8sff+WbeuO36FRuu2OS0QdNb0cHhw
YSq6n+W2tLhbLDOQlvGUoJeGaNop0/OnuuPHbV7I7Iua2Fm1LquX/DuvF92G
LmTGDahj1hdtYcrM2bbbZnVV7rLK2lyeBJuZUabKZW5+hYnJFmtTraySVDfC
UUirGct9oqnpKuHVa/vQFK3NXl/OLl5cHmVm0RZ1JQu4qLOqJilUi7LL6dkJ
BnHtEV0JVPDomBzsJF6VLuscPatyE5n590jmywIUY/FR2o+KyhW5fRSvj2lA
1y3WnjNHxCo82hPqmFffWNLEBfG+zR6Klt7wI3ebuW08ZQcH8MIsLT1vyrqy
ZzJMWeKy1wBSRvBNeHILLW9V/bFUl901ZoNdMWmWi6fPnn52lq3bduvOHj9e
EUHdfLqoN48XZl4/Hj6ZKIlfBlZLKlE0yl5RsGzb2KVtsLhiSX9AaWSPYIHn
KnAvEvuO1MyRGMFweob4yPdkUx1P321KXtQfXzwfZ7ZdTKfTExE4a7XsZCKa
dfNhbSsmwTTQ2ArCHrFunWVHsyqbNYs1KdCi7RqeIrt4eTP5su5INOdlwdpN
f97YKif6r3KsrS2sOxrJjqJB4gvxdm/Yo5FK70zNAUnI1dUkN9XCTkzy5OTJ
6WhBglnVzY5kWS3r0ajYNmdZ23SuffrkyWdPno5oIeYsmLZRsCdn2cXs5fnl
6M7u6Fp+NrB+oxHZqir/QRVlZ93Ibch4/fDnrib1PqO9MtoWZ9n3ZOLGmSMz
QDJz9Ndugz/ejkama8k6nI2yySij/8iKZm6dfcfr4Yt1szJV8ZPBLjzL/mDK
YmOKkm9Z/HVGW2I9zafCgt+vcA0K1h/0Zt1tSPxfd3/u7IFhb0xpHclqYdOB
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
yVbbo7/SoNcX1/S+f5I89v8D8d01QcdaAAA=

-->

</rfc>
