| rfc9582.original | rfc9582.txt | |||
|---|---|---|---|---|
| Network Working Group J. Snijders | Internet Engineering Task Force (IETF) J. Snijders | |||
| Internet-Draft Fastly | Request for Comments: 9582 Fastly | |||
| Obsoletes: 6482 (if approved) B. Maddison | Obsoletes: 6482 B. Maddison | |||
| Intended status: Standards Track Workonline | Category: Standards Track Workonline | |||
| Expires: 16 June 2024 M. Lepinski | ISSN: 2070-1721 M. Lepinski | |||
| Carleton College | Carleton College | |||
| D. Kong | D. Kong | |||
| Raytheon | Raytheon | |||
| S. Kent | S. Kent | |||
| Independent | Independent | |||
| 14 December 2023 | May 2024 | |||
| A Profile for Route Origin Authorizations (ROAs) | A Profile for Route Origin Authorizations (ROAs) | |||
| draft-ietf-sidrops-rfc6482bis-09 | ||||
| Abstract | Abstract | |||
| This document defines a standard profile for Route Origin | This document defines a standard profile for Route Origin | |||
| Authorizations (ROAs). A ROA is a digitally signed object that | Authorizations (ROAs). A ROA is a digitally signed object that | |||
| provides a means of verifying that an IP address block holder has | provides a means of verifying that an IP address block holder has | |||
| authorized an Autonomous System (AS) to originate routes to one or | authorized an Autonomous System (AS) to originate routes to one or | |||
| more prefixes within the address block. This document obsoletes RFC | more prefixes within the address block. This document obsoletes RFC | |||
| 6482. | 6482. | |||
| Requirements Language | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in BCP | ||||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
| working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
| and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
| time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9582. | |||
| material or to cite them other than as "work in progress." | ||||
| This Internet-Draft will expire on 16 June 2024. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2024 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Changes from RFC6482 . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
| 2. Related Work . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Changes from RFC 6482 | |||
| 3. The ROA ContentType . . . . . . . . . . . . . . . . . . . . . 4 | 2. Related Work | |||
| 4. The ROA eContent . . . . . . . . . . . . . . . . . . . . . . 4 | 3. The ROA Content Type | |||
| 4.1. Element version . . . . . . . . . . . . . . . . . . . . . 5 | 4. The ROA eContent | |||
| 4.2. Element asID . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. The version Element | |||
| 4.3. Element ipAddrBlocks . . . . . . . . . . . . . . . . . . 6 | 4.2. The asID Element | |||
| 4.3.1. Type ROAIPAddressFamily . . . . . . . . . . . . . . . 6 | 4.3. The ipAddrBlocks Element | |||
| 4.3.2. Type ROAIPAddress . . . . . . . . . . . . . . . . . . 6 | 4.3.1. Type ROAIPAddressFamily | |||
| 4.3.3. Canonical form for ipAddrBlocks . . . . . . . . . . . 7 | 4.3.2. Type ROAIPAddress | |||
| 5. ROA Validation . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.3.3. Canonical Form for ipAddrBlocks | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 5. ROA Validation | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations | |||
| 7. IANA Considerations | ||||
| 7.1. SMI Security for S/MIME CMS Content Type | 7.1. SMI Security for S/MIME CMS Content Type | |||
| (1.2.840.113549.1.9.16.1) . . . . . . . . . . . . . . . . 10 | (1.2.840.113549.1.9.16.1) | |||
| 7.2. RPKI Signed Objects sub-registry . . . . . . . . . . . . 10 | 7.2. RPKI Signed Objects Registry | |||
| 7.3. File Extension . . . . . . . . . . . . . . . . . . . . . 10 | 7.3. File Extension | |||
| 7.4. SMI Security for S/MIME Module Identifier | 7.4. SMI Security for S/MIME Module Identifier | |||
| (1.2.840.113549.1.9.16.0) . . . . . . . . . . . . . . . . 11 | (1.2.840.113549.1.9.16.0) | |||
| 7.5. Media Type . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.5. Media Type | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. References | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 8.1. Normative References | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References | |||
| Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 13 | Appendix A. Example ROA eContent Payload | |||
| Appendix B. Example ROA eContent Payload . . . . . . . . . . . . 14 | Acknowledgements | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| The primary purpose of the Resource Public Key Infrastructure (RPKI) | The primary purpose of the Resource Public Key Infrastructure (RPKI) | |||
| is to improve routing security. (See [RFC6480] for more | is to improve routing security. (See [RFC6480] for more | |||
| information.) As part of this system, a mechanism is needed to allow | information.) As part of this system, a mechanism is needed to allow | |||
| entities to verify that an AS has been given permission by an IP | entities to verify that an Autonomous System (AS) has been given | |||
| address block holder to advertise routes to one or more prefixes | permission by an IP address block holder to advertise routes to one | |||
| within that block. A ROA provides this function. | or more prefixes within that block. A Route Origin Authorization | |||
| (ROA) provides this function. | ||||
| The ROA makes use of the template for RPKI digitally signed objects | The ROA makes use of the template for RPKI digitally signed objects | |||
| [RFC6488], which defines a Crytopgraphic Message Syntax (CMS) | [RFC6488], which defines a Cryptographic Message Syntax (CMS) wrapper | |||
| [RFC5652] wrapper for the ROA content as well as a generic validation | [RFC5652] for the ROA content as well as a generic validation | |||
| procedure for RPKI signed objects. Therefore, to complete the | procedure for RPKI signed objects. Therefore, to complete the | |||
| specification of the ROA (see Section 4 of [RFC6488]), this document | specification of the ROA (see Section 4 of [RFC6488]), this document | |||
| defines: | defines: | |||
| * The OID that identifies the signed object as being a ROA. (This | * The OID that identifies the signed object as being a ROA. (This | |||
| OID appears within the eContentType in the encapContentInfo object | OID appears within the eContentType in the encapContentInfo object | |||
| as well as the content-type signed attribute in the signerInfo | as well as the content-type signed attribute in the signerInfo | |||
| object). | object.) | |||
| * The ASN.1 syntax for the ROA eContent. (This is the payload that | * The ASN.1 syntax for the ROA eContent. (This is the payload that | |||
| specifies the AS being authorized to originate routes as well as | specifies the AS being authorized to originate routes as well as | |||
| the prefixes to which the AS may originate routes.) The ROA | the prefixes to which the AS may originate routes.) The ROA | |||
| eContent is ASN.1 encoded using the Distinguished Encoding Rules | eContent is ASN.1 encoded using the Distinguished Encoding Rules | |||
| (DER) [X.690]. | (DER) [X.690]. | |||
| * Additional steps required to validate ROAs (in addition to the | * Additional steps required to validate ROAs (in addition to the | |||
| validation steps specified in [RFC6488]). | validation steps specified in [RFC6488]). | |||
| 1.1. Changes from RFC6482 | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in | ||||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 1.2. Changes from RFC 6482 | ||||
| This section summarizes the significant changes between [RFC6482] and | This section summarizes the significant changes between [RFC6482] and | |||
| the profile described in this document. | the profile described in this document. | |||
| * Clarified the requirements for the IP Addresses and AS Identifiers | * Clarified the requirements for the IP address and AS identifier | |||
| X.509 certificate extensions. | X.509 certificate extensions. | |||
| * Strengthened the ASN.1 formal notation and definitions. | * Strengthened the ASN.1 formal notation and definitions. | |||
| * Incorporated RFC 6482 Errata. | * Incorporated errata for RFC 6482. | |||
| * Added an example ROA eContent payload and an ROA. | * Added an example ROA eContent payload, and a complete ROA | |||
| (Appendix A). | ||||
| * Specified a canonicalization procedure for the content of | * Specified a canonicalization procedure for the content of | |||
| ipAddrBlocks. | ipAddrBlocks. | |||
| 2. Related Work | 2. Related Work | |||
| It is assumed that the reader is familiar with the terms and concepts | It is assumed that the reader is familiar with the terms and concepts | |||
| described in "Internet X.509 Public Key Infrastructure Certificate | described in "Internet X.509 Public Key Infrastructure Certificate | |||
| and Certificate Revocation List (CRL) Profile" [RFC5280] and "X.509 | and Certificate Revocation List (CRL) Profile" [RFC5280] and "X.509 | |||
| Extensions for IP Addresses and AS Identifiers" [RFC3779]. | Extensions for IP Addresses and AS Identifiers" [RFC3779]. | |||
| Additionally, this document makes use of the RPKI signed object | Additionally, this document makes use of the RPKI signed object | |||
| profile [RFC6488]; thus, familiarity with that document is assumed. | profile [RFC6488]; thus, familiarity with that document is assumed. | |||
| Note that the RPKI signed object profile makes use of certificates | Note that the RPKI signed object profile makes use of certificates | |||
| adhering to the RPKI Resource Certificate Profile [RFC6487]; thus, | adhering to the RPKI resource certificate profile [RFC6487]; thus, | |||
| familiarly with that profile is also assumed. | familiarity with that profile is also assumed. | |||
| 3. The ROA ContentType | 3. The ROA Content Type | |||
| The content-type for a ROA is defined as routeOriginAuthz and has the | The content-type for a ROA is defined as id-ct-routeOriginAuthz and | |||
| numerical value of 1.2.840.113549.1.9.16.1.24. | has the numerical value 1.2.840.113549.1.9.16.1.24. | |||
| This OID MUST appear both within the eContentType in the | This OID MUST appear within both the eContentType in the | |||
| encapContentInfo object as well as the ContentType signed attribute | encapContentInfo object and the content-type signed attribute in the | |||
| in the signerInfo object (see [RFC6488]). | signerInfo object (see [RFC6488]). | |||
| 4. The ROA eContent | 4. The ROA eContent | |||
| The content of a ROA identifies a single AS that has been authorized | The content of a ROA identifies a single AS that has been authorized | |||
| by the address space holder to originate routes and a list of one or | by the address space holder to originate routes and a list of one or | |||
| more IP address prefixes that will be advertised. If the address | more IP address prefixes that will be advertised. If the address | |||
| space holder needs to authorize multiple ASes to advertise the same | space holder needs to authorize multiple ASes to advertise the same | |||
| set of address prefixes, the holder issues multiple ROAs, one per AS | set of address prefixes, the holder issues multiple ROAs, one per AS | |||
| number. A ROA is formally defined as: | number. A ROA is formally defined as: | |||
| RPKI-ROA-2023 { iso(1) member-body(2) us(840) rsadsi(113549) | RPKI-ROA-2023 | |||
| pkcs(1) pkcs9(9) smime(16) mod(0) id-mod-rpkiROA-2023(TBD) } | { iso(1) member-body(2) us(840) rsadsi(113549) | |||
| pkcs(1) pkcs9(9) smime(16) mod(0) | ||||
| id-mod-rpkiROA-2023(75) } | ||||
| DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
| BEGIN | BEGIN | |||
| IMPORTS | IMPORTS | |||
| CONTENT-TYPE | CONTENT-TYPE | |||
| FROM CryptographicMessageSyntax-2010 -- in [RFC6268] | FROM CryptographicMessageSyntax-2010 -- in [RFC6268] | |||
| { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) | { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) | |||
| pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) } ; | pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) } ; | |||
| skipping to change at page 5, line 16 ¶ | skipping to change at line 204 ¶ | |||
| RouteOriginAttestation ::= SEQUENCE { | RouteOriginAttestation ::= SEQUENCE { | |||
| version [0] INTEGER DEFAULT 0, | version [0] INTEGER DEFAULT 0, | |||
| asID ASID, | asID ASID, | |||
| ipAddrBlocks SEQUENCE (SIZE(1..2)) OF ROAIPAddressFamily } | ipAddrBlocks SEQUENCE (SIZE(1..2)) OF ROAIPAddressFamily } | |||
| ASID ::= INTEGER (0..4294967295) | ASID ::= INTEGER (0..4294967295) | |||
| ROAIPAddressFamily ::= SEQUENCE { | ROAIPAddressFamily ::= SEQUENCE { | |||
| addressFamily ADDRESS-FAMILY.&afi ({AddressFamilySet}), | addressFamily ADDRESS-FAMILY.&afi ({AddressFamilySet}), | |||
| addresses ADDRESS-FAMILY.&Addresses ({AddressFamilySet}{@addressFamily}) } | addresses ADDRESS-FAMILY.&Addresses | |||
| ({AddressFamilySet}{@addressFamily}) } | ||||
| ADDRESS-FAMILY ::= CLASS { | ADDRESS-FAMILY ::= CLASS { | |||
| &afi OCTET STRING (SIZE(2)) UNIQUE, | &afi OCTET STRING (SIZE(2)) UNIQUE, | |||
| &Addresses | &Addresses | |||
| } WITH SYNTAX { AFI &afi ADDRESSES &Addresses } | } WITH SYNTAX { AFI &afi ADDRESSES &Addresses } | |||
| AddressFamilySet ADDRESS-FAMILY ::= | AddressFamilySet ADDRESS-FAMILY ::= | |||
| { addressFamilyIPv4 | addressFamilyIPv6 } | { addressFamilyIPv4 | addressFamilyIPv6 } | |||
| addressFamilyIPv4 ADDRESS-FAMILY ::= | addressFamilyIPv4 ADDRESS-FAMILY ::= | |||
| { AFI afi-IPv4 ADDRESSES ROAAddressesIPv4 } | { AFI afi-IPv4 ADDRESSES ROAAddressesIPv4 } | |||
| addressFamilyIPv6 ADDRESS-FAMILY ::= | addressFamilyIPv6 ADDRESS-FAMILY ::= | |||
| { AFI afi-IPv6 ADDRESSES ROAAddressesIPv6 } | { AFI afi-IPv6 ADDRESSES ROAAddressesIPv6 } | |||
| afi-IPv4 OCTET STRING ::= '0001'H | afi-IPv4 OCTET STRING ::= '0001'H | |||
| afi-IPv6 OCTET STRING ::= '0002'H | afi-IPv6 OCTET STRING ::= '0002'H | |||
| ROAAddressesIPv4 ::= SEQUENCE (SIZE(1..MAX)) OF ROAIPAddress{32} | ROAAddressesIPv4 ::= SEQUENCE (SIZE(1..MAX)) OF ROAIPAddress{ub-IPv4} | |||
| ROAAddressesIPv6 ::= SEQUENCE (SIZE(1..MAX)) OF ROAIPAddress{128} | ROAAddressesIPv6 ::= SEQUENCE (SIZE(1..MAX)) OF ROAIPAddress{ub-IPv6} | |||
| ROAIPAddress {INTEGER: len} ::= SEQUENCE { | ub-IPv4 INTEGER ::= 32 | |||
| address BIT STRING (SIZE(0..len)), | ub-IPv6 INTEGER ::= 128 | |||
| maxLength INTEGER (0..len) OPTIONAL } | ||||
| ROAIPAddress {INTEGER: ub} ::= SEQUENCE { | ||||
| address BIT STRING (SIZE(0..ub)), | ||||
| maxLength INTEGER (0..ub) OPTIONAL } | ||||
| END | END | |||
| 4.1. Element version | 4.1. The version Element | |||
| The version number of the RouteOriginAttestation MUST be 0. | The version number of the RouteOriginAttestation entry MUST be 0. | |||
| 4.2. Element asID | 4.2. The asID Element | |||
| The asID element contains the AS number that is authorized to | The asID element contains the AS number that is authorized to | |||
| originate routes to the given IP address prefixes. | originate routes to the given IP address prefixes. | |||
| 4.3. Element ipAddrBlocks | 4.3. The ipAddrBlocks Element | |||
| The ipAddrBlocks element encodes the set of IP address prefixes to | The ipAddrBlocks element encodes the set of IP address prefixes to | |||
| which the AS is authorized to originate routes. Note that the syntax | which the AS is authorized to originate routes. Note that the syntax | |||
| here is more restrictive than that used in the IP Address Delegation | here is more restrictive than that used in the IP address delegation | |||
| extension defined in [RFC3779]. That extension can represent | extension defined in [RFC3779]. That extension can represent | |||
| arbitrary address ranges, whereas ROAs need to represent only IP | arbitrary address ranges, whereas ROAs need to represent only IP | |||
| prefixes. | prefixes. | |||
| 4.3.1. Type ROAIPAddressFamily | 4.3.1. Type ROAIPAddressFamily | |||
| Within the ROAIPAddressFamily structure, the addressFamily element | Within the ROAIPAddressFamily structure, the addressFamily element | |||
| contains the Address Family Identifier (AFI) of an IP address family. | contains the Address Family Identifier (AFI) of an IP address family. | |||
| This specification only supports IPv4 and IPv6, therefore | This specification only supports IPv4 and IPv6; therefore, | |||
| addressFamily MUST be either 0001 or 0002. IPv4 prefixes MUST NOT | addressFamily MUST be either 0001 or 0002. IPv4 prefixes MUST NOT | |||
| appear as IPv4-Mapped IPv6 Addresses (section 2.5.5.2 of [RFC4291]). | appear as IPv4-mapped IPv6 addresses (Section 2.5.5.2 of [RFC4291]). | |||
| There MUST be only one instance of ROAIPAddressFamily per unique AFI | There MUST be only one instance of ROAIPAddressFamily per unique AFI | |||
| in the ROA. Thus, the ROAIPAddressFamily structure MUST NOT appear | in the ROA. Thus, the ROAIPAddressFamily structure MUST NOT appear | |||
| more than twice. | more than twice. | |||
| The addresses element represents IP prefixes as a sequence of type | The addresses field contains IP prefixes as a sequence of type | |||
| ROAIPAddress. | ROAIPAddress. | |||
| 4.3.2. Type ROAIPAddress | 4.3.2. Type ROAIPAddress | |||
| A ROAIPAddress structure is a sequence containing an address element | A ROAIPAddress structure is a sequence containing an address element | |||
| of type IPAddress and an optional maxLength element of type INTEGER. | of type BIT STRING and an optional maxLength element of type INTEGER. | |||
| See section 2.2.3.8 of [RFC3779] for more details on type IPAddress. | ||||
| 4.3.2.1. Element address | 4.3.2.1. The address Element | |||
| The address element is of type IPAddress and represents a single IP | The address element is of type BIT STRING and represents a single IP | |||
| address prefix. | address prefix. This field uses the same representation of an IP | |||
| address prefix as a BIT STRING as the IPAddress type defined in | ||||
| Section 2.2.3.8 of [RFC3779]. | ||||
| 4.3.2.2. Element maxLength | 4.3.2.2. The maxLength Element | |||
| When present, the maxLength specifies the maximum length of the IP | When present, the maxLength element specifies the maximum length of | |||
| address prefix that the AS is authorized to advertise. The maxLength | the IP address prefix that the AS is authorized to advertise. The | |||
| element SHOULD NOT be encoded if the maximum length is equal to the | maxLength element SHOULD NOT be encoded if the maximum length is | |||
| prefix length. Certification Authorities SHOULD anticipate that | equal to the prefix length. Certification Authorities SHOULD | |||
| future Relying Parties will become increasingly stringent in | anticipate that future Relying Parties will become increasingly | |||
| considering the presence of superfluous maxLength elements an | stringent in considering the presence of superfluous maxLength | |||
| encoding error. | elements an encoding error. | |||
| If present, the maxLength MUST be: | If present, the maxLength element MUST be: | |||
| * an integer greater than or equal to the length of the accompanying | * an integer greater than or equal to the length of the accompanying | |||
| prefix, and | prefix, and | |||
| * less than or equal to the maximum length (in bits) of an IP | * less than or equal to the maximum length (in bits) of an IP | |||
| address in the applicable address family: 32 in case of IPv4 and | address in the applicable address family: 32 in the case of IPv4 | |||
| 128 in case of IPv6. | and 128 in the case of IPv6. | |||
| For example, if the IP address prefix is 203.0.113.0/24 and the | For example, if the IP address prefix is 203.0.113.0/24 and maxLength | |||
| maxLength is 26, the AS is authorized to advertise any more specific | is 26, the AS is authorized to advertise any more-specific prefix | |||
| prefix with a maximum length of 26. In this example, the AS would be | with a maximum length of 26. In this example, the AS would be | |||
| authorized to advertise 203.0.113.0/24, 203.0.113.128/25, or | authorized to advertise 203.0.113.0/24, 203.0.113.128/25, or | |||
| 203.0.113.192/26; but not 203.0.113.0/27. See [RFC9319] for more | 203.0.113.192/26, but not 203.0.113.0/27. See [RFC9319] for more | |||
| information on the use of maxLength. | information on the use of maxLength. | |||
| When the maxLength is not present, the AS is only authorized to | When the maxLength element is not present, the AS is only authorized | |||
| advertise the exact prefix specified in the ROAIPAddress' address | to advertise the exact prefix specified in the ROAIPAddress | |||
| element. | structure's address element. | |||
| 4.3.2.3. Note on overlapping or superfluous information encoding | 4.3.2.3. Note on Overlapping or Superfluous Information Encoding | |||
| Note that a valid ROA may contain an IP address prefix (within a | Note that a valid ROA may contain an IP address prefix (within a | |||
| ROAIPAddress element) that is encompassed by another IP address | ROAIPAddress element) that is encompassed by another IP address | |||
| prefix (within a separate ROAIPAddress element). For example, a ROA | prefix (within a separate ROAIPAddress element). For example, a ROA | |||
| may contain the prefix 203.0.113.0/24 with maxLength 26, as well as | may contain the prefix 203.0.113.0/24 with maxLength 26, as well as | |||
| the prefix 203.0.113.0/28 with maxLength 28. This ROA would | the prefix 203.0.113.0/28 with maxLength 28. This ROA would | |||
| authorize the indicated AS to advertise any prefix beginning with | authorize the indicated AS to advertise any prefix beginning with | |||
| 203.0.113 with a minimum length of 24 and a maximum length of 26, as | 203.0.113 with a minimum length of 24 and a maximum length of 26, as | |||
| well as the specific prefix 203.0.113.0/28. | well as the specific prefix 203.0.113.0/28. | |||
| Additionally, a ROA MAY contain two ROAIPAddress elements, where the | Additionally, a ROA MAY contain two ROAIPAddress elements, where the | |||
| IP address prefix is identical in both cases. However, this is NOT | IP address prefix is identical in both cases. However, this is NOT | |||
| RECOMMENDED as, in such a case, the ROAIPAddress with the shorter | RECOMMENDED, because in such a case, the ROAIPAddress element with | |||
| maxLength grants no additional privileges to the indicated AS and | the shorter maxLength grants no additional privileges to the | |||
| thus can be omitted without changing the meaning of the ROA. | indicated AS and thus can be omitted without changing the meaning of | |||
| the ROA. | ||||
| 4.3.3. Canonical form for ipAddrBlocks | 4.3.3. Canonical Form for ipAddrBlocks | |||
| As the data structure described by the ROA ASN.1 module allows for | As the data structure described by the ROA ASN.1 module allows for | |||
| many different ways to represent the same set of IP address | many different ways to represent the same set of IP address | |||
| information, a canonical form is defined such that every set of IP | information, a canonical form is defined such that every set of IP | |||
| address information has a unique representation. In order to produce | address information has a unique representation. In order to produce | |||
| and verify this canonical form, the process described in this section | and verify this canonical form, the process described in this section | |||
| SHOULD be used to ensure information elements are unique with respect | SHOULD be used to ensure that information elements are unique with | |||
| to one another and sorted in ascending order. Certification | respect to one another and sorted in ascending order. Certification | |||
| Authorities SHOULD anticipate that future Relying Parties will impose | Authorities SHOULD anticipate that future Relying Parties will impose | |||
| a strict requirement for the ipAddrBlocks field to be in this | a strict requirement for the ipAddrBlocks field to be in this | |||
| canonical form. This canonicalization procedure builds upon the | canonical form. This canonicalization procedure builds upon the | |||
| canonicalization procedure specified in section 2.2.3.6 of [RFC3779]. | canonicalization procedure specified in Section 2.2.3.6 of [RFC3779]. | |||
| In order to semantically compare, sort, and deduplicate the contents | In order to semantically compare, sort, and deduplicate the contents | |||
| of the ipAddrBlocks field, each ROAIPAddress element is mapped to an | of the ipAddrBlocks field, each ROAIPAddress element is mapped to an | |||
| abstract data element composed of four integer values: | abstract data element composed of four integer values: | |||
| afi The AFI value appearing in the addressFamily field of the | afi The AFI value appearing in the addressFamily field of the | |||
| containing ROAIPAddressFamily as an integer. | containing ROAIPAddressFamily as an integer. | |||
| addr The first IP address of the IP prefix appearing in the | addr The first IP address of the IP prefix appearing in the | |||
| ROAIPAddress address field, as a 32-bit (IPv4) or 128-bit (IPv6) | ROAIPAddress address field, as a 32-bit (IPv4) or 128-bit (IPv6) | |||
| integer value. | integer value. | |||
| plen The prefix length of the IP prefix appearing in the | plen The length of the IP prefix appearing in the ROAIPAddress | |||
| ROAIPAddress address field as an integer value. | address field as an integer value. | |||
| mlen The value appearing in the maxLength field of the ROAIPAddress, | mlen The value appearing in the maxLength field of the ROAIPAddress | |||
| if present, otherwise the above prefix length value. | element, if present; otherwise, the above prefix length value. | |||
| Thus, the equality or relative order of two ROAIPAddress elements can | Thus, the equality or relative order of two ROAIPAddress elements can | |||
| be tested by comparing their abstract representations. | be tested by comparing their abstract representations. | |||
| 4.3.3.1. Comparator | 4.3.3.1. Comparator | |||
| The set of ipAddrBlocks is totally ordered. The order of two | The set of ipAddrBlocks is totally ordered. The order of two | |||
| ipAddrBlocks is determined by the first non-equal comparison in the | ipAddrBlocks is determined by the first non-equal comparison in the | |||
| following list. | following list. | |||
| skipping to change at page 8, line 46 ¶ | skipping to change at line 383 ¶ | |||
| 3. Data elements with a lower plen value precede data elements with | 3. Data elements with a lower plen value precede data elements with | |||
| a higher plen value. | a higher plen value. | |||
| 4. Data elements with a lower mlen value precede data elements with | 4. Data elements with a lower mlen value precede data elements with | |||
| a higher mlen value. | a higher mlen value. | |||
| Data elements for which all four values compare equal are duplicates | Data elements for which all four values compare equal are duplicates | |||
| of one another. | of one another. | |||
| 4.3.3.2. Example implementations | 4.3.3.2. Example Implementations | |||
| A sorting implementation [roasort-c] in ISO/IEC 9899:1999 | * A sorting implementation [roasort-c] in ISO/IEC 9899:1999 | |||
| ("ANSI C99"). | ("ANSI C99"). | |||
| A sorting implementation [roasort-rs] in Rust 2021 Edition. | * A sorting implementation [roasort-rs] in the Rust 2021 Edition. | |||
| 5. ROA Validation | 5. ROA Validation | |||
| Before a relying party can use a ROA to validate a routing | Before a Relying Party can use a ROA to validate a routing | |||
| announcement, the relying party MUST first validate the ROA. To | announcement, the Relying Party MUST first validate the ROA. To | |||
| validate a ROA, the relying party MUST perform all the validation | validate a ROA, the Relying Party MUST perform all the validation | |||
| checks specified in [RFC6488] as well as the following additional | checks specified in [RFC6488] as well as the following additional | |||
| ROA-specific validation steps: | ROA-specific validation steps: | |||
| * The IP Address Delegation extension [RFC3779] is present in the | * The IP address delegation extension [RFC3779] is present in the | |||
| end-entity (EE) certificate (contained within the ROA), and every | end-entity (EE) certificate (contained within the ROA), and every | |||
| IP address prefix in the ROA payload is contained within the set | IP address prefix in the ROA payload is contained within the set | |||
| of IP addresses specified by the EE certificate's IP Address | of IP addresses specified by the EE certificate's IP address | |||
| Delegation extension. | delegation extension. | |||
| * The EE certificate's IP Address Delegation extension MUST NOT | * The EE certificate's IP address delegation extension MUST NOT | |||
| contain "inherit" elements described in [RFC3779]. | contain "inherit" elements as described in [RFC3779]. | |||
| * The Autonomous System Identifier Delegation Extension described in | * The Autonomous System identifier delegation extension described in | |||
| [RFC3779] is not used in Route Origin Authorizations and MUST NOT | [RFC3779] is not used in ROAs and MUST NOT be present in the EE | |||
| be present in the EE certificate. | certificate. | |||
| * The ROA content fully conforms with all requirements specified in | * The ROA content fully conforms with all requirements specified in | |||
| Section 3 and Section 4. | Sections 3 and 4. | |||
| If any of the above checks fail, the ROA in its entirety MUST be | If any of the above checks fail, the ROA in its entirety MUST be | |||
| considered invalid and an error SHOULD be logged. | considered invalid and an error SHOULD be logged. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| There is no assumption of confidentiality for the data in a ROA; it | There is no assumption of confidentiality for the data in a ROA; it | |||
| is anticipated that ROAs will be stored in repositories that are | is anticipated that ROAs will be stored in repositories that are | |||
| accessible to all ISPs, and perhaps to all Internet users. There is | accessible to all ISPs, and perhaps to all Internet users. There is | |||
| no explicit authentication associated with a ROA, since the PKI used | no explicit authentication associated with a ROA, since the PKI used | |||
| for ROA validation provides authorization but not authentication. | for ROA validation provides authorization but not authentication. | |||
| Although the ROA is a signed, application-layer object, there is no | Although the ROA is a signed, application-layer object, there is no | |||
| intent to convey non-repudiation via a ROA. | intent to convey non-repudiation via a ROA. | |||
| The purpose of a ROA is to convey authorization for an AS to | The purpose of a ROA is to convey authorization for an AS to | |||
| originate a route to the prefix(es) in the ROA. Thus, the integrity | originate a route to the prefix or prefixes in the ROA. Thus, the | |||
| of a ROA MUST be established. The ROA specification makes use of the | integrity of a ROA MUST be established. This ROA specification makes | |||
| RPKI signed object format; thus, all security considerations in | use of the RPKI signed object format; thus, all security | |||
| [RFC6488] also apply to ROAs. Additionally, the signed object | considerations discussed in [RFC6488] also apply to ROAs. | |||
| profile uses the CMS signed message format for integrity; thus, ROAs | Additionally, the signed object profile uses the CMS signed message | |||
| inherit all security considerations associated with that data | format for integrity; thus, ROAs inherit all security considerations | |||
| structure. | associated with that data structure. | |||
| The right of the ROA signer to authorize the target AS to originate | The right of the ROA signer to authorize the target AS to originate | |||
| routes to the prefix(es) is established through use of the address | routes to the prefix or prefixes is established through the use of | |||
| space and AS number PKI described in [RFC6480]. Specifically, one | the address space and AS number PKI as described in [RFC6480]. | |||
| MUST verify the signature on the ROA using an X.509 certificate | Specifically, one MUST verify the signature on the ROA using an X.509 | |||
| issued under this PKI, and check that the prefix(es) in the ROA are | certificate issued under this PKI and check that the prefix or | |||
| contained within those in the certificate's IP Address Delegation | prefixes in the ROA are contained within those in the certificate's | |||
| Extension. | IP address delegation extension. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| 7.1. SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1) | 7.1. SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1) | |||
| The IANA is requested to update the id-ct-routeOriginAuthz entry in | IANA has updated the id-ct-routeOriginAuthz entry in the "SMI | |||
| the "SMI Security for S/MIME CMS Content Type | Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)" | |||
| (1.2.840.113549.1.9.16.1)" registry as follows: | registry as follows: | |||
| Decimal Description References | +=========+========================+============+ | |||
| --------------------------------------------------------------- | | Decimal | Description | References | | |||
| 24 id-ct-routeOriginAuthz [RFC-to-be] | +=========+========================+============+ | |||
| | 24 | id-ct-routeOriginAuthz | RFC 9582 | | ||||
| +---------+------------------------+------------+ | ||||
| Upon publication of this document, IANA is requested to reference the | Table 1 | |||
| RFC publication instead of this draft. | ||||
| 7.2. RPKI Signed Objects sub-registry | 7.2. RPKI Signed Objects Registry | |||
| The IANA is requested to update the entry for the Route Origination | IANA has updated the Route Origination Authorization entry in the | |||
| Authorization in the "RPKI Signed Objects" registry created by | "RPKI Signed Objects" registry created by [RFC6488] as follows: | |||
| [RFC6488] as follows: | ||||
| Name OID Specification | +===================+============================+===========+ | |||
| Route Origination Authorization 1.2.840.113549.1.9.16.1.24 [RFC-to-be] | | Name | OID | Reference | | |||
| +===================+============================+===========+ | ||||
| | Route Origination | 1.2.840.113549.1.9.16.1.24 | RFC 9582 | | ||||
| | Authorization | | | | ||||
| +-------------------+----------------------------+-----------+ | ||||
| Table 2 | ||||
| 7.3. File Extension | 7.3. File Extension | |||
| The IANA is requested to update the entry for the ROA file extension | IANA has updated the entry for the ROA file extension in the "RPKI | |||
| in the "RPKI Repository Name Schemes" registry created by [RFC6481] | Repository Name Schemes" registry created by [RFC6481] as follows: | |||
| as follows: | ||||
| Filename Extension RPKI Object Reference | +====================+=================================+===========+ | |||
| .roa Route Origination Authorization [RFC-to-be] | | Filename Extension | RPKI Object | Reference | | |||
| +====================+=================================+===========+ | ||||
| | .roa | Route Origination Authorization | RFC 9582 | | ||||
| +--------------------+---------------------------------+-----------+ | ||||
| Upon publication of this document, IANA is requested to make this | Table 3 | |||
| addition permanent and to reference the RFC publication instead of | ||||
| this draft. | ||||
| 7.4. SMI Security for S/MIME Module Identifier | 7.4. SMI Security for S/MIME Module Identifier | |||
| (1.2.840.113549.1.9.16.0) | (1.2.840.113549.1.9.16.0) | |||
| The IANA is requested to allocate for this document in the "SMI | IANA has allocated the following entry in the "SMI Security for | |||
| Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" | S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" registry: | |||
| registry: | ||||
| Decimal Description Reference | +=========+=====================+============+ | |||
| -------------------------------------------- | | Decimal | Description | References | | |||
| TBD id-mod-rpkiROA-2023 [RFC-to-be] | +=========+=====================+============+ | |||
| | 75 | id-mod-rpkiROA-2023 | RFC 9582 | | ||||
| +---------+---------------------+------------+ | ||||
| Table 4 | ||||
| 7.5. Media Type | 7.5. Media Type | |||
| The IANA is requested to update the media type application/rpki-roa | IANA has updated the media type application/rpki-roa in the "Media | |||
| in the "Media Type" registry as follows: | Types" registry as follows: | |||
| Type name: application | Type name: application | |||
| Subtype name: rpki-roa | ||||
| Required parameters: N/A | Subtype name: rpki-roa | |||
| Optional parameters: N/A | ||||
| Encoding considerations: binary | Required parameters: N/A | |||
| Security considerations: Carries an RPKI ROA [RFC-to-be]. | ||||
| This media type contains no active content. See | Optional parameters: N/A | |||
| Section 6 of [RFC-to-be] for further information. | ||||
| Interoperability considerations: None | Encoding considerations: binary | |||
| Published specification: [RFC-to-be] | ||||
| Applications that use this media type: RPKI operators | Security considerations: Carries an RPKI ROA (RFC 9582). This media | |||
| Additional information: | type contains no active content. See Section 6 of RFC 9582 for | |||
| Content: This media type is a signed object, as defined | further information. | |||
| in [RFC6488], which contains a payload of a list of | ||||
| prefixes and an AS identifer as defined in [RFC-to-be]. | Interoperability considerations: None | |||
| Magic number(s): None | ||||
| File extension(s): .roa | Published specification: RFC 9582 | |||
| Macintosh file type code(s): | ||||
| Person & email address to contact for further information: | Applications that use this media type: RPKI operators | |||
| Job Snijders <job@fastly.com> | ||||
| Intended usage: COMMON | Additional information: | |||
| Restrictions on usage: None | ||||
| Change controller: IETF | Content: This media type is a signed object, as defined in | |||
| [RFC6488], which contains a payload of a list of prefixes and | ||||
| an AS identifier as defined in RFC 9582. | ||||
| Magic number(s): None | ||||
| File extension(s): .roa | ||||
| Macintosh file type code(s): None | ||||
| Person & email address to contact for further information: | ||||
| Job Snijders <job@fastly.com> | ||||
| Intended usage: COMMON | ||||
| Restrictions on usage: None | ||||
| Change controller: IETF | ||||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [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>. | |||
| [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | |||
| Addresses and AS Identifiers", RFC 3779, | Addresses and AS Identifiers", RFC 3779, | |||
| DOI 10.17487/RFC3779, June 2004, | DOI 10.17487/RFC3779, June 2004, | |||
| skipping to change at page 13, line 9 ¶ | skipping to change at line 596 ¶ | |||
| [RFC6488] Lepinski, M., Chi, A., and S. Kent, "Signed Object | [RFC6488] Lepinski, M., Chi, A., and S. Kent, "Signed Object | |||
| Template for the Resource Public Key Infrastructure | Template for the Resource Public Key Infrastructure | |||
| (RPKI)", RFC 6488, DOI 10.17487/RFC6488, February 2012, | (RPKI)", RFC 6488, DOI 10.17487/RFC6488, February 2012, | |||
| <https://www.rfc-editor.org/info/rfc6488>. | <https://www.rfc-editor.org/info/rfc6488>. | |||
| [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, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [X.690] ITU-T, "Information Technology -- ASN.1 encoding rules: | [X.690] ITU-T, "Information Technology - ASN.1 encoding rules: | |||
| Specification of Basic Encoding Rules (BER), Canonical | Specification of Basic Encoding Rules (BER), Canonical | |||
| Encoding Rules (CER) and Distinguished Encoding Rules | Encoding Rules (CER) and Distinguished Encoding Rules | |||
| (DER)", ITU-T Recommendation X.690, 2015. | (DER)", ITU-T Recommendation X.690, February 2021. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [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>. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
| skipping to change at page 13, line 37 ¶ | skipping to change at line 624 ¶ | |||
| Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, | Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, | |||
| February 2012, <https://www.rfc-editor.org/info/rfc6480>. | February 2012, <https://www.rfc-editor.org/info/rfc6480>. | |||
| [RFC9319] Gilad, Y., Goldberg, S., Sriram, K., Snijders, J., and B. | [RFC9319] Gilad, Y., Goldberg, S., Sriram, K., Snijders, J., and B. | |||
| Maddison, "The Use of maxLength in the Resource Public Key | Maddison, "The Use of maxLength in the Resource Public Key | |||
| Infrastructure (RPKI)", BCP 185, RFC 9319, | Infrastructure (RPKI)", BCP 185, RFC 9319, | |||
| DOI 10.17487/RFC9319, October 2022, | DOI 10.17487/RFC9319, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9319>. | <https://www.rfc-editor.org/info/rfc9319>. | |||
| [roasort-c] | [roasort-c] | |||
| Snijders, J., "ROA sorter in C", | Snijders, J., "ROA sorter in C", commit 68969ea, July | |||
| <https://github.com/job/roasort>. | 2023, <https://github.com/job/roasort>. | |||
| [roasort-rs] | [roasort-rs] | |||
| Maddison, B., "ROA sorter in Rust", | Maddison, B., "ROA sorter in Rust", commit 023e756, August | |||
| <https://github.com/benmaddison/roasort>. | 2023, <https://github.com/benmaddison/roasort>. | |||
| Appendix A. Acknowledgements | Appendix A. Example ROA eContent Payload | |||
| The authors wish to thank Theo Buehler, Ties de Kock, Martin | An example of a DER-encoded ROA eContent is provided below, with | |||
| Hoffmann, Charles Gardiner, Russ Housley, Jeffrey Haas, and Bob Beck | annotation following the "#" character. | |||
| for their help and contributions. Additionally, the authors thank | ||||
| Jim Fenton, Vijay Gurbani, Haoyu Song, Rob Austein, Roque Gagliano, | ||||
| Danny McPherson, Sam Weiler, Jasdip Singh, and Murray S. Kucherawy | ||||
| for their careful reviews and helpful comments. | ||||
| Appendix B. Example ROA eContent Payload | $ echo 16i 301802030100003011300F040200023009300703050020010DB8 P \ | |||
| | dc | openssl asn1parse -inform DER -i -dump | ||||
| 0:d=0 hl=2 l= 24 cons: SEQUENCE # RouteOriginAttestation | ||||
| 2:d=1 hl=2 l= 3 prim: INTEGER :010000 # asID 65536 | ||||
| 7:d=1 hl=2 l= 17 cons: SEQUENCE # ipAddrBlocks | ||||
| 9:d=2 hl=2 l= 15 cons: SEQUENCE # ROAIPAddressFamily | ||||
| 11:d=3 hl=2 l= 2 prim: OCTET STRING # addressFamily | ||||
| 0000 - 00 02 # IPv6 | ||||
| 15:d=3 hl=2 l= 9 cons: SEQUENCE # addresses | ||||
| 17:d=4 hl=2 l= 7 cons: SEQUENCE # ROAIPAddress | ||||
| 19:d=5 hl=2 l= 5 prim: BIT STRING # 2001:db8::/32 | ||||
| 0000 - 00 20 01 0d b8 | ||||
| Below an example of a DER encoded ROA eContent is provided with | Below is a complete RPKI ROA signed object, Base64 encoded per | |||
| annotation following the '#' character. | [RFC4648]. | |||
| $ echo 302402023CCA301E301C04020002301630090307002001067C208C30090307002A0EB2400000 \ | MIIGgAYJKoZIhvcNAQcCoIIGcTCCBm0CAQMxDTALBglghkgBZQMEAgEwKwYLKoZI | |||
| | xxd -r -ps \ | hvcNAQkQARigHAQaMBgCAwEAADARMA8EAgACMAkwBwMFACABDbigggR8MIIEeDCC | |||
| | openssl asn1parse -i -dump -inform DER | A2CgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAvMS0wKwYDVQQDEyQ4NjUyNWNkNS00 | |||
| 0:d=0 hl=2 l= 36 cons: SEQUENCE # RouteOriginAttestation | NGQ3LTRkZjktODA3OS00YTlkY2RmMjY5NDQwHhcNMjQwNTAxMDAzNDEzWhcNMjUw | |||
| 2:d=1 hl=2 l= 2 prim: INTEGER :3CCA # asID 15562 | NTAxMDAzNDEzWjAvMS0wKwYDVQQDEyRlYjg3NmJmMC1lYTlkLTRiMjItYTExZS0y | |||
| 6:d=1 hl=2 l= 30 cons: SEQUENCE # ipAddrBlocks | YmNhZDA4MzliMTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsPSYD | |||
| 8:d=2 hl=2 l= 28 cons: SEQUENCE # ROAIPAddressFamily | JnGOFRSHUZuVxibx2TQfWWoPIHNKgQAwYn1Kz88HaGgVf63G1mJd/cxBNMj5AfNQ | |||
| 10:d=3 hl=2 l= 2 prim: OCTET STRING # addressFamily | m2zKSAb83UAp97DUXf+lvoKj4F+lxCCjFaBpBeehc7X0XPDpbcbqo1YrzIzxxqou | |||
| 0000 - 00 02 .. # IPv6 | GijEwZ4k+BaM2avEFYMBszqWA+ZdneBSuZ3YbHPKp2royn4pJ9a1I5fYdqFQi0eo | |||
| 14:d=3 hl=2 l= 22 cons: SEQUENCE # addresses | VZbAc8pZmwRVOuedYYqQiy9CSRGsbiGlB0fKt2m/zSsuvl4Zit7+NyGL3wAZecjZ | |||
| 16:d=4 hl=2 l= 9 cons: SEQUENCE # ROAIPAddress | XEInsTtQsjQuy5PeJjLDyfWi/ZFi0qPsNlK0M2lMsi5B7QKaagA1RbRVHZyrkWoe | |||
| 18:d=5 hl=2 l= 7 prim: BIT STRING # address | 20l5rfk1bIGMv/plAgMBAAGjggGdMIIBmTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O | |||
| 0000 - 00 20 01 06 7c 20 8c . ..| . # 2001:67c:208c::/48 | BBYEFN4UWxk/syCyWnRDVSmMi/fCUj0iMB8GA1UdIwQYMBaAFNZyCOpHDp1t1mVA | |||
| 27:d=4 hl=2 l= 9 cons: SEQUENCE # ROAIPAddress | IvVTrcE4mrQ0MBgGA1UdIAEB/wQOMAwwCgYIKwYBBQUHDgIwWgYIKwYBBQUHAQEE | |||
| 29:d=5 hl=2 l= 7 prim: BIT STRING # address | TjBMMEoGCCsGAQUFBzAChj5yc3luYzovL3Jwa2kuZXhhbXBsZS5uZXQvcmVwby8x | |||
| 0000 - 00 2a 0e b2 40 .*..@ # 2a0e:b240::/48 | bklJNmtjT25XM1daVUFpOVZPdHdUaWF0RFNnLmNlcjBRBgNVHR8ESjBIMEagRKBC | |||
| 0007 - <SPACES/NULS> | hkByc3luYzovL3Jwa2kuZXhhbXBsZS5uZXQvcmVwby9BLzFuSUk2a2NPblczV1pV | |||
| QWk5Vk90d1RpYXREU2cuY3JsMFwGCCsGAQUFBwELBFAwTjBMBggrBgEFBQcwC4ZA | ||||
| cnN5bmM6Ly9ycGtpLmV4YW1wbGUubmV0L3JlcG8vQS8zaFJiR1QteklMSmFkRU5W | ||||
| S1l5TDk4SlNQU0tnLnJvYTAgBggrBgEFBQcBBwEB/wQRMA8wDQQCAAIwBwMFACAB | ||||
| DbgwDQYJKoZIhvcNAQELBQADggEBAKFoMax1Gdxb9mvSfKE2Jo+DudqCGjWF3mGv | ||||
| rkhag8CQYi2CBJZLrkpCRha8doBW4PbrL36waWG55A/TdLKvWzAf66/v3iL5QcXo | ||||
| Krb0+fp1pu/YVK4xFxwYJhbX4OnL4Gqh9+t4fFXhEDj2QemlgjWZyxvgx2Sra/iK | ||||
| fOt6gxUhie3oIT+FiYjqF//WIUBP/HjTf+E4IRGN8tCr3NDhMZG6c0njq2keW7w4 | ||||
| wnw1+GqSyDhqu0Rsr0m3XUbivkc+h0ZZBBS9SxPM+GfgdzEDV51VcK1SeMa3G3Ca | ||||
| j0cJA99eTM+j52tkNVupftv1Y+4Wt0XGLKmRNKw26XDaphzw3B8xggGqMIIBpgIB | ||||
| A4AU3hRbGT+zILJadENVKYyL98JSPSIwCwYJYIZIAWUDBAIBoGswGgYJKoZIhvcN | ||||
| AQkDMQ0GCyqGSIb3DQEJEAEYMBwGCSqGSIb3DQEJBTEPFw0yNDA1MDEwMDM0MTNa | ||||
| MC8GCSqGSIb3DQEJBDEiBCBlz4HExs5A69pxkJqTCbUvc2iTS7C4eDd3aJD4hYJS | ||||
| wjANBgkqhkiG9w0BAQEFAASCAQBa2wmuDHbcvfnMRIaOJ6m30zpCZtJVBLDELoA0 | ||||
| 2kLb18TfFbxQhUi/jZ9g0hNYksV0n4vOJnCQ3qP6IIfm0ZsKzRnyzZf3f2xegw2p | ||||
| Wzi9Z8QYlc//eY3+XA3bQ37h+s0r7OZkQH7+KmIwDOCYaLh/YB37wp/7giC7bpvi | ||||
| c2Fv2illQmctrK7tYDHsNGq+svULTjemUaklqfcRAAJnQTRzTz8So9wKY9SR2VVZ | ||||
| 68DDItTBUx8jPYeNQtvxxoVA6HuW9wyurlYQ9m/cF8CzlizVmsHgxzjO9ifmYJj9 | ||||
| YZWMLtjF7Xw1fQZLYMrD5DCZzUw3nv4GyyHxckm2kLF38mze | ||||
| Below is a complete Base64 [RFC4648] encoded RPKI ROA Signed Object. | The object in this appendix has the following properties: | |||
| MIIHCwYJKoZIhvcNAQcCoIIG/DCCBvgCAQMxDTALBglghkgBZQMEAgEwNwYLKoZIhvcNAQkQ | Object size: 1668 octets | |||
| ARigKAQmMCQCAjzKMB4wHAQCAAIwFjAJAwcAIAEGfCCMMAkDBwAqDrJAAACgggT7MIIE9zCC | Object SHA256 message digest: | |||
| A9+gAwIBAgIDAIb5MA0GCSqGSIb3DQEBCwUAMDMxMTAvBgNVBAMTKDM4ZTE0ZjkyZmRjN2Nj | 3a39e0b652e79ddf6efdd178ad5e3b29e0121b1e593b89f1e0ac18f3ba60d5e7 | |||
| ZmJmYzE4MjM2MTUyM2FlMjdkNjk3ZTk1MmYwHhcNMjIwNjE3MDAyNDIyWhcNMjMwNzAxMDAw | ||||
| MDAwWjAzMTEwLwYDVQQDEyhBM0Q5NjQyNDU3NDlCQjZERDVBQjFGMkU4MzBFMzNBNkM1MTQ2 | ||||
| RThGMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4CRG1t04YFLq3fctx2ThNfr6 | ||||
| Vxsd2wZzcZhQJgUdlvUyfUPISWMwuPfpGjviqtCEzh5aNePGpLopkIES08egzTmJ78Is6+kW | ||||
| LXwy9CcwT7gmP9qOTSEi8h4qcyajxHbAwDEjROVNSujhLGeB74S9IQTn2Ertp2Et2xPq/kXw | ||||
| +eiBHtOL2h2I7/UOZxHOHuNuHby+VbhFaxgPA7rVfdlUAf9yYxQvyZtB7kHT/EwAR4c9SYWu | ||||
| 0rvbWNJwWehzlT74V1XaknRXQjkKYHe34Fyyx9FY86uX4uN8rPuIzkd7n6g81pUZRIuk/3tc | ||||
| /DjbHNAD3qWVQ+0aqNdkunoJhQccZwIDAQABo4ICEjCCAg4wHQYDVR0OBBYEFKPZZCRXSbtt | ||||
| 1asfLoMOM6bFFG6PMB8GA1UdIwQYMBaAFDjhT5L9x8z7/BgjYVI64n1pfpUvMBgGA1UdIAEB | ||||
| /wQOMAwwCgYIKwYBBQUHDgIwZAYDVR0fBF0wWzBZoFegVYZTcnN5bmM6Ly9jaGxvZS5zb2Jv | ||||
| cm5vc3QubmV0L3Jwa2kvUklQRS1ubGpvYnNuaWpkZXJzL09PRlBrdjNIelB2OEdDTmhVanJp | ||||
| ZldsLWxTOC5jcmwwZAYIKwYBBQUHAQEEWDBWMFQGCCsGAQUFBzAChkhyc3luYzovL3Jwa2ku | ||||
| cmlwZS5uZXQvcmVwb3NpdG9yeS9ERUZBVUxUL09PRlBrdjNIelB2OEdDTmhVanJpZldsLWxT | ||||
| OC5jZXIwDgYDVR0PAQH/BAQDAgeAMIGoBggrBgEFBQcBCwSBmzCBmDBfBggrBgEFBQcwC4ZT | ||||
| cnN5bmM6Ly9jaGxvZS5zb2Jvcm5vc3QubmV0L3Jwa2kvUklQRS1ubGpvYnNuaWpkZXJzL285 | ||||
| bGtKRmRKdTIzVnF4OHVndzR6cHNVVWJvOC5yb2EwNQYIKwYBBQUHMA2GKWh0dHBzOi8vY2hs | ||||
| b2Uuc29ib3Jub3N0Lm5ldC9ycGtpL25ld3MueG1sMCsGCCsGAQUFBwEHAQH/BBwwGjAYBAIA | ||||
| AjASAwcAIAEGfCCMAwcAKg6yQAAAMA0GCSqGSIb3DQEBCwUAA4IBAQAY4bd+Y1Os1MbxGWLU | ||||
| d7rNVG0c3e0FOwtUOE/Qprt5gkCHO2L19/R1jnXlAaJPID5VhUNl2y/AiwmP47vhk+fvtEdB | ||||
| wniszL8wCk5b6wwufn1z5/stQ85GRmsqJw5nkOYCyWpTP8k+TUa4w32xNj1dX78FwadDVeSP | ||||
| yMgJ0860mkXbV1/82/D60zrWQsVAZiYebhni1QAqmpsxZwdZceFRRVY48YDPOZ73ZBZvf0g6 | ||||
| Boy1+djlcAkugA92OKLzqjHWfY2iWZkcxXmFDthoeVCGQePkHMOigOyjZPcM8EXumo1rwI7N | ||||
| 4CPs0VkmCVCZABYVQ0HJvU08i/Wf6X1VRbNcMYIBqjCCAaYCAQOAFKPZZCRXSbtt1asfLoMO | ||||
| M6bFFG6PMAsGCWCGSAFlAwQCAaBrMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABGDAcBgkq | ||||
| hkiG9w0BCQUxDxcNMjIwNjE3MDAyNDIyWjAvBgkqhkiG9w0BCQQxIgQgyCDmNy5kR2T3NpBX | ||||
| fNhzFLNQv4PmI8kFb6VIt1kqeRswDQYJKoZIhvcNAQEBBQAEggEAWu1sxXCO/X8voU1zfvL+ | ||||
| My6KXb5va2CIuKD4dn/cllClWp8YizygIb+tPWfsT6DvaLOp1jE0raQyc8nUexLXSlIBGF7j | ||||
| GVWYCy4Oo8mXki+YB3AP1eXiBpx8E4Aa3Rq6/FO80fqrVmUTuywGnv9m6zSIrzEPFujpRIDa | ||||
| QQfDEOktRcLvNPXHfipTBzR4VSLkbZbyJBdigEPFUJVIRcAoI4tZAUVcbwANrHpZElFMBgr6 | ||||
| Rpn9l5nu7kUlZqXbV39Mfv8WCzctaUyc+Ag311sfWu5s6XaX3PtT9V4TnQhbSWcvR9NgM+As | ||||
| NqelVbdJ/iA2SeNHU/65xf6dDE2zdHDfsw== | ||||
| The object in Appendix B has the following properties: | CMS signing time: Wed 01 May 2024 00:34:13 +0000 | |||
| Object | X.509 end-entity certificate | |||
| SHA256 hash: 13afbad09ed59b315efd8722d38b09fd02962e376e4def32247f9de905649b47 | Subject key id: DE145B193FB320B25A744355298C8BF7C2523D22 | |||
| Size: 1807 octets | Authority key id: D67208EA470E9D6DD6654022F553ADC1389AB434 | |||
| Issuer: CN=86525cd5-44d7-4df9-8079-4a9dcdf26944 | ||||
| Serial: 3 | ||||
| Not before: Wed 01 May 2024 00:34:13 +0000 | ||||
| Not after: Thu 01 May 2025 00:34:13 +0000 | ||||
| IP address delegation: 2001:db8::/32 | ||||
| CMS signing time: Fri 17 Jun 2022 00:24:22 +0000 | ROA eContent | |||
| asID: 65536 | ||||
| addresses: 2001:db8::/32 | ||||
| X.509 end-entity certificate | Acknowledgements | |||
| Subject key id: A3D964245749BB6DD5AB1F2E830E33A6C5146E8F | ||||
| Authority key id: 38E14F92FDC7CCFBFC182361523AE27D697E952F | ||||
| Issuer: /CN=38e14f92fdc7ccfbfc182361523ae27d697e952f | ||||
| Serial: 86F9 | ||||
| Not before: Fri 17 Jun 2022 00:24:22 +0000 | ||||
| Not after: Sat 01 Jul 2023 00:00:00 +0000 | ||||
| IP address delegation: 2001:67c:208c::/48, 2a0e:b240::/48 | ||||
| eContent | The authors wish to thank Theo Buehler, Ties de Kock, Martin | |||
| asID: 15562 | Hoffmann, Charles Gardiner, Russ Housley, Jeffrey Haas, Bob Beck, and | |||
| addresses: 2001:67c:208c::/48, 2a0e:b240::/48 | Tom Harrison for their help and contributions. Additionally, the | |||
| authors thank Jim Fenton, Vijay Gurbani, Haoyu Song, Rob Austein, | ||||
| Roque Gagliano, Danny McPherson, Sam Weiler, Jasdip Singh, and Murray | ||||
| S. Kucherawy for their careful reviews and helpful comments. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Job Snijders | Job Snijders | |||
| Fastly | Fastly | |||
| Amsterdam | Amsterdam | |||
| Netherlands | The Netherlands | |||
| Email: job@fastly.com | Email: job@fastly.com | |||
| Ben Maddison | Ben Maddison | |||
| Workonline | Workonline | |||
| Cape Town | Cape Town | |||
| South Africa | South Africa | |||
| Email: benm@workonline.africa | Email: benm@workonline.africa | |||
| Matthew Lepinski | Matthew Lepinski | |||
| Carleton College | Carleton College | |||
| End of changes. 94 change blocks. | ||||
| 295 lines changed or deleted | 325 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||