<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-sliwa-stir-cert-cps-ext-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="CPS URI Certificate Extension">Call Placement Service (CPS) URI Certificate Extension for STI Certificates</title>

    <author fullname="Rob Sliwa">
      <organization>Somos Inc.</organization>
      <address>
        <email>robjsliwa@gmail.com</email>
      </address>
    </author>
    <author fullname="Chris Wendt">
      <organization>Somos Inc.</organization>
      <address>
        <email>chris@appliedbits.com</email>
      </address>
    </author>

    <date year="2025" month="November" day="03"/>

    <area>Applications and Real-Time</area>
    <workgroup>Secure Telephone Identity Revisited</workgroup>
    <keyword>stir</keyword> <keyword>certificates</keyword> <keyword>delegate certificates</keyword>

    <abstract>


<?line 91?>
<t>This document specifies a non-critical X.509 v3 certificate extension that conveys the HTTPS URI of a Call Placement Service (CPS) associated with the telephone numbers authorized in a STIR Delegate Certificate. The extension enables originators and verifiers of STIR PASSporTs to discover, with a single certificate lookup, where Out-of-Band (OOB) PASSporTs can be retrieved. The mechanism removes bilateral CPS provisioning, allows ecosystem-scale discovery backed by STI Certificate Transparency (STI-CT), and is fully backward compatible with existing STIR certificates and OOB APIs.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/appliedbits/draft-sliwa-stir-cert-cps-ext"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-sliwa-stir-cert-cps-ext/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Telephone Identity Revisited Working Group mailing list (<eref target="mailto:stir@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/stir/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/stir/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/appliedbits/draft-sliwa-stir-cert-cps-ext"/>.</t>
    </note>


  </front>

  <middle>


<?line 93?>

<section anchor="introduction"><name>Introduction</name>

<t>The STIR (Secure Telephone Identity Revisited) framework provides a means of cryptographically asserting the identity of the calling party in a telephone call by using PASSporTs carried in SIP requests, as defined in <xref target="RFC8224"/> and <xref target="RFC8225"/>. To support deployment in environments where SIP Identity headers may be removed or are not end-to-end transmittable, such as in non-IP or hybrid telephony networks, the STIR Out-of-Band (OOB) mechanism was introduced in <xref target="RFC8816"/>. In OOB scenarios, PASSporTs are published to a Call Placement Service (CPS) where they may be retrieved independently of the SIP signaling path.</t>

<t>To enable discovery of the appropriate CPS for a given telephone number or SPC, this document defines a certificate extension that binds a CPS URI to the identity resources listed in the TNAuthList of the STI certificate. This CPS URI extension provides a verifiable association between a number resource and its corresponding CPS, enabling relying parties to discover CPS endpoints by observing STI Certificate Transparency (STI-CT) logs defined in <xref target="I-D.wendt-stir-certificate-transparency"/>.</t>

<t>This specification defines the syntax and semantics of the CPS URI certificate extension, describes how it is encoded in <xref target="X.509"/> certificates also defined in <xref target="RFC5280"/>, and outlines validation procedures for Certification Authorities and relying parties. This extension is intended to be used in conjunction with existing STIR certificates defined in <xref target="RFC8226"/> and delegate certificates defined in <xref target="RFC9060"/> infrastructure, and supports enhanced transparency and automation in OOB PASSporT routing.</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>

<?line -18?>

</section>
<section anchor="the-id-pe-ooburi-certificate-extension"><name>The id-pe-oobURI Certificate Extension</name>

<t>This <xref target="X.509"/> extension is non-critical, applicable only to end-entity certificates, and defined with ASN.1 <xref target="X.680"/> <xref target="X.681"/> <xref target="X.682"/> <xref target="X.683"/> later in this section.</t>

<t>This extension is intended for use in end-entity STI certificates <xref target="RFC8226"/> and delegate certificates <xref target="RFC9060"/> that include TNAuthList values authorizing the use of specific telephone numbers or Service Provider Codes (SPCs). The OOB URI extension provides a means for the certificate holder to declare the HTTPS endpoint of a Call Placement Service (CPS) defined in <xref target="RFC8816"/> that can be used to publish or retrieve PASSporTs for the covered resources.</t>

<t>The presence of this extension allows relying parties to discover the CPS associated with a given telephone number without relying on static configuration or bilateral agreements. This facilitates scalable and verifiable Out-of-Band PASSporT delivery as defined in <xref target="RFC8816"/>, using information already published in publicly logged STI certificates.</t>

<t>The extension is encoded as a sequence of IA5Strings containing absolute HTTPS URIs and is identified by an object identifier (OID) assigned in the PKIX id-pe arc. Additional details about the encoding, semantics, and validation rules for the OOB URI list are defined in the sections below.</t>

<section anchor="asn1-module-syntax"><name>ASN.1 Module Syntax</name>

<t>The extension ASN.1 module is defined as follows:</t>

<figure><artwork><![CDATA[
OOB-CERT-EXTENSION DEFINITIONS EXPLICIT TAGS ::=
BEGIN

id-pe OBJECT IDENTIFIER ::=
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) 1 }

id-pe-oobURI OBJECT IDENTIFIER ::= { id-pe TBD }

OOBURIs ::= SEQUENCE SIZE (1..MAX) OF IA5String

END
]]></artwork></figure>

<t>Certificates containing a OOBURI that is not an absolute HTTPS URI as defined in <xref target="RFC3986"/> <bcp14>MUST</bcp14> be considered invalid by relying parties.</t>

<t>Note: The numeric assignment TBD is temporary. IANA will allocate a permanent arc under "PKIX SubjectPublicKeyInfo Certificate Extensions" during RFC publication.</t>

</section>
<section anchor="extension-semantics"><name>Extension Semantics</name>

<t>Each IA5String value in the sequence <bcp14>MUST</bcp14> be an absolute URI <xref target="RFC3986"/> that:</t>

<t><list style="symbols">
  <t>Uses the "https" scheme.</t>
  <t>Identifies the root of the CPS HTTPS API interface (e.g., "https://cps.example.net/oob/v1").</t>
</list></t>

<t>The sequence <bcp14>MUST</bcp14> contain at least one URI. Producers <bcp14>MAY</bcp14> include multiple URIs to provide resiliency or geographic locality information.</t>

</section>
<section anchor="criticality"><name>Criticality</name>

<t>The extension <bcp14>MUST</bcp14> be marked non-critical so that implementations that do not understand it can still validate the certificate.</t>

</section>
<section anchor="processing-rules"><name>Processing Rules</name>

<t><list style="symbols">
  <t>A STIR Authentication Service (AS), defined in <xref target="RFC8224"/>, that holds a Delegate Certificate containing id-pe-cpsURI <bcp14>SHOULD</bcp14> publish OOB PASSporTs to the indicated CPS.</t>
  <t>A STIR Verification Service (VS), defined in <xref target="RFC8224"/> that receives a PASSporT signed by such a certificate <bcp14>MAY</bcp14> derive the CPS endpoint by reading the extension, or <bcp14>MAY</bcp14> query an external discovery directory that is populated by monitoring the STI-CT logs.</t>
  <t>If the extension and an external directory disagree, verifiers <bcp14>SHOULD</bcp14> treat the call as unverifiable unless local policy states otherwise.</t>
</list></t>

<t>Relying parties <bcp14>SHOULD</bcp14> ensure that the certificate containing the CPS URI is present in a trusted Certificate Transparency log before using the URI for OOB operations.</t>

</section>
</section>
<section anchor="use-with-out-of-band"><name>Use with Out-of-Band</name>

<t>Figure 1 shows the message flow when the extension is present:</t>

<figure><artwork><![CDATA[
   +------------+ (1) ACME w/ Authority Tokens +-----------+
   | Enterprise |----------------------------->|  CA / CT  |
   +------------+ Delegate Cert w/ CPS URI ext +-----------+
          |                                       |    |
          |      (2) SIP INVITE + PASSporT        |    |
          v                                       |    |
   +-----------+ (3) GET CPS/PASSporT via HTTPS   |    |
   |  VS/CPS   |<---------------------------------+    |
   +-----------+                                       |
          ^                                            |
          |                                   +------------+ 
          +-----------------------------------| CT Monitor |
                                              +------------+ 
Figure 1
]]></artwork></figure>

<t><list style="numbers" type="1">
  <t>The enterprise obtains a Delegate Certificate containing the CPS URI. The CA submits the certificate to STI-CT.</t>
  <t>On each call, the AS signs a PASSporT with Delegate Certificate containing SCT.</t>
  <t>The terminating VS reads the CPS URI from the certificate and fetches the PASSporT.</t>
</list></t>

</section>
<section anchor="operational-considerations"><name>Operational Considerations</name>

<t><list style="symbols">
  <t>Logging: CAs issuing certificates with id-pe-cpsURI <bcp14>MUST</bcp14> submit the certificate to STI-CT logs.</t>
  <t>Rotation: Changing a CPS hostname or path requires certificate re-issuance. Operators <bcp14>SHOULD</bcp14> minimize TTLs on old URIs during migration.</t>
  <t>Monitoring: Relying parties and CPS discovery services <bcp14>SHOULD</bcp14> monitor trusted STI-CT logs for new or updated CPS URI declarations to ensure timely access and detect misconfiguration.</t>
</list></t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The CPS URI certificate extension introduces a mechanism for associating telephone number resources with CPS endpoints through STI certificates. The following considerations apply:</t>

<t><list style="symbols">
  <t>Misuse or Misissuance: A malicious or misconfigured entity may include a CPS URI in a certificate without authorization for the corresponding TNAuthList resources. Certification Authorities (CAs) <bcp14>MUST</bcp14> validate that the entity requesting the certificate has authority over the listed numbers or SPCs before issuing the certificate.</t>
  <t>URI Integrity: The CPS URI is not digitally signed independently of the certificate. Relying parties <bcp14>MUST</bcp14> validate the entire certificate chain and ensure the certificate is properly logged in a Certificate Transparency log before using the URI.</t>
  <t>Certificate Expiry and Revocation: CPS URI information may become outdated due to certificate expiration or revocation. Relying parties <bcp14>SHOULD</bcp14> evaluate certificate validity and revocation status when interpreting CPS mappings.</t>
  <t>Log Availability and Monitoring: Relying parties that depend on CT log monitoring for CPS discovery <bcp14>SHOULD</bcp14> monitor multiple trusted logs to ensure timely detection of CPS declarations and prevent omission attacks.</t>
  <t>Information Exposure: The publication of CPS URIs in publicly logged certificates may reveal deployment metadata. This exposure is consistent with existing STIR delegate certificate practices and does not introduce additional privacy risk beyond what is already present in TNAuthList usage.</t>
</list></t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>IANA is requested to assign a new object identifier (OID) for the CPS URI certificate extension in the "PKIX Extension Registry" as follows:</t>

<t><list style="symbols">
  <t>Name: id-pe-oobURI</t>
  <t>OID: to be assigned</t>
  <t>Description: Certificate extension for specifying a Call Placement Service (CPS) URI for STIR Out-of-Band PASSporTs</t>
  <t>Reference: This document</t>
</list></t>

</section>


  </middle>

  <back>



    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>
<reference anchor="RFC8224">
  <front>
    <title>Authenticated Identity Management in the Session Initiation Protocol (SIP)</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="C. Jennings" initials="C." surname="Jennings"/>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>The baseline security mechanisms in the Session Initiation Protocol (SIP) are inadequate for cryptographically assuring the identity of the end users that originate SIP requests, especially in an interdomain context. This document defines a mechanism for securely identifying originators of SIP requests. It does so by defining a SIP header field for conveying a signature used for validating the identity and for conveying a reference to the credentials of the signer.</t>
      <t>This document obsoletes RFC 4474.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8224"/>
  <seriesInfo name="DOI" value="10.17487/RFC8224"/>
</reference>
<reference anchor="RFC8225">
  <front>
    <title>PASSporT: Personal Assertion Token</title>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>This document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications. The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination. The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel. PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8225"/>
  <seriesInfo name="DOI" value="10.17487/RFC8225"/>
</reference>
<reference anchor="RFC8226">
  <front>
    <title>Secure Telephone Identity Credentials: Certificates</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>In order to prevent the impersonation of telephone numbers on the Internet, some kind of credential system needs to exist that cryptographically asserts authority over telephone numbers. This document describes the use of certificates in establishing authority over telephone numbers, as a component of a broader architecture for managing telephone numbers as identities in protocols like SIP.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8226"/>
  <seriesInfo name="DOI" value="10.17487/RFC8226"/>
</reference>
<reference anchor="RFC8816">
  <front>
    <title>Secure Telephone Identity Revisited (STIR) Out-of-Band Architecture and Use Cases</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="February" year="2021"/>
    <abstract>
      <t>The Personal Assertion Token (PASSporT) format defines a token that can be carried by signaling protocols, including SIP, to cryptographically attest the identity of callers. However, not all telephone calls use Internet signaling protocols, and some calls use them for only part of their signaling path, while some cannot reliably deliver SIP header fields end-to-end. This document describes use cases that require the delivery of PASSporT objects outside of the signaling path, and defines architectures and semantics to provide this functionality.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8816"/>
  <seriesInfo name="DOI" value="10.17487/RFC8816"/>
</reference>
<reference anchor="RFC9060">
  <front>
    <title>Secure Telephone Identity Revisited (STIR) Certificate Delegation</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="September" year="2021"/>
    <abstract>
      <t>The Secure Telephone Identity Revisited (STIR) certificate profile provides a way to attest authority over telephone numbers and related identifiers for the purpose of preventing telephone number spoofing. This specification details how that authority can be delegated from a parent certificate to a subordinate certificate. This supports a number of use cases, including those where service providers grant credentials to enterprises or other customers capable of signing calls with STIR.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9060"/>
  <seriesInfo name="DOI" value="10.17487/RFC9060"/>
</reference>

<reference anchor="I-D.wendt-stir-certificate-transparency">
   <front>
      <title>STI Certificate Transparency</title>
      <author fullname="Chris Wendt" initials="C." surname="Wendt">
         <organization>Somos, Inc.</organization>
      </author>
      <author fullname="Robert Śliwa" initials="R." surname="Śliwa">
         <organization>Somos, Inc.</organization>
      </author>
      <author fullname="Alec Fenichel" initials="A." surname="Fenichel">
         <organization>TransNexus</organization>
      </author>
      <author fullname="Vinit Anil Gaikwad" initials="V. A." surname="Gaikwad">
         <organization>Twilio</organization>
      </author>
      <date day="11" month="June" year="2025"/>
      <abstract>
	 <t>   This document describes a framework for the use of the Certificate
   Transparency (CT) protocol for publicly logging the existence of
   Secure Telephone Identity (STI) certificates as they are issued or
   observed.  This allows any interested party that is part of the STI
   eco-system to audit STI certification authority (CA) activity and
   audit both the issuance of suspect certificates and the certificate
   logs themselves.  The intent is for the establishment of a level of
   trust in the STI eco-system that depends on the verification of
   telephone numbers requiring and refusing to honor STI certificates
   that do not appear in a established log.  This effectively
   establishes the precedent that STI CAs must add all issued
   certificates to the logs and thus establishes unique association of
   STI certificates to an authorized provider or assignee of a telephone
   number resource.  The primary role of CT in the STI ecosystem is for
   verifiable trust in the avoidance of issuance of unauthorized
   duplicate telephone number level delegate certificates or provider
   level certificates.  This provides a robust auditable mechanism for
   the detection of unauthorized creation of certificate credentials for
   illegitimate spoofing of telephone numbers or service provider codes
   (SPC).

   The framework borrows the log structure and API model from RFC6962 to
   enable public auditing and verifiability of certificate issuance.
   While the foundational mechanisms for log operation, Merkle Tree
   construction, and Signed Certificate Timestamps (SCTs) are aligned
   with RFC6962, this document contextualizes their application in the
   STIR eco-system, focusing on verifiable control over telephone number
   or service provider code resources.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-wendt-stir-certificate-transparency-06"/>
   
</reference>

<reference anchor="X.509" target="https://www.itu.int/rec/T-REC-X.509">
  <front>
    <title>Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2016" month="October"/>
  </front>
  <seriesInfo name="ITU-T" value="Recommendation X.509, ISO/IEC 9594-8"/>
</reference>
<reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680">
  <front>
    <title>Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
  <seriesInfo name="ITU-T" value="Recommendation X.680, ISO/IEC 8824-1"/>
</reference>
<reference anchor="X.681" target="https://www.itu.int/rec/T-REC-X.681">
  <front>
    <title>Information Technology - Abstract Syntax Notation One (ASN.1): Information object specification</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
  <seriesInfo name="ITU-T" value="Recommendation X.681, ISO/IEC 8824-2"/>
</reference>
<reference anchor="X.682" target="https://www.itu.int/rec/T-REC-X.682">
  <front>
    <title>Information Technology - Abstract Syntax Notation One (ASN.1): Constraint specification</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
  <seriesInfo name="ITU-T" value="Recommendation X.682, ISO/IEC 8824-3"/>
</reference>
<reference anchor="X.683" target="https://www.itu.int/rec/T-REC-X.683">
  <front>
    <title>Information Technology - Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 specifications</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
  <seriesInfo name="ITU-T" value="Recommendation X.683, ISO/IEC 8824-4"/>
</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"/>
    <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"/>
    <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>




<?line 229?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>TODO acknowledge.</t>

</section>


  </back>

<!-- ##markdown-source:
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
fEHCvb68RtYuR8JK/wc0xcyQyjAAAA==

-->

</rfc>

