rfc9448.original | rfc9448.txt | |||
---|---|---|---|---|
Network Working Group C. Wendt | Internet Engineering Task Force (IETF) C. Wendt | |||
Internet-Draft Somos Inc. | Request for Comments: 9448 D. Hancock | |||
Intended status: Standards Track D. Hancock | Category: Standards Track Somos Inc. | |||
Expires: 11 August 2023 Comcast | ISSN: 2070-1721 M. Barnes | |||
M. Barnes | ||||
J. Peterson | J. Peterson | |||
Neustar Inc. | Neustar Inc. | |||
7 February 2023 | September 2023 | |||
TNAuthList profile of ACME Authority Token | TNAuthList Profile of Automated Certificate Management Environment | |||
draft-ietf-acme-authority-token-tnauthlist-13 | (ACME) Authority Token | |||
Abstract | Abstract | |||
This document defines a profile of the Automated Certificate | This document defines a profile of the Automated Certificate | |||
Management Environment (ACME) Authority Token for the automated and | Management Environment (ACME) Authority Token for the automated and | |||
authorized creation of certificates for VoIP Telephone Providers to | authorized creation of certificates for Voice over IP (VoIP) | |||
support Secure Telephony Identity (STI) using the TNAuthList defined | telephone providers to support Secure Telephone Identity (STI) using | |||
by STI certificates. | the TNAuthList defined by STI certificates. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 11 August 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9448. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language | |||
3. ACME new-order identifiers for TNAuthList . . . . . . . . . . 3 | 3. ACME New-Order Identifiers for TNAuthList | |||
4. TNAuthList Identifier Authorization . . . . . . . . . . . . . 5 | 4. TNAuthList Identifier Authorization | |||
5. TNAuthList Authority Token . . . . . . . . . . . . . . . . . 7 | 5. TNAuthList Authority Token | |||
5.1. "iss" claim . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.1. "iss" Claim | |||
5.2. "exp" claim . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.2. "exp" Claim | |||
5.3. "jti" claim . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.3. "jti" Claim | |||
5.4. "atc" claim . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.4. "atc" Claim | |||
5.5. Acquiring the token from the Token Authority . . . . . . 8 | 5.5. Acquiring the Token from the Token Authority | |||
5.6. Token Authority Responsibilities . . . . . . . . . . . . 10 | 5.6. Token Authority Responsibilities | |||
5.7. Scope of the TNAuthList . . . . . . . . . . . . . . . . . 10 | 5.7. Scope of the TNAuthList | |||
6. Validating the TNAuthList Authority Token . . . . . . . . . . 10 | 6. Validating the TNAuthList Authority Token | |||
7. Using ACME-issued Certificates with JSON Web Signature . . . 11 | 7. Using ACME-Issued Certificates with JSON Web Signature | |||
8. Usage Considerations . . . . . . . . . . . . . . . . . . . . 13 | 8. Usage Considerations | |||
8.1. Large number of Non-contiguous TNAuthList values . . . . 13 | 8.1. Large Number of Noncontiguous TNAuthList Values | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 9. IANA Considerations | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 10. Security Considerations | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 11. References | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 11.1. Normative References | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 11.2. Informative References | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 16 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
[RFC8555] is a mechanism for automating certificate management on the | [RFC8555] describes a mechanism for automating certificate management | |||
Internet. It enables administrative entities to prove effective | on the Internet. It enables administrative entities to prove | |||
control over resources like domain names, and automates the process | effective control over resources like domain names, and it automates | |||
of generating and issuing certificates. | the process of generating and issuing certificates. [RFC9447] | |||
[I-D.ietf-acme-authority-token] extends ACME to provide a general | extends ACME to provide a general method of extending the authority | |||
method of extending the authority and authorization of entities to | and authorization of entities to control a resource via a third party | |||
control a resource via a third party Token Authority beyond the | Token Authority beyond the certification authority (CA). | |||
Certification Authority (CA). | ||||
This document is a profile document using the Authority Token | This document is a profile document using the Authority Token | |||
mechanism defined in [I-D.ietf-acme-authority-token]. It is a | mechanism defined in [RFC9447]. It is a profile that specifically | |||
profile that specifically addresses the STIR problem statement | addresses the Secure Telephone Identity Revisited (STIR) problem | |||
[RFC7340] which identifies the need for Internet credentials that can | statement described in [RFC7340], which identifies the need for | |||
attest authority for the originator of VoIP calls in order to detect | Internet credentials that can attest authority for the originator of | |||
impersonation, which is currently an enabler for common attacks | VoIP calls in order to detect impersonation, which is currently an | |||
associated with illegal robocalling, voicemail hacking, and swatting. | enabler for common attacks associated with illegal robocalling, | |||
voicemail hacking, and swatting. These credentials are used to sign | ||||
These credentials are used to sign PASSporTs [RFC8225], which can be | Personal Assertion Tokens (PASSporTs) [RFC8225], which can be carried | |||
carried in using protocols such as SIP [RFC8224]. Currently, the | in using protocols such as SIP [RFC8224]. Currently, the only | |||
only defined credentials for this purpose are the certificates | defined credentials for this purpose are the certificates specified | |||
specified in [RFC8226] using the TNAuthList. This document defines | in [RFC8226] using the TNAuthList. This document defines the use of | |||
the use of the TNAuthList Authority Token in the ACME challenge to | the TNAuthList Authority Token in the ACME challenge to prove the | |||
proof the authoritative use of the contents of the TNAuthList, | authoritative use of the contents of the TNAuthList, including a | |||
including a Service Provider Token (SPC), a Telephone Number, or a | Service Provider Code (SPC), a telephone number, or a set of | |||
set of telephone numbers or telephone number blocks. | telephone numbers or telephone number blocks. | |||
This document also describes the ability for a telephone authority to | This document also describes the ability for a telephone authority to | |||
authorize the creation of CA types of certificates for delegation as | authorize the creation of CA types of certificates for delegation, as | |||
defined in [RFC9060]. | defined in [RFC9060]. | |||
2. Terminology | 2. Requirements Language | |||
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. ACME new-order identifiers for TNAuthList | 3. ACME New-Order Identifiers for TNAuthList | |||
In [RFC8555], Section 7 defines the procedure that an ACME client | Section 7 of [RFC8555] defines the procedure that an ACME client uses | |||
uses to order a new certificate from a CA. The new-order request | to order a new certificate from a CA. The new-order request contains | |||
contains an identifier field that specifies the identifier objects | an identifier field that specifies the identifier objects the order | |||
the order corresponds to. This draft defines a new type of | corresponds to. This document defines a new type of identifier | |||
identifier object called TNAuthList. A TNAuthList identifier | object called TNAuthList. A TNAuthList identifier contains the | |||
contains the identity information to be populated in the TN | identity information to be populated in the TNAuthList of the new | |||
Authorization List of the new certificate. For the TNAuthList | certificate. For the TNAuthList identifier, the new-order request | |||
identifier, the new-order request includes a type set to the string | includes a type set to the string "TNAuthList". The value of the | |||
"TNAuthList". The value of the TNAuthList identifier MUST be set to | TNAuthList identifier MUST be set to the details of the TNAuthList | |||
the details of the TNAuthList requested. | requested. | |||
The format of the string that represents the TNAuthList MUST be | The string that represents the TNAuthList MUST be constructed using | |||
constructed using base64url encoding, as per [RFC8555] base64url | base64url encoding, as described in Section 5 of [RFC4648] and as | |||
encoding described in Section 5 of [RFC4648] according to the profile | defined in Section 2 of JSON Web Signature [RFC7515]. The base64url | |||
specified in JSON Web Signature in Section 2 of [RFC7515]. The | encoding MUST NOT include any padding characters, and the TNAuthList | |||
base64url encoding MUST NOT include any padding characters and the | ASN.1 object MUST be encoded using DER encoding rules. | |||
TNAuthList ASN.1 object MUST encoded using DER encoding rules. | ||||
An example of an ACME order object “identifiers” field containing a | An example of an ACME order object "identifiers" field containing a | |||
TNAuthList certificate would look as follows, | TNAuthList certificate is as follows: | |||
"identifiers": [{"type":"TNAuthList","value":"F83n2a...avn27DN3"}] | "identifiers": [{"type":"TNAuthList","value":"F83n2a...avn27DN3"}] | |||
where the "value" object string represents the arbitrary length | where the "value" object string represents the arbitrary length of | |||
base64url encoded string. | the base64url-encoded string. | |||
A full new-order request would look as follows, | A full new-order request would look as follows: | |||
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", | |||
skipping to change at page 4, line 27 ¶ | skipping to change at line 164 ¶ | |||
}), | }), | |||
"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" | |||
} | } | |||
On receiving a valid new-order request, the ACME server creates an | On receiving a valid new-order request, the ACME server creates an | |||
authorization object, [RFC8555] Section 7.1.4, containing the | authorization object ([RFC8555], Section 7.1.4), containing the | |||
challenge that the ACME client must satisfy to demonstrate authority | challenge that the ACME client must satisfy to demonstrate authority | |||
for the identifiers specified by the new order (in this case, the | for the identifiers specified by the new order (in this case, the | |||
TNAuthList identifier). The CA adds the authorization object URL to | TNAuthList identifier). The CA adds the authorization object URL to | |||
the "authorizations" field of the order object, and returns the order | the "authorizations" field of the order object and returns the order | |||
object to the ACME client in the body of a 201 (Created) response. | object to the ACME client in the body of a 201 (Created) response. | |||
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", | |||
skipping to change at page 5, line 9 ¶ | skipping to change at line 195 ¶ | |||
"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" | |||
} | } | |||
4. TNAuthList Identifier Authorization | 4. TNAuthList Identifier Authorization | |||
On receiving the new-order response, the ACME client queries the | On receiving the new-order response, the ACME client queries the | |||
referenced authorization object to obtain the challenges for the | referenced authorization object to obtain the challenges for the | |||
identifier contained in the new-order request as shown in the | identifier contained in the new-order request, as shown in the | |||
following example request and response. | following example request and response. | |||
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", | |||
skipping to change at page 6, line 4 ¶ | skipping to change at line 236 ¶ | |||
"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" | |||
} | } | |||
] | ] | |||
} | } | |||
When processing a certificate order containing an identifier of type | When processing a certificate order containing an identifier of type | |||
"TNAuthList", a CA uses the Authority Token challenge type of | "TNAuthList", a CA uses the Authority Token challenge type of | |||
"tkauth-01" with a "tkauth-type" of "atc" in | "tkauth-01" with a "tkauth-type" of "atc" in [RFC9447] to verify that | |||
[I-D.ietf-acme-authority-token] to verify that the requesting ACME | the requesting ACME client has authenticated and authorized control | |||
client has authenticated and authorized control over the requested | over the requested resources represented by the "TNAuthList" value. | |||
resources represented by the "TNAuthList" value. | ||||
The challenge "token-authority" parameter is only used in cases where | The challenge "token-authority" parameter is only used in cases where | |||
the VoIP telephone network requires the CA to identify the Token | the VoIP telephone network requires the CA to identify the Token | |||
Authority. This is currently not the case for the SHAKEN | Authority. This is currently not the case for the Signature-based | |||
[ATIS-1000080] certificate framework governance, but may be used by | Handling of Asserted information using toKENs (SHAKEN) [ATIS-1000080] | |||
other frameworks. If a "token-authority" parameter is present, then | certificate framework governance but may be used by other frameworks. | |||
the ACME client MAY use the "token-authority" value to identify the | If a "token-authority" parameter is present, then the ACME client MAY | |||
URL representing the Token Authority that will provide the TNAuthList | use the "token-authority" value to identify the URL representing the | |||
Authority Token response to the challenge. If the "token-authority" | Token Authority that will provide the TNAuthList Authority Token | |||
parameter is not present, then the ACME client MUST identify the | response to the challenge. If the "token-authority" parameter is not | |||
Token Authority based on locally configured information or local | present, then the ACME client MUST identify the Token Authority based | |||
policies. | on locally configured information or local policies. | |||
The ACME client responds to the challenge by posting the TNAuthList | The ACME client responds to the challenge by posting the TNAuthList | |||
Authority Token to the challenge URL identified in the returned ACME | Authority Token to the challenge URL identified in the returned ACME | |||
authorization object, an example of which follows. | authorization object, an example of which follows: | |||
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", | |||
skipping to change at page 7, line 7 ¶ | skipping to change at line 282 ¶ | |||
}), | }), | |||
"signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ" | "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ" | |||
} | } | |||
The "tkauth" field is defined as a new field in the challenge object | The "tkauth" field is defined as a new field in the challenge object | |||
specific to the tkauth-01 challenge type that should contain the | specific to the tkauth-01 challenge type that should contain the | |||
TNAuthList Authority Token defined in the next section. | TNAuthList Authority Token defined in the next section. | |||
5. TNAuthList Authority Token | 5. TNAuthList Authority Token | |||
The Telephone Number Authority List Authority Token (TNAuthList | The TNAuthList Authority Token is a profile instance of the ACME | |||
Authority Token) is a profile instance of the ACME Authority Token | Authority Token defined in [RFC9447]. | |||
defined in [I-D.ietf-acme-authority-token]. | ||||
The TNAuthList Authority Token Protected header MUST comply with the | The TNAuthList Authority Token protected header MUST comply with | |||
Authority Token Protected header as defined in | "Request Authentication" (Section 6.2 of [RFC8555]). | |||
[I-D.ietf-acme-authority-token]. | ||||
The TNAuthList Authority Token Payload MUST include the mandatory | The TNAuthList Authority Token Payload MUST include the mandatory | |||
claims "exp", "jti", and "atc", and MAY include the optional claims | claims "exp", "jti", and "atc" and MAY include the optional claims | |||
defined for the Authority Token detailed in the next subsections. | defined for the Authority Token detailed in the next subsections. | |||
5.1. "iss" claim | 5.1. "iss" Claim | |||
The "iss" claim is an optional claim defined in [RFC7519] | The "iss" claim is an optional claim defined in [RFC7519], | |||
Section 4.1.1. It can be used as a URL identifying the Token | Section 4.1.1. It can be used as a URL identifying the Token | |||
Authority that issued the TNAuthList Authority Token beyond the "x5u" | Authority that issued the TNAuthList Authority Token beyond the "x5u" | |||
or other Header claims that identify the location of the certificate | or other header claims that identify the location of the certificate | |||
or certificate chain of the Token Authority used to validate the | or certificate chain of the Token Authority used to validate the | |||
TNAuthList Authority Token. | TNAuthList Authority Token. | |||
5.2. "exp" claim | 5.2. "exp" Claim | |||
The "exp" claim, defined in [RFC7519] Section 4.1.4, MUST be included | The "exp" claim, defined in [RFC7519], Section 4.1.4, MUST be | |||
and contains the DateTime value of the ending date and time that the | included and contains the DateTime value of the ending date and time | |||
TNAuthList Authority Token expires. | that the TNAuthList Authority Token expires. | |||
5.3. "jti" claim | 5.3. "jti" Claim | |||
The "jti" claim, defined in [RFC7519] Section 4.1.7, MUST be included | The "jti" claim, defined in [RFC7519], Section 4.1.7, MUST be | |||
and contains a unique identifier for this TNAuthList Authority Token | included and contains a unique identifier for this TNAuthList | |||
transaction. | Authority Token transaction. | |||
5.4. "atc" claim | 5.4. "atc" Claim | |||
The "atc" claim MUST be included and is defined in | The "atc" claim MUST be included and is defined in [RFC9447]. It | |||
[I-D.ietf-acme-authority-token]. It contains a JSON object with the | contains a JSON object with the following elements: | |||
following elements: | ||||
* a "tktype" key with a string value equal to "TNAuthList" to | * a "tktype" key with a string value equal to "TNAuthList" to | |||
represent a TNAuthList profile of the authority token | represent a TNAuthList profile of the Authority Token [RFC9447] | |||
[I-D.ietf-acme-authority-token] defined by this document. "tktype" | defined by this document. "tktype" is a required key and MUST be | |||
is a required key and MUST be included. | included. | |||
* a "tkvalue" key with a string value equal to the base64url | * a "tkvalue" key with a string value equal to the base64url | |||
encoding of the TN Authorization List certificate extension ASN.1 | encoding of the TNAuthList certificate extension ASN.1 object | |||
object using DER encoding rules. "tkvalue" is a required key and | using DER encoding rules. "tkvalue" is a required key and MUST be | |||
MUST be included. | included. | |||
* a "ca" key with a boolean value set to either true when the | * a "ca" key with a boolean value set to either true when the | |||
requested certificate is allowed to be a CA cert for delegation | requested certificate is allowed to be a CA cert for delegation | |||
uses or false when the requested certificate is not intended to be | uses or false when the requested certificate is not intended to be | |||
a CA cert, only an end-entity certificate. "ca" is an optional | a CA cert, only an end-entity certificate. "ca" is an optional | |||
key, if not included the "ca" value is considered false by | key; if not included, the "ca" value is considered false by | |||
default. | default. | |||
* a "fingerprint" key is constructed as defined in [RFC8555] | * a "fingerprint" key constructed as defined in [RFC8555], | |||
Section 8.1 corresponding to the computation of the "Thumbprint" | Section 8.1, corresponding to the computation of the "Thumbprint" | |||
step using the ACME account key credentials. "fingerprint" is a | step using the ACME account key credentials. "fingerprint" is a | |||
required key and MUST be included. | required key and MUST be included. | |||
An example of the TNAuthList Authority Token is as follows: | An example of the TNAuthList Authority Token is as follows: | |||
{ | { | |||
"protected": base64url({ | "protected": base64url({ | |||
"typ":"JWT", | "typ":"JWT", | |||
"alg":"ES256", | "alg":"ES256", | |||
"x5u":"https://authority.example.org/cert" | "x5u":"https://authority.example.org/cert" | |||
skipping to change at page 8, line 43 ¶ | skipping to change at line 361 ¶ | |||
"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" | |||
} | } | |||
5.5. Acquiring the token from the Token Authority | 5.5. Acquiring the Token from the Token Authority | |||
Following [I-D.ietf-acme-authority-token] Section 5, the authority | Following [RFC9447], Section 5, the Authority Token should be | |||
token should be acquired using a RESTful HTTP POST transaction as | acquired using a RESTful HTTP POST transaction as follows: | |||
follows: | ||||
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 | |||
The request will pass the account id as a string in the request | The request will pass the account identifier as a string in the | |||
parameter "id". This string will be managed as an identifier | request parameter "id". This string will be managed as an identifier | |||
specific to the Token Authority's relationship with a communications | specific to the Token Authority's relationship with a Communications | |||
service provider (CSP). There is assumed to also be a corresponding | Service Provider (CSP). There is assumed to also be a corresponding | |||
authentication procedure that can be verified for the success of this | authentication procedure that can be verified for the success of this | |||
transaction. For example, an HTTP authorization header containing a | transaction, for example, an HTTP authorization header containing | |||
valid authorization credentials as defined in [RFC7231] Section 14.8. | valid authorization credentials, as defined in [RFC9110], | |||
Section 11.6.2. | ||||
The body of the POST request MUST contain a JSON object with key | The body of the POST request MUST contain a JSON object with key | |||
value pairs corresponding to values that are requested as the content | value pairs corresponding to values that are requested as the content | |||
of the claims in the issued token. As an example, the body SHOULD | of the claims in the issued token. As an example, the body SHOULD | |||
contain a JSON object as follows: | contain a JSON object as follows: | |||
{ | { | |||
"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" | |||
} | } | |||
The response to the POST request if successful returns a 200 OK with | If successful, the response to the POST request returns a 200 (OK) | |||
a JSON body that contains, at a minimum, the TNAuthList Authority | with a JSON body that contains, at a minimum, the TNAuthList | |||
Token as a JSON object with a key of "token" and the base64url | Authority Token as a JSON object with a key of "token" and the | |||
encoded string representing the atc token. JSON is easily | base64url-encoded string representing the atc token. JSON is easily | |||
extensible, so users of this specification may want to pass other | extensible, so users of this specification may want to pass other | |||
pieces of information relevant to a specific application. | pieces of information relevant to a specific application. | |||
An example successful response would be as follows: | An example of a successful response would be as follows: | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
Content-Type: application/json | Content-Type: application/json | |||
{"token": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"} | {"token": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"} | |||
If the request is not successful, the response should indicate the | If the request is not successful, the response should indicate the | |||
error condition. Specifically, for the case that the authorization | error condition. Specifically, for the case that the authorization | |||
credentials are invalid or if the Account ID provided does not exist, | credentials are invalid or if the account identifier provided does | |||
the response code MUST be 403 - Forbidden. Other 4xx and 5xx | not exist, the response code MUST be 403 (Forbidden). Other 4xx and | |||
responses MUST follow standard [RFC7231] HTTP error condition | 5xx responses MUST follow standard HTTP error condition conventions | |||
conventions. | [RFC9110]. | |||
5.6. Token Authority Responsibilities | 5.6. Token Authority Responsibilities | |||
When creating the TNAuthList Authority Token, the Token Authority | When creating the TNAuthList Authority Token, the Token Authority | |||
MUST validate that the information contained in the ASN.1 TNAuthList | MUST validate that the information contained in the ASN.1 TNAuthList | |||
accurately represents the service provider code (SPC) or telephone | accurately represents the service provider code (SPC) or telephone | |||
number (TN) resources the requesting party is authorized to represent | number (TN) resources the requesting party is authorized to represent | |||
based on their pre-established and verified secure relationship | based on their pre-established, verified, and secure relationship | |||
between the Token Authority and the requesting party. Note that the | between the Token Authority and the requesting party. Note that the | |||
fingerprint in the token request is not meant to be verified by the | fingerprint in the token request is not meant to be verified by the | |||
Token Authority, but rather is meant to be signed as part of the | Token Authority but rather is meant to be signed as part of the token | |||
token so that the party that requests the token can, as part of the | so that the party that requests the token can, as part of the | |||
challenge response, allow the ACME server to validate the token | challenge response, allow the ACME server to validate that the token | |||
requested and used came from the same party that controls the ACME | requested and used came from the same party that controls the ACME | |||
client. | client. | |||
5.7. Scope of the TNAuthList | 5.7. Scope of the TNAuthList | |||
Because this specification specifically involves the TNAuthList | Because this specification specifically involves the TNAuthList | |||
defined in [RFC8226] which involves SPC, TNBlock, and individual TNs, | defined in [RFC8226], which involves SPC, telephone number ranges, | |||
the client may also request an Authority Token with some subset of | and individual telephone numbers, the client may also request an | |||
its own authority as the TNAuthList provided in the "tkvalue" element | Authority Token with some subset of its own authority as the | |||
in the "atc" JSON object. Generally, the scope of authority | TNAuthList provided in the "tkvalue" element in the "atc" JSON | |||
representing a communications service provider is represented by a | object. Generally, the scope of authority representing a CSP is | |||
particular SPC (e.g. in North America, an operating company number | represented by a particular SPC (e.g., in North America, an operating | |||
(OCN) or service provider identifier (SPID)). That provider is also | company number (OCN) or service provider identifier (SPID)). Based | |||
generally associated, based on number allocations, with a particular | on number allocations, that provider is also generally associated | |||
set of different TN Blocks and/or TNs. TNAuthList can be constructed | with a particular set of different telephone number ranges and/or | |||
to define a limited scope of the TNBlocks or TNs either associated | telephone numbers. The TNAuthList can be constructed to define a | |||
with an SPC or with the scope of TN Blocks or TNs the client has | limited scope of the TelephoneNumberRanges or TelephoneNumbers | |||
([RFC8226], Section 9) either associated with an SPC or with the | ||||
scope of telephone number ranges or telephone numbers the client has | ||||
authority over. | authority over. | |||
As recommended in [I-D.ietf-acme-authority-token] security | As recommended in the Security Considerations section in [RFC9447], | |||
considerations, an Authority Token can either have a scope that | an Authority Token can either have a scope that attests all of the | |||
attests all of the resources which a client is eligible to receive | resources that a client is eligible to receive certificates for or | |||
certificates for, or potentially a more limited scope that is | potentially a more limited scope that is intended to capture only | |||
intended to capture only those resources for which a client will | those resources for which a client will receive a certificate from a | |||
receive a certificate from a particular certification authority. Any | particular certification authority. Any certification authority that | |||
certification authority that sees an Authority Token can learn | sees an Authority Token can learn information about the resources a | |||
information about the resources a client can claim. In cases where | client can claim. In cases where this incurs a privacy risk, | |||
this incurs a privacy risk, Authority Token scopes should be limited | Authority Token scopes should be limited to only the resources that | |||
to only the resources that will be attested by the requested ACME | will be attested by the requested ACME certificate. | |||
certificate. | ||||
6. Validating the TNAuthList Authority Token | 6. Validating the TNAuthList Authority Token | |||
Upon receiving a response to the challenge, the ACME server MUST | Upon receiving a response to the challenge, the ACME server MUST | |||
perform the following steps to determine the validity of the | perform the following steps to determine the validity of the | |||
response. | response. | |||
* Verify that the value of the "atc" claim is a well-formed JSON | 1. Verify that the value of the "atc" claim is a well-formed JSON | |||
object containing the mandatory key values. | object containing the mandatory key values. | |||
* If there is an "x5u" parameter verify the "x5u" parameter is a | 2. If there is an "x5u" parameter, verify the "x5u" parameter is an | |||
HTTPS URL with a reference to a certificate representing the | HTTPS URL with a reference to a certificate representing the | |||
trusted issuer of authority tokens for the eco-system. | trusted issuer of Authority Tokens for the ecosystem. | |||
* If there is an "x5c" parameter verify the certificate array | 3. If there is an "x5c" parameter, verify the certificate array | |||
contains a certificate representing the trusted issuer of | contains a certificate representing the trusted issuer of | |||
authority tokens for the eco-system. | Authority Tokens for the ecosystem. | |||
* Verify the TNAuthList Authority Token signature using the public | 4. Verify the TNAuthList Authority Token signature using the public | |||
key of the certificate referenced by the token's "x5u" or "x5c" | key of the certificate referenced by the token's "x5u" or "x5c" | |||
parameter. | parameter. | |||
* Verify that "atc" claim contains a "tktype" identifier with the | 5. Verify that "atc" claim contains a "tktype" identifier with the | |||
value "TNAuthList". | value "TNAuthList". | |||
* Verify that the "atc" claim "tkvalue" identifier contains the | 6. Verify that the "atc" claim "tkvalue" identifier contains the | |||
equivalent base64url encoded TNAuthList certificate extension | equivalent base64url-encoded TNAuthList certificate extension | |||
string value as the Identifier specified in the original | string value as the identifier specified in the original | |||
challenge. | challenge. | |||
* Verify that the remaining claims are valid (e.g., verify that | 7. Verify that the remaining claims are valid (e.g., verify that | |||
token has not expired) | token has not expired). | |||
* Verify that the "atc" claim "fingerprint" is valid and matches the | 8. Verify that the "atc" claim "fingerprint" is valid and matches | |||
account key of the client making the request | the account key of the client making the request. | |||
* Verify that the "atc" claim "ca" identifier boolean corresponds to | 9. Verify that the "atc" claim "ca" identifier boolean corresponds | |||
the CA boolean in the Basic Constraints extension in the CSR for | to the CA boolean in the Basic Constraints extension in the | |||
either CA certificate or end-entity certificate | Certificate Signing Request (CSR) for either CA certificate or | |||
end-entity certificate. | ||||
If all steps in the token validation process pass, then the ACME | If all steps in the token validation process pass, then the ACME | |||
server MUST set the challenge object "status" to "valid". If any | server MUST set the challenge object "status" to "valid". If any | |||
step of the validation process fails, the "status" in the challenge | step of the validation process fails, the "status" in the challenge | |||
object MUST be set to "invalid". | object MUST be set to "invalid". | |||
7. Using ACME-issued Certificates with JSON Web Signature | 7. Using ACME-Issued Certificates with JSON Web Signature | |||
JSON Web Signature (JWS, [RFC7515]) objects can include an "x5u" | JSON Web Signature (JWS) [RFC7515] objects can include an "x5u" | |||
header parameter to refer to a certificate that is used to validate | header parameter to refer to a certificate that is used to validate | |||
the JWS signature. For example, the STIR PASSporT framework | the JWS signature. For example, the STIR PASSporT framework | |||
[RFC8225] uses "x5u" to indicate the STIR certificate used to | [RFC8225] uses "x5u" to indicate the STIR certificate used to | |||
validate the PASSporT JWS object. The URLs used in "x5u" are | validate the PASSporT JWS object. The URLs used in "x5u" are | |||
expected to provide the required certificate in response to a GET | expected to provide the required certificate in response to a GET | |||
request, not a POST-as-GET as required for the "certificate" URL in | request, not a POST-as-GET, as required for the "certificate" URL in | |||
the ACME order object. Thus the current mechanism generally requires | the ACME order object. Thus, the current mechanism generally | |||
the ACME client to download the certificate and host it on a public | requires the ACME client to download the certificate and host it on a | |||
URL to make it accessible to relying parties. This section defines | public URL to make it accessible to relying parties. This section | |||
an optional mechanism for the Certificate Authority (CA) to host the | defines an optional mechanism for the certification authority (CA) to | |||
certificate directly and provide a URL that the ACME client owner can | host the certificate directly and provide a URL that the ACME client | |||
directly reference in the "x5u" of their signed PASSporTs. | owner can directly reference in the "x5u" of their signed PASSporTs. | |||
As described in Section 7.4 of [RFC8555] when the certificate is | As described in Section 7.4 of [RFC8555], when the certificate is | |||
ready for making a finalize request, the server will return a 200 | ready for making a "finalize" request, the server will return a 200 | |||
(OK) with the updated order object. In this response, an ACME Server | (OK) with the updated order object. In this response, an ACME server | |||
can add a newly defined field called "x5u" that can pass this URL to | can add a newly defined field called "x5u" that can pass this URL to | |||
the ACME client for usage in generated PASSporTs as a publically | the ACME client for usage in generated PASSporTs as a publicly | |||
available URL for PASSporT validation. | available URL for PASSporT validation. | |||
x5u (optional, string): A URL that can be used to reference the | x5u (optional, string): a URL that can be used to reference the | |||
certificate in the "x5u" parameter of a JWS object [RFC7515] | certificate in the "x5u" parameter of a JWS object [RFC7515] | |||
The publishing of the certificates at the new "x5u" URL should follow | The publishing of the certificates at the new "x5u" URL should follow | |||
the GET request requirement as mentioned above and should be | the GET request requirement as mentioned above and should be | |||
consistent with the timely publication according to the durations of | consistent with the timely publication according to the durations of | |||
the certificate lifecycle. | the certificate life cycle. | |||
The following is an example of the use of "x5u" in the response when | The following is an example of the use of "x5u" in the response when | |||
the certificate status is "valid". | the certificate status is "valid". | |||
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 | |||
skipping to change at page 13, line 34 ¶ | skipping to change at line 565 ¶ | |||
"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" | |||
} | } | |||
8. Usage Considerations | 8. Usage Considerations | |||
8.1. Large number of Non-contiguous TNAuthList values | 8.1. Large Number of Noncontiguous TNAuthList Values | |||
There are many scenarios and reasons to have various combinations of | There are many scenarios and reasons to have various combinations of | |||
SPCs, TNs, and TN Ranges. [RFC8226] has provided a somewhat | SPCs, TNs, and TN ranges. [RFC8226] has provided a somewhat | |||
unbounded set of combinations. It's possible that a complex non- | unbounded set of combinations. It's possible that a complex | |||
contiguous set of telephone numbers are being managed by a CSP. Best | noncontiguous set of telephone numbers are being managed by a CSP. | |||
practice may be simply to split a set of non-contiguous numbers under | Best practice may be simply to split a set of noncontiguous numbers | |||
management into multiple STI certificates to represent the various | under management into multiple STI certificates to represent the | |||
contiguous parts of the greater non-contiguous set of TNs, | various contiguous parts of the greater noncontiguous set of TNs, | |||
particularly if length of the set of values in identifier object | particularly if the length of the set of values in an identifier | |||
grows to be too large. | object grows to be too large. | |||
9. Security Considerations | 9. IANA Considerations | |||
Per this document, IANA has added a new identifier object type to the | ||||
"ACME Identifier Types" registry defined in Section 9.7.7 of | ||||
[RFC8555]. | ||||
+============+===========+ | ||||
| Label | Reference | | ||||
+============+===========+ | ||||
| TNAuthList | RFC 9448 | | ||||
+------------+-----------+ | ||||
Table 1 | ||||
10. Security Considerations | ||||
The token represented by this document has the credentials to | The token represented by this document has the credentials to | |||
represent the scope of a telephone number, a block of telephone | represent the scope of a telephone number, a block of telephone | |||
numbers, or an entire set of telephone numbers represented by an SPC. | numbers, or an entire set of telephone numbers represented by an SPC. | |||
The creation, transport, and any storage of this token MUST follow | The creation, transport, and any storage of this token MUST follow | |||
the strictest of security best practices beyond the recommendations | the strictest of security best practices beyond the recommendations | |||
of the use of encrypted transport protocols in this document to | of the use of encrypted transport protocols in this document to | |||
protect it from getting in the hands of bad actors with illegitimate | protect it from getting in the hands of bad actors with illegitimate | |||
intent to impersonate telephone numbers. | intent to impersonate telephone numbers. | |||
This document inherits the security properties of | This document inherits the security properties of [RFC9447]. | |||
[I-D.ietf-acme-authority-token]. Implementations should follow the | Implementations should follow the best practices identified in | |||
best practices identified in [RFC8725]. | [RFC8725]. | |||
This document only specifies SHA256 for the fingerprint hash. | This document only specifies SHA256 for the fingerprint hash. | |||
However, the syntax of the fingerprint object would permit other | However, the syntax of the fingerprint object would permit other | |||
algorithms if, due to concerns about algorithmic agility, a more | algorithms if, due to concerns about algorithmic agility, a more | |||
robust algorithm were required at a future time. Future | robust algorithm were required at a future time. Future | |||
specifications can define new algorithms for the fingerprint object | specifications can define new algorithms for the fingerprint object | |||
as needed. | as needed. | |||
10. IANA Considerations | 11. References | |||
This document requests the addition of a new identifier object type | ||||
to the "ACME Identifier Types" registry defined in Section 9.7.7 of | ||||
[RFC8555]. | ||||
+------------+-----------+ | ||||
| Label | Reference | | ||||
+------------+-----------+ | ||||
| TNAuthList | RFCThis | | ||||
+------------+-----------+ | ||||
11. Acknowledgements | ||||
We would like to thank Richard Barnes and Russ Housley for valuable | ||||
contributions to this document. | ||||
12. References | ||||
12.1. Normative References | ||||
[I-D.ietf-acme-authority-token] | 11.1. Normative References | |||
Peterson, J., Barnes, M., Hancock, D., and C. Wendt, "ACME | ||||
Challenges Using an Authority Token", Work in Progress, | ||||
Internet-Draft, draft-ietf-acme-authority-token-09, 24 | ||||
October 2022, <https://www.ietf.org/archive/id/draft-ietf- | ||||
acme-authority-token-09.txt>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | |||
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | |||
<https://www.rfc-editor.org/info/rfc4648>. | <https://www.rfc-editor.org/info/rfc4648>. | |||
[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | ||||
Protocol (HTTP/1.1): Semantics and Content", RFC 7231, | ||||
DOI 10.17487/RFC7231, June 2014, | ||||
<https://www.rfc-editor.org/info/rfc7231>. | ||||
[RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web | [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web | |||
Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May | Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May | |||
2015, <https://www.rfc-editor.org/info/rfc7515>. | 2015, <https://www.rfc-editor.org/info/rfc7515>. | |||
[RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | |||
(JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | |||
<https://www.rfc-editor.org/info/rfc7519>. | <https://www.rfc-editor.org/info/rfc7519>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
skipping to change at page 16, line 9 ¶ | skipping to change at line 657 ¶ | |||
[RFC8725] Sheffer, Y., Hardt, D., and M. Jones, "JSON Web Token Best | [RFC8725] Sheffer, Y., Hardt, D., and M. Jones, "JSON Web Token Best | |||
Current Practices", BCP 225, RFC 8725, | Current Practices", BCP 225, RFC 8725, | |||
DOI 10.17487/RFC8725, February 2020, | DOI 10.17487/RFC8725, February 2020, | |||
<https://www.rfc-editor.org/info/rfc8725>. | <https://www.rfc-editor.org/info/rfc8725>. | |||
[RFC9060] Peterson, J., "Secure Telephone Identity Revisited (STIR) | [RFC9060] Peterson, J., "Secure Telephone Identity Revisited (STIR) | |||
Certificate Delegation", RFC 9060, DOI 10.17487/RFC9060, | Certificate Delegation", RFC 9060, DOI 10.17487/RFC9060, | |||
September 2021, <https://www.rfc-editor.org/info/rfc9060>. | September 2021, <https://www.rfc-editor.org/info/rfc9060>. | |||
12.2. Informative References | [RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | |||
Ed., "HTTP Semantics", STD 97, RFC 9110, | ||||
DOI 10.17487/RFC9110, June 2022, | ||||
<https://www.rfc-editor.org/info/rfc9110>. | ||||
[RFC9447] Peterson, J., Barnes, M., Hancock, D., and C. Wendt, | ||||
"Automated Certificate Management Environment (ACME) | ||||
Challenges Using an Authority Token", RFC 9447, | ||||
DOI 10.17487/RFC9447, August 2023, | ||||
<https://www.rfc-editor.org/info/rfc9447>. | ||||
11.2. Informative References | ||||
[ATIS-1000080] | [ATIS-1000080] | |||
ATIS/SIP Forum NNI Task Group, "Signature-based Handling | ATIS, "Signature-based Handling of Asserted information | |||
of Asserted information using toKENs (SHAKEN) Governance | using toKENs (SHAKEN): Governance Model and Certificate | |||
Model and Certificate Management | Management", ATIS-1000080.v005, December 2022, | |||
<https://access.atis.org/apps/group_public/ | <https://access.atis.org/apps/group_public/ | |||
download.php/32237/ATIS-1000080.pdf>", July 2017. | download.php/69428/ATIS-1000080.v005.pdf>. | |||
[RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure | [RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure | |||
Telephone Identity Problem Statement and Requirements", | Telephone Identity Problem Statement and Requirements", | |||
RFC 7340, DOI 10.17487/RFC7340, September 2014, | RFC 7340, DOI 10.17487/RFC7340, September 2014, | |||
<https://www.rfc-editor.org/info/rfc7340>. | <https://www.rfc-editor.org/info/rfc7340>. | |||
[RFC8224] Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, | [RFC8224] Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, | |||
"Authenticated Identity Management in the Session | "Authenticated Identity Management in the Session | |||
Initiation Protocol (SIP)", RFC 8224, | Initiation Protocol (SIP)", RFC 8224, | |||
DOI 10.17487/RFC8224, February 2018, | DOI 10.17487/RFC8224, February 2018, | |||
<https://www.rfc-editor.org/info/rfc8224>. | <https://www.rfc-editor.org/info/rfc8224>. | |||
[RFC8225] Wendt, C. and J. Peterson, "PASSporT: Personal Assertion | [RFC8225] Wendt, C. and J. Peterson, "PASSporT: Personal Assertion | |||
Token", RFC 8225, DOI 10.17487/RFC8225, February 2018, | Token", RFC 8225, DOI 10.17487/RFC8225, February 2018, | |||
<https://www.rfc-editor.org/info/rfc8225>. | <https://www.rfc-editor.org/info/rfc8225>. | |||
Acknowledgements | ||||
We would like to thank Richard Barnes and Russ Housley for valuable | ||||
contributions to this document. | ||||
Authors' Addresses | Authors' Addresses | |||
Chris Wendt | Chris Wendt | |||
Somos Inc. | Somos Inc. | |||
United States of America | United States of America | |||
Email: chris-ietf@chriswendt.net | Email: chris-ietf@chriswendt.net | |||
David Hancock | David Hancock | |||
Comcast | Somos Inc. | |||
United States of America | United States of America | |||
Email: davidhancock.ietf@gmail.com | Email: davidhancock.ietf@gmail.com | |||
Mary Barnes | Mary Barnes | |||
Neustar Inc. | Neustar Inc. | |||
United States of America | United States of America | |||
Email: mary.ietf.barnes@gmail.com | Email: mary.ietf.barnes@gmail.com | |||
Jon Peterson | Jon Peterson | |||
Neustar Inc. | Neustar Inc. | |||
1800 Sutter St Suite 570 | Suite 570 | |||
Concord, CA 94520, | 1800 Sutter St | |||
Concord, CA 94520 | ||||
United States of America | United States of America | |||
Email: jon.peterson@neustar.biz | Email: jon.peterson@neustar.biz | |||
End of changes. 85 change blocks. | ||||
287 lines changed or deleted | 284 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |