rfc9632.original | rfc9632.txt | |||
---|---|---|---|---|
Network Working Group R. Bush | Internet Engineering Task Force (IETF) R. Bush | |||
Internet-Draft IIJ Research & Arrcus | Request for Comments: 9632 IIJ Research & Arrcus | |||
Obsoletes: 9092 (if approved) M. Candela | Obsoletes: 9092 M. Candela | |||
Intended status: Standards Track NTT | Category: Standards Track NTT | |||
Expires: 25 August 2024 W. Kumari | ISSN: 2070-1721 W. Kumari | |||
R. Housley | R. Housley | |||
Vigil Security | Vigil Security | |||
22 February 2024 | July 2024 | |||
Finding and Using Geofeed Data | Finding and Using Geofeed Data | |||
draft-ietf-opsawg-9092-update-11 | ||||
Abstract | Abstract | |||
This document specifies how to augment the Routing Policy | This document specifies how to augment the Routing Policy | |||
Specification Language inetnum: class to refer specifically to | Specification Language (RPSL) inetnum: class to refer specifically to | |||
geofeed comma-separated values (CSV) data files and describes an | geofeed comma-separated values (CSV) data files and describes an | |||
optional scheme that uses the Resource Public Key Infrastructure to | optional scheme that uses the Resource Public Key Infrastructure | |||
authenticate the geofeed data files. This document obsoletes RFC | (RPKI) to authenticate the geofeed data files. This document | |||
9092. | obsoletes RFC 9092. | |||
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 25 August 2024. | 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/rfc9632. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 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 | |||
publication of this document. Please review these documents | ||||
Please review these documents carefully, as they describe your rights | carefully, as they describe your rights and restrictions with respect | |||
and restrictions with respect to this document. Code Components | to this document. Code Components extracted from this document must | |||
extracted from this document must include Revised BSD License text as | include Revised BSD License text as described in Section 4.e of the | |||
described in Section 4.e of the Trust Legal Provisions and are | Trust Legal Provisions and are provided without warranty as described | |||
provided without warranty as described in the Revised BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
2. Geofeed Files . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Geofeed Files | |||
3. inetnum: Class . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. inetnum: Class | |||
4. Fetching Geofeed Data . . . . . . . . . . . . . . . . . . . . 5 | 4. Fetching Geofeed Data | |||
5. Authenticating Geofeed Data (Optional) . . . . . . . . . . . 7 | 5. Authenticating Geofeed Data (Optional) | |||
6. Operational Considerations . . . . . . . . . . . . . . . . . 10 | 6. Operational Considerations | |||
7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 11 | 7. Privacy Considerations | |||
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 11 | 8. Implementation Status | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 9. Security Considerations | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 10. IANA Considerations | |||
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 11. References | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 11.1. Normative References | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 11.2. Informative References | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 15 | Appendix A. Example | |||
Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 17 | Acknowledgments | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
Providers of Internet content and other services may wish to | Providers of Internet content and other services may wish to | |||
customize those services based on the geographic location of the user | customize those services based on the geographic location of the user | |||
of the service. This is often done using the source IP address used | of the service. This is often done using the source IP address used | |||
to contact the service, which may not point to a user, see [RFC6269], | to contact the service, which may not point to a user; see Section 14 | |||
Section 14 in particular. Also, infrastructure and other services | of [RFC6269] in particular. Also, administrators of infrastructure | |||
might wish to publish the locale of their services. [RFC8805] | and other services might wish to publish the locale of said | |||
defines geofeed, a syntax to associate geographic locales with IP | infrastructure or services. infrastructure and other services might | |||
addresses, but it does not specify how to find the relevant geofeed | wish to publish the locale of their services. [RFC8805] defines | |||
data given an IP address. | geofeed, a syntax to associate geographic locales with IP addresses, | |||
but it does not specify how to find the relevant geofeed data given | ||||
an IP address. | ||||
This document specifies how to augment the Routing Policy | This document specifies how to augment the Routing Policy | |||
Specification Language (RPSL) [RFC2725] inetnum: class to refer | Specification Language (RPSL) [RFC2725] inetnum: class to refer | |||
specifically to geofeed data files and how to prudently use them. In | specifically to geofeed data files and how to prudently use them. In | |||
all places inetnum: is used, inet6num: should also be assumed | all places inetnum: is used, inet6num: should also be assumed | |||
[RFC4012]. | [RFC4012]. | |||
The reader may find [INETNUM] and [INET6NUM] informative, and | The reader may find [INETNUM] and [INET6NUM] informative, and | |||
certainly more verbose, descriptions of the inetnum: database | certainly more verbose, descriptions of the inetnum: database | |||
classes. | classes. | |||
An optional utterly awesome but slightly complex means for | An optional utterly awesome but slightly complex means for | |||
authenticating geofeed data is also defined in Section 5. | authenticating geofeed data is also defined in Section 5. | |||
This document obsoletes [RFC9092]. Changes from [RFC9092] include | This document obsoletes [RFC9092]. Changes from [RFC9092] include | |||
the following: | the following: | |||
* RIPE has implemented the geofeed: attribute. | * RIPE has implemented the geofeed: attribute. | |||
* Allow, but discourage, an inetnum: to have both a geofeed remarks: | ||||
attribute and a geofeed: attribute. | * This document allows, but discourages, an inetnum: to have both a | |||
* Rewrite Authentication Section 5 to be more formal. | geofeed remarks: attribute and a geofeed: attribute. | |||
* Geofeed file only UTF-8 CSV. | ||||
* Stress that authenticating geofeed data is optional. | * The Authentication section (Section 5) has been rewritten to be | |||
more formal. | ||||
* Geofeed files are only UTF-8 CSV. | ||||
* This document stresses that authenticating geofeed data is | ||||
optional. | ||||
* IP Address Delegation extensions must not use "inherit". | * IP Address Delegation extensions must not use "inherit". | |||
* If geofeed data are present, ignore geographic location hints in | ||||
other data. | * If geofeed data are present, geographic location hints in other | |||
data should be ignored. | ||||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "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. | |||
2. Geofeed Files | 2. Geofeed Files | |||
Geofeed files are described in [RFC8805]. They provide a facility | Geofeed files are described in [RFC8805]. They provide a facility | |||
for an IP address resource "owner" to associate those IP addresses to | for an IP address resource "owner" to associate those IP addresses to | |||
geographic locales. | geographic locales. | |||
Per [RFC8805], geofeed files consist of CSVs (Comma Separated Values) | Per [RFC8805], geofeed files consist of comma-separated values (CSV) | |||
in UTF-8 text format; not HTML, richtext, or other formats. | in UTF-8 text format, not HTML, richtext, or other formats. | |||
Content providers and other parties who wish to locate an IP address | Content providers and other parties who wish to locate an IP address | |||
to a geographic locale need to find the relevant geofeed data. In | to a geographic locale need to find the relevant geofeed data. In | |||
Section 3, this document specifies how to find the relevant geofeed | Section 3, this document specifies how to find the relevant geofeed | |||
[RFC8805] file given an IP address. | [RFC8805] file given an IP address. | |||
Geofeed data for large providers with significant horizontal scale | Geofeed data for large providers with significant horizontal scale | |||
and high granularity can be quite large. The size of a file can be | and high granularity can be quite large. The size of a file can be | |||
even larger if an unsigned geofeed file combines data for many | even larger if an unsigned geofeed file combines data for many | |||
prefixes, if dual IPv4/IPv6 spaces are represented, etc. | prefixes, if dual IPv4/IPv6 spaces are represented, etc. | |||
skipping to change at page 4, line 12 ¶ | skipping to change at line 160 ¶ | |||
This document also suggests an optional signature to strongly | This document also suggests an optional signature to strongly | |||
authenticate the data in the geofeed files. | authenticate the data in the geofeed files. | |||
3. inetnum: Class | 3. inetnum: Class | |||
The original RPSL specifications starting with [RIPE81], [RIPE181], | The original RPSL specifications starting with [RIPE81], [RIPE181], | |||
and a trail of subsequent documents were written by the RIPE | and a trail of subsequent documents were written by the RIPE | |||
community. The IETF standardized RPSL in [RFC2622] and [RFC4012]. | community. The IETF standardized RPSL in [RFC2622] and [RFC4012]. | |||
Since then, it has been modified and extensively enhanced in the | Since then, it has been modified and extensively enhanced in the | |||
Regional Internet Registry (RIR) community, mostly by RIPE [RIPE-DB]. | Regional Internet Registry (RIR) community, mostly by RIPE [RIPE-DB]. | |||
At the time of publishing this document, change control of RPSL | At the time of publishing this document, change control of the RPSL | |||
effectively lies in the operator community. | effectively lies in the operator community. | |||
The RPSL, and [RFC2725] and [RFC4012] used by the Regional Internet | The inetnum: database class is specified by the RPSL, as well as | |||
Registries (RIRs), specify the inetnum: database class. Each of | Routing Policy System Security [RFC2725] and RPSLng [RFC4012], which | |||
these objects describes an IP address range and its attributes. The | are used by the Regional Internet Registries (RIRs). Each of these | |||
objects describes an IP address range and its attributes. The | ||||
inetnum: objects form a hierarchy ordered on the address space. | inetnum: objects form a hierarchy ordered on the address space. | |||
Ideally, RPSL would be augmented to define a new RPSL geofeed: | Ideally, the RPSL would be augmented to define a new RPSL geofeed: | |||
attribute in the inetnum: class. Absent implementation of the | attribute in the inetnum: class. Absent implementation of the | |||
geofeed: attribute in a particular RIR database, this document | geofeed: attribute in a particular RIR database, this document | |||
defines the syntax of a Geofeed remarks: attribute, which contains an | defines the syntax of a Geofeed remarks: attribute, which contains an | |||
HTTPS URL of a geofeed file. The format of the inetnum: geofeed | HTTPS URL of a geofeed file. The format of the inetnum: geofeed | |||
remarks: attribute MUST be as in this example, "remarks: Geofeed ", | remarks: attribute MUST be as in this example, "remarks: Geofeed ", | |||
where the token "Geofeed " MUST be case sensitive, followed by a URL | where the token "Geofeed " MUST be case sensitive, followed by a URL | |||
that will vary, but it MUST refer only to a single geofeed [RFC8805] | that will vary, but it MUST refer only to a single geofeed [RFC8805] | |||
file. | file. | |||
inetnum: 192.0.2.0/24 # example | inetnum: 192.0.2.0/24 # example | |||
skipping to change at page 4, line 43 ¶ | skipping to change at line 192 ¶ | |||
While we leave global agreement of RPSL modification to the relevant | While we leave global agreement of RPSL modification to the relevant | |||
parties, we specify that a proper geofeed: attribute in the inetnum: | parties, we specify that a proper geofeed: attribute in the inetnum: | |||
class MUST be "geofeed:" and MUST be followed by a single URL that | class MUST be "geofeed:" and MUST be followed by a single URL that | |||
will vary, but it MUST refer only to a single geofeed [RFC8805] file. | will vary, but it MUST refer only to a single geofeed [RFC8805] file. | |||
inetnum: 192.0.2.0/24 # example | inetnum: 192.0.2.0/24 # example | |||
geofeed: https://example.com/geofeed | geofeed: https://example.com/geofeed | |||
The URL uses HTTPS, so the WebPKI provides authentication, integrity, | The URL uses HTTPS, so the WebPKI provides authentication, integrity, | |||
and confidentiality for the fetched geofeed file. However, the | and confidentiality for the fetched geofeed file. However, the | |||
WebPKI can not provide authentication of IP address space assignment. | WebPKI cannot provide authentication of IP address space assignment. | |||
In contrast, the RPKI (see [RFC6481]) can be used to authenticate IP | In contrast, the RPKI (see [RFC6481]) can be used to authenticate IP | |||
space assignment; see optional authentication in Section 5. | space assignment; see optional authentication in Section 5. | |||
Until all producers of inetnum: objects, i.e., the RIRs, state that | Until all producers of inetnum: objects, i.e., the RIRs, state that | |||
they have migrated to supporting a geofeed: attribute, consumers | they have migrated to supporting a geofeed: attribute, consumers | |||
looking at inetnum: objects to find geofeed URLs MUST be able to | looking at inetnum: objects to find geofeed URLs MUST be able to | |||
consume both the remarks: and geofeed: forms. | consume both the remarks: and geofeed: forms. | |||
The migration not only implies that the RIRs support the geofeed: | The migration not only implies that the RIRs support the geofeed: | |||
attribute, but that all registrants have migrated any inetnum: | attribute, but that all registrants have migrated any inetnum: | |||
objects from remarks: to geofeed: attributes. | objects from remarks: to geofeed: attributes. | |||
Any particular inetnum: object SHOULD have, at most, one geofeed | Any particular inetnum: object SHOULD have, at most, one geofeed | |||
reference, whether a remarks: or a proper geofeed: attribute when it | reference, whether a remarks: or a proper geofeed: attribute when it | |||
is implemented. As the remarks: form can not be formally checked by | is implemented. As the remarks: form cannot be formally checked by | |||
the RIR, this can not be formally enforced. A geofeed: attribute is | the RIR, this cannot be formally enforced. A geofeed: attribute is | |||
preferred, of course, if the RIR supports it. If there is more than | preferred, of course, if the RIR supports it. If there is more than | |||
one type of attribute in the intetnum: object, the geofeed: attribute | one type of attribute in the intetnum: object, the geofeed: attribute | |||
MUST be used. | MUST be used. | |||
For inetnum:s covering the same address range, a signed geofeed file | For inetnum: objects covering the same address range, a signed | |||
MUST be preferred over an unsigned file. If none are signed, or more | geofeed file MUST be preferred over an unsigned file. If none are | |||
than one is signed, the (signed) inetnum: with the most recent last- | signed, or more than one is signed, the (signed) inetnum: with the | |||
modified: attribute MUST be preferred. | most recent last-modified: attribute MUST be preferred. | |||
If a geofeed file describes multiple disjoint ranges of IP address | If a geofeed file describes multiple disjoint ranges of IP address | |||
space, there are likely to be geofeed references from multiple | space, there are likely to be geofeed references from multiple | |||
inetnum: objects. Files with geofeed references from multiple | inetnum: objects. Files with geofeed references from multiple | |||
inetnum: objects are not compatible with the signing procedure in | inetnum: objects are not compatible with the signing procedure in | |||
Section 5. | Section 5. | |||
An unsigned, and only an unsigned, geofeed file MAY be referenced by | An unsigned, and only an unsigned, geofeed file MAY be referenced by | |||
multiple inetnum:s and MAY contain prefixes from more than one | multiple inetnum: objects and MAY contain prefixes from more than one | |||
registry. | registry. | |||
When fetching, the most specific inetnum: object with a geofeed | When fetching, the most specific inetnum: object with a geofeed | |||
reference MUST be used. | reference MUST be used. | |||
It is significant that geofeed data may have finer granularity than | It is significant that geofeed data may have finer granularity than | |||
the inetnum: that refers to them. For example, an INETNUM object for | the inetnum: that refers to them. For example, an INETNUM object for | |||
an address range P could refer to a geofeed file in which P has been | an address range P could refer to a geofeed file in which P has been | |||
subdivided into one or more longer prefixes. | subdivided into one or more longer prefixes. | |||
4. Fetching Geofeed Data | 4. Fetching Geofeed Data | |||
This document is to provides a guideline for how interested parties | This document provides a guideline for how interested parties should | |||
should fetch and read geofeed files. | fetch and read geofeed files. | |||
Historically, before [RFC9092], this was done in varied ways, at the | Historically, before [RFC9092], this was done in varied ways, at the | |||
discretion of the implementer, often without consistent | discretion of the implementor, often without consistent | |||
authentication, where data were mostly imported from email without | authentication, where data were mostly imported from email without | |||
formal authorisation or validation. | formal authorization or validation. | |||
To minimize the load on RIRs' WHOIS [RFC3912] services, the RIR's FTP | To minimize the load on RIRs' WHOIS [RFC3912] services, the RIR's FTP | |||
[RFC0959] services SHOULD be used for large-scale access to gather | [RFC0959] services SHOULD be used for large-scale access to gather | |||
inetnum:s with geofeed references. This uses efficient bulk access | inetnum: objects with geofeed references. This uses efficient bulk | |||
instead of fetching via brute-force search through the IP space. | access instead of fetching via brute-force search through the IP | |||
space. | ||||
When reading data from an unsigned geofeed file, one MUST ignore data | When reading data from an unsigned geofeed file, one MUST ignore data | |||
outside the referring inetnum: object's address range. This is to | outside the referring inetnum: object's address range. This is to | |||
avoid importing data about ranges not under the control of the | avoid importing data about ranges not under the control of the | |||
operator. Note that signed files MUST only contain prefixes within | operator. Note that signed files MUST only contain prefixes within | |||
the referring inetnum:'s range as mandated in Section 5. | the referring inetnum:'s range as mandated in Section 5. | |||
If geofeed files are fetched, other location information from the | If geofeed files are fetched, other location information from the | |||
inetnum: MUST be ignored. | inetnum: MUST be ignored. | |||
Given an address range of interest, the most specific inetnum: object | Given an address range of interest, the most specific inetnum: object | |||
with a geofeed reference MUST be used to fetch the geofeed file. For | with a geofeed reference MUST be used to fetch the geofeed file. For | |||
example, if the fetching party finds the following inetnum: objects: | example, if the fetching party finds the following inetnum: objects: | |||
inetnum: 192.0.0.0/22 # example | inetnum: 192.0.0.0/22 # example | |||
remarks: Geofeed https://example.com/geofeed_1 | remarks: Geofeed https://example.com/geofeed_1 | |||
inetnum: 192.0.2.0/24 # example | inetnum: 192.0.2.0/24 # example | |||
remarks: Geofeed https://example.com/geofeed_2 | remarks: Geofeed https://example.com/geofeed_2 | |||
An application looking for geofeed data for 192.0.2.0/29, MUST ignore | An application looking for geofeed data for 192.0.2.0/29 MUST ignore | |||
data in geofeed_1 because 192.0.2.0/29 is within the more specific | data in geofeed_1 because 192.0.2.0/29 is within the more specific | |||
192.0.2.0/24 inetnum: covering that address range and that inetnum: | 192.0.2.0/24 inetnum: covering that address range and that inetnum: | |||
does have a geofeed reference. | does have a geofeed reference. | |||
Hints in inetnum:s such as country:, geoloc:, etc. tend to be | Hints in inetnum: objects such as country:, geoloc:, etc. tend to be | |||
administrative, and not deployment specific. Consider large, | administrative, and not deployment specific. Consider large, | |||
possibly global, providers with headquarters very far from most of | possibly global, providers with headquarters very far from most of | |||
their deployments. Therefore, if geofeed data are specified, either | their deployments. Therefore, if geofeed data are specified, either | |||
as a geofeed: attribute or in a geofeed remarks: attribute, other | as a geofeed: attribute or in a geofeed remarks: attribute, other | |||
geographic hints such as country:, geoloc:, DNS geoloc RRsets, etc., | geographic hints such as country:, geoloc:, DNS geoloc RRsets, etc., | |||
for that address range MUST be ignored. | for that address range MUST be ignored. | |||
There is open-source code to traverse the RPSL data across all of the | There is open-source code to traverse the RPSL data across all of the | |||
RIRs, collect all geofeed references, and process them | RIRs, collect all geofeed references, and process them | |||
[GEOFEED-FINDER]. It implements the steps above and of all the | [GEOFEED-FINDER]. It implements the steps above and of all the | |||
Operational Considerations described in Section 6, including caching. | Operational Considerations described in Section 6, including caching. | |||
It produces a single geofeed file, merging all the geofeed files | It produces a single geofeed file, merging all the geofeed files | |||
found. This open-source code can be run daily by a cronjob, and the | found. This open-source code can be run daily by a cron job, and the | |||
output file can be directly used. | output file can be directly used. | |||
RIRs are converging on RDAP support which includes geofeed data, see | RIRs are converging on Registration Data Access Protocol (RDAP) | |||
[I-D.ietf-regext-rdap-geofeed]. This SHOULD NOT be used for bulk | support, which includes geofeed data; see [RDAP-GEOFEED]. This | |||
retrieval of geofeed data. | SHOULD NOT be used for bulk retrieval of geofeed data. | |||
5. Authenticating Geofeed Data (Optional) | 5. Authenticating Geofeed Data (Optional) | |||
The question arises whether a particular geofeed [RFC8805] data set | The question arises whether a particular geofeed [RFC8805] data set | |||
is valid, i.e., is authorized by the "owner" of the IP address space | is valid, i.e., is authorized by the "owner" of the IP address space | |||
and is authoritative in some sense. The inetnum: that points to the | and is authoritative in some sense. The inetnum: that points to the | |||
geofeed [RFC8805] file provides some assurance. Unfortunately, the | geofeed [RFC8805] file provides some assurance. Unfortunately, the | |||
RPSL in some repositories is weakly authenticated at best. An | RPSL in some repositories is weakly authenticated at best. An | |||
approach where RPSL was signed per [RFC7909] would be good, except it | approach where the RPSL was signed per [RFC7909] would be good, | |||
would have to be deployed by all RPSL registries, and there is a fair | except it would have to be deployed by all RPSL registries, and there | |||
number of them. | is a fair number of them. | |||
The remainder of this section specifies an optional authenticator for | The remainder of this section specifies an optional authenticator for | |||
the geofeed data set that follows the Signed Object Template for the | the geofeed data set that follows "Signed Object Template for the | |||
Resource Public Key Infrastructure (RPKI) [RFC6488]. | Resource Public Key Infrastructure (RPKI)" [RFC6488]. | |||
A single optional authenticator MAY be appended to a geofeed | A single optional authenticator MAY be appended to a geofeed | |||
[RFC8805] file. It is a digest of the main body of the file signed | [RFC8805] file. It is a digest of the main body of the file signed | |||
by the private key of the relevant RPKI certificate for a covering | by the private key of the relevant RPKI certificate for a covering | |||
address range. The following format bundles the relevant RPKI | address range. The following format bundles the relevant RPKI | |||
certificate with a signature over the geofeed text. | certificate with a signature over the geofeed text. | |||
The canonicalization procedure converts the data from their internal | The canonicalization procedure converts the data from their internal | |||
character representation to the UTF-8 [RFC3629] character encoding, | character representation to the UTF-8 [RFC3629] character encoding, | |||
and the <CRLF> sequence MUST be used to denote the end of each line | and the <CRLF> sequence MUST be used to denote the end of each line | |||
of text. A blank line is represented solely by the <CRLF> sequence. | of text. A blank line is represented solely by the <CRLF> sequence. | |||
For robustness, any non-printable characters MUST NOT be changed by | For robustness, any non-printable characters MUST NOT be changed by | |||
canonicalization. Trailing blank lines MUST NOT appear at the end of | canonicalization. Trailing blank lines MUST NOT appear at the end of | |||
the file. That is, the file must not end with multiple consecutive | the file. That is, the file must not end with multiple consecutive | |||
<CRLF> sequences. Any end-of-file marker used by an operating system | <CRLF> sequences. Any end-of-file marker used by an operating system | |||
is not considered to be part of the file content. When present, such | is not considered to be part of the file content. When present, such | |||
end-of-file markers MUST NOT be covered by the digital signature. | end-of-file markers MUST NOT be covered by the digital signature. | |||
If the authenticator is not in the canonical form described above, | If the authenticator is not in the canonical form described above, | |||
then, the authenticator is invalid. | then the authenticator is invalid. | |||
Borrowing detached signatures from [RFC5485], after file | Borrowing detached signatures from [RFC5485], after file | |||
canonicalization, the Cryptographic Message Syntax (CMS) [RFC5652] is | canonicalization, the Cryptographic Message Syntax (CMS) [RFC5652] is | |||
used to create a detached DER-encoded signature that is then Base64 | used to create a detached DER-encoded signature that is then Base64 | |||
encoded with padding (as defined in Section 4 of [RFC4648]) and line | encoded with padding (as defined in Section 4 of [RFC4648]) and line | |||
wrapped to 72 or fewer characters. The same digest algorithm MUST be | wrapped to 72 or fewer characters. The same digest algorithm MUST be | |||
used for calculating the message digest of the content being signed, | used for calculating the message digest of the content being signed, | |||
which is the geofeed file, and for calculating the message digest on | which is the geofeed file, and for calculating the message digest on | |||
the SignerInfo SignedAttributes [RFC8933]. The message digest | the SignerInfo SignedAttributes [RFC8933]. The message digest | |||
algorithm identifier MUST appear in both the CMS SignedData | algorithm identifier MUST appear in both the CMS SignedData | |||
skipping to change at page 8, line 19 ¶ | skipping to change at line 359 ¶ | |||
Identifier Delegation certificate extension [RFC3779]. If it is | Identifier Delegation certificate extension [RFC3779]. If it is | |||
present, the authenticator is invalid. | present, the authenticator is invalid. | |||
As with many other RPKI signed objects, the IP Address Delegation | As with many other RPKI signed objects, the IP Address Delegation | |||
certificate extension MUST NOT use the "inherit" capability defined | certificate extension MUST NOT use the "inherit" capability defined | |||
in Section 2.2.3.5 of [RFC3779]. If "inherit" is used, the | in Section 2.2.3.5 of [RFC3779]. If "inherit" is used, the | |||
authenticator is invalid. | authenticator is invalid. | |||
An IP Address Delegation extension using "inherit" would complicate | An IP Address Delegation extension using "inherit" would complicate | |||
processing. The implementation would have to build the certification | processing. The implementation would have to build the certification | |||
path from the end-entity to the trust anchor, then validate the path | path from the end entity to the trust anchor, then validate the path | |||
from the trust anchor to the end-entity, and then the parameter would | from the trust anchor to the end entity, and then the parameter would | |||
have to be remembered when the validated public key was used to | have to be remembered when the validated public key was used to | |||
validate a signature on a CMS object. Having to remember things from | validate a signature on a CMS object. Having to remember things from | |||
certification path validation for use with CMS object processing | certification path validation for use with CMS object processing | |||
would be quite complex and error prone. And, the certificates do not | would be quite complex and error-prone. Additionally, the | |||
get that much bigger by repeating the information. | certificates do not get that much bigger by repeating the | |||
information. | ||||
An address range A "covers" address range B if the range of B is | An address range A "covers" address range B if the range of B is | |||
identical to or a subset of A. "Address range" is used here because | identical to or a subset of A. "Address range" is used here because | |||
inetnum: objects and RPKI certificates need not align on Classless | inetnum: objects and RPKI certificates need not align on Classless | |||
Inter-Domain Routing (CIDR) [RFC4632] prefix boundaries, while those | Inter-Domain Routing (CIDR) [RFC4632] prefix boundaries, while those | |||
of the lines in a geofeed file do align. | of the lines in a geofeed file do align. | |||
The Certificate Authority (CA) SHOULD sign only one geofeed file with | The Certification Authority (CA) SHOULD sign only one geofeed file | |||
each generated private key and SHOULD generate a new key pair for | with each generated private key and SHOULD generate a new key pair | |||
each new version of a perticular geofeed file. The CA MUST generate | for each new version of a particular geofeed file. The CA MUST | |||
a new End Entity (EE) certificate for each signing of a particular | generate a new end entity (EE) certificate for each signing of a | |||
geofeed file. An associated EE certificate used in this fashion is | particular geofeed file. An associated EE certificate used in this | |||
termed a "one-time-use" EE certificate (see Section 3 of [RFC6487]). | fashion is termed a "one-time-use" EE certificate (see Section 3 of | |||
[RFC6487]). | ||||
Identifying the private key associated with the certificate and | Identifying the private key associated with the certificate and | |||
getting the department that controls the private key (which might be | getting the department that controls the private key (which might be | |||
stored in a Hardware Security Module (HSM)) to generate the CMS | stored in a Hardware Security Module (HSM)) to generate the CMS | |||
signature is left as an exercise for the implementor. On the other | signature is left as an exercise for the implementor. On the other | |||
hand, verifying the signature has no similar complexity; the | hand, verifying the signature has no similar complexity; the | |||
certificate, which is validated in the public RPKI, contains the | certificate, which is validated in the public RPKI, contains the | |||
needed public key. The RPKI trust anchors for the RIRs are expected | needed public key. The RPKI trust anchors for the RIRs are expected | |||
to already be available to the party performing signature validation. | to already be available to the party performing signature validation. | |||
Validation of the CMS signature over the geofeed file involves: | Validation of the CMS signature over the geofeed file involves: | |||
skipping to change at page 9, line 32 ¶ | skipping to change at line 419 ¶ | |||
certification path validation is unsuccessful, then validation | certification path validation is unsuccessful, then validation | |||
MUST fail. | MUST fail. | |||
4. Validating the CMS SignedData as specified in [RFC5652] using the | 4. Validating the CMS SignedData as specified in [RFC5652] using the | |||
public key from the validated signer's certificate. If the | public key from the validated signer's certificate. If the | |||
signature validation is unsuccessful, then validation MUST fail. | signature validation is unsuccessful, then validation MUST fail. | |||
5. Confirming that the eContentType object identifier (OID) is id- | 5. Confirming that the eContentType object identifier (OID) is id- | |||
ct-geofeedCSVwithCRLF (1.2.840.113549.1.9.16.1.47). This OID | ct-geofeedCSVwithCRLF (1.2.840.113549.1.9.16.1.47). This OID | |||
MUST appear within both the eContentType in the encapContentInfo | MUST appear within both the eContentType in the encapContentInfo | |||
object and the ContentType signed attribute in the signerInfo | object and within the ContentType signed attribute in the | |||
object (see [RFC6488]). | signerInfo object (see [RFC6488]). | |||
6. Verifying that the IP Address Delegation certificate extension | 6. Verifying that the IP Address Delegation certificate extension | |||
[RFC3779] covers all of the address ranges of the geofeed file. | [RFC3779] covers all of the address ranges of the geofeed file. | |||
If all of the address ranges are not covered, then validation | If all of the address ranges are not covered, then validation | |||
MUST fail. | MUST fail. | |||
All of the above steps MUST be successful to consider the geofeed | All of the above steps MUST be successful to consider the geofeed | |||
file signature as valid. | file signature as valid. | |||
The authenticator MUST be hidden as a series of "#" comments at the | The authenticator MUST be hidden as a series of "#" comments at the | |||
skipping to change at page 11, line 6 ¶ | skipping to change at line 484 ¶ | |||
If the geofeed file is signed, and the signer's certificate changes, | If the geofeed file is signed, and the signer's certificate changes, | |||
the signature in the geofeed file MUST be updated. | the signature in the geofeed file MUST be updated. | |||
It is good key hygiene to use a given key for only one purpose. To | It is good key hygiene to use a given key for only one purpose. To | |||
dedicate a signing private key for signing a geofeed file, an RPKI | dedicate a signing private key for signing a geofeed file, an RPKI | |||
Certification Authority (CA) may issue a subordinate certificate | Certification Authority (CA) may issue a subordinate certificate | |||
exclusively for the purpose shown in Appendix A. | exclusively for the purpose shown in Appendix A. | |||
Harvesting and publishing aggregated geofeed data outside of the RPSL | Harvesting and publishing aggregated geofeed data outside of the RPSL | |||
model should be avoided as it can have the effect that more specifics | model should be avoided as it could lead to detailed data of one | |||
from one aggregatee could undesirably affect the less specifics of a | aggregatee undesirably affecting the less detailed data of a | |||
different aggregatee. Moreover, publishing aggregated geofeed data | different aggregatee. Moreover, publishing aggregated geofeed data | |||
prevents the reader of the data to perform the checks described in | prevents the reader of the data from performing the checks described | |||
Section 4 and Section 5. | in Section 4 and Section 5. | |||
At the time of publishing this document, geolocation providers have | At the time of publishing this document, geolocation providers have | |||
bulk WHOIS data access at all the RIRs. An anonymized version of | bulk WHOIS data access at all the RIRs. An anonymized version of | |||
such data is openly available for all RIRs except ARIN, which | such data is openly available for all RIRs except ARIN, which | |||
requires an authorization. However, for users without such | requires an authorization. However, for users without such | |||
authorization, the same result can be achieved with extra RDAP | authorization, the same result can be achieved with extra RDAP | |||
effort. There is open-source code to pass over such data across all | effort. There is open-source code to pass over such data across all | |||
RIRs, collect all geofeed references, and process them | RIRs, collect all geofeed references, and process them | |||
[GEOFEED-FINDER]. | [GEOFEED-FINDER]. | |||
To prevent undue load on RPSL and geofeed servers, entity-fetching | To prevent undue load on RPSL and geofeed servers, entity-fetching | |||
geofeed data using these mechanisms MUST NOT do frequent real-time | geofeed data using these mechanisms MUST NOT do frequent real-time | |||
lookups. Section 3.4 of [RFC8805] suggests use of the HTTP Expires | lookups. Section 3.4 of [RFC8805] suggests use of the HTTP Expires | |||
header [RFC7234] to signal when geofeed data should be refetched. As | header [RFC9111] to signal when geofeed data should be refetched. As | |||
the data change very infrequently, in the absence of such an HTTP | the data change very infrequently, in the absence of such an HTTP | |||
Header signal, collectors SHOULD NOT fetch more frequently than | Header signal, collectors SHOULD NOT fetch more frequently than | |||
weekly. It would be polite not to fetch at magic times such as | weekly. It would be polite not to fetch at magic times such as | |||
midnight UTC, the first of the month, etc., because too many others | midnight UTC, the first of the month, etc., because too many others | |||
are likely to do the same. | are likely to do the same. | |||
7. Privacy Considerations | 7. Privacy Considerations | |||
[RFC8805] geofeed data may reveal the approximate location of an IP | [RFC8805] geofeed data may reveal the approximate location of an IP | |||
address, which might in turn reveal the approximate location of an | address, which might in turn reveal the approximate location of an | |||
skipping to change at page 11, line 51 ¶ | skipping to change at line 529 ¶ | |||
Where [RFC8805] provided the ability to publish location data, this | Where [RFC8805] provided the ability to publish location data, this | |||
document makes bulk access to those data readily available. This is | document makes bulk access to those data readily available. This is | |||
a goal, not an accident. | a goal, not an accident. | |||
8. Implementation Status | 8. Implementation Status | |||
At the time of publishing this document, the geofeed: attribute in | At the time of publishing this document, the geofeed: attribute in | |||
inetnum objects has been implemented in the RIPE and APNIC databases. | inetnum objects has been implemented in the RIPE and APNIC databases. | |||
Registrants in databases which do not yet support the geofeed: | Registrants in databases that do not yet support the geofeed: | |||
attribute are using the remarks:, or equivalent, attribute. | attribute are using the remarks: attribute, or equivalent. | |||
At the time of publishing this document, the registry data published | At the time of publishing this document, the registry data published | |||
by ARIN are not the same RPSL as that of the other registries (see | by ARIN are not the same RPSL as that of the other registries (see | |||
[RFC7485] for a survey of the WHOIS Tower of Babel); therefore, when | [RFC7485] for a survey of the WHOIS Tower of Babel). Therefore, when | |||
fetching from ARIN via FTP [RFC0959], WHOIS [RFC3912], the | fetching from ARIN via FTP [RFC0959], WHOIS [RFC3912], the RDAP | |||
Registration Data Access Protocol (RDAP) [RFC9082], etc., the | [RFC9082], etc., the "NetRange" attribute/key must be treated as | |||
"NetRange" attribute/key must be treated as "inetnum", and the | "inetnum", and the "Comment" attribute must be treated as "remarks". | |||
"Comment" attribute must be treated as "remarks". | ||||
[rpki-client] can be used to authenticate a signed geofeed file. | [rpki-client] can be used to authenticate a signed geofeed file. | |||
9. Security Considerations | 9. Security Considerations | |||
It is generally prudent for a consumer of geofeed data to also use | It is generally prudent for a consumer of geofeed data to also use | |||
other sources to cross-validate the data. All the security | other sources to cross-validate the data. All the security | |||
considerations of [RFC8805] apply here as well. | considerations of [RFC8805] apply here as well. | |||
The consumer of geofeed data SHOULD fetch and process the data | The consumer of geofeed data SHOULD fetch and process the data | |||
themselves. Importing datasets produced and/or processed by a third- | themselves. Importing data sets produced and/or processed by a | |||
party places significant trust in the third-party. | third-party places significant trust in the third-party. | |||
As mentioned in Section 5, some RPSL repositories have weak, if any, | As mentioned in Section 5, some RPSL repositories have weak, if any, | |||
authentication. This allows spoofing of inetnum: objects pointing to | authentication. This allows spoofing of inetnum: objects pointing to | |||
malicious geofeed files. Section 5 suggests an unfortunately complex | malicious geofeed files. Section 5 suggests an unfortunately complex | |||
method for stronger authentication based on the RPKI. | method for stronger authentication based on the RPKI. | |||
For example, if an inetnum: for a wide address range (e.g., a /16) | For example, if an inetnum: for a wide address range (e.g., a /16) | |||
points to an RPKI-signed geofeed file, a customer or attacker could | points to an RPKI-signed geofeed file, a customer or attacker could | |||
publish an unsigned equal or narrower (e.g., a /24) inetnum: in a | publish an unsigned equal or narrower (e.g., a /24) inetnum: in a | |||
WHOIS registry that has weak authorization, abusing the rule that the | WHOIS registry that has weak authorization, abusing the rule that the | |||
skipping to change at page 12, line 48 ¶ | skipping to change at line 574 ¶ | |||
The RPSL providers have had to throttle fetching from their servers | The RPSL providers have had to throttle fetching from their servers | |||
due to too-frequent queries. Usually, they throttle by the querying | due to too-frequent queries. Usually, they throttle by the querying | |||
IP address or block. Similar defenses will likely need to be | IP address or block. Similar defenses will likely need to be | |||
deployed by geofeed file servers. | deployed by geofeed file servers. | |||
10. IANA Considerations | 10. IANA Considerations | |||
In the SMI Security for S/MIME CMS Content Type | In the SMI Security for S/MIME CMS Content Type | |||
(1.2.840.113549.1.9.16.1) in the Structure of Management Information | (1.2.840.113549.1.9.16.1) in the Structure of Management Information | |||
(SMI) Numbers (MIB Module Registrations) registry group located at: | (SMI) Numbers (MIB Module Registrations) registry group (located at | |||
https://www.iana.org/assignments/smi-numbers/ there is an existing | <https://www.iana.org/assignments/smi-numbers/>), the reference for | |||
registration for: | this registration has been updated to this document: | |||
Decimal: 47 | ||||
Description: id-ct-geofeedCSVwithCRLF | ||||
On publication of this document, that reference needs to be changed | ||||
to the new [ RFC-to-be ]. | ||||
11. Acknowledgments | +=========+==========================+===========+ | |||
| Decimal | Description | Reference | | ||||
+=========+==========================+===========+ | ||||
| 47 | id-ct-geofeedCSVwithCRLF | RFC 9632 | | ||||
+---------+--------------------------+-----------+ | ||||
Thanks to Rob Austein for CMS and detached signature clue, George | Table 1: From SMI Security for S/MIME Module | |||
Michaelson for the first and substantial external review, and Erik | Identifier (1.2.840.113549.1.9.16.1) | |||
Kline who was too shy to agree to coauthorship. Additionally, we | ||||
express our gratitude to early implementors, including Menno | ||||
Schepers; Flavio Luciani; Eric Dugas; and Kevin Pack. Also, thanks | ||||
to the following geolocation providers who are consuming geofeeds | ||||
with this described solution: Jonathan Kosgei (ipdata.co), Ben | ||||
Dowling (ipinfo.io), and Pol Nisenblat (bigdatacloud.com). For an | ||||
amazing number of helpful reviews, we thank Job Snijders, who also | ||||
found an ASN.1 'inherit' issue; Adrian Farrel; Antonio Prado; | ||||
Francesca Palombini; Jean-Michel Combes (INTDIR); John Scudder; Kyle | ||||
Rose (SECDIR); Martin Duke; Mohamed Boucadair; Murray Kucherawy; Paul | ||||
Kyzivat (GENART); Rob Wilton; Roman Danyliw; and Ties de Kock. | ||||
12. References | 11. References | |||
12.1. Normative References | 11.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>. | |||
[RFC2622] Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., | [RFC2622] Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., | |||
Meyer, D., Bates, T., Karrenberg, D., and M. Terpstra, | Meyer, D., Bates, T., Karrenberg, D., and M. Terpstra, | |||
"Routing Policy Specification Language (RPSL)", RFC 2622, | "Routing Policy Specification Language (RPSL)", RFC 2622, | |||
DOI 10.17487/RFC2622, June 1999, | DOI 10.17487/RFC2622, June 1999, | |||
skipping to change at page 15, line 20 ¶ | skipping to change at line 674 ¶ | |||
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | [RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | |||
Ed., "HTTP Semantics", STD 97, RFC 9110, | Ed., "HTTP Semantics", STD 97, RFC 9110, | |||
DOI 10.17487/RFC9110, June 2022, | DOI 10.17487/RFC9110, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9110>. | <https://www.rfc-editor.org/info/rfc9110>. | |||
[RFC9286] Austein, R., Huston, G., Kent, S., and M. Lepinski, | [RFC9286] Austein, R., Huston, G., Kent, S., and M. Lepinski, | |||
"Manifests for the Resource Public Key Infrastructure | "Manifests for the Resource Public Key Infrastructure | |||
(RPKI)", RFC 9286, DOI 10.17487/RFC9286, June 2022, | (RPKI)", RFC 9286, DOI 10.17487/RFC9286, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9286>. | <https://www.rfc-editor.org/info/rfc9286>. | |||
12.2. Informative References | 11.2. Informative References | |||
[GEOFEED-FINDER] | [GEOFEED-FINDER] | |||
"geofeed-finder", commit 5f557a4, June 2021, | "geofeed-finder", commit 5f557a4, March 2024, | |||
<https://github.com/massimocandela/geofeed-finder>. | <https://github.com/massimocandela/geofeed-finder>. | |||
[I-D.ietf-regext-rdap-geofeed] | [INET6NUM] RIPE NCC, "RIPE Database Documentation: Description of the | |||
INET6NUM Object", <https://apps.db.ripe.net/docs/RPSL- | ||||
Object-Types/Descriptions-of-Primary-Objects/#description- | ||||
of-the-inet6num-object>. | ||||
[INETNUM] RIPE NCC, "RIPE Database Documentation: Description of the | ||||
INETNUM Object", <https://apps.db.ripe.net/docs/RPSL- | ||||
Object-Types/Descriptions-of-Primary-Objects/#description- | ||||
of-the-inetnum-object>. | ||||
[RDAP-GEOFEED] | ||||
Singh, J. and T. Harrison, "An RDAP Extension for Geofeed | Singh, J. and T. Harrison, "An RDAP Extension for Geofeed | |||
Data", Work in Progress, Internet-Draft, draft-ietf- | Data", Work in Progress, Internet-Draft, draft-ietf- | |||
regext-rdap-geofeed-01, 17 December 2023, | regext-rdap-geofeed-06, 30 July 2024, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-regext- | <https://datatracker.ietf.org/doc/html/draft-ietf-regext- | |||
rdap-geofeed-01>. | rdap-geofeed-06>. | |||
[INET6NUM] RIPE NCC, "Description of the INET6NUM Object", October | ||||
2019, <https://www.ripe.net/manage-ips-and- | ||||
asns/db/support/documentation/ripe-database-documentation/ | ||||
rpsl-object-types/4-2-descriptions-of-primary- | ||||
objects/4-2-3-description-of-the-inet6num-object>. | ||||
[INETNUM] RIPE NCC, "Description of the INETNUM Object", June 2020, | ||||
<https://www.ripe.net/manage-ips-and- | ||||
asns/db/support/documentation/ripe-database-documentation/ | ||||
rpsl-object-types/4-2-descriptions-of-primary- | ||||
objects/4-2-4-description-of-the-inetnum-object>. | ||||
[RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", | [RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", | |||
STD 9, RFC 959, DOI 10.17487/RFC0959, October 1985, | STD 9, RFC 959, DOI 10.17487/RFC0959, October 1985, | |||
<https://www.rfc-editor.org/info/rfc959>. | <https://www.rfc-editor.org/info/rfc959>. | |||
[RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, | [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, | |||
DOI 10.17487/RFC3912, September 2004, | DOI 10.17487/RFC3912, September 2004, | |||
<https://www.rfc-editor.org/info/rfc3912>. | <https://www.rfc-editor.org/info/rfc3912>. | |||
[RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing | [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing | |||
skipping to change at page 16, line 19 ¶ | skipping to change at line 719 ¶ | |||
[RFC5485] Housley, R., "Digital Signatures on Internet-Draft | [RFC5485] Housley, R., "Digital Signatures on Internet-Draft | |||
Documents", RFC 5485, DOI 10.17487/RFC5485, March 2009, | Documents", RFC 5485, DOI 10.17487/RFC5485, March 2009, | |||
<https://www.rfc-editor.org/info/rfc5485>. | <https://www.rfc-editor.org/info/rfc5485>. | |||
[RFC6269] Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and | [RFC6269] Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and | |||
P. Roberts, "Issues with IP Address Sharing", RFC 6269, | P. Roberts, "Issues with IP Address Sharing", RFC 6269, | |||
DOI 10.17487/RFC6269, June 2011, | DOI 10.17487/RFC6269, June 2011, | |||
<https://www.rfc-editor.org/info/rfc6269>. | <https://www.rfc-editor.org/info/rfc6269>. | |||
[RFC7234] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | ||||
Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", | ||||
RFC 7234, DOI 10.17487/RFC7234, June 2014, | ||||
<https://www.rfc-editor.org/info/rfc7234>. | ||||
[RFC7485] Zhou, L., Kong, N., Shen, S., Sheng, S., and A. Servin, | [RFC7485] Zhou, L., Kong, N., Shen, S., Sheng, S., and A. Servin, | |||
"Inventory and Analysis of WHOIS Registration Objects", | "Inventory and Analysis of WHOIS Registration Objects", | |||
RFC 7485, DOI 10.17487/RFC7485, March 2015, | RFC 7485, DOI 10.17487/RFC7485, March 2015, | |||
<https://www.rfc-editor.org/info/rfc7485>. | <https://www.rfc-editor.org/info/rfc7485>. | |||
[RFC7909] Kisteleki, R. and B. Haberman, "Securing Routing Policy | [RFC7909] Kisteleki, R. and B. Haberman, "Securing Routing Policy | |||
Specification Language (RPSL) Objects with Resource Public | Specification Language (RPSL) Objects with Resource Public | |||
Key Infrastructure (RPKI) Signatures", RFC 7909, | Key Infrastructure (RPKI) Signatures", RFC 7909, | |||
DOI 10.17487/RFC7909, June 2016, | DOI 10.17487/RFC7909, June 2016, | |||
<https://www.rfc-editor.org/info/rfc7909>. | <https://www.rfc-editor.org/info/rfc7909>. | |||
skipping to change at page 16, line 45 ¶ | skipping to change at line 740 ¶ | |||
[RFC9082] Hollenbeck, S. and A. Newton, "Registration Data Access | [RFC9082] Hollenbeck, S. and A. Newton, "Registration Data Access | |||
Protocol (RDAP) Query Format", STD 95, RFC 9082, | Protocol (RDAP) Query Format", STD 95, RFC 9082, | |||
DOI 10.17487/RFC9082, June 2021, | DOI 10.17487/RFC9082, June 2021, | |||
<https://www.rfc-editor.org/info/rfc9082>. | <https://www.rfc-editor.org/info/rfc9082>. | |||
[RFC9092] Bush, R., Candela, M., Kumari, W., and R. Housley, | [RFC9092] Bush, R., Candela, M., Kumari, W., and R. Housley, | |||
"Finding and Using Geofeed Data", RFC 9092, | "Finding and Using Geofeed Data", RFC 9092, | |||
DOI 10.17487/RFC9092, July 2021, | DOI 10.17487/RFC9092, July 2021, | |||
<https://www.rfc-editor.org/info/rfc9092>. | <https://www.rfc-editor.org/info/rfc9092>. | |||
[RIPE-DB] RIPE NCC, "RIPE Database Documentation", | [RFC9111] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | |||
Ed., "HTTP Caching", STD 98, RFC 9111, | ||||
DOI 10.17487/RFC9111, June 2022, | ||||
<https://www.rfc-editor.org/info/rfc9111>. | ||||
[RIPE-DB] RIPE NCC, "RIPE Database Documentation", September 2023, | ||||
<https://www.ripe.net/manage-ips-and- | <https://www.ripe.net/manage-ips-and- | |||
asns/db/support/documentation/ripe-database- | asns/db/support/documentation/ripe-database- | |||
documentation>. | documentation>. | |||
[RIPE181] RIPE NCC, "Representation Of IP Routing Policies In A | [RIPE181] RIPE NCC, "Representation Of IP Routing Policies In A | |||
Routing Registry", October 1994, | Routing Registry", October 1994, | |||
<https://www.ripe.net/publications/docs/ripe-181>. | <https://www.ripe.net/publications/docs/ripe-181>. | |||
[RIPE81] RIPE NCC, "Representation Of IP Routing Policies In The | [RIPE81] RIPE NCC, "Representation Of IP Routing Policies In The | |||
RIPE Database", February 1993, | RIPE Database", February 1993, | |||
skipping to change at page 17, line 20 ¶ | skipping to change at line 769 ¶ | |||
Snijders, J., "Example on how to use rpki-client to | Snijders, J., "Example on how to use rpki-client to | |||
authenticate a signed Geofeed", September 2023, | authenticate a signed Geofeed", September 2023, | |||
<https://sobornost.net/~job/ | <https://sobornost.net/~job/ | |||
using_geofeed_authenticators.txt>. | using_geofeed_authenticators.txt>. | |||
Appendix A. Example | Appendix A. Example | |||
This appendix provides an example, including a trust anchor, a | This appendix provides an example, including a trust anchor, a | |||
Certificate Revocation List (CRL) signed by the trust anchor, a CA | Certificate Revocation List (CRL) signed by the trust anchor, a CA | |||
certificate subordinate to the trust anchor, a CRL signed by the CA, | certificate subordinate to the trust anchor, a CRL signed by the CA, | |||
an end-entity certificate subordinate to the CA for signing the | an end entity certificate subordinate to the CA for signing the | |||
geofeed, and a detached signature. | geofeed, and a detached signature. | |||
The trust anchor is represented by a self-signed certificate. As | The trust anchor is represented by a self-signed certificate. As | |||
usual in the RPKI, the trust anchor has authority over all IPv4 | usual in the RPKI, the trust anchor has authority over all IPv4 | |||
address blocks, all IPv6 address blocks, and all Autonomous Systam | address blocks, all IPv6 address blocks, and all Autonomous System | |||
(AS) numbers. | (AS) numbers. | |||
-----BEGIN CERTIFICATE----- | -----BEGIN CERTIFICATE----- | |||
MIIEQTCCAymgAwIBAgIUEggycNoFVRjAuN/Fw7URu0DEZNAwDQYJKoZIhvcNAQEL | MIIEQTCCAymgAwIBAgIUEggycNoFVRjAuN/Fw7URu0DEZNAwDQYJKoZIhvcNAQEL | |||
BQAwFTETMBEGA1UEAxMKZXhhbXBsZS10YTAeFw0yMzA5MTkyMDMzMzlaFw0zMzA5 | BQAwFTETMBEGA1UEAxMKZXhhbXBsZS10YTAeFw0yMzA5MTkyMDMzMzlaFw0zMzA5 | |||
MTYyMDMzMzlaMBUxEzARBgNVBAMTCmV4YW1wbGUtdGEwggEiMA0GCSqGSIb3DQEB | MTYyMDMzMzlaMBUxEzARBgNVBAMTCmV4YW1wbGUtdGEwggEiMA0GCSqGSIb3DQEB | |||
AQUAA4IBDwAwggEKAoIBAQDQprR+g/i4JyObVURTp1JpGM23vGPyE5fDKFPqV7rw | AQUAA4IBDwAwggEKAoIBAQDQprR+g/i4JyObVURTp1JpGM23vGPyE5fDKFPqV7rw | |||
M1Amm7cnew66U02IzV0X5oiv5nSGfRX5UxsbR+vwPBMceQyDgS5lexFiv4fB/Vjf | M1Amm7cnew66U02IzV0X5oiv5nSGfRX5UxsbR+vwPBMceQyDgS5lexFiv4fB/Vjf | |||
DT2qX/UjsLL9QOeaSOh7ToJSLjmtpa0D9iz7ful3hdxRjpMMZiE/reX9/ymdpW/E | DT2qX/UjsLL9QOeaSOh7ToJSLjmtpa0D9iz7ful3hdxRjpMMZiE/reX9/ymdpW/E | |||
dg0F6+T9WGZE1miPeIjl5OZwnmLHCftkN/aaYk1iPNjNniHYIOjC1jSpABmoZyTj | dg0F6+T9WGZE1miPeIjl5OZwnmLHCftkN/aaYk1iPNjNniHYIOjC1jSpABmoZyTj | |||
skipping to change at page 18, line 5 ¶ | skipping to change at line 803 ¶ | |||
YW1wbGUubmV0L3JlcG9zaXRvcnkvMCcGCCsGAQUFBwEHAQH/BBgwFjAJBAIAATAD | YW1wbGUubmV0L3JlcG9zaXRvcnkvMCcGCCsGAQUFBwEHAQH/BBgwFjAJBAIAATAD | |||
AwEAMAkEAgACMAMDAQAwIQYIKwYBBQUHAQgBAf8EEjAQoA4wDDAKAgEAAgUA//// | AwEAMAkEAgACMAMDAQAwIQYIKwYBBQUHAQgBAf8EEjAQoA4wDDAKAgEAAgUA//// | |||
/zANBgkqhkiG9w0BAQsFAAOCAQEAa9eLY9QAmnlZOIyOzbpta5wqcOUQV/yR7o/0 | /zANBgkqhkiG9w0BAQsFAAOCAQEAa9eLY9QAmnlZOIyOzbpta5wqcOUQV/yR7o/0 | |||
1zkEZaSavKBt19lMK6AXZurx1T5jyjIwG7bEtZZThjtH2m80V5kc2tsFjSq/yp7N | 1zkEZaSavKBt19lMK6AXZurx1T5jyjIwG7bEtZZThjtH2m80V5kc2tsFjSq/yp7N | |||
JBclMHVd3tXse9If3nXYF4bxRIcir1lXlAbYN+Eo1U3i5qJO+fxouzt7Merk2Dih | JBclMHVd3tXse9If3nXYF4bxRIcir1lXlAbYN+Eo1U3i5qJO+fxouzt7Merk2Dih | |||
nsenTeXKzN7tfmuCYZZHCC8viCoJWdH+o1uRM4TiQApZsUJ8sF4TABrrRJmA/Ed5 | nsenTeXKzN7tfmuCYZZHCC8viCoJWdH+o1uRM4TiQApZsUJ8sF4TABrrRJmA/Ed5 | |||
v0CTBbgqTx7yg0+VarFLPdnjYgtpoCJqwE2C1UpX15rZSaLVuGXtbwXd/cHEg5vF | v0CTBbgqTx7yg0+VarFLPdnjYgtpoCJqwE2C1UpX15rZSaLVuGXtbwXd/cHEg5vF | |||
W6QTsMeMQFEUa6hkicDGtxLTUdhckBgmCGoF2nlZii5f1BTWAg== | W6QTsMeMQFEUa6hkicDGtxLTUdhckBgmCGoF2nlZii5f1BTWAg== | |||
-----END CERTIFICATE----- | -----END CERTIFICATE----- | |||
The CRL issued by the trust anchor. | The CRL is issued by the trust anchor. | |||
-----BEGIN X509 CRL----- | -----BEGIN X509 CRL----- | |||
MIIBjjB4AgEBMA0GCSqGSIb3DQEBCwUAMBUxEzARBgNVBAMTCmV4YW1wbGUtdGEX | MIIBjjB4AgEBMA0GCSqGSIb3DQEBCwUAMBUxEzARBgNVBAMTCmV4YW1wbGUtdGEX | |||
DTIzMDkyMzE1NTUzOFoXDTIzMTAyMzE1NTUzOFqgLzAtMB8GA1UdIwQYMBaAFMC9 | DTIzMDkyMzE1NTUzOFoXDTIzMTAyMzE1NTUzOFqgLzAtMB8GA1UdIwQYMBaAFMC9 | |||
Ul2+0niyFuyzo0OV0gYLmQgyMAoGA1UdFAQDAgEEMA0GCSqGSIb3DQEBCwUAA4IB | Ul2+0niyFuyzo0OV0gYLmQgyMAoGA1UdFAQDAgEEMA0GCSqGSIb3DQEBCwUAA4IB | |||
AQCngOu+Nq3WC4y/pHtLoheAOtNg32WWsKPNiEyL+QalmOtURUsWMzOq41bmoPzQ | AQCngOu+Nq3WC4y/pHtLoheAOtNg32WWsKPNiEyL+QalmOtURUsWMzOq41bmoPzQ | |||
NDQoRmXe9mvohAVRe0CnM7A07HOtSfjw5aoouPXGTtfwEomHG2CYk+2U1bvxgZyA | NDQoRmXe9mvohAVRe0CnM7A07HOtSfjw5aoouPXGTtfwEomHG2CYk+2U1bvxgZyA | |||
E1c5TvyhkabFMO0+857wqxRP+ht9NV0lMX6kUFlEOCw3ELVd9oNNRBwKQtXj1huM | E1c5TvyhkabFMO0+857wqxRP+ht9NV0lMX6kUFlEOCw3ELVd9oNNRBwKQtXj1huM | |||
6Sf26va2a1tnC5zP01hN+EY3S9T5T1gcgPGBcqRWKoXJEbRzCrLsb/TMj5cMpIje | 6Sf26va2a1tnC5zP01hN+EY3S9T5T1gcgPGBcqRWKoXJEbRzCrLsb/TMj5cMpIje | |||
AHZoBojVAmvL1AIH/BnGAQj0+XqaJ0axHvlqJa8iX8QwKqhp+o6sv/atY2QDDRmE | AHZoBojVAmvL1AIH/BnGAQj0+XqaJ0axHvlqJa8iX8QwKqhp+o6sv/atY2QDDRmE | |||
skipping to change at page 19, line 5 ¶ | skipping to change at line 851 ¶ | |||
b3NpdG9yeS8wHwYIKwYBBQUHAQcBAf8EEDAOMAwEAgABMAYDBADAAAIwIQYIKwYB | b3NpdG9yeS8wHwYIKwYBBQUHAQcBAf8EEDAOMAwEAgABMAYDBADAAAIwIQYIKwYB | |||
BQUHAQgBAf8EEjAQoA4wDDAKAgMA+/ACAwD78TANBgkqhkiG9w0BAQsFAAOCAQEA | BQUHAQgBAf8EEjAQoA4wDDAKAgMA+/ACAwD78TANBgkqhkiG9w0BAQsFAAOCAQEA | |||
arIrZWb22wFmP+hVjhdg3IsKHB6fQdMuUR0u2DyZTVvbL6C+HyGAH32pi5mR/QLX | arIrZWb22wFmP+hVjhdg3IsKHB6fQdMuUR0u2DyZTVvbL6C+HyGAH32pi5mR/QLX | |||
FAfdqALaB7r68tQTGLIW6bGljT+BqUPJmZcj56x3cBLJlltxwFatTloypjFt3cls | FAfdqALaB7r68tQTGLIW6bGljT+BqUPJmZcj56x3cBLJlltxwFatTloypjFt3cls | |||
xFCuuD9J2iBxc6odTKi6u0mhQjD+C9m4xkbe8XXWWx85IHm1s6rYbpGgiMWxBC80 | xFCuuD9J2iBxc6odTKi6u0mhQjD+C9m4xkbe8XXWWx85IHm1s6rYbpGgiMWxBC80 | |||
qqAzmBHGROWKUEvh00EYIYdiAvyFcrj7QtDiRJL5TDOySVd9pWJkerDzhqwE1IaZ | qqAzmBHGROWKUEvh00EYIYdiAvyFcrj7QtDiRJL5TDOySVd9pWJkerDzhqwE1IaZ | |||
rpHck+lkYTS7jTD++6v32HG62GdsmryOQUk3aU1rLb3kS8vzaGbrgHpGPid0Hd0x | rpHck+lkYTS7jTD++6v32HG62GdsmryOQUk3aU1rLb3kS8vzaGbrgHpGPid0Hd0x | |||
ZSl1AoIMpp5mZ7/h9aW5+A== | ZSl1AoIMpp5mZ7/h9aW5+A== | |||
-----END CERTIFICATE----- | -----END CERTIFICATE----- | |||
The CRL issued by the CA. | The CRL is issued by the CA. | |||
-----BEGIN X509 CRL----- | -----BEGIN X509 CRL----- | |||
MIIBrTCBlgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEygzQUNFMkNFRjRG | MIIBrTCBlgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEygzQUNFMkNFRjRG | |||
QjIxQjdEMTFFM0UxODRFRkMxRTI5N0IzNzc4NjQyFw0yMzA5MjMxNTU1MzhaFw0y | QjIxQjdEMTFFM0UxODRFRkMxRTI5N0IzNzc4NjQyFw0yMzA5MjMxNTU1MzhaFw0y | |||
MzEwMjMxNTU1MzhaoC8wLTAfBgNVHSMEGDAWgBQ6zizvT7IbfRHj4YTvweKXs3eG | MzEwMjMxNTU1MzhaoC8wLTAfBgNVHSMEGDAWgBQ6zizvT7IbfRHj4YTvweKXs3eG | |||
QjAKBgNVHRQEAwIBATANBgkqhkiG9w0BAQsFAAOCAQEACwCNzcAoqbMcUL1kBY65 | QjAKBgNVHRQEAwIBATANBgkqhkiG9w0BAQsFAAOCAQEACwCNzcAoqbMcUL1kBY65 | |||
YhL95OnBqAcuc99pD4i9c1BmVOl7bXU3cJqLaOZ6Z8CmN0kBbcHyqlHBJ9oA/aYD | YhL95OnBqAcuc99pD4i9c1BmVOl7bXU3cJqLaOZ6Z8CmN0kBbcHyqlHBJ9oA/aYD | |||
ByhxsjzKk7jxtM2IlTpEvCEqvnGLSVihgS3h0NA+sgWqHGL3Rhcj6hVsi+j9GENc | ByhxsjzKk7jxtM2IlTpEvCEqvnGLSVihgS3h0NA+sgWqHGL3Rhcj6hVsi+j9GENc | |||
T6F9np1mxbI3i2xhgeDJG1pryvH0hWXh7yJiYS8ItNEaIIXDT3szK/J9wnPjukTR | T6F9np1mxbI3i2xhgeDJG1pryvH0hWXh7yJiYS8ItNEaIIXDT3szK/J9wnPjukTR | |||
5MITiK9P3TCFujawb3O7rIT5PPgkM6eiCdwDgt6gjmw6cow5+rMjNHSRa+GOviSd | 5MITiK9P3TCFujawb3O7rIT5PPgkM6eiCdwDgt6gjmw6cow5+rMjNHSRa+GOviSd | |||
gXljVDfJvF4tKHmw59Jc2aFnSGfX1/ITDNiNfXYpUYFOcsqxkYf8F0uO7AtbRmTF | gXljVDfJvF4tKHmw59Jc2aFnSGfX1/ITDNiNfXYpUYFOcsqxkYf8F0uO7AtbRmTF | |||
2w== | 2w== | |||
-----END X509 CRL----- | -----END X509 CRL----- | |||
The end-entity certificate is issued by the CA. This certificate | The end entity certificate is issued by the CA. This certificate | |||
grants signature authority for one IPv4 address block (192.0.2.0/24). | grants signature authority for one IPv4 address block (192.0.2.0/24). | |||
Signature authority for AS numbers is not needed for geofeed data | Signature authority for AS numbers is not needed for geofeed data | |||
signatures, so no AS numbers are included in the end-entity | signatures, so no AS numbers are included in the end entity | |||
certificate. | certificate. | |||
-----BEGIN CERTIFICATE----- | -----BEGIN CERTIFICATE----- | |||
MIIEVjCCAz6gAwIBAgIUJ605QIPX8rW5m4Zwx3WyuW7hZvAwDQYJKoZIhvcNAQEL | MIIEVjCCAz6gAwIBAgIUJ605QIPX8rW5m4Zwx3WyuW7hZvAwDQYJKoZIhvcNAQEL | |||
BQAwMzExMC8GA1UEAxMoM0FDRTJDRUY0RkIyMUI3RDExRTNFMTg0RUZDMUUyOTdC | BQAwMzExMC8GA1UEAxMoM0FDRTJDRUY0RkIyMUI3RDExRTNFMTg0RUZDMUUyOTdC | |||
Mzc3ODY0MjAeFw0yMzA5MjMxNTU1MzhaFw0yNDA3MTkxNTU1MzhaMDMxMTAvBgNV | Mzc3ODY0MjAeFw0yMzA5MjMxNTU1MzhaFw0yNDA3MTkxNTU1MzhaMDMxMTAvBgNV | |||
BAMTKDkxNDY1MkEzQkQ1MUMxNDQyNjAxOTg4ODlGNUM0NUFCRjA1M0ExODcwggEi | BAMTKDkxNDY1MkEzQkQ1MUMxNDQyNjAxOTg4ODlGNUM0NUFCRjA1M0ExODcwggEi | |||
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycTQrOb/qB2W3i3Ki8PhA/DEW | MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycTQrOb/qB2W3i3Ki8PhA/DEW | |||
yii2TgGo9pgCwO9lsIRI6Zb/k+aSiWWP9kSczlcQgtPCVwr62hTQZCIowBN0BL0c | yii2TgGo9pgCwO9lsIRI6Zb/k+aSiWWP9kSczlcQgtPCVwr62hTQZCIowBN0BL0c | |||
K0/5k1imJdi5qdM3nvKswM8CnoR11vB8pQFwruZmr5xphXRvE+mzuJVLgu2V1upm | K0/5k1imJdi5qdM3nvKswM8CnoR11vB8pQFwruZmr5xphXRvE+mzuJVLgu2V1upm | |||
skipping to change at page 20, line 5 ¶ | skipping to change at line 899 ¶ | |||
RjRGQjIxQjdEMTFFM0UxODRFRkMxRTI5N0IzNzc4NjQyLmNlcjAfBggrBgEFBQcB | RjRGQjIxQjdEMTFFM0UxODRFRkMxRTI5N0IzNzc4NjQyLmNlcjAfBggrBgEFBQcB | |||
BwEB/wQQMA4wDAQCAAEwBgMEAMAAAjANBgkqhkiG9w0BAQsFAAOCAQEAlxt25FUe | BwEB/wQQMA4wDAQCAAEwBgMEAMAAAjANBgkqhkiG9w0BAQsFAAOCAQEAlxt25FUe | |||
e0+uCidTH+4p7At3u2ncgHcGTsag3UcoPjcE/I1JgQJRu9TiM4iNB1C7Lbdd131g | e0+uCidTH+4p7At3u2ncgHcGTsag3UcoPjcE/I1JgQJRu9TiM4iNB1C7Lbdd131g | |||
MdliL5GQ3P4QfKnfkuPR6S1V8suq6ZT1KQRyLJx+EPgDN2rb/iji0TOK6RKPNBdG | MdliL5GQ3P4QfKnfkuPR6S1V8suq6ZT1KQRyLJx+EPgDN2rb/iji0TOK6RKPNBdG | |||
lXVLjth4x/uu1O4V54GLEhDAPQC8IUm5intL/Hx1M1x2ptN/+j5HD3XUXd3x13yi | lXVLjth4x/uu1O4V54GLEhDAPQC8IUm5intL/Hx1M1x2ptN/+j5HD3XUXd3x13yi | |||
s6u758nbA7ND40JNhGG5JNGQgDchL4IQzIhylMNC+bKUiyyMHz3MqoVAklIB86IW | s6u758nbA7ND40JNhGG5JNGQgDchL4IQzIhylMNC+bKUiyyMHz3MqoVAklIB86IW | |||
Ucv72Mekq+i46T/w3RnaGn4x7RAJctVJWw3e5YMrFnQcuuaGOs0QcoxW7Bi4W7Eg | Ucv72Mekq+i46T/w3RnaGn4x7RAJctVJWw3e5YMrFnQcuuaGOs0QcoxW7Bi4W7Eg | |||
8fK1fd/f6fjZ9w== | 8fK1fd/f6fjZ9w== | |||
-----END CERTIFICATE----- | -----END CERTIFICATE----- | |||
The end-entity certificate is displayed below in detail. For | The end entity certificate is displayed below in detail. For | |||
brevity, the other two certificates are not. | brevity, the other two certificates are not. | |||
0 1110: SEQUENCE { | 0 1110: SEQUENCE { | |||
4 830: SEQUENCE { | 4 830: SEQUENCE { | |||
8 3: [0] { | 8 3: [0] { | |||
10 1: INTEGER 2 | 10 1: INTEGER 2 | |||
: } | : } | |||
13 20: INTEGER | 13 20: INTEGER | |||
: 27 AD 39 40 83 D7 F2 B5 B9 9B 86 70 C7 75 B2 B9 | : 27 AD 39 40 83 D7 F2 B5 B9 9B 86 70 C7 75 B2 B9 | |||
: 6E E1 66 F0 | : 6E E1 66 F0 | |||
skipping to change at page 23, line 45 ¶ | skipping to change at line 1084 ¶ | |||
: 4B FC 7C 75 33 5C 76 A6 D3 7F FA 3E 47 0F 75 D4 | : 4B FC 7C 75 33 5C 76 A6 D3 7F FA 3E 47 0F 75 D4 | |||
: 5D DD F1 D7 7C A2 B3 AB BB E7 C9 DB 03 B3 43 E3 | : 5D DD F1 D7 7C A2 B3 AB BB E7 C9 DB 03 B3 43 E3 | |||
: 42 4D 84 61 B9 24 D1 90 80 37 21 2F 82 10 CC 88 | : 42 4D 84 61 B9 24 D1 90 80 37 21 2F 82 10 CC 88 | |||
: 72 94 C3 42 F9 B2 94 8B 2C 8C 1F 3D CC AA 85 40 | : 72 94 C3 42 F9 B2 94 8B 2C 8C 1F 3D CC AA 85 40 | |||
: 92 52 01 F3 A2 16 51 CB FB D8 C7 A4 AB E8 B8 E9 | : 92 52 01 F3 A2 16 51 CB FB D8 C7 A4 AB E8 B8 E9 | |||
: 3F F0 DD 19 DA 1A 7E 31 ED 10 09 72 D5 49 5B 0D | : 3F F0 DD 19 DA 1A 7E 31 ED 10 09 72 D5 49 5B 0D | |||
: DE E5 83 2B 16 74 1C BA E6 86 3A CD 10 72 8C 56 | : DE E5 83 2B 16 74 1C BA E6 86 3A CD 10 72 8C 56 | |||
: EC 18 B8 5B B1 20 F1 F2 B5 7D DF DF E9 F8 D9 F7 | : EC 18 B8 5B B1 20 F1 F2 B5 7D DF DF E9 F8 D9 F7 | |||
: } | : } | |||
To allow reproduction of the signature results, the end-entity | To allow reproduction of the signature results, the end entity | |||
private key is provided. For brevity, the other two private keys are | private key is provided. For brevity, the other two private keys are | |||
not. | not. | |||
-----BEGIN RSA PRIVATE KEY----- | -----BEGIN RSA PRIVATE KEY----- | |||
MIIEpQIBAAKCAQEAsnE0Kzm/6gdlt4tyovD4QPwxFsootk4BqPaYAsDvZbCESOmW | MIIEpQIBAAKCAQEAsnE0Kzm/6gdlt4tyovD4QPwxFsootk4BqPaYAsDvZbCESOmW | |||
/5Pmkollj/ZEnM5XEILTwlcK+toU0GQiKMATdAS9HCtP+ZNYpiXYuanTN57yrMDP | /5Pmkollj/ZEnM5XEILTwlcK+toU0GQiKMATdAS9HCtP+ZNYpiXYuanTN57yrMDP | |||
Ap6EddbwfKUBcK7mZq+caYV0bxPps7iVS4LtldbqZgV7lpaHsprnYellifhg48D1 | Ap6EddbwfKUBcK7mZq+caYV0bxPps7iVS4LtldbqZgV7lpaHsprnYellifhg48D1 | |||
zt0YlwXowazhTV4WhS3tPMuAz36/0v7VyTgZu0M0KbZmzy2LRn6a2LuOZYhRaqj/ | zt0YlwXowazhTV4WhS3tPMuAz36/0v7VyTgZu0M0KbZmzy2LRn6a2LuOZYhRaqj/ | |||
eFHi6SEn13d+gChs6kxQnHNxFvZeVBRNTBS5Z6BKIKraC6CgAbdCJDhRingvxIHm | eFHi6SEn13d+gChs6kxQnHNxFvZeVBRNTBS5Z6BKIKraC6CgAbdCJDhRingvxIHm | |||
gXVi3uOvXXQva0H7ecOoOnJsRvmmA3SBAd+M6wIDAQABAoIBAQCyB0FeMuKm8bRo | gXVi3uOvXXQva0H7ecOoOnJsRvmmA3SBAd+M6wIDAQABAoIBAQCyB0FeMuKm8bRo | |||
skipping to change at page 24, line 33 ¶ | skipping to change at line 1116 ¶ | |||
O2TPSfZhF/zPo3pCWQ78/QDb+Zdw4IEiqoBA7F4NPVLg9Y/H8UTx9r/veqe7hPOo | O2TPSfZhF/zPo3pCWQ78/QDb+Zdw4IEiqoBA7F4NPVLg9Y/H8UTx9r/veqe7hPOo | |||
Ok7NpIzSmKTHkc5XfZ60Zn9OLFoKbaQ40a1kXoJdWEu2YROaUlAe9F6/Rog6PHYz | Ok7NpIzSmKTHkc5XfZ60Zn9OLFoKbaQ40a1kXoJdWEu2YROaUlAe9F6/Rog6PHYz | |||
vLE5qscRbu0XQhLkN+z7bg5bAoGBAKDsbDEb/dbqbyaAYpmwhH2sdRSkphg7Niwc | vLE5qscRbu0XQhLkN+z7bg5bAoGBAKDsbDEb/dbqbyaAYpmwhH2sdRSkphg7Niwc | |||
DNm9qWa1J6Zw1+M87I6Q8naRREuU1IAVqqWHVLr/ROBQ6NTJ1Uc5/qFeT2XXUgkf | DNm9qWa1J6Zw1+M87I6Q8naRREuU1IAVqqWHVLr/ROBQ6NTJ1Uc5/qFeT2XXUgkf | |||
taMKv61tuyjZK3sTmznMh0HfzUpWjEhWnCEuB+ZYVdmO52ZGw2A75RdrILL2+9Dc | taMKv61tuyjZK3sTmznMh0HfzUpWjEhWnCEuB+ZYVdmO52ZGw2A75RdrILL2+9Dc | |||
PvDXVubRAoGAdqXeSWoLxuzZXzl8rsaKrQsTYaXnOWaZieU1SL5vVe8nK257UDqZ | PvDXVubRAoGAdqXeSWoLxuzZXzl8rsaKrQsTYaXnOWaZieU1SL5vVe8nK257UDqZ | |||
E3ng2j5XPTUWli+aNGFEJGRoNtcQvO60O/sFZUhu52sqq9mWVYZNh1TB5aP8X+pV | E3ng2j5XPTUWli+aNGFEJGRoNtcQvO60O/sFZUhu52sqq9mWVYZNh1TB5aP8X+pV | |||
iFcZOLUvQEcN6PA+YQK5FU11rAI1M0Gm5RDnVnUl0L2xfCYxb7FzV6Y= | iFcZOLUvQEcN6PA+YQK5FU11rAI1M0Gm5RDnVnUl0L2xfCYxb7FzV6Y= | |||
-----END RSA PRIVATE KEY----- | -----END RSA PRIVATE KEY----- | |||
Signing of "192.0.2.0/24,US,WA,Seattle," (terminated by CR and LF), | The signing of "192.0.2.0/24,US,WA,Seattle," (terminated by CR and | |||
yields the following detached CMS signature. | LF) yields the following detached CMS signature. | |||
# RPKI Signature: 192.0.2.0/24 | # RPKI Signature: 192.0.2.0/24 | |||
# MIIGQAYJKoZIhvcNAQcCoIIGMTCCBi0CAQMxDTALBglghkgBZQMEAgEwDQYLKoZ | # MIIGQAYJKoZIhvcNAQcCoIIGMTCCBi0CAQMxDTALBglghkgBZQMEAgEwDQYLKoZ | |||
# IhvcNAQkQAS+gggRaMIIEVjCCAz6gAwIBAgIUJ605QIPX8rW5m4Zwx3WyuW7hZv | # IhvcNAQkQAS+gggRaMIIEVjCCAz6gAwIBAgIUJ605QIPX8rW5m4Zwx3WyuW7hZv | |||
# AwDQYJKoZIhvcNAQELBQAwMzExMC8GA1UEAxMoM0FDRTJDRUY0RkIyMUI3RDExR | # AwDQYJKoZIhvcNAQELBQAwMzExMC8GA1UEAxMoM0FDRTJDRUY0RkIyMUI3RDExR | |||
# TNFMTg0RUZDMUUyOTdCMzc3ODY0MjAeFw0yMzA5MjMxNTU1MzhaFw0yNDA3MTkx | # TNFMTg0RUZDMUUyOTdCMzc3ODY0MjAeFw0yMzA5MjMxNTU1MzhaFw0yNDA3MTkx | |||
# NTU1MzhaMDMxMTAvBgNVBAMTKDkxNDY1MkEzQkQ1MUMxNDQyNjAxOTg4ODlGNUM | # NTU1MzhaMDMxMTAvBgNVBAMTKDkxNDY1MkEzQkQ1MUMxNDQyNjAxOTg4ODlGNUM | |||
# 0NUFCRjA1M0ExODcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycT | # 0NUFCRjA1M0ExODcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycT | |||
# QrOb/qB2W3i3Ki8PhA/DEWyii2TgGo9pgCwO9lsIRI6Zb/k+aSiWWP9kSczlcQg | # QrOb/qB2W3i3Ki8PhA/DEWyii2TgGo9pgCwO9lsIRI6Zb/k+aSiWWP9kSczlcQg | |||
# tPCVwr62hTQZCIowBN0BL0cK0/5k1imJdi5qdM3nvKswM8CnoR11vB8pQFwruZm | # tPCVwr62hTQZCIowBN0BL0cK0/5k1imJdi5qdM3nvKswM8CnoR11vB8pQFwruZm | |||
skipping to change at page 25, line 42 ¶ | skipping to change at line 1156 ¶ | |||
# iG9w0BCQMxDQYLKoZIhvcNAQkQAS8wHAYJKoZIhvcNAQkFMQ8XDTIzMDkyMzE1N | # iG9w0BCQMxDQYLKoZIhvcNAQkQAS8wHAYJKoZIhvcNAQkFMQ8XDTIzMDkyMzE1N | |||
# TUzOFowLwYJKoZIhvcNAQkEMSIEICvi8p5S8ckg2wTRhDBQzGijjyqs5T6I+4Vt | # TUzOFowLwYJKoZIhvcNAQkEMSIEICvi8p5S8ckg2wTRhDBQzGijjyqs5T6I+4Vt | |||
# BHypfcEWMA0GCSqGSIb3DQEBAQUABIIBAKZND7pKdVdfpB6zaJN89wTt+sXd0io | # BHypfcEWMA0GCSqGSIb3DQEBAQUABIIBAKZND7pKdVdfpB6zaJN89wTt+sXd0io | |||
# 0WULMc+o6gRJFt3wmKNW2nYPrDbocJ+Q/rDMGxbp4QetJ0MQtn1+AYAS8v5jPDO | # 0WULMc+o6gRJFt3wmKNW2nYPrDbocJ+Q/rDMGxbp4QetJ0MQtn1+AYAS8v5jPDO | |||
# 4a63U4/mJ2D3wSnQsDP0lUVknqRzfnS66HgHqiOVdHB0U+OnMEJuqHNTLx0dknb | # 4a63U4/mJ2D3wSnQsDP0lUVknqRzfnS66HgHqiOVdHB0U+OnMEJuqHNTLx0dknb | |||
# L3zwxyDJTHdo+dMB0U9xdcjwpsPM3xqg57EXj5EIQK5JbardXCjrsysAnEdktUY | # L3zwxyDJTHdo+dMB0U9xdcjwpsPM3xqg57EXj5EIQK5JbardXCjrsysAnEdktUY | |||
# oyayGNbbQelANYJcOmuHhSXArR+qqzvNP2MDRqqKEcpd65YW6FSnqlVMIBH2M3P | # oyayGNbbQelANYJcOmuHhSXArR+qqzvNP2MDRqqKEcpd65YW6FSnqlVMIBH2M3P | |||
# D2F0p3sdm4IeGAZWaERVB4AXO1PUFDNdhamr4XpIwqIoAig7xiLm7j8qu5Oc= | # D2F0p3sdm4IeGAZWaERVB4AXO1PUFDNdhamr4XpIwqIoAig7xiLm7j8qu5Oc= | |||
# End Signature: 192.0.2.0/24 | # End Signature: 192.0.2.0/24 | |||
Acknowledgments | ||||
Thanks to Rob Austein for the CMS and detached signature clue, George | ||||
Michaelson for the first and substantial external review, and Erik | ||||
Kline who was too shy to agree to coauthorship. Additionally, we | ||||
express our gratitude to early implementors, including Menno | ||||
Schepers, Flavio Luciani, Eric Dugas, and Kevin Pack. Also, thanks | ||||
to the following geolocation providers who are consuming geofeeds | ||||
with this described solution: Jonathan Kosgei (ipdata.co), Ben | ||||
Dowling (ipinfo.io), and Pol Nisenblat (bigdatacloud.com). For an | ||||
amazing number of helpful reviews, we thank Job Snijders, who also | ||||
found an ASN.1 'inherit' issue, Adrian Farrel, Antonio Prado, | ||||
Francesca Palombini, Jean-Michel Combes (INTDIR), John Scudder, Kyle | ||||
Rose (SECDIR), Martin Duke, Mohamed Boucadair, Murray Kucherawy, Paul | ||||
Kyzivat (GENART), Rob Wilton, Roman Danyliw, and Ties de Kock. | ||||
Authors' Addresses | Authors' Addresses | |||
Randy Bush | Randy Bush | |||
IIJ Research & Arrcus | IIJ Research & Arrcus | |||
5147 Crystal Springs | 5147 Crystal Springs | |||
Bainbridge Island, Washington 98110 | Bainbridge Island, Washington 98110 | |||
United States of America | United States of America | |||
Email: randy@psg.com | Email: randy@psg.com | |||
Massimo Candela | Massimo Candela | |||
NTT | NTT | |||
Veemweg 23 | Veemweg 23 | |||
3771 MT Barneveld | 3771 MT Barneveld | |||
Netherlands | Netherlands | |||
Email: massimo@ntt.net | Email: massimo@ntt.net | |||
Warren Kumari | Warren Kumari | |||
1600 Amphitheatre Parkway | 1600 Amphitheatre Parkway | |||
End of changes. 66 change blocks. | ||||
180 lines changed or deleted | 191 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |