<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc
  [
    <!ENTITY RFC2119 PUBLIC ''
      'http://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY RFC9083 PUBLIC ''
      'http://bib.ietf.org/public/rfc/bibxml/reference.RFC.9083.xml'>
    <!ENTITY RFC8174 PUBLIC ''
      'http://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml'>
    ]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc iprnotified="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" docName="draft-loffredo-regext-rdap-verified-contacts-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" sortRefs="true" symRefs="true" version="3">
  <front>
    <title abbrev="Verifying Contacts in RDAP">Registration Data Access Protocol (RDAP) Extension for Verified Contact Information</title>
    <seriesInfo name="Internet-Draft" value="draft-loffredo-regext-rdap-verified-contacts-01"/>
    <author fullname="Mario Loffredo" initials="M." surname="Loffredo">
      <organization>IIT-CNR/Registro.it</organization>
      <address>
        <postal>
          <street>Via Moruzzi,1</street>
          <city>Pisa</city>
          <country>IT</country>
          <code>56124</code>
        </postal>
        <email>mario.loffredo@iit.cnr.it</email>
        <uri>http://www.iit.cnr.it</uri>
      </address>
    </author>
    <author fullname="Maurizio Martinelli" initials="M." surname="Martinelli">
      <organization>IIT-CNR/Registro.it</organization>
      <address>
        <postal>
          <street>Via Moruzzi,1</street>
          <city>Pisa</city>
          <country>IT</country>
          <code>56124</code>
        </postal>
        <email>maurizio.martinelli@iit.cnr.it</email>
        <uri>http://www.iit.cnr.it</uri>
      </address>
    </author>
    <author fullname="James Gould" initials="J.G" surname="Gould">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>12061 Bluemont Way</street>
          <city>Reston</city>
          <region>VA</region>
          <code>20190</code>
          <country>US</country>
        </postal>
        <email>jgould@verisign.com</email>
        <uri>http://www.verisigninc.com</uri>
      </address>
    </author>

    <keyword>Verified</keyword>
    <keyword>Contacts</keyword>
    <keyword>Extension</keyword>
    <abstract>
      <t>This document describes an extension to the Registration Data Access Protocol (RDAP) that allows the inclusion of verification status information for contact fields such as email addresses and phone numbers. The goal is to improve data quality and trustworthiness of RDAP responses by indicating which pieces of contact data have been verified and how.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The Registration Data Access Protocol (RDAP) provides access to registration data for domain names, IP addresses, and autonomous system numbers. However, RDAP responses do not currently include explicit information about whether contact information such as email addresses or phone numbers has been verified.</t>
      <t>This document defines a simple extension that enables RDAP providers to include verification status for contact fields. This is useful in contexts where contact verification may be legally required or strongly recommended.</t>
      <t>In particular, Article 28 of Directive (EU) 2022/2555 (<xref target="NIS2" format="default"/>) requires top-level domain (TLD) name registries and domain name registrars to collect and maintain accurate and complete domain name registration data.  It also mandates them to verify, to the extent possible, the accuracy of such data. The extension defined in this document can support compliance with this obligation by enabling the inclusion of verification status for contact fields in RDAP responses.</t>
    </section>
    <section anchor="conventions" numbered="true" toc="default">
      <name>Conventions Used in This Document</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
      "MAY", and "OPTIONAL" in this document are to be interpreted as
      described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
      when, and only when, they
      appear in all capitals, as shown here.</t>
    </section>
    <section anchor="rdap-conformance" numbered="true" toc="default">
      <name>RDAP Conformance</name>
      <t>Servers implementing this extension MUST include the string &quot;verifiedContacts&quot; in the &quot;rdapConformance&quot; (<xref target="RFC9083" format="default"/>) array of all relevant RDAP responses.
              The registration of the &quot;verifiedContacts&quot; extension identifier is described in <xref target="iana-considerations" format="default"/>.</t>
     </section>
    <section anchor="json-structure" numbered="true" toc="default">
      <name>JSON Structure</name>
      <t>The verification information is conveyed via a new top-level object member named &quot;verifiedContacts_data&quot; within the entity objects.</t>
      <figure anchor="verifiedContacts-response" align="left" suppress-title="false">
        <name>Entity object including the &quot;verifiedContacts_data&quot; member</name>
        <sourcecode type="json" markers="false">
      {
        "objectClassName": "entity",
        "handle": "ABC123-EXAMPLE",
        "rdapConformance": ["rdap_level_0", "verifiedContacts"],
        ...
        "verifiedContacts_data": {
          "email": {
            "verificationDate": "2025-03-15T12:00:00Z",
            "method": "emailVerification"
          }
          ...
        }
      }
        </sourcecode>
      </figure>
    </section>
    <section anchor="verifiedContacts_data-structure" numbered="true" toc="default">
    <name>verifiedContacts_data Structure</name>
      <t>The &quot;verifiedContacts_data&quot; member is an object whose keys are contact details (e.g., &quot;email&quot;, &quot;voice&quot;, &quot;fax&quot;, &quot;addr&quot;). Each value is an object containing:</t>
      <dl newline="false" indent="4">
      <dt>"verificationDate":</dt>
      <dd>(REQUIRED) A string with the date and time of verification.</dd>
      <dt>"method":</dt>
        <dd>
         <t>(OPTIONAL) An string indicating the following verification methods:</t>
          <dl newline="false" indent="4">
          <dt>"emailVerification":</dt>
          <dd>Sending a confirmation link to the specified email address and requiring user interaction (e.g., clicking the link) to confirm ownership.</dd>
            <dt>"smsToken":</dt>
            <dd>Sending a one-time token (OTP) via SMS to the provided phone number and requiring the user to submit the token to confirm ownership.</dd>
            <dt>"manualReview":</dt>
            <dd>Manual review of contact data by a human operator (e.g., calling the phone number, making a live video call, inspecting submitted documentation).</dd>
            <dt>"eidValidation":</dt>
            <dd>Validation of contact data using a digital identity service, either before or after registration (e.g., eIDAS-compliant identity providers).</dd>
            <dt>"addressVerification":</dt>
            <dd>Verification of the postal address using a geolocation or address validation service (e.g., Google Maps API, OpenStreetMap, postal databases).</dd>
            <dt>"crossValidation":</dt>
            <dd>Cross-checking of contact details (e.g., name, VAT number, postal address) against trusted third-party repositories (e.g., EU VIES).</dd>
            <dt>"thirdPartyAssertion":</dt>
            <dd>Relying on a trusted third party (e.g., registrar, CSP, certification authority) to assert that contact data has been verified externally.</dd>
          </dl>
        </dd>
      </dl>
      <t>Instead of returning an object for each verified contact detail, a server MAY use the &quot;all&quot; key to signal that all data has been verified.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
        <t>IANA is requested to register the following value in the RDAP
           Extensions Registry:</t>
        <dl newline="false" spacing="compact">
          <dt>Extension identifier:</dt>
      	  <dd>verifiedContacts</dd>
          <dt>Registry operator:</dt>
      	  <dd>Any</dd>
          <dt>Published specification:</dt>
      	  <dd>This document.</dd>
          <dt>Contact:</dt>
      	  <dd>IETF &lt;iesg@ietf.org&gt;</dd>
          <dt>Intended usage:</dt>
      	  <dd>This extension identifies RDAP extension for verified contact information.</dd>
        </dl>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>Contact verification data may have privacy implications. Servers MUST ensure that disclosure of this information complies with applicable data protection laws and policies.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
          &RFC2119;
          &RFC9083;
          &RFC8174;
      </references>
      <references title="Informative References">
        <reference anchor='NIS2'
                   target='https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:02022L2555-20221227'>
          <front>
            <title>Directive (EU) 2022/2555 of the European Parliament and of the Council of 14 December 2022 on measures for a high common level of cybersecurity across the Union, amending Regulation (EU) No 910/2014 and Directive (EU) 2018/1972, and repealing Directive (EU) 2016/1148 (NIS 2 Directive)</title>
            <author>
              <organization>European Parliament and Council</organization>
            </author>
            <date year='2022' month='December' />
          </front>
        </reference>
      </references>
    </references>
    <section numbered="true" toc="default">
    <name>Change History</name>
      <section anchor="change-00-to-01" numbered="true" toc="default">
        <name>Change from 00 to 01</name>
        <ol spacing="compact" type="1">
          <li>Made The &quot;verifiedContacts_data&quot; keys consistent with those defined in draft-ietf-regext-rdap-jscontact.</li>
          <li>Further specified the verification methods and changed their format to CamelCase.</li>
        </ol>
      </section>
    </section>
  </back>
</rfc>
