| rfc9448xml2.original.xml | rfc9448.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" do | |||
| <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.16 (Ruby 2. | cName="draft-ietf-acme-authority-token-tnauthlist-13" number="9448" submissionTy | |||
| 6.0) --> | pe="IETF" category="std" consensus="true" tocInclude="true" sortRefs="true" symR | |||
| efs="true" updates="" obsoletes="" xml:lang="en" prepTime="2023-09-12T21:07:25" | ||||
| <!DOCTYPE rfc [ | indexInclude="true" scripts="Common,Latin" tocDepth="3"> | |||
| <!ENTITY nbsp " "> | <link href="https://datatracker.ietf.org/doc/draft-ietf-acme-authority-token-t | |||
| <!ENTITY zwsp "​"> | nauthlist-13" rel="prev"/> | |||
| <!ENTITY nbhy "‑"> | <link href="https://dx.doi.org/10.17487/rfc9448" rel="alternate"/> | |||
| <!ENTITY wj "⁠"> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
| ]> | ||||
| <rfc ipr="trust200902" docName="draft-ietf-acme-authority-token-tnauthlist-13" c | ||||
| ategory="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true"> | ||||
| <front> | <front> | |||
| <title abbrev="ACME TNAuthList Auth Token">TNAuthList profile of ACME Author | <title abbrev="ACME TNAuthList Authority Token">TNAuthList Profile of Automa | |||
| ity Token</title> | ted Certificate Management Environment (ACME) Authority Token</title> | |||
| <seriesInfo name="RFC" value="9448" stream="IETF"/> | ||||
| <author initials="C." surname="Wendt" fullname="Chris Wendt"> | <author initials="C." surname="Wendt" fullname="Chris Wendt"> | |||
| <organization>Somos Inc.</organization> | <organization showOnFrontPage="true">Somos Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>US</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>chris-ietf@chriswendt.net</email> | <email>chris-ietf@chriswendt.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="D." surname="Hancock" fullname="David Hancock"> | <author initials="D." surname="Hancock" fullname="David Hancock"> | |||
| <organization>Comcast</organization> | <organization showOnFrontPage="true">Somos Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>US</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>davidhancock.ietf@gmail.com</email> | <email>davidhancock.ietf@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="M." surname="Barnes" fullname="Mary Barnes"> | <author initials="M." surname="Barnes" fullname="Mary Barnes"> | |||
| <organization>Neustar Inc.</organization> | <organization showOnFrontPage="true">Neustar Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>US</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>mary.ietf.barnes@gmail.com</email> | <email>mary.ietf.barnes@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="J." surname="Peterson" fullname="Jon Peterson"> | <author initials="J." surname="Peterson" fullname="Jon Peterson"> | |||
| <organization>Neustar Inc.</organization> | <organization showOnFrontPage="true">Neustar Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1800 Sutter St Suite 570</street> | <extaddr>Suite 570</extaddr> | |||
| <city>Concord, CA 94520</city> | <street>1800 Sutter St</street> | |||
| <country>US</country> | <city>Concord</city> | |||
| <region>CA</region> | ||||
| <code>94520</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | </postal> | |||
| <email>jon.peterson@neustar.biz</email> | <email>jon.peterson@neustar.biz</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="09" year="2023"/> | ||||
| <date year="2023"/> | ||||
| <area>sec</area> | <area>sec</area> | |||
| <workgroup>acme</workgroup> | ||||
| <keyword>STIR</keyword> | <keyword>STIR</keyword> | |||
| <abstract pn="section-abstract"> | ||||
| <abstract> | <t indent="0" pn="section-abstract-1">This document defines a profile of t | |||
| he Automated Certificate Management Environment (ACME) Authority Token for the a | ||||
| <t>This document defines a profile of the Automated Certificate Management Envir | utomated and authorized creation of certificates for Voice over IP (VoIP) teleph | |||
| onment (ACME) Authority Token for the automated and authorized creation of certi | one providers to support Secure Telephone Identity (STI) using the TNAuthList de | |||
| ficates for VoIP Telephone Providers to support Secure Telephony Identity (STI) | fined by STI certificates.</t> | |||
| using the TNAuthList defined by STI certificates.</t> | ||||
| </abstract> | </abstract> | |||
| <boilerplate> | ||||
| <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
| "exclude" pn="section-boilerplate.1"> | ||||
| <name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
| > | ||||
| <t indent="0" pn="section-boilerplate.1-1"> | ||||
| This is an Internet Standards Track document. | ||||
| </t> | ||||
| <t indent="0" pn="section-boilerplate.1-2"> | ||||
| This document is a product of the Internet Engineering Task Force | ||||
| (IETF). It represents the consensus of the IETF community. It has | ||||
| received public review and has been approved for publication by | ||||
| the Internet Engineering Steering Group (IESG). Further | ||||
| information on Internet Standards is available in Section 2 of | ||||
| RFC 7841. | ||||
| </t> | ||||
| <t indent="0" pn="section-boilerplate.1-3"> | ||||
| Information about the current status of this document, any | ||||
| errata, and how to provide feedback on it may be obtained at | ||||
| <eref target="https://www.rfc-editor.org/info/rfc9448" brackets="non | ||||
| e"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
| ude" pn="section-boilerplate.2"> | ||||
| <name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
| <t indent="0" pn="section-boilerplate.2-1"> | ||||
| Copyright (c) 2023 IETF Trust and the persons identified as the | ||||
| document authors. All rights reserved. | ||||
| </t> | ||||
| <t indent="0" pn="section-boilerplate.2-2"> | ||||
| This document is subject to BCP 78 and the IETF Trust's Legal | ||||
| Provisions Relating to IETF Documents | ||||
| (<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
| "/>) in effect on the date of | ||||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with | ||||
| respect to this document. Code Components extracted from this | ||||
| document must include Revised BSD License text as described in | ||||
| Section 4.e of the Trust Legal Provisions and are provided without | ||||
| warranty as described in the Revised BSD License. | ||||
| </t> | ||||
| </section> | ||||
| </boilerplate> | ||||
| <toc> | ||||
| <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
| n="section-toc.1"> | ||||
| <name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
| c.1-1"> | ||||
| <li pn="section-toc.1-1.1"> | ||||
| <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der | ||||
| ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>. <xref | ||||
| derivedContent="" format="title" sectionFormat="of" target="name-introduction"> | ||||
| Introduction</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.2"> | ||||
| <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref der | ||||
| ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref | ||||
| derivedContent="" format="title" sectionFormat="of" target="name-requirements-l | ||||
| anguage">Requirements Language</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3"> | ||||
| <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref der | ||||
| ivedContent="3" format="counter" sectionFormat="of" target="section-3"/>. <xref | ||||
| derivedContent="" format="title" sectionFormat="of" target="name-acme-new-order | ||||
| -identifiers-">ACME New-Order Identifiers for TNAuthList</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4"> | ||||
| <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form | ||||
| at="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-tnauthlist-identifier-autho">TNAut | ||||
| hList Identifier Authorization</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5"> | ||||
| <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form | ||||
| at="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-tnauthlist-authority-token">TNAuth | ||||
| List Authority Token</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.5.2"> | ||||
| <li pn="section-toc.1-1.5.2.1"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent= | ||||
| "5.1" format="counter" sectionFormat="of" target="section-5.1"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-iss-claim">"iss" Claim | ||||
| </xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5.2.2"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent= | ||||
| "5.2" format="counter" sectionFormat="of" target="section-5.2"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-exp-claim">"exp" Claim | ||||
| </xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5.2.3"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent= | ||||
| "5.3" format="counter" sectionFormat="of" target="section-5.3"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-jti-claim">"jti" Claim | ||||
| </xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5.2.4"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent= | ||||
| "5.4" format="counter" sectionFormat="of" target="section-5.4"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-atc-claim">"atc" Claim | ||||
| </xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5.2.5"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent= | ||||
| "5.5" format="counter" sectionFormat="of" target="section-5.5"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-acquiring-the-token-fr | ||||
| om-th">Acquiring the Token from the Token Authority</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5.2.6"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.6.1"><xref derivedContent= | ||||
| "5.6" format="counter" sectionFormat="of" target="section-5.6"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-token-authority-respon | ||||
| sibil">Token Authority Responsibilities</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5.2.7"> | ||||
| <t indent="0" pn="section-toc.1-1.5.2.7.1"><xref derivedContent= | ||||
| "5.7" format="counter" sectionFormat="of" target="section-5.7"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-scope-of-the-tnauthlis | ||||
| t">Scope of the TNAuthList</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.6"> | ||||
| <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form | ||||
| at="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-validating-the-tnauthlist-a">Valid | ||||
| ating the TNAuthList Authority Token</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.7"> | ||||
| <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form | ||||
| at="counter" sectionFormat="of" target="section-7"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-using-acme-issued-certifica">Using | ||||
| ACME-Issued Certificates with JSON Web Signature</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.8"> | ||||
| <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form | ||||
| at="counter" sectionFormat="of" target="section-8"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-usage-considerations">Usage Consid | ||||
| erations</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.8.2"> | ||||
| <li pn="section-toc.1-1.8.2.1"> | ||||
| <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent= | ||||
| "8.1" format="counter" sectionFormat="of" target="section-8.1"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-large-number-of-noncon | ||||
| tiguo">Large Number of Noncontiguous TNAuthList Values</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.9"> | ||||
| <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form | ||||
| at="counter" sectionFormat="of" target="section-9"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-iana-considerations">IANA Consider | ||||
| ations</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.10"> | ||||
| <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" fo | ||||
| rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-security-considerations">Securit | ||||
| y Considerations</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.11"> | ||||
| <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" fo | ||||
| rmat="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-references">References</xref></t | ||||
| > | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.11.2"> | ||||
| <li pn="section-toc.1-1.11.2.1"> | ||||
| <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent | ||||
| ="11.1" format="counter" sectionFormat="of" target="section-11.1"/>. <xref deri | ||||
| vedContent="" format="title" sectionFormat="of" target="name-normative-reference | ||||
| s">Normative References</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.11.2.2"> | ||||
| <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent | ||||
| ="11.2" format="counter" sectionFormat="of" target="section-11.2"/>. <xref deri | ||||
| vedContent="" format="title" sectionFormat="of" target="name-informative-referen | ||||
| ces">Informative References</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.12"> | ||||
| <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" form | ||||
| at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent=" | ||||
| " format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgeme | ||||
| nts</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.13"> | ||||
| <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" form | ||||
| at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent=" | ||||
| " format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add | ||||
| resses</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </toc> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="introduction" numbered="true" removeInRFC="false" toc="incl | ||||
| <section anchor="introduction"><name>Introduction</name> | ude" pn="section-1"> | |||
| <name slugifiedName="name-introduction">Introduction</name> | ||||
| <t><xref target="RFC8555"/> is a mechanism for automating certificate management | <t indent="0" pn="section-1-1"><xref target="RFC8555" format="default" sec | |||
| on the Internet. It enables administrative entities to prove effective control | tionFormat="of" derivedContent="RFC8555"/> describes a mechanism for automating | |||
| over resources like domain names, and automates the process of generating and is | certificate management on the Internet. It enables administrative entities to pr | |||
| suing certificates. <xref target="I-D.ietf-acme-authority-token"/> extends ACME | ove effective control over resources like domain names, and it automates the pro | |||
| to provide a general method of extending the authority and authorization of enti | cess of generating and issuing certificates. <xref target="RFC9447" format="defa | |||
| ties to control a resource via a third party Token Authority beyond the Certific | ult" sectionFormat="of" derivedContent="RFC9447"/> extends ACME to provide a gen | |||
| ation Authority (CA).</t> | eral method of extending the authority and authorization of entities to control | |||
| a resource via a third party Token Authority beyond the certification authority | ||||
| <t>This document is a profile document using the Authority Token mechanism defin | (CA).</t> | |||
| ed in <xref target="I-D.ietf-acme-authority-token"/>. It is a profile that spec | <t indent="0" pn="section-1-2">This document is a profile document using t | |||
| ifically addresses the STIR problem statement <xref target="RFC7340"/> which ide | he Authority Token mechanism defined in <xref target="RFC9447" format="default" | |||
| ntifies the need for Internet credentials that can attest authority for the orig | sectionFormat="of" derivedContent="RFC9447"/>. It is a profile that specificall | |||
| inator of VoIP calls in order to detect impersonation, which is currently an ena | y addresses the Secure Telephone Identity Revisited (STIR) problem statement des | |||
| bler for common attacks associated with illegal robocalling, voicemail hacking, | cribed in <xref target="RFC7340" format="default" sectionFormat="of" derivedCont | |||
| and swatting. These credentials are used to sign PASSporTs <xref target="RFC822 | ent="RFC7340"/>, which identifies the need for Internet credentials that can att | |||
| 5"/>, which can be carried in using protocols such as SIP <xref target="RFC8224" | est authority for the originator of VoIP calls in order to detect impersonation, | |||
| />. Currently, the only defined credentials for this purpose are the certificat | which is currently an enabler for common attacks associated with illegal roboca | |||
| es specified in <xref target="RFC8226"/> using the TNAuthList. This document de | lling, voicemail hacking, and swatting. These credentials are used to sign Pers | |||
| fines the use of the TNAuthList Authority Token in the ACME challenge to proof t | onal Assertion Tokens (PASSporTs) <xref target="RFC8225" format="default" sectio | |||
| he authoritative use of the contents of the TNAuthList, including a Service Prov | nFormat="of" derivedContent="RFC8225"/>, which can be carried in using protocols | |||
| ider Token (SPC), a Telephone Number, or a set of telephone numbers or telephone | such as SIP <xref target="RFC8224" format="default" sectionFormat="of" derivedC | |||
| number blocks.</t> | ontent="RFC8224"/>. Currently, the only defined credentials for this purpose ar | |||
| e the certificates specified in <xref target="RFC8226" format="default" sectionF | ||||
| <t>This document also describes the ability for a telephone authority to authori | ormat="of" derivedContent="RFC8226"/> using the TNAuthList. This document defin | |||
| ze the creation of CA types of certificates for delegation as defined in <xref t | es the use of the TNAuthList Authority Token in the ACME challenge to prove the | |||
| arget="RFC9060"/>.</t> | authoritative use of the contents of the TNAuthList, including a Service Provide | |||
| r Code (SPC), a telephone number, or a set of telephone numbers or telephone num | ||||
| </section> | ber blocks.</t> | |||
| <section anchor="terminology"><name>Terminology</name> | <t indent="0" pn="section-1-3">This document also describes the ability fo | |||
| r a telephone authority to authorize the creation of CA types of certificates fo | ||||
| <t>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", | r delegation, as defined in <xref target="RFC9060" format="default" sectionForma | |||
| "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this do | t="of" derivedContent="RFC9060"/>.</t> | |||
| cument are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xr | </section> | |||
| ef target="RFC8174"/> when, and only when, they appear in all capitals, as shown | <section anchor="terminology" numbered="true" removeInRFC="false" toc="inclu | |||
| here.</t> | de" pn="section-2"> | |||
| <name slugifiedName="name-requirements-language">Requirements Language</na | ||||
| </section> | me> | |||
| <section anchor="acme-new-order-identifiers-for-tnauthlist"><name>ACME new-order | <t indent="0" pn="section-2-1"> | |||
| identifiers for TNAuthList</name> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOUL | ||||
| <t>In <xref target="RFC8555"/>, Section 7 defines the procedure that an ACME cli | D</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>N | |||
| ent uses to order a new certificate from a CA. The new-order request contains an | OT RECOMMENDED</bcp14>", | |||
| identifier field that specifies the identifier objects the order corresponds to | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| . This draft defines a new type of identifier object called TNAuthList. A TNAut | be interpreted as | |||
| hList identifier contains the identity information to be populated in the TN Aut | described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o | |||
| horization List of the new certificate. For the TNAuthList identifier, the new-o | f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor | |||
| rder request includes a type set to the string "TNAuthList". The value of the TN | mat="of" derivedContent="RFC8174"/> | |||
| AuthList identifier MUST be set to the details of the TNAuthList requested.</t> | when, and only when, they appear in all capitals, as shown here. | |||
| </t> | ||||
| <t>The format of the string that represents the TNAuthList MUST be constructed u | </section> | |||
| sing base64url encoding, as per <xref target="RFC8555"/> base64url encoding desc | <section anchor="acme-new-order-identifiers-for-tnauthlist" numbered="true" | |||
| ribed in Section 5 of <xref target="RFC4648"/> according to the profile specifie | removeInRFC="false" toc="include" pn="section-3"> | |||
| d in JSON Web Signature in Section 2 of <xref target="RFC7515"/>. The base64url | <name slugifiedName="name-acme-new-order-identifiers-">ACME New-Order Iden | |||
| encoding MUST NOT include any padding characters and the TNAuthList ASN.1 object | tifiers for TNAuthList</name> | |||
| MUST encoded using DER encoding rules.</t> | <t indent="0" pn="section-3-1"><xref target="RFC8555" section="7" sectionF | |||
| ormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8555#sect | ||||
| <t>An example of an ACME order object “identifiers” field containing a TNAuthLis | ion-7" derivedContent="RFC8555"/> defines the procedure that an ACME client uses | |||
| t certificate would look as follows,</t> | to order a new certificate from a CA. The new-order request contains an identif | |||
| ier field that specifies the identifier objects the order corresponds to. This | ||||
| <figure><artwork><![CDATA[ | document defines a new type of identifier object called TNAuthList. A TNAuthList | |||
| identifier contains the identity information to be populated in the TNAuthList | ||||
| of the new certificate. For the TNAuthList identifier, the new-order request inc | ||||
| ludes a type set to the string "TNAuthList". The value of the TNAuthList identif | ||||
| ier <bcp14>MUST</bcp14> be set to the details of the TNAuthList requested.</t> | ||||
| <t indent="0" pn="section-3-2">The string that represents the TNAuthList < | ||||
| bcp14>MUST</bcp14> be | ||||
| constructed using base64url encoding, as described in | ||||
| <xref target="RFC4648" section="5" sectionFormat="of" format="default" derive | ||||
| dLink="https://rfc-editor.org/rfc/rfc4648#section-5" derivedContent="RFC4648"/> | ||||
| and as defined in <xref target="RFC7515" section="2" sectionFormat="of" format=" | ||||
| default" derivedLink="https://rfc-editor.org/rfc/rfc7515#section-2" derivedConte | ||||
| nt="RFC7515">JSON Web Signature</xref>. | ||||
| The base64url encoding <bcp14>MUST NOT</bcp14> include any padding charact | ||||
| ers, and the TNAuthList ASN.1 object <bcp14>MUST</bcp14> be encoded using DER en | ||||
| coding rules.</t> | ||||
| <t indent="0" pn="section-3-3">An example of an ACME order object "identif | ||||
| iers" field containing a TNAuthList certificate is as follows:</t> | ||||
| <sourcecode type="" markers="false" pn="section-3-4"> | ||||
| "identifiers": [{"type":"TNAuthList","value":"F83n2a...avn27DN3"}] | "identifiers": [{"type":"TNAuthList","value":"F83n2a...avn27DN3"}] | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-3-5">where the "value" object string represents | ||||
| <t>where the "value" object string represents the arbitrary length base64url enc | the arbitrary length of the base64url-encoded string.</t> | |||
| oded string.</t> | <t indent="0" pn="section-3-6">A full new-order request would look as foll | |||
| ows:</t> | ||||
| <t>A full new-order request would look as follows,</t> | <sourcecode type="" markers="false" pn="section-3-7"> | |||
| <figure><artwork><![CDATA[ | ||||
| POST /acme/new-order HTTP/1.1 | POST /acme/new-order HTTP/1.1 | |||
| Host: example.com | Host: example.com | |||
| Content-Type: application/jose+json | Content-Type: application/jose+json | |||
| { | { | |||
| "protected": base64url({ | "protected": base64url({ | |||
| "alg": "ES256", | "alg": "ES256", | |||
| "kid": "https://example.com/acme/acct/evOfKhNU60wg", | "kid": "https://example.com/acme/acct/evOfKhNU60wg", | |||
| "nonce": "5XJ1L3lEkMG7tR6pA00clA", | "nonce": "5XJ1L3lEkMG7tR6pA00clA", | |||
| "url": "https://example.com/acme/new-order" | "url": "https://example.com/acme/new-order" | |||
| }), | }), | |||
| "payload": base64url({ | "payload": base64url({ | |||
| "identifiers": [{"type":"TNAuthList","value":"F83n...n27DN3"}], | "identifiers": [{"type":"TNAuthList","value":"F83n...n27DN3"}], | |||
| "notBefore": "2021-01-01T00:00:00Z", | "notBefore": "2021-01-01T00:00:00Z", | |||
| "notAfter": "2021-01-08T00:00:00Z" | "notAfter": "2021-01-08T00:00:00Z" | |||
| }), | }), | |||
| "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g" | "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-3-8">On receiving a valid new-order request, the | ||||
| <t>On receiving a valid new-order request, the ACME server creates an authorizat | ACME server creates an authorization object (<xref target="RFC8555" section="7. | |||
| ion object, <xref target="RFC8555"/> Section 7.1.4, containing the challenge tha | 1.4" sectionFormat="comma" format="default" derivedLink="https://rfc-editor.org/ | |||
| t the ACME client must satisfy to demonstrate authority for the identifiers spec | rfc/rfc8555#section-7.1.4" derivedContent="RFC8555"/>), containing the challenge | |||
| ified by the new order (in this case, the TNAuthList identifier). The CA adds th | that the ACME client must satisfy to demonstrate authority for the identifiers | |||
| e authorization object URL to the "authorizations" field of the order object, an | specified by the new order (in this case, the TNAuthList identifier). The CA add | |||
| d returns the order object to the ACME client in the body of a 201 (Created) res | s the authorization object URL to the "authorizations" field of the order object | |||
| ponse.</t> | and returns the order object to the ACME client in the body of a 201 (Created) | |||
| response.</t> | ||||
| <figure><artwork><![CDATA[ | <sourcecode type="" markers="false" pn="section-3-9"> | |||
| HTTP/1.1 201 Created | HTTP/1.1 201 Created | |||
| Content-Type: application/json | Content-Type: application/json | |||
| Replay-Nonce: MYAuvOpaoIiywTezizk5vw | Replay-Nonce: MYAuvOpaoIiywTezizk5vw | |||
| Location: https://example.com/acme/order/1234 | Location: https://example.com/acme/order/1234 | |||
| { | { | |||
| "status": "pending", | "status": "pending", | |||
| "expires": "2022-01-08T00:00:00Z", | "expires": "2022-01-08T00:00:00Z", | |||
| "notBefore": "2022-01-01T00:00:00Z", | "notBefore": "2022-01-01T00:00:00Z", | |||
| "notAfter": "2022-01-08T00:00:00Z", | "notAfter": "2022-01-08T00:00:00Z", | |||
| "identifiers":[{"type":"TNAuthList", | "identifiers":[{"type":"TNAuthList", | |||
| "value":"F83n2a...avn27DN3"}], | "value":"F83n2a...avn27DN3"}], | |||
| "authorizations": [ | "authorizations": [ | |||
| "https://example.com/acme/authz/1234" | "https://example.com/acme/authz/1234" | |||
| ], | ], | |||
| "finalize": "https://example.com/acme/order/1234/finalize" | "finalize": "https://example.com/acme/order/1234/finalize" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| </section> | ||||
| </section> | <section anchor="tnauthlist-identifier-authorization" numbered="true" remove | |||
| <section anchor="tnauthlist-identifier-authorization"><name>TNAuthList Identifie | InRFC="false" toc="include" pn="section-4"> | |||
| r Authorization</name> | <name slugifiedName="name-tnauthlist-identifier-autho">TNAuthList Identifi | |||
| er Authorization</name> | ||||
| <t>On receiving the new-order response, the ACME client queries the referenced a | <t indent="0" pn="section-4-1">On receiving the new-order response, the AC | |||
| uthorization object to obtain the challenges for the identifier contained in the | ME client queries the referenced authorization object to obtain the challenges f | |||
| new-order request as shown in the following example request and response.</t> | or the identifier contained in the new-order request, as shown in the following | |||
| example request and response.</t> | ||||
| <figure><artwork><![CDATA[ | <sourcecode type="" markers="false" pn="section-4-2"> | |||
| POST /acme/authz/1234 HTTP/1.1 | POST /acme/authz/1234 HTTP/1.1 | |||
| Host: example.com | Host: example.com | |||
| Content-Type: application/jose+json | Content-Type: application/jose+json | |||
| { | { | |||
| "protected": base64url({ | "protected": base64url({ | |||
| "alg": "ES256", | "alg": "ES256", | |||
| "kid": " https://example.com/acme/acct/evOfKhNU60wg", | "kid": " https://example.com/acme/acct/evOfKhNU60wg", | |||
| "nonce": "uQpSjlRb4vQVCjVYAyyUWg", | "nonce": "uQpSjlRb4vQVCjVYAyyUWg", | |||
| "url": "https://example.com/acme/authz/1234" | "url": "https://example.com/acme/authz/1234" | |||
| }), | }), | |||
| "payload": "", | "payload": "", | |||
| "signature": "nuSDISbWG8mMgE7H...QyVUL68yzf3Zawps" | "signature": "nuSDISbWG8mMgE7H...QyVUL68yzf3Zawps" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <sourcecode type="" markers="false" pn="section-4-3"> | ||||
| <figure><artwork><![CDATA[ | ||||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Content-Type: application/json | Content-Type: application/json | |||
| Link: <https://example.com/acme/some-directory>;rel="index" | Link: <https://example.com/acme/some-directory>;rel="index" | |||
| { | { | |||
| "status": "pending", | "status": "pending", | |||
| "expires": "2022-01-08T00:00:00Z", | "expires": "2022-01-08T00:00:00Z", | |||
| "identifier": { | "identifier": { | |||
| "type":"TNAuthList", | "type":"TNAuthList", | |||
| "value":"F83n2a...avn27DN3" | "value":"F83n2a...avn27DN3" | |||
| }, | }, | |||
| "challenges": [ | "challenges": [ | |||
| { | { | |||
| "type": "tkauth-01", | "type": "tkauth-01", | |||
| "tkauth-type": "atc", | "tkauth-type": "atc", | |||
| "token-authority": "https://authority.example.org", | "token-authority": "https://authority.example.org", | |||
| "url": "https://example.com/acme/chall/prV_B7yEyA4", | "url": "https://example.com/acme/chall/prV_B7yEyA4", | |||
| "token": "IlirfxKKXAsHtmzK29Pj8A" | "token": "IlirfxKKXAsHtmzK29Pj8A" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-4-4">When processing a certificate order contain | ||||
| <t>When processing a certificate order containing an identifier of type "TNAuthL | ing an identifier of type "TNAuthList", a CA uses the Authority Token challenge | |||
| ist", a CA uses the Authority Token challenge type of "tkauth-01" with a "tkauth | type of "tkauth-01" with a "tkauth-type" of "atc" in <xref target="RFC9447" form | |||
| -type" of "atc" in <xref target="I-D.ietf-acme-authority-token"/> to verify that | at="default" sectionFormat="of" derivedContent="RFC9447"/> to verify that the re | |||
| the requesting ACME client has authenticated and authorized control over the re | questing ACME client has authenticated and authorized control over the requested | |||
| quested resources represented by the "TNAuthList" value.</t> | resources represented by the "TNAuthList" value.</t> | |||
| <t indent="0" pn="section-4-5">The challenge "token-authority" parameter i | ||||
| <t>The challenge "token-authority" parameter is only used in cases where the VoI | s only used in cases where the VoIP telephone network requires the CA to identif | |||
| P telephone network requires the CA to identify the Token Authority. This is cur | y the Token Authority. This is currently not the case for the Signature-based Ha | |||
| rently not the case for the SHAKEN <xref target="ATIS-1000080"/> certificate fra | ndling of Asserted information using toKENs (SHAKEN) <xref target="ATIS-1000080" | |||
| mework governance, but may be used by other frameworks. If a "token-authority" p | format="default" sectionFormat="of" derivedContent="ATIS-1000080"/> certificate | |||
| arameter is present, then the ACME client MAY use the "token-authority" value to | framework governance but may be used by other frameworks. If a "token-authority | |||
| identify the URL representing the Token Authority that will provide the TNAuthL | " parameter is present, then the ACME client <bcp14>MAY</bcp14> use the "token-a | |||
| ist Authority Token response to the challenge. If the "token-authority" paramete | uthority" value to identify the URL representing the Token Authority that will p | |||
| r is not present, then the ACME client MUST identify the Token Authority based o | rovide the TNAuthList Authority Token response to the challenge. If the "token-a | |||
| n locally configured information or local policies.</t> | uthority" parameter is not present, then the ACME client <bcp14>MUST</bcp14> ide | |||
| ntify the Token Authority based on locally configured information or local polic | ||||
| <t>The ACME client responds to the challenge by posting the TNAuthList Authority | ies.</t> | |||
| Token to the challenge URL identified in the returned ACME authorization object | <t indent="0" pn="section-4-6">The ACME client responds to the challenge b | |||
| , an example of which follows.</t> | y posting the TNAuthList Authority Token to the challenge URL identified in the | |||
| returned ACME authorization object, an example of which follows:</t> | ||||
| <figure><artwork><![CDATA[ | <sourcecode type="" markers="false" pn="section-4-7"> | |||
| POST /acme/chall/prV_B7yEyA4 HTTP/1.1 | POST /acme/chall/prV_B7yEyA4 HTTP/1.1 | |||
| Host: boulder.example.com | Host: boulder.example.com | |||
| Content-Type: application/jose+json | Content-Type: application/jose+json | |||
| { | { | |||
| "protected": base64url({ | "protected": base64url({ | |||
| "alg": "ES256", | "alg": "ES256", | |||
| "kid": "https://example.com/acme/acct/evOfKhNU60wg", | "kid": "https://example.com/acme/acct/evOfKhNU60wg", | |||
| "nonce": "Q_s3MWoqT05TrdkM2MTDcw", | "nonce": "Q_s3MWoqT05TrdkM2MTDcw", | |||
| "url": "https://boulder.example.com/acme/authz/asdf/0" | "url": "https://boulder.example.com/acme/authz/asdf/0" | |||
| }), | }), | |||
| "payload": base64url({ | "payload": base64url({ | |||
| "tkauth": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE" | "tkauth": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE" | |||
| }), | }), | |||
| "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ" | "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-4-8">The "tkauth" field is defined as a new fiel | ||||
| <t>The "tkauth" field is defined as a new field in the challenge object specific | d in the challenge object specific to the tkauth-01 challenge type that should c | |||
| to the tkauth-01 challenge type that should contain the TNAuthList Authority To | ontain the TNAuthList Authority Token defined in the next section.</t> | |||
| ken defined in the next section.</t> | </section> | |||
| <section anchor="tnauthlist-authority-token" numbered="true" removeInRFC="fa | ||||
| </section> | lse" toc="include" pn="section-5"> | |||
| <section anchor="tnauthlist-authority-token"><name>TNAuthList Authority Token</n | <name slugifiedName="name-tnauthlist-authority-token">TNAuthList Authority | |||
| ame> | Token</name> | |||
| <t indent="0" pn="section-5-1">The TNAuthList Authority Token is a profile | ||||
| <t>The Telephone Number Authority List Authority Token (TNAuthList Authority Tok | instance of the ACME Authority Token defined in <xref target="RFC9447" format=" | |||
| en) is a profile instance of the ACME Authority Token defined in <xref target="I | default" sectionFormat="of" derivedContent="RFC9447"/>.</t> | |||
| -D.ietf-acme-authority-token"/>.</t> | <t indent="0" pn="section-5-2">The TNAuthList Authority Token protected he | |||
| ader <bcp14>MUST</bcp14> comply with "Request Authentication" (<xref target="RFC | ||||
| <t>The TNAuthList Authority Token Protected header MUST comply with the Authorit | 8555" section="6.2" sectionFormat="of" format="default" derivedLink="https://rfc | |||
| y Token Protected header as defined in <xref target="I-D.ietf-acme-authority-tok | -editor.org/rfc/rfc8555#section-6.2" derivedContent="RFC8555"/>).</t> | |||
| en"/>.</t> | <t indent="0" pn="section-5-3">The TNAuthList Authority Token Payload <bcp | |||
| 14>MUST</bcp14> include the mandatory claims "exp", "jti", and "atc" and <bcp14> | ||||
| <t>The TNAuthList Authority Token Payload MUST include the mandatory claims "exp | MAY</bcp14> include the optional claims defined for the Authority Token detailed | |||
| ", "jti", and "atc", and MAY include the optional claims defined for the Authori | in the next subsections.</t> | |||
| ty Token detailed in the next subsections.</t> | <section anchor="iss-claim" numbered="true" removeInRFC="false" toc="inclu | |||
| de" pn="section-5.1"> | ||||
| <section anchor="iss-claim"><name>"iss" claim</name> | <name slugifiedName="name-iss-claim">"iss" Claim</name> | |||
| <t indent="0" pn="section-5.1-1">The "iss" claim is an optional claim de | ||||
| <t>The "iss" claim is an optional claim defined in <xref target="RFC7519"/> Sect | fined in <xref target="RFC7519" section="4.1.1" sectionFormat="comma" format="de | |||
| ion 4.1.1. It can be used as a URL identifying the Token Authority that issued | fault" derivedLink="https://rfc-editor.org/rfc/rfc7519#section-4.1.1" derivedCon | |||
| the TNAuthList Authority Token beyond the "x5u" or other Header claims that iden | tent="RFC7519"/>. It can be used as a URL identifying the Token Authority that | |||
| tify the location of the certificate or certificate chain of the Token Authority | issued the TNAuthList Authority Token beyond the "x5u" or other header claims th | |||
| used to validate the TNAuthList Authority Token.</t> | at identify the location of the certificate or certificate chain of the Token Au | |||
| thority used to validate the TNAuthList Authority Token.</t> | ||||
| </section> | </section> | |||
| <section anchor="exp-claim"><name>"exp" claim</name> | <section anchor="exp-claim" numbered="true" removeInRFC="false" toc="inclu | |||
| de" pn="section-5.2"> | ||||
| <t>The "exp" claim, defined in <xref target="RFC7519"/> Section 4.1.4, MUST be i | <name slugifiedName="name-exp-claim">"exp" Claim</name> | |||
| ncluded and contains the DateTime value of the ending date and time that the TNA | <t indent="0" pn="section-5.2-1">The "exp" claim, defined in <xref targe | |||
| uthList Authority Token expires.</t> | t="RFC7519" section="4.1.4" sectionFormat="comma" format="default" derivedLink=" | |||
| https://rfc-editor.org/rfc/rfc7519#section-4.1.4" derivedContent="RFC7519"/>, <b | ||||
| </section> | cp14>MUST</bcp14> be included and contains the DateTime value of the ending date | |||
| <section anchor="jti-claim"><name>"jti" claim</name> | and time that the TNAuthList Authority Token expires.</t> | |||
| </section> | ||||
| <t>The "jti" claim, defined in <xref target="RFC7519"/> Section 4.1.7, MUST be i | <section anchor="jti-claim" numbered="true" removeInRFC="false" toc="inclu | |||
| ncluded and contains a unique identifier for this TNAuthList Authority Token tra | de" pn="section-5.3"> | |||
| nsaction.</t> | <name slugifiedName="name-jti-claim">"jti" Claim</name> | |||
| <t indent="0" pn="section-5.3-1">The "jti" claim, defined in <xref targe | ||||
| </section> | t="RFC7519" section="4.1.7" sectionFormat="comma" format="default" derivedLink=" | |||
| <section anchor="atc-claim"><name>"atc" claim</name> | https://rfc-editor.org/rfc/rfc7519#section-4.1.7" derivedContent="RFC7519"/>, <b | |||
| cp14>MUST</bcp14> be included and contains a unique identifier for this TNAuthLi | ||||
| <t>The "atc" claim MUST be included and is defined in <xref target="I-D.ietf-acm | st Authority Token transaction.</t> | |||
| e-authority-token"/>. It contains a JSON object with the following elements:</t | </section> | |||
| > | <section anchor="atc-claim" numbered="true" removeInRFC="false" toc="inclu | |||
| de" pn="section-5.4"> | ||||
| <t><list style="symbols"> | <name slugifiedName="name-atc-claim">"atc" Claim</name> | |||
| <t>a "tktype" key with a string value equal to "TNAuthList" to represent a TNA | <t indent="0" pn="section-5.4-1">The "atc" claim <bcp14>MUST</bcp14> be | |||
| uthList profile of the authority token <xref target="I-D.ietf-acme-authority-tok | included and is defined in <xref target="RFC9447" format="default" sectionFormat | |||
| en"/> defined by this document. "tktype" is a required key and MUST be included. | ="of" derivedContent="RFC9447"/>. It contains a JSON object with the following | |||
| </t> | elements:</t> | |||
| <t>a "tkvalue" key with a string value equal to the base64url encoding of the | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5 | |||
| TN Authorization List certificate extension ASN.1 object using DER encoding rule | .4-2"> | |||
| s. "tkvalue" is a required key and MUST be included.</t> | <li pn="section-5.4-2.1">a "tktype" key with a string value equal to " | |||
| <t>a "ca" key with a boolean value set to either true when the requested certi | TNAuthList" to represent a TNAuthList profile of the Authority Token <xref targe | |||
| ficate is allowed to be a CA cert for delegation uses or false when the requeste | t="RFC9447" format="default" sectionFormat="of" derivedContent="RFC9447"/> defin | |||
| d certificate is not intended to be a CA cert, only an end-entity certificate. " | ed by this document. "tktype" is a required key and <bcp14>MUST</bcp14> be inclu | |||
| ca" is an optional key, if not included the "ca" value is considered false by de | ded.</li> | |||
| fault.</t> | <li pn="section-5.4-2.2">a "tkvalue" key with a string value equal to | |||
| <t>a "fingerprint" key is constructed as defined in <xref target="RFC8555"/> S | the base64url encoding of the TNAuthList certificate extension ASN.1 object usin | |||
| ection 8.1 corresponding to the computation of the "Thumbprint" step using the A | g DER encoding rules. "tkvalue" is a required key and <bcp14>MUST</bcp14> be inc | |||
| CME account key credentials. "fingerprint" is a required key and MUST be include | luded.</li> | |||
| d.</t> | <li pn="section-5.4-2.3">a "ca" key with a boolean value set to either | |||
| </list></t> | true when the requested certificate is allowed to be a CA cert for delegation u | |||
| ses or false when the requested certificate is not intended to be a CA cert, onl | ||||
| <t>An example of the TNAuthList Authority Token is as follows:</t> | y an end-entity certificate. "ca" is an optional key; if not included, the "ca" | |||
| value is considered false by default.</li> | ||||
| <figure><artwork><![CDATA[ | <li pn="section-5.4-2.4">a "fingerprint" key constructed as defined in | |||
| <xref target="RFC8555" section="8.1" sectionFormat="comma" format="default" der | ||||
| ivedLink="https://rfc-editor.org/rfc/rfc8555#section-8.1" derivedContent="RFC855 | ||||
| 5"/>, corresponding to the computation of the "Thumbprint" step using the ACME a | ||||
| ccount key credentials. "fingerprint" is a required key and <bcp14>MUST</bcp14> | ||||
| be included.</li> | ||||
| </ul> | ||||
| <t indent="0" pn="section-5.4-3">An example of the TNAuthList Authority | ||||
| Token is as follows:</t> | ||||
| <sourcecode type="" markers="false" pn="section-5.4-4"> | ||||
| { | { | |||
| "protected": base64url({ | "protected": base64url({ | |||
| "typ":"JWT", | "typ":"JWT", | |||
| "alg":"ES256", | "alg":"ES256", | |||
| "x5u":"https://authority.example.org/cert" | "x5u":"https://authority.example.org/cert" | |||
| }), | }), | |||
| "payload": base64url({ | "payload": base64url({ | |||
| "iss":"https://authority.example.org", | "iss":"https://authority.example.org", | |||
| "exp":1640995200, | "exp":1640995200, | |||
| "jti":"id6098364921", | "jti":"id6098364921", | |||
| "atc":{"tktype":"TNAuthList", | "atc":{"tktype":"TNAuthList", | |||
| "tkvalue":"F83n2a...avn27DN3", | "tkvalue":"F83n2a...avn27DN3", | |||
| "ca":false, | "ca":false, | |||
| "fingerprint":"SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71: | "fingerprint":"SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71: | |||
| D3:BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3"} | D3:BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3"} | |||
| }), | }), | |||
| "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ" | "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| </section> | ||||
| </section> | <section anchor="acquiring-the-token-from-the-token-authority" numbered="t | |||
| <section anchor="acquiring-the-token-from-the-token-authority"><name>Acquiring t | rue" removeInRFC="false" toc="include" pn="section-5.5"> | |||
| he token from the Token Authority</name> | <name slugifiedName="name-acquiring-the-token-from-th">Acquiring the Tok | |||
| en from the Token Authority</name> | ||||
| <t>Following <xref target="I-D.ietf-acme-authority-token"/> Section 5, the autho | <t indent="0" pn="section-5.5-1">Following <xref target="RFC9447" sectio | |||
| rity token should be acquired using a RESTful HTTP POST transaction as follows:< | n="5" sectionFormat="comma" format="default" derivedLink="https://rfc-editor.org | |||
| /t> | /rfc/rfc9447#section-5" derivedContent="RFC9447"/>, the Authority Token should b | |||
| e acquired using a RESTful HTTP POST transaction as follows:</t> | ||||
| <figure><artwork><![CDATA[ | <sourcecode type="" markers="false" pn="section-5.5-2"> | |||
| POST /at/account/:id/token HTTP/1.1 | POST /at/account/:id/token HTTP/1.1 | |||
| Host: authority.example.org | Host: authority.example.org | |||
| Content-Type: application/json | Content-Type: application/json | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-5.5-3">The request will pass the account ident | ||||
| <t>The request will pass the account id as a string in the request parameter "id | ifier as a string in the request parameter "id". This string will be managed as | |||
| ". This string will be managed as an identifier specific to the Token Authority | an identifier specific to the Token Authority's relationship with a Communicati | |||
| 's relationship with a communications service provider (CSP). There is assumed t | ons Service Provider (CSP). There is assumed to also be a corresponding authenti | |||
| o also be a corresponding authentication procedure that can be verified for the | cation procedure that can be verified for the success of this transaction, for e | |||
| success of this transaction. For example, an HTTP authorization header containin | xample, an HTTP authorization header containing valid authorization credentials, | |||
| g a valid authorization credentials as defined in <xref target="RFC7231"/> Secti | as defined in <xref target="RFC9110" section="11.6.2" sectionFormat="comma" for | |||
| on 14.8.</t> | mat="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-11.6.2" de | |||
| rivedContent="RFC9110"/>.</t> | ||||
| <t>The body of the POST request MUST contain a JSON object with key value pairs | <t indent="0" pn="section-5.5-4">The body of the POST request <bcp14>MUS | |||
| corresponding to values that are requested as the content of the claims in the i | T</bcp14> contain a JSON object with key value pairs corresponding to values tha | |||
| ssued token. As an example, the body SHOULD contain a JSON object as follows:</t | t are requested as the content of the claims in the issued token. As an example, | |||
| > | the body <bcp14>SHOULD</bcp14> contain a JSON object as follows:</t> | |||
| <sourcecode type="" markers="false" pn="section-5.5-5"> | ||||
| <figure><artwork><![CDATA[ | ||||
| { | { | |||
| "tktype":"TNAuthList", | "tktype":"TNAuthList", | |||
| "tkvalue":"F83n2a...avn27DN3", | "tkvalue":"F83n2a...avn27DN3", | |||
| "ca":false, | "ca":false, | |||
| "fingerprint":"SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71:D3 | "fingerprint":"SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71:D3 | |||
| :BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3" | :BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-5.5-6">If successful, the response to the POST | ||||
| <t>The response to the POST request if successful returns a 200 OK with a JSON b | request returns a 200 (OK) with a JSON body that contains, at a minimum, the TN | |||
| ody that contains, at a minimum, the TNAuthList Authority Token as a JSON object | AuthList Authority Token as a JSON object with a key of "token" and the base64ur | |||
| with a key of "token" and the base64url encoded string representing the atc tok | l-encoded string representing the atc token. JSON is easily extensible, so users | |||
| en. JSON is easily extensible, so users of this specification may want to pass o | of this specification may want to pass other pieces of information relevant to | |||
| ther pieces of information relevant to a specific application.</t> | a specific application.</t> | |||
| <t indent="0" pn="section-5.5-7">An example of a successful response wou | ||||
| <t>An example successful response would be as follows:</t> | ld be as follows:</t> | |||
| <sourcecode type="" markers="false" pn="section-5.5-8"> | ||||
| <figure><artwork><![CDATA[ | ||||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Content-Type: application/json | Content-Type: application/json | |||
| {"token": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"} | {"token": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"} | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t indent="0" pn="section-5.5-9">If the request is not successful, the r | ||||
| <t>If the request is not successful, the response should indicate the error cond | esponse should indicate the error condition. Specifically, for the case that th | |||
| ition. Specifically, for the case that the authorization credentials are invali | e authorization credentials are invalid or if the account identifier provided do | |||
| d or if the Account ID provided does not exist, the response code MUST be 403 - | es not exist, the response code <bcp14>MUST</bcp14> be 403 (Forbidden). Other 4x | |||
| Forbidden. Other 4xx and 5xx responses MUST follow standard <xref target="RFC723 | x and 5xx responses <bcp14>MUST</bcp14> follow standard HTTP error condition con | |||
| 1"/> HTTP error condition conventions.</t> | ventions <xref target="RFC9110" format="default" sectionFormat="of" derivedConte | |||
| nt="RFC9110"/>.</t> | ||||
| </section> | </section> | |||
| <section anchor="token-authority-responsibilities"><name>Token Authority Respons | <section anchor="token-authority-responsibilities" numbered="true" removeI | |||
| ibilities</name> | nRFC="false" toc="include" pn="section-5.6"> | |||
| <name slugifiedName="name-token-authority-responsibil">Token Authority R | ||||
| <t>When creating the TNAuthList Authority Token, the Token Authority MUST valida | esponsibilities</name> | |||
| te that the information contained in the ASN.1 TNAuthList accurately represents | <t indent="0" pn="section-5.6-1">When creating the TNAuthList Authority | |||
| the service provider code (SPC) or telephone number (TN) resources the requestin | Token, the Token Authority <bcp14>MUST</bcp14> validate that the information con | |||
| g party is authorized to represent based on their pre-established and verified s | tained in the ASN.1 TNAuthList accurately represents the service provider code ( | |||
| ecure relationship between the Token Authority and the requesting party. Note th | SPC) or telephone number (TN) resources the requesting party is authorized to re | |||
| at the fingerprint in the token request is not meant to be verified by the Token | present based on their pre-established, verified, and secure relationship betwee | |||
| Authority, but rather is meant to be signed as part of the token so that the pa | n the Token Authority and the requesting party. Note that the fingerprint in the | |||
| rty that requests the token can, as part of the challenge response, allow the AC | token request is not meant to be verified by the Token Authority but rather is | |||
| ME server to validate the token requested and used came from the same party that | meant to be signed as part of the token so that the party that requests the toke | |||
| controls the ACME client.</t> | n can, as part of the challenge response, allow the ACME server to validate that | |||
| the token requested and used came from the same party that controls the ACME cl | ||||
| </section> | ient.</t> | |||
| <section anchor="scope-of-the-tnauthlist"><name>Scope of the TNAuthList</name> | </section> | |||
| <section anchor="scope-of-the-tnauthlist" numbered="true" removeInRFC="fal | ||||
| <t>Because this specification specifically involves the TNAuthList defined in <x | se" toc="include" pn="section-5.7"> | |||
| ref target="RFC8226"/> which involves SPC, TNBlock, and individual TNs, the clie | <name slugifiedName="name-scope-of-the-tnauthlist">Scope of the TNAuthLi | |||
| nt may also request an Authority Token with some subset of its own authority as | st</name> | |||
| the TNAuthList provided in the "tkvalue" element in the "atc" JSON object. Gener | <t indent="0" pn="section-5.7-1">Because this specification specifically | |||
| ally, the scope of authority representing a communications service provider is r | involves the TNAuthList defined in <xref target="RFC8226" format="default" sect | |||
| epresented by a particular SPC (e.g. in North America, an operating company numb | ionFormat="of" derivedContent="RFC8226"/>, which involves SPC, telephone number | |||
| er (OCN) or service provider identifier (SPID)). That provider is also generally | ranges, and individual telephone numbers, the client may also request an Authori | |||
| associated, based on number allocations, with a particular set of different TN | ty Token with some subset of its own authority as the TNAuthList provided in the | |||
| Blocks and/or TNs. TNAuthList can be constructed to define a limited scope of th | "tkvalue" element in the "atc" JSON object. Generally, the scope of authority r | |||
| e TNBlocks or TNs either associated with an SPC or with the scope of TN Blocks o | epresenting a CSP is represented by a particular SPC (e.g., in North America, an | |||
| r TNs the client has authority over.</t> | operating company number (OCN) or service provider identifier (SPID)). Based on | |||
| number allocations, that provider is also generally associated | ||||
| <t>As recommended in <xref target="I-D.ietf-acme-authority-token"/> security con | with a particular set of different telephone number ranges and/or telepho | |||
| siderations, an Authority Token can either have a scope that attests all of the | ne numbers. The TNAuthList can be constructed to define a limited scope of the | |||
| resources which a client is eligible to receive certificates for, or potentially | TelephoneNumberRanges or TelephoneNumbers (<xref target="RFC8226" sectionFormat= | |||
| a more limited scope that is intended to capture only those resources for which | "comma" section="9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc | |||
| a client will receive a certificate from a particular certification authority. | 8226#section-9" derivedContent="RFC8226"/>) either associated with an SPC or wit | |||
| Any certification authority that sees an Authority Token can learn information | h the scope of telephone number ranges or telephone numbers the client has autho | |||
| about the resources a client can claim. In cases where this incurs a privacy ri | rity over.</t> | |||
| sk, Authority Token scopes should be limited to only the resources that will be | <t indent="0" pn="section-5.7-2">As recommended in the Security Consider | |||
| attested by the requested ACME certificate.</t> | ations section in <xref target="RFC9447" format="default" sectionFormat="of" der | |||
| ivedContent="RFC9447"/>, an Authority Token can either have a scope that attests | ||||
| </section> | all of the resources that a client is eligible to receive certificates for or p | |||
| </section> | otentially a more limited scope that is intended to capture only those resources | |||
| <section anchor="validating-the-tnauthlist-authority-token"><name>Validating the | for which a client will receive a certificate from a particular certification a | |||
| TNAuthList Authority Token</name> | uthority. Any certification authority that sees an Authority Token can learn in | |||
| formation about the resources a client can claim. In cases where this incurs a | ||||
| <t>Upon receiving a response to the challenge, the ACME server MUST perform the | privacy risk, Authority Token scopes should be limited to only the resources tha | |||
| following steps to determine the validity of the response.</t> | t will be attested by the requested ACME certificate.</t> | |||
| </section> | ||||
| <t><list style="symbols"> | </section> | |||
| <t>Verify that the value of the "atc" claim is a well-formed JSON object conta | <section anchor="validating-the-tnauthlist-authority-token" numbered="true" | |||
| ining the mandatory key values.</t> | removeInRFC="false" toc="include" pn="section-6"> | |||
| <t>If there is an "x5u" parameter verify the "x5u" parameter is a HTTPS URL wi | <name slugifiedName="name-validating-the-tnauthlist-a">Validating the TNAu | |||
| th a reference to a certificate representing the trusted issuer of authority tok | thList Authority Token</name> | |||
| ens for the eco-system.</t> | <t indent="0" pn="section-6-1">Upon receiving a response to the challenge, | |||
| <t>If there is an "x5c" parameter verify the certificate array contains a cert | the ACME server <bcp14>MUST</bcp14> perform the following steps to determine th | |||
| ificate representing the trusted issuer of authority tokens for the eco-system.< | e validity of the response.</t> | |||
| /t> | <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6-2" | |||
| <t>Verify the TNAuthList Authority Token signature using the public key of the | > | |||
| certificate referenced by the token's "x5u" or "x5c" parameter.</t> | <li pn="section-6-2.1" derivedCounter="1.">Verify that the value of the | |||
| <t>Verify that "atc" claim contains a "tktype" identifier with the value "TNAu | "atc" claim is a well-formed JSON object containing the mandatory key values.</l | |||
| thList".</t> | i> | |||
| <t>Verify that the "atc" claim "tkvalue" identifier contains the equivalent ba | <li pn="section-6-2.2" derivedCounter="2.">If there is an "x5u" paramete | |||
| se64url encoded TNAuthList certificate extension string value as the Identifier | r, verify the "x5u" parameter is an HTTPS URL with a reference to a certificate | |||
| specified in the original challenge.</t> | representing the trusted issuer of Authority Tokens for the ecosystem.</li> | |||
| <t>Verify that the remaining claims are valid (e.g., verify that token has not | <li pn="section-6-2.3" derivedCounter="3.">If there is an "x5c" paramete | |||
| expired)</t> | r, verify the certificate array contains a certificate representing the trusted | |||
| <t>Verify that the "atc" claim "fingerprint" is valid and matches the account | issuer of Authority Tokens for the ecosystem.</li> | |||
| key of the client making the request</t> | <li pn="section-6-2.4" derivedCounter="4.">Verify the TNAuthList Authori | |||
| <t>Verify that the "atc" claim "ca" identifier boolean corresponds to the CA b | ty Token signature using the public key of the certificate referenced by the tok | |||
| oolean in the Basic Constraints extension in the CSR for either CA certificate o | en's "x5u" or "x5c" parameter.</li> | |||
| r end-entity certificate</t> | <li pn="section-6-2.5" derivedCounter="5.">Verify that "atc" claim conta | |||
| </list></t> | ins a "tktype" identifier with the value "TNAuthList".</li> | |||
| <li pn="section-6-2.6" derivedCounter="6.">Verify that the "atc" claim " | ||||
| <t>If all steps in the token validation process pass, then the ACME server MUST | tkvalue" identifier contains the equivalent base64url-encoded TNAuthList certifi | |||
| set the challenge object "status" to "valid". If any step of the validation proc | cate extension string value as the identifier specified in the original challeng | |||
| ess fails, the "status" in the challenge object MUST be set to "invalid".</t> | e.</li> | |||
| <li pn="section-6-2.7" derivedCounter="7.">Verify that the remaining cla | ||||
| </section> | ims are valid (e.g., verify that token has not expired).</li> | |||
| <section anchor="using-acme-issued-certificates-with-json-web-signature"><name>U | <li pn="section-6-2.8" derivedCounter="8.">Verify that the "atc" claim " | |||
| sing ACME-issued Certificates with JSON Web Signature</name> | fingerprint" is valid and matches the account key of the client making the reque | |||
| st.</li> | ||||
| <t>JSON Web Signature (JWS, <xref target="RFC7515"/>) objects can include an "x5 | <li pn="section-6-2.9" derivedCounter="9.">Verify that the "atc" claim " | |||
| u" header parameter to refer to a certificate that is used to validate the JWS s | ca" identifier boolean corresponds to the CA boolean in the Basic Constraints ex | |||
| ignature. For example, the STIR PASSporT framework <xref target="RFC8225"/> use | tension in the Certificate Signing Request (CSR) for either CA certificate or en | |||
| s "x5u" to indicate the STIR certificate used to validate the PASSporT JWS objec | d-entity certificate.</li> | |||
| t. The URLs used in "x5u" are expected to provide the required certificate in r | </ol> | |||
| esponse to a GET request, not a POST-as-GET as required for the "certificate" UR | <t indent="0" pn="section-6-3">If all steps in the token validation proces | |||
| L in the ACME order object. Thus the current mechanism generally requires the A | s pass, then the ACME server <bcp14>MUST</bcp14> set the challenge object "statu | |||
| CME client to download the certificate and host it on a public URL to make it ac | s" to "valid". If any step of the validation process fails, the "status" in the | |||
| cessible to relying parties. This section defines an optional mechanism for the | challenge object <bcp14>MUST</bcp14> be set to "invalid".</t> | |||
| Certificate Authority (CA) to host the certificate directly and provide a URL t | </section> | |||
| hat the ACME client owner can directly reference in the "x5u" of their signed PA | <section anchor="using-acme-issued-certificates-with-json-web-signature" num | |||
| SSporTs.</t> | bered="true" removeInRFC="false" toc="include" pn="section-7"> | |||
| <name slugifiedName="name-using-acme-issued-certifica">Using ACME-Issued C | ||||
| <t>As described in Section 7.4 of <xref target="RFC8555"/> when the certificate | ertificates with JSON Web Signature</name> | |||
| is ready for making a finalize request, the server will return a 200 (OK) with t | <t indent="0" pn="section-7-1">JSON Web Signature (JWS) <xref target="RFC7 | |||
| he updated order object. In this response, an ACME Server can add a newly defin | 515" format="default" sectionFormat="of" derivedContent="RFC7515"/> objects can | |||
| ed field called "x5u" that can pass this URL to the ACME client for usage in gen | include an "x5u" header parameter to refer to a certificate that is used to vali | |||
| erated PASSporTs as a publically available URL for PASSporT validation.</t> | date the JWS signature. For example, the STIR PASSporT framework <xref target=" | |||
| RFC8225" format="default" sectionFormat="of" derivedContent="RFC8225"/> uses "x5 | ||||
| <dl> | u" to indicate the STIR certificate used to validate the PASSporT JWS object. T | |||
| <dt>x5u (optional, string):</dt> | he URLs used in "x5u" are expected to provide the required certificate in respon | |||
| <dd> | se to a GET request, not a POST-as-GET, as required for the "certificate" URL in | |||
| <t>A URL that can be used to reference the certificate in the "x5u" paramete | the ACME order object. Thus, the current mechanism generally requires the ACME | |||
| r of a JWS object <xref target="RFC7515"/></t> | client to download the certificate and host it on a public URL to make it acces | |||
| </dd> | sible to relying parties. This section defines an optional mechanism for the ce | |||
| </dl> | rtification authority (CA) to host the certificate directly and provide a URL th | |||
| at the ACME client owner can directly reference in the "x5u" of their signed PAS | ||||
| <t>The publishing of the certificates at the new "x5u" URL should follow the GET | SporTs.</t> | |||
| request requirement as mentioned above and should be consistent with the timely | <t indent="0" pn="section-7-2">As described in <xref target="RFC8555" sect | |||
| publication according to the durations of the certificate lifecycle.</t> | ion="7.4" sectionFormat="of" format="default" derivedLink="https://rfc-editor.or | |||
| g/rfc/rfc8555#section-7.4" derivedContent="RFC8555"/>, when the certificate is r | ||||
| <t>The following is an example of the use of "x5u" in the response when the cert | eady for making a "finalize" request, the server will return a 200 (OK) with the | |||
| ificate status is "valid".</t> | updated order object. In this response, an ACME server can add a newly defined | |||
| field called "x5u" that can pass this URL to the ACME client for usage in gener | ||||
| <figure><artwork><![CDATA[ | ated PASSporTs as a publicly available URL for PASSporT validation.</t> | |||
| <dl indent="3" newline="false" spacing="normal" pn="section-7-3"> | ||||
| <dt pn="section-7-3.1">x5u (optional, string):</dt> | ||||
| <dd pn="section-7-3.2"> | ||||
| <t indent="0" pn="section-7-3.2.1">a URL that can be used to reference | ||||
| the certificate in the "x5u" parameter of a JWS object <xref target="RFC7515" f | ||||
| ormat="default" sectionFormat="of" derivedContent="RFC7515"/></t> | ||||
| </dd> | ||||
| </dl> | ||||
| <t indent="0" pn="section-7-4">The publishing of the certificates at the n | ||||
| ew "x5u" URL should follow the GET request requirement as mentioned above and sh | ||||
| ould be consistent with the timely publication according to the durations of the | ||||
| certificate life cycle.</t> | ||||
| <t indent="0" pn="section-7-5">The following is an example of the use of " | ||||
| x5u" in the response when the certificate status is "valid".</t> | ||||
| <sourcecode type="" markers="false" pn="section-7-6"> | ||||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Content-Type: application/json | Content-Type: application/json | |||
| Replay-Nonce: CGf81JWBsq8QyIgPCi9Q9X | Replay-Nonce: CGf81JWBsq8QyIgPCi9Q9X | |||
| Link: <https://example.com/acme/directory>;rel="index" | Link: <https://example.com/acme/directory>;rel="index" | |||
| Location: https://example.com/acme/order/TOlocE8rfgo | Location: https://example.com/acme/order/TOlocE8rfgo | |||
| { | { | |||
| "status": "valid", | "status": "valid", | |||
| "expires": "2016-01-20T14:09:07.99Z", | "expires": "2016-01-20T14:09:07.99Z", | |||
| "notBefore": "2016-01-01T00:00:00Z", | "notBefore": "2016-01-01T00:00:00Z", | |||
| "notAfter": "2016-01-08T00:00:00Z", | "notAfter": "2016-01-08T00:00:00Z", | |||
| "identifiers": [ | "identifiers": [ | |||
| skipping to change at line 395 ¶ | skipping to change at line 461 ¶ | |||
| ], | ], | |||
| "authorizations": ["https://sti-ca.com/acme/authz/1234"], | "authorizations": ["https://sti-ca.com/acme/authz/1234"], | |||
| "finalize": "https://example.com/acme/order/TOlocE8rfgo/finalize", | "finalize": "https://example.com/acme/order/TOlocE8rfgo/finalize", | |||
| "certificate": "https://example.com/acme/cert/mAt3xBGaobw", | "certificate": "https://example.com/acme/cert/mAt3xBGaobw", | |||
| "x5u": "https://example.com/cert-repo/giJI53km23.pem" | "x5u": "https://example.com/cert-repo/giJI53km23.pem" | |||
| } | } | |||
| ]]></artwork></figure> | </sourcecode> | |||
| </section> | ||||
| </section> | <section anchor="usage-considerations" numbered="true" removeInRFC="false" t | |||
| <section anchor="usage-considerations"><name>Usage Considerations</name> | oc="include" pn="section-8"> | |||
| <name slugifiedName="name-usage-considerations">Usage Considerations</name | ||||
| <section anchor="large-number-of-non-contiguous-tnauthlist-values"><name>Large n | > | |||
| umber of Non-contiguous TNAuthList values</name> | <section anchor="large-number-of-non-contiguous-tnauthlist-values" numbere | |||
| d="true" removeInRFC="false" toc="include" pn="section-8.1"> | ||||
| <t>There are many scenarios and reasons to have various combinations of SPCs, TN | <name slugifiedName="name-large-number-of-noncontiguo">Large Number of N | |||
| s, and TN Ranges. <xref target="RFC8226"/> has provided a somewhat unbounded se | oncontiguous TNAuthList Values</name> | |||
| t of combinations. It's possible that a complex non-contiguous set of telephone | <t indent="0" pn="section-8.1-1">There are many scenarios and reasons to | |||
| numbers are being managed by a CSP. Best practice may be simply to split a set | have various combinations of SPCs, TNs, and TN ranges. <xref target="RFC8226" | |||
| of non-contiguous numbers under management into multiple STI certificates to re | format="default" sectionFormat="of" derivedContent="RFC8226"/> has provided a so | |||
| present the various contiguous parts of the greater non-contiguous set of TNs, p | mewhat unbounded set of combinations. It's possible that a complex noncontiguou | |||
| articularly if length of the set of values in identifier object grows to be too | s set of telephone numbers are being managed by a CSP. Best practice may be sim | |||
| large.</t> | ply to split a set of noncontiguous numbers under management into multiple STI c | |||
| ertificates to represent the various contiguous parts of the greater noncontiguo | ||||
| </section> | us set of TNs, particularly if the length of the set of values in an identifier | |||
| </section> | object grows to be too large.</t> | |||
| <section anchor="security_considerations"><name>Security Considerations</name> | </section> | |||
| </section> | ||||
| <t>The token represented by this document has the credentials to represent the s | <section anchor="iana-considerations" numbered="true" removeInRFC="false" to | |||
| cope of a telephone number, a block of telephone numbers, or an entire set of te | c="include" pn="section-9"> | |||
| lephone numbers represented by an SPC. The creation, transport, and any storage | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
| of this token MUST follow the strictest of security best practices beyond the re | <t indent="0" pn="section-9-1">Per this document, IANA has added a new ide | |||
| commendations of the use of encrypted transport protocols in this document to pr | ntifier object type to the "ACME Identifier Types" registry defined in <xref tar | |||
| otect it from getting in the hands of bad actors with illegitimate intent to imp | get="RFC8555" section="9.7.7" sectionFormat="of" format="default" derivedLink="h | |||
| ersonate telephone numbers.</t> | ttps://rfc-editor.org/rfc/rfc8555#section-9.7.7" derivedContent="RFC8555"/>.</t> | |||
| <table align="center" pn="table-1"> | ||||
| <t>This document inherits the security properties of <xref target="I-D.ietf-acme | <thead> | |||
| -authority-token"/>. Implementations should follow the best practices identified | <tr> | |||
| in <xref target="RFC8725"/>.</t> | <th align="left" colspan="1" rowspan="1">Label</th> | |||
| <th align="left" colspan="1" rowspan="1">Reference</th> | ||||
| <t>This document only specifies SHA256 for the fingerprint hash. However, the sy | </tr> | |||
| ntax of the fingerprint object would permit other algorithms if, due to concerns | </thead> | |||
| about algorithmic agility, a more robust algorithm were required at a future ti | <tbody> | |||
| me. Future specifications can define new algorithms for the fingerprint object | <tr> | |||
| as needed.</t> | <td align="left" colspan="1" rowspan="1">TNAuthList</td> | |||
| <td align="left" colspan="1" rowspan="1">RFC 9448</td> | ||||
| </section> | </tr> | |||
| <section anchor="iana-considerations"><name>IANA Considerations</name> | </tbody> | |||
| </table> | ||||
| <t>This document requests the addition of a new identifier object type to the "A | </section> | |||
| CME Identifier Types" registry defined in Section 9.7.7 of <xref target="RFC8555 | <section anchor="security_considerations" numbered="true" removeInRFC="false | |||
| "/>.</t> | " toc="include" pn="section-10"> | |||
| <name slugifiedName="name-security-considerations">Security Considerations | ||||
| <figure><artwork><![CDATA[ | </name> | |||
| +------------+-----------+ | <t indent="0" pn="section-10-1">The token represented by this document has | |||
| | Label | Reference | | the credentials to represent the scope of a telephone number, a block of teleph | |||
| +------------+-----------+ | one numbers, or an entire set of telephone numbers represented by an SPC. The cr | |||
| | TNAuthList | RFCThis | | eation, transport, and any storage of this token <bcp14>MUST</bcp14> follow the | |||
| +------------+-----------+ | strictest of security best practices beyond the recommendations of the use of en | |||
| ]]></artwork></figure> | crypted transport protocols in this document to protect it from getting in the h | |||
| ands of bad actors with illegitimate intent to impersonate telephone numbers.</t | ||||
| </section> | > | |||
| <section anchor="acknowledgements"><name>Acknowledgements</name> | <t indent="0" pn="section-10-2">This document inherits the security proper | |||
| ties of <xref target="RFC9447" format="default" sectionFormat="of" derivedConten | ||||
| <t>We would like to thank Richard Barnes and Russ Housley for valuable contribut | t="RFC9447"/>. Implementations should follow the best practices identified in <x | |||
| ions to this document.</t> | ref target="RFC8725" format="default" sectionFormat="of" derivedContent="RFC8725 | |||
| "/>.</t> | ||||
| </section> | <t indent="0" pn="section-10-3">This document only specifies SHA256 for th | |||
| e fingerprint hash. However, the syntax of the fingerprint object would permit o | ||||
| ther algorithms if, due to concerns about algorithmic agility, a more robust alg | ||||
| orithm were required at a future time. Future specifications can define new alg | ||||
| orithms for the fingerprint object as needed.</t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references pn="section-11"> | ||||
| <references title='Normative References'> | <name slugifiedName="name-references">References</name> | |||
| <references pn="section-11.1"> | ||||
| <reference anchor='I-D.ietf-acme-authority-token'> | <name slugifiedName="name-normative-references">Normative References</na | |||
| <front> | me> | |||
| <title>ACME Challenges Using an Authority Token</title> | <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | |||
| <author fullname='Jon Peterson' initials='J.' surname='Peterson'> | 119" quoteTitle="true" derivedAnchor="RFC2119"> | |||
| <organization>Neustar, Inc.</organization> | <front> | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
| le> | ||||
| <author fullname="S. Bradner" initials="S." surname="Bradner"/> | ||||
| <date month="March" year="1997"/> | ||||
| <abstract> | ||||
| <t indent="0">In many standards track documents several words are | ||||
| used to signify the requirements in the specification. These words are often cap | ||||
| italized. This document defines these words as they should be interpreted in IET | ||||
| F 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="RFC4648" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 648" quoteTitle="true" derivedAnchor="RFC4648"> | ||||
| <front> | ||||
| <title>The Base16, Base32, and Base64 Data Encodings</title> | ||||
| <author fullname="S. Josefsson" initials="S." surname="Josefsson"/> | ||||
| <date month="October" year="2006"/> | ||||
| <abstract> | ||||
| <t indent="0">This document describes the commonly used base 64, b | ||||
| ase 32, and base 16 encoding schemes. It also discusses the use of line-feeds in | ||||
| encoded data, use of padding in encoded data, use of non-alphabet characters in | ||||
| encoded data, use of different encoding alphabets, and canonical encodings. [ST | ||||
| ANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4648"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4648"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7515" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 515" quoteTitle="true" derivedAnchor="RFC7515"> | ||||
| <front> | ||||
| <title>JSON Web Signature (JWS)</title> | ||||
| <author fullname="M. Jones" initials="M." surname="Jones"/> | ||||
| <author fullname="J. Bradley" initials="J." surname="Bradley"/> | ||||
| <author fullname="N. Sakimura" initials="N." surname="Sakimura"/> | ||||
| <date month="May" year="2015"/> | ||||
| <abstract> | ||||
| <t indent="0">JSON Web Signature (JWS) represents content secured | ||||
| with digital signatures or Message Authentication Codes (MACs) using JSON-based | ||||
| data structures. Cryptographic algorithms and identifiers for use with this spec | ||||
| ification are described in the separate JSON Web Algorithms (JWA) specification | ||||
| and an IANA registry defined by that specification. Related encryption capabilit | ||||
| ies are described in the separate JSON Web Encryption (JWE) specification.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7515"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7515"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 519" quoteTitle="true" derivedAnchor="RFC7519"> | ||||
| <front> | ||||
| <title>JSON Web Token (JWT)</title> | ||||
| <author fullname="M. Jones" initials="M." surname="Jones"/> | ||||
| <author fullname="J. Bradley" initials="J." surname="Bradley"/> | ||||
| <author fullname="N. Sakimura" initials="N." surname="Sakimura"/> | ||||
| <date month="May" year="2015"/> | ||||
| <abstract> | ||||
| <t indent="0">JSON Web Token (JWT) is a compact, URL-safe means of | ||||
| representing claims to be transferred between two parties. The claims in a JWT | ||||
| are encoded as a JSON object that is used as the payload of a JSON Web Signature | ||||
| (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, e | ||||
| nabling the claims to be digitally signed or integrity protected with a Message | ||||
| Authentication Code (MAC) and/or encrypted.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7519"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7519"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author fullname="B. Leiba" initials="B." surname="Leiba"/> | ||||
| <date month="May" year="2017"/> | ||||
| <abstract> | ||||
| <t indent="0">RFC 2119 specifies common key words that may be used | ||||
| in protocol specifications. This document aims to reduce the ambiguity by clari | ||||
| fying that only UPPERCASE usage of the key words have the defined special meanin | ||||
| gs.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8226" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 226" quoteTitle="true" derivedAnchor="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 indent="0">In order to prevent the impersonation of telephone n | ||||
| umbers on the Internet, some kind of credential system needs to exist that crypt | ||||
| ographically asserts authority over telephone numbers. This document describes t | ||||
| he use of certificates in establishing authority over telephone numbers, as a co | ||||
| mponent of a broader architecture for managing telephone numbers as identities i | ||||
| n protocols like SIP.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8226"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8226"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8555" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 555" quoteTitle="true" derivedAnchor="RFC8555"> | ||||
| <front> | ||||
| <title>Automatic Certificate Management Environment (ACME)</title> | ||||
| <author fullname="R. Barnes" initials="R." surname="Barnes"/> | ||||
| <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman | ||||
| -Andrews"/> | ||||
| <author fullname="D. McCarney" initials="D." surname="McCarney"/> | ||||
| <author fullname="J. Kasten" initials="J." surname="Kasten"/> | ||||
| <date month="March" year="2019"/> | ||||
| <abstract> | ||||
| <t indent="0">Public Key Infrastructure using X.509 (PKIX) certifi | ||||
| cates are used for a number of purposes, the most significant of which is the au | ||||
| thentication of domain names. Thus, certification authorities (CAs) in the Web P | ||||
| KI are trusted to verify that an applicant for a certificate legitimately repres | ||||
| ents the domain name(s) in the certificate. As of this writing, this verificatio | ||||
| n is done through a collection of ad hoc mechanisms. This document describes a p | ||||
| rotocol that a CA and an applicant can use to automate the process of verificati | ||||
| on and certificate issuance. The protocol also provides facilities for other cer | ||||
| tificate management functions, such as certificate revocation.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8555"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8555"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8725" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 725" quoteTitle="true" derivedAnchor="RFC8725"> | ||||
| <front> | ||||
| <title>JSON Web Token Best Current Practices</title> | ||||
| <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/> | ||||
| <author fullname="D. Hardt" initials="D." surname="Hardt"/> | ||||
| <author fullname="M. Jones" initials="M." surname="Jones"/> | ||||
| <date month="February" year="2020"/> | ||||
| <abstract> | ||||
| <t indent="0">JSON Web Tokens, also known as JWTs, are URL-safe JS | ||||
| ON-based security tokens that contain a set of claims that can be signed and/or | ||||
| encrypted. JWTs are being widely used and deployed as a simple security token fo | ||||
| rmat in numerous protocols and applications, both in the area of digital identit | ||||
| y and in other application areas. This Best Current Practices document updates R | ||||
| FC 7519 to provide actionable guidance leading to secure implementation and depl | ||||
| oyment of JWTs.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="225"/> | ||||
| <seriesInfo name="RFC" value="8725"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8725"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9060" target="https://www.rfc-editor.org/info/rfc9 | ||||
| 060" quoteTitle="true" derivedAnchor="RFC9060"> | ||||
| <front> | ||||
| <title>Secure Telephone Identity Revisited (STIR) Certificate Delega | ||||
| tion</title> | ||||
| <author fullname="J. Peterson" initials="J." surname="Peterson"/> | ||||
| <date month="September" year="2021"/> | ||||
| <abstract> | ||||
| <t indent="0">The Secure Telephone Identity Revisited (STIR) certi | ||||
| ficate profile provides a way to attest authority over telephone numbers and rel | ||||
| ated identifiers for the purpose of preventing telephone number spoofing. This s | ||||
| pecification details how that authority can be delegated from a parent certifica | ||||
| te to a subordinate certificate. This supports a number of use cases, including | ||||
| those where service providers grant credentials to enterprises or other customer | ||||
| s capable of signing calls with STIR.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9060"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9060"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9 | ||||
| 110" quoteTitle="true" derivedAnchor="RFC9110"> | ||||
| <front> | ||||
| <title>HTTP Semantics</title> | ||||
| <author fullname="R. Fielding" initials="R." role="editor" surname=" | ||||
| Fielding"/> | ||||
| <author fullname="M. Nottingham" initials="M." role="editor" surname | ||||
| ="Nottingham"/> | ||||
| <author fullname="J. Reschke" initials="J." role="editor" surname="R | ||||
| eschke"/> | ||||
| <date month="June" year="2022"/> | ||||
| <abstract> | ||||
| <t indent="0">The Hypertext Transfer Protocol (HTTP) is a stateles | ||||
| s application-level protocol for distributed, collaborative, hypertext informati | ||||
| on systems. This document describes the overall architecture of HTTP, establishe | ||||
| s common terminology, and defines aspects of the protocol that are shared by all | ||||
| versions. In this definition are core protocol elements, extensibility mechanis | ||||
| ms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t> | ||||
| <t indent="0">This document updates RFC 3864 and obsoletes RFCs 28 | ||||
| 18, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="97"/> | ||||
| <seriesInfo name="RFC" value="9110"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9110"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9447" target="https://www.rfc-editor.org/info/rfc9 | ||||
| 447" quoteTitle="true" derivedAnchor="RFC9447"> | ||||
| <front> | ||||
| <title>Automated Certificate Management Environment (ACME) Challenge | ||||
| s Using an Authority Token</title> | ||||
| <author initials="J" surname="Peterson" fullname="Jon Peterson"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M" surname="Barnes" fullname="Mary Barnes"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D" surname="Hancock" fullname="David Hancock"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="C" surname="Wendt" fullname="Chris Wendt"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2023" month="September"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9447"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9447"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references pn="section-11.2"> | ||||
| <name slugifiedName="name-informative-references">Informative References | ||||
| </name> | ||||
| <reference anchor="ATIS-1000080" target="https://access.atis.org/apps/gr | ||||
| oup_public/download.php/69428/ATIS-1000080.v005.pdf" quoteTitle="true" derivedAn | ||||
| chor="ATIS-1000080"> | ||||
| <front> | ||||
| <title>Signature-based Handling of Asserted information using toKENs | ||||
| (SHAKEN): Governance Model and Certificate Management</title> | ||||
| <author> | ||||
| <organization showOnFrontPage="true">ATIS</organization> | ||||
| </author> | ||||
| <date year="2022" month="December"/> | ||||
| </front> | ||||
| <refcontent>ATIS-1000080.v005</refcontent> | ||||
| </reference> | ||||
| <reference anchor="RFC7340" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 340" quoteTitle="true" derivedAnchor="RFC7340"> | ||||
| <front> | ||||
| <title>Secure Telephone Identity Problem Statement and Requirements< | ||||
| /title> | ||||
| <author fullname="J. Peterson" initials="J." surname="Peterson"/> | ||||
| <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne | ||||
| "/> | ||||
| <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/ | ||||
| > | ||||
| <date month="September" year="2014"/> | ||||
| <abstract> | ||||
| <t indent="0">Over the past decade, Voice over IP (VoIP) systems b | ||||
| ased on SIP have replaced many traditional telephony deployments. Interworking V | ||||
| oIP systems with the traditional telephone network has reduced the overall level | ||||
| of calling party number and Caller ID assurances by granting attackers new and | ||||
| inexpensive tools to impersonate or obscure calling party numbers when orchestra | ||||
| ting bulk commercial calling schemes, hacking voicemail boxes, or even circumven | ||||
| ting multi-factor authentication systems trusted by banks. Despite previous atte | ||||
| mpts to provide a secure assurance of the origin of SIP communications, we still | ||||
| lack effective standards for identifying the calling party in a VoIP session. T | ||||
| his document examines the reasons why providing identity for telephone numbers o | ||||
| n the Internet has proven so difficult and shows how changes in the last decade | ||||
| may provide us with new strategies for attaching a secure identity to SIP sessio | ||||
| ns. It also gives high-level requirements for a solution in this space.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7340"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7340"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8224" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 224" quoteTitle="true" derivedAnchor="RFC8224"> | ||||
| <front> | ||||
| <title>Authenticated Identity Management in the Session Initiation P | ||||
| rotocol (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 indent="0">The baseline security mechanisms in the Session Init | ||||
| iation Protocol (SIP) are inadequate for cryptographically assuring the identity | ||||
| of the end users that originate SIP requests, especially in an interdomain cont | ||||
| ext. This document defines a mechanism for securely identifying originators of S | ||||
| IP 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 credentia | ||||
| ls of the signer.</t> | ||||
| <t indent="0">This document obsoletes RFC 4474.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8224"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8224"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8225" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 225" quoteTitle="true" derivedAnchor="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 indent="0">This document defines a method for creating and vali | ||||
| dating a token that cryptographically verifies an originating identity or, more | ||||
| generally, a URI or telephone number representing the originator of personal com | ||||
| munications. The Personal Assertion Token, PASSporT, is cryptographically signed | ||||
| to protect the integrity of the identity of the originator and to verify the as | ||||
| sertion of the identity information at the destination. The cryptographic signat | ||||
| ure 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 insecu | ||||
| re channel. PASSporT is particularly useful for many personal-communications app | ||||
| lications over IP networks and other multi-hop interconnection scenarios where t | ||||
| he originating and destination parties may not have a direct trusted relationshi | ||||
| p.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8225"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8225"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="acknowledgements" numbered="false" removeInRFC="false" toc= | ||||
| "include" pn="section-appendix.a"> | ||||
| <name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
| <t indent="0" pn="section-appendix.a-1">We would like to thank <contact fu | ||||
| llname="Richard Barnes"/> and <contact fullname="Russ Housley"/> for valuable co | ||||
| ntributions to this document.</t> | ||||
| </section> | ||||
| <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
| ="include" pn="section-appendix.b"> | ||||
| <name slugifiedName="name-authors-addresses">Authors' Addresses</name> | ||||
| <author initials="C." surname="Wendt" fullname="Chris Wendt"> | ||||
| <organization showOnFrontPage="true">Somos Inc.</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>chris-ietf@chriswendt.net</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <author fullname='Mary Barnes' initials='M.' surname='Barnes'> | <author initials="D." surname="Hancock" fullname="David Hancock"> | |||
| <organization>Neustar, Inc.</organization> | <organization showOnFrontPage="true">Somos Inc.</organization> | |||
| <address> | ||||
| <postal> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>davidhancock.ietf@gmail.com</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <author fullname='David Hancock' initials='D.' surname='Hancock'> | <author initials="M." surname="Barnes" fullname="Mary Barnes"> | |||
| <organization>Comcast</organization> | <organization showOnFrontPage="true">Neustar Inc.</organization> | |||
| <address> | ||||
| <postal> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>mary.ietf.barnes@gmail.com</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <author fullname='Chris Wendt' initials='C.' surname='Wendt'> | <author initials="J." surname="Peterson" fullname="Jon Peterson"> | |||
| <organization>Somos</organization> | <organization showOnFrontPage="true">Neustar Inc.</organization> | |||
| <address> | ||||
| <postal> | ||||
| <extaddr>Suite 570</extaddr> | ||||
| <street>1800 Sutter St</street> | ||||
| <city>Concord</city> | ||||
| <region>CA</region> | ||||
| <code>94520</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>jon.peterson@neustar.biz</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <date day='24' month='October' year='2022'/> | </section> | |||
| <abstract> | ||||
| <t> Some proposed extensions to the Automated Certificate Management | ||||
| Environment (ACME) rely on proving eligibility for certificates | ||||
| through consulting an external authority that issues a token | ||||
| according to a particular policy. This document specifies a generic | ||||
| Authority Token challenge for ACME which supports subtype claims for | ||||
| different identifiers or namespaces that can be defined separately | ||||
| for specific applications. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name='Internet-Draft' value='draft-ietf-acme-authority-token-09'/ | ||||
| > | ||||
| <format target='https://www.ietf.org/archive/id/draft-ietf-acme-authority-tok | ||||
| en-09.txt' type='TXT'/> | ||||
| </reference> | ||||
| <reference anchor='RFC4648' target='https://www.rfc-editor.org/info/rfc4648'> | ||||
| <front> | ||||
| <title>The Base16, Base32, and Base64 Data Encodings</title> | ||||
| <author fullname='S. Josefsson' initials='S.' surname='Josefsson'><organization/ | ||||
| ></author> | ||||
| <date month='October' year='2006'/> | ||||
| <abstract><t>This document describes the commonly used base 64, base 32, and bas | ||||
| e 16 encoding schemes. It also discusses the use of line-feeds in encoded data, | ||||
| use of padding in encoded data, use of non-alphabet characters in encoded data, | ||||
| use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK | ||||
| ]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='4648'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC4648'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7231' target='https://www.rfc-editor.org/info/rfc7231'> | ||||
| <front> | ||||
| <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title> | ||||
| <author fullname='R. Fielding' initials='R.' role='editor' surname='Fielding'><o | ||||
| rganization/></author> | ||||
| <author fullname='J. Reschke' initials='J.' role='editor' surname='Reschke'><org | ||||
| anization/></author> | ||||
| <date month='June' year='2014'/> | ||||
| <abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application | ||||
| - level protocol for distributed, collaborative, hypertext information systems. | ||||
| This document defines the semantics of HTTP/1.1 messages, as expressed by reque | ||||
| st methods, request header fields, response status codes, and response header fi | ||||
| elds, along with the payload of messages (metadata and body content) and mechani | ||||
| sms for content negotiation.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7231'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7231'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7515' target='https://www.rfc-editor.org/info/rfc7515'> | ||||
| <front> | ||||
| <title>JSON Web Signature (JWS)</title> | ||||
| <author fullname='M. Jones' initials='M.' surname='Jones'><organization/></autho | ||||
| r> | ||||
| <author fullname='J. Bradley' initials='J.' surname='Bradley'><organization/></a | ||||
| uthor> | ||||
| <author fullname='N. Sakimura' initials='N.' surname='Sakimura'><organization/>< | ||||
| /author> | ||||
| <date month='May' year='2015'/> | ||||
| <abstract><t>JSON Web Signature (JWS) represents content secured with digital si | ||||
| gnatures or Message Authentication Codes (MACs) using JSON-based data structures | ||||
| . Cryptographic algorithms and identifiers for use with this specification are | ||||
| described in the separate JSON Web Algorithms (JWA) specification and an IANA re | ||||
| gistry defined by that specification. Related encryption capabilities are descr | ||||
| ibed in the separate JSON Web Encryption (JWE) specification.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7515'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7515'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7519' target='https://www.rfc-editor.org/info/rfc7519'> | ||||
| <front> | ||||
| <title>JSON Web Token (JWT)</title> | ||||
| <author fullname='M. Jones' initials='M.' surname='Jones'><organization/></autho | ||||
| r> | ||||
| <author fullname='J. Bradley' initials='J.' surname='Bradley'><organization/></a | ||||
| uthor> | ||||
| <author fullname='N. Sakimura' initials='N.' surname='Sakimura'><organization/>< | ||||
| /author> | ||||
| <date month='May' year='2015'/> | ||||
| <abstract><t>JSON Web Token (JWT) is a compact, URL-safe means of representing c | ||||
| laims to be transferred between two parties. The claims in a JWT are encoded as | ||||
| a JSON object that is used as the payload of a JSON Web Signature (JWS) structu | ||||
| re or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the cl | ||||
| aims to be digitally signed or integrity protected with a Message Authentication | ||||
| Code (MAC) and/or encrypted.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7519'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7519'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8226' target='https://www.rfc-editor.org/info/rfc8226'> | ||||
| <front> | ||||
| <title>Secure Telephone Identity Credentials: Certificates</title> | ||||
| <author fullname='J. Peterson' initials='J.' surname='Peterson'><organization/>< | ||||
| /author> | ||||
| <author fullname='S. Turner' initials='S.' surname='Turner'><organization/></aut | ||||
| hor> | ||||
| <date month='February' year='2018'/> | ||||
| <abstract><t>In order to prevent the impersonation of telephone numbers on the I | ||||
| nternet, some kind of credential system needs to exist that cryptographically as | ||||
| serts authority over telephone numbers. This document describes the use of cert | ||||
| ificates in establishing authority over telephone numbers, as a component of a b | ||||
| roader architecture for managing telephone numbers as identities in protocols li | ||||
| ke SIP.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8226'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8226'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8555' target='https://www.rfc-editor.org/info/rfc8555'> | ||||
| <front> | ||||
| <title>Automatic Certificate Management Environment (ACME)</title> | ||||
| <author fullname='R. Barnes' initials='R.' surname='Barnes'><organization/></aut | ||||
| hor> | ||||
| <author fullname='J. Hoffman-Andrews' initials='J.' surname='Hoffman-Andrews'><o | ||||
| rganization/></author> | ||||
| <author fullname='D. McCarney' initials='D.' surname='McCarney'><organization/>< | ||||
| /author> | ||||
| <author fullname='J. Kasten' initials='J.' surname='Kasten'><organization/></aut | ||||
| hor> | ||||
| <date month='March' year='2019'/> | ||||
| <abstract><t>Public Key Infrastructure using X.509 (PKIX) certificates are used | ||||
| for a number of purposes, the most significant of which is the authentication of | ||||
| domain names. Thus, certification authorities (CAs) in the Web PKI are trusted | ||||
| to verify that an applicant for a certificate legitimately represents the domai | ||||
| n name(s) in the certificate. As of this writing, this verification is done thr | ||||
| ough a collection of ad hoc mechanisms. This document describes a protocol that | ||||
| a CA and an applicant can use to automate the process of verification and certi | ||||
| ficate issuance. The protocol also provides facilities for other certificate ma | ||||
| nagement functions, such as certificate revocation.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8555'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8555'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8725' target='https://www.rfc-editor.org/info/rfc8725'> | ||||
| <front> | ||||
| <title>JSON Web Token Best Current Practices</title> | ||||
| <author fullname='Y. Sheffer' initials='Y.' surname='Sheffer'><organization/></a | ||||
| uthor> | ||||
| <author fullname='D. Hardt' initials='D.' surname='Hardt'><organization/></autho | ||||
| r> | ||||
| <author fullname='M. Jones' initials='M.' surname='Jones'><organization/></autho | ||||
| r> | ||||
| <date month='February' year='2020'/> | ||||
| <abstract><t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based securi | ||||
| ty tokens that contain a set of claims that can be signed and/or encrypted. JWTs | ||||
| are being widely used and deployed as a simple security token format in numerou | ||||
| s protocols and applications, both in the area of digital identity and in other | ||||
| application areas. This Best Current Practices document updates RFC 7519 to pro | ||||
| vide actionable guidance leading to secure implementation and deployment of JWTs | ||||
| .</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='BCP' value='225'/> | ||||
| <seriesInfo name='RFC' value='8725'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8725'/> | ||||
| </reference> | ||||
| <reference anchor='RFC9060' target='https://www.rfc-editor.org/info/rfc9060'> | ||||
| <front> | ||||
| <title>Secure Telephone Identity Revisited (STIR) Certificate Delegation</title> | ||||
| <author fullname='J. Peterson' initials='J.' surname='Peterson'><organization/>< | ||||
| /author> | ||||
| <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 identifier | ||||
| s for the purpose of preventing telephone number spoofing. This specification de | ||||
| tails how that authority can be delegated from a parent certificate to a subordi | ||||
| nate certificate. This supports a number of use cases, including those where ser | ||||
| vice providers grant credentials to enterprises or other customers capable of si | ||||
| gning calls with STIR.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='9060'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC9060'/> | ||||
| </reference> | ||||
| <reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</title> | ||||
| <author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></a | ||||
| uthor> | ||||
| <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 Comm | ||||
| unity, 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' target='https://www.rfc-editor.org/info/rfc8174'> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
| <author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></autho | ||||
| r> | ||||
| <date month='May' year='2017'/> | ||||
| <abstract><t>RFC 2119 specifies common key words that may be used in protocol s | ||||
| pecifications. This document aims to reduce the ambiguity by clarifying that on | ||||
| ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | ||||
| tract> | ||||
| </front> | ||||
| <seriesInfo name='BCP' value='14'/> | ||||
| <seriesInfo name='RFC' value='8174'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8174'/> | ||||
| </reference> | ||||
| </references> | ||||
| <references title='Informative References'> | ||||
| <reference anchor="ATIS-1000080" > | ||||
| <front> | ||||
| <title>Signature-based Handling of Asserted information using toKENs (SHAKEN | ||||
| ) Governance Model and Certificate Management <https://access.atis.org/apps/g | ||||
| roup_public/download.php/32237/ATIS-1000080.pdf></title> | ||||
| <author > | ||||
| <organization>ATIS/SIP Forum NNI Task Group</organization> | ||||
| </author> | ||||
| <date year="2017" month="July"/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor='RFC7340' target='https://www.rfc-editor.org/info/rfc7340'> | ||||
| <front> | ||||
| <title>Secure Telephone Identity Problem Statement and Requirements</title> | ||||
| <author fullname='J. Peterson' initials='J.' surname='Peterson'><organization/>< | ||||
| /author> | ||||
| <author fullname='H. Schulzrinne' initials='H.' surname='Schulzrinne'><organizat | ||||
| ion/></author> | ||||
| <author fullname='H. Tschofenig' initials='H.' surname='Tschofenig'><organizatio | ||||
| n/></author> | ||||
| <date month='September' year='2014'/> | ||||
| <abstract><t>Over the past decade, Voice over IP (VoIP) systems based on SIP hav | ||||
| e replaced many traditional telephony deployments. Interworking VoIP systems wi | ||||
| th the traditional telephone network has reduced the overall level of calling pa | ||||
| rty number and Caller ID assurances by granting attackers new and inexpensive to | ||||
| ols to impersonate or obscure calling party numbers when orchestrating bulk comm | ||||
| ercial calling schemes, hacking voicemail boxes, or even circumventing multi-fac | ||||
| tor authentication systems trusted by banks. Despite previous attempts to provi | ||||
| de a secure assurance of the origin of SIP communications, we still lack effecti | ||||
| ve standards for identifying the calling party in a VoIP session. This document | ||||
| examines the reasons why providing identity for telephone numbers on the Intern | ||||
| et has proven so difficult and shows how changes in the last decade may provide | ||||
| us with new strategies for attaching a secure identity to SIP sessions. It also | ||||
| gives high-level requirements for a solution in this space.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7340'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7340'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8224' target='https://www.rfc-editor.org/info/rfc8224'> | ||||
| <front> | ||||
| <title>Authenticated Identity Management in the Session Initiation Protocol (SIP | ||||
| )</title> | ||||
| <author fullname='J. Peterson' initials='J.' surname='Peterson'><organization/>< | ||||
| /author> | ||||
| <author fullname='C. Jennings' initials='C.' surname='Jennings'><organization/>< | ||||
| /author> | ||||
| <author fullname='E. Rescorla' initials='E.' surname='Rescorla'><organization/>< | ||||
| /author> | ||||
| <author fullname='C. Wendt' initials='C.' surname='Wendt'><organization/></autho | ||||
| r> | ||||
| <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 use | ||||
| rs that originate SIP requests, especially in an interdomain context. This docu | ||||
| ment 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 val | ||||
| idating the identity and for conveying a reference to the credentials of the sig | ||||
| ner.</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' target='https://www.rfc-editor.org/info/rfc8225'> | ||||
| <front> | ||||
| <title>PASSporT: Personal Assertion Token</title> | ||||
| <author fullname='C. Wendt' initials='C.' surname='Wendt'><organization/></autho | ||||
| r> | ||||
| <author fullname='J. Peterson' initials='J.' surname='Peterson'><organization/>< | ||||
| /author> | ||||
| <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 UR | ||||
| I or telephone number representing the originator of personal communications. T | ||||
| he Personal Assertion Token, PASSporT, is cryptographically signed to protect th | ||||
| e integrity of the identity of the originator and to verify the assertion of the | ||||
| identity information at the destination. The cryptographic signature is define | ||||
| d 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 ov | ||||
| er IP networks and other multi-hop interconnection scenarios where the originati | ||||
| ng and destination parties may not have a direct trusted relationship.</t></abst | ||||
| ract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8225'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8225'/> | ||||
| </reference> | ||||
| </references> | ||||
| </back> | </back> | |||
| <!-- ##markdown-source: | ||||
| H4sIAMF8jmMAA7U823bbyJHv/IpezkOshKRISrIk7G5OKEq2ZVsXi7Q9Mzk5 | ||||
| c5pAk2wLBBg0IJp2nJMP2f25fMlWVXcDjQslTzKrM4lBoC/V1XWv6u52u61U | ||||
| pqHw2PR6lKXLt1KlbJ3EcxkKFs/ZaHx1wfBDnMh0y6bxvYhafDZLxIOnPzr9 | ||||
| 8ME0CWI/4isYNkj4PO1Kkc673F+JLrdjdVNs2E0jfBNC9+5g2PJ5KhZxsvWY | ||||
| SoNWS64Tj6VJptJhv3/aH7Z4Ijh8E37rXmw3cRJ4DEctfk2ml3etlkp5FPzC | ||||
| wzgCCLZCtdbSY39OY7/DVJykiZgreNqu8OEvrZaGyWuxbovBn4yUx8Y99lFE | ||||
| QUpv9FLGy0Qq522cLGDCeBUrdhn5PXonVlyGHvOxKa36T/S4wU69SOiOfpxF | ||||
| KS7y/aQ053mPveKRH/v3zqzn/EEGpfc07zhe+Vyl7qQBtlzqhj2ae4Efen68 | ||||
| enTaqx4740kEaCpmveLJ1n1Lc14L2Ame1Fa7gsY0YW9GPZ6cl6Z93WO3IhWJ | ||||
| iqNWPu/rOCq9bZzXTPspjnpr0/ZPkW7Tm8kv2ETBJovUY4OTfp9NshRasUkK | ||||
| TzIV7Oi4j218oEJEJCAsCTpsPGLs9PBoqL85MLeiOFnxVD4IIBF22T3v7SRn | ||||
| bHD3Ynz4/PDEPB4PDwb28WhwVDyemseT4fC5fTw6sg1Ojof28bT/vO+1ZDR3 | ||||
| oRhNLyfdQR/+TvoeYdmw8UQuIp5miejOuBJEOEEoowUxs1IiSeFlPhhgO1P4 | ||||
| NY3fXFwr9mzyagQPe+xl/CCSCGhJsKs4ECGDYdgYesu5RCYFAon4QqxElLL/ | ||||
| WqbpWnn7+9z3hVI9GFf1YOP2+Xqt9hdJnK1/WWezUPr7QbyJwpgHvfVyvX8w | ||||
| HB4c77sr6a2D+R9pNTlLMkN9PJJfCGCP1r4/ubxlL+IkW7Hr60s25eqevcSZ | ||||
| qEcAEHps2B8cd/vHBuMHh/0C44fFI6C51e12GZ8BzXA/bbWmS2BzEGAZrS4Q | ||||
| cwk0zbgrFtOlQGkXAw7FTrxcRA8yiSN6foaycq8qSRlsA43F87EQz4aovsBP | ||||
| HwQebRNM6hfTKOr5IQYkTEUo1kuQdOw2iUEAADvAbjKVrdcg6thE+EAMeast | ||||
| uwwAHoTgGcjKPbv9AIMjyPWaAzbbokAtTdxraXStZBCEotX6AbgyTeIg8xHM | ||||
| VuvrV0PI374xiVhbCR9kklQrAtksFOd0RgUJkmMN1orQwKhAgCLtscuUiYjP | ||||
| QtyDYCVhKNgn5ANGC5GC1gubg2/mc+HTNz9GsEKGdMwSoeIsAeJkobwXsLcg | ||||
| QCKSOKAHDMYJ/4rmhrGQkBHnCxGJRMOL7aRSWQV21WNfvz4qFAAT4nMKGkBp | ||||
| jWmgha0C9OgJQkAT9AlwSt3W7ko+VokycppwUWCXzPP1sgfJ4We6lEnA1jzJ | ||||
| 6a6gw5nYxjAwTlWQMQ5eNHk2Hu31qmwhXY7I3xbUVKX0ggwsccEOPIk42v3S | ||||
| VOmSpyDe18InUMMQEBMEsGBlNg8tAGwNBLMCNQA7RJARXaIQgN3YLKW/ZJIY | ||||
| YS5Nv0gATEiilvKQ96gJD5We1ucR46BKgEOKbbEsDL8WEkQv/IR9IdZE8BSu | ||||
| E/QLUCFsUQDqyocVrdaktQjTHQuPYsCqCcyIa4oM0Sc0AajSVUyTc/8e0KFU | ||||
| 7EuSFxsJNpcMQ7EAIoJVxzgpbEKHPcTSJ03JltCJXiEJqQ2MAr96jE2XQonS | ||||
| MsG+gj2EYVGCgCZht6PJBOTIVGkEorz89s1CjPiYwQA8SaTeUL3/gH2wtWIY | ||||
| T2XQjCuG0toOcIjbysZ2qR2NvQgWbSnDhUijF3CzzpJ1DOAiiNijJA0NPViq | ||||
| MmoVtrpJvNHKm0Q8NoPVWwFfsWxdapZaSBE7A10D+qOFMIxtelsK0aLKGRbZ | ||||
| FGZV9Wk6MK4fZsT7HCR38gA7mIt1M/Wzye14D7bSEfzX2Womkg5D+QrGcUoj | ||||
| 518j+qrwa/Ulm4VgK6oacwPikVaVn8iZwQufydCSO3cGKhgBVp8rLr1QR3eB | ||||
| cZVu10I16jGwL4B8qSnQSkk+GPsHSAZVzVQkoADiMF5sEWTBjN2vWPvq/WTa | ||||
| 7uh/2fUNPd9dvHt/eXdxjs9g2Lx9mz/YFpNXN+/fnhdPRc/xzdXVxfW57gxv | ||||
| WeXV1eintmao9s3t9PLmevS2rcmihMiEqAKYRKJUWSeCdLzKkUvLPBvfssEh | ||||
| rPY/YLnDweAUCFf/OBkcH5LAEpGejPhE/wQUg5xYrwVYxjAIECFw4hoILkSl | ||||
| BjyxBGOLLUUiCHdEq5HYdLUwyqVfovegoMJW69LyEKnxDtoQtDnHJU4hLRlk | ||||
| iZHJIAs0O4RSawKtlPRsHGcuafx5Eq/g9XjUQzHkAJaIv2YoYZFNQEsrHLgA | ||||
| lsH/hYGe0TK9BsdpE88+AcTKiGUcFCx8UBHrGHVwGucCAH1Tx8BDGJFKkUhr | ||||
| w5E0h/1y5cjIlRFOjxz2AjBgENfq1kSxjtdZyLVFbmSBFTVGxdPIRlBUUNhD | ||||
| +7cqqAogOrZPBa9axNB6aa0oLwAabAyGFYqedjFeW+/OAw+zJrHoLJn4blYa | ||||
| DpQdaJ8GOWdhEUFPs7HGi21owKA9TgTwjCJxWRnDTgi4hg5gfgIWtbRHx+f5 | ||||
| YZaEoEL9ONCaDxQIQOlap/VmZa60VH+EcFFHdOugI7g5gFLtNVlOINukpIVe | ||||
| T26u2UcxKzwyd9BhPih6hagREQ8NIFl5ZvcN2GELplxAH0H1oMuCPMyNEecq | ||||
| rcl1b2Cpl8ahUXM8nV/cFfMkWUjG/QgMj898tdZ+jmVqTUJmqH/+438c6fHP | ||||
| f/yvYUpD9Vp7OXC4bL+JM2gZxvE9bsk8DsN4ozqt1t+dvxZrO+O3Pfbnr20k | ||||
| 1bbnUmanTVQJL1+cHERD3uv1+EM0PD6/Pmh/+0t5wNYGxSDhx/SyazG0ViEz | ||||
| nswkOBnJlqFiBwOrsjGAQt0REcbmGYjeOqN911Jvb2Bb9tH43S9GeDWd3u4P | ||||
| eoPWq1ilnt0PiqeMtfHQnQI+PJT+obHX9z+BcfSHT4p8MHBu22iECeQKQGAO | ||||
| /rOv5B+3ebiA1+2LyfDoebuj391LbNq2zrwzq4YPyD7dFw838zfL6/fP+5uF | ||||
| 7RjFkS+w69GPrwdvD8KL+6uXx+nd8/Wo3/fDkW0G0z86fr7+NrT/ttehRfAt | ||||
| hgualvCrSQQIJCePHPL0TIDwIeiH/eGg28f/pv2+R//9XCwxHc2Bz0rtTpx2 | ||||
| BcjKsju2ffX85x/Tl5+mP2/fR7fiDcKwuRgdTu/Ds2B5IA6PDhft1rcKsd5E | ||||
| QEO+kA+ak2ANMqjTV6ewQBVYiqh10N4SpDArfiLReqck/XKd3hv0Djsu75Lp | ||||
| Vti0KIULW1cr91UG9K0wzjPfardmRVIYObzuGbmmRiEiZ9tcqel1PbPWkw9b | ||||
| 3dmtava0rASLEqSgcm3t0nLZ+7u3VkC3Sw1U2wgso29c4aatLDDTsiRSta92 | ||||
| PBcXRnPP4mBLEhPDTuAy014Ee0ybHQptsNIuWx6n5qb1Y9yNjH0n1iHfdq+R | ||||
| 3zx29dMoe7hZ8/hSbjdT8UV+uT962LTexr6Jk+3kNFrS/mB4cGhkBbrJGbJR | ||||
| e61DD0T3bfF5LQF+Q/TDGtGDMGtgomEjE1VZqGm0Klc3M7WJCTp/j2oCDWSF | ||||
| AEBg4DCPCDto/4VQhKxN8qINZiKw4hfxqBQrcLuft69x+A8uZV8WRlTJ9qsI | ||||
| gqo1p8mqU6NHEA6JtYkTMQe9B9RSixzl5BzPkO/LTK8aWNdKiMJWrWu83Okw | ||||
| LbTOQ+CtSZG3JCZr5gxHJRa7UOhE3PC6XsS336UbseFXQ0KP6shdetLVlbtZ | ||||
| bJeyLCvM7N168im8mx0+vPsw/vThp9F2+/5jqelTSrNMp/in1ZBeXq492/mY | ||||
| Zf0UZZPzy8ns48uT1dXi4vgVsM677Yf3b5+fbL/MD37mm7XS41YpeJcs67Ob | ||||
| N0+JsbcyuveKrEFtTSpeiW4AksdP42T7x/9MRPjfbRkF4nP7t5BXBU1DQ2NM | ||||
| oJhpkDKPCBZU+Hq8gm2sWCkITIsv+PceNwoAKvbBvLIteOo73yg1mmtSlwLy | ||||
| lz2LtzgpKOZJeiFg99fJh1/OjrcX29FhZVLsfBnKZP75zZsfR+pVuvryZnh6 | ||||
| ++lkZOkApGFNnn1cishGzbXR4tr81gUvvIOSR49aGB3REvopNGCCCA3RZMc+ | ||||
| Mf66g2IdE+VlFFMbRPJ3xZ1RMoJJJdG8sQaQkV24AFfeLkHqYX9cj9+YwnEz | ||||
| Ec5AInDyErkDUlhGLj60B2685WLxNULBID9fYU4Uw8kULKJwLqwZrSrFCkeI | ||||
| ItROQFCkmzi5J+CQiXRGYISIMHuloarkD3o6klKKXYOm1/oEZsw1iU4sAubd | ||||
| fB8guhwTAtgJikWefuywWQYGJ8dMhV4LoCeGEZOiueqxyzlt+KPoMBgmlRnV | ||||
| 9ObV6CeK0hLqawPpCEgVGWhi5juXB5orGRYioI0EH9FmfZ4ILlvFaK3NfL9p | ||||
| mc3wlRaKG/DEYjEa8Ni+Mp09BlMhjHWWBch4LhegN8rpY9heasHWMUh5KZQh | ||||
| Unc2J/RW8S5gL9exSusx+hpSal0R97kUyY0SbbnDb5q/2Q3ipRCHTmUY97xk | ||||
| i7iWSE1uVp30GXr7Iun91s563QT5Fx31wup494s6uPoY/3XaP5omwf3V8Gp6 | ||||
| 7m90o4r+aFiVa3dwFcz3+9/hrxtRjEOfv9zeiU+rMZimxw+H16BTH2bD01fL | ||||
| T5/e3k4Wi4282OVMn/qzxdHrm8HL+dFPbz99+gJdJ+v793M/uOXyNPvw00/v | ||||
| yqa2pkQ7t3H6ZJFh4Dboa75UzOA8RmSSjZYGc01TVUM6Kr2kuI9Rd0+RtZPs | ||||
| 0Db15xTLm5BIehU/oVqFRYurJoGcVo3zPds94F450SojrKLyi3KHhkqwX5fL | ||||
| NRDvRsat5QK2FDywQWWguTUmPVCpN9kCtV7VHNK/D5emaiM1TRwWQVmBqseM | ||||
| L0jHkMuVIhMUs0OfUmmzQ2TY0SNqGLd3vMZtBtFpOlugrcqsIxvj6VViyWaG | ||||
| XlB4/fAD2LdKtfWQhv6LF7TDUWXiWsINi5OcCNFhD6Rcj2Em3iR8SQ0T8zhC | ||||
| ePuo/sPCCVGPUFdW6BQjtD8fZW3ULlrXv9JbazClh3TVV2iiHnmStWR/ln4C | ||||
| 08q8XRVYm/ymoBu2fhxig3Lc9RLKixed70HvYSdPZxgC0VZkKY90DuBM5aqS | ||||
| jTGlIgQr5QCwRW6zPoJr4yyZFSDBllZQvPiuFRw/tQLOskiC3VvK5dnc/mN6 | ||||
| P+GR4rlA/MEY8S6oxYtmGOSvlAea1AvAKZNjdEEuhZzYRkgVJsprtX6vvQ7t | ||||
| cNyLrfVETJZBbxwY2MB6QGMlAx9+55ZkOX1SKTtzE+6IoKd9Gaeaq5Sd7hWw | ||||
| kuQ3pn9AkJPAqmCzZxdocihPrjBtzmnlCcGmZKfLqlQKpagayc1l7UxfObD9 | ||||
| qhX5vLSYWRyHAkSdXo3JaApJgihN4NXG2tSFK+eCjXMjdWhRMhPamcUW1XIH | ||||
| cnDh1ZyH6nuGRcseKwmioD52R/t7VDkUdE3OuZQvpnVWVAAsu8Pk3IxsuIYE | ||||
| MDbWGEDvDvQLFqGgeiJYZ1Suw7MwNTgEGltghQOAp5FpetncbENlRyUVcQI7 | ||||
| XCTqnfwqWgBZWpLv7ekS7B0zG2Bq7ZaekenvUwkvQeLUE/UqgH4vmVTyok+V | ||||
| Bykn5eeVfIqnc3PAkW2v/frj1AahyAMo5+pQOXqPx4T2ceu/M5UGBsITo9mJ | ||||
| UbF5g+eH/dPTo2G/b96isvDaMnjePz05eH54OhzksINs9r5aOdMYyM95tinM | ||||
| ljcCavSI8vI37j56WNYD+GFHz72DC2/8whtdeCcH3njkHZ57gyPvrO8NT70X | ||||
| L7zBmXc8sHXF7PzAOxt5Z6fe4NQ7GXgvTryjvnd65p2/8A5H3vmhd3DqHQ+9 | ||||
| i6F3Bl/72PLgxLs4aH/77XwU0GkjHwnQ0q+W61Qg02CitFovctXztOzPixg6 | ||||
| jcrDOCsoRnzDA5mJ4N1dTKbzLCQ/l5En7KjineTNmHGa033DgfueDPb1bE4M | ||||
| XzvNjaTWejSSjz5z1cPLM+4UZOHKJAWNBJDGVjUqSpZErBM4Afpt28og05YG | ||||
| nNnyZD1OKXZZdQ0re/U7DOyFOue0lGurX7CaE6whvSRF6Vss9FvbQr9n48mt | ||||
| znImWpmA8bzSAp8q80jqlyWlE4HE7anUZhm7nSKa0vEwVObbQmeyDFxji6qL | ||||
| zLZQzIQIoRxRMQ5XqfBDp6vL7UolpnU9gGckHFodHPZOjFNms6oILBGW3Tbj | ||||
| GWofu8FEQ0muldeay0TV9Qp9NJ4EVukVKpcrt0wzdyi052Gox7oz5AOwkXJi | ||||
| Sp0iHWxqCpvB3MlBJJR3S8ynxWVFVv5bgvL8QIvKf1FMtlg9HlMNb5b2FSwR | ||||
| Q5Qoe2wenpvMkmUgwiOhWJO3sdWBTNF2xjMCq2xVKyGoamneaNxzoh3KKFBC | ||||
| JK+s2lUDVI8Ag9KzpEHDA2cJriQYZ8agnSGZACOD+ZcU3JcXtRMXYMh7wyOy | ||||
| PUmmaUd4LYWvy2jdKCxIGfFgGvNCKjmSs2zClHBstmOTq4IdlPkr03ytr0VK | ||||
| 6TuCfmVCMYHunCy06VuA3TGfDexGj0lgb9967SJJqHIe3mmBxibOqYFOLgQp | ||||
| TZF7zI8ILqrg0+INukoTFjNa5vLcyu8AHCyh4RWfpS3UyUFF0skNzMP+Aeui | ||||
| pJ3JIEB6uaFNPvz8mcjuCP61HZXupHeG0QlHngQlAUoSurJsfHrAJeQBomrI | ||||
| 405PIKnAWwpl0nm6evvJwHynMYxCoDoxFINcl2Rr9QTaxXNmAgWeYUkR8E2l | ||||
| Pq+mMQmpVBnfWOb+bHq95yTbKtk8fTBGKjdpV3LH81wIdJQJpla60JXPQqmW | ||||
| JsaQq1alz1uV1P5MpBthXLsqpqx0qcLTY9exizpHiFuEpSZbVGKRlTBiwNX3 | ||||
| s8Ycj06tAYaXOm3kdkWjVutChMYqQWM0xgVYGnemVJcAUU5LsDs61TGKmHlR | ||||
| w0LecuG7mXq2ahiutF6Dd4rX+WDBFfaywl8OXCb/qqpJMM0NEz9eN7h0rdaZ | ||||
| 8LnOB9ZEc+n0EYiEOHwQtfrkmrOrD6SYsz62E5BsB3qd4TkMHSVGGQZEjRGU | ||||
| 6bXqGONDl92BSiADsCijqSk10mFYQaEjw4R2iYdNNpF7lqwGbi68DHEVkRQT | ||||
| 38o/ULjNUZs99lKfYbNneZRFaTFfSUU+bQDLWkKc045KPwt5gkhjz0Rv0UOY | ||||
| ruMEVjxaAa37vKNjG/bIHgYOsF7aioGb8TUJiPqEhUkPUuTyfI/Mb56WQCLU | ||||
| L+xanUNYnUJCmJmQoM3qOtascBZg9iWQc6rPSjEURiRAddz7dBxD9Uo11Oao | ||||
| lRNQobpLpDEYO5Qrie9UmZrNmHo8G8GqHh6DkRGh0CgPbubDFHCZMRxqtIUP | ||||
| eocxYd9jYGTg1uH+6hjVdxVbkMykaJWJMlnMNdA3IsIsZMkfcO0aWG3I0+E8 | ||||
| ir5ZJBRSX3Mez+s2ASGhXKAtpqU9FtqJ2uEkOlW1jlNtBeC2s1UMAr6McZPj | ||||
| KMXmfL6mqn+KysEilAsMGh8VgMjZtGDwpsMyDgX5pbOahR/N2Cja7vpqEpRC | ||||
| 1wg3YTYUPIlKaprP4iytYDIHGbuQY4Qx82qJCaEDNlYnFeUD90EOSAVirjoz | ||||
| 4VA5wQiLXKxP1NgTJfVtCyrQWKUtL3RcoR60qHfin5hP/aAVytN2Tav1fh2X | ||||
| C7F31mXUS7HJ/gExhHispAswWKnsWVA8zqaVG2k6YqScbm115O/Zh0opUikD | ||||
| 5OY/KJy5EWHYxZkBCa57U6nxLpKXubOsMJarTW8TeYhMIq4Ik+RlUaL2iWZH | ||||
| I3RCiUEj9/IiVO2cuHRd85zorg+hz1nr0rBKxKooTQUh01VbaL1qBtrfAbQ7 | ||||
| P08SvnVTPf8/wH0oZn/EHc3jiE4oW1+bYD3SKvhOea+hfgLjd6rInlYQ0asQ | ||||
| k0s7DhqKvFChF3PloImvdEisgUTdkZ2szI4zchiAhybW2C672TuOEhXJoVLy | ||||
| yZg2l7UgXWHbmKPaoVNZ1bCCBA9PE7eY2A86gNr9I+OjU64QpD1EnagdP0yu | ||||
| BntPIaaaizDBMzADQfz6S1GOZLpkYC3Ce0sqRvA9NSOlgArc2FRX+YAkdRuP | ||||
| 8q8Gb2dcATGO9VEPic5YsQemyXhyR0xgVLRJTTmZ+ObcFDn8qLW1dCw5OMYH | ||||
| yMOaSlE8pFrZ5kpeStktG0p5bOUwpV9p4LauHQSlSVkkg96GOed4llFL+nyU | ||||
| XRVDlcOQbRM2wPAyKqH3yhaRdk0gcexaHcRp9eODrVbDkcJnrz9OOu5Bwr38 | ||||
| 9KtPG2cPDRqRYCK2hWQk02euH8ryz9o0jSURMG0hsGBZpWAxNqBrGOztAU5l | ||||
| p3ONgM5+ariwstIN3lB3F5pGKPLxERzrjdDpINA/Ki991VMg+wJfCms8u9WY | ||||
| eQawlG8tl2Jy9vIiD1R2iM05BS+7XHXxE1fFOFYRtJ0B27pcxqFZ92wRAZ4Z | ||||
| C1vX0jqXZhRuR6lA162yRJPCXK9TV3QgUcAChf2kC1a4VSzmjBSIEYGf9AU+ | ||||
| hUkcbm08Ags7bW7EhOnzc9NONrl82QsJBAeKQuPhlSI4BcFUBVaX/oc6NlLc | ||||
| lEKwNp1Gg0WjPgE48p6FzWG9Vq0Q5yaEY8Ib+e0WPXJcGo//HvcO87O6JmGd | ||||
| 5+kr2fkEmEsfezNymTN7Bqh8as/IKmPxY4zbhLif3bzZKzRttg7ITauQyaU5 | ||||
| J+fET8wx3Yk5CIgnAINAFzc692qYY7r6HLvhO5seMmkzGNY5N+diGZeVKb4g | ||||
| lJprcVwU6nC6pivtKD2AxMQrTGhE7J6zayFeAfEAB3tmKahjlPme1/LYqNhz | ||||
| t/LMiixtU1a3wd3vQszRybxCSrgSU2clCHC1dMpTSp6gITssFtVDI2TGYTEh | ||||
| WfzuSAjLqPoeCIyuURAW41YzvKqI7mLJPR7yfFWq/UCz/VjKBXg0KNXeWPXo | ||||
| eZAZZ7nJPgzlXPhbPxT5MXvrhEg3Y2W7mjtK9PryNKnNDjTRvNaDOJpVpuWT | ||||
| Qb86Z1A+4Th+OT8ZvP54pv568m57ubgdy9N3pz8+eX5ox9Gh7z4YOb0JY//i | ||||
| JJkv4tp5I73M+mmjwXM8bTTsTweHXv/U6x/3Tk93HJDUTZ86IGlaPXZ8qThv | ||||
| tPOY5OMHmHaejcxrQVQquz5vPG5mOv+KQ5EOXouzkeYMlaMlHz2+BO32V6P0 | ||||
| 4PPZSx7PNqY7lcM0d8MeXXDl4v2FfH15dHC/Gh701mJVPZRJWSeyzVDEjUuB | ||||
| KAoUv+XJIk8oAJsAjXbRh5GLLM5KJYzalSaWS/R9RSuyL30R8UTGypx+5ArZ | ||||
| FpUgxrEe8FOGierVTEYFT09ux6qjI8HYbXrN7jieNQM94IaV0fHIQ7icAsAb | ||||
| lJtZNAPXgZKVOubojk+VjuAtrmOr9CmIpiuuxWcwcUpL3HmzEC5xJlCu2EIJ | ||||
| itiOJ7cwwxlVWeA1FRhxNQd5lKSabrxlCiRAWlxbVJnSzoBLSNxb4sD7ALMl | ||||
| C1OJAqx6SV05faMNeovefGw0a3KxuaAT2MmOJRP6i+gbRv3n9moIe2mJbmnK | ||||
| CmTUcIHMIok3yuRX0jhmIVIURaUmNgBapjv29QcbGv2lHBo1SstmRCpnx9wb | ||||
| iJa2nMG9zKyKnSJiX9tdPIlHt0Q1br2+cyqia+gSsZtCqtF8Cjnrc/z2lqiO | ||||
| rj7BSwvNnXzkk8UJ8mNeoEILdhOhBD6YDD5dywbt8mDyzCU85daW5wHqsuo0 | ||||
| +g/MimS7JifBAuTcaFa74kl7Evpat1RHaheCblizOhQs4oAmmYFlzlEzKefa | ||||
| NglqXhsuqRmuuB1O1FFZv4gvAjEj88SoWTyAtBZktmvj9el79pDlcUCbk6nZ | ||||
| NhV8ls9eaVl0jG5dDUIK4RaXNZkCFOsguIlNINZlj72KN+LBXmCktgDSZ7tF | ||||
| bmNbtEFwrjGUmpoaCR4ucHVLrNeZd8BGEuZ6RJARGN+ikHbeCOskFnS5WccG | ||||
| 95N4hjdc5E3YRiSOk0hCcp6RA45GGvq/+lcpT6hdcJOjQcvRgatp9UVhEN5F | ||||
| SFWnP7DL0fWopo7K+C0lXvFmIFsoqw831QWRPqxkrsYgG9+JlqFlptow6AIv | ||||
| 2ty6eUzrEp32jnvHFaeoVykD3PH3h67z5/74w+4+f4P/veUzEeofd7nt/7ff | ||||
| eh5Hif+N7oclRP+L85RqPNnIv4/iDTheWoFhlUV+GxLeSUrbwaN7difxVqfA | ||||
| XL5MkvAuA9/sFeijUGj3ErUMeVaU25azTJMbjeEW+OurWmfcv2/9Hy4x4Lbq | ||||
| WwAA | ||||
| </rfc> | </rfc> | |||
| End of changes. 36 change blocks. | ||||
| 963 lines changed or deleted | 1073 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||