draft-ietf-regext-data-escrow-01.txt   draft-ietf-regext-data-escrow-02.txt 
Network Working Group G. Lozano Network Working Group G. Lozano
Internet-Draft ICANN Internet-Draft ICANN
Intended status: Standards Track Aug 26, 2019 Intended status: Standards Track Nov 25, 2019
Expires: February 27, 2020 Expires: May 28, 2020
Registry Data Escrow Specification Registry Data Escrow Specification
draft-ietf-regext-data-escrow-01 draft-ietf-regext-data-escrow-02
Abstract Abstract
This document specifies the format and contents of data escrow This document specifies the format and contents of data escrow
deposits targeted primarily for domain name registries. However, the deposits targeted primarily for domain name registries. However, the
specification was designed to be independent of the underlying specification was designed to be independent of the underlying
objects that are being escrowed, therefore it could be used for objects that are being escrowed, therefore it could be used for
purposes other than domain name registries. purposes other than domain name registries.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
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 February 27, 2020. This Internet-Draft will expire on May 28, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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 Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 11 skipping to change at page 2, line 11
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Problem Scope . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Problem Scope . . . . . . . . . . . . . . . . . . . . . . . . 4
4. General Conventions . . . . . . . . . . . . . . . . . . . . . 5 4. General Conventions . . . . . . . . . . . . . . . . . . . . . 5
4.1. Date and Time . . . . . . . . . . . . . . . . . . . . . . 5 4.1. Date and Time . . . . . . . . . . . . . . . . . . . . . . 6
5. Protocol Description . . . . . . . . . . . . . . . . . . . . 5 5. Protocol Description . . . . . . . . . . . . . . . . . . . . 6
5.1. Root element <deposit> . . . . . . . . . . . . . . . . . 6 5.1. Root element <deposit> . . . . . . . . . . . . . . . . . 6
5.2. Child <watermark> element . . . . . . . . . . . . . . . . 7 5.2. Child <watermark> element . . . . . . . . . . . . . . . . 9
5.3. Child <rdeMenu> element . . . . . . . . . . . . . . . . . 7 5.3. Child <rdeMenu> element . . . . . . . . . . . . . . . . . 9
5.4. Child <deletes> element . . . . . . . . . . . . . . . . . 8 5.4. Child <deletes> element . . . . . . . . . . . . . . . . . 10
5.5. Child <contents> element . . . . . . . . . . . . . . . . 8 5.5. Child <contents> element . . . . . . . . . . . . . . . . 10
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 9 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. RDE Schema . . . . . . . . . . . . . . . . . . . . . . . 9 6.1. RDE Schema . . . . . . . . . . . . . . . . . . . . . . . 10
7. Internationalization Considerations . . . . . . . . . . . . . 12 7. Internationalization Considerations . . . . . . . . . . . . . 13
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 13 9. Implementation Status . . . . . . . . . . . . . . . . . . . . 14
9.1. Implementation in the gTLD space . . . . . . . . . . . . 13 9.1. Implementation in the gTLD space . . . . . . . . . . . . 15
10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 10. Security Considerations . . . . . . . . . . . . . . . . . . . 15
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 15 11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 16
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16
13. Change History . . . . . . . . . . . . . . . . . . . . . . . 15 13. Change History . . . . . . . . . . . . . . . . . . . . . . . 16
13.1. Changes from 00 to 01 . . . . . . . . . . . . . . . . . 15 13.1. Changes from 00 to 01 . . . . . . . . . . . . . . . . . 16
13.2. Changes from 01 to 02 . . . . . . . . . . . . . . . . . 16 13.2. Changes from 01 to 02 . . . . . . . . . . . . . . . . . 17
13.3. Changes from 02 to 03 . . . . . . . . . . . . . . . . . 17 13.3. Changes from 02 to 03 . . . . . . . . . . . . . . . . . 18
13.4. Changes from 03 to 04 . . . . . . . . . . . . . . . . . 17 13.4. Changes from 03 to 04 . . . . . . . . . . . . . . . . . 18
13.5. Changes from 04 to 05 . . . . . . . . . . . . . . . . . 17 13.5. Changes from 04 to 05 . . . . . . . . . . . . . . . . . 18
13.6. Changes from 05 to 06 . . . . . . . . . . . . . . . . . 17 13.6. Changes from 05 to 06 . . . . . . . . . . . . . . . . . 19
13.7. Changes from 06 to 07 . . . . . . . . . . . . . . . . . 17 13.7. Changes from 06 to 07 . . . . . . . . . . . . . . . . . 19
13.8. Changes from 07 to 08 . . . . . . . . . . . . . . . . . 17 13.8. Changes from 07 to 08 . . . . . . . . . . . . . . . . . 19
13.9. Changes from 08 to 09 . . . . . . . . . . . . . . . . . 18 13.9. Changes from 08 to 09 . . . . . . . . . . . . . . . . . 19
13.10. Changes from 09 to 10 . . . . . . . . . . . . . . . . . 18 13.10. Changes from 09 to 10 . . . . . . . . . . . . . . . . . 19
13.11. Changes from 10 to 11 . . . . . . . . . . . . . . . . . 18 13.11. Changes from 10 to 11 . . . . . . . . . . . . . . . . . 19
13.12. Changes from 11 to REGEXT 00 . . . . . . . . . . . . . . 18 13.12. Changes from 11 to REGEXT 00 . . . . . . . . . . . . . . 19
13.13. Changes from version REGEXT 00 to REGEXT 01 . . . . . . 18 13.13. Changes from version REGEXT 00 to REGEXT 01 . . . . . . 19
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 13.14. Changes from version REGEXT 01 to REGEXT 02 . . . . . . 19
14.1. Normative References . . . . . . . . . . . . . . . . . . 18 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
14.2. Informative References . . . . . . . . . . . . . . . . . 18 14.1. Normative References . . . . . . . . . . . . . . . . . . 20
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 14.2. Informative References . . . . . . . . . . . . . . . . . 20
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction 1. Introduction
Registry Data Escrow is the process by which an Registry periodically Registry Data Escrow is the process by which a registry periodically
submits data deposits to a third party called an Escrow Agent. These submits data deposits to a third-party called an escrow agent. These
deposits comprise the minimum data needed by a third party to resume deposits comprise the minimum data needed by a third-party to resume
operations if the registry can not function and is unable or operations if the registry cannot function and is unable or unwilling
unwilling to facilitate an orderly transfer of service. For example, to facilitate an orderly transfer of service. For example, for a
for a domain name registry or registrar the data to be deposited domain name registry or registrar, the data to be deposited would
would include all the objects related to registered domain names, include all the objects related to registered domain names, e.g.,
e.g., names, contacts, name servers, etc. names, contacts, name servers, etc.
The goal of data escrow is higher resiliency of registration The goal of data escrow is higher resiliency of registration
services, for the benefit of Internet users. The beneficiaries of a services, for the benefit of Internet users. The beneficiaries of a
registry are not just those registering information there, but all registry are not just those registering information there, but all
relying parties that need to identify the owners of objects. relying parties that need to identify the owners of objects.
In the context of domain name registries, registration data escrow is In the context of domain name registries, registration data escrow is
a requirement for generic top-level domains and some country code a requirement for generic top-level domains and some country code
top-level domain managers are also currently escrowing data. There top-level domain managers are also currently escrowing data. There
is also a similar requirement for ICANN-accredited domain registrars. is also a similar requirement for ICANN-accredited domain registrars.
This document specifies a format for data escrow deposits independent This document specifies a format for data escrow deposits independent
of the objects being escrowed. A specification is required for each of the objects being escrowed. A specification is required for each
type of registry/set of objects that is expected to be escrowed. type of registry/set of objects that is expected to be escrowed.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in BCP 14, [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
DEPOSIT. Deposits can be of three kinds: Full, Differential or Deposit. Deposits can be of three kinds: Full, Differential or
Incremental. For all kinds of Deposits, the Universe of Registry Incremental. For all kinds of deposits, the universe of registry
objects to be considered for data escrow are those objects necessary objects to be considered for data escrow are those objects necessary
in order to offer the Registry Services. in order to offer the registry services.
DIFFERENTIAL DEPOSIT. Contains data that reflects all transactions Differential Deposit. Contains data that reflects all transactions
involving the database that were not reflected in the last previous involving the database that were not reflected in the last previous
Full, Incremental or Differential Deposit, as the case may be. Full, Incremental or Differential Deposit, as the case may be.
Differential deposit files will contain information from all database Differential Deposit files will contain information from all database
objects that were added, modified or deleted since the previous objects that were added, modified or deleted since the previous
Deposit was completed as of its defined Timeline Watermark. deposit was completed as of its defined Timeline Watermark.
ESCROW AGENT. The organization designated by the Registry or the Domain Name. See definition of Domain name in [RFC8499].
Third-Party Beneficiary to receive and guard Data Escrow Deposits
from the Registry.
FULL DEPOSIT. Contains the Registry Data that reflects the current Escrow Agent. The organization designated by the registry or the
and complete Registry Database and will consist of data that reflects third-party beneficiary to receive and guard data escrow deposits
from the registry.
Full Deposit. Contains the registry data that reflects the current
and complete registry database and will consist of data that reflects
the state of the registry as of a defined Timeline Watermark for the the state of the registry as of a defined Timeline Watermark for the
deposit. deposit.
INCREMENTAL DEPOSIT. Contains data that reflects all transactions Incremental Deposit. Contains data that reflects all transactions
involving the database that were not reflected in the last previous involving the database that were not reflected in the last previous
Full Deposit. Incremental Deposit files will contain information Full Deposit. Incremental Deposit files will contain information
from all database objects that were added, modified or deleted since from all database objects that were added, modified or deleted since
the previous Full Deposit was completed as of its defined Timeline the previous Full Deposit was completed as of its defined Timeline
Watermark. If the Timeline Watermark of an Incremental Deposit were Watermark. If the Timeline Watermark of an Incremental Deposit were
to cover the Watermark of another (Incremental or Differential) to cover the Timeline Watermark of another (Incremental or
Deposit since the last Full Deposit, the more recent Deposit MUST Differential) Deposit since the last Full Deposit, the more recent
contain all the transactions of the earlier Deposit. deposit MUST contain all the transactions of the earlier deposit.
REGISTRY. A registration organization providing registration Registrar. See definition of Registrar in [RFC8499].
services for a certain type of objects, e.g., domain names, IP number
resources, routing information.
THIRD-PARTY BENEFICIARY. Is the organization that, under Registry. See definition of Registry in [RFC8499].
extraordinary circumstances, would receive the escrow Deposits the
Registry transferred to the Escrow Agent. This organization could be
a backup Registry, Registry regulator, contracting party of the
Registry, etc.
TIMELINE WATERMARK. Point in time on which to base the collecting of Third-Party Beneficiary. Is the organization that, under
database objects for a Deposit. Deposits are expected to be extraordinary circumstances, would receive the escrow deposits the
registry transferred to the escrow agent. This organization could be
a backup registry, registry regulator, contracting party of the
registry, etc.
Timeline Watermark. Point in time on which to base the collecting of
database objects for a deposit. Deposits are expected to be
consistent to that point in time. consistent to that point in time.
Top-Level Domain. See definition of Top-Level Domain (TLD) in
[RFC8499].
3. Problem Scope 3. Problem Scope
In the past few years, the issue of Registry continuity has been In the past few years, the issue of registry continuity has been
carefully considered in the gTLD and ccTLD space. Various carefully considered in the gTLD and ccTLD space. Various
organizations have carried out risk analyses and developed business organizations have carried out risk analyses and developed business
continuity plans to deal with those risks, should they materialize. continuity plans to deal with those risks, should they materialize.
One of the solutions considered and used, especially in the gTLD One of the solutions considered and used, especially in the gTLD
space, is Registry Data Escrow as a way to ensure the Continuity of space, is Registry Data Escrow as a way to ensure the continuity of
Registry Services in the extreme case of Registry failure. registry services in the extreme case of registry failure.
So far, almost every Registry that uses Registry Data Escrow has its So far, almost every registry that uses Registry Data Escrow has its
own specification. It is anticipated that more Registries will be own specification. It is anticipated that more registries will be
implementing escrow especially with an increasing number of domain implementing escrow especially with an increasing number of domain
registries coming into service, adding complexity to this issue. registries coming into service, adding complexity to this issue.
It would seem beneficial to have a standardized specification for It would seem beneficial to have a standardized specification for
Registry Data Escrow that can be used by any Registry to submit its Registry Data Escrow that can be used by any registry to submit its
deposits. deposits.
While the main motivation for developing this solution is rooted on While the main motivation for developing this specification is rooted
the domain name industry, the specification has been designed to be on the domain name industry, the specification has been designed to
as general as possible. This allows other types of registries to use be as general as possible. This allows other types of registries to
the base specification and develop their own specifications covering use this base specification and develop their own specifications
the objects used by other registration organizations. covering the objects used by other registration organizations.
A solution to the problem at hand SHALL clearly identify the format Specifications covering the objects used by registration
and contents of the deposits a Registry has to make, such that a organizations shall identify the format and contents of the deposits
different Registry would be able to rebuild the registration services a registry has to make, such that a different registry would be able
of the former, without its help, in a timely manner, with minimum to rebuild the registration services of the former, without its help,
disruption to its users. in a timely manner, with minimum disruption to its users.
Since the details of the registration services provided vary from Since the details of the registration services provided vary from
Registry to Registry, the solution SHALL provide mechanisms that registry to registry, specifications covering the objects used by
allow its extensibility to accommodate variations and extensions of registration organizations shall provide mechanisms that allow its
the registration services. extensibility to accommodate variations and extensions of the
registration services.
Given the requirement for confidentiality and the importance of Given the requirement for confidentiality and the importance of
accuracy of the information that is handled in order to offer accuracy of the information that is handled in order to offer
registration services, the solution SHALL define confidentiality and registration services, parties using this specification shall define
integrity mechanisms for handling the registration data. confidentiality and integrity mechanisms for handling the
registration data.
The solution SHALL NOT include in the specification transient objects Specifications covering the objects used by registration
that can be recreated by the new Registry, particularly those of organizations shall not include in the specification transient
delicate confidentiality, e.g., DNSSEC KSK/ZSK private keys. objects that can be recreated by the new registry, particularly those
of delicate confidentiality, e.g., DNSSEC KSK/ZSK private keys.
Details that are a matter of policy SHOULD be identified as such for Details that are a matter of policy should be identified as such for
the benefit of the implementers. the benefit of the implementers.
Non-technical issues concerning Data Escrow, such as whether to Non-technical issues concerning data escrow, such as whether to
escrow data and under which purposes the data may be used, are escrow data and under which purposes the data may be used, are
outside of scope of this document. outside of scope of this document.
4. General Conventions 4. General Conventions
The XML namespace prefix "rde" is used for the namespace
"urn:ietf:params:xml:ns:rde-1.0", but implementations MUST NOT depend
on it; instead, they should employ a proper namespace-aware XML
parser and serializer to interpret and output the XML documents.
The XML namespace prefix "rdeObj1" and "rdeObj2" with the
corresponding namespace "urn:ietf:params:xml:ns:rdeObj1-1.0" and
"urn:ietf:params:xml:ns:rdeObj2-1.0" are used as example data escrow
objects.
4.1. Date and Time 4.1. Date and Time
Numerous fields indicate "dates", such as the creation and expiry Numerous fields indicate "dates", such as the creation and expiry
dates for objects. These fields SHALL contain timestamps indicating dates for objects. These fields SHALL contain timestamps indicating
the date and time in UTC, specified in Internet Date/Time Format (see the date and time in UTC, specified in Internet Date/Time Format (see
[RFC3339], Section 5.6) with the time-offset specified as "Z". [RFC3339], Section 5.6) with the time-offset specified as "Z".
5. Protocol Description 5. Protocol Description
The following is a format for Data Escrow deposits as produced by a The following is a format for data escrow deposits as produced by a
Registry. The deposits are represented in XML. Only the format of registry. The deposits are represented in XML. Only the format of
the objects deposited is defined, nothing is prescribed about the the objects deposited is defined, nothing is prescribed about the
method used to transfer such deposits between the Registry and the method used to transfer such deposits between the registry and the
Escrow Agent or vice versa. escrow agent or vice versa.
The protocol intends to be object agnostic allowing the "overload" of The protocol intends to be object agnostic allowing the "overload" of
abstract elements using the "substitutionGroup" attribute to define abstract elements using the "substitutionGroup" attribute of the XML
the actual elements of an object to be escrowed. Schema element to define the actual elements of an object to be
escrowed.
5.1. Root element <deposit> 5.1. Root element <deposit>
The container or root element for a Registry Data Escrow deposits is The container or root element for a Registry Data Escrow deposit is
<deposit>. This element contains the following child elements: <deposit>. This element contains the following child elements:
watermark, deletes and contents. This element also contains the <watermark>, <rdeMenu>, <deletes> and <contents> elements. This
following attributes: element also contains the following attributes:
o A REQUIRED "type" attribute that is used to identify the kind of o A REQUIRED "type" attribute that is used to identify the kind of
deposit: FULL, INCR (Incremental) or DIFF (Differential). deposit: FULL (Full), INCR (Incremental) or DIFF (Differential).
o A REQUIRED "id" attribute that is used to uniquely identify the o A REQUIRED "id" attribute that is used to uniquely identify the
escrow deposit. Each registry is responsible for maintaining its escrow deposit. Each registry is responsible for maintaining its
own escrow deposits identifier space to ensure uniqueness, e.g., own escrow deposits identifier space to ensure uniqueness.
using identifiers as described in Section 2.8 of [RFC5730].
o An OPTIONAL "prevId" attribute that can be used to identify the o An OPTIONAL "prevId" attribute that can be used to identify the
previous incremental, differential or full escrow deposit. This previous Incremental, Differential or Full Deposit. This
attribute MUST be used in Differential Deposits ("DIFF" type). attribute MUST be used in Differential Deposits ("DIFF" type).
o An OPTIONAL "resend" attribute that is incremented each time the o An OPTIONAL "resend" attribute that is incremented each time the
escrow deposit failed the verification procedure at the receiving escrow deposit failed the verification procedure at the receiving
party and a new escrow deposit needs to be generated by the party and a new escrow deposit needs to be generated by the
Registry for that specific date. The first time a deposit is registry for that specific date. The first time a deposit is
generated the attribute is either omitted or MUST be "0". If a generated the attribute is either omitted or MUST be "0". If a
deposit needs to be generated again, the attribute MUST be set to deposit needs to be generated again, the attribute MUST be set to
"1", and so on. "1", and so on.
Example of root element object: Example of a Full Deposit with the two example objects rdeObj1 and
rdeObj2:
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<rde:deposit <rde:deposit
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
... xmlns:rdeObj1="urn:ietf:params:xml:ns:rdeObj1-1.0"
type="FULL" xmlns:rdeObj2="urn:ietf:params:xml:ns:rdeObj2-1.0"
id="20101017001" prevId="20101010001"> type="FULL"
<rde:watermark>2010-10-18T00:00:00Z</rde:watermark> id="20191017001">
<rde:deletes> <rde:watermark>2019-10-18T00:00:00Z</rde:watermark>
... <rde:rdeMenu>
</rde:deletes> <rde:version>1.0</rde:version>
<rde:contents> <rde:objURI>urn:ietf:params:xml:ns:rdeObj1-1.0</rde:objURI>
... <rde:objURI>urn:ietf:params:xml:ns:rdeObj2-1.0</rde:objURI>
</rde:contents> </rde:rdeMenu>
<rde:contents>
<rdeObj1:rdeObj1>
<rdeObj1:name>EXAMPLE</rdeObj1:name>
</rdeObj1:rdeObj1>
<rdeObj2:rdeObj2>
<rdeObj2:id>fsh8013-EXAMPLE</rdeObj2:id>
</rdeObj2:rdeObj2>
</rde:contents>
</rde:deposit> </rde:deposit>
5.2. Child <watermark> element Example of a Differential Deposit with the two example objects
rdeObj1 and rdeObj2:
A REQUIRED <watermark> element contains the data-time corresponding <?xml version="1.0" encoding="UTF-8"?>
to the Timeline Watermark of the deposit. <rde:deposit
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
xmlns:rdeObj1="urn:ietf:params:xml:ns:rdeObj1-1.0"
xmlns:rdeObj2="urn:ietf:params:xml:ns:rdeObj2-1.0"
type="DIFF"
id="20191017001" prevId="20191016001">
<rde:watermark>2019-10-18T00:00:00Z</rde:watermark>
<rde:rdeMenu>
<rde:version>1.0</rde:version>
<rde:objURI>urn:ietf:params:xml:ns:rdeObj1-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeObj2-1.0</rde:objURI>
</rde:rdeMenu>
<rde:deletes>
<rdeObj1:delete>
<rdeObj1:name>EXAMPLE1</rdeObj1:name>
</rdeObj1:delete>
<rdeObj2:delete>
<rdeObj2:id>fsh8013-EXAMPLE</rdeObj2:id>
</rdeObj2:delete>
</rde:deletes>
<rde:contents>
<rdeObj1:rdeObj1>
<rdeObj1:name>EXAMPLE2</rdeObj1:name>
</rdeObj1:rdeObj1>
<rdeObj2:rdeObj2>
<rdeObj2:id>sh8014-EXAMPLE</rdeObj2:id>
</rdeObj2:rdeObj2>
</rde:contents>
</rde:deposit>
Example of <watermark> element object: Example of an Incremental Deposit with the two example objects
rdeObj1 and rdeObj2:
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<rde:deposit <rde:deposit
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
... xmlns:rdeObj1="urn:ietf:params:xml:ns:rdeObj1-1.0"
type="FULL" xmlns:rdeObj2="urn:ietf:params:xml:ns:rdeObj2-1.0"
id="20101017001" prevId="20101010001"> type="INCR"
<rde:watermark>2010-10-18T00:00:00Z</rde:watermark> id="20191017001" prevId="20191010001">
... <rde:watermark>2019-10-18T00:00:00Z</rde:watermark>
<rde:rdeMenu>
<rde:version>1.0</rde:version>
<rde:objURI>urn:ietf:params:xml:ns:rdeObj1-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeObj2-1.0</rde:objURI>
</rde:rdeMenu>
<rde:deletes>
<rdeObj1:delete>
<rdeObj1:name>EXAMPLE1</rdeObj1:name>
</rdeObj1:delete>
<rdeObj2:delete>
<rdeObj2:id>fsh8013-EXAMPLE</rdeObj2:id>
</rdeObj2:delete>
</rde:deletes>
<rde:contents>
<rdeObj1:rdeObj1>
<rdeObj1:name>EXAMPLE2</rdeObj1:name>
</rdeObj1:rdeObj1>
<rdeObj2:rdeObj2>
<rdeObj2:id>sh8014-EXAMPLE</rdeObj2:id>
</rdeObj2:rdeObj2>
</rde:contents>
</rde:deposit> </rde:deposit>
5.2. Child <watermark> element
A REQUIRED <watermark> element contains the data-time corresponding
to the Timeline Watermark of the deposit.
5.3. Child <rdeMenu> element 5.3. Child <rdeMenu> element
This element contains auxiliary information of the data escrow This element contains auxiliary information of the data escrow
deposit. deposit.
A REQUIRED <rdeMenu> element contains the following child elements: A REQUIRED <rdeMenu> element contains the following child elements:
o A REQUIRED <version> element that identifies the RDE protocol o A REQUIRED <version> element that identifies the RDE protocol
version. version.
o One or more <objURI> elements that contain namespace URIs o One or more <objURI> elements that contain namespace URIs
representing the <contents> and <deletes> element objects. representing the <contents> and <deletes> element objects.
Example of <rdeMenu> element object:
<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
...
<rde:rdeMenu>
<rde:version>1.0</rde:version>
<rde:objURI>urn:ietf:params:xml:ns:rdeContact-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeHost-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeDomain-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeRegistrar-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeIDN-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeNNDN-1.0</rde:objURI>
<rde:objURI>urn:ietf:params:xml:ns:rdeEppParams-1.0</rde:objURI>
</rde:rdeMenu>
...
</rde:deposit>
5.4. Child <deletes> element 5.4. Child <deletes> element
This element SHOULD be present in deposits of type Incremental or This element SHOULD be present in deposits of type Incremental or
Differential. It contains the list of objects that were deleted Differential. It contains the list of objects that were deleted
since the base previous deposit. Each object in this section SHALL since the base previous deposit. Each object in this section SHALL
contain an ID for the object deleted. contain an ID for the object deleted.
This section of the deposit SHOULD NOT be present in Full deposits. This section of the deposit SHOULD NOT be present in Full Deposits.
When rebuilding a registry it SHOULD be ignored if present in a Full When rebuilding a registry it SHOULD be ignored if present in a Full
deposit. Deposit.
The specification for each object to be escrowed MUST declare the The specification for each object to be escrowed MUST declare the
identifier to be used to reference the object to be deleted. identifier to be used to reference the object to be deleted.
Example of <deletes> element object:
<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
...
<rde:deletes>
<rdeObj1:delete>
<rdeObj1:name>foo.test</rdeObj1:name>
<rdeObj1:name>bar.test</rdeObj1:name>
</rdeObj1:delete>
<rdeObj2:delete>
<rdeObj2:id>sh8013-TEST</rdeObj2:id>
<rdeObj2:id>co8013-TEST</rdeObj2:id>
</rdeObj2:delete>
</rde:deletes>
...
</rde:deposit>
5.5. Child <contents> element 5.5. Child <contents> element
This element of the deposit contains the objects in the deposit. It This element of the deposit contains the objects in the deposit. It
MUST be present in all type of deposits. It contains the data for MUST be present in all type of deposits. It contains the data for
the objects to be escrowed. The actual objects have to be specified the objects to be escrowed. The actual objects have to be specified
individually. individually.
In the case of Incremental or Differential deposits, the objects In the case of Incremental or Differential Deposits, the objects
indicate whether the object was added or modified after the base indicate whether the object was added or modified after the base
previous deposit. In order to distinguish between one and the other, previous deposit. In order to distinguish between one and the other,
it will be sufficient to check existence of the referenced object in it will be sufficient to check existence of the referenced object in
the base previous deposit. the previous deposit.
When applying Incremental or Differential deposits (when rebuilding When applying Incremental or Differential Deposits (when rebuilding
the registry from data escrow deposits) the relative order of the the registry from data escrow deposits) the relative order of the
<deletes> elements is important, as is the relative order of the <deletes> elements is important, as is the relative order of the
<contents> elements. All the <deletes> elements MUST be applied <contents> elements. All the <deletes> elements MUST be applied
first, in the order that they appear. All the <contents> elements first, in the order that they appear. All the <contents> elements
MUST be applied next, in the order that they appear. MUST be applied next, in the order that they appear.
If an object is present in the <contents> section of several Deposits If an object is present in the <contents> section of several deposits
(e.g. Full and Differential) the registry data from the latest (e.g. Full and Differential) the registry data from the latest
Deposit (as defined by the Timeline Watermark) SHOULD be used when deposit (as defined by the Timeline Watermark) SHOULD be used when
rebuilding the registry. rebuilding the registry.
Example of <contents> element object:
<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
...
<rde:contents>
...
<rdeObj1:contents>
<rdeObj1:element1>
<rdeObj1:child1>Object1 specific.</rdeObj1:child1>
...
</rdeObj1:element1>
<rdeObj2:element2>
<rdeObj2:field1>Object2 specific.</rdeObj2:field1>
...
</rdeObj2:element2>
</rdeObj1:contents>
...
</rde:contents>
...
</rde:deposit>
6. Formal Syntax 6. Formal Syntax
6.1. RDE Schema 6.1. RDE Schema
Copyright (c) 2011 IETF Trust and the persons identified as authors Copyright (c) 2019 IETF Trust and the persons identified as authors
of the code. All rights reserved. of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
o Redistributions of source code must retain the above copyright o Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
o Redistributions in binary form must reproduce the above copyright o Redistributions in binary form must reproduce the above copyright
skipping to change at page 10, line 31 skipping to change at page 11, line 38
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
BEGIN BEGIN
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:rde-1.0" <schema targetNamespace="urn:ietf:params:xml:ns:rde-1.0"
xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"> elementFormDefault="qualified">
<annotation> <annotation>
<documentation> <documentation>
Registry Data Escrow schema Registry Data Escrow schema
</documentation> </documentation>
</annotation> </annotation>
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
<!-- Root element --> <!-- Root element -->
<element name="deposit" type="rde:escrowDepositType"/> <element name="deposit" type="rde:escrowDepositType"/>
<!-- RDE types --> <!-- RDE types -->
<complexType name="escrowDepositType"> <complexType name="escrowDepositType">
<sequence> <sequence>
<element name="watermark" type="dateTime"/> <element name="watermark" type="dateTime"/>
<element name="rdeMenu" type="rde:rdeMenuType"/> <element name="rdeMenu" type="rde:rdeMenuType"/>
<element name="deletes" type="rde:deletesType" minOccurs="0"/> <element name="deletes" type="rde:deletesType" minOccurs="0"/>
<element name="contents" type="rde:contentsType"/> <element name="contents" type="rde:contentsType"/>
skipping to change at page 12, line 23 skipping to change at page 13, line 27
</simpleType> </simpleType>
<!-- A RDE version number is a dotted pair of decimal numbers --> <!-- A RDE version number is a dotted pair of decimal numbers -->
<simpleType name="versionType"> <simpleType name="versionType">
<restriction base="token"> <restriction base="token">
<pattern value="[1-9]+\.[0-9]+"/> <pattern value="[1-9]+\.[0-9]+"/>
<enumeration value="1.0"/> <enumeration value="1.0"/>
</restriction> </restriction>
</simpleType> </simpleType>
<!-- Auxiliary element to identify a registrar -->
<simpleType name="clIDType">
<restriction base="token">
<minLength value="3"/>
<maxLength value="16"/>
</restriction>
</simpleType>
<complexType name="rrType"> <complexType name="rrType">
<simpleContent> <simpleContent>
<extension base="eppcom:clIDType"> <extension base="rde:clIDType">
<attribute name="client" type="eppcom:clIDType"/> <attribute name="client" type="rde:clIDType"/>
</extension> </extension>
</simpleContent> </simpleContent>
</complexType> </complexType>
</schema> </schema>
END END
7. Internationalization Considerations 7. Internationalization Considerations
Data Escrow deposits are represented in XML, which provides native Data escrow deposits are represented in XML, which provides native
support for encoding information using the Unicode character set and support for encoding information using the Unicode character set and
its more compact representations including UTF-8. Conformant XML its more compact representations including UTF-8. Conformant XML
processors recognize both UTF-8 and UTF-16. Though XML includes processors recognize both UTF-8 and UTF-16. Though XML includes
provisions to identify and use other character encodings through use provisions to identify and use other character encodings through use
of an "encoding" attribute in an <?xml?> declaration, use of UTF-8 is of an "encoding" attribute in an <?xml?> declaration, use of UTF-8 is
RECOMMENDED. RECOMMENDED.
8. IANA Considerations 8. IANA Considerations
This document uses URNs to describe XML namespaces and XML schemas This document uses URNs to describe XML namespaces and XML schemas
skipping to change at page 14, line 27 skipping to change at page 15, line 40
Contact: gustavo.lozano@icann.org Contact: gustavo.lozano@icann.org
URL: https://www.icann.org/resources/pages/registries/registries- URL: https://www.icann.org/resources/pages/registries/registries-
agreements-en agreements-en
10. Security Considerations 10. Security Considerations
This specification does not define the security mechanisms to be used This specification does not define the security mechanisms to be used
in the transmission of the data escrow deposits, since it only in the transmission of the data escrow deposits, since it only
specifies the minimum necessary to enable the rebuilding of a specifies the minimum necessary to enable the rebuilding of a
Registry from deposits without intervention from the original registry from deposits without intervention from the original
Registry. registry.
Depending on local policies, some elements or most likely, the whole Depending on local policies, some elements or most likely, the whole
deposit will be considered confidential. As such the Registry deposit will be considered confidential. As such the registry
transmitting the data to the Escrow Agent must take all the necessary transmitting the data to the escrow agent SHOULD take all the
precautions like encrypting the data itself and/or the transport necessary precautions like encrypting the data itself and/or the
channel to avoid inadvertent disclosure of private data. transport channel to avoid inadvertent disclosure of private data.
Mutual authentication of both parties passing data escrow deposit It is also of the utmost importance the authentication of the parties
files is of the utmost importance. The Escrow Agent should properly passing data escrow deposit files. The escrow agent SHOULD properly
authenticate the identity of the Registry before accepting data authenticate the identity of the registry before accepting data
escrow deposits. In a similar manner, the Registry should escrow deposits. In a similar manner, the registry SHOULD
authenticate the identity of the Escrow Agent before submitting any authenticate the identity of the escrow agent before submitting any
data. data.
Additionally, the Registry and the Escrow Agent should use integrity Additionally, the registry and the escrow agent SHOULD use integrity
checking mechanisms to ensure the data transmitted is what the source checking mechanisms to ensure the data transmitted is what the source
intended. It is recommended that specifications defining format and intended. Validation of the contents by the escrow agent is
semantics for particular business models define an algorithm that RECOMMENDED to ensure not only the file was transmitted correctly
Escrow Agents and Third-Party Beneficiaries could use to validate the from the registry, but also the contents are also "meaningful".
contents of the data escrow deposit.
11. Privacy Considerations 11. Privacy Considerations
This specification defines a format that may be used to escrow This specification defines a format that may be used to escrow
personal data. The process of data escrow is governed by a legal personal data. The process of data escrow is governed by a legal
document agreed by the parties, and such legal document must regulate document agreed by the parties, and such legal document must regulate
the particularities regarding the protection of personal data. the particularities regarding the protection of personal data.
12. Acknowledgments 12. Acknowledgments
skipping to change at page 18, line 25 skipping to change at page 19, line 39
1. Ping update. 1. Ping update.
13.12. Changes from 11 to REGEXT 00 13.12. Changes from 11 to REGEXT 00
1. Internet Draft (I-D) adopted by the REGEXT WG. 1. Internet Draft (I-D) adopted by the REGEXT WG.
13.13. Changes from version REGEXT 00 to REGEXT 01 13.13. Changes from version REGEXT 00 to REGEXT 01
1. Privacy consideration section was added 1. Privacy consideration section was added
13.14. Changes from version REGEXT 01 to REGEXT 02
1. Updated the Security Considerations section to make the language
normative
2. Updated the rde XML schema to remove the dependency with the
eppcom namespace reference
3. Editorial updates
4. Remove the reference to RFC 5730
5. Added complete examples of deposits
14. References 14. References
14.1. Normative References 14.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>.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<https://www.rfc-editor.org/info/rfc3339>. <https://www.rfc-editor.org/info/rfc3339>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
14.2. Informative References 14.2. Informative References
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,
<https://www.rfc-editor.org/info/rfc5730>.
[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>.
[RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS
Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499,
January 2019, <https://www.rfc-editor.org/info/rfc8499>.
Author's Address Author's Address
Gustavo Lozano Gustavo Lozano
Internet Corporation for Assigned Names and Numbers Internet Corporation for Assigned Names and Numbers
12025 Waterfront Drive, Suite 300 12025 Waterfront Drive, Suite 300
Los Angeles 90292 Los Angeles 90292
United States of America United States of America
Phone: +1.310.823.9358 Phone: +1.310.823.9358
Email: gustavo.lozano@icann.org Email: gustavo.lozano@icann.org
 End of changes. 74 change blocks. 
229 lines changed or deleted 277 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/