draft-ietf-regext-dnsoperator-to-rrr-protocol-00.txt | draft-ietf-regext-dnsoperator-to-rrr-protocol-01.txt | |||
---|---|---|---|---|
Network Working Group J. Latour | regext J. Latour | |||
Internet-Draft CIRA | Internet-Draft CIRA | |||
Intended status: Standards Track O. Gudmundsson | Intended status: Standards Track O. Gudmundsson | |||
Expires: October 28, 2016 Cloudflare, Inc. | Expires: January 8, 2017 Cloudflare, Inc. | |||
P. Wouters | P. Wouters | |||
Red Hat | Red Hat | |||
M. Pounsett | M. Pounsett | |||
Rightside Group, Ltd. | Rightside Group, Ltd. | |||
April 26, 2016 | July 7, 2016 | |||
Third Party DNS operator to Registrars/Registries Protocol | Third Party DNS operator to Registrars/Registries Protocol | |||
draft-ietf-regext-dnsoperator-to-rrr-protocol-00.txt | draft-ietf-regext-dnsoperator-to-rrr-protocol-01.txt | |||
Abstract | Abstract | |||
There are several problems that arise in the standard | There are several problems that arise in the standard | |||
Registrant/Registrar/Registry model when the operator of a zone is | Registrant/Registrar/Registry model when the operator of a zone is | |||
neither the Registrant nor the Registrar for the delegation. | neither the Registrant nor the Registrar for the delegation. | |||
Historically the issues have been minor, and limited to difficulty | Historically the issues have been minor, and limited to difficulty | |||
guiding the Registrant through the initial changes to the NS records | guiding the Registrant through the initial changes to the NS records | |||
for the delegation. As this is usually a one time activity when the | for the delegation. As this is usually a one time activity when the | |||
operator first takes charge of the zone it has not been treated as a | operator first takes charge of the zone it has not been treated as a | |||
serious issue. | serious issue. | |||
When the domain on the other hand uses DNSSEC it necessary for the | When the domain on the other hand uses DNSSEC it necessary to make | |||
Registrant in this situation to make regular (sometimes annual) | regular (sometimes annual) changes to the delegation, in order to | |||
changes to the delegation in order to track KSK rollover, by updating | track KSK rollover, by updating the delegation's DS record(s). Under | |||
the delegation's DS record(s). Under the current model this is prone | the current model this is prone to delays and errors. Even when the | |||
to Registrant error and significant delays. Even when the Registrant | Registrant has outsourced the operation of DNS to a third party the | |||
has outsourced the operation of DNS to a third party the registrant | registrant still has to be in the loop to update the DS record. | |||
still has to be in the loop to update the DS record. | ||||
There is a need for a simple protocol that allows a third party DNS | There is a need for a simple protocol that allows a third party DNS | |||
operator to update DS and NS records in a trusted manner for a | operator to update DS and NS records in a trusted manner for a | |||
delegation without involving the registrant for each operation. | delegation without involving the registrant for each operation. This | |||
same protocol can be used by Registrants. | ||||
The protocol described in this draft is REST based, and when used | The protocol described in this draft is REST based, and when used | |||
through an authenticated channel can be used to establish the DNSSEC | through an authenticated channel can be used to establish the DNSSEC | |||
Initial Trust (to turn on DNSSEC or bootstrap DNSSEC). Once DNSSEC | Initial Trust (to turn on DNSSEC or bootstrap DNSSEC). Once DNSSEC | |||
trust is established this channel can be used to trigger maintenance | trust is established this channel can be used to trigger maintenance | |||
of delegation records such as DS, NS, and glue records. The protocol | of delegation records such as DS, NS, and glue records. The protocol | |||
is kept as simple as possible. | is kept as simple as possible. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 2, line 20 ¶ | skipping to change at page 2, line 20 ¶ | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 October 28, 2016. | This Internet-Draft will expire on January 8, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 46 ¶ | skipping to change at page 2, line 46 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Notional Conventions . . . . . . . . . . . . . . . . . . . . 4 | 2. Notional Conventions . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.2. RFC2119 Keywords . . . . . . . . . . . . . . . . . . . . 4 | 2.2. RFC2119 Keywords . . . . . . . . . . . . . . . . . . . . 4 | |||
3. What is the goal? . . . . . . . . . . . . . . . . . . . . . . 4 | 3. What is the goal? . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Why DNSSEC? . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Why DNSSEC? . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2. How does a child signal its parent it wants DNSSEC Trust | 3.2. How does a child signal its parent it wants DNSSEC Trust | |||
Anchor? The child . . . . . . . . . . . . . . . . . . . 4 | Anchor? . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.3. What checks are needed by parent? . . . . . . . . . . . . 5 | 3.3. What checks are needed by parent? . . . . . . . . . . . . 5 | |||
4. OP-3-DNS-RR RESTful API . . . . . . . . . . . . . . . . . . . 5 | 4. Third Party DNS operator to Registrars/Registries RESTful API 6 | |||
4.1. Authentication . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. Authentication . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.2. Authorization . . . . . . . . . . . . . . . . . . . . . . 6 | 4.2. Authorization . . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.3. Base URL Locator . . . . . . . . . . . . . . . . . . . . 6 | 4.3. Base URL Locator . . . . . . . . . . . . . . . . . . . . 6 | |||
4.4. CDS resource . . . . . . . . . . . . . . . . . . . . . . 6 | 4.4. CDS resource . . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.4.1. Initial Trust Establishment (Enable DNSSEC | 4.4.1. Initial Trust Establishment (Enable DNSSEC | |||
validation) . . . . . . . . . . . . . . . . . . . . . 6 | validation) . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.4.2. Removing a DS (turn off DNSSEC) . . . . . . . . . . . 7 | 4.4.2. Removing a DS (turn off DNSSEC) . . . . . . . . . . . 7 | |||
4.4.3. DS Maintenance (Key roll over) . . . . . . . . . . . 7 | 4.4.3. DS Maintenance (Key roll over) . . . . . . . . . . . 8 | |||
4.5. Tokens resource . . . . . . . . . . . . . . . . . . . . . 7 | 4.5. Tokens resource . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.5.1. Setup Initial Trust Establishment with Challenge . . 8 | 4.5.1. Setup Initial Trust Establishment with Challenge . . 8 | |||
4.6. Customized Error Messages . . . . . . . . . . . . . . . . 8 | 4.6. Customized Error Messages . . . . . . . . . . . . . . . . 9 | |||
4.7. How to react to 403 on POST cds . . . . . . . . . . . . . 8 | 4.7. How to react to 403 on POST cds . . . . . . . . . . . . . 9 | |||
5. Security considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security considerations . . . . . . . . . . . . . . . . . . . 9 | |||
6. IANA Actions . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. IANA Actions . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Internationalization Considerations . . . . . . . . . . . . . 9 | 7. Internationalization Considerations . . . . . . . . . . . . . 10 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 9 | 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. Document History . . . . . . . . . . . . . . . . . . 10 | Appendix A. Document History . . . . . . . . . . . . . . . . . . 11 | |||
A.1. Version 03 . . . . . . . . . . . . . . . . . . . . . . . 10 | A.1. Regex versio 01 . . . . . . . . . . . . . . . . . . . . . 11 | |||
A.2. Version 02 . . . . . . . . . . . . . . . . . . . . . . . 10 | A.2. Regex version 00 . . . . . . . . . . . . . . . . . . . . 11 | |||
A.3. Version 01 . . . . . . . . . . . . . . . . . . . . . . . 10 | A.3. Version 03 . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
A.4. Version 00 . . . . . . . . . . . . . . . . . . . . . . . 10 | A.4. Version 02 . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | A.5. Version 01 . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
A.6. Version 00 . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
1. Introduction | 1. Introduction | |||
Why is this needed? DNS registration systems today are designed | Why is this needed? DNS registration systems today are designed | |||
around making registrations easy and fast. After the domain has been | around making registrations easy and fast. After the domain has been | |||
registered the there are really three options on who maintains the | registered there are really three options on who maintains the DNS | |||
DNS zone that is loaded on the "primary" DNS servers for the domain | zone that is loaded on the "primary" DNS servers for the domain this | |||
this can be the Registrant, Registrar, or a third party DNS Operator. | can be the Registrant, Registrar, or a third party DNS Operator. | |||
Unfortunately the ease to make changes differs for each one of these | Unfortunately the ease to make changes differs for each one of these | |||
options. The Registrant needs to use the interface that the | options. The Registrant needs to use the interface that the | |||
registrar provides to update NS and DS records. The Registrar on the | registrar provides to update NS and DS records. The Registrar on the | |||
other hand can make changes directly into the registration system. | other hand can make changes directly into the registration system. | |||
The third party DNS Operator on the hand needs to go through the | The third party DNS Operator on the hand needs to go through the | |||
Registrant to update any delegation information. | Registrant to update any delegation information. | |||
Current system does not work well, there are many examples of | Current system does not work well, there are many types of failures | |||
failures including the inability to upload DS records due to non- | have been reported and they have been at all levels in the | |||
support by Registrar interface, the registrant forgets/does-not | registration model. | |||
perform action but tools proceed with key roll-over without checking | ||||
that the new DS is in place. Another common failure is the DS record | ||||
is not removed when the DNS Operator changes from one that supports | ||||
DNSSEC signing to one that does not. | ||||
The failures result either inability to use DNSSEC or in validation | The failures result either inability to use DNSSEC or in validation | |||
failures that case the domain to become invalid and all users that | failures that case the domain to become invalid and all users that | |||
are behind validating resolvers will not be able to to access the | are behind validating resolvers will not be able to to access the | |||
domain. | domain. | |||
The goal of this document is to create an automated interface that | ||||
will reduce the friction in maintaining DNSSEC delegations. | ||||
2. Notional Conventions | 2. Notional Conventions | |||
2.1. Definitions | 2.1. Definitions | |||
For the purposes of this draft, a third-party DNS Operator is any DNS | For the purposes of this draft, a third-party DNS Operator is any DNS | |||
Operator responsible for a zone where the operator is neither the | Operator responsible for a zone where the operator is neither the | |||
Registrant nor the Registrar of record for the delegation. | Registrant nor the Registrar of record for the delegation. | |||
Uses of the word 'Registrar' in this document may also be applied to | Uses of the word 'Registrar' in this document may also be applied to | |||
resellers: an entity that sells delegations through a registrar with | resellers: an entity that sells delegations through a registrar with | |||
whom the entity has a reseller agreement. | whom the entity has a reseller agreement. | |||
2.2. RFC2119 Keywords | 2.2. RFC2119 Keywords | |||
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", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
3. What is the goal? | 3. What is the goal? | |||
The primary goal is to use the DNS protocol to provide information | The primary goal is to have a protocol to establish a secure chain of | |||
from child zone to the parent zone, to maintain the delegation | trust that involves parties that are not in the traditional RRR EPP | |||
information. The precondition for this to be practical is that the | model, or when EPP is not used. | |||
domain is DNSSEC signed. | ||||
In the general case there should be a way to find the right | In the general case there should be a way to find the right | |||
Registrar/Registry entity to talk to but that does not exist. | Registrar/Registry entity to talk to, but it does not exist. Whois[] | |||
Whois[] is the natural protocol to carry such information but that | is the natural protocol to carry such information but that protocol | |||
protocol is unreliable and hard to parse. Its proposed successor | but is unreliable and hard to parse. Its proposed successor RDAP | |||
RDAP [RFC7480] has yet be deployed on most TLD's. | [RFC7480] has yet be deployed on most TLD's. | |||
The preferred communication mechanism is to use is to use a REST | The preferred communication mechanism is to use is to use a REST | |||
[RFC6690] call to start processing of the requested delegation | [RFC6690] call to start processing of the requested delegation | |||
information. | information. | |||
3.1. Why DNSSEC? | 3.1. Why DNSSEC? | |||
DNSSEC [RFC4035] provides data authentication for DNS answers, having | DNSSEC [RFC4035] provides data authentication for DNS answers, having | |||
DNSSEC enabled makes it possible to trust the answers. The biggest | DNSSEC enabled makes it possible to trust the answers. The biggest | |||
stumbling block is deploying DNSSEC is the initial configuration of | obstacle in DNSSEC adoption is the initial configuration of the | |||
the DNSSEC domain trust anchor in the parent, DS record. | DNSSEC domain trust anchor at the parent, the DS record. | |||
3.2. How does a child signal its parent it wants DNSSEC Trust Anchor? | 3.2. How does a child signal its parent it wants DNSSEC Trust Anchor? | |||
The child | ||||
needs first to sign the domain, then the child can "upload" the DS | The child needs first to sign the domain, then the child can "upload" | |||
record to its parent. The "normal" way to upload is to go through | the DS record to its parent. The "normal" way to upload is to go | |||
registration interface, but that fails frequently. The DNS Operator | through registration interface, but that fails frequently. The DNS | |||
may not have access to the interface thus the registrant needs to | Operator may not have access to the interface thus the registrant | |||
relay the information. For large operations this does not scale, as | needs to relay the information. For large operations this does not | |||
evident in lack of Trust Anchors for signed deployments that are | scale, as evident in lack of Trust Anchors for signed deployments | |||
operated by third parties. | that are operated by third parties. | |||
The child can signal its desire to have DNSSEC validation enabled by | The child can signal its desire to have DNSSEC validation enabled by | |||
publishing one of the special DNS records CDS and/or CDNSKEY[RFC7344] | publishing one of the special DNS records CDS and/or CDNSKEY[RFC7344] | |||
and its proposed extension [I-D.ietf-dnsop-maintain-ds]. | and its proposed extension [I-D.ietf-dnsop-maintain-ds]. | |||
Once the "parent" "sees" these records it SHOULD start acceptance | Once the "parent" "sees" these records it SHOULD start acceptance | |||
processing. This document will cover below how to make the CDS | processing. This document covers how to make the CDS records visible | |||
records visible to the right parental agent. | to the right parental agent. | |||
We and [I-D.ogud-dnsop-maintain-ds] argue that the publication of | This document and [I-D.ogud-dnsop-maintain-ds] argue that the | |||
CDS/CDNSKEY record is sufficient for the parent to start the | publication of CDS/CDNSKEY record is sufficient for the parent to | |||
acceptance processing. The main point is to provide authentication | start the acceptance processing. The main point is to provide | |||
thus if the child is in "good" state then the DS upload should be | authentication thus if the child is in "good" state then the DS | |||
simple to accept and publish. If there is a problem the parent has | upload should be simple to accept and publish. If there is any | |||
ability to not add the DS. | problem the parent does not add the DS. | |||
In the event this protocols and its associated authentication | ||||
mechanism does not address the Registrant's security requirements to | ||||
create a secure Trust Anchor delegation then the Registrant always | ||||
has recourse by submitting its DS record via its Registrar interface | ||||
with EPP submission to the Registry. | ||||
3.3. What checks are needed by parent? | 3.3. What checks are needed by parent? | |||
The parent upon receiving a signal that it check the child for desire | The parent upon receiving a signal that it check the child for desire | |||
for DS record publication. The basic tests include, | for DS record publication. The basic tests include, | |||
1. The zone is signed | 1. Is the zone is signed | |||
2. The zone has a CDS signed by a KSK referenced in the current DS, | 2. The zone has a CDS signed by a KSK referenced in the current DS, | |||
referring to a at least one key in the current DNSKEY RRset | referring to a at least one key in the current DNSKEY RRset | |||
3. All the name-servers for the zone agree on the CDS RRset contents | 3. All the name-servers for the zone agree on the CDS RRset contents | |||
Parents can have additional tests, defined delays, queries over TCP, | Parents can perform additional tests, defined delays, queries over | |||
and even ask the DNS Operator to prove they can add data to the zone, | TCP, ensure zone delegation best practice as per | |||
or provide a code that is tied to the affected zone. The protocol is | [I-D.wallstrom-dnsop-dns-delegation-requirements] and even ask the | |||
partially-synchronous, i.e. the server can elect to hold connection | DNS Operator to prove they can add data to the zone, or provide a | |||
open until the operation has concluded or it can return that it | code that is tied to the affected zone. The protocol is partially- | |||
received the request. It is up to the child to monitor the parent | synchronous, i.e. the server can elect to hold connection open until | |||
for completion of the operation and issue possible follow-up calls. | the operation has concluded or it can return that it received the | |||
request. It is up to the child to monitor the parent for completion | ||||
of the operation and issue possible follow-up calls. | ||||
4. OP-3-DNS-RR RESTful API | 4. Third Party DNS operator to Registrars/Registries RESTful API | |||
The specification of this API is minimalist, but a realistic one. | The specification of this API is minimalist, but a realistic one. | |||
Question: How to respond if the party contacted is not ALLOWED to | ||||
make the requested change? | Registry Lock mechanisms that prevents domain hijacking block domains | |||
prevent certain attributes in the registry to be changed. This API | ||||
may be denied access to change the DS records for domains that are | ||||
Registry Locked (HTTP Status code 401). | ||||
4.1. Authentication | 4.1. Authentication | |||
The API does not impose any unique server authentication | The API does not impose any unique server authentication | |||
requirements. The server authentication provided by TLS fully | requirements. The server authentication provided by TLS fully | |||
addresses the needs. In general, for the API SHOULD be provided over | addresses the needs. In general, the API SHOULD be provided over | |||
TLS-protected transport (e.g., HTTPS) or VPN. | TLS-protected transport (e.g., HTTPS) or VPN. | |||
4.2. Authorization | 4.2. Authorization | |||
Authorization is out of scope of this document. The CDS records | Authorization is outside the scope of this document. The CDS records | |||
present in the zone file are indications of intention to sign/unsign/ | present in the zone file are indications of intention to sign/unsign/ | |||
update the DS records of the domain in the parent zone. This means | update the DS records of the domain in the parent zone. This means | |||
the proceeding of the action is not determined by who issued the | the proceeding of the action is not determined by who issued the | |||
request. Therefore, authorization is out of the scope. Registries | request. Therefore, authorization is out of scope. Registries and | |||
and registrars who plan to provide this service can, however, | registrars who plan to provide this service can, however, implement | |||
implement their own policy such as IP white listing, API key, etc. | their own policy such as IP white listing, API key, etc. | |||
4.3. Base URL Locator | 4.3. Base URL Locator | |||
The base URL for registries or registrars who want to provide this | The base URL for registries or registrars who want to provide this | |||
service to DNS Operators can be made auto-discoverable as an RDAP | service to DNS Operators can be made auto-discoverable as an RDAP | |||
extension. | extension. | |||
4.4. CDS resource | 4.4. CDS resource | |||
Path: /domains/{domain}/cds {domain}: is the domain name to be | Path: /domains/{domain}/cds {domain}: is the domain name to be | |||
skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 17 ¶ | |||
Either the CDS/CDNSKEY or the DNSKEY can be used to create the DS | Either the CDS/CDNSKEY or the DNSKEY can be used to create the DS | |||
record. Note: entity expecting CDNSKEY is still expected accept the | record. Note: entity expecting CDNSKEY is still expected accept the | |||
/cds command. | /cds command. | |||
4.4.1.2. Response | 4.4.1.2. Response | |||
o HTTP Status code 201 indicates a success. | o HTTP Status code 201 indicates a success. | |||
o HTTP Status code 400 indicates a failure due to validation. | o HTTP Status code 400 indicates a failure due to validation. | |||
o HTTP Status code 401 indicates an unauthorized resource access. | ||||
o HTTP Status code 403 indicates a failure due to an invalid | o HTTP Status code 403 indicates a failure due to an invalid | |||
challenge token. | challenge token. | |||
o HTTP Status code 404 indicates the domain does not exist. | o HTTP Status code 404 indicates the domain does not exist. | |||
o HTTP Status code 500 indicates a failure due to unforeseeable | o HTTP Status code 500 indicates a failure due to unforeseeable | |||
reasons. | reasons. | |||
4.4.2. Removing a DS (turn off DNSSEC) | 4.4.2. Removing a DS (turn off DNSSEC) | |||
4.4.2.1. Request | 4.4.2.1. Request | |||
Syntax: DELETE /domains/{domain}/cds | Syntax: DELETE /domains/{domain}/cds | |||
A null CDS or CDNSKEY record mean the entire DS RRset must be | ||||
removed. | ||||
4.4.2.2. Response | 4.4.2.2. Response | |||
o HTTP Status code 200 indicates a success. | o HTTP Status code 200 indicates a success. | |||
o HTTP Status code 400 indicates a failure due to validation. | o HTTP Status code 400 indicates a failure due to validation. | |||
o HTTP Status code 401 indicates an unauthorized resource access. | ||||
o HTTP Status code 404 indicates the domain does not exist. | o HTTP Status code 404 indicates the domain does not exist. | |||
o HTTP Status code 500 indicates a failure due to unforeseeable | o HTTP Status code 500 indicates a failure due to unforeseeable | |||
reasons. | reasons. | |||
4.4.3. DS Maintenance (Key roll over) | 4.4.3. DS Maintenance (Key roll over) | |||
4.4.3.1. Request | 4.4.3.1. Request | |||
Syntax: PUT /domains/{domain}/cds | Syntax: PUT /domains/{domain}/cds | |||
Maintenance activities are performed based on the CDS available in | ||||
the child zone. DS records may be added, removed. But the entire DS | ||||
RRset must not be deleted. | ||||
4.4.3.2. Response | 4.4.3.2. Response | |||
o HTTP Status code 200 indicates a success. | o HTTP Status code 200 indicates a success. | |||
o HTTP Status code 400 indicates a failure due to validation. | o HTTP Status code 400 indicates a failure due to validation. | |||
o HTTP Status code 401 indicates an unauthorized resource access. | ||||
o HTTP Status code 404 indicates the domain does not exist. | o HTTP Status code 404 indicates the domain does not exist. | |||
o HTTP Status code 500 indicates a failure due to unforeseeable | o HTTP Status code 500 indicates a failure due to unforeseeable | |||
reasons. | reasons. | |||
4.5. Tokens resource | 4.5. Tokens resource | |||
Path: /domains/{domain}/tokens {domain}: is the domain name to be | Path: /domains/{domain}/tokens {domain}: is the domain name to be | |||
operated on | operated on | |||
skipping to change at page 8, line 30 ¶ | skipping to change at page 9, line 11 ¶ | |||
o HTTP Status code 500 indicates a failure due to unforeseeable | o HTTP Status code 500 indicates a failure due to unforeseeable | |||
reasons. | reasons. | |||
4.6. Customized Error Messages | 4.6. Customized Error Messages | |||
Service providers can provide a customized error message in the | Service providers can provide a customized error message in the | |||
response body in addition to the HTTP status code defined in the | response body in addition to the HTTP status code defined in the | |||
previous section. | previous section. | |||
This can include an Identifiying number/string that can be used to | This can include an Identifying number/string that can be used to | |||
track the requests. | track the requests. | |||
#Using the definitions This section at the moment contains comments | #Using the definitions This section at the moment contains comments | |||
from early implementers | from early implementers | |||
4.7. How to react to 403 on POST cds | 4.7. How to react to 403 on POST cds | |||
The basic reaction to a 403 on POST /domains/{domain}/cds is to issue | The basic reaction to a 403 on POST /domains/{domain}/cds is to issue | |||
POST /domains/{domain}/tokens command to fetch the challenge to | POST /domains/{domain}/tokens command to fetch the challenge to | |||
insert into the zone. | insert into the zone. | |||
5. Security considerations | 5. Security considerations | |||
Supplying the DS record as proof of control is not realistic since | ||||
the domain is already publicly signed and the CDS/DS is readily | ||||
available. | ||||
Open question:?? JL?: It is not recommended the protocol be used with | ||||
high profile domains such as TLDs and governments that are DNS | ||||
operators. This protocol is meant to allow third party DNS operator | ||||
to submit the initial DS in a trusted manner without involving the | ||||
registrant. | ||||
This protocol should increase the adoption of DNSSEC and get more | ||||
zones to become validated thus overall the security gain outweighs | ||||
the possible drawbacks. | ||||
TBD This will hopefully get more zones to become validated thus | TBD This will hopefully get more zones to become validated thus | |||
overall the security gain out weights the possible drawbacks. | overall the security gain out weights the possible drawbacks. | |||
risk of takeover ? risk of validation errors < declines transfer | risk of takeover ? risk of validation errors < declines transfer | |||
issues | issues | |||
6. IANA Actions | 6. IANA Actions | |||
URI ??? TBD | URI ??? TBD | |||
7. Internationalization Considerations | 7. Internationalization Considerations | |||
This protocol is designed for machine to machine communications | This protocol is designed for machine to machine communications | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[I-D.ietf-dnsop-maintain-ds] | [I-D.ietf-dnsop-maintain-ds] | |||
Gu[eth]mundsson, O. and P. Wouters, "Managing DS records | Gudmundsson, O. and P. Wouters, "Managing DS records from | |||
from parent via CDS/CDNSKEY", draft-ietf-dnsop-maintain- | parent via CDS/CDNSKEY", draft-ietf-dnsop-maintain-ds-03 | |||
ds-00 (work in progress), December 2015. | (work in progress), June 2016. | |||
[I-D.wallstrom-dnsop-dns-delegation-requirements] | ||||
Wallstrom, P. and J. Schlyter, "DNS Delegation | ||||
Requirements", draft-wallstrom-dnsop-dns-delegation- | ||||
requirements-00 (work in progress), February 2016. | ||||
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
Rose, "Protocol Modifications for the DNS Security | Rose, "Protocol Modifications for the DNS Security | |||
Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, | Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, | |||
<http://www.rfc-editor.org/info/rfc4035>. | <http://www.rfc-editor.org/info/rfc4035>. | |||
[RFC7344] Kumari, W., Gudmundsson, O., and G. Barwood, "Automating | [RFC7344] Kumari, W., Gudmundsson, O., and G. Barwood, "Automating | |||
DNSSEC Delegation Trust Maintenance", RFC 7344, DOI | DNSSEC Delegation Trust Maintenance", RFC 7344, DOI | |||
10.17487/RFC7344, September 2014, | 10.17487/RFC7344, September 2014, | |||
<http://www.rfc-editor.org/info/rfc7344>. | <http://www.rfc-editor.org/info/rfc7344>. | |||
skipping to change at page 10, line 7 ¶ | skipping to change at page 11, line 7 ¶ | |||
Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, | Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, | |||
<http://www.rfc-editor.org/info/rfc6690>. | <http://www.rfc-editor.org/info/rfc6690>. | |||
[RFC7480] Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the | [RFC7480] Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the | |||
Registration Data Access Protocol (RDAP)", RFC 7480, DOI | Registration Data Access Protocol (RDAP)", RFC 7480, DOI | |||
10.17487/RFC7480, March 2015, | 10.17487/RFC7480, March 2015, | |||
<http://www.rfc-editor.org/info/rfc7480>. | <http://www.rfc-editor.org/info/rfc7480>. | |||
Appendix A. Document History | Appendix A. Document History | |||
A.1. Version 03 | A.1. Regex versio 01 | |||
Rewrote Abstract and Into (MP) Introduced code 401 when changes are | ||||
not allowed Text edits and clarifications. | ||||
A.2. Regex version 00 | ||||
Working group document same as 03, just track changed to standard | ||||
A.3. Version 03 | ||||
Clarified based on comments and questions from early implementors | Clarified based on comments and questions from early implementors | |||
A.2. Version 02 | A.4. Version 02 | |||
Reflected comments on mailing lists | Reflected comments on mailing lists | |||
A.3. Version 01 | A.5. Version 01 | |||
This version adds a full REST definition this is based on suggestions | This version adds a full REST definition this is based on suggestions | |||
from Jakob Schlyter. | from Jakob Schlyter. | |||
A.4. Version 00 | A.6. Version 00 | |||
First rough version | First rough version | |||
Authors' Addresses | Authors' Addresses | |||
Jacques Latour | Jacques Latour | |||
CIRA | CIRA | |||
Email: jacques.latour@cira.ca | Email: jacques.latour@cira.ca | |||
End of changes. 41 change blocks. | ||||
90 lines changed or deleted | 141 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |