TNAuthList profile of ACME Authority TokenComcastOne Comcast CenterPhiladelphia, PA 19103USAchris-ietf@chriswendt.netComcastdavidhancock.ietf@gmail.comiconectivmary.ietf.barnes@gmail.comNeustar Inc.1800 Sutter St Suite 570Concord, CA 94520USjon.peterson@neustar.biz
sec
STIRThis document defines a profile of the Automated Certificate Management Environment (ACME) Authority Token for the automated and authorized creation of certificates for VoIP Telephone Providers to support Secure Telephony Identity (STI) using the TNAuthList defined by STI certificates. is a mechanism for automating certificate management on the Internet. It enables administrative entities to prove effective control over resources like domain names, and automates the process of generating and issuing certificates. extends ACME to provide a general method of extending the authority and authorization of entities to control a resource via a third party Token Authority beyond the Certification Authority.This document addresses the STIR problem statement which identifies the need for Internet credentials that can attest authority for the originator of VoIP calls in order to detect impersonation, which is currently an enabler for common attacks associated with illegal robocalling, voicemail hacking, and swatting. These credentials are used to sign PASSporTs , which can be carried in using protocols such as SIP . Currently, the only defined credentials for this purpose are the certificates specified in . describes certificate extensions suitable for associating telephone numbers and service provider codes with certificates. Specifically, the TN Authorization List defined in Section 9, defines the ability to associate a STI certificate with a specific set of Service Provider Codes (SPCs), Telephone Numbers (TNs), or Telephone Number ranges (TN ranges). Typically, these identifiers have been assigned to a Communications Service Provider (CSP) that is authorized to use a set of telephone numbers or telephone number ranges in association with a Service Provider Code as defined in . The SPC is a unique code or string managed by a national regulatory body that has the authority over those code-to-CSP associations.This document will also incorporate the ability for a telephone authority to authorize the creation of CA types of certificates for delegation as defined in .The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this
document are to be interpreted as described in .In , Section 7.4 defines the procedure that an ACME client uses to order a new certificate from a Certification Authority. The new-order request contains an identifier field that specifies the identifier objects the order corresponds to. This draft defines a new type of identifier object called TNAuthList. A TNAuthList identifier contains the identity information to be populated in the TN Authorization List of the new certificate. For the TNAuthList identifier, the new-order request MUST include a type set to the string “TNAuthList”. The value of the TNAuthList identifier MUST be set to the details of the TNAuthList requested.The format of the string that represents the TNAuthList MUST be constructed as a base64 encoding of the TN Authorization List certificate extension ASN.1 object. The TN Authorization List certificate extension ASN.1 syntax is defined in section 9.An example of an ACME order object “identifiers” field containing a TNAuthList certificate would look as follows,where the “value” object string represents the arbitrary length base64 encoded string.A full new-order request would look as follows,On receiving a valid new-order request, the CA creates an authorization object containing the challenge that the ACME client must satisfy to demonstrate authority for the identifiers specified by the new order (in this case, the TNAuthList identifier). The CA adds the authorization object URL to the “authorizations” field of the order object, and returns the order object to the ACME client in the body of a 201 (Created) response.On receiving the new-order response, the ACME client queries the referenced authorization object to obtain the challenges for the identifier contained in the new-order request as shown in the following example request and response.When processing a certificate order containing an identifier of type “TNAuthList”, a CA MUST use the Authority Token challenge mechanism defined in to verify that the requesting ACME client has authenticated and authorized control over the requested resources represented by the “TNAuthList” value.The challenge “token-authority” parameter is optional and only used in cases where the VoIP telephone network requires the CA to identify the Token Authority. This is currently not the case for the SHAKEN certificate framework governance, but may be used by other frameworks. If a “token-authority” parameter is present, then the ACME client MAY use the “token-authority” value to identify the URL representing the Token Authority that will provide the TNAuthList Authority Token response to the challenge. If the “token-authority” parameter is not present, then the ACME client MUST identify the Token Authority based on locally configured information or local policies.The ACME client MUST respond to the challenge by posting the TNAuthList Authority Token to the challenge URL identified in the returned ACME authorization object, an example of which follows.The specifics of the construction of the TNAuthList specific “atc” token is defined in the next section.The Telephone Number Authority List Authority Token (TNAuthList Authority Token) is an extension of the ACME Authority Token defined in .The TNAuthList Authority Token Protected header MUST comply with the Authority Token Protected header as defined in
.The TNAuthList Authority Token Payload MUST include the mandatory claims and MAY include the optional claims defined for the Authority Token detailed in the next subsections.The “iss” claim is an optional claim. It can be used as a URL identifying the Token Authority that issued the TNAuthList Authority Token beyond the “x5u” Header claim that identifies the location of the certificate of the Token Authority used to validate the TNAuthList Authority Token.The “exp” claim contains the DateTime value of the ending date and time that the TNAuthList Authority Token expires.The “jti” claim contains a unique identifier for this TNAuthList Authority Token transaction.The “atc” claim is the only claim specifically defined in this document. It contains a JSON object of three elements.a “TNAuthList” key with a string value equal to the TNAuthList identifier “value” string which MUST contain the base64 encoding of the TN Authorization List certificate extension ASN.1 object.a “ca” key with a boolean value set to either true when the requested certificate is allowed to be a CA cert for delegation uses or false when the requested certificate MUST NOT be a CA cert and only an end-entity certificatea “fingerprint” key with a fingerprint value equal to the fingerprint, as defined in , of the ACME account credentials. Specifically, the fingerprint value is a secure one-way hash of the Distinguished Encoding Rules (DER) form of the public key corresponding to the key pair the SP used to create the account with the ACME server. The fingerprint value consists of the name of the hash function, which shall be ‘SHA256’ for this specification, followed by the hash value itself. The hash value is represented as a sequence of uppercase hexadecimal bytes, separated by colons. The number of bytes is defined by the hash function.An example of the TNAuthList Authority Token is as follows,Following Section 5, the authority token should be acquired using a RESTful HTTP POST transaction as followsThe request will pass the account id as a string in the request parameter “id”. This string will be managed as an identifier specific to the authorities relationship with a CSP. There is assumed to also be a corresponding authentication procedure that can be verified for the success of this transaction. For example, an HTTP authorization header containing a valid authorization credentials as defined in Section 14.8.The body of the POST request MUST contain the “atc” JSON object that should be embedded in the token that is requested, for example the body should contain a JSON object as shown:The response to the POST request if successful MUST return a 200 OK with a JSON body that contains the TNAuthList Authority Token as a JSON object with a single key of “atc” and the base64 encoded string representing the atc token.An example successful response would be as follows:If the request is not successful, the response should indicate the error condition. Specifically, for the case that the authorization credentials are invalid, the response code MUST be 403 - Forbidden. If the Account ID provided does not exist or does not match credentials in Authorization header, the response MUST be 404 - Invalid account ID. Other 4xx and 5xx responses SHOULD follow standard HTTP error condition conventions.When the Token Authority creates the TnAuthList Authority Token, it is the responsibility of the Token Authority to validate that the information contained in the ASN.1 TNAuthList accurately represents the SPC or telephone number resources the ACME client is authorized to represent.Upon receiving a response to the challenge, the ACME server MUST perform the following steps to determine the validity of the response.Verify that the token contained in the Payload “atc” field is an TNAuthList Authority Token.Verify the TNAuthList Authority Token signature using the public key of the certificate referenced by the token’s “x5u” parameter.Verify that “atc” claim contains an identifier type of “TNAuthList”,Verify that the “atc” claim contains the equivalent base64 encoded TNAuthList certificate extension string value as the Identifier specified in the original challenge.Verify that the remaining claims are valid (e.g., verify that token has not expired)Verify that the “atc” claim “fingerprint” is validVerify that the “ca” claim boolean corresponds to the CSR request for either CA certificate or end-entity certificateIf all steps in the token validation process pass, then the CA MUST set the challenge object “status” to “valid”. If any step of the validation process fails, the “status” in the challenge object MUST be set to “invalid”.There are many scenarios and reasons to have various combinations of SPCs, TNs, and TN Ranges. has provided a somewhat unbounded set of combinations. It’s possible that a complex non-contiguous set of telephone numbers are being managed by a CSP. Best practice may be simply to split a set of non-contiguous numbers under management into multiple STI certificates to represent the various contiguous parts of the greater non-contiguous set of TNs, particularly if length of the set of values in identifier object grows to be too large.TBDThis document requests the addition of a new identifier object type that can be present in the identifier field of the ACME authorization object defined in .We would like to thank Richard Barnes and Russ Housley for valuable contributions to this document.Automatic Certificate Management Environment (ACME)Public Key Infrastructure 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 domain name(s) in the certificate. Today, this verification is done through 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 certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation. RFC EDITOR: PLEASE REMOVE THE FOLLOWING PARAGRAPH: The source for this draft is maintained in GitHub. Suggested changes should be submitted as pull requests at https://github.com/ietf-wg-acme/acme [1]. Instructions are on that page as well. Editorial changes can be managed in GitHub, but any substantive change should be discussed on the ACME mailing list (acme@ietf.org).ACME Challenges Using an Authority TokenSome 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.STIR Certificate DelegationThe Secure Telephone Identity Revisited (STIR) certificate profile provides a way to attest authority over telephone nunbers and related identifiers for the purpose of preventing telephone number spoofing. This specification details how that authority can be delegated from a parent certificate to a subordinate certificate, in cases where service providers grant credentials to enterprises or other customers capable of signing calls with STIR.Hypertext Transfer Protocol -- HTTP/1.1HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068. [STANDARDS-TRACK]The Base16, Base32, and Base64 Data EncodingsThis document describes the commonly used base 64, base 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. [STANDARDS-TRACK]Internet Security Glossary, Version 2This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.Secure Telephone Identity Problem Statement and RequirementsOver the past decade, Voice over IP (VoIP) systems based on SIP have replaced many traditional telephony deployments. Interworking VoIP 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 orchestrating bulk commercial calling schemes, hacking voicemail boxes, or even circumventing multi-factor authentication systems trusted by banks. Despite previous attempts 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. This document examines the reasons why providing identity for telephone numbers on 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 sessions. It also gives high-level requirements for a solution in this space.Authenticated Identity Management in the Session Initiation Protocol (SIP)The baseline security mechanisms in the Session Initiation Protocol (SIP) are inadequate for cryptographically assuring the identity of the end users that originate SIP requests, especially in an interdomain context. This document defines a mechanism for securely identifying originators of SIP requests. It does so by defining a SIP header field for conveying a signature used for validating the identity and for conveying a reference to the credentials of the signer.This document obsoletes RFC 4474.PASSporT: Personal Assertion TokenThis document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications. The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination. The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel. PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.Secure Telephone Identity Credentials: CertificatesIn order to prevent the impersonation of telephone numbers on the Internet, some kind of credential system needs to exist that cryptographically asserts authority over telephone numbers. This document describes the use of certificates in establishing authority over telephone numbers, as a component of a broader architecture for managing telephone numbers as identities in protocols like SIP.Signature-based Handling of Asserted information using toKENs (SHAKEN) <https://access.atis.org/apps/group_public/download.php/32237/ATIS-1000074.pdf>ATIS/SIP Forum NNI Task GroupSignature-based Handling of Asserted information using toKENs (SHAKEN) Governance Model and Certificate Management <https://access.atis.org/apps/group_public/download.php/32237/ATIS-1000080.pdf>ATIS/SIP Forum NNI Task GroupKey words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.