draft-ietf-regext-rdap-reverse-search-08.txt | draft-ietf-regext-rdap-reverse-search-09.txt | |||
---|---|---|---|---|
Registration Protocols Extensions M. Loffredo | Registration Protocols Extensions M. Loffredo | |||
Internet-Draft M. Martinelli | Internet-Draft M. Martinelli | |||
Intended status: Standards Track IIT-CNR/Registro.it | Intended status: Standards Track IIT-CNR/Registro.it | |||
Expires: 31 May 2022 27 November 2021 | Expires: 14 August 2022 10 February 2022 | |||
Registration Data Access Protocol (RDAP) Reverse search capabilities | Registration Data Access Protocol (RDAP) Reverse search capabilities | |||
draft-ietf-regext-rdap-reverse-search-08 | draft-ietf-regext-rdap-reverse-search-09 | |||
Abstract | Abstract | |||
The Registration Data Access Protocol (RDAP) does not include query | The Registration Data Access Protocol (RDAP) does not include query | |||
capabilities to find the list of domains related to a set of entities | capabilities to find the list of domains related to a set of entities | |||
matching a given search pattern. In the RDAP context, an entity can | matching a given search pattern. In the RDAP context, an entity can | |||
be associated to any defined object class. Therefore, a reverse | be associated with any defined object class. Moreover, other | |||
search can be applied to other use cases than the classic domain- | relationships between object classes exist and might be used for | |||
entity scenario. This document describes RDAP query extensions that | providing a reverse search capability. Therefore, a reverse search | |||
allow servers to provide a reverse search feature based on the | can be applied to other use cases than the classic domain-entity | |||
relationship between any searchable object and the related entities. | scenario. This document describes RDAP query extensions that allow | |||
servers to provide a reverse search feature based on the relationship | ||||
defined in RDAP between an object class for search and any related | ||||
object class. The reverse search based on the domain-entity | ||||
relationship is treated as a particular case but with a special focus | ||||
on its privacy implications. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 31 May 2022. | This Internet-Draft will expire on 14 August 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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 (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Conventions Used in This Document . . . . . . . . . . . . 4 | 1.1. Conventions Used in This Document . . . . . . . . . . . . 4 | |||
2. RDAP Path Segment Specification . . . . . . . . . . . . . . . 4 | 2. RDAP Path Segment Specification . . . . . . . . . . . . . . . 4 | |||
3. RDAP Conformance . . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Reverse Searches Based on Entity Details . . . . . . . . 4 | |||
3. RDAP Conformance . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
4. Implementation Considerations . . . . . . . . . . . . . . . . 6 | 4. Implementation Considerations . . . . . . . . . . . . . . . . 6 | |||
5. Implementation Status . . . . . . . . . . . . . . . . . . . . 6 | 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 6 | |||
5.1. IIT-CNR/Registro.it RDAP Server . . . . . . . . . . . . . 6 | 5.1. IIT-CNR/Registro.it RDAP Server . . . . . . . . . . . . . 7 | |||
5.2. IIT-CNR/Registro.it RDAP Client . . . . . . . . . . . . . 7 | 5.2. IIT-CNR/Registro.it RDAP Client . . . . . . . . . . . . . 7 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 10 | 10.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. Paradigms to Enforce Access Control on Reverse Search | Appendix A. Paradigms to Enforce Access Control on Reverse Search | |||
in RDAP . . . . . . . . . . . . . . . . . . . . . . . . . 11 | in RDAP . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 11 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
1. Introduction | 1. Introduction | |||
Reverse Whois is a service provided by many web applications that | Reverse Whois is a service provided by many web applications that | |||
allow users to find domain names owned by an individual or a company | allow users to find domain names owned by an individual or a company | |||
starting from the owner's details, such as name and email. Even if | starting from the owner's details, such as name and email. Even if | |||
it has been considered useful for some legal purposes (e.g. | it has been considered useful for some legal purposes (e.g. | |||
uncovering trademark infringements, detecting cybercrime cases), its | uncovering trademark infringements, detecting cybercrimes), its | |||
availability as a standardized Whois capability has been objected for | availability as a standardized Whois capability has been objected to | |||
two main reasons, which now don't seem to conflict with an RDAP | for two main reasons, which now don't seem to conflict with an RDAP | |||
implementation. | implementation. | |||
The first objection has been caused by the potential risks of privacy | The first objection has been caused by the potential risks of privacy | |||
violation. However, TLDs community is considering a new generation | violation. However, TLDs community is considering a new generation | |||
of Registration Directory Services [ICANN-RDS1] [ICANN-RDS2] | of Registration Directory Services [ICANN-RDS1] [ICANN-RDS2] | |||
[ICANN-RA], which provide access to sensitive data under some | [ICANN-RA], which provide access to sensitive data under some | |||
permissible purposes and according to adequate policies to enforce | permissible purposes and according to adequate policies to enforce | |||
the requestor accreditation, authentication, authorization, and terms | the requestor accreditation, authentication, authorization, and terms | |||
and conditions of data use. It is well known that such security | and conditions of data use. It is well known that such security | |||
policies are not implemented in Whois [RFC3912], while they are in | policies are not implemented in Whois [RFC3912], while they are in | |||
RDAP [RFC7481]. Therefore, RDAP permits a reverse search | RDAP [RFC7481]. Therefore, RDAP permits a reverse search | |||
implementation complying with privacy protection principles. | implementation complying with privacy protection principles. | |||
Another objection to the implementation of a reverse search | The other objection to the implementation of a reverse search | |||
capability has been connected with its impact on server processing. | capability has been connected with its impact on server processing. | |||
Since RDAP supports search queries, the impact of both standard and | Since RDAP supports search queries, the impact of both standard and | |||
reverse searches is equivalent and can be mitigated by servers | reverse searches is equivalent and can be mitigated by servers | |||
adopting ad hoc strategies. Furthermore, the reverse search is | adopting ad hoc strategies. Furthermore, the reverse search is | |||
almost always performed by specifying an entity role (e.g. | almost always performed by specifying an entity role (e.g. | |||
registrant, technical contact) and this can contribute to restricting | registrant, technical contact) and this can contribute to restricting | |||
the result set. | the result set. | |||
Reverse searches, such as finding the list of domain names associated | Reverse searches, such as finding the list of domain names associated | |||
with contacts or nameservers may be useful to registrars as well. | with contacts or nameservers may be useful to registrars as well. | |||
Usually, registries adopt out-of-band solutions to provide results to | Usually, registries adopt out-of-band solutions to provide results to | |||
registrars asking for reverse searches on their domains. Possible | registrars asking for reverse searches on their domains. Possible | |||
reasons for such requests are: | reasons for such requests are: | |||
* the loss of synchronization between the registrar database and the | * the loss of synchronization between the registrar database and the | |||
registry database; | registry database; | |||
* the need for such data to perform massive EPP [RFC5730] updates | * the need for such data to perform massive EPP [RFC5730] updates | |||
(e.g. changing the contacts of a set of domains, etc.). | (e.g. changing the contacts of a set of domains, etc.). | |||
Currently, RDAP does not provide any way for a client to search for | Currently, RDAP does not provide any means for a client to search for | |||
the collection of domains associated with an entity [RFC9082]. A | the collection of domains associated with an entity [RFC9082]. A | |||
query (lookup or search) on domains can return the array of entities | query (lookup or search) on domains can return the array of entities | |||
related to a domain with different roles (registrant, registrar, | related to a domain with different roles (registrant, registrar, | |||
administrative, technical, reseller, etc.), but the reverse operation | administrative, technical, reseller, etc.), but the reverse operation | |||
is not allowed. Only reverse searches to find the collection of | is not allowed. Only reverse searches to find the collection of | |||
domains related to a nameserver (ldhName or ip) can be requested. | domains related to a nameserver (ldhName or ip) can be requested. | |||
Since an entity can be in relationship with any RDAP object | Since an entity can be in relationship with any RDAP object | |||
[RFC9083], the availability of a reverse search can be common to all | [RFC9083], the availability of a reverse search as largely intended | |||
resource type path segments defined for search. | can be common to all the object classes allowed for search. Through | |||
a further step of generalization, the meaning of reverse search in | ||||
the RDAP context can be extended to include any query for retrieving | ||||
all the objects in relationship with another matching a given search | ||||
pattern. | ||||
The protocol described in this specification aims to extend the RDAP | The protocol described in this specification aims to extend the RDAP | |||
query capabilities to enable the reverse search based on the | query capabilities to enable the reverse search based on the | |||
relationship between any object and the associated entities. The | relationships defined in RDAP between an object class for search and | |||
extension is implemented by adding new path segments (i.e. search | any related object class. The reverse search based on the domain- | |||
entity relationship is treated as a particular case of such a generic | ||||
query model but with a special focus on its privacy implications. | ||||
The extension is implemented by adding new path segments (i.e. search | ||||
paths) and using a RESTful web service [REST]. The service is | paths) and using a RESTful web service [REST]. The service is | |||
implemented using the Hypertext Transfer Protocol (HTTP) [RFC7230] | implemented using the Hypertext Transfer Protocol (HTTP) [RFC7230] | |||
and the conventions described in [RFC7480]. | and the conventions described in [RFC7480]. | |||
1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
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 BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. RDAP Path Segment Specification | 2. RDAP Path Segment Specification | |||
The new search paths are OPTIONAL extensions of those defined in | The new search paths are OPTIONAL extensions of those defined in | |||
[RFC9082]. A generic reverse search path is described by the syntax: | [RFC9082]. A generic reverse search path is described by the syntax: | |||
{resource-type}/reverse/{role}?{property}=<search pattern> | {searchable-resource-type}/reverse/{related-resource-type}?<search- | |||
condition> | ||||
The path segments are defined as in the following: | The path segments are defined as in the following: | |||
* resource-type: it MUST be one of resource type path segments | * searchable-resource-type: it MUST be one of resource types for | |||
defined in Section 3.2 of [RFC9082]: "domains", "nameservers" or | search defined in Section 3.2 of [RFC9082], i.e. "domains", | |||
"entities"; | "nameservers" and "entities"; | |||
* role: it MUST be one of the roles described in Section 10.2.4 of | * related-resource-type: it MUST be one of the resource types for | |||
[RFC9083]. For role independent reverse searches, the value | lookup defined in Section 3.1 of [RFC9082], i.e. "domain", | |||
"entity" MUST be used; | "nameserver", "entity", "ip" and "autnum"; | |||
* property: it identifies the entity property to be used in matching | * search-condition: a sequence of "property=search pattern" | |||
the search pattern. A pre-defined list of properties includes: | predicates separated by the ampersand character ('&', US-ASCII | |||
fn, handle, email, city, country, cc. The mapping between such | value 0x0026). Each "property" represents a JSON object property | |||
properties and the RDAP properties is shown in Table 1. Some of | of the RDAP object class corresponding to "related-resource-type". | |||
the properties are related to jCard elements [RFC7095] but, being | All the predicates are joined by the AND logical operator. Based | |||
jCard the JSON format for vCard [RFC6350], the corresponding | on their policy, servers MAY restrict the usage of predicates to | |||
definitions are included in vCard specification. Servers MAY | make a valid search condition. | |||
implement other properties than those defined in this document. | ||||
Partial string matching is allowed as defined in section 4.1 of | Partial string matching in search patterns is allowed as defined in | |||
[RFC9082]. | section 4.1 of [RFC9082]. | |||
+=========================+===============+==========+=======+======+ | 2.1. Reverse Searches Based on Entity Details | |||
| Reverse search property | RDAP property | RFC | RFC | RFC | | ||||
| | | 9083 | 6350 | 8605 | | ||||
+=========================+===============+==========+=======+======+ | ||||
| handle | handle | 5.1. | | | | ||||
+-------------------------+---------------+----------+-------+------+ | ||||
| fn | jCard fn | | 6.2.1 | | | ||||
+-------------------------+---------------+----------+-------+------+ | ||||
| email | jCard email | | 6.4.2 | | | ||||
+-------------------------+---------------+----------+-------+------+ | ||||
| city | locality in | | 6.3.1 | | | ||||
| | jCard adr | | | | | ||||
+-------------------------+---------------+----------+-------+------+ | ||||
| country | country name | | 6.3.1 | | | ||||
| | in jCard adr | | | | | ||||
+-------------------------+---------------+----------+-------+------+ | ||||
| cc | country code | | | 3.1 | | ||||
| | in jCard adr | | | | | ||||
+-------------------------+---------------+----------+-------+------+ | ||||
Table 1: Mapping between the reverse search properties and the | Since in RDAP, an entity can be associated with any other object | |||
RDAP properties | class, the most common kind of reverse searches are based on the | |||
entity details. Such reverse searches arise from the above query | ||||
model by setting the related resource type to "entity". | ||||
https://example.com/rdap/domains/reverse/technical?handle=CID-40* | By selecting a specific searchable resource type, the resulting | |||
reverse search aims at retrieving all the objects (e.g. all the | ||||
domains) that are related to any entity object matching the search | ||||
condition. | ||||
https://example.com/rdap/domains/reverse/registrant?fn=Bobby* | This section defines the following reverse search properties to be | |||
used regardless of the searchable resource type being selected: | ||||
https://example.com/rdap/domains/reverse/registrant?cc=US | Reverse search property: role | |||
RDAP property: $..entities[*].roles | ||||
RFC reference: Section 10.2.4 of [RFC9083] | ||||
https://example.com/rdap/entites/reverse/registrar?handle=RegistrarX | Reverse search property: handle | |||
RDAP property: $..entities[*].handle | ||||
RFC reference: Section 5.1 of [RFC9083] | ||||
Figure 1: Examples of reverse search queries | Reverse search property: fn | |||
RDAP property: $..entities[*].vcardArray[1][?(@[0]=='fn')][3] | ||||
RFC reference: Section 6.2.1 of [RFC6350] | ||||
The "country" property can be used as an alternative to "cc" when | Reverse search property: email | |||
RDAP servers don't include the jCard "cc" parameter [RFC8605] in | RDAP property: $..entities[*].vcardArray[1][?(@[0]=='email')][3] | |||
their response. | RFC reference: Section 6.4.2 of [RFC6350] | |||
Regarding the definitions above, it must be noted that: | ||||
* The mapping between the reverse search property and the | ||||
corresponding RDAP response property is done through the use of a | ||||
JSONPath expression [I-D.ietf-jsonpath-base]. | ||||
* The presence of a predicate on the reverse search property "role" | ||||
means that the RDAP response property "roles" must contain at | ||||
least the specified role. | ||||
* Some of the properties are related to jCard elements [RFC7095] | ||||
but, being jCard the JSON format for vCard [RFC6350], the | ||||
corresponding RFC reference is to the vCard specification | ||||
[RFC6350]. | ||||
Servers MAY implement other properties than those defined in this | ||||
section. | ||||
Examples of reverse search paths based on the domain-entity | ||||
relationship are presented below: | ||||
/domains/reverse/entity?handle=CID-40*&role=technical | ||||
/domains/reverse/entity?fn=Bobby*&role=registrant | ||||
/domains/reverse/entity?handle=RegistrarX&role=registrar | ||||
Figure 1 | ||||
3. RDAP Conformance | 3. RDAP Conformance | |||
Servers complying with this specification MUST include the value | Servers complying with this specification MUST include the value | |||
"reverse_search" in the rdapConformance property of the help response | "reverse_search_0" in the rdapConformance property of the help | |||
[RFC9083]. The information needed to register this value in the | response [RFC9083]. The information needed to register this value in | |||
"RDAP Extensions" registry is described in Section 6. | the "RDAP Extensions" registry is described in Section 6. | |||
4. Implementation Considerations | 4. Implementation Considerations | |||
The implementation of the proposed extension is technically feasible. | The implementation of the proposed extension is technically feasible. | |||
Both handle and fn are used as standard path segments to search for | To limit the impact of processing the search predicates, servers are | |||
entities [RFC9082]. With regards to the other reverse search | RECOMMENDED to mandate the use of at least one property among those | |||
properties, namely email, city and country code, the impact of their | mapped to indexed fields of the registry database. Other properties, | |||
usage on server processing is evaluated to be the same as other | such as "role", MAY be allowed to further restrict the set of | |||
existing query capabilities (e.g. wildcard prefixed search pattern) | possible results. In addition, the risks to degrade the performance | |||
so the risks to degrade the performance or to generate huge result | or to generate huge result sets can be mitigated by adopting the same | |||
sets can be mitigated by adopting the same policies (e.g. restricting | policies valid for handling searches (e.g. restricting the search | |||
the search functionality, limiting the rate of search requests | functionality, limiting the rate of search requests according to the | |||
according to the user profile, truncating and paging the results, | user profile, truncating and paging the results, returning partial | |||
returning partial responses). | responses). | |||
5. Implementation Status | 5. Implementation Status | |||
NOTE: Please remove this section and the reference to RFC 7942 prior | NOTE: Please remove this section and the reference to RFC 7942 prior | |||
to publication as an RFC. | to publication as an RFC. | |||
This section records the status of known implementations of the | This section records the status of known implementations of the | |||
protocol defined by this specification at the time of posting of this | protocol defined by this specification at the time of posting of this | |||
Internet-Draft, and is based on a proposal described in [RFC7942]. | Internet-Draft, and is based on a proposal described in [RFC7942]. | |||
The description of implementations in this section is intended to | The description of implementations in this section is intended to | |||
skipping to change at page 7, line 35 ¶ | skipping to change at page 7, line 41 ¶ | |||
* Level of Maturity: This is an "alpha" test implementation. | * Level of Maturity: This is an "alpha" test implementation. | |||
* Coverage: This implementation includes all of the features | * Coverage: This implementation includes all of the features | |||
described in this specification. | described in this specification. | |||
* Contact Information: Francesco Donini, francesco.donini@iit.cnr.it | * Contact Information: Francesco Donini, francesco.donini@iit.cnr.it | |||
6. IANA Considerations | 6. IANA Considerations | |||
IANA is requested to register the following value in the RDAP | IANA is requested to register the following value in the RDAP | |||
Extensions Registry: | Extensions Registry: | |||
* Extension identifier: reverse_search | * Extension identifier: reverse_search_0 | |||
* Registry operator: Any | * Registry operator: Any | |||
* Published specification: This document. | * Published specification: This document. | |||
* Contact: IETF <iesg@ietf.org> | * Contact: IETF <iesg@ietf.org> | |||
* Intended usage: This extension describes reverse search query | * Intended usage: This extension describes reverse search query | |||
patterns for RDAP. | patterns for RDAP. | |||
7. Privacy Considerations | 7. Privacy Considerations | |||
The use of the capability described in this document MUST be | The use of the capability described in this document whenever a | |||
compliant with the rules about privacy protection each RDAP provider | contact detail is taken MUST be compliant with the rules about | |||
is subject to. Sensitive registration data MUST be protected and | privacy protection each RDAP provider is subject to. Sensitive | |||
accessible for permissible purposes only. This functionality SHOULD | registration data MUST be protected and accessible for permissible | |||
be only accessible to authorized users and only for a specified use | purposes only. This feature SHOULD be only accessible to authorized | |||
case. | users and only for a specified use case. | |||
Already the request for this functionality could contain Personal | Since the request for this feature could contain Personal | |||
Identifiable Information and SHOULD therefore only be available over | Identifiable Information, it SHOULD only be accessible to authorized | |||
HTTPS. | users and available over HTTPS. | |||
Providing reverse search in RDAP carries the following threats as | Providing reverse search in RDAP carries the following threats as | |||
described in [RFC6973]: | described in [RFC6973]: | |||
* Correlation | * Correlation | |||
* Disclosure | * Disclosure | |||
* Misuse of information | * Misuse of information | |||
Therefore, RDAP providers are REQUIRED to mitigate the risk of those | Therefore, RDAP providers are REQUIRED to mitigate the risk of those | |||
threats by implementing appropriate measures supported by security | threats by implementing appropriate measures supported by security | |||
services (see Section 8). | services (see Section 8). | |||
8. Security Considerations | 8. Security Considerations | |||
Security services required to provide controlled access to the | Security services required to provide controlled access to the | |||
operations specified in this document are described in [RFC7481]. A | operations specified in this document are described in [RFC7481]. A | |||
non exhaustive list of access control paradigms an RDAP provider can | non-exhaustive list of access control paradigms an RDAP provider can | |||
implement is presented in Appendix A. | implement is presented in Appendix A. | |||
The specification of the entity role within the reverse search path | The specification of the relationship within the reverse search path | |||
allows the RDAP servers to implement different authorization policies | allows the RDAP servers to implement different authorization policies | |||
on a per-role basis. | on a per-relationship basis. | |||
9. Acknowledgements | 9. Acknowledgements | |||
The authors would like to acknowledge the following individuals for | The authors would like to acknowledge the following individuals for | |||
their contributions to this document: Tom Harrison, Jasdip Singh, | their contributions to this document: Francesco Donini, Scott | |||
Scott Hollenbeck, Francisco Arias, Gustavo Lozano, Eduardo Alvarez | Hollenbeck, Francisco Arias, Gustavo Lozano, Eduardo Alvarez and | |||
and Ulrich Wisser. | Ulrich Wisser. | |||
10. References | Tom Harrison and Jasdip Singh provided relevant feedback and constant | |||
support to the implementation of this proposal. Their contributions | ||||
are greatly appreciated. | ||||
10. References | ||||
10.1. Normative References | 10.1. Normative References | |||
[OIDCC] OpenID Foundation, "OpenID Connect Core incorporating | [OIDCC] OpenID Foundation, "OpenID Connect Core incorporating | |||
errata set 1", November 2014, | errata set 1", November 2014, | |||
<http://openid.net/specs/openid-connect-core-1_0.html>. | <http://openid.net/specs/openid-connect-core-1_0.html>. | |||
[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>. | |||
skipping to change at page 10, line 5 ¶ | skipping to change at page 10, line 14 ¶ | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
Code: The Implementation Status Section", BCP 205, | Code: The Implementation Status Section", BCP 205, | |||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | RFC 7942, DOI 10.17487/RFC7942, July 2016, | |||
<https://www.rfc-editor.org/info/rfc7942>. | <https://www.rfc-editor.org/info/rfc7942>. | |||
[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>. | |||
[RFC8605] Hollenbeck, S. and R. Carney, "vCard Format Extensions: | ||||
ICANN Extensions for the Registration Data Access Protocol | ||||
(RDAP)", RFC 8605, DOI 10.17487/RFC8605, May 2019, | ||||
<https://www.rfc-editor.org/info/rfc8605>. | ||||
[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>. | |||
[RFC9083] Hollenbeck, S. and A. Newton, "JSON Responses for the | [RFC9083] Hollenbeck, S. and A. Newton, "JSON Responses for the | |||
Registration Data Access Protocol (RDAP)", STD 95, | Registration Data Access Protocol (RDAP)", STD 95, | |||
RFC 9083, DOI 10.17487/RFC9083, June 2021, | RFC 9083, DOI 10.17487/RFC9083, June 2021, | |||
<https://www.rfc-editor.org/info/rfc9083>. | <https://www.rfc-editor.org/info/rfc9083>. | |||
10.2. Informative References | 10.2. Informative References | |||
[I-D.ietf-jsonpath-base] | ||||
Gössner, S., Normington, G., and C. Bormann, "JSONPath: | ||||
Query expressions for JSON", Work in Progress, Internet- | ||||
Draft, draft-ietf-jsonpath-base-03, 16 January 2022, | ||||
<https://www.ietf.org/archive/id/draft-ietf-jsonpath-base- | ||||
03.txt>. | ||||
[I-D.ietf-regext-rdap-openid] | [I-D.ietf-regext-rdap-openid] | |||
Hollenbeck, S., "Federated Authentication for the | Hollenbeck, S., "Federated Authentication for the | |||
Registration Data Access Protocol (RDAP) using OpenID | Registration Data Access Protocol (RDAP) using OpenID | |||
Connect", Work in Progress, Internet-Draft, draft-ietf- | Connect", Work in Progress, Internet-Draft, draft-ietf- | |||
regext-rdap-openid-08, 8 November 2021, | regext-rdap-openid-08, 8 November 2021, | |||
<https://www.ietf.org/archive/id/draft-ietf-regext-rdap- | <https://www.ietf.org/archive/id/draft-ietf-regext-rdap- | |||
openid-08.txt>. | openid-08.txt>. | |||
[ICANN-RA] Internet Corporation For Assigned Names and Numbers, | [ICANN-RA] Internet Corporation For Assigned Names and Numbers, | |||
"Registry Agreement", July 2017, | "Registry Agreement", July 2017, | |||
skipping to change at page 11, line 38 ¶ | skipping to change at page 11, line 45 ¶ | |||
purpose can be stated within an out-of-band process by setting the | purpose can be stated within an out-of-band process by setting the | |||
OpenID Connect RDAP specific "purpose" claim as defined in | OpenID Connect RDAP specific "purpose" claim as defined in | |||
[I-D.ietf-regext-rdap-openid]; | [I-D.ietf-regext-rdap-openid]; | |||
* Attribute-Based Access Control: rules to manage access rights are | * Attribute-Based Access Control: rules to manage access rights are | |||
evaluated and applied according to specific attributes describing | evaluated and applied according to specific attributes describing | |||
the context within which data are requested. It can be | the context within which data are requested. It can be | |||
implemented by setting within an out-of-band process additional | implemented by setting within an out-of-band process additional | |||
OpenID Connect claims describing the request context and making | OpenID Connect claims describing the request context and making | |||
the RDAP server check the compliance between the given context and | the RDAP server check the compliance between the given context and | |||
the control rules applied to data to be returned; | the control rules applied to data to be returned; | |||
* Time-Based Access Control: data access is allowed for limited time | * Time-Based Access Control: data access is allowed for a limited | |||
only. It can be implemented by assigning the users with temporary | time only. It can be implemented by assigning the users with | |||
credentials linked to access grants whose scope is limited. | temporary credentials linked to access grants whose scope is | |||
limited. | ||||
Appendix B. Change Log | Appendix B. Change Log | |||
00: Initial working group version ported from draft-loffredo-regext- | 00: Initial working group version ported from draft-loffredo-regext- | |||
rdap-reverse-search-04 | rdap-reverse-search-04 | |||
01: Updated "Privacy Considerations" section. | 01: Updated "Privacy Considerations" section. | |||
02: Revised the text. | 02: Revised the text. | |||
03: Refactored the query model. | 03: Refactored the query model. | |||
04: Keepalive refresh. | 04: Keepalive refresh. | |||
05: Reorganized "Abstract". Corrected "Conventions Used in This | 05: Reorganized "Abstract". Corrected "Conventions Used in This | |||
Document" section. Added "RDAP Conformance" section. Changed | Document" section. Added "RDAP Conformance" section. Changed | |||
"IANA Considerations" section. Added references to RFC7095 and | "IANA Considerations" section. Added references to RFC7095 and | |||
RFC8174. Other minor edits. | RFC8174. Other minor edits. | |||
06: Updated "Privacy Considerations", "Security Considerations" and | 06: Updated "Privacy Considerations", "Security Considerations" and | |||
"Acknowledgements" sections. Added some normative and informative | "Acknowledgements" sections. Added some normative and informative | |||
references. Added Appendix A. | references. Added Appendix A. | |||
07: Updated normative refernces. | 07: Updated normative references. | |||
08: Changed "Implementation Status" secion. Updated informative | 08: Changed "Implementation Status" section. Updated informative | |||
references. | references. | |||
09: Extended the query model to represent a reverse search based on | ||||
any relationship between the RDAP object classes. Changed the | ||||
path segment "role" into a query parameter. | ||||
Authors' Addresses | Authors' Addresses | |||
Mario Loffredo | Mario Loffredo | |||
IIT-CNR/Registro.it | IIT-CNR/Registro.it | |||
Via Moruzzi,1 | Via Moruzzi,1 | |||
56124 Pisa | 56124 Pisa | |||
Italy | Italy | |||
Email: mario.loffredo@iit.cnr.it | Email: mario.loffredo@iit.cnr.it | |||
End of changes. 41 change blocks. | ||||
108 lines changed or deleted | 150 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |