epp-client-secdns 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +5 -0
- data/Gemfile +6 -0
- data/MIT-LICENSE +19 -0
- data/README +5 -0
- data/Rakefile +37 -0
- data/epp-client-secdns.gemspec +37 -0
- data/lib/epp-client/secdns.rb +243 -0
- data/vendor/ietf/rfc4310.txt +1235 -0
- data/vendor/ietf/rfc5910.txt +2019 -0
- data/vendor/ietf/secDNS-1.0.xsd +93 -0
- data/vendor/ietf/secDNS-1.1.xsd +127 -0
- metadata +126 -0
@@ -0,0 +1,1235 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
Network Working Group S. Hollenbeck
|
8
|
+
Request for Comments: 4310 VeriSign, Inc.
|
9
|
+
Category: Standards Track November 2005
|
10
|
+
|
11
|
+
|
12
|
+
Domain Name System (DNS) Security Extensions Mapping
|
13
|
+
for the Extensible Provisioning Protocol (EPP)
|
14
|
+
|
15
|
+
Status of this Memo
|
16
|
+
|
17
|
+
This document specifies an Internet standards track protocol for the
|
18
|
+
Internet community, and requests discussion and suggestions for
|
19
|
+
improvements. Please refer to the current edition of the "Internet
|
20
|
+
Official Protocol Standards" (STD 1) for the standardization state
|
21
|
+
and status of this protocol. Distribution of this memo is unlimited.
|
22
|
+
|
23
|
+
Copyright Notice
|
24
|
+
|
25
|
+
Copyright (C) The Internet Society (2005).
|
26
|
+
|
27
|
+
Abstract
|
28
|
+
|
29
|
+
This document describes an Extensible Provisioning Protocol (EPP)
|
30
|
+
extension mapping for the provisioning and management of Domain Name
|
31
|
+
System security extensions (DNSSEC) for domain names stored in a
|
32
|
+
shared central repository. Specified in XML, this mapping extends
|
33
|
+
the EPP domain name mapping to provide additional features required
|
34
|
+
for the provisioning of DNS security extensions.
|
35
|
+
|
36
|
+
Table of Contents
|
37
|
+
|
38
|
+
1. Introduction ....................................................2
|
39
|
+
1.1. Conventions Used in This Document ..........................2
|
40
|
+
2. Object Attributes ...............................................3
|
41
|
+
2.1. Delegation Signer Information ..............................3
|
42
|
+
2.1.1. Public Key Information ..............................3
|
43
|
+
2.2. Booleans ...................................................3
|
44
|
+
2.3. Maximum Signature Lifetime Values ..........................4
|
45
|
+
3. EPP Command Mapping .............................................4
|
46
|
+
3.1. EPP Query Commands .........................................4
|
47
|
+
3.1.1. EPP <check> Command .................................4
|
48
|
+
3.1.2. EPP <info> Command ..................................4
|
49
|
+
3.1.3. EPP <transfer> Command ..............................8
|
50
|
+
3.2. EPP Transform Commands .....................................8
|
51
|
+
3.2.1. EPP <create> Command ................................8
|
52
|
+
3.2.2. EPP <delete> Command ...............................11
|
53
|
+
3.2.3. EPP <renew> Command ................................11
|
54
|
+
3.2.4. EPP <transfer> Command .............................11
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
Hollenbeck Standards Track [Page 1]
|
59
|
+
|
60
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
61
|
+
|
62
|
+
|
63
|
+
3.2.5. EPP <update> Command ...............................11
|
64
|
+
4. Formal Syntax ..................................................15
|
65
|
+
5. Internationalization Considerations ............................18
|
66
|
+
6. IANA Considerations ............................................18
|
67
|
+
7. Security Considerations ........................................18
|
68
|
+
8. Acknowledgements ...............................................20
|
69
|
+
9. References .....................................................20
|
70
|
+
9.1. Normative References ......................................20
|
71
|
+
9.2. Informative References ....................................21
|
72
|
+
|
73
|
+
1. Introduction
|
74
|
+
|
75
|
+
This document describes an extension mapping for version 1.0 of the
|
76
|
+
Extensible Provisioning Protocol (EPP) described in RFC 3730 [1].
|
77
|
+
This mapping, an extension of the domain name mapping described in
|
78
|
+
RFC 3731 [2], is specified using the Extensible Markup Language (XML)
|
79
|
+
1.0 [3] and XML Schema notation ([4], [5]).
|
80
|
+
|
81
|
+
The EPP core protocol specification [1] provides a complete
|
82
|
+
description of EPP command and response structures. A thorough
|
83
|
+
understanding of the base protocol specification is necessary to
|
84
|
+
understand the mapping described in this document. Familiarity with
|
85
|
+
the Domain Name System (DNS) described in RFC 1034 [11] and RFC 1035
|
86
|
+
[12] and with DNS security extensions described in RFC 4033 [13], RFC
|
87
|
+
4034 [6], and RFC 4035 [7] is required to understand the DNS security
|
88
|
+
concepts described in this document.
|
89
|
+
|
90
|
+
The EPP mapping described in this document specifies a mechanism for
|
91
|
+
the provisioning and management of DNS security extensions in a
|
92
|
+
shared central repository. Information exchanged via this mapping
|
93
|
+
can be extracted from the repository and used to publish DNSSEC
|
94
|
+
delegation signer (DS) resource records as described in RFC 4034 [6].
|
95
|
+
|
96
|
+
1.1. Conventions Used in This Document
|
97
|
+
|
98
|
+
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
99
|
+
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
100
|
+
document are to be interpreted as described in BCP 14, RFC 2119 [8].
|
101
|
+
|
102
|
+
In examples, "C:" represents lines sent by a protocol client, and
|
103
|
+
"S:" represents lines returned by a protocol server. "////" is used
|
104
|
+
to note element values that have been shortened to better fit page
|
105
|
+
boundaries. Indentation and white space in examples is provided only
|
106
|
+
to illustrate element relationships and is not a mandatory feature of
|
107
|
+
this protocol.
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
Hollenbeck Standards Track [Page 2]
|
115
|
+
|
116
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
117
|
+
|
118
|
+
|
119
|
+
XML is case sensitive. Unless stated otherwise, XML specifications
|
120
|
+
and examples provided in this document MUST be interpreted in the
|
121
|
+
character case presented in order to develop a conforming
|
122
|
+
implementation.
|
123
|
+
|
124
|
+
2. Object Attributes
|
125
|
+
|
126
|
+
This extension adds additional elements to the EPP domain name
|
127
|
+
mapping [2]. Only new element descriptions are described here.
|
128
|
+
|
129
|
+
This document describes operational scenarios in which a client can
|
130
|
+
create, add, remove, and replace delegation signer (DS) information.
|
131
|
+
Key data associated with the DS information MAY be provided by the
|
132
|
+
client, but the server is not obligated to use the key data. The
|
133
|
+
server operator MAY also issue out-of-band DNS queries to retrieve
|
134
|
+
the key data from the registered domain's apex in order to evaluate
|
135
|
+
the received DS information. It is RECOMMENDED that the child zone
|
136
|
+
operator have this key data online in the DNS tree to allow the
|
137
|
+
parent zone administrator to validate the data as necessary. The key
|
138
|
+
data SHOULD have the Secure Entry Point (SEP) bit set as described in
|
139
|
+
RFC 3757 [9].
|
140
|
+
|
141
|
+
2.1. Delegation Signer Information
|
142
|
+
|
143
|
+
Delegation signer (DS) information is published by a DNS server to
|
144
|
+
indicate that a child zone is digitally signed and that the parent
|
145
|
+
zone recognizes the indicated key as a valid zone key for the child
|
146
|
+
zone. A DS RR contains four fields: a key tag field, a key algorithm
|
147
|
+
number octet, an octet identifying the digest algorithm used, and a
|
148
|
+
digest field. See RFC 4034 [6] for specific field formats.
|
149
|
+
|
150
|
+
2.1.1. Public Key Information
|
151
|
+
|
152
|
+
Public key information provided by a client maps to the DNSKEY RR
|
153
|
+
presentation field formats described in section 2.2 of RFC 4034 [6].
|
154
|
+
A DNSKEY RR contains four fields: flags, a protocol octet, an
|
155
|
+
algorithm number octet, and a public key.
|
156
|
+
|
157
|
+
2.2. Booleans
|
158
|
+
|
159
|
+
Boolean values MUST be represented in the XML Schema format described
|
160
|
+
in Part 2 of the W3C XML Schema recommendation [5].
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
Hollenbeck Standards Track [Page 3]
|
171
|
+
|
172
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
173
|
+
|
174
|
+
|
175
|
+
2.3. Maximum Signature Lifetime Values
|
176
|
+
|
177
|
+
Maximum signature lifetime values MUST be represented in seconds
|
178
|
+
using an extended XML Schema "int" format. The base "int" format,
|
179
|
+
which allows negative numbers, is described in Part 2 of the W3C XML
|
180
|
+
Schema recommendation [5]. This format is further restricted to
|
181
|
+
enforce a minimum value of one.
|
182
|
+
|
183
|
+
3. EPP Command Mapping
|
184
|
+
|
185
|
+
A detailed description of the EPP syntax and semantics can be found
|
186
|
+
in the EPP core protocol specification [1]. The command mappings
|
187
|
+
described here are specifically for use in provisioning and managing
|
188
|
+
DNS security extensions via EPP.
|
189
|
+
|
190
|
+
3.1. EPP Query Commands
|
191
|
+
|
192
|
+
EPP provides three commands to retrieve object information: <check>
|
193
|
+
to determine if an object is known to the server, <info> to retrieve
|
194
|
+
detailed information associated with an object, and <transfer> to
|
195
|
+
retrieve object transfer status information.
|
196
|
+
|
197
|
+
3.1.1. EPP <check> Command
|
198
|
+
|
199
|
+
This extension does not add any elements to the EPP <check> command
|
200
|
+
or <check> response described in the EPP domain mapping [2].
|
201
|
+
|
202
|
+
3.1.2. EPP <info> Command
|
203
|
+
|
204
|
+
This extension does not add any elements to the EPP <info> command
|
205
|
+
described in the EPP domain mapping [2]. Additional elements are
|
206
|
+
defined for the <info> response.
|
207
|
+
|
208
|
+
When an <info> command has been processed successfully, the EPP
|
209
|
+
<resData> element MUST contain child elements as described in the EPP
|
210
|
+
domain mapping [2]. In addition, the EPP <extension> element MUST
|
211
|
+
contain a child <secDNS:infData> element that identifies the
|
212
|
+
extension namespace and the location of the extension schema. The
|
213
|
+
<secDNS:infData> element contains the following child elements:
|
214
|
+
|
215
|
+
One or more <secDNS:dsData> elements that describe the delegation
|
216
|
+
signer data provided by the client for the domain. The <secDNS:
|
217
|
+
dsData> element contains the following child elements:
|
218
|
+
|
219
|
+
A <secDNS:keyTag> element that contains a key tag value as
|
220
|
+
described in section 5.1.1 of RFC 4034 [6].
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
Hollenbeck Standards Track [Page 4]
|
227
|
+
|
228
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
229
|
+
|
230
|
+
|
231
|
+
A <secDNS:alg> element that contains an algorithm value as
|
232
|
+
described in section 5.1.2 of RFC 4034 [6].
|
233
|
+
|
234
|
+
A <secDNS:digestType> element that contains a digest type value
|
235
|
+
as described in section 5.1.3 of RFC 4034 [6].
|
236
|
+
|
237
|
+
A <secDNS:digest> element that contains a digest value as
|
238
|
+
described in section 5.1.4 of RFC 4034 [6].
|
239
|
+
|
240
|
+
An OPTIONAL <secDNS:maxSigLife> element that indicates a
|
241
|
+
child's preference for the number of seconds after signature
|
242
|
+
generation when the parent's signature on the DS information
|
243
|
+
provided by the child will expire. A client SHOULD specify the
|
244
|
+
same <secDNS:maxSigLife> value for all <secDNS:dsData> elements
|
245
|
+
associated with a domain. If the <secDNS:maxSigLife> is not
|
246
|
+
present, or if multiple <secDNS:maxSigLife> values are
|
247
|
+
requested, the default signature expiration policy of the
|
248
|
+
server operator (as determined using an out-of-band mechanism)
|
249
|
+
applies.
|
250
|
+
|
251
|
+
An OPTIONAL <secDNS:keyData> element that describes the key
|
252
|
+
data used as input in the DS hash calculation. The <secDNS:
|
253
|
+
keyData> element contains the following child elements:
|
254
|
+
|
255
|
+
A <secDNS:flags> element that contains a flags field value
|
256
|
+
as described in section 2.1.1 of RFC 4034 [6].
|
257
|
+
|
258
|
+
A <secDNS:protocol> element that contains a protocol field
|
259
|
+
value as described in section 2.1.2 of RFC 4034 [6].
|
260
|
+
|
261
|
+
A <secDNS:alg> element that contains an algorithm number
|
262
|
+
field value as described in sections 2.1.3 of RFC 4034 [6].
|
263
|
+
|
264
|
+
A <secDNS:pubKey> element that contains an encoded public
|
265
|
+
key field value as described in sections 2.1.4 of RFC 4034
|
266
|
+
[6].
|
267
|
+
|
268
|
+
Example <info> Response for a Secure Delegation:
|
269
|
+
|
270
|
+
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
271
|
+
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
272
|
+
S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
273
|
+
S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
274
|
+
S: epp-1.0.xsd">
|
275
|
+
S: <response>
|
276
|
+
S: <result code="1000">
|
277
|
+
S: <msg>Command completed successfully</msg>
|
278
|
+
S: </result>
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
Hollenbeck Standards Track [Page 5]
|
283
|
+
|
284
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
285
|
+
|
286
|
+
|
287
|
+
S: <resData>
|
288
|
+
S: <domain:infData
|
289
|
+
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
290
|
+
S: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
291
|
+
S: domain-1.0.xsd">
|
292
|
+
S: <domain:name>example.com</domain:name>
|
293
|
+
S: <domain:roid>EXAMPLE1-REP</domain:roid>
|
294
|
+
S: <domain:status s="ok"/>
|
295
|
+
S: <domain:registrant>jd1234</domain:registrant>
|
296
|
+
S: <domain:contact type="admin">sh8013</domain:contact>
|
297
|
+
S: <domain:contact type="tech">sh8013</domain:contact>
|
298
|
+
S: <domain:ns>
|
299
|
+
S: <domain:hostObj>ns1.example.com</domain:hostObj>
|
300
|
+
S: <domain:hostObj>ns2.example.com</domain:hostObj>
|
301
|
+
S: </domain:ns>
|
302
|
+
S: <domain:host>ns1.example.com</domain:host>
|
303
|
+
S: <domain:host>ns2.example.com</domain:host>
|
304
|
+
S: <domain:clID>ClientX</domain:clID>
|
305
|
+
S: <domain:crID>ClientY</domain:crID>
|
306
|
+
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
|
307
|
+
S: <domain:upID>ClientX</domain:upID>
|
308
|
+
S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
|
309
|
+
S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
|
310
|
+
S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
|
311
|
+
S: <domain:authInfo>
|
312
|
+
S: <domain:pw>2fooBAR</domain:pw>
|
313
|
+
S: </domain:authInfo>
|
314
|
+
S: </domain:infData>
|
315
|
+
S: </resData>
|
316
|
+
S: <extension>
|
317
|
+
S: <secDNS:infData
|
318
|
+
S: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
319
|
+
S: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
320
|
+
S: secDNS-1.0.xsd">
|
321
|
+
S: <secDNS:dsData>
|
322
|
+
S: <secDNS:keyTag>12345</secDNS:keyTag>
|
323
|
+
S: <secDNS:alg>3</secDNS:alg>
|
324
|
+
S: <secDNS:digestType>1</secDNS:digestType>
|
325
|
+
S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
|
326
|
+
S: </secDNS:dsData>
|
327
|
+
S: </secDNS:infData>
|
328
|
+
S: </extension>
|
329
|
+
S: <trID>
|
330
|
+
S: <clTRID>ABC-12345</clTRID>
|
331
|
+
S: <svTRID>54322-XYZ</svTRID>
|
332
|
+
S: </trID>
|
333
|
+
S: </response>
|
334
|
+
S:</epp>
|
335
|
+
|
336
|
+
|
337
|
+
|
338
|
+
Hollenbeck Standards Track [Page 6]
|
339
|
+
|
340
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
341
|
+
|
342
|
+
|
343
|
+
Example <info> Response for a Secure Delegation with OPTIONAL Data:
|
344
|
+
|
345
|
+
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
346
|
+
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
347
|
+
S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
348
|
+
S: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
349
|
+
S: epp-1.0.xsd">
|
350
|
+
S: <response>
|
351
|
+
S: <result code="1000">
|
352
|
+
S: <msg>Command completed successfully</msg>
|
353
|
+
S: </result>
|
354
|
+
S: <resData>
|
355
|
+
S: <domain:infData
|
356
|
+
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
357
|
+
S: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
358
|
+
S: domain-1.0.xsd">
|
359
|
+
S: <domain:name>example.com</domain:name>
|
360
|
+
S: <domain:roid>EXAMPLE1-REP</domain:roid>
|
361
|
+
S: <domain:status s="ok"/>
|
362
|
+
S: <domain:registrant>jd1234</domain:registrant>
|
363
|
+
S: <domain:contact type="admin">sh8013</domain:contact>
|
364
|
+
S: <domain:contact type="tech">sh8013</domain:contact>
|
365
|
+
S: <domain:ns>
|
366
|
+
S: <domain:hostObj>ns1.example.com</domain:hostObj>
|
367
|
+
S: <domain:hostObj>ns2.example.com</domain:hostObj>
|
368
|
+
S: </domain:ns>
|
369
|
+
S: <domain:host>ns1.example.com</domain:host>
|
370
|
+
S: <domain:host>ns2.example.com</domain:host>
|
371
|
+
S: <domain:clID>ClientX</domain:clID>
|
372
|
+
S: <domain:crID>ClientY</domain:crID>
|
373
|
+
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
|
374
|
+
S: <domain:upID>ClientX</domain:upID>
|
375
|
+
S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
|
376
|
+
S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
|
377
|
+
S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
|
378
|
+
S: <domain:authInfo>
|
379
|
+
S: <domain:pw>2fooBAR</domain:pw>
|
380
|
+
S: </domain:authInfo>
|
381
|
+
S: </domain:infData>
|
382
|
+
S: </resData>
|
383
|
+
S: <extension>
|
384
|
+
S: <secDNS:infData
|
385
|
+
S: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
386
|
+
S: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
387
|
+
S: secDNS-1.0.xsd">
|
388
|
+
S: <secDNS:dsData>
|
389
|
+
S: <secDNS:keyTag>12345</secDNS:keyTag>
|
390
|
+
S: <secDNS:alg>3</secDNS:alg>
|
391
|
+
|
392
|
+
|
393
|
+
|
394
|
+
Hollenbeck Standards Track [Page 7]
|
395
|
+
|
396
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
397
|
+
|
398
|
+
|
399
|
+
S: <secDNS:digestType>1</secDNS:digestType>
|
400
|
+
S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
|
401
|
+
S: <secDNS:maxSigLife>604800</secDNS:maxSigLife>
|
402
|
+
S: <secDNS:keyData>
|
403
|
+
S: <secDNS:flags>256</secDNS:flags>
|
404
|
+
S: <secDNS:protocol>3</secDNS:protocol>
|
405
|
+
S: <secDNS:alg>1</secDNS:alg>
|
406
|
+
S: <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
|
407
|
+
S: </secDNS:keyData>
|
408
|
+
S: </secDNS:dsData>
|
409
|
+
S: </secDNS:infData>
|
410
|
+
S: </extension>
|
411
|
+
S: <trID>
|
412
|
+
S: <clTRID>ABC-12345</clTRID>
|
413
|
+
S: <svTRID>54322-XYZ</svTRID>
|
414
|
+
S: </trID>
|
415
|
+
S: </response>
|
416
|
+
S:</epp>
|
417
|
+
|
418
|
+
An EPP error response MUST be returned if an <info> command can not
|
419
|
+
be processed for any reason.
|
420
|
+
|
421
|
+
3.1.3. EPP <transfer> Command
|
422
|
+
|
423
|
+
This extension does not add any elements to the EPP <transfer>
|
424
|
+
command or <transfer> response described in the EPP domain mapping
|
425
|
+
[2].
|
426
|
+
|
427
|
+
3.2. EPP Transform Commands
|
428
|
+
|
429
|
+
EPP provides five commands to transform objects: <create> to create
|
430
|
+
an instance of an object, <delete> to delete an instance of an
|
431
|
+
object, <renew> to extend the validity period of an object,
|
432
|
+
<transfer> to manage object sponsorship changes, and <update> to
|
433
|
+
change information associated with an object.
|
434
|
+
|
435
|
+
3.2.1. EPP <create> Command
|
436
|
+
|
437
|
+
This extension defines additional elements for the EPP <create>
|
438
|
+
command described in the EPP domain mapping [2]. No additional
|
439
|
+
elements are defined for the EPP <create> response.
|
440
|
+
|
441
|
+
The EPP <create> command provides a transform operation that allows a
|
442
|
+
client to create a domain object. In addition to the EPP command
|
443
|
+
elements described in the EPP domain mapping [2], the command MUST
|
444
|
+
contain an <extension> element. The <extension> element MUST contain
|
445
|
+
a child <secDNS:create> element that identifies the extension
|
446
|
+
namespace and the location of the extension schema. The <secDNS:
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
Hollenbeck Standards Track [Page 8]
|
451
|
+
|
452
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
453
|
+
|
454
|
+
|
455
|
+
create> element MUST contain one or more <secDNS:dsData> elements.
|
456
|
+
Child elements of the <secDNS:dsData> element are described in
|
457
|
+
Section 3.1.2.
|
458
|
+
|
459
|
+
The <secDNS:dsData> element contains OPTIONAL <secDNS:maxSigLife> and
|
460
|
+
<secDNS:keyData> elements. The server MUST abort command processing
|
461
|
+
and respond with an appropriate EPP error if the values provided by
|
462
|
+
the client can not be accepted for syntax or policy reasons.
|
463
|
+
|
464
|
+
Example <create> Command for a Secure Delegation:
|
465
|
+
|
466
|
+
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
467
|
+
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
468
|
+
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
469
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
470
|
+
C: epp-1.0.xsd">
|
471
|
+
C: <command>
|
472
|
+
C: <create>
|
473
|
+
C: <domain:create
|
474
|
+
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
475
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
476
|
+
C: domain-1.0.xsd">
|
477
|
+
C: <domain:name>example.com</domain:name>
|
478
|
+
C: <domain:period unit="y">2</domain:period>
|
479
|
+
C: <domain:ns>
|
480
|
+
C: <domain:hostObj>ns1.example.com</domain:hostObj>
|
481
|
+
C: <domain:hostObj>ns2.example.com</domain:hostObj>
|
482
|
+
C: </domain:ns>
|
483
|
+
C: <domain:registrant>jd1234</domain:registrant>
|
484
|
+
C: <domain:contact type="admin">sh8013</domain:contact>
|
485
|
+
C: <domain:contact type="tech">sh8013</domain:contact>
|
486
|
+
C: <domain:authInfo>
|
487
|
+
C: <domain:pw>2fooBAR</domain:pw>
|
488
|
+
C: </domain:authInfo>
|
489
|
+
C: </domain:create>
|
490
|
+
C: </create>
|
491
|
+
C: <extension>
|
492
|
+
C: <secDNS:create
|
493
|
+
C: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
494
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
495
|
+
C: secDNS-1.0.xsd">
|
496
|
+
C: <secDNS:dsData>
|
497
|
+
C: <secDNS:keyTag>12345</secDNS:keyTag>
|
498
|
+
C: <secDNS:alg>3</secDNS:alg>
|
499
|
+
C: <secDNS:digestType>1</secDNS:digestType>
|
500
|
+
C: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
|
501
|
+
C: </secDNS:dsData>
|
502
|
+
C: </secDNS:create>
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
Hollenbeck Standards Track [Page 9]
|
507
|
+
|
508
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
509
|
+
|
510
|
+
|
511
|
+
C: </extension>
|
512
|
+
C: <clTRID>ABC-12345</clTRID>
|
513
|
+
C: </command>
|
514
|
+
C:</epp>
|
515
|
+
|
516
|
+
|
517
|
+
Example <create> Command for a Secure Delegation with OPTIONAL data:
|
518
|
+
|
519
|
+
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
520
|
+
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
521
|
+
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
522
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
523
|
+
C: epp-1.0.xsd">
|
524
|
+
C: <command>
|
525
|
+
C: <create>
|
526
|
+
C: <domain:create
|
527
|
+
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
528
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
529
|
+
C: domain-1.0.xsd">
|
530
|
+
C: <domain:name>example.com</domain:name>
|
531
|
+
C: <domain:period unit="y">2</domain:period>
|
532
|
+
C: <domain:ns>
|
533
|
+
C: <domain:hostObj>ns1.example.com</domain:hostObj>
|
534
|
+
C: <domain:hostObj>ns2.example.com</domain:hostObj>
|
535
|
+
C: </domain:ns>
|
536
|
+
C: <domain:registrant>jd1234</domain:registrant>
|
537
|
+
C: <domain:contact type="admin">sh8013</domain:contact>
|
538
|
+
C: <domain:contact type="tech">sh8013</domain:contact>
|
539
|
+
C: <domain:authInfo>
|
540
|
+
C: <domain:pw>2fooBAR</domain:pw>
|
541
|
+
C: </domain:authInfo>
|
542
|
+
C: </domain:create>
|
543
|
+
C: </create>
|
544
|
+
C: <extension>
|
545
|
+
C: <secDNS:create
|
546
|
+
C: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
547
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
548
|
+
C: secDNS-1.0.xsd">
|
549
|
+
C: <secDNS:dsData>
|
550
|
+
C: <secDNS:keyTag>12345</secDNS:keyTag>
|
551
|
+
C: <secDNS:alg>3</secDNS:alg>
|
552
|
+
C: <secDNS:digestType>1</secDNS:digestType>
|
553
|
+
C: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
|
554
|
+
C: <secDNS:maxSigLife>604800</secDNS:maxSigLife>
|
555
|
+
C: <secDNS:keyData>
|
556
|
+
C: <secDNS:flags>256</secDNS:flags>
|
557
|
+
C: <secDNS:protocol>3</secDNS:protocol>
|
558
|
+
C: <secDNS:alg>1</secDNS:alg>
|
559
|
+
|
560
|
+
|
561
|
+
|
562
|
+
Hollenbeck Standards Track [Page 10]
|
563
|
+
|
564
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
565
|
+
|
566
|
+
|
567
|
+
C: <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
|
568
|
+
C: </secDNS:keyData>
|
569
|
+
C: </secDNS:dsData>
|
570
|
+
C: </secDNS:create>
|
571
|
+
C: </extension>
|
572
|
+
C: <clTRID>ABC-12345</clTRID>
|
573
|
+
C: </command>
|
574
|
+
C:</epp>
|
575
|
+
|
576
|
+
When a <create> command has been processed successfully, the EPP
|
577
|
+
response is as described in the EPP domain mapping [2].
|
578
|
+
|
579
|
+
3.2.2. EPP <delete> Command
|
580
|
+
|
581
|
+
This extension does not add any elements to the EPP <delete> command
|
582
|
+
or <delete> response described in the EPP domain mapping [2].
|
583
|
+
|
584
|
+
3.2.3. EPP <renew> Command
|
585
|
+
|
586
|
+
This extension does not add any elements to the EPP <renew> command
|
587
|
+
or <renew> response described in the EPP domain mapping [2].
|
588
|
+
|
589
|
+
3.2.4. EPP <transfer> Command
|
590
|
+
|
591
|
+
This extension does not add any elements to the EPP <transfer>
|
592
|
+
command or <transfer> response described in the EPP domain mapping
|
593
|
+
[2].
|
594
|
+
|
595
|
+
3.2.5. EPP <update> Command
|
596
|
+
|
597
|
+
This extension defines additional elements for the EPP <update>
|
598
|
+
command described in the EPP domain mapping [2]. No additional
|
599
|
+
elements are defined for the EPP <update> response.
|
600
|
+
|
601
|
+
The EPP <update> command provides a transform operation that allows a
|
602
|
+
client to modify the attributes of a domain object. In addition to
|
603
|
+
the EPP command elements described in the EPP domain mapping, the
|
604
|
+
command MUST contain an <extension> element. The <extension> element
|
605
|
+
MUST contain a child <secDNS:update> element that identifies the
|
606
|
+
extension namespace and the location of the extension schema. The
|
607
|
+
<secDNS:update> element contains a <secDNS:add> element to add
|
608
|
+
security information to a delegation, a <secDNS:rem> element to
|
609
|
+
remove security information from a delegation, or a <secDNS:chg>
|
610
|
+
element to replace security information with new security
|
611
|
+
information.
|
612
|
+
|
613
|
+
The <secDNS:update> element also contains an OPTIONAL "urgent"
|
614
|
+
attribute that a client can use to ask the server operator to
|
615
|
+
|
616
|
+
|
617
|
+
|
618
|
+
Hollenbeck Standards Track [Page 11]
|
619
|
+
|
620
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
621
|
+
|
622
|
+
|
623
|
+
complete and implement the update request with high priority. This
|
624
|
+
attribute accepts boolean values as described in Section 2.2; the
|
625
|
+
default value is boolean false. "High priority" is relative to
|
626
|
+
standard server operator policies that are determined using an
|
627
|
+
out-of-band mechanism.
|
628
|
+
|
629
|
+
The <secDNS:add> element is used to add DS information to an existing
|
630
|
+
set. The <secDNS:add> element MUST contain one or more <secDNS:
|
631
|
+
dsData> elements as described in Section 3.1.2.
|
632
|
+
|
633
|
+
The <secDNS:rem> element contains one or more <secDNS:keyTag>
|
634
|
+
elements that are used to remove DS data from a delegation. The
|
635
|
+
<secDNS:keyTag> element MUST contain a key tag value as described in
|
636
|
+
section 5.1.1 of RFC 4034 [6]. Removing all DS information can
|
637
|
+
remove the ability of the parent to secure the delegation to the
|
638
|
+
child zone.
|
639
|
+
|
640
|
+
The <secDNS:chg> element is used to replace existing DS information
|
641
|
+
with new DS information. The <secDNS:chg> element MUST contain one
|
642
|
+
or more <secDNS:dsData> elements as described in Section 3.1.2. The
|
643
|
+
data in these elements is used to replace whatever other data is
|
644
|
+
currently archived for the delegation.
|
645
|
+
|
646
|
+
The <secDNS:update> element contains an OPTIONAL "urgent" attribute.
|
647
|
+
In addition, the <secDNS:dsData> element contains OPTIONAL <secDNS:
|
648
|
+
maxSigLife> and <secDNS:keyData> elements. The server MUST abort
|
649
|
+
command processing and respond with an appropriate EPP error if the
|
650
|
+
values provided by the client can not be accepted for syntax or
|
651
|
+
policy reasons.
|
652
|
+
|
653
|
+
Example <update> Command, Adding DS Data:
|
654
|
+
|
655
|
+
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
656
|
+
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
657
|
+
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
658
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
659
|
+
C: epp-1.0.xsd">
|
660
|
+
C: <command>
|
661
|
+
C: <update>
|
662
|
+
C: <domain:update
|
663
|
+
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
664
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
665
|
+
C: domain-1.0.xsd">
|
666
|
+
C: <domain:name>example.com</domain:name>
|
667
|
+
C: </domain:update>
|
668
|
+
C: </update>
|
669
|
+
C: <extension>
|
670
|
+
C: <secDNS:update
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
Hollenbeck Standards Track [Page 12]
|
675
|
+
|
676
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
677
|
+
|
678
|
+
|
679
|
+
C: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
680
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
681
|
+
C: secDNS-1.0.xsd">
|
682
|
+
C: <secDNS:add>
|
683
|
+
C: <secDNS:dsData>
|
684
|
+
C: <secDNS:keyTag>12346</secDNS:keyTag>
|
685
|
+
C: <secDNS:alg>3</secDNS:alg>
|
686
|
+
C: <secDNS:digestType>1</secDNS:digestType>
|
687
|
+
C: <secDNS:digest>38EC35D5B3A34B44C39B</secDNS:digest>
|
688
|
+
C: </secDNS:dsData>
|
689
|
+
C: </secDNS:add>
|
690
|
+
C: </secDNS:update>
|
691
|
+
C: </extension>
|
692
|
+
C: <clTRID>ABC-12345</clTRID>
|
693
|
+
C: </command>
|
694
|
+
C:</epp>
|
695
|
+
|
696
|
+
Example <update> Command, Removing DS Data:
|
697
|
+
|
698
|
+
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
699
|
+
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
700
|
+
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
701
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
702
|
+
C: epp-1.0.xsd">
|
703
|
+
C: <command>
|
704
|
+
C: <update>
|
705
|
+
C: <domain:update
|
706
|
+
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
707
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
708
|
+
C: domain-1.0.xsd">
|
709
|
+
C: <domain:name>example.com</domain:name>
|
710
|
+
C: </domain:update>
|
711
|
+
C: </update>
|
712
|
+
C: <extension>
|
713
|
+
C: <secDNS:update
|
714
|
+
C: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
715
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
716
|
+
C: secDNS-1.0.xsd">
|
717
|
+
C: <secDNS:rem>
|
718
|
+
C: <secDNS:keyTag>12345</secDNS:keyTag>
|
719
|
+
C: </secDNS:rem>
|
720
|
+
C: </secDNS:update>
|
721
|
+
C: </extension>
|
722
|
+
C: <clTRID>ABC-12345</clTRID>
|
723
|
+
C: </command>
|
724
|
+
C:</epp>
|
725
|
+
|
726
|
+
|
727
|
+
|
728
|
+
|
729
|
+
|
730
|
+
Hollenbeck Standards Track [Page 13]
|
731
|
+
|
732
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
733
|
+
|
734
|
+
|
735
|
+
Example Urgent <update> Command, Changing DS Data:
|
736
|
+
|
737
|
+
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
738
|
+
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
739
|
+
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
740
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
741
|
+
C: epp-1.0.xsd">
|
742
|
+
C: <command>
|
743
|
+
C: <update>
|
744
|
+
C: <domain:update
|
745
|
+
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
746
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
747
|
+
C: domain-1.0.xsd">
|
748
|
+
C: <domain:name>example.com</domain:name>
|
749
|
+
C: </domain:update>
|
750
|
+
C: </update>
|
751
|
+
C: <extension>
|
752
|
+
C: <secDNS:update urgent="1"
|
753
|
+
C: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
754
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
755
|
+
C: secDNS-1.0.xsd">
|
756
|
+
C: <secDNS:chg>
|
757
|
+
C: <secDNS:dsData>
|
758
|
+
C: <secDNS:keyTag>12345</secDNS:keyTag>
|
759
|
+
C: <secDNS:alg>3</secDNS:alg>
|
760
|
+
C: <secDNS:digestType>1</secDNS:digestType>
|
761
|
+
C: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
|
762
|
+
C: </secDNS:dsData>
|
763
|
+
C: </secDNS:chg>
|
764
|
+
C: </secDNS:update>
|
765
|
+
C: </extension>
|
766
|
+
C: <clTRID>ABC-12345</clTRID>
|
767
|
+
C: </command>
|
768
|
+
C:</epp>
|
769
|
+
|
770
|
+
Example <update> Command, Changing Data to Include OPTIONAL Data:
|
771
|
+
|
772
|
+
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
773
|
+
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
|
774
|
+
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
775
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
|
776
|
+
C: epp-1.0.xsd">
|
777
|
+
C: <command>
|
778
|
+
C: <update>
|
779
|
+
C: <domain:update
|
780
|
+
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
781
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
|
782
|
+
C: domain-1.0.xsd">
|
783
|
+
|
784
|
+
|
785
|
+
|
786
|
+
Hollenbeck Standards Track [Page 14]
|
787
|
+
|
788
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
789
|
+
|
790
|
+
|
791
|
+
C: <domain:name>example.com</domain:name>
|
792
|
+
C: </domain:update>
|
793
|
+
C: </update>
|
794
|
+
C: <extension>
|
795
|
+
C: <secDNS:update
|
796
|
+
C: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
797
|
+
C: xsi:schemaLocation="urn:ietf:params:xml:ns:secDNS-1.0
|
798
|
+
C: secDNS-1.0.xsd">
|
799
|
+
C: <secDNS:chg>
|
800
|
+
C: <secDNS:dsData>
|
801
|
+
C: <secDNS:keyTag>12345</secDNS:keyTag>
|
802
|
+
C: <secDNS:alg>3</secDNS:alg>
|
803
|
+
C: <secDNS:digestType>1</secDNS:digestType>
|
804
|
+
C: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
|
805
|
+
C: <secDNS:maxSigLife>604800</secDNS:maxSigLife>
|
806
|
+
C: <secDNS:keyData>
|
807
|
+
C: <secDNS:flags>256</secDNS:flags>
|
808
|
+
C: <secDNS:protocol>3</secDNS:protocol>
|
809
|
+
C: <secDNS:alg>1</secDNS:alg>
|
810
|
+
C: <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
|
811
|
+
C: </secDNS:keyData>
|
812
|
+
C: </secDNS:dsData>
|
813
|
+
C: </secDNS:chg>
|
814
|
+
C: </secDNS:update>
|
815
|
+
C: </extension>
|
816
|
+
C: <clTRID>ABC-12345</clTRID>
|
817
|
+
C: </command>
|
818
|
+
C:</epp>
|
819
|
+
|
820
|
+
When an extended <update> command has been processed successfully,
|
821
|
+
the EPP response is as described in the EPP domain mapping [2]. A
|
822
|
+
server operator MUST return an EPP error result code of 2306 if an
|
823
|
+
urgent update (noted with an "urgent" attribute value of boolean
|
824
|
+
true) can not be completed with high priority.
|
825
|
+
|
826
|
+
4. Formal Syntax
|
827
|
+
|
828
|
+
An EPP object mapping is specified in XML Schema notation. The
|
829
|
+
formal syntax presented here is a complete schema representation of
|
830
|
+
the object mapping suitable for automated validation of EPP XML
|
831
|
+
instances. The BEGIN and END tags are not part of the schema; they
|
832
|
+
are used to note the beginning and ending of the schema for URI
|
833
|
+
registration purposes.
|
834
|
+
|
835
|
+
|
836
|
+
|
837
|
+
|
838
|
+
|
839
|
+
|
840
|
+
|
841
|
+
|
842
|
+
Hollenbeck Standards Track [Page 15]
|
843
|
+
|
844
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
845
|
+
|
846
|
+
|
847
|
+
BEGIN
|
848
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
849
|
+
|
850
|
+
<schema targetNamespace="urn:ietf:params:xml:ns:secDNS-1.0"
|
851
|
+
xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"
|
852
|
+
xmlns="http://www.w3.org/2001/XMLSchema"
|
853
|
+
elementFormDefault="qualified">
|
854
|
+
|
855
|
+
<annotation>
|
856
|
+
<documentation>
|
857
|
+
Extensible Provisioning Protocol v1.0
|
858
|
+
domain name extension schema for provisioning
|
859
|
+
DNS security (DNSSEC) extensions.
|
860
|
+
</documentation>
|
861
|
+
</annotation>
|
862
|
+
|
863
|
+
<!--
|
864
|
+
Child elements found in EPP commands.
|
865
|
+
-->
|
866
|
+
<element name="create" type="secDNS:dsType"/>
|
867
|
+
<element name="update" type="secDNS:updateType"/>
|
868
|
+
|
869
|
+
<!--
|
870
|
+
Child elements of the <create> command.
|
871
|
+
-->
|
872
|
+
<complexType name="dsType">
|
873
|
+
<sequence>
|
874
|
+
<element name="dsData" type="secDNS:dsDataType"
|
875
|
+
maxOccurs="unbounded"/>
|
876
|
+
</sequence>
|
877
|
+
</complexType>
|
878
|
+
|
879
|
+
<complexType name="dsDataType">
|
880
|
+
<sequence>
|
881
|
+
<element name="keyTag" type="unsignedShort"/>
|
882
|
+
<element name="alg" type="unsignedByte"/>
|
883
|
+
<element name="digestType" type="unsignedByte"/>
|
884
|
+
<element name="digest" type="hexBinary"/>
|
885
|
+
<element name="maxSigLife" type="secDNS:maxSigLifeType"
|
886
|
+
minOccurs="0"/>
|
887
|
+
<element name="keyData" type="secDNS:keyDataType"
|
888
|
+
minOccurs="0"/>
|
889
|
+
</sequence>
|
890
|
+
</complexType>
|
891
|
+
|
892
|
+
<simpleType name="maxSigLifeType">
|
893
|
+
<restriction base="int">
|
894
|
+
<minInclusive value="1"/>
|
895
|
+
|
896
|
+
|
897
|
+
|
898
|
+
Hollenbeck Standards Track [Page 16]
|
899
|
+
|
900
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
901
|
+
|
902
|
+
|
903
|
+
</restriction>
|
904
|
+
</simpleType>
|
905
|
+
|
906
|
+
<complexType name="keyDataType">
|
907
|
+
<sequence>
|
908
|
+
<element name="flags" type="unsignedShort"/>
|
909
|
+
<element name="protocol" type="unsignedByte"/>
|
910
|
+
<element name="alg" type="unsignedByte"/>
|
911
|
+
<element name="pubKey" type="secDNS:keyType"/>
|
912
|
+
</sequence>
|
913
|
+
</complexType>
|
914
|
+
|
915
|
+
<simpleType name="keyType">
|
916
|
+
<restriction base="base64Binary">
|
917
|
+
<minLength value="1"/>
|
918
|
+
</restriction>
|
919
|
+
</simpleType>
|
920
|
+
|
921
|
+
<!--
|
922
|
+
Child elements of the <update> command.
|
923
|
+
-->
|
924
|
+
<complexType name="updateType">
|
925
|
+
<choice>
|
926
|
+
<element name="add" type="secDNS:dsType"/>
|
927
|
+
<element name="chg" type="secDNS:dsType"/>
|
928
|
+
<element name="rem" type="secDNS:remType"/>
|
929
|
+
</choice>
|
930
|
+
<attribute name="urgent" type="boolean" default="false"/>
|
931
|
+
</complexType>
|
932
|
+
|
933
|
+
<complexType name="remType">
|
934
|
+
<sequence>
|
935
|
+
<element name="keyTag" type="unsignedShort"
|
936
|
+
maxOccurs="unbounded"/>
|
937
|
+
</sequence>
|
938
|
+
</complexType>
|
939
|
+
|
940
|
+
<!--
|
941
|
+
Child response elements.
|
942
|
+
-->
|
943
|
+
<element name="infData" type="secDNS:dsType"/>
|
944
|
+
|
945
|
+
<!--
|
946
|
+
End of schema.
|
947
|
+
-->
|
948
|
+
</schema>
|
949
|
+
END
|
950
|
+
|
951
|
+
|
952
|
+
|
953
|
+
|
954
|
+
Hollenbeck Standards Track [Page 17]
|
955
|
+
|
956
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
957
|
+
|
958
|
+
|
959
|
+
5. Internationalization Considerations
|
960
|
+
|
961
|
+
EPP is represented in XML, which provides native support for encoding
|
962
|
+
information using the Unicode character set and its more compact
|
963
|
+
representations including UTF-8 [14]. Conformant XML processors
|
964
|
+
recognize both UTF-8 and UTF-16 [15]. Though XML includes provisions
|
965
|
+
to identify and use other character encodings through use of an
|
966
|
+
"encoding" attribute in an <?xml?> declaration, use of UTF-8 is
|
967
|
+
RECOMMENDED in environments where parser encoding support
|
968
|
+
incompatibility exists.
|
969
|
+
|
970
|
+
As an extension of the EPP domain mapping [2], the elements, element
|
971
|
+
content, attributes, and attribute values described in this document
|
972
|
+
MUST inherit the internationalization conventions used to represent
|
973
|
+
higher-layer domain and core protocol structures present in an XML
|
974
|
+
instance that includes this extension.
|
975
|
+
|
976
|
+
6. IANA Considerations
|
977
|
+
|
978
|
+
This document uses URNs to describe XML namespaces and XML schemas
|
979
|
+
conforming to a registry mechanism described in RFC 3688 [10]. Two
|
980
|
+
URI assignments have been completed by the IANA.
|
981
|
+
|
982
|
+
Registration request for the extension namespace:
|
983
|
+
|
984
|
+
URI: urn:ietf:params:xml:ns:secDNS-1.0
|
985
|
+
|
986
|
+
Registrant Contact: IESG
|
987
|
+
|
988
|
+
XML: None. Namespace URIs do not represent an XML specification.
|
989
|
+
|
990
|
+
Registration request for the extension XML schema:
|
991
|
+
|
992
|
+
URI: urn:ietf:params:xml:schema:secDNS-1.0
|
993
|
+
|
994
|
+
Registrant Contact: IESG
|
995
|
+
|
996
|
+
XML: See the "Formal Syntax" section of this document.
|
997
|
+
|
998
|
+
7. Security Considerations
|
999
|
+
|
1000
|
+
The mapping extensions described in this document do not provide any
|
1001
|
+
security services beyond those described by EPP [1], the EPP domain
|
1002
|
+
name mapping [2], and protocol layers used by EPP. The security
|
1003
|
+
considerations described in these other specifications apply to this
|
1004
|
+
specification as well.
|
1005
|
+
|
1006
|
+
|
1007
|
+
|
1008
|
+
|
1009
|
+
|
1010
|
+
Hollenbeck Standards Track [Page 18]
|
1011
|
+
|
1012
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
1013
|
+
|
1014
|
+
|
1015
|
+
As with other domain object transforms, the EPP transform operations
|
1016
|
+
described in this document MUST be restricted to the sponsoring
|
1017
|
+
client as authenticated using the mechanisms described in sections
|
1018
|
+
2.9.1.1 and 7 of RFC 3730 [1]. Any attempt to perform a transform
|
1019
|
+
operation on a domain object by any client other than the sponsoring
|
1020
|
+
client MUST be rejected with an appropriate EPP authorization error.
|
1021
|
+
|
1022
|
+
The provisioning service described in this document involves the
|
1023
|
+
exchange of information that can have an operational impact on the
|
1024
|
+
DNS. A trust relationship MUST exist between the EPP client and
|
1025
|
+
server, and provisioning of public key information MUST only be done
|
1026
|
+
after the identities of both parties have been confirmed using a
|
1027
|
+
strong authentication mechanism.
|
1028
|
+
|
1029
|
+
An EPP client might be acting as an agent for a zone administrator
|
1030
|
+
who wants to send delegation information to be signed and published
|
1031
|
+
by the server operator. Man-in-the-middle attacks are thus possible
|
1032
|
+
as a result of direct client activity or inadvertent client data
|
1033
|
+
manipulation.
|
1034
|
+
|
1035
|
+
Acceptance of a false key by a server operator can produce
|
1036
|
+
significant operational consequences. The child and parent zones
|
1037
|
+
MUST be consistent to secure the delegation properly. In the absence
|
1038
|
+
of consistent signatures, the delegation will not appear in the
|
1039
|
+
secure name space, yielding untrustworthy query responses. If a key
|
1040
|
+
is compromised, a client can either remove the compromised
|
1041
|
+
information or update the delegation information via EPP commands
|
1042
|
+
using the "urgent" attribute.
|
1043
|
+
|
1044
|
+
Operational scenarios requiring quick removal of a secure domain
|
1045
|
+
delegation can be implemented using a two-step process. First,
|
1046
|
+
security credentials can be removed using an "urgent" update as just
|
1047
|
+
described. The domain can then be removed from the parent zone by
|
1048
|
+
changing the status of the domain to either of the EPP "clientHold"
|
1049
|
+
or "serverHold" domain status values. The domain can also be removed
|
1050
|
+
from the zone using the EPP <delete> command, but this is a more
|
1051
|
+
drastic step that needs to be considered carefully before use.
|
1052
|
+
|
1053
|
+
Data validity checking at the server requires computational
|
1054
|
+
resources. A purposeful or inadvertent denial-of-service attack is
|
1055
|
+
possible if a client requests some number of update operations that
|
1056
|
+
exceed a server's processing capabilities. Server operators SHOULD
|
1057
|
+
take steps to manage command load and command processing requirements
|
1058
|
+
to minimize the risk of a denial-of-service attack.
|
1059
|
+
|
1060
|
+
The signature lifetime values provided by clients are requests that
|
1061
|
+
can be rejected. Blind acceptance by a server operator can have an
|
1062
|
+
adverse impact on a server's processing capabilities. Server
|
1063
|
+
|
1064
|
+
|
1065
|
+
|
1066
|
+
Hollenbeck Standards Track [Page 19]
|
1067
|
+
|
1068
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
1069
|
+
|
1070
|
+
|
1071
|
+
operators SHOULD seriously consider adopting implementation rules to
|
1072
|
+
limit the range of acceptable signature lifetime values to counter
|
1073
|
+
potential adverse situations.
|
1074
|
+
|
1075
|
+
8. Acknowledgements
|
1076
|
+
|
1077
|
+
The author would like to thank the following people who have provided
|
1078
|
+
significant contributions to the development of this document:
|
1079
|
+
|
1080
|
+
David Blacka, Olafur Gudmundsson, Mark Kosters, Ed Lewis, Dan Massey,
|
1081
|
+
Marcos Sanz, Sam Weiler, and Ning Zhang.
|
1082
|
+
|
1083
|
+
9. References
|
1084
|
+
|
1085
|
+
9.1. Normative References
|
1086
|
+
|
1087
|
+
[1] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
|
1088
|
+
RFC 3730, March 2004.
|
1089
|
+
|
1090
|
+
[2] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Domain
|
1091
|
+
Name Mapping", RFC 3731, March 2004.
|
1092
|
+
|
1093
|
+
[3] Paoli, J., Sperberg-McQueen, C., Bray, T., and E. Maler,
|
1094
|
+
"Extensible Markup Language (XML) 1.0 (Second Edition)", W3C
|
1095
|
+
FirstEdition REC-xml-20001006, October 2000.
|
1096
|
+
|
1097
|
+
[4] Maloney, M., Beech, D., Mendelsohn, N., and H. Thompson, "XML
|
1098
|
+
Schema Part 1: Structures", W3C REC REC-xmlschema-1-20010502,
|
1099
|
+
May 2001.
|
1100
|
+
|
1101
|
+
[5] Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes", W3C
|
1102
|
+
REC REC-xmlschema-2-20010502, May 2001.
|
1103
|
+
|
1104
|
+
[6] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
|
1105
|
+
"Resource Records for the DNS Security Extensions", RFC 4034,
|
1106
|
+
March 2005.
|
1107
|
+
|
1108
|
+
[7] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
|
1109
|
+
"Protocol Modifications for the DNS Security Extensions",
|
1110
|
+
RFC 4035, March 2005.
|
1111
|
+
|
1112
|
+
[8] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
1113
|
+
Levels", BCP 14, RFC 2119, March 1997.
|
1114
|
+
|
1115
|
+
[9] Kolkman, O., Schlyter, J., and E. Lewis, "Domain Name System
|
1116
|
+
KEY (DNSKEY) Resource Record (RR) Secure Entry Point (SEP)
|
1117
|
+
Flag", RFC 3757, April 2004.
|
1118
|
+
|
1119
|
+
|
1120
|
+
|
1121
|
+
|
1122
|
+
Hollenbeck Standards Track [Page 20]
|
1123
|
+
|
1124
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
1125
|
+
|
1126
|
+
|
1127
|
+
[10] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
|
1128
|
+
January 2004.
|
1129
|
+
|
1130
|
+
9.2. Informative References
|
1131
|
+
|
1132
|
+
[11] Mockapetris, P., "Domain names - concepts and facilities",
|
1133
|
+
STD 13, RFC 1034, November 1987.
|
1134
|
+
|
1135
|
+
[12] Mockapetris, P., "Domain names - implementation and
|
1136
|
+
specification", STD 13, RFC 1035, November 1987.
|
1137
|
+
|
1138
|
+
[13] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
|
1139
|
+
"DNS Security Introduction and Requirements", RFC 4033,
|
1140
|
+
March 2005.
|
1141
|
+
|
1142
|
+
[14] Yergeau, F., "UTF-8, a transformation format of ISO 10646",
|
1143
|
+
STD 63, RFC 3629, November 2003.
|
1144
|
+
|
1145
|
+
[15] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO 10646",
|
1146
|
+
RFC 2781, February 2000.
|
1147
|
+
|
1148
|
+
Author's Address
|
1149
|
+
|
1150
|
+
Scott Hollenbeck
|
1151
|
+
VeriSign, Inc.
|
1152
|
+
21345 Ridgetop Circle
|
1153
|
+
Dulles, VA 20166-6503
|
1154
|
+
US
|
1155
|
+
|
1156
|
+
EMail: shollenbeck@verisign.com
|
1157
|
+
|
1158
|
+
|
1159
|
+
|
1160
|
+
|
1161
|
+
|
1162
|
+
|
1163
|
+
|
1164
|
+
|
1165
|
+
|
1166
|
+
|
1167
|
+
|
1168
|
+
|
1169
|
+
|
1170
|
+
|
1171
|
+
|
1172
|
+
|
1173
|
+
|
1174
|
+
|
1175
|
+
|
1176
|
+
|
1177
|
+
|
1178
|
+
Hollenbeck Standards Track [Page 21]
|
1179
|
+
|
1180
|
+
RFC 4310 EPP DNS Security Extensions Mapping November 2005
|
1181
|
+
|
1182
|
+
|
1183
|
+
Full Copyright Statement
|
1184
|
+
|
1185
|
+
Copyright (C) The Internet Society (2005).
|
1186
|
+
|
1187
|
+
This document is subject to the rights, licenses and restrictions
|
1188
|
+
contained in BCP 78, and except as set forth therein, the authors
|
1189
|
+
retain all their rights.
|
1190
|
+
|
1191
|
+
This document and the information contained herein are provided on an
|
1192
|
+
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
|
1193
|
+
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
|
1194
|
+
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
|
1195
|
+
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
|
1196
|
+
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
1197
|
+
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
1198
|
+
|
1199
|
+
Intellectual Property
|
1200
|
+
|
1201
|
+
The IETF takes no position regarding the validity or scope of any
|
1202
|
+
Intellectual Property Rights or other rights that might be claimed to
|
1203
|
+
pertain to the implementation or use of the technology described in
|
1204
|
+
this document or the extent to which any license under such rights
|
1205
|
+
might or might not be available; nor does it represent that it has
|
1206
|
+
made any independent effort to identify any such rights. Information
|
1207
|
+
on the procedures with respect to rights in RFC documents can be
|
1208
|
+
found in BCP 78 and BCP 79.
|
1209
|
+
|
1210
|
+
Copies of IPR disclosures made to the IETF Secretariat and any
|
1211
|
+
assurances of licenses to be made available, or the result of an
|
1212
|
+
attempt made to obtain a general license or permission for the use of
|
1213
|
+
such proprietary rights by implementers or users of this
|
1214
|
+
specification can be obtained from the IETF on-line IPR repository at
|
1215
|
+
http://www.ietf.org/ipr.
|
1216
|
+
|
1217
|
+
The IETF invites any interested party to bring to its attention any
|
1218
|
+
copyrights, patents or patent applications, or other proprietary
|
1219
|
+
rights that may cover technology that may be required to implement
|
1220
|
+
this standard. Please address the information to the IETF at ietf-
|
1221
|
+
ipr@ietf.org.
|
1222
|
+
|
1223
|
+
Acknowledgement
|
1224
|
+
|
1225
|
+
Funding for the RFC Editor function is currently provided by the
|
1226
|
+
Internet Society.
|
1227
|
+
|
1228
|
+
|
1229
|
+
|
1230
|
+
|
1231
|
+
|
1232
|
+
|
1233
|
+
|
1234
|
+
Hollenbeck Standards Track [Page 22]
|
1235
|
+
|