~andreserl/ubuntu/lucid/bind9/bind9-apport-533601

« back to all changes in this revision

Viewing changes to doc/rfc/rfc4035.txt

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones, LaMont Jones, Internet Software Consortium, Inc, localization folks
  • Date: 2008-08-02 14:20:20 UTC
  • mfrom: (1.2.1 upstream) (6.1.24 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080802142020-l1hon9jy8lbbjxmg
[LaMont Jones]

* default to using resolvconf if it is installed
* fix sonames and dependencies.  Closes: #149259, #492418
* Do not build-depend libcap2-dev on non-linux.  Closes: #493392
* drop unused query-loc manpage.  Closes: #492564
* lwresd: Deliver /etc/bind directory.  Closes: #490027
* fix query-source comment in default install

[Internet Software Consortium, Inc]

* 9.5.0-P2.  Closes: #492949

[localization folks]

* l10n: Spanish debconf translation.  Closes: #492425 (Ignacio Mondino)
* l10n: Swedish debconf templates.  Closes: #491369 (Martin Ågren)
* l10n: Japanese debconf translations.  Closes: #492048 (Hideki Yamane
  (Debian-JP))
* l10n: Finnish translation.  Closes: #490630 (Esko Arajärvi)
* l10n: Italian debconf translations.  Closes: #492587 (Alessandro Vietta)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
 
3
 
 
4
 
 
5
 
 
6
 
 
7
 
Network Working Group                                          R. Arends
8
 
Request for Comments: 4035                          Telematica Instituut
9
 
Obsoletes: 2535, 3008, 3090, 3445, 3655, 3658,                R. Austein
10
 
           3755, 3757, 3845                                          ISC
11
 
Updates: 1034, 1035, 2136, 2181, 2308, 3225,                   M. Larson
12
 
         3007, 3597, 3226                                       VeriSign
13
 
Category: Standards Track                                      D. Massey
14
 
                                               Colorado State University
15
 
                                                                 S. Rose
16
 
                                                                    NIST
17
 
                                                              March 2005
18
 
 
19
 
 
20
 
         Protocol Modifications for the DNS Security Extensions
21
 
 
22
 
Status of This Memo
23
 
 
24
 
   This document specifies an Internet standards track protocol for the
25
 
   Internet community, and requests discussion and suggestions for
26
 
   improvements.  Please refer to the current edition of the "Internet
27
 
   Official Protocol Standards" (STD 1) for the standardization state
28
 
   and status of this protocol.  Distribution of this memo is unlimited.
29
 
 
30
 
Copyright Notice
31
 
 
32
 
   Copyright (C) The Internet Society (2005).
33
 
 
34
 
Abstract
35
 
 
36
 
   This document is part of a family of documents that describe the DNS
37
 
   Security Extensions (DNSSEC).  The DNS Security Extensions are a
38
 
   collection of new resource records and protocol modifications that
39
 
   add data origin authentication and data integrity to the DNS.  This
40
 
   document describes the DNSSEC protocol modifications.  This document
41
 
   defines the concept of a signed zone, along with the requirements for
42
 
   serving and resolving by using DNSSEC.  These techniques allow a
43
 
   security-aware resolver to authenticate both DNS resource records and
44
 
   authoritative DNS error indications.
45
 
 
46
 
   This document obsoletes RFC 2535 and incorporates changes from all
47
 
   updates to RFC 2535.
48
 
 
49
 
 
50
 
 
51
 
 
52
 
 
53
 
 
54
 
 
55
 
 
56
 
 
57
 
 
58
 
Arends, et al.              Standards Track                     [Page 1]
59
 
 
60
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
61
 
 
62
 
 
63
 
Table of Contents
64
 
 
65
 
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
66
 
       1.1.  Background and Related Documents . . . . . . . . . . . .  4
67
 
       1.2.  Reserved Words . . . . . . . . . . . . . . . . . . . . .  4
68
 
   2.  Zone Signing . . . . . . . . . . . . . . . . . . . . . . . . .  4
69
 
       2.1.  Including DNSKEY RRs in a Zone . . . . . . . . . . . . .  5
70
 
       2.2.  Including RRSIG RRs in a Zone  . . . . . . . . . . . . .  5
71
 
       2.3.  Including NSEC RRs in a Zone . . . . . . . . . . . . . .  6
72
 
       2.4.  Including DS RRs in a Zone . . . . . . . . . . . . . . .  7
73
 
       2.5.  Changes to the CNAME Resource Record.  . . . . . . . . .  7
74
 
       2.6.  DNSSEC RR Types Appearing at Zone Cuts.  . . . . . . . .  8
75
 
       2.7.  Example of a Secure Zone . . . . . . . . . . . . . . . .  8
76
 
   3.  Serving  . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
77
 
       3.1.  Authoritative Name Servers . . . . . . . . . . . . . . .  9
78
 
             3.1.1.  Including RRSIG RRs in a Response  . . . . . . . 10
79
 
             3.1.2.  Including DNSKEY RRs in a Response . . . . . . . 11
80
 
             3.1.3.  Including NSEC RRs in a Response . . . . . . . . 11
81
 
             3.1.4.  Including DS RRs in a Response . . . . . . . . . 14
82
 
             3.1.5.  Responding to Queries for Type AXFR or IXFR  . . 15
83
 
             3.1.6.  The AD and CD Bits in an Authoritative Response. 16
84
 
       3.2.  Recursive Name Servers . . . . . . . . . . . . . . . . . 17
85
 
             3.2.1.  The DO Bit . . . . . . . . . . . . . . . . . . . 17
86
 
             3.2.2.  The CD Bit . . . . . . . . . . . . . . . . . . . 17
87
 
             3.2.3.  The AD Bit . . . . . . . . . . . . . . . . . . . 18
88
 
       3.3.  Example DNSSEC Responses . . . . . . . . . . . . . . . . 19
89
 
   4.  Resolving  . . . . . . . . . . . . . . . . . . . . . . . . . . 19
90
 
       4.1.  EDNS Support . . . . . . . . . . . . . . . . . . . . . . 19
91
 
       4.2.  Signature Verification Support . . . . . . . . . . . . . 19
92
 
       4.3.  Determining Security Status of Data  . . . . . . . . . . 20
93
 
       4.4.  Configured Trust Anchors . . . . . . . . . . . . . . . . 21
94
 
       4.5.  Response Caching . . . . . . . . . . . . . . . . . . . . 21
95
 
       4.6.  Handling of the CD and AD Bits . . . . . . . . . . . . . 22
96
 
       4.7.  Caching BAD Data . . . . . . . . . . . . . . . . . . . . 22
97
 
       4.8.  Synthesized CNAMEs . . . . . . . . . . . . . . . . . . . 23
98
 
       4.9.  Stub Resolvers . . . . . . . . . . . . . . . . . . . . . 23
99
 
             4.9.1.  Handling of the DO Bit . . . . . . . . . . . . . 24
100
 
             4.9.2.  Handling of the CD Bit . . . . . . . . . . . . . 24
101
 
             4.9.3.  Handling of the AD Bit . . . . . . . . . . . . . 24
102
 
   5.  Authenticating DNS Responses . . . . . . . . . . . . . . . . . 25
103
 
       5.1.  Special Considerations for Islands of Security . . . . . 26
104
 
       5.2.  Authenticating Referrals . . . . . . . . . . . . . . . . 26
105
 
       5.3.  Authenticating an RRset with an RRSIG RR . . . . . . . . 28
106
 
             5.3.1.  Checking the RRSIG RR Validity . . . . . . . . . 28
107
 
             5.3.2.  Reconstructing the Signed Data . . . . . . . . . 29
108
 
             5.3.3.  Checking the Signature . . . . . . . . . . . . . 31
109
 
             5.3.4.  Authenticating a Wildcard Expanded RRset
110
 
                     Positive Response. . . . . . . . . . . . . . . . 32
111
 
 
112
 
 
113
 
 
114
 
Arends, et al.              Standards Track                     [Page 2]
115
 
 
116
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
117
 
 
118
 
 
119
 
       5.4.  Authenticated Denial of Existence  . . . . . . . . . . . 32
120
 
       5.5.  Resolver Behavior When Signatures Do Not Validate  . . . 33
121
 
       5.6.  Authentication Example . . . . . . . . . . . . . . . . . 33
122
 
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 33
123
 
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 33
124
 
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 34
125
 
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 34
126
 
       9.1.  Normative References . . . . . . . . . . . . . . . . . . 34
127
 
       9.2.  Informative References . . . . . . . . . . . . . . . . . 35
128
 
   A.  Signed Zone Example  . . . . . . . . . . . . . . . . . . . . . 36
129
 
   B.  Example Responses  . . . . . . . . . . . . . . . . . . . . . . 41
130
 
       B.1.  Answer . . . . . . . . . . . . . . . . . . . . . . . . . 41
131
 
       B.2.  Name Error . . . . . . . . . . . . . . . . . . . . . . . 43
132
 
       B.3.  No Data Error  . . . . . . . . . . . . . . . . . . . . . 44
133
 
       B.4.  Referral to Signed Zone  . . . . . . . . . . . . . . . . 44
134
 
       B.5.  Referral to Unsigned Zone  . . . . . . . . . . . . . . . 45
135
 
       B.6.  Wildcard Expansion . . . . . . . . . . . . . . . . . . . 46
136
 
       B.7.  Wildcard No Data Error . . . . . . . . . . . . . . . . . 47
137
 
       B.8.  DS Child Zone No Data Error  . . . . . . . . . . . . . . 48
138
 
   C.  Authentication Examples  . . . . . . . . . . . . . . . . . . . 49
139
 
       C.1.  Authenticating an Answer . . . . . . . . . . . . . . . . 49
140
 
             C.1.1.  Authenticating the Example DNSKEY RR . . . . . . 49
141
 
       C.2.  Name Error . . . . . . . . . . . . . . . . . . . . . . . 50
142
 
       C.3.  No Data Error  . . . . . . . . . . . . . . . . . . . . . 50
143
 
       C.4.  Referral to Signed Zone  . . . . . . . . . . . . . . . . 50
144
 
       C.5.  Referral to Unsigned Zone  . . . . . . . . . . . . . . . 51
145
 
       C.6.  Wildcard Expansion . . . . . . . . . . . . . . . . . . . 51
146
 
       C.7.  Wildcard No Data Error . . . . . . . . . . . . . . . . . 51
147
 
       C.8.  DS Child Zone No Data Error  . . . . . . . . . . . . . . 51
148
 
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 52
149
 
   Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 53
150
 
 
151
 
1.  Introduction
152
 
 
153
 
   The DNS Security Extensions (DNSSEC) are a collection of new resource
154
 
   records and protocol modifications that add data origin
155
 
   authentication and data integrity to the DNS.  This document defines
156
 
   the DNSSEC protocol modifications.  Section 2 of this document
157
 
   defines the concept of a signed zone and lists the requirements for
158
 
   zone signing.  Section 3 describes the modifications to authoritative
159
 
   name server behavior necessary for handling signed zones.  Section 4
160
 
   describes the behavior of entities that include security-aware
161
 
   resolver functions.  Finally, Section 5 defines how to use DNSSEC RRs
162
 
   to authenticate a response.
163
 
 
164
 
 
165
 
 
166
 
 
167
 
 
168
 
 
169
 
 
170
 
Arends, et al.              Standards Track                     [Page 3]
171
 
 
172
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
173
 
 
174
 
 
175
 
1.1.  Background and Related Documents
176
 
 
177
 
   This document is part of a family of documents defining DNSSEC that
178
 
   should be read together as a set.
179
 
 
180
 
   [RFC4033] contains an introduction to DNSSEC and definitions of
181
 
   common terms; the reader is assumed to be familiar with this
182
 
   document.  [RFC4033] also contains a list of other documents updated
183
 
   by and obsoleted by this document set.
184
 
 
185
 
   [RFC4034] defines the DNSSEC resource records.
186
 
 
187
 
   The reader is also assumed to be familiar with the basic DNS concepts
188
 
   described in [RFC1034], [RFC1035], and the subsequent documents that
189
 
   update them; particularly, [RFC2181] and [RFC2308].
190
 
 
191
 
   This document defines the DNSSEC protocol operations.
192
 
 
193
 
1.2.  Reserved Words
194
 
 
195
 
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
196
 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
197
 
   document are to be interpreted as described in [RFC2119].
198
 
 
199
 
2.  Zone Signing
200
 
 
201
 
   DNSSEC introduces the concept of signed zones.  A signed zone
202
 
   includes DNS Public Key (DNSKEY), Resource Record Signature (RRSIG),
203
 
   Next Secure (NSEC), and (optionally) Delegation Signer (DS) records
204
 
   according to the rules specified in Sections 2.1, 2.2, 2.3, and 2.4,
205
 
   respectively.  A zone that does not include these records according
206
 
   to the rules in this section is an unsigned zone.
207
 
 
208
 
   DNSSEC requires a change to the definition of the CNAME resource
209
 
   record ([RFC1035]).  Section 2.5 changes the CNAME RR to allow RRSIG
210
 
   and NSEC RRs to appear at the same owner name as does a CNAME RR.
211
 
 
212
 
   DNSSEC specifies the placement of two new RR types, NSEC and DS,
213
 
   which can be placed at the parental side of a zone cut (that is, at a
214
 
   delegation point).  This is an exception to the general prohibition
215
 
   against putting data in the parent zone at a zone cut.  Section 2.6
216
 
   describes this change.
217
 
 
218
 
 
219
 
 
220
 
 
221
 
 
222
 
 
223
 
 
224
 
 
225
 
 
226
 
Arends, et al.              Standards Track                     [Page 4]
227
 
 
228
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
229
 
 
230
 
 
231
 
2.1.  Including DNSKEY RRs in a Zone
232
 
 
233
 
   To sign a zone, the zone's administrator generates one or more
234
 
   public/private key pairs and uses the private key(s) to sign
235
 
   authoritative RRsets in the zone.  For each private key used to
236
 
   create RRSIG RRs in a zone, the zone SHOULD include a zone DNSKEY RR
237
 
   containing the corresponding public key.  A zone key DNSKEY RR MUST
238
 
   have the Zone Key bit of the flags RDATA field set (see Section 2.1.1
239
 
   of [RFC4034]).  Public keys associated with other DNS operations MAY
240
 
   be stored in DNSKEY RRs that are not marked as zone keys but MUST NOT
241
 
   be used to verify RRSIGs.
242
 
 
243
 
   If the zone administrator intends a signed zone to be usable other
244
 
   than as an island of security, the zone apex MUST contain at least
245
 
   one DNSKEY RR to act as a secure entry point into the zone.  This
246
 
   secure entry point could then be used as the target of a secure
247
 
   delegation via a corresponding DS RR in the parent zone (see
248
 
   [RFC4034]).
249
 
 
250
 
2.2.  Including RRSIG RRs in a Zone
251
 
 
252
 
   For each authoritative RRset in a signed zone, there MUST be at least
253
 
   one RRSIG record that meets the following requirements:
254
 
 
255
 
   o  The RRSIG owner name is equal to the RRset owner name.
256
 
 
257
 
   o  The RRSIG class is equal to the RRset class.
258
 
 
259
 
   o  The RRSIG Type Covered field is equal to the RRset type.
260
 
 
261
 
   o  The RRSIG Original TTL field is equal to the TTL of the RRset.
262
 
 
263
 
   o  The RRSIG RR's TTL is equal to the TTL of the RRset.
264
 
 
265
 
   o  The RRSIG Labels field is equal to the number of labels in the
266
 
      RRset owner name, not counting the null root label and not
267
 
      counting the leftmost label if it is a wildcard.
268
 
 
269
 
   o  The RRSIG Signer's Name field is equal to the name of the zone
270
 
      containing the RRset.
271
 
 
272
 
   o  The RRSIG Algorithm, Signer's Name, and Key Tag fields identify a
273
 
      zone key DNSKEY record at the zone apex.
274
 
 
275
 
   The process for constructing the RRSIG RR for a given RRset is
276
 
   described in [RFC4034].  An RRset MAY have multiple RRSIG RRs
277
 
   associated with it.  Note that as RRSIG RRs are closely tied to the
278
 
   RRsets whose signatures they contain, RRSIG RRs, unlike all other DNS
279
 
 
280
 
 
281
 
 
282
 
Arends, et al.              Standards Track                     [Page 5]
283
 
 
284
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
285
 
 
286
 
 
287
 
   RR types, do not form RRsets.  In particular, the TTL values among
288
 
   RRSIG RRs with a common owner name do not follow the RRset rules
289
 
   described in [RFC2181].
290
 
 
291
 
   An RRSIG RR itself MUST NOT be signed, as signing an RRSIG RR would
292
 
   add no value and would create an infinite loop in the signing
293
 
   process.
294
 
 
295
 
   The NS RRset that appears at the zone apex name MUST be signed, but
296
 
   the NS RRsets that appear at delegation points (that is, the NS
297
 
   RRsets in the parent zone that delegate the name to the child zone's
298
 
   name servers) MUST NOT be signed.  Glue address RRsets associated
299
 
   with delegations MUST NOT be signed.
300
 
 
301
 
   There MUST be an RRSIG for each RRset using at least one DNSKEY of
302
 
   each algorithm in the zone apex DNSKEY RRset.  The apex DNSKEY RRset
303
 
   itself MUST be signed by each algorithm appearing in the DS RRset
304
 
   located at the delegating parent (if any).
305
 
 
306
 
2.3.  Including NSEC RRs in a Zone
307
 
 
308
 
   Each owner name in the zone that has authoritative data or a
309
 
   delegation point NS RRset MUST have an NSEC resource record.  The
310
 
   format of NSEC RRs and the process for constructing the NSEC RR for a
311
 
   given name is described in [RFC4034].
312
 
 
313
 
   The TTL value for any NSEC RR SHOULD be the same as the minimum TTL
314
 
   value field in the zone SOA RR.
315
 
 
316
 
   An NSEC record (and its associated RRSIG RRset) MUST NOT be the only
317
 
   RRset at any particular owner name.  That is, the signing process
318
 
   MUST NOT create NSEC or RRSIG RRs for owner name nodes that were not
319
 
   the owner name of any RRset before the zone was signed.  The main
320
 
   reasons for this are a desire for namespace consistency between
321
 
   signed and unsigned versions of the same zone and a desire to reduce
322
 
   the risk of response inconsistency in security oblivious recursive
323
 
   name servers.
324
 
 
325
 
   The type bitmap of every NSEC resource record in a signed zone MUST
326
 
   indicate the presence of both the NSEC record itself and its
327
 
   corresponding RRSIG record.
328
 
 
329
 
   The difference between the set of owner names that require RRSIG
330
 
   records and the set of owner names that require NSEC records is
331
 
   subtle and worth highlighting.  RRSIG records are present at the
332
 
   owner names of all authoritative RRsets.  NSEC records are present at
333
 
   the owner names of all names for which the signed zone is
334
 
   authoritative and also at the owner names of delegations from the
335
 
 
336
 
 
337
 
 
338
 
Arends, et al.              Standards Track                     [Page 6]
339
 
 
340
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
341
 
 
342
 
 
343
 
   signed zone to its children.  Neither NSEC nor RRSIG records are
344
 
   present (in the parent zone) at the owner names of glue address
345
 
   RRsets.  Note, however, that this distinction is for the most part
346
 
   visible only during the zone signing process, as NSEC RRsets are
347
 
   authoritative data and are therefore signed.  Thus, any owner name
348
 
   that has an NSEC RRset will have RRSIG RRs as well in the signed
349
 
   zone.
350
 
 
351
 
   The bitmap for the NSEC RR at a delegation point requires special
352
 
   attention.  Bits corresponding to the delegation NS RRset and any
353
 
   RRsets for which the parent zone has authoritative data MUST be set;
354
 
   bits corresponding to any non-NS RRset for which the parent is not
355
 
   authoritative MUST be clear.
356
 
 
357
 
2.4.  Including DS RRs in a Zone
358
 
 
359
 
   The DS resource record establishes authentication chains between DNS
360
 
   zones.  A DS RRset SHOULD be present at a delegation point when the
361
 
   child zone is signed.  The DS RRset MAY contain multiple records,
362
 
   each referencing a public key in the child zone used to verify the
363
 
   RRSIGs in that zone.  All DS RRsets in a zone MUST be signed, and DS
364
 
   RRsets MUST NOT appear at a zone's apex.
365
 
 
366
 
   A DS RR SHOULD point to a DNSKEY RR that is present in the child's
367
 
   apex DNSKEY RRset, and the child's apex DNSKEY RRset SHOULD be signed
368
 
   by the corresponding private key.  DS RRs that fail to meet these
369
 
   conditions are not useful for validation, but because the DS RR and
370
 
   its corresponding DNSKEY RR are in different zones, and because the
371
 
   DNS is only loosely consistent, temporary mismatches can occur.
372
 
 
373
 
   The TTL of a DS RRset SHOULD match the TTL of the delegating NS RRset
374
 
   (that is, the NS RRset from the same zone containing the DS RRset).
375
 
 
376
 
   Construction of a DS RR requires knowledge of the corresponding
377
 
   DNSKEY RR in the child zone, which implies communication between the
378
 
   child and parent zones.  This communication is an operational matter
379
 
   not covered by this document.
380
 
 
381
 
2.5.  Changes to the CNAME Resource Record
382
 
 
383
 
   If a CNAME RRset is present at a name in a signed zone, appropriate
384
 
   RRSIG and NSEC RRsets are REQUIRED at that name.  A KEY RRset at that
385
 
   name for secure dynamic update purposes is also allowed ([RFC3007]).
386
 
   Other types MUST NOT be present at that name.
387
 
 
388
 
   This is a modification to the original CNAME definition given in
389
 
   [RFC1034].  The original definition of the CNAME RR did not allow any
390
 
   other types to coexist with a CNAME record, but a signed zone
391
 
 
392
 
 
393
 
 
394
 
Arends, et al.              Standards Track                     [Page 7]
395
 
 
396
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
397
 
 
398
 
 
399
 
   requires NSEC and RRSIG RRs for every authoritative name.  To resolve
400
 
   this conflict, this specification modifies the definition of the
401
 
   CNAME resource record to allow it to coexist with NSEC and RRSIG RRs.
402
 
 
403
 
2.6.  DNSSEC RR Types Appearing at Zone Cuts
404
 
 
405
 
   DNSSEC introduced two new RR types that are unusual in that they can
406
 
   appear at the parental side of a zone cut.  At the parental side of a
407
 
   zone cut (that is, at a delegation point), NSEC RRs are REQUIRED at
408
 
   the owner name.  A DS RR could also be present if the zone being
409
 
   delegated is signed and seeks to have a chain of authentication to
410
 
   the parent zone.  This is an exception to the original DNS
411
 
   specification ([RFC1034]), which states that only NS RRsets could
412
 
   appear at the parental side of a zone cut.
413
 
 
414
 
   This specification updates the original DNS specification to allow
415
 
   NSEC and DS RR types at the parent side of a zone cut.  These RRsets
416
 
   are authoritative for the parent when they appear at the parent side
417
 
   of a zone cut.
418
 
 
419
 
2.7.  Example of a Secure Zone
420
 
 
421
 
   Appendix A shows a complete example of a small signed zone.
422
 
 
423
 
3.  Serving
424
 
 
425
 
   This section describes the behavior of entities that include
426
 
   security-aware name server functions.  In many cases such functions
427
 
   will be part of a security-aware recursive name server, but a
428
 
   security-aware authoritative name server has some of the same
429
 
   requirements.  Functions specific to security-aware recursive name
430
 
   servers are described in Section 3.2; functions specific to
431
 
   authoritative servers are described in Section 3.1.
432
 
 
433
 
   In the following discussion, the terms "SNAME", "SCLASS", and "STYPE"
434
 
   are as used in [RFC1034].
435
 
 
436
 
   A security-aware name server MUST support the EDNS0 ([RFC2671])
437
 
   message size extension, MUST support a message size of at least 1220
438
 
   octets, and SHOULD support a message size of 4000 octets.  As IPv6
439
 
   packets can only be fragmented by the source host, a security aware
440
 
   name server SHOULD take steps to ensure that UDP datagrams it
441
 
   transmits over IPv6 are fragmented, if necessary, at the minimum IPv6
442
 
   MTU, unless the path MTU is known.  Please see [RFC1122], [RFC2460],
443
 
   and [RFC3226] for further discussion of packet size and fragmentation
444
 
   issues.
445
 
 
446
 
 
447
 
 
448
 
 
449
 
 
450
 
Arends, et al.              Standards Track                     [Page 8]
451
 
 
452
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
453
 
 
454
 
 
455
 
   A security-aware name server that receives a DNS query that does not
456
 
   include the EDNS OPT pseudo-RR or that has the DO bit clear MUST
457
 
   treat the RRSIG, DNSKEY, and NSEC RRs as it would any other RRset and
458
 
   MUST NOT perform any of the additional processing described below.
459
 
   Because the DS RR type has the peculiar property of only existing in
460
 
   the parent zone at delegation points, DS RRs always require some
461
 
   special processing, as described in Section 3.1.4.1.
462
 
 
463
 
   Security aware name servers that receive explicit queries for
464
 
   security RR types that match the content of more than one zone that
465
 
   it serves (for example, NSEC and RRSIG RRs above and below a
466
 
   delegation point where the server is authoritative for both zones)
467
 
   should behave self-consistently.  As long as the response is always
468
 
   consistent for each query to the name server, the name server MAY
469
 
   return one of the following:
470
 
 
471
 
   o  The above-delegation RRsets.
472
 
   o  The below-delegation RRsets.
473
 
   o  Both above and below-delegation RRsets.
474
 
   o  Empty answer section (no records).
475
 
   o  Some other response.
476
 
   o  An error.
477
 
 
478
 
   DNSSEC allocates two new bits in the DNS message header: the CD
479
 
   (Checking Disabled) bit and the AD (Authentic Data) bit.  The CD bit
480
 
   is controlled by resolvers; a security-aware name server MUST copy
481
 
   the CD bit from a query into the corresponding response.  The AD bit
482
 
   is controlled by name servers; a security-aware name server MUST
483
 
   ignore the setting of the AD bit in queries.  See Sections 3.1.6,
484
 
   3.2.2, 3.2.3, 4, and 4.9 for details on the behavior of these bits.
485
 
 
486
 
   A security aware name server that synthesizes CNAME RRs from DNAME
487
 
   RRs as described in [RFC2672] SHOULD NOT generate signatures for the
488
 
   synthesized CNAME RRs.
489
 
 
490
 
3.1.  Authoritative Name Servers
491
 
 
492
 
   Upon receiving a relevant query that has the EDNS ([RFC2671]) OPT
493
 
   pseudo-RR DO bit ([RFC3225]) set, a security-aware authoritative name
494
 
   server for a signed zone MUST include additional RRSIG, NSEC, and DS
495
 
   RRs, according to the following rules:
496
 
 
497
 
   o  RRSIG RRs that can be used to authenticate a response MUST be
498
 
      included in the response according to the rules in Section 3.1.1.
499
 
 
500
 
 
501
 
 
502
 
 
503
 
 
504
 
 
505
 
 
506
 
Arends, et al.              Standards Track                     [Page 9]
507
 
 
508
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
509
 
 
510
 
 
511
 
   o  NSEC RRs that can be used to provide authenticated denial of
512
 
      existence MUST be included in the response automatically according
513
 
      to the rules in Section 3.1.3.
514
 
 
515
 
   o  Either a DS RRset or an NSEC RR proving that no DS RRs exist MUST
516
 
      be included in referrals automatically according to the rules in
517
 
      Section 3.1.4.
518
 
 
519
 
   These rules only apply to responses where the semantics convey
520
 
   information about the presence or absence of resource records.  That
521
 
   is, these rules are not intended to rule out responses such as RCODE
522
 
   4 ("Not Implemented") or RCODE 5 ("Refused").
523
 
 
524
 
   DNSSEC does not change the DNS zone transfer protocol.  Section 3.1.5
525
 
   discusses zone transfer requirements.
526
 
 
527
 
3.1.1.  Including RRSIG RRs in a Response
528
 
 
529
 
   When responding to a query that has the DO bit set, a security-aware
530
 
   authoritative name server SHOULD attempt to send RRSIG RRs that a
531
 
   security-aware resolver can use to authenticate the RRsets in the
532
 
   response.  A name server SHOULD make every attempt to keep the RRset
533
 
   and its associated RRSIG(s) together in a response.  Inclusion of
534
 
   RRSIG RRs in a response is subject to the following rules:
535
 
 
536
 
   o  When placing a signed RRset in the Answer section, the name server
537
 
      MUST also place its RRSIG RRs in the Answer section.  The RRSIG
538
 
      RRs have a higher priority for inclusion than any other RRsets
539
 
      that may have to be included.  If space does not permit inclusion
540
 
      of these RRSIG RRs, the name server MUST set the TC bit.
541
 
 
542
 
   o  When placing a signed RRset in the Authority section, the name
543
 
      server MUST also place its RRSIG RRs in the Authority section.
544
 
      The RRSIG RRs have a higher priority for inclusion than any other
545
 
      RRsets that may have to be included.  If space does not permit
546
 
      inclusion of these RRSIG RRs, the name server MUST set the TC bit.
547
 
 
548
 
   o  When placing a signed RRset in the Additional section, the name
549
 
      server MUST also place its RRSIG RRs in the Additional section.
550
 
      If space does not permit inclusion of both the RRset and its
551
 
      associated RRSIG RRs, the name server MAY retain the RRset while
552
 
      dropping the RRSIG RRs.  If this happens, the name server MUST NOT
553
 
      set the TC bit solely because these RRSIG RRs didn't fit.
554
 
 
555
 
 
556
 
 
557
 
 
558
 
 
559
 
 
560
 
 
561
 
 
562
 
Arends, et al.              Standards Track                    [Page 10]
563
 
 
564
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
565
 
 
566
 
 
567
 
3.1.2.  Including DNSKEY RRs in a Response
568
 
 
569
 
   When responding to a query that has the DO bit set and that requests
570
 
   the SOA or NS RRs at the apex of a signed zone, a security-aware
571
 
   authoritative name server for that zone MAY return the zone apex
572
 
   DNSKEY RRset in the Additional section.  In this situation, the
573
 
   DNSKEY RRset and associated RRSIG RRs have lower priority than does
574
 
   any other information that would be placed in the additional section.
575
 
   The name server SHOULD NOT include the DNSKEY RRset unless there is
576
 
   enough space in the response message for both the DNSKEY RRset and
577
 
   its associated RRSIG RR(s).  If there is not enough space to include
578
 
   these DNSKEY and RRSIG RRs, the name server MUST omit them and MUST
579
 
   NOT set the TC bit solely because these RRs didn't fit (see Section
580
 
   3.1.1).
581
 
 
582
 
3.1.3.  Including NSEC RRs in a Response
583
 
 
584
 
   When responding to a query that has the DO bit set, a security-aware
585
 
   authoritative name server for a signed zone MUST include NSEC RRs in
586
 
   each of the following cases:
587
 
 
588
 
   No Data: The zone contains RRsets that exactly match <SNAME, SCLASS>
589
 
      but does not contain any RRsets that exactly match <SNAME, SCLASS,
590
 
      STYPE>.
591
 
 
592
 
   Name Error: The zone does not contain any RRsets that match <SNAME,
593
 
      SCLASS> either exactly or via wildcard name expansion.
594
 
 
595
 
   Wildcard Answer: The zone does not contain any RRsets that exactly
596
 
      match <SNAME, SCLASS> but does contain an RRset that matches
597
 
      <SNAME, SCLASS, STYPE> via wildcard name expansion.
598
 
 
599
 
   Wildcard No Data: The zone does not contain any RRsets that exactly
600
 
      match <SNAME, SCLASS> and does contain one or more RRsets that
601
 
      match <SNAME, SCLASS> via wildcard name expansion, but does not
602
 
      contain any RRsets that match <SNAME, SCLASS, STYPE> via wildcard
603
 
      name expansion.
604
 
 
605
 
   In each of these cases, the name server includes NSEC RRs in the
606
 
   response to prove that an exact match for <SNAME, SCLASS, STYPE> was
607
 
   not present in the zone and that the response that the name server is
608
 
   returning is correct given the data in the zone.
609
 
 
610
 
 
611
 
 
612
 
 
613
 
 
614
 
 
615
 
 
616
 
 
617
 
 
618
 
Arends, et al.              Standards Track                    [Page 11]
619
 
 
620
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
621
 
 
622
 
 
623
 
3.1.3.1.  Including NSEC RRs: No Data Response
624
 
 
625
 
   If the zone contains RRsets matching <SNAME, SCLASS> but contains no
626
 
   RRset matching <SNAME, SCLASS, STYPE>, then the name server MUST
627
 
   include the NSEC RR for <SNAME, SCLASS> along with its associated
628
 
   RRSIG RR(s) in the Authority section of the response (see Section
629
 
   3.1.1).  If space does not permit inclusion of the NSEC RR or its
630
 
   associated RRSIG RR(s), the name server MUST set the TC bit (see
631
 
   Section 3.1.1).
632
 
 
633
 
   Since the search name exists, wildcard name expansion does not apply
634
 
   to this query, and a single signed NSEC RR suffices to prove that the
635
 
   requested RR type does not exist.
636
 
 
637
 
3.1.3.2.  Including NSEC RRs: Name Error Response
638
 
 
639
 
   If the zone does not contain any RRsets matching <SNAME, SCLASS>
640
 
   either exactly or via wildcard name expansion, then the name server
641
 
   MUST include the following NSEC RRs in the Authority section, along
642
 
   with their associated RRSIG RRs:
643
 
 
644
 
   o  An NSEC RR proving that there is no exact match for <SNAME,
645
 
      SCLASS>.
646
 
 
647
 
   o  An NSEC RR proving that the zone contains no RRsets that would
648
 
      match <SNAME, SCLASS> via wildcard name expansion.
649
 
 
650
 
   In some cases, a single NSEC RR may prove both of these points.  If
651
 
   it does, the name server SHOULD only include the NSEC RR and its
652
 
   RRSIG RR(s) once in the Authority section.
653
 
 
654
 
   If space does not permit inclusion of these NSEC and RRSIG RRs, the
655
 
   name server MUST set the TC bit (see Section 3.1.1).
656
 
 
657
 
   The owner names of these NSEC and RRSIG RRs are not subject to
658
 
   wildcard name expansion when these RRs are included in the Authority
659
 
   section of the response.
660
 
 
661
 
   Note that this form of response includes cases in which SNAME
662
 
   corresponds to an empty non-terminal name within the zone (a name
663
 
   that is not the owner name for any RRset but that is the parent name
664
 
   of one or more RRsets).
665
 
 
666
 
3.1.3.3.  Including NSEC RRs: Wildcard Answer Response
667
 
 
668
 
   If the zone does not contain any RRsets that exactly match <SNAME,
669
 
   SCLASS> but does contain an RRset that matches <SNAME, SCLASS, STYPE>
670
 
   via wildcard name expansion, the name server MUST include the
671
 
 
672
 
 
673
 
 
674
 
Arends, et al.              Standards Track                    [Page 12]
675
 
 
676
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
677
 
 
678
 
 
679
 
   wildcard-expanded answer and the corresponding wildcard-expanded
680
 
   RRSIG RRs in the Answer section and MUST include in the Authority
681
 
   section an NSEC RR and associated RRSIG RR(s) proving that the zone
682
 
   does not contain a closer match for <SNAME, SCLASS>.  If space does
683
 
   not permit inclusion of the answer, NSEC and RRSIG RRs, the name
684
 
   server MUST set the TC bit (see Section 3.1.1).
685
 
 
686
 
3.1.3.4.  Including NSEC RRs: Wildcard No Data Response
687
 
 
688
 
   This case is a combination of the previous cases.  The zone does not
689
 
   contain an exact match for <SNAME, SCLASS>, and although the zone
690
 
   does contain RRsets that match <SNAME, SCLASS> via wildcard
691
 
   expansion, none of those RRsets matches STYPE.  The name server MUST
692
 
   include the following NSEC RRs in the Authority section, along with
693
 
   their associated RRSIG RRs:
694
 
 
695
 
   o  An NSEC RR proving that there are no RRsets matching STYPE at the
696
 
      wildcard owner name that matched <SNAME, SCLASS> via wildcard
697
 
      expansion.
698
 
 
699
 
   o  An NSEC RR proving that there are no RRsets in the zone that would
700
 
      have been a closer match for <SNAME, SCLASS>.
701
 
 
702
 
   In some cases, a single NSEC RR may prove both of these points.  If
703
 
   it does, the name server SHOULD only include the NSEC RR and its
704
 
   RRSIG RR(s) once in the Authority section.
705
 
 
706
 
   The owner names of these NSEC and RRSIG RRs are not subject to
707
 
   wildcard name expansion when these RRs are included in the Authority
708
 
   section of the response.
709
 
 
710
 
   If space does not permit inclusion of these NSEC and RRSIG RRs, the
711
 
   name server MUST set the TC bit (see Section 3.1.1).
712
 
 
713
 
3.1.3.5.  Finding the Right NSEC RRs
714
 
 
715
 
   As explained above, there are several situations in which a
716
 
   security-aware authoritative name server has to locate an NSEC RR
717
 
   that proves that no RRsets matching a particular SNAME exist.
718
 
   Locating such an NSEC RR within an authoritative zone is relatively
719
 
   simple, at least in concept.  The following discussion assumes that
720
 
   the name server is authoritative for the zone that would have held
721
 
   the non-existent RRsets matching SNAME.  The algorithm below is
722
 
   written for clarity, not for efficiency.
723
 
 
724
 
   To find the NSEC that proves that no RRsets matching name N exist in
725
 
   the zone Z that would have held them, construct a sequence, S,
726
 
   consisting of the owner names of every RRset in Z, sorted into
727
 
 
728
 
 
729
 
 
730
 
Arends, et al.              Standards Track                    [Page 13]
731
 
 
732
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
733
 
 
734
 
 
735
 
   canonical order ([RFC4034]), with no duplicate names.  Find the name
736
 
   M that would have immediately preceded N in S if any RRsets with
737
 
   owner name N had existed.  M is the owner name of the NSEC RR that
738
 
   proves that no RRsets exist with owner name N.
739
 
 
740
 
   The algorithm for finding the NSEC RR that proves that a given name
741
 
   is not covered by any applicable wildcard is similar but requires an
742
 
   extra step.  More precisely, the algorithm for finding the NSEC
743
 
   proving that no RRsets exist with the applicable wildcard name is
744
 
   precisely the same as the algorithm for finding the NSEC RR that
745
 
   proves that RRsets with any other owner name do not exist.  The part
746
 
   that's missing is a method of determining the name of the non-
747
 
   existent applicable wildcard.  In practice, this is easy, because the
748
 
   authoritative name server has already checked for the presence of
749
 
   precisely this wildcard name as part of step (1)(c) of the normal
750
 
   lookup algorithm described in Section 4.3.2 of [RFC1034].
751
 
 
752
 
3.1.4.  Including DS RRs in a Response
753
 
 
754
 
   When responding to a query that has the DO bit set, a security-aware
755
 
   authoritative name server returning a referral includes DNSSEC data
756
 
   along with the NS RRset.
757
 
 
758
 
   If a DS RRset is present at the delegation point, the name server
759
 
   MUST return both the DS RRset and its associated RRSIG RR(s) in the
760
 
   Authority section along with the NS RRset.
761
 
 
762
 
   If no DS RRset is present at the delegation point, the name server
763
 
   MUST return both the NSEC RR that proves that the DS RRset is not
764
 
   present and the NSEC RR's associated RRSIG RR(s) along with the NS
765
 
   RRset.  The name server MUST place the NS RRset before the NSEC RRset
766
 
   and its associated RRSIG RR(s).
767
 
 
768
 
   Including these DS, NSEC, and RRSIG RRs increases the size of
769
 
   referral messages and may cause some or all glue RRs to be omitted.
770
 
   If space does not permit inclusion of the DS or NSEC RRset and
771
 
   associated RRSIG RRs, the name server MUST set the TC bit (see
772
 
   Section 3.1.1).
773
 
 
774
 
3.1.4.1.  Responding to Queries for DS RRs
775
 
 
776
 
   The DS resource record type is unusual in that it appears only on the
777
 
   parent zone's side of a zone cut.  For example, the DS RRset for the
778
 
   delegation of "foo.example" is stored in the "example" zone rather
779
 
   than in the "foo.example" zone.  This requires special processing
780
 
   rules for both name servers and resolvers, as the name server for the
781
 
   child zone is authoritative for the name at the zone cut by the
782
 
   normal DNS rules but the child zone does not contain the DS RRset.
783
 
 
784
 
 
785
 
 
786
 
Arends, et al.              Standards Track                    [Page 14]
787
 
 
788
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
789
 
 
790
 
 
791
 
   A security-aware resolver sends queries to the parent zone when
792
 
   looking for a needed DS RR at a delegation point (see Section 4.2).
793
 
   However, special rules are necessary to avoid confusing
794
 
   security-oblivious resolvers which might become involved in
795
 
   processing such a query (for example, in a network configuration that
796
 
   forces a security-aware resolver to channel its queries through a
797
 
   security-oblivious recursive name server).  The rest of this section
798
 
   describes how a security-aware name server processes DS queries in
799
 
   order to avoid this problem.
800
 
 
801
 
   The need for special processing by a security-aware name server only
802
 
   arises when all the following conditions are met:
803
 
 
804
 
   o  The name server has received a query for the DS RRset at a zone
805
 
      cut.
806
 
 
807
 
   o  The name server is authoritative for the child zone.
808
 
 
809
 
   o  The name server is not authoritative for the parent zone.
810
 
 
811
 
   o  The name server does not offer recursion.
812
 
 
813
 
   In all other cases, the name server either has some way of obtaining
814
 
   the DS RRset or could not have been expected to have the DS RRset
815
 
   even by the pre-DNSSEC processing rules, so the name server can
816
 
   return either the DS RRset or an error response according to the
817
 
   normal processing rules.
818
 
 
819
 
   If all the above conditions are met, however, the name server is
820
 
   authoritative for SNAME but cannot supply the requested RRset.  In
821
 
   this case, the name server MUST return an authoritative "no data"
822
 
   response showing that the DS RRset does not exist in the child zone's
823
 
   apex.  See Appendix B.8 for an example of such a response.
824
 
 
825
 
3.1.5.  Responding to Queries for Type AXFR or IXFR
826
 
 
827
 
   DNSSEC does not change the DNS zone transfer process.  A signed zone
828
 
   will contain RRSIG, DNSKEY, NSEC, and DS resource records, but these
829
 
   records have no special meaning with respect to a zone transfer
830
 
   operation.
831
 
 
832
 
   An authoritative name server is not required to verify that a zone is
833
 
   properly signed before sending or accepting a zone transfer.
834
 
   However, an authoritative name server MAY choose to reject the entire
835
 
   zone transfer if the zone fails to meet any of the signing
836
 
   requirements described in Section 2.  The primary objective of a zone
837
 
   transfer is to ensure that all authoritative name servers have
838
 
   identical copies of the zone.  An authoritative name server that
839
 
 
840
 
 
841
 
 
842
 
Arends, et al.              Standards Track                    [Page 15]
843
 
 
844
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
845
 
 
846
 
 
847
 
   chooses to perform its own zone validation MUST NOT selectively
848
 
   reject some RRs and accept others.
849
 
 
850
 
   DS RRsets appear only on the parental side of a zone cut and are
851
 
   authoritative data in the parent zone.  As with any other
852
 
   authoritative RRset, the DS RRset MUST be included in zone transfers
853
 
   of the zone in which the RRset is authoritative data.  In the case of
854
 
   the DS RRset, this is the parent zone.
855
 
 
856
 
   NSEC RRs appear in both the parent and child zones at a zone cut and
857
 
   are authoritative data in both the parent and child zones.  The
858
 
   parental and child NSEC RRs at a zone cut are never identical to each
859
 
   other, as the NSEC RR in the child zone's apex will always indicate
860
 
   the presence of the child zone's SOA RR whereas the parental NSEC RR
861
 
   at the zone cut will never indicate the presence of an SOA RR.  As
862
 
   with any other authoritative RRs, NSEC RRs MUST be included in zone
863
 
   transfers of the zone in which they are authoritative data.  The
864
 
   parental NSEC RR at a zone cut MUST be included in zone transfers of
865
 
   the parent zone, and the NSEC at the zone apex of the child zone MUST
866
 
   be included in zone transfers of the child zone.
867
 
 
868
 
   RRSIG RRs appear in both the parent and child zones at a zone cut and
869
 
   are authoritative in whichever zone contains the authoritative RRset
870
 
   for which the RRSIG RR provides the signature.  That is, the RRSIG RR
871
 
   for a DS RRset or a parental NSEC RR at a zone cut will be
872
 
   authoritative in the parent zone, and the RRSIG for any RRset in the
873
 
   child zone's apex will be authoritative in the child zone.  Parental
874
 
   and child RRSIG RRs at a zone cut will never be identical to each
875
 
   other, as the Signer's Name field of an RRSIG RR in the child zone's
876
 
   apex will indicate a DNSKEY RR in the child zone's apex whereas the
877
 
   same field of a parental RRSIG RR at the zone cut will indicate a
878
 
   DNSKEY RR in the parent zone's apex.  As with any other authoritative
879
 
   RRs, RRSIG RRs MUST be included in zone transfers of the zone in
880
 
   which they are authoritative data.
881
 
 
882
 
3.1.6.  The AD and CD Bits in an Authoritative Response
883
 
 
884
 
   The CD and AD bits are designed for use in communication between
885
 
   security-aware resolvers and security-aware recursive name servers.
886
 
   These bits are for the most part not relevant to query processing by
887
 
   security-aware authoritative name servers.
888
 
 
889
 
   A security-aware name server does not perform signature validation
890
 
   for authoritative data during query processing, even when the CD bit
891
 
   is clear.  A security-aware name server SHOULD clear the CD bit when
892
 
   composing an authoritative response.
893
 
 
894
 
 
895
 
 
896
 
 
897
 
 
898
 
Arends, et al.              Standards Track                    [Page 16]
899
 
 
900
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
901
 
 
902
 
 
903
 
   A security-aware name server MUST NOT set the AD bit in a response
904
 
   unless the name server considers all RRsets in the Answer and
905
 
   Authority sections of the response to be authentic.  A security-aware
906
 
   name server's local policy MAY consider data from an authoritative
907
 
   zone to be authentic without further validation.  However, the name
908
 
   server MUST NOT do so unless the name server obtained the
909
 
   authoritative zone via secure means (such as a secure zone transfer
910
 
   mechanism) and MUST NOT do so unless this behavior has been
911
 
   configured explicitly.
912
 
 
913
 
   A security-aware name server that supports recursion MUST follow the
914
 
   rules for the CD and AD bits given in Section 3.2 when generating a
915
 
   response that involves data obtained via recursion.
916
 
 
917
 
3.2.  Recursive Name Servers
918
 
 
919
 
   As explained in [RFC4033], a security-aware recursive name server is
920
 
   an entity that acts in both the security-aware name server and
921
 
   security-aware resolver roles.  This section uses the terms "name
922
 
   server side" and "resolver side" to refer to the code within a
923
 
   security-aware recursive name server that implements the
924
 
   security-aware name server role and the code that implements the
925
 
   security-aware resolver role, respectively.
926
 
 
927
 
   The resolver side follows the usual rules for caching and negative
928
 
   caching that would apply to any security-aware resolver.
929
 
 
930
 
3.2.1.  The DO Bit
931
 
 
932
 
   The resolver side of a security-aware recursive name server MUST set
933
 
   the DO bit when sending requests, regardless of the state of the DO
934
 
   bit in the initiating request received by the name server side.  If
935
 
   the DO bit in an initiating query is not set, the name server side
936
 
   MUST strip any authenticating DNSSEC RRs from the response but MUST
937
 
   NOT strip any DNSSEC RR types that the initiating query explicitly
938
 
   requested.
939
 
 
940
 
3.2.2.  The CD Bit
941
 
 
942
 
   The CD bit exists in order to allow a security-aware resolver to
943
 
   disable signature validation in a security-aware name server's
944
 
   processing of a particular query.
945
 
 
946
 
   The name server side MUST copy the setting of the CD bit from a query
947
 
   to the corresponding response.
948
 
 
949
 
   The name server side of a security-aware recursive name server MUST
950
 
   pass the state of the CD bit to the resolver side along with the rest
951
 
 
952
 
 
953
 
 
954
 
Arends, et al.              Standards Track                    [Page 17]
955
 
 
956
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
957
 
 
958
 
 
959
 
   of an initiating query, so that the resolver side will know whether
960
 
   it is required to verify the response data it returns to the name
961
 
   server side.  If the CD bit is set, it indicates that the originating
962
 
   resolver is willing to perform whatever authentication its local
963
 
   policy requires.  Thus, the resolver side of the recursive name
964
 
   server need not perform authentication on the RRsets in the response.
965
 
   When the CD bit is set, the recursive name server SHOULD, if
966
 
   possible, return the requested data to the originating resolver, even
967
 
   if the recursive name server's local authentication policy would
968
 
   reject the records in question.  That is, by setting the CD bit, the
969
 
   originating resolver has indicated that it takes responsibility for
970
 
   performing its own authentication, and the recursive name server
971
 
   should not interfere.
972
 
 
973
 
   If the resolver side implements a BAD cache (see Section 4.7) and the
974
 
   name server side receives a query that matches an entry in the
975
 
   resolver side's BAD cache, the name server side's response depends on
976
 
   the state of the CD bit in the original query.  If the CD bit is set,
977
 
   the name server side SHOULD return the data from the BAD cache; if
978
 
   the CD bit is not set, the name server side MUST return RCODE 2
979
 
   (server failure).
980
 
 
981
 
   The intent of the above rule is to provide the raw data to clients
982
 
   that are capable of performing their own signature verification
983
 
   checks while protecting clients that depend on the resolver side of a
984
 
   security-aware recursive name server to perform such checks.  Several
985
 
   of the possible reasons why signature validation might fail involve
986
 
   conditions that may not apply equally to the recursive name server
987
 
   and the client that invoked it.  For example, the recursive name
988
 
   server's clock may be set incorrectly, or the client may have
989
 
   knowledge of a relevant island of security that the recursive name
990
 
   server does not share.  In such cases, "protecting" a client that is
991
 
   capable of performing its own signature validation from ever seeing
992
 
   the "bad" data does not help the client.
993
 
 
994
 
3.2.3.  The AD Bit
995
 
 
996
 
   The name server side of a security-aware recursive name server MUST
997
 
   NOT set the AD bit in a response unless the name server considers all
998
 
   RRsets in the Answer and Authority sections of the response to be
999
 
   authentic.  The name server side SHOULD set the AD bit if and only if
1000
 
   the resolver side considers all RRsets in the Answer section and any
1001
 
   relevant negative response RRs in the Authority section to be
1002
 
   authentic.  The resolver side MUST follow the procedure described in
1003
 
   Section 5 to determine whether the RRs in question are authentic.
1004
 
   However, for backward compatibility, a recursive name server MAY set
1005
 
   the AD bit when a response includes unsigned CNAME RRs if those CNAME
1006
 
 
1007
 
 
1008
 
 
1009
 
 
1010
 
Arends, et al.              Standards Track                    [Page 18]
1011
 
 
1012
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1013
 
 
1014
 
 
1015
 
   RRs demonstrably could have been synthesized from an authentic DNAME
1016
 
   RR that is also included in the response according to the synthesis
1017
 
   rules described in [RFC2672].
1018
 
 
1019
 
3.3.  Example DNSSEC Responses
1020
 
 
1021
 
   See Appendix B for example response packets.
1022
 
 
1023
 
4.  Resolving
1024
 
 
1025
 
   This section describes the behavior of entities that include
1026
 
   security-aware resolver functions.  In many cases such functions will
1027
 
   be part of a security-aware recursive name server, but a stand-alone
1028
 
   security-aware resolver has many of the same requirements.  Functions
1029
 
   specific to security-aware recursive name servers are described in
1030
 
   Section 3.2.
1031
 
 
1032
 
4.1.  EDNS Support
1033
 
 
1034
 
   A security-aware resolver MUST include an EDNS ([RFC2671]) OPT
1035
 
   pseudo-RR with the DO ([RFC3225]) bit set when sending queries.
1036
 
 
1037
 
   A security-aware resolver MUST support a message size of at least
1038
 
   1220 octets, SHOULD support a message size of 4000 octets, and MUST
1039
 
   use the "sender's UDP payload size" field in the EDNS OPT pseudo-RR
1040
 
   to advertise the message size that it is willing to accept.  A
1041
 
   security-aware resolver's IP layer MUST handle fragmented UDP packets
1042
 
   correctly regardless of whether any such fragmented packets were
1043
 
   received via IPv4 or IPv6.  Please see [RFC1122], [RFC2460], and
1044
 
   [RFC3226] for discussion of these requirements.
1045
 
 
1046
 
4.2.  Signature Verification Support
1047
 
 
1048
 
   A security-aware resolver MUST support the signature verification
1049
 
   mechanisms described in Section 5 and SHOULD apply them to every
1050
 
   received response, except when:
1051
 
 
1052
 
   o  the security-aware resolver is part of a security-aware recursive
1053
 
      name server, and the response is the result of recursion on behalf
1054
 
      of a query received with the CD bit set;
1055
 
 
1056
 
   o  the response is the result of a query generated directly via some
1057
 
      form of application interface that instructed the security-aware
1058
 
      resolver not to perform validation for this query; or
1059
 
 
1060
 
   o  validation for this query has been disabled by local policy.
1061
 
 
1062
 
 
1063
 
 
1064
 
 
1065
 
 
1066
 
Arends, et al.              Standards Track                    [Page 19]
1067
 
 
1068
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1069
 
 
1070
 
 
1071
 
   A security-aware resolver's support for signature verification MUST
1072
 
   include support for verification of wildcard owner names.
1073
 
 
1074
 
   Security-aware resolvers MAY query for missing security RRs in an
1075
 
   attempt to perform validation; implementations that choose to do so
1076
 
   must be aware that the answers received may not be sufficient to
1077
 
   validate the original response.  For example, a zone update may have
1078
 
   changed (or deleted) the desired information between the original and
1079
 
   follow-up queries.
1080
 
 
1081
 
   When attempting to retrieve missing NSEC RRs that reside on the
1082
 
   parental side at a zone cut, a security-aware iterative-mode resolver
1083
 
   MUST query the name servers for the parent zone, not the child zone.
1084
 
 
1085
 
   When attempting to retrieve a missing DS, a security-aware
1086
 
   iterative-mode resolver MUST query the name servers for the parent
1087
 
   zone, not the child zone.  As explained in Section 3.1.4.1,
1088
 
   security-aware name servers need to apply special processing rules to
1089
 
   handle the DS RR, and in some situations the resolver may also need
1090
 
   to apply special rules to locate the name servers for the parent zone
1091
 
   if the resolver does not already have the parent's NS RRset.  To
1092
 
   locate the parent NS RRset, the resolver can start with the
1093
 
   delegation name, strip off the leftmost label, and query for an NS
1094
 
   RRset by that name.  If no NS RRset is present at that name, the
1095
 
   resolver then strips off the leftmost remaining label and retries the
1096
 
   query for that name, repeating this process of walking up the tree
1097
 
   until it either finds the NS RRset or runs out of labels.
1098
 
 
1099
 
4.3.  Determining Security Status of Data
1100
 
 
1101
 
   A security-aware resolver MUST be able to determine whether it should
1102
 
   expect a particular RRset to be signed.  More precisely, a
1103
 
   security-aware resolver must be able to distinguish between four
1104
 
   cases:
1105
 
 
1106
 
   Secure: An RRset for which the resolver is able to build a chain of
1107
 
      signed DNSKEY and DS RRs from a trusted security anchor to the
1108
 
      RRset.  In this case, the RRset should be signed and is subject to
1109
 
      signature validation, as described above.
1110
 
 
1111
 
   Insecure: An RRset for which the resolver knows that it has no chain
1112
 
      of signed DNSKEY and DS RRs from any trusted starting point to the
1113
 
      RRset.  This can occur when the target RRset lies in an unsigned
1114
 
      zone or in a descendent of an unsigned zone.  In this case, the
1115
 
      RRset may or may not be signed, but the resolver will not be able
1116
 
      to verify the signature.
1117
 
 
1118
 
 
1119
 
 
1120
 
 
1121
 
 
1122
 
Arends, et al.              Standards Track                    [Page 20]
1123
 
 
1124
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1125
 
 
1126
 
 
1127
 
   Bogus: An RRset for which the resolver believes that it ought to be
1128
 
      able to establish a chain of trust but for which it is unable to
1129
 
      do so, either due to signatures that for some reason fail to
1130
 
      validate or due to missing data that the relevant DNSSEC RRs
1131
 
      indicate should be present.  This case may indicate an attack but
1132
 
      may also indicate a configuration error or some form of data
1133
 
      corruption.
1134
 
 
1135
 
   Indeterminate: An RRset for which the resolver is not able to
1136
 
      determine whether the RRset should be signed, as the resolver is
1137
 
      not able to obtain the necessary DNSSEC RRs.  This can occur when
1138
 
      the security-aware resolver is not able to contact security-aware
1139
 
      name servers for the relevant zones.
1140
 
 
1141
 
4.4.  Configured Trust Anchors
1142
 
 
1143
 
   A security-aware resolver MUST be capable of being configured with at
1144
 
   least one trusted public key or DS RR and SHOULD be capable of being
1145
 
   configured with multiple trusted public keys or DS RRs.  Since a
1146
 
   security-aware resolver will not be able to validate signatures
1147
 
   without such a configured trust anchor, the resolver SHOULD have some
1148
 
   reasonably robust mechanism for obtaining such keys when it boots;
1149
 
   examples of such a mechanism would be some form of non-volatile
1150
 
   storage (such as a disk drive) or some form of trusted local network
1151
 
   configuration mechanism.
1152
 
 
1153
 
   Note that trust anchors also cover key material that is updated in a
1154
 
   secure manner.  This secure manner could be through physical media, a
1155
 
   key exchange protocol, or some other out-of-band means.
1156
 
 
1157
 
4.5.  Response Caching
1158
 
 
1159
 
   A security-aware resolver SHOULD cache each response as a single
1160
 
   atomic entry containing the entire answer, including the named RRset
1161
 
   and any associated DNSSEC RRs.  The resolver SHOULD discard the
1162
 
   entire atomic entry when any of the RRs contained in it expire.  In
1163
 
   most cases the appropriate cache index for the atomic entry will be
1164
 
   the triple <QNAME, QTYPE, QCLASS>, but in cases such as the response
1165
 
   form described in Section 3.1.3.2 the appropriate cache index will be
1166
 
   the double <QNAME,QCLASS>.
1167
 
 
1168
 
   The reason for these recommendations is that, between the initial
1169
 
   query and the expiration of the data from the cache, the
1170
 
   authoritative data might have been changed (for example, via dynamic
1171
 
   update).
1172
 
 
1173
 
 
1174
 
 
1175
 
 
1176
 
 
1177
 
 
1178
 
Arends, et al.              Standards Track                    [Page 21]
1179
 
 
1180
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1181
 
 
1182
 
 
1183
 
   There are two situations for which this is relevant:
1184
 
 
1185
 
   1.  By using the RRSIG record, it is possible to deduce that an
1186
 
       answer was synthesized from a wildcard.  A security-aware
1187
 
       recursive name server could store this wildcard data and use it
1188
 
       to generate positive responses to queries other than the name for
1189
 
       which the original answer was first received.
1190
 
 
1191
 
   2.  NSEC RRs received to prove the non-existence of a name could be
1192
 
       reused by a security-aware resolver to prove the non-existence of
1193
 
       any name in the name range it spans.
1194
 
 
1195
 
   In theory, a resolver could use wildcards or NSEC RRs to generate
1196
 
   positive and negative responses (respectively) until the TTL or
1197
 
   signatures on the records in question expire.  However, it seems
1198
 
   prudent for resolvers to avoid blocking new authoritative data or
1199
 
   synthesizing new data on their own.  Resolvers that follow this
1200
 
   recommendation will have a more consistent view of the namespace.
1201
 
 
1202
 
4.6.  Handling of the CD and AD Bits
1203
 
 
1204
 
   A security-aware resolver MAY set a query's CD bit in order to
1205
 
   indicate that the resolver takes responsibility for performing
1206
 
   whatever authentication its local policy requires on the RRsets in
1207
 
   the response.  See Section 3.2 for the effect this bit has on the
1208
 
   behavior of security-aware recursive name servers.
1209
 
 
1210
 
   A security-aware resolver MUST clear the AD bit when composing query
1211
 
   messages to protect against buggy name servers that blindly copy
1212
 
   header bits that they do not understand from the query message to the
1213
 
   response message.
1214
 
 
1215
 
   A resolver MUST disregard the meaning of the CD and AD bits in a
1216
 
   response unless the response was obtained by using a secure channel
1217
 
   or the resolver was specifically configured to regard the message
1218
 
   header bits without using a secure channel.
1219
 
 
1220
 
4.7.  Caching BAD Data
1221
 
 
1222
 
   While many validation errors will be transient, some are likely to be
1223
 
   more persistent, such as those caused by administrative error
1224
 
   (failure to re-sign a zone, clock skew, and so forth).  Since
1225
 
   requerying will not help in these cases, validating resolvers might
1226
 
   generate a significant amount of unnecessary DNS traffic as a result
1227
 
   of repeated queries for RRsets with persistent validation failures.
1228
 
 
1229
 
   To prevent such unnecessary DNS traffic, security-aware resolvers MAY
1230
 
   cache data with invalid signatures, with some restrictions.
1231
 
 
1232
 
 
1233
 
 
1234
 
Arends, et al.              Standards Track                    [Page 22]
1235
 
 
1236
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1237
 
 
1238
 
 
1239
 
   Conceptually, caching such data is similar to negative caching
1240
 
   ([RFC2308]), except that instead of caching a valid negative
1241
 
   response, the resolver is caching the fact that a particular answer
1242
 
   failed to validate.  This document refers to a cache of data with
1243
 
   invalid signatures as a "BAD cache".
1244
 
 
1245
 
   Resolvers that implement a BAD cache MUST take steps to prevent the
1246
 
   cache from being useful as a denial-of-service attack amplifier,
1247
 
   particularly the following:
1248
 
 
1249
 
   o  Since RRsets that fail to validate do not have trustworthy TTLs,
1250
 
      the implementation MUST assign a TTL.  This TTL SHOULD be small,
1251
 
      in order to mitigate the effect of caching the results of an
1252
 
      attack.
1253
 
 
1254
 
   o  In order to prevent caching of a transient validation failure
1255
 
      (which might be the result of an attack), resolvers SHOULD track
1256
 
      queries that result in validation failures and SHOULD only answer
1257
 
      from the BAD cache after the number of times that responses to
1258
 
      queries for that particular <QNAME, QTYPE, QCLASS> have failed to
1259
 
      validate exceeds a threshold value.
1260
 
 
1261
 
   Resolvers MUST NOT return RRsets from the BAD cache unless the
1262
 
   resolver is not required to validate the signatures of the RRsets in
1263
 
   question under the rules given in Section 4.2 of this document.  See
1264
 
   Section 3.2.2 for discussion of how the responses returned by a
1265
 
   security-aware recursive name server interact with a BAD cache.
1266
 
 
1267
 
4.8.  Synthesized CNAMEs
1268
 
 
1269
 
   A validating security-aware resolver MUST treat the signature of a
1270
 
   valid signed DNAME RR as also covering unsigned CNAME RRs that could
1271
 
   have been synthesized from the DNAME RR, as described in [RFC2672],
1272
 
   at least to the extent of not rejecting a response message solely
1273
 
   because it contains such CNAME RRs.  The resolver MAY retain such
1274
 
   CNAME RRs in its cache or in the answers it hands back, but is not
1275
 
   required to do so.
1276
 
 
1277
 
4.9.  Stub Resolvers
1278
 
 
1279
 
   A security-aware stub resolver MUST support the DNSSEC RR types, at
1280
 
   least to the extent of not mishandling responses just because they
1281
 
   contain DNSSEC RRs.
1282
 
 
1283
 
 
1284
 
 
1285
 
 
1286
 
 
1287
 
 
1288
 
 
1289
 
 
1290
 
Arends, et al.              Standards Track                    [Page 23]
1291
 
 
1292
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1293
 
 
1294
 
 
1295
 
4.9.1.  Handling of the DO Bit
1296
 
 
1297
 
   A non-validating security-aware stub resolver MAY include the DNSSEC
1298
 
   RRs returned by a security-aware recursive name server as part of the
1299
 
   data that the stub resolver hands back to the application that
1300
 
   invoked it, but is not required to do so.  A non-validating stub
1301
 
   resolver that seeks to do this will need to set the DO bit in order
1302
 
   to receive DNSSEC RRs from the recursive name server.
1303
 
 
1304
 
   A validating security-aware stub resolver MUST set the DO bit,
1305
 
   because otherwise it will not receive the DNSSEC RRs it needs to
1306
 
   perform signature validation.
1307
 
 
1308
 
4.9.2.  Handling of the CD Bit
1309
 
 
1310
 
   A non-validating security-aware stub resolver SHOULD NOT set the CD
1311
 
   bit when sending queries unless it is requested by the application
1312
 
   layer, as by definition, a non-validating stub resolver depends on
1313
 
   the security-aware recursive name server to perform validation on its
1314
 
   behalf.
1315
 
 
1316
 
   A validating security-aware stub resolver SHOULD set the CD bit,
1317
 
   because otherwise the security-aware recursive name server will
1318
 
   answer the query using the name server's local policy, which may
1319
 
   prevent the stub resolver from receiving data that would be
1320
 
   acceptable to the stub resolver's local policy.
1321
 
 
1322
 
4.9.3.  Handling of the AD Bit
1323
 
 
1324
 
   A non-validating security-aware stub resolver MAY chose to examine
1325
 
   the setting of the AD bit in response messages that it receives in
1326
 
   order to determine whether the security-aware recursive name server
1327
 
   that sent the response claims to have cryptographically verified the
1328
 
   data in the Answer and Authority sections of the response message.
1329
 
   Note, however, that the responses received by a security-aware stub
1330
 
   resolver are heavily dependent on the local policy of the
1331
 
   security-aware recursive name server.  Therefore, there may be little
1332
 
   practical value in checking the status of the AD bit, except perhaps
1333
 
   as a debugging aid.  In any case, a security-aware stub resolver MUST
1334
 
   NOT place any reliance on signature validation allegedly performed on
1335
 
   its behalf, except when the security-aware stub resolver obtained the
1336
 
   data in question from a trusted security-aware recursive name server
1337
 
   via a secure channel.
1338
 
 
1339
 
   A validating security-aware stub resolver SHOULD NOT examine the
1340
 
   setting of the AD bit in response messages, as, by definition, the
1341
 
   stub resolver performs its own signature validation regardless of the
1342
 
   setting of the AD bit.
1343
 
 
1344
 
 
1345
 
 
1346
 
Arends, et al.              Standards Track                    [Page 24]
1347
 
 
1348
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1349
 
 
1350
 
 
1351
 
5.  Authenticating DNS Responses
1352
 
 
1353
 
   To use DNSSEC RRs for authentication, a security-aware resolver
1354
 
   requires configured knowledge of at least one authenticated DNSKEY or
1355
 
   DS RR.  The process for obtaining and authenticating this initial
1356
 
   trust anchor is achieved via some external mechanism.  For example, a
1357
 
   resolver could use some off-line authenticated exchange to obtain a
1358
 
   zone's DNSKEY RR or to obtain a DS RR that identifies and
1359
 
   authenticates a zone's DNSKEY RR.  The remainder of this section
1360
 
   assumes that the resolver has somehow obtained an initial set of
1361
 
   trust anchors.
1362
 
 
1363
 
   An initial DNSKEY RR can be used to authenticate a zone's apex DNSKEY
1364
 
   RRset.  To authenticate an apex DNSKEY RRset by using an initial key,
1365
 
   the resolver MUST:
1366
 
 
1367
 
   1.  verify that the initial DNSKEY RR appears in the apex DNSKEY
1368
 
       RRset, and that the DNSKEY RR has the Zone Key Flag (DNSKEY RDATA
1369
 
       bit 7) set; and
1370
 
 
1371
 
   2.  verify that there is some RRSIG RR that covers the apex DNSKEY
1372
 
       RRset, and that the combination of the RRSIG RR and the initial
1373
 
       DNSKEY RR authenticates the DNSKEY RRset.  The process for using
1374
 
       an RRSIG RR to authenticate an RRset is described in Section 5.3.
1375
 
 
1376
 
   Once the resolver has authenticated the apex DNSKEY RRset by using an
1377
 
   initial DNSKEY RR, delegations from that zone can be authenticated by
1378
 
   using DS RRs.  This allows a resolver to start from an initial key
1379
 
   and use DS RRsets to proceed recursively down the DNS tree, obtaining
1380
 
   other apex DNSKEY RRsets.  If the resolver were configured with a
1381
 
   root DNSKEY RR, and if every delegation had a DS RR associated with
1382
 
   it, then the resolver could obtain and validate any apex DNSKEY
1383
 
   RRset.  The process of using DS RRs to authenticate referrals is
1384
 
   described in Section 5.2.
1385
 
 
1386
 
   Section 5.3 shows how the resolver can use DNSKEY RRs in the apex
1387
 
   DNSKEY RRset and RRSIG RRs from the zone to authenticate any other
1388
 
   RRsets in the zone once the resolver has authenticated a zone's apex
1389
 
   DNSKEY RRset.  Section 5.4 shows how the resolver can use
1390
 
   authenticated NSEC RRsets from the zone to prove that an RRset is not
1391
 
   present in the zone.
1392
 
 
1393
 
   When a resolver indicates support for DNSSEC (by setting the DO bit),
1394
 
   a security-aware name server should attempt to provide the necessary
1395
 
   DNSKEY, RRSIG, NSEC, and DS RRsets in a response (see Section 3).
1396
 
   However, a security-aware resolver may still receive a response that
1397
 
   lacks the appropriate DNSSEC RRs, whether due to configuration issues
1398
 
   such as an upstream security-oblivious recursive name server that
1399
 
 
1400
 
 
1401
 
 
1402
 
Arends, et al.              Standards Track                    [Page 25]
1403
 
 
1404
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1405
 
 
1406
 
 
1407
 
   accidentally interferes with DNSSEC RRs or due to a deliberate attack
1408
 
   in which an adversary forges a response, strips DNSSEC RRs from a
1409
 
   response, or modifies a query so that DNSSEC RRs appear not to be
1410
 
   requested.  The absence of DNSSEC data in a response MUST NOT by
1411
 
   itself be taken as an indication that no authentication information
1412
 
   exists.
1413
 
 
1414
 
   A resolver SHOULD expect authentication information from signed
1415
 
   zones.  A resolver SHOULD believe that a zone is signed if the
1416
 
   resolver has been configured with public key information for the
1417
 
   zone, or if the zone's parent is signed and the delegation from the
1418
 
   parent contains a DS RRset.
1419
 
 
1420
 
5.1.  Special Considerations for Islands of Security
1421
 
 
1422
 
   Islands of security (see [RFC4033]) are signed zones for which it is
1423
 
   not possible to construct an authentication chain to the zone from
1424
 
   its parent.  Validating signatures within an island of security
1425
 
   requires that the validator have some other means of obtaining an
1426
 
   initial authenticated zone key for the island.  If a validator cannot
1427
 
   obtain such a key, it SHOULD switch to operating as if the zones in
1428
 
   the island of security are unsigned.
1429
 
 
1430
 
   All the normal processes for validating responses apply to islands of
1431
 
   security.  The only difference between normal validation and
1432
 
   validation within an island of security is in how the validator
1433
 
   obtains a trust anchor for the authentication chain.
1434
 
 
1435
 
5.2.  Authenticating Referrals
1436
 
 
1437
 
   Once the apex DNSKEY RRset for a signed parent zone has been
1438
 
   authenticated, DS RRsets can be used to authenticate the delegation
1439
 
   to a signed child zone.  A DS RR identifies a DNSKEY RR in the child
1440
 
   zone's apex DNSKEY RRset and contains a cryptographic digest of the
1441
 
   child zone's DNSKEY RR.  Use of a strong cryptographic digest
1442
 
   algorithm ensures that it is computationally infeasible for an
1443
 
   adversary to generate a DNSKEY RR that matches the digest.  Thus,
1444
 
   authenticating the digest allows a resolver to authenticate the
1445
 
   matching DNSKEY RR.  The resolver can then use this child DNSKEY RR
1446
 
   to authenticate the entire child apex DNSKEY RRset.
1447
 
 
1448
 
   Given a DS RR for a delegation, the child zone's apex DNSKEY RRset
1449
 
   can be authenticated if all of the following hold:
1450
 
 
1451
 
   o  The DS RR has been authenticated using some DNSKEY RR in the
1452
 
      parent's apex DNSKEY RRset (see Section 5.3).
1453
 
 
1454
 
 
1455
 
 
1456
 
 
1457
 
 
1458
 
Arends, et al.              Standards Track                    [Page 26]
1459
 
 
1460
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1461
 
 
1462
 
 
1463
 
   o  The Algorithm and Key Tag in the DS RR match the Algorithm field
1464
 
      and the key tag of a DNSKEY RR in the child zone's apex DNSKEY
1465
 
      RRset, and, when the DNSKEY RR's owner name and RDATA are hashed
1466
 
      using the digest algorithm specified in the DS RR's Digest Type
1467
 
      field, the resulting digest value matches the Digest field of the
1468
 
      DS RR.
1469
 
 
1470
 
   o  The matching DNSKEY RR in the child zone has the Zone Flag bit
1471
 
      set, the corresponding private key has signed the child zone's
1472
 
      apex DNSKEY RRset, and the resulting RRSIG RR authenticates the
1473
 
      child zone's apex DNSKEY RRset.
1474
 
 
1475
 
   If the referral from the parent zone did not contain a DS RRset, the
1476
 
   response should have included a signed NSEC RRset proving that no DS
1477
 
   RRset exists for the delegated name (see Section 3.1.4).  A
1478
 
   security-aware resolver MUST query the name servers for the parent
1479
 
   zone for the DS RRset if the referral includes neither a DS RRset nor
1480
 
   a NSEC RRset proving that the DS RRset does not exist (see Section
1481
 
   4).
1482
 
 
1483
 
   If the validator authenticates an NSEC RRset that proves that no DS
1484
 
   RRset is present for this zone, then there is no authentication path
1485
 
   leading from the parent to the child.  If the resolver has an initial
1486
 
   DNSKEY or DS RR that belongs to the child zone or to any delegation
1487
 
   below the child zone, this initial DNSKEY or DS RR MAY be used to
1488
 
   re-establish an authentication path.  If no such initial DNSKEY or DS
1489
 
   RR exists, the validator cannot authenticate RRsets in or below the
1490
 
   child zone.
1491
 
 
1492
 
   If the validator does not support any of the algorithms listed in an
1493
 
   authenticated DS RRset, then the resolver has no supported
1494
 
   authentication path leading from the parent to the child.  The
1495
 
   resolver should treat this case as it would the case of an
1496
 
   authenticated NSEC RRset proving that no DS RRset exists, as
1497
 
   described above.
1498
 
 
1499
 
   Note that, for a signed delegation, there are two NSEC RRs associated
1500
 
   with the delegated name.  One NSEC RR resides in the parent zone and
1501
 
   can be used to prove whether a DS RRset exists for the delegated
1502
 
   name.  The second NSEC RR resides in the child zone and identifies
1503
 
   which RRsets are present at the apex of the child zone.  The parent
1504
 
   NSEC RR and child NSEC RR can always be distinguished because the SOA
1505
 
   bit will be set in the child NSEC RR and clear in the parent NSEC RR.
1506
 
   A security-aware resolver MUST use the parent NSEC RR when attempting
1507
 
   to prove that a DS RRset does not exist.
1508
 
 
1509
 
 
1510
 
 
1511
 
 
1512
 
 
1513
 
 
1514
 
Arends, et al.              Standards Track                    [Page 27]
1515
 
 
1516
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1517
 
 
1518
 
 
1519
 
   If the resolver does not support any of the algorithms listed in an
1520
 
   authenticated DS RRset, then the resolver will not be able to verify
1521
 
   the authentication path to the child zone.  In this case, the
1522
 
   resolver SHOULD treat the child zone as if it were unsigned.
1523
 
 
1524
 
5.3.  Authenticating an RRset with an RRSIG RR
1525
 
 
1526
 
   A validator can use an RRSIG RR and its corresponding DNSKEY RR to
1527
 
   attempt to authenticate RRsets.  The validator first checks the RRSIG
1528
 
   RR to verify that it covers the RRset, has a valid time interval, and
1529
 
   identifies a valid DNSKEY RR.  The validator then constructs the
1530
 
   canonical form of the signed data by appending the RRSIG RDATA
1531
 
   (excluding the Signature Field) with the canonical form of the
1532
 
   covered RRset.  Finally, the validator uses the public key and
1533
 
   signature to authenticate the signed data.  Sections 5.3.1, 5.3.2,
1534
 
   and 5.3.3 describe each step in detail.
1535
 
 
1536
 
5.3.1.  Checking the RRSIG RR Validity
1537
 
 
1538
 
   A security-aware resolver can use an RRSIG RR to authenticate an
1539
 
   RRset if all of the following conditions hold:
1540
 
 
1541
 
   o  The RRSIG RR and the RRset MUST have the same owner name and the
1542
 
      same class.
1543
 
 
1544
 
   o  The RRSIG RR's Signer's Name field MUST be the name of the zone
1545
 
      that contains the RRset.
1546
 
 
1547
 
   o  The RRSIG RR's Type Covered field MUST equal the RRset's type.
1548
 
 
1549
 
   o  The number of labels in the RRset owner name MUST be greater than
1550
 
      or equal to the value in the RRSIG RR's Labels field.
1551
 
 
1552
 
   o  The validator's notion of the current time MUST be less than or
1553
 
      equal to the time listed in the RRSIG RR's Expiration field.
1554
 
 
1555
 
   o  The validator's notion of the current time MUST be greater than or
1556
 
      equal to the time listed in the RRSIG RR's Inception field.
1557
 
 
1558
 
   o  The RRSIG RR's Signer's Name, Algorithm, and Key Tag fields MUST
1559
 
      match the owner name, algorithm, and key tag for some DNSKEY RR in
1560
 
      the zone's apex DNSKEY RRset.
1561
 
 
1562
 
   o  The matching DNSKEY RR MUST be present in the zone's apex DNSKEY
1563
 
      RRset, and MUST have the Zone Flag bit (DNSKEY RDATA Flag bit 7)
1564
 
      set.
1565
 
 
1566
 
 
1567
 
 
1568
 
 
1569
 
 
1570
 
Arends, et al.              Standards Track                    [Page 28]
1571
 
 
1572
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1573
 
 
1574
 
 
1575
 
   It is possible for more than one DNSKEY RR to match the conditions
1576
 
   above.  In this case, the validator cannot predetermine which DNSKEY
1577
 
   RR to use to authenticate the signature, and it MUST try each
1578
 
   matching DNSKEY RR until either the signature is validated or the
1579
 
   validator has run out of matching public keys to try.
1580
 
 
1581
 
   Note that this authentication process is only meaningful if the
1582
 
   validator authenticates the DNSKEY RR before using it to validate
1583
 
   signatures.  The matching DNSKEY RR is considered to be authentic if:
1584
 
 
1585
 
   o  the apex DNSKEY RRset containing the DNSKEY RR is considered
1586
 
      authentic; or
1587
 
 
1588
 
   o  the RRset covered by the RRSIG RR is the apex DNSKEY RRset itself,
1589
 
      and the DNSKEY RR either matches an authenticated DS RR from the
1590
 
      parent zone or matches a trust anchor.
1591
 
 
1592
 
5.3.2.  Reconstructing the Signed Data
1593
 
 
1594
 
   Once the RRSIG RR has met the validity requirements described in
1595
 
   Section 5.3.1, the validator has to reconstruct the original signed
1596
 
   data.  The original signed data includes RRSIG RDATA (excluding the
1597
 
   Signature field) and the canonical form of the RRset.  Aside from
1598
 
   being ordered, the canonical form of the RRset might also differ from
1599
 
   the received RRset due to DNS name compression, decremented TTLs, or
1600
 
   wildcard expansion.  The validator should use the following to
1601
 
   reconstruct the original signed data:
1602
 
 
1603
 
         signed_data = RRSIG_RDATA | RR(1) | RR(2)...  where
1604
 
 
1605
 
            "|" denotes concatenation
1606
 
 
1607
 
            RRSIG_RDATA is the wire format of the RRSIG RDATA fields
1608
 
               with the Signature field excluded and the Signer's Name
1609
 
               in canonical form.
1610
 
 
1611
 
            RR(i) = name | type | class | OrigTTL | RDATA length | RDATA
1612
 
 
1613
 
               name is calculated according to the function below
1614
 
 
1615
 
               class is the RRset's class
1616
 
 
1617
 
               type is the RRset type and all RRs in the class
1618
 
 
1619
 
               OrigTTL is the value from the RRSIG Original TTL field
1620
 
 
1621
 
               All names in the RDATA field are in canonical form
1622
 
 
1623
 
 
1624
 
 
1625
 
 
1626
 
Arends, et al.              Standards Track                    [Page 29]
1627
 
 
1628
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1629
 
 
1630
 
 
1631
 
               The set of all RR(i) is sorted into canonical order.
1632
 
 
1633
 
            To calculate the name:
1634
 
               let rrsig_labels = the value of the RRSIG Labels field
1635
 
 
1636
 
               let fqdn = RRset's fully qualified domain name in
1637
 
                               canonical form
1638
 
 
1639
 
               let fqdn_labels = Label count of the fqdn above.
1640
 
 
1641
 
               if rrsig_labels = fqdn_labels,
1642
 
                   name = fqdn
1643
 
 
1644
 
               if rrsig_labels < fqdn_labels,
1645
 
                  name = "*." | the rightmost rrsig_label labels of the
1646
 
                                fqdn
1647
 
 
1648
 
               if rrsig_labels > fqdn_labels
1649
 
                  the RRSIG RR did not pass the necessary validation
1650
 
                  checks and MUST NOT be used to authenticate this
1651
 
                  RRset.
1652
 
 
1653
 
   The canonical forms for names and RRsets are defined in [RFC4034].
1654
 
 
1655
 
   NSEC RRsets at a delegation boundary require special processing.
1656
 
   There are two distinct NSEC RRsets associated with a signed delegated
1657
 
   name.  One NSEC RRset resides in the parent zone, and specifies which
1658
 
   RRsets are present at the parent zone.  The second NSEC RRset resides
1659
 
   at the child zone and identifies which RRsets are present at the apex
1660
 
   in the child zone.  The parent NSEC RRset and child NSEC RRset can
1661
 
   always be distinguished as only a child NSEC RR will indicate that an
1662
 
   SOA RRset exists at the name.  When reconstructing the original NSEC
1663
 
   RRset for the delegation from the parent zone, the NSEC RRs MUST NOT
1664
 
   be combined with NSEC RRs from the child zone.  When reconstructing
1665
 
   the original NSEC RRset for the apex of the child zone, the NSEC RRs
1666
 
   MUST NOT be combined with NSEC RRs from the parent zone.
1667
 
 
1668
 
   Note that each of the two NSEC RRsets at a delegation point has a
1669
 
   corresponding RRSIG RR with an owner name matching the delegated
1670
 
   name, and each of these RRSIG RRs is authoritative data associated
1671
 
   with the same zone that contains the corresponding NSEC RRset.  If
1672
 
   necessary, a resolver can tell these RRSIG RRs apart by checking the
1673
 
   Signer's Name field.
1674
 
 
1675
 
 
1676
 
 
1677
 
 
1678
 
 
1679
 
 
1680
 
 
1681
 
 
1682
 
Arends, et al.              Standards Track                    [Page 30]
1683
 
 
1684
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1685
 
 
1686
 
 
1687
 
5.3.3.  Checking the Signature
1688
 
 
1689
 
   Once the resolver has validated the RRSIG RR as described in Section
1690
 
   5.3.1 and reconstructed the original signed data as described in
1691
 
   Section 5.3.2, the validator can attempt to use the cryptographic
1692
 
   signature to authenticate the signed data, and thus (finally!)
1693
 
   authenticate the RRset.
1694
 
 
1695
 
   The Algorithm field in the RRSIG RR identifies the cryptographic
1696
 
   algorithm used to generate the signature.  The signature itself is
1697
 
   contained in the Signature field of the RRSIG RDATA, and the public
1698
 
   key used to verify the signature is contained in the Public Key field
1699
 
   of the matching DNSKEY RR(s) (found in Section 5.3.1).  [RFC4034]
1700
 
   provides a list of algorithm types and provides pointers to the
1701
 
   documents that define each algorithm's use.
1702
 
 
1703
 
   Note that it is possible for more than one DNSKEY RR to match the
1704
 
   conditions in Section 5.3.1.  In this case, the validator can only
1705
 
   determine which DNSKEY RR is correct by trying each matching public
1706
 
   key until the validator either succeeds in validating the signature
1707
 
   or runs out of keys to try.
1708
 
 
1709
 
   If the Labels field of the RRSIG RR is not equal to the number of
1710
 
   labels in the RRset's fully qualified owner name, then the RRset is
1711
 
   either invalid or the result of wildcard expansion.  The resolver
1712
 
   MUST verify that wildcard expansion was applied properly before
1713
 
   considering the RRset to be authentic.  Section 5.3.4 describes how
1714
 
   to determine whether a wildcard was applied properly.
1715
 
 
1716
 
   If other RRSIG RRs also cover this RRset, the local resolver security
1717
 
   policy determines whether the resolver also has to test these RRSIG
1718
 
   RRs and how to resolve conflicts if these RRSIG RRs lead to differing
1719
 
   results.
1720
 
 
1721
 
   If the resolver accepts the RRset as authentic, the validator MUST
1722
 
   set the TTL of the RRSIG RR and each RR in the authenticated RRset to
1723
 
   a value no greater than the minimum of:
1724
 
 
1725
 
   o  the RRset's TTL as received in the response;
1726
 
 
1727
 
   o  the RRSIG RR's TTL as received in the response;
1728
 
 
1729
 
   o  the value in the RRSIG RR's Original TTL field; and
1730
 
 
1731
 
   o  the difference of the RRSIG RR's Signature Expiration time and the
1732
 
      current time.
1733
 
 
1734
 
 
1735
 
 
1736
 
 
1737
 
 
1738
 
Arends, et al.              Standards Track                    [Page 31]
1739
 
 
1740
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1741
 
 
1742
 
 
1743
 
5.3.4.  Authenticating a Wildcard Expanded RRset Positive Response
1744
 
 
1745
 
   If the number of labels in an RRset's owner name is greater than the
1746
 
   Labels field of the covering RRSIG RR, then the RRset and its
1747
 
   covering RRSIG RR were created as a result of wildcard expansion.
1748
 
   Once the validator has verified the signature, as described in
1749
 
   Section 5.3, it must take additional steps to verify the non-
1750
 
   existence of an exact match or closer wildcard match for the query.
1751
 
   Section 5.4 discusses these steps.
1752
 
 
1753
 
   Note that the response received by the resolver should include all
1754
 
   NSEC RRs needed to authenticate the response (see Section 3.1.3).
1755
 
 
1756
 
5.4.  Authenticated Denial of Existence
1757
 
 
1758
 
   A resolver can use authenticated NSEC RRs to prove that an RRset is
1759
 
   not present in a signed zone.  Security-aware name servers should
1760
 
   automatically include any necessary NSEC RRs for signed zones in
1761
 
   their responses to security-aware resolvers.
1762
 
 
1763
 
   Denial of existence is determined by the following rules:
1764
 
 
1765
 
   o  If the requested RR name matches the owner name of an
1766
 
      authenticated NSEC RR, then the NSEC RR's type bit map field lists
1767
 
      all RR types present at that owner name, and a resolver can prove
1768
 
      that the requested RR type does not exist by checking for the RR
1769
 
      type in the bit map.  If the number of labels in an authenticated
1770
 
      NSEC RR's owner name equals the Labels field of the covering RRSIG
1771
 
      RR, then the existence of the NSEC RR proves that wildcard
1772
 
      expansion could not have been used to match the request.
1773
 
 
1774
 
   o  If the requested RR name would appear after an authenticated NSEC
1775
 
      RR's owner name and before the name listed in that NSEC RR's Next
1776
 
      Domain Name field according to the canonical DNS name order
1777
 
      defined in [RFC4034], then no RRsets with the requested name exist
1778
 
      in the zone.  However, it is possible that a wildcard could be
1779
 
      used to match the requested RR owner name and type, so proving
1780
 
      that the requested RRset does not exist also requires proving that
1781
 
      no possible wildcard RRset exists that could have been used to
1782
 
      generate a positive response.
1783
 
 
1784
 
   In addition, security-aware resolvers MUST authenticate the NSEC
1785
 
   RRsets that comprise the non-existence proof as described in Section
1786
 
   5.3.
1787
 
 
1788
 
   To prove the non-existence of an RRset, the resolver must be able to
1789
 
   verify both that the queried RRset does not exist and that no
1790
 
   relevant wildcard RRset exists.  Proving this may require more than
1791
 
 
1792
 
 
1793
 
 
1794
 
Arends, et al.              Standards Track                    [Page 32]
1795
 
 
1796
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1797
 
 
1798
 
 
1799
 
   one NSEC RRset from the zone.  If the complete set of necessary NSEC
1800
 
   RRsets is not present in a response (perhaps due to message
1801
 
   truncation), then a security-aware resolver MUST resend the query in
1802
 
   order to attempt to obtain the full collection of NSEC RRs necessary
1803
 
   to verify the non-existence of the requested RRset.  As with all DNS
1804
 
   operations, however, the resolver MUST bound the work it puts into
1805
 
   answering any particular query.
1806
 
 
1807
 
   Since a validated NSEC RR proves the existence of both itself and its
1808
 
   corresponding RRSIG RR, a validator MUST ignore the settings of the
1809
 
   NSEC and RRSIG bits in an NSEC RR.
1810
 
 
1811
 
5.5.  Resolver Behavior When Signatures Do Not Validate
1812
 
 
1813
 
   If for whatever reason none of the RRSIGs can be validated, the
1814
 
   response SHOULD be considered BAD.  If the validation was being done
1815
 
   to service a recursive query, the name server MUST return RCODE 2 to
1816
 
   the originating client.  However, it MUST return the full response if
1817
 
   and only if the original query had the CD bit set.  Also see Section
1818
 
   4.7 on caching responses that do not validate.
1819
 
 
1820
 
5.6.  Authentication Example
1821
 
 
1822
 
   Appendix C shows an example of the authentication process.
1823
 
 
1824
 
6.  IANA Considerations
1825
 
 
1826
 
   [RFC4034] contains a review of the IANA considerations introduced by
1827
 
   DNSSEC.  The following are additional IANA considerations discussed
1828
 
   in this document:
1829
 
 
1830
 
   [RFC2535] reserved the CD and AD bits in the message header.  The
1831
 
   meaning of the AD bit was redefined in [RFC3655], and the meaning of
1832
 
   both the CD and AD bit are restated in this document.  No new bits in
1833
 
   the DNS message header are defined in this document.
1834
 
 
1835
 
   [RFC2671] introduced EDNS, and [RFC3225] reserved the DNSSEC OK bit
1836
 
   and defined its use.  The use is restated but not altered in this
1837
 
   document.
1838
 
 
1839
 
7.  Security Considerations
1840
 
 
1841
 
   This document describes how the DNS security extensions use public
1842
 
   key cryptography to sign and authenticate DNS resource record sets.
1843
 
   Please see [RFC4033] for terminology and general security
1844
 
   considerations related to DNSSEC; see [RFC4034] for considerations
1845
 
   specific to the DNSSEC resource record types.
1846
 
 
1847
 
 
1848
 
 
1849
 
 
1850
 
Arends, et al.              Standards Track                    [Page 33]
1851
 
 
1852
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1853
 
 
1854
 
 
1855
 
   An active attacker who can set the CD bit in a DNS query message or
1856
 
   the AD bit in a DNS response message can use these bits to defeat the
1857
 
   protection that DNSSEC attempts to provide to security-oblivious
1858
 
   recursive-mode resolvers.  For this reason, use of these control bits
1859
 
   by a security-aware recursive-mode resolver requires a secure
1860
 
   channel.  See Sections 3.2.2 and 4.9 for further discussion.
1861
 
 
1862
 
   The protocol described in this document attempts to extend the
1863
 
   benefits of DNSSEC to security-oblivious stub resolvers.  However, as
1864
 
   recovery from validation failures is likely to be specific to
1865
 
   particular applications, the facilities that DNSSEC provides for stub
1866
 
   resolvers may prove inadequate.  Operators of security-aware
1867
 
   recursive name servers will have to pay close attention to the
1868
 
   behavior of the applications that use their services when choosing a
1869
 
   local validation policy; failure to do so could easily result in the
1870
 
   recursive name server accidentally denying service to the clients it
1871
 
   is intended to support.
1872
 
 
1873
 
8.  Acknowledgements
1874
 
 
1875
 
   This document was created from the input and ideas of the members of
1876
 
   the DNS Extensions Working Group and working group mailing list.  The
1877
 
   editors would like to express their thanks for the comments and
1878
 
   suggestions received during the revision of these security extension
1879
 
   specifications.  Although explicitly listing everyone who has
1880
 
   contributed during the decade in which DNSSEC has been under
1881
 
   development would be impossible, [RFC4033] includes a list of some of
1882
 
   the participants who were kind enough to comment on these documents.
1883
 
 
1884
 
9.  References
1885
 
 
1886
 
9.1.  Normative References
1887
 
 
1888
 
   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
1889
 
              STD 13, RFC 1034, November 1987.
1890
 
 
1891
 
   [RFC1035]  Mockapetris, P., "Domain names - implementation and
1892
 
              specification", STD 13, RFC 1035, November 1987.
1893
 
 
1894
 
   [RFC1122]  Braden, R., "Requirements for Internet Hosts -
1895
 
              Communication Layers", STD 3, RFC 1122, October 1989.
1896
 
 
1897
 
   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
1898
 
              Requirement Levels", BCP 14, RFC 2119, March 1997.
1899
 
 
1900
 
   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
1901
 
              Specification", RFC 2181, July 1997.
1902
 
 
1903
 
 
1904
 
 
1905
 
 
1906
 
Arends, et al.              Standards Track                    [Page 34]
1907
 
 
1908
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1909
 
 
1910
 
 
1911
 
   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
1912
 
              (IPv6) Specification", RFC 2460, December 1998.
1913
 
 
1914
 
   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC
1915
 
              2671, August 1999.
1916
 
 
1917
 
   [RFC2672]  Crawford, M., "Non-Terminal DNS Name Redirection", RFC
1918
 
              2672, August 1999.
1919
 
 
1920
 
   [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC", RFC
1921
 
              3225, December 2001.
1922
 
 
1923
 
   [RFC3226]  Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver
1924
 
              message size requirements", RFC 3226, December 2001.
1925
 
 
1926
 
   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
1927
 
              Rose, "DNS Security Introduction and Requirements", RFC
1928
 
              4033, March 2005.
1929
 
 
1930
 
   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
1931
 
              Rose, "Resource Records for DNS Security Extensions", RFC
1932
 
              4034, March 2005.
1933
 
 
1934
 
9.2.  Informative References
1935
 
 
1936
 
   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS
1937
 
              NCACHE)", RFC 2308, March 1998.
1938
 
 
1939
 
   [RFC2535]  Eastlake 3rd, D., "Domain Name System Security
1940
 
              Extensions", RFC 2535, March 1999.
1941
 
 
1942
 
   [RFC3007]  Wellington, B., "Secure Domain Name System (DNS) Dynamic
1943
 
              Update", RFC 3007, November 2000.
1944
 
 
1945
 
   [RFC3655]  Wellington, B. and O. Gudmundsson, "Redefinition of DNS
1946
 
              Authenticated Data (AD) bit", RFC 3655, November 2003.
1947
 
 
1948
 
 
1949
 
 
1950
 
 
1951
 
 
1952
 
 
1953
 
 
1954
 
 
1955
 
 
1956
 
 
1957
 
 
1958
 
 
1959
 
 
1960
 
 
1961
 
 
1962
 
Arends, et al.              Standards Track                    [Page 35]
1963
 
 
1964
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
1965
 
 
1966
 
 
1967
 
Appendix A.  Signed Zone Example
1968
 
 
1969
 
   The following example shows a (small) complete signed zone.
1970
 
 
1971
 
   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
1972
 
                              1081539377
1973
 
                              3600
1974
 
                              300
1975
 
                              3600000
1976
 
                              3600
1977
 
                              )
1978
 
                  3600 RRSIG  SOA 5 1 3600 20040509183619 (
1979
 
                              20040409183619 38519 example.
1980
 
                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h
1981
 
                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF
1982
 
                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW
1983
 
                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB
1984
 
                              jV7j86HyQgM5e7+miRAz8V01b0I= )
1985
 
                  3600 NS     ns1.example.
1986
 
                  3600 NS     ns2.example.
1987
 
                  3600 RRSIG  NS 5 1 3600 20040509183619 (
1988
 
                              20040409183619 38519 example.
1989
 
                              gl13F00f2U0R+SWiXXLHwsMY+qStYy5k6zfd
1990
 
                              EuivWc+wd1fmbNCyql0Tk7lHTX6UOxc8AgNf
1991
 
                              4ISFve8XqF4q+o9qlnqIzmppU3LiNeKT4FZ8
1992
 
                              RO5urFOvoMRTbQxW3U0hXWuggE4g3ZpsHv48
1993
 
                              0HjMeRaZB/FRPGfJPajngcq6Kwg= )
1994
 
                  3600 MX     1 xx.example.
1995
 
                  3600 RRSIG  MX 5 1 3600 20040509183619 (
1996
 
                              20040409183619 38519 example.
1997
 
                              HyDHYVT5KHSZ7HtO/vypumPmSZQrcOP3tzWB
1998
 
                              2qaKkHVPfau/DgLgS/IKENkYOGL95G4N+NzE
1999
 
                              VyNU8dcTOckT+ChPcGeVjguQ7a3Ao9Z/ZkUO
2000
 
                              6gmmUW4b89rz1PUxW4jzUxj66PTwoVtUU/iM
2001
 
                              W6OISukd1EQt7a0kygkg+PEDxdI= )
2002
 
                  3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY
2003
 
                  3600 RRSIG  NSEC 5 1 3600 20040509183619 (
2004
 
                              20040409183619 38519 example.
2005
 
                              O0k558jHhyrC97ISHnislm4kLMW48C7U7cBm
2006
 
                              FTfhke5iVqNRVTB1STLMpgpbDIC9hcryoO0V
2007
 
                              Z9ME5xPzUEhbvGnHd5sfzgFVeGxr5Nyyq4tW
2008
 
                              SDBgIBiLQUv1ivy29vhXy7WgR62dPrZ0PWvm
2009
 
                              jfFJ5arXf4nPxp/kEowGgBRzY/U= )
2010
 
                  3600 DNSKEY 256 3 5 (
2011
 
                              AQOy1bZVvpPqhg4j7EJoM9rI3ZmyEx2OzDBV
2012
 
                              rZy/lvI5CQePxXHZS4i8dANH4DX3tbHol61e
2013
 
                              k8EFMcsGXxKciJFHyhl94C+NwILQdzsUlSFo
2014
 
                              vBZsyl/NX6yEbtw/xN9ZNcrbYvgjjZ/UVPZI
2015
 
 
2016
 
 
2017
 
 
2018
 
Arends, et al.              Standards Track                    [Page 36]
2019
 
 
2020
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2021
 
 
2022
 
 
2023
 
                              ySFNsgEYvh0z2542lzMKR4Dh8uZffQ==
2024
 
                              )
2025
 
                  3600 DNSKEY 257 3 5 (
2026
 
                              AQOeX7+baTmvpVHb2CcLnL1dMRWbuscRvHXl
2027
 
                              LnXwDzvqp4tZVKp1sZMepFb8MvxhhW3y/0QZ
2028
 
                              syCjczGJ1qk8vJe52iOhInKROVLRwxGpMfzP
2029
 
                              RLMlGybr51bOV/1se0ODacj3DomyB4QB5gKT
2030
 
                              Yot/K9alk5/j8vfd4jWCWD+E1Sze0Q==
2031
 
                              )
2032
 
                  3600 RRSIG  DNSKEY 5 1 3600 20040509183619 (
2033
 
                              20040409183619 9465 example.
2034
 
                              ZxgauAuIj+k1YoVEOSlZfx41fcmKzTFHoweZ
2035
 
                              xYnz99JVQZJ33wFS0Q0jcP7VXKkaElXk9nYJ
2036
 
                              XevO/7nAbo88iWsMkSpSR6jWzYYKwfrBI/L9
2037
 
                              hjYmyVO9m6FjQ7uwM4dCP/bIuV/DKqOAK9NY
2038
 
                              NC3AHfvCV1Tp4VKDqxqG7R5tTVM= )
2039
 
                  3600 RRSIG  DNSKEY 5 1 3600 20040509183619 (
2040
 
                              20040409183619 38519 example.
2041
 
                              eGL0s90glUqcOmloo/2y+bSzyEfKVOQViD9Z
2042
 
                              DNhLz/Yn9CQZlDVRJffACQDAUhXpU/oP34ri
2043
 
                              bKBpysRXosczFrKqS5Oa0bzMOfXCXup9qHAp
2044
 
                              eFIku28Vqfr8Nt7cigZLxjK+u0Ws/4lIRjKk
2045
 
                              7z5OXogYVaFzHKillDt3HRxHIZM= )
2046
 
   a.example.     3600 IN NS  ns1.a.example.
2047
 
                  3600 IN NS  ns2.a.example.
2048
 
                  3600 DS     57855 5 1 (
2049
 
                              B6DCD485719ADCA18E5F3D48A2331627FDD3
2050
 
                              636B )
2051
 
                  3600 RRSIG  DS 5 2 3600 20040509183619 (
2052
 
                              20040409183619 38519 example.
2053
 
                              oXIKit/QtdG64J/CB+Gi8dOvnwRvqrto1AdQ
2054
 
                              oRkAN15FP3iZ7suB7gvTBmXzCjL7XUgQVcoH
2055
 
                              kdhyCuzp8W9qJHgRUSwKKkczSyuL64nhgjuD
2056
 
                              EML8l9wlWVsl7PR2VnZduM9bLyBhaaPmRKX/
2057
 
                              Fm+v6ccF2EGNLRiY08kdkz+XHHo= )
2058
 
                  3600 NSEC   ai.example. NS DS RRSIG NSEC
2059
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2060
 
                              20040409183619 38519 example.
2061
 
                              cOlYgqJLqlRqmBQ3iap2SyIsK4O5aqpKSoba
2062
 
                              U9fQ5SMApZmHfq3AgLflkrkXRXvgxTQSKkG2
2063
 
                              039/cRUs6Jk/25+fi7Xr5nOVJsb0lq4zsB3I
2064
 
                              BBdjyGDAHE0F5ROJj87996vJupdm1fbH481g
2065
 
                              sdkOW6Zyqtz3Zos8N0BBkEx+2G4= )
2066
 
   ns1.a.example. 3600 IN A   192.0.2.5
2067
 
   ns2.a.example. 3600 IN A   192.0.2.6
2068
 
   ai.example.    3600 IN A   192.0.2.9
2069
 
                  3600 RRSIG  A 5 2 3600 20040509183619 (
2070
 
                              20040409183619 38519 example.
2071
 
 
2072
 
 
2073
 
 
2074
 
Arends, et al.              Standards Track                    [Page 37]
2075
 
 
2076
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2077
 
 
2078
 
 
2079
 
                              pAOtzLP2MU0tDJUwHOKE5FPIIHmdYsCgTb5B
2080
 
                              ERGgpnJluA9ixOyf6xxVCgrEJW0WNZSsJicd
2081
 
                              hBHXfDmAGKUajUUlYSAH8tS4ZnrhyymIvk3u
2082
 
                              ArDu2wfT130e9UHnumaHHMpUTosKe22PblOy
2083
 
                              6zrTpg9FkS0XGVmYRvOTNYx2HvQ= )
2084
 
                  3600 HINFO  "KLH-10" "ITS"
2085
 
                  3600 RRSIG  HINFO 5 2 3600 20040509183619 (
2086
 
                              20040409183619 38519 example.
2087
 
                              Iq/RGCbBdKzcYzlGE4ovbr5YcB+ezxbZ9W0l
2088
 
                              e/7WqyvhOO9J16HxhhL7VY/IKmTUY0GGdcfh
2089
 
                              ZEOCkf4lEykZF9NPok1/R/fWrtzNp8jobuY7
2090
 
                              AZEcZadp1WdDF3jc2/ndCa5XZhLKD3JzOsBw
2091
 
                              FvL8sqlS5QS6FY/ijFEDnI4RkZA= )
2092
 
                  3600 AAAA   2001:db8::f00:baa9
2093
 
                  3600 RRSIG  AAAA 5 2 3600 20040509183619 (
2094
 
                              20040409183619 38519 example.
2095
 
                              nLcpFuXdT35AcE+EoafOUkl69KB+/e56XmFK
2096
 
                              kewXG2IadYLKAOBIoR5+VoQV3XgTcofTJNsh
2097
 
                              1rnF6Eav2zpZB3byI6yo2bwY8MNkr4A7cL9T
2098
 
                              cMmDwV/hWFKsbGBsj8xSCN/caEL2CWY/5XP2
2099
 
                              sZM6QjBBLmukH30+w1z3h8PUP2o= )
2100
 
                  3600 NSEC   b.example. A HINFO AAAA RRSIG NSEC
2101
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2102
 
                              20040409183619 38519 example.
2103
 
                              QoshyPevLcJ/xcRpEtMft1uoIrcrieVcc9pG
2104
 
                              CScIn5Glnib40T6ayVOimXwdSTZ/8ISXGj4p
2105
 
                              P8Sh0PlA6olZQ84L453/BUqB8BpdOGky4hsN
2106
 
                              3AGcLEv1Gr0QMvirQaFcjzOECfnGyBm+wpFL
2107
 
                              AhS+JOVfDI/79QtyTI0SaDWcg8U= )
2108
 
   b.example.     3600 IN NS  ns1.b.example.
2109
 
                  3600 IN NS  ns2.b.example.
2110
 
                  3600 NSEC   ns1.example. NS RRSIG NSEC
2111
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2112
 
                              20040409183619 38519 example.
2113
 
                              GNuxHn844wfmUhPzGWKJCPY5ttEX/RfjDoOx
2114
 
                              9ueK1PtYkOWKOOdiJ/PJKCYB3hYX+858dDWS
2115
 
                              xb2qnV/LSTCNVBnkm6owOpysY97MVj5VQEWs
2116
 
                              0lm9tFoqjcptQkmQKYPrwUnCSNwvvclSF1xZ
2117
 
                              vhRXgWT7OuFXldoCG6TfVFMs9xE= )
2118
 
   ns1.b.example. 3600 IN A   192.0.2.7
2119
 
   ns2.b.example. 3600 IN A   192.0.2.8
2120
 
   ns1.example.   3600 IN A   192.0.2.1
2121
 
                  3600 RRSIG  A 5 2 3600 20040509183619 (
2122
 
                              20040409183619 38519 example.
2123
 
                              F1C9HVhIcs10cZU09G5yIVfKJy5yRQQ3qVet
2124
 
                              5pGhp82pzhAOMZ3K22JnmK4c+IjUeFp/to06
2125
 
                              im5FVpHtbFisdjyPq84bhTv8vrXt5AB1wNB+
2126
 
                              +iAqvIfdgW4sFNC6oADb1hK8QNauw9VePJhK
2127
 
 
2128
 
 
2129
 
 
2130
 
Arends, et al.              Standards Track                    [Page 38]
2131
 
 
2132
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2133
 
 
2134
 
 
2135
 
                              v/iVXSYC0b7mPSU+EOlknFpVECs= )
2136
 
                  3600 NSEC   ns2.example. A RRSIG NSEC
2137
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2138
 
                              20040409183619 38519 example.
2139
 
                              I4hj+Kt6+8rCcHcUdolks2S+Wzri9h3fHas8
2140
 
                              1rGN/eILdJHN7JpV6lLGPIh/8fIBkfvdyWnB
2141
 
                              jjf1q3O7JgYO1UdI7FvBNWqaaEPJK3UkddBq
2142
 
                              ZIaLi8Qr2XHkjq38BeQsbp8X0+6h4ETWSGT8
2143
 
                              IZaIGBLryQWGLw6Y6X8dqhlnxJM= )
2144
 
   ns2.example.   3600 IN A   192.0.2.2
2145
 
                  3600 RRSIG  A 5 2 3600 20040509183619 (
2146
 
                              20040409183619 38519 example.
2147
 
                              V7cQRw1TR+knlaL1z/psxlS1PcD37JJDaCMq
2148
 
                              Qo6/u1qFQu6x+wuDHRH22Ap9ulJPQjFwMKOu
2149
 
                              yfPGQPC8KzGdE3vt5snFEAoE1Vn3mQqtu7SO
2150
 
                              6amIjk13Kj/jyJ4nGmdRIc/3cM3ipXFhNTKq
2151
 
                              rdhx8SZ0yy4ObIRzIzvBFLiSS8o= )
2152
 
                  3600 NSEC   *.w.example. A RRSIG NSEC
2153
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2154
 
                              20040409183619 38519 example.
2155
 
                              N0QzHvaJf5NRw1rE9uxS1Ltb2LZ73Qb9bKGE
2156
 
                              VyaISkqzGpP3jYJXZJPVTq4UVEsgT3CgeHvb
2157
 
                              3QbeJ5Dfb2V9NGCHj/OvF/LBxFFWwhLwzngH
2158
 
                              l+bQAgAcMsLu/nL3nDi1y/JSQjAcdZNDl4bw
2159
 
                              Ymx28EtgIpo9A0qmP08rMBqs1Jw= )
2160
 
   *.w.example.   3600 IN MX  1 ai.example.
2161
 
                  3600 RRSIG  MX 5 2 3600 20040509183619 (
2162
 
                              20040409183619 38519 example.
2163
 
                              OMK8rAZlepfzLWW75Dxd63jy2wswESzxDKG2
2164
 
                              f9AMN1CytCd10cYISAxfAdvXSZ7xujKAtPbc
2165
 
                              tvOQ2ofO7AZJ+d01EeeQTVBPq4/6KCWhqe2X
2166
 
                              TjnkVLNvvhnc0u28aoSsG0+4InvkkOHknKxw
2167
 
                              4kX18MMR34i8lC36SR5xBni8vHI= )
2168
 
                  3600 NSEC   x.w.example. MX RRSIG NSEC
2169
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2170
 
                              20040409183619 38519 example.
2171
 
                              r/mZnRC3I/VIcrelgIcteSxDhtsdlTDt8ng9
2172
 
                              HSBlABOlzLxQtfgTnn8f+aOwJIAFe1Ee5RvU
2173
 
                              5cVhQJNP5XpXMJHfyps8tVvfxSAXfahpYqtx
2174
 
                              91gsmcV/1V9/bZAG55CefP9cM4Z9Y9NT9XQ8
2175
 
                              s1InQ2UoIv6tJEaaKkP701j8OLA= )
2176
 
   x.w.example.   3600 IN MX  1 xx.example.
2177
 
                  3600 RRSIG  MX 5 3 3600 20040509183619 (
2178
 
                              20040409183619 38519 example.
2179
 
                              Il2WTZ+Bkv+OytBx4LItNW5mjB4RCwhOO8y1
2180
 
                              XzPHZmZUTVYL7LaA63f6T9ysVBzJRI3KRjAP
2181
 
                              H3U1qaYnDoN1DrWqmi9RJe4FoObkbcdm7P3I
2182
 
                              kx70ePCoFgRz1Yq+bVVXCvGuAU4xALv3W/Y1
2183
 
 
2184
 
 
2185
 
 
2186
 
Arends, et al.              Standards Track                    [Page 39]
2187
 
 
2188
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2189
 
 
2190
 
 
2191
 
                              jNSlwZ2mSWKHfxFQxPtLj8s32+k= )
2192
 
                  3600 NSEC   x.y.w.example. MX RRSIG NSEC
2193
 
                  3600 RRSIG  NSEC 5 3 3600 20040509183619 (
2194
 
                              20040409183619 38519 example.
2195
 
                              aRbpHftxggzgMXdDlym9SsADqMZovZZl2QWK
2196
 
                              vw8J0tZEUNQByH5Qfnf5N1FqH/pS46UA7A4E
2197
 
                              mcWBN9PUA1pdPY6RVeaRlZlCr1IkVctvbtaI
2198
 
                              NJuBba/VHm+pebTbKcAPIvL9tBOoh+to1h6e
2199
 
                              IjgiM8PXkBQtxPq37wDKALkyn7Q= )
2200
 
   x.y.w.example. 3600 IN MX  1 xx.example.
2201
 
                  3600 RRSIG  MX 5 4 3600 20040509183619 (
2202
 
                              20040409183619 38519 example.
2203
 
                              k2bJHbwP5LH5qN4is39UiPzjAWYmJA38Hhia
2204
 
                              t7i9t7nbX/e0FPnvDSQXzcK7UL+zrVA+3MDj
2205
 
                              q1ub4q3SZgcbLMgexxIW3Va//LVrxkP6Xupq
2206
 
                              GtOB9prkK54QTl/qZTXfMQpW480YOvVknhvb
2207
 
                              +gLcMZBnHJ326nb/TOOmrqNmQQE= )
2208
 
                  3600 NSEC   xx.example. MX RRSIG NSEC
2209
 
                  3600 RRSIG  NSEC 5 4 3600 20040509183619 (
2210
 
                              20040409183619 38519 example.
2211
 
                              OvE6WUzN2ziieJcvKPWbCAyXyP6ef8cr6Csp
2212
 
                              ArVSTzKSquNwbezZmkU7E34o5lmb6CWSSSpg
2213
 
                              xw098kNUFnHcQf/LzY2zqRomubrNQhJTiDTX
2214
 
                              a0ArunJQCzPjOYq5t0SLjm6qp6McJI1AP5Vr
2215
 
                              QoKqJDCLnoAlcPOPKAm/jJkn3jk= )
2216
 
   xx.example.    3600 IN A   192.0.2.10
2217
 
                  3600 RRSIG  A 5 2 3600 20040509183619 (
2218
 
                              20040409183619 38519 example.
2219
 
                              kBF4YxMGWF0D8r0cztL+2fWWOvN1U/GYSpYP
2220
 
                              7SoKoNQ4fZKyk+weWGlKLIUM+uE1zjVTPXoa
2221
 
                              0Z6WG0oZp46rkl1EzMcdMgoaeUzzAJ2BMq+Y
2222
 
                              VdxG9IK1yZkYGY9AgbTOGPoAgbJyO9EPULsx
2223
 
                              kbIDV6GPPSZVusnZU6OMgdgzHV4= )
2224
 
                  3600 HINFO  "KLH-10" "TOPS-20"
2225
 
                  3600 RRSIG  HINFO 5 2 3600 20040509183619 (
2226
 
                              20040409183619 38519 example.
2227
 
                              GY2PLSXmMHkWHfLdggiox8+chWpeMNJLkML0
2228
 
                              t+U/SXSUsoUdR91KNdNUkTDWamwcF8oFRjhq
2229
 
                              BcPZ6EqrF+vl5v5oGuvSF7U52epfVTC+wWF8
2230
 
                              3yCUeUw8YklhLWlvk8gQ15YKth0ITQy8/wI+
2231
 
                              RgNvuwbioFSEuv2pNlkq0goYxNY= )
2232
 
                  3600 AAAA   2001:db8::f00:baaa
2233
 
                  3600 RRSIG  AAAA 5 2 3600 20040509183619 (
2234
 
                              20040409183619 38519 example.
2235
 
                              Zzj0yodDxcBLnnOIwDsuKo5WqiaK24DlKg9C
2236
 
                              aGaxDFiKgKobUj2jilYQHpGFn2poFRetZd4z
2237
 
                              ulyQkssz2QHrVrPuTMS22knudCiwP4LWpVTr
2238
 
                              U4zfeA+rDz9stmSBP/4PekH/x2IoAYnwctd/
2239
 
 
2240
 
 
2241
 
 
2242
 
Arends, et al.              Standards Track                    [Page 40]
2243
 
 
2244
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2245
 
 
2246
 
 
2247
 
                              xS9cL2QgW7FChw16mzlkH6/vsfs= )
2248
 
                  3600 NSEC   example. A HINFO AAAA RRSIG NSEC
2249
 
                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2250
 
                              20040409183619 38519 example.
2251
 
                              ZFWUln6Avc8bmGl5GFjD3BwT530DUZKHNuoY
2252
 
                              9A8lgXYyrxu+pqgFiRVbyZRQvVB5pccEOT3k
2253
 
                              mvHgEa/HzbDB4PIYY79W+VHrgOxzdQGGCZzi
2254
 
                              asXrpSGOWwSOElghPnMIi8xdF7qtCntr382W
2255
 
                              GghLahumFIpg4MO3LS/prgzVVWo= )
2256
 
 
2257
 
   The apex DNSKEY set includes two DNSKEY RRs, and the DNSKEY RDATA
2258
 
   Flags indicate that each of these DNSKEY RRs is a zone key.  One of
2259
 
   these DNSKEY RRs also has the SEP flag set and has been used to sign
2260
 
   the apex DNSKEY RRset; this is the key that should be hashed to
2261
 
   generate a DS record to be inserted into the parent zone.  The other
2262
 
   DNSKEY is used to sign all the other RRsets in the zone.
2263
 
 
2264
 
   The zone includes a wildcard entry, "*.w.example".  Note that the
2265
 
   name "*.w.example" is used in constructing NSEC chains, and that the
2266
 
   RRSIG covering the "*.w.example" MX RRset has a label count of 2.
2267
 
 
2268
 
   The zone also includes two delegations.  The delegation to
2269
 
   "b.example" includes an NS RRset, glue address records, and an NSEC
2270
 
   RR; note that only the NSEC RRset is signed.  The delegation to
2271
 
   "a.example" provides a DS RR; note that only the NSEC and DS RRsets
2272
 
   are signed.
2273
 
 
2274
 
Appendix B.  Example Responses
2275
 
 
2276
 
   The examples in this section show response messages using the signed
2277
 
   zone example in Appendix A.
2278
 
 
2279
 
B.1.  Answer
2280
 
 
2281
 
   A successful query to an authoritative server.
2282
 
 
2283
 
   ;; Header: QR AA DO RCODE=0
2284
 
   ;;
2285
 
   ;; Question
2286
 
   x.w.example.        IN MX
2287
 
 
2288
 
   ;; Answer
2289
 
   x.w.example.   3600 IN MX  1 xx.example.
2290
 
   x.w.example.   3600 RRSIG  MX 5 3 3600 20040509183619 (
2291
 
                              20040409183619 38519 example.
2292
 
                              Il2WTZ+Bkv+OytBx4LItNW5mjB4RCwhOO8y1
2293
 
                              XzPHZmZUTVYL7LaA63f6T9ysVBzJRI3KRjAP
2294
 
                              H3U1qaYnDoN1DrWqmi9RJe4FoObkbcdm7P3I
2295
 
 
2296
 
 
2297
 
 
2298
 
Arends, et al.              Standards Track                    [Page 41]
2299
 
 
2300
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2301
 
 
2302
 
 
2303
 
                              kx70ePCoFgRz1Yq+bVVXCvGuAU4xALv3W/Y1
2304
 
                              jNSlwZ2mSWKHfxFQxPtLj8s32+k= )
2305
 
 
2306
 
   ;; Authority
2307
 
   example.       3600 NS     ns1.example.
2308
 
   example.       3600 NS     ns2.example.
2309
 
   example.       3600 RRSIG  NS 5 1 3600 20040509183619 (
2310
 
                              20040409183619 38519 example.
2311
 
                              gl13F00f2U0R+SWiXXLHwsMY+qStYy5k6zfd
2312
 
                              EuivWc+wd1fmbNCyql0Tk7lHTX6UOxc8AgNf
2313
 
                              4ISFve8XqF4q+o9qlnqIzmppU3LiNeKT4FZ8
2314
 
                              RO5urFOvoMRTbQxW3U0hXWuggE4g3ZpsHv48
2315
 
                              0HjMeRaZB/FRPGfJPajngcq6Kwg= )
2316
 
 
2317
 
   ;; Additional
2318
 
   xx.example.    3600 IN A   192.0.2.10
2319
 
   xx.example.    3600 RRSIG  A 5 2 3600 20040509183619 (
2320
 
                              20040409183619 38519 example.
2321
 
                              kBF4YxMGWF0D8r0cztL+2fWWOvN1U/GYSpYP
2322
 
                              7SoKoNQ4fZKyk+weWGlKLIUM+uE1zjVTPXoa
2323
 
                              0Z6WG0oZp46rkl1EzMcdMgoaeUzzAJ2BMq+Y
2324
 
                              VdxG9IK1yZkYGY9AgbTOGPoAgbJyO9EPULsx
2325
 
                              kbIDV6GPPSZVusnZU6OMgdgzHV4= )
2326
 
   xx.example.    3600 AAAA   2001:db8::f00:baaa
2327
 
   xx.example.    3600 RRSIG  AAAA 5 2 3600 20040509183619 (
2328
 
                              20040409183619 38519 example.
2329
 
                              Zzj0yodDxcBLnnOIwDsuKo5WqiaK24DlKg9C
2330
 
                              aGaxDFiKgKobUj2jilYQHpGFn2poFRetZd4z
2331
 
                              ulyQkssz2QHrVrPuTMS22knudCiwP4LWpVTr
2332
 
                              U4zfeA+rDz9stmSBP/4PekH/x2IoAYnwctd/
2333
 
                              xS9cL2QgW7FChw16mzlkH6/vsfs= )
2334
 
   ns1.example.   3600 IN A   192.0.2.1
2335
 
   ns1.example.   3600 RRSIG  A 5 2 3600 20040509183619 (
2336
 
                              20040409183619 38519 example.
2337
 
                              F1C9HVhIcs10cZU09G5yIVfKJy5yRQQ3qVet
2338
 
                              5pGhp82pzhAOMZ3K22JnmK4c+IjUeFp/to06
2339
 
                              im5FVpHtbFisdjyPq84bhTv8vrXt5AB1wNB+
2340
 
                              +iAqvIfdgW4sFNC6oADb1hK8QNauw9VePJhK
2341
 
                              v/iVXSYC0b7mPSU+EOlknFpVECs= )
2342
 
   ns2.example.   3600 IN A   192.0.2.2
2343
 
   ns2.example.   3600 RRSIG  A 5 2 3600 20040509183619 (
2344
 
                              20040409183619 38519 example.
2345
 
                              V7cQRw1TR+knlaL1z/psxlS1PcD37JJDaCMq
2346
 
                              Qo6/u1qFQu6x+wuDHRH22Ap9ulJPQjFwMKOu
2347
 
                              yfPGQPC8KzGdE3vt5snFEAoE1Vn3mQqtu7SO
2348
 
                              6amIjk13Kj/jyJ4nGmdRIc/3cM3ipXFhNTKq
2349
 
                              rdhx8SZ0yy4ObIRzIzvBFLiSS8o= )
2350
 
 
2351
 
 
2352
 
 
2353
 
 
2354
 
Arends, et al.              Standards Track                    [Page 42]
2355
 
 
2356
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2357
 
 
2358
 
 
2359
 
B.2.  Name Error
2360
 
 
2361
 
   An authoritative name error.  The NSEC RRs prove that the name does
2362
 
   not exist and that no covering wildcard exists.
2363
 
 
2364
 
   ;; Header: QR AA DO RCODE=3
2365
 
   ;;
2366
 
   ;; Question
2367
 
   ml.example.         IN A
2368
 
 
2369
 
   ;; Answer
2370
 
   ;; (empty)
2371
 
 
2372
 
   ;; Authority
2373
 
   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
2374
 
                              1081539377
2375
 
                              3600
2376
 
                              300
2377
 
                              3600000
2378
 
                              3600
2379
 
                              )
2380
 
   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (
2381
 
                              20040409183619 38519 example.
2382
 
                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h
2383
 
                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF
2384
 
                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW
2385
 
                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB
2386
 
                              jV7j86HyQgM5e7+miRAz8V01b0I= )
2387
 
   b.example.     3600 NSEC   ns1.example. NS RRSIG NSEC
2388
 
   b.example.     3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2389
 
                              20040409183619 38519 example.
2390
 
                              GNuxHn844wfmUhPzGWKJCPY5ttEX/RfjDoOx
2391
 
                              9ueK1PtYkOWKOOdiJ/PJKCYB3hYX+858dDWS
2392
 
                              xb2qnV/LSTCNVBnkm6owOpysY97MVj5VQEWs
2393
 
                              0lm9tFoqjcptQkmQKYPrwUnCSNwvvclSF1xZ
2394
 
                              vhRXgWT7OuFXldoCG6TfVFMs9xE= )
2395
 
   example.       3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY
2396
 
   example.       3600 RRSIG  NSEC 5 1 3600 20040509183619 (
2397
 
                              20040409183619 38519 example.
2398
 
                              O0k558jHhyrC97ISHnislm4kLMW48C7U7cBm
2399
 
                              FTfhke5iVqNRVTB1STLMpgpbDIC9hcryoO0V
2400
 
                              Z9ME5xPzUEhbvGnHd5sfzgFVeGxr5Nyyq4tW
2401
 
                              SDBgIBiLQUv1ivy29vhXy7WgR62dPrZ0PWvm
2402
 
                              jfFJ5arXf4nPxp/kEowGgBRzY/U= )
2403
 
 
2404
 
   ;; Additional
2405
 
   ;; (empty)
2406
 
 
2407
 
 
2408
 
 
2409
 
 
2410
 
Arends, et al.              Standards Track                    [Page 43]
2411
 
 
2412
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2413
 
 
2414
 
 
2415
 
B.3.  No Data Error
2416
 
 
2417
 
   A "no data" response.  The NSEC RR proves that the name exists and
2418
 
   that the requested RR type does not.
2419
 
 
2420
 
   ;; Header: QR AA DO RCODE=0
2421
 
   ;;
2422
 
   ;; Question
2423
 
   ns1.example.        IN MX
2424
 
 
2425
 
   ;; Answer
2426
 
   ;; (empty)
2427
 
 
2428
 
   ;; Authority
2429
 
   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
2430
 
                              1081539377
2431
 
                              3600
2432
 
                              300
2433
 
                              3600000
2434
 
                              3600
2435
 
                              )
2436
 
   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (
2437
 
                              20040409183619 38519 example.
2438
 
                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h
2439
 
                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF
2440
 
                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW
2441
 
                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB
2442
 
                              jV7j86HyQgM5e7+miRAz8V01b0I= )
2443
 
   ns1.example.   3600 NSEC   ns2.example. A RRSIG NSEC
2444
 
   ns1.example.   3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2445
 
                              20040409183619 38519 example.
2446
 
                              I4hj+Kt6+8rCcHcUdolks2S+Wzri9h3fHas8
2447
 
                              1rGN/eILdJHN7JpV6lLGPIh/8fIBkfvdyWnB
2448
 
                              jjf1q3O7JgYO1UdI7FvBNWqaaEPJK3UkddBq
2449
 
                              ZIaLi8Qr2XHkjq38BeQsbp8X0+6h4ETWSGT8
2450
 
                              IZaIGBLryQWGLw6Y6X8dqhlnxJM= )
2451
 
 
2452
 
   ;; Additional
2453
 
   ;; (empty)
2454
 
 
2455
 
B.4.  Referral to Signed Zone
2456
 
 
2457
 
   Referral to a signed zone.  The DS RR contains the data which the
2458
 
   resolver will need to validate the corresponding DNSKEY RR in the
2459
 
   child zone's apex.
2460
 
 
2461
 
   ;; Header: QR DO RCODE=0
2462
 
   ;;
2463
 
 
2464
 
 
2465
 
 
2466
 
Arends, et al.              Standards Track                    [Page 44]
2467
 
 
2468
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2469
 
 
2470
 
 
2471
 
   ;; Question
2472
 
   mc.a.example.       IN MX
2473
 
 
2474
 
   ;; Answer
2475
 
   ;; (empty)
2476
 
 
2477
 
   ;; Authority
2478
 
   a.example.     3600 IN NS  ns1.a.example.
2479
 
   a.example.     3600 IN NS  ns2.a.example.
2480
 
   a.example.     3600 DS     57855 5 1 (
2481
 
                              B6DCD485719ADCA18E5F3D48A2331627FDD3
2482
 
                              636B )
2483
 
   a.example.     3600 RRSIG  DS 5 2 3600 20040509183619 (
2484
 
                              20040409183619 38519 example.
2485
 
                              oXIKit/QtdG64J/CB+Gi8dOvnwRvqrto1AdQ
2486
 
                              oRkAN15FP3iZ7suB7gvTBmXzCjL7XUgQVcoH
2487
 
                              kdhyCuzp8W9qJHgRUSwKKkczSyuL64nhgjuD
2488
 
                              EML8l9wlWVsl7PR2VnZduM9bLyBhaaPmRKX/
2489
 
                              Fm+v6ccF2EGNLRiY08kdkz+XHHo= )
2490
 
 
2491
 
   ;; Additional
2492
 
   ns1.a.example. 3600 IN A   192.0.2.5
2493
 
   ns2.a.example. 3600 IN A   192.0.2.6
2494
 
 
2495
 
B.5.  Referral to Unsigned Zone
2496
 
 
2497
 
   Referral to an unsigned zone.  The NSEC RR proves that no DS RR for
2498
 
   this delegation exists in the parent zone.
2499
 
 
2500
 
   ;; Header: QR DO RCODE=0
2501
 
   ;;
2502
 
   ;; Question
2503
 
   mc.b.example.       IN MX
2504
 
 
2505
 
   ;; Answer
2506
 
   ;; (empty)
2507
 
 
2508
 
   ;; Authority
2509
 
   b.example.     3600 IN NS  ns1.b.example.
2510
 
   b.example.     3600 IN NS  ns2.b.example.
2511
 
   b.example.     3600 NSEC   ns1.example. NS RRSIG NSEC
2512
 
   b.example.     3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2513
 
                              20040409183619 38519 example.
2514
 
                              GNuxHn844wfmUhPzGWKJCPY5ttEX/RfjDoOx
2515
 
                              9ueK1PtYkOWKOOdiJ/PJKCYB3hYX+858dDWS
2516
 
                              xb2qnV/LSTCNVBnkm6owOpysY97MVj5VQEWs
2517
 
                              0lm9tFoqjcptQkmQKYPrwUnCSNwvvclSF1xZ
2518
 
                              vhRXgWT7OuFXldoCG6TfVFMs9xE= )
2519
 
 
2520
 
 
2521
 
 
2522
 
Arends, et al.              Standards Track                    [Page 45]
2523
 
 
2524
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2525
 
 
2526
 
 
2527
 
   ;; Additional
2528
 
   ns1.b.example. 3600 IN A   192.0.2.7
2529
 
   ns2.b.example. 3600 IN A   192.0.2.8
2530
 
 
2531
 
B.6.  Wildcard Expansion
2532
 
 
2533
 
   A successful query that was answered via wildcard expansion.  The
2534
 
   label count in the answer's RRSIG RR indicates that a wildcard RRset
2535
 
   was expanded to produce this response, and the NSEC RR proves that no
2536
 
   closer match exists in the zone.
2537
 
 
2538
 
   ;; Header: QR AA DO RCODE=0
2539
 
   ;;
2540
 
   ;; Question
2541
 
   a.z.w.example.      IN MX
2542
 
 
2543
 
   ;; Answer
2544
 
   a.z.w.example. 3600 IN MX  1 ai.example.
2545
 
   a.z.w.example. 3600 RRSIG  MX 5 2 3600 20040509183619 (
2546
 
                              20040409183619 38519 example.
2547
 
                              OMK8rAZlepfzLWW75Dxd63jy2wswESzxDKG2
2548
 
                              f9AMN1CytCd10cYISAxfAdvXSZ7xujKAtPbc
2549
 
                              tvOQ2ofO7AZJ+d01EeeQTVBPq4/6KCWhqe2X
2550
 
                              TjnkVLNvvhnc0u28aoSsG0+4InvkkOHknKxw
2551
 
                              4kX18MMR34i8lC36SR5xBni8vHI= )
2552
 
 
2553
 
   ;; Authority
2554
 
   example.       3600 NS     ns1.example.
2555
 
   example.       3600 NS     ns2.example.
2556
 
   example.       3600 RRSIG  NS 5 1 3600 20040509183619 (
2557
 
                              20040409183619 38519 example.
2558
 
                              gl13F00f2U0R+SWiXXLHwsMY+qStYy5k6zfd
2559
 
                              EuivWc+wd1fmbNCyql0Tk7lHTX6UOxc8AgNf
2560
 
                              4ISFve8XqF4q+o9qlnqIzmppU3LiNeKT4FZ8
2561
 
                              RO5urFOvoMRTbQxW3U0hXWuggE4g3ZpsHv48
2562
 
                              0HjMeRaZB/FRPGfJPajngcq6Kwg= )
2563
 
   x.y.w.example. 3600 NSEC   xx.example. MX RRSIG NSEC
2564
 
   x.y.w.example. 3600 RRSIG  NSEC 5 4 3600 20040509183619 (
2565
 
                              20040409183619 38519 example.
2566
 
                              OvE6WUzN2ziieJcvKPWbCAyXyP6ef8cr6Csp
2567
 
                              ArVSTzKSquNwbezZmkU7E34o5lmb6CWSSSpg
2568
 
                              xw098kNUFnHcQf/LzY2zqRomubrNQhJTiDTX
2569
 
                              a0ArunJQCzPjOYq5t0SLjm6qp6McJI1AP5Vr
2570
 
                              QoKqJDCLnoAlcPOPKAm/jJkn3jk= )
2571
 
 
2572
 
   ;; Additional
2573
 
   ai.example.    3600 IN A   192.0.2.9
2574
 
   ai.example.    3600 RRSIG  A 5 2 3600 20040509183619 (
2575
 
 
2576
 
 
2577
 
 
2578
 
Arends, et al.              Standards Track                    [Page 46]
2579
 
 
2580
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2581
 
 
2582
 
 
2583
 
                              20040409183619 38519 example.
2584
 
                              pAOtzLP2MU0tDJUwHOKE5FPIIHmdYsCgTb5B
2585
 
                              ERGgpnJluA9ixOyf6xxVCgrEJW0WNZSsJicd
2586
 
                              hBHXfDmAGKUajUUlYSAH8tS4ZnrhyymIvk3u
2587
 
                              ArDu2wfT130e9UHnumaHHMpUTosKe22PblOy
2588
 
                              6zrTpg9FkS0XGVmYRvOTNYx2HvQ= )
2589
 
   ai.example.    3600 AAAA   2001:db8::f00:baa9
2590
 
   ai.example.    3600 RRSIG  AAAA 5 2 3600 20040509183619 (
2591
 
                              20040409183619 38519 example.
2592
 
                              nLcpFuXdT35AcE+EoafOUkl69KB+/e56XmFK
2593
 
                              kewXG2IadYLKAOBIoR5+VoQV3XgTcofTJNsh
2594
 
                              1rnF6Eav2zpZB3byI6yo2bwY8MNkr4A7cL9T
2595
 
                              cMmDwV/hWFKsbGBsj8xSCN/caEL2CWY/5XP2
2596
 
                              sZM6QjBBLmukH30+w1z3h8PUP2o= )
2597
 
 
2598
 
B.7.  Wildcard No Data Error
2599
 
 
2600
 
   A "no data" response for a name covered by a wildcard.  The NSEC RRs
2601
 
   prove that the matching wildcard name does not have any RRs of the
2602
 
   requested type and that no closer match exists in the zone.
2603
 
 
2604
 
   ;; Header: QR AA DO RCODE=0
2605
 
   ;;
2606
 
   ;; Question
2607
 
   a.z.w.example.      IN AAAA
2608
 
 
2609
 
   ;; Answer
2610
 
   ;; (empty)
2611
 
 
2612
 
   ;; Authority
2613
 
   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
2614
 
                              1081539377
2615
 
                              3600
2616
 
                              300
2617
 
                              3600000
2618
 
                              3600
2619
 
                              )
2620
 
   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (
2621
 
                              20040409183619 38519 example.
2622
 
                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h
2623
 
                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF
2624
 
                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW
2625
 
                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB
2626
 
                              jV7j86HyQgM5e7+miRAz8V01b0I= )
2627
 
   x.y.w.example. 3600 NSEC   xx.example. MX RRSIG NSEC
2628
 
   x.y.w.example. 3600 RRSIG  NSEC 5 4 3600 20040509183619 (
2629
 
                              20040409183619 38519 example.
2630
 
                              OvE6WUzN2ziieJcvKPWbCAyXyP6ef8cr6Csp
2631
 
 
2632
 
 
2633
 
 
2634
 
Arends, et al.              Standards Track                    [Page 47]
2635
 
 
2636
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2637
 
 
2638
 
 
2639
 
                              ArVSTzKSquNwbezZmkU7E34o5lmb6CWSSSpg
2640
 
                              xw098kNUFnHcQf/LzY2zqRomubrNQhJTiDTX
2641
 
                              a0ArunJQCzPjOYq5t0SLjm6qp6McJI1AP5Vr
2642
 
                              QoKqJDCLnoAlcPOPKAm/jJkn3jk= )
2643
 
   *.w.example.   3600 NSEC   x.w.example. MX RRSIG NSEC
2644
 
   *.w.example.   3600 RRSIG  NSEC 5 2 3600 20040509183619 (
2645
 
                              20040409183619 38519 example.
2646
 
                              r/mZnRC3I/VIcrelgIcteSxDhtsdlTDt8ng9
2647
 
                              HSBlABOlzLxQtfgTnn8f+aOwJIAFe1Ee5RvU
2648
 
                              5cVhQJNP5XpXMJHfyps8tVvfxSAXfahpYqtx
2649
 
                              91gsmcV/1V9/bZAG55CefP9cM4Z9Y9NT9XQ8
2650
 
                              s1InQ2UoIv6tJEaaKkP701j8OLA= )
2651
 
 
2652
 
   ;; Additional
2653
 
   ;; (empty)
2654
 
 
2655
 
B.8.  DS Child Zone No Data Error
2656
 
 
2657
 
   A "no data" response for a QTYPE=DS query that was mistakenly sent to
2658
 
   a name server for the child zone.
2659
 
 
2660
 
   ;; Header: QR AA DO RCODE=0
2661
 
   ;;
2662
 
   ;; Question
2663
 
   example.            IN DS
2664
 
 
2665
 
   ;; Answer
2666
 
   ;; (empty)
2667
 
 
2668
 
   ;; Authority
2669
 
   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
2670
 
                              1081539377
2671
 
                              3600
2672
 
                              300
2673
 
                              3600000
2674
 
                              3600
2675
 
                              )
2676
 
   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (
2677
 
                              20040409183619 38519 example.
2678
 
                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h
2679
 
                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF
2680
 
                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW
2681
 
                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB
2682
 
                              jV7j86HyQgM5e7+miRAz8V01b0I= )
2683
 
   example.       3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY
2684
 
   example.       3600 RRSIG  NSEC 5 1 3600 20040509183619 (
2685
 
                              20040409183619 38519 example.
2686
 
                              O0k558jHhyrC97ISHnislm4kLMW48C7U7cBm
2687
 
 
2688
 
 
2689
 
 
2690
 
Arends, et al.              Standards Track                    [Page 48]
2691
 
 
2692
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2693
 
 
2694
 
 
2695
 
                              FTfhke5iVqNRVTB1STLMpgpbDIC9hcryoO0V
2696
 
                              Z9ME5xPzUEhbvGnHd5sfzgFVeGxr5Nyyq4tW
2697
 
                              SDBgIBiLQUv1ivy29vhXy7WgR62dPrZ0PWvm
2698
 
                              jfFJ5arXf4nPxp/kEowGgBRzY/U= )
2699
 
 
2700
 
   ;; Additional
2701
 
   ;; (empty)
2702
 
 
2703
 
Appendix C.  Authentication Examples
2704
 
 
2705
 
   The examples in this section show how the response messages in
2706
 
   Appendix B are authenticated.
2707
 
 
2708
 
C.1.  Authenticating an Answer
2709
 
 
2710
 
   The query in Appendix B.1 returned an MX RRset for "x.w.example.com".
2711
 
   The corresponding RRSIG indicates that the MX RRset was signed by an
2712
 
   "example" DNSKEY with algorithm 5 and key tag 38519.  The resolver
2713
 
   needs the corresponding DNSKEY RR in order to authenticate this
2714
 
   answer.  The discussion below describes how a resolver might obtain
2715
 
   this DNSKEY RR.
2716
 
 
2717
 
   The RRSIG indicates the original TTL of the MX RRset was 3600, and,
2718
 
   for the purpose of authentication, the current TTL is replaced by
2719
 
   3600.  The RRSIG labels field value of 3 indicates that the answer
2720
 
   was not the result of wildcard expansion.  The "x.w.example.com" MX
2721
 
   RRset is placed in canonical form, and, assuming the current time
2722
 
   falls between the signature inception and expiration dates, the
2723
 
   signature is authenticated.
2724
 
 
2725
 
C.1.1.  Authenticating the Example DNSKEY RR
2726
 
 
2727
 
   This example shows the logical authentication process that starts
2728
 
   from the a configured root DNSKEY (or DS RR) and moves down the tree
2729
 
   to authenticate the desired "example" DNSKEY RR.  Note that the
2730
 
   logical order is presented for clarity.  An implementation may choose
2731
 
   to construct the authentication as referrals are received or to
2732
 
   construct the authentication chain only after all RRsets have been
2733
 
   obtained, or in any other combination it sees fit.  The example here
2734
 
   demonstrates only the logical process and does not dictate any
2735
 
   implementation rules.
2736
 
 
2737
 
   We assume the resolver starts with a configured DNSKEY RR for the
2738
 
   root zone (or a configured DS RR for the root zone).  The resolver
2739
 
   checks whether this configured DNSKEY RR is present in the root
2740
 
   DNSKEY RRset (or whether the DS RR matches some DNSKEY in the root
2741
 
   DNSKEY RRset), whether this DNSKEY RR has signed the root DNSKEY
2742
 
   RRset, and whether the signature lifetime is valid.  If all these
2743
 
 
2744
 
 
2745
 
 
2746
 
Arends, et al.              Standards Track                    [Page 49]
2747
 
 
2748
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2749
 
 
2750
 
 
2751
 
   conditions are met, all keys in the DNSKEY RRset are considered
2752
 
   authenticated.  The resolver then uses one (or more) of the root
2753
 
   DNSKEY RRs to authenticate the "example" DS RRset.  Note that the
2754
 
   resolver may have to query the root zone to obtain the root DNSKEY
2755
 
   RRset or "example" DS RRset.
2756
 
 
2757
 
   Once the DS RRset has been authenticated using the root DNSKEY, the
2758
 
   resolver checks the "example" DNSKEY RRset for some "example" DNSKEY
2759
 
   RR that matches one of the authenticated "example" DS RRs.  If such a
2760
 
   matching "example" DNSKEY is found, the resolver checks whether this
2761
 
   DNSKEY RR has signed the "example" DNSKEY RRset and the signature
2762
 
   lifetime is valid.  If these conditions are met, all keys in the
2763
 
   "example" DNSKEY RRset are considered authenticated.
2764
 
 
2765
 
   Finally, the resolver checks that some DNSKEY RR in the "example"
2766
 
   DNSKEY RRset uses algorithm 5 and has a key tag of 38519.  This
2767
 
   DNSKEY is used to authenticate the RRSIG included in the response.
2768
 
   If multiple "example" DNSKEY RRs match this algorithm and key tag,
2769
 
   then each DNSKEY RR is tried, and the answer is authenticated if any
2770
 
   of the matching DNSKEY RRs validate the signature as described above.
2771
 
 
2772
 
C.2.  Name Error
2773
 
 
2774
 
   The query in Appendix B.2 returned NSEC RRs that prove that the
2775
 
   requested data does not exist and no wildcard applies.  The negative
2776
 
   reply is authenticated by verifying both NSEC RRs.  The NSEC RRs are
2777
 
   authenticated in a manner identical to that of the MX RRset discussed
2778
 
   above.
2779
 
 
2780
 
C.3.  No Data Error
2781
 
 
2782
 
   The query in Appendix B.3 returned an NSEC RR that proves that the
2783
 
   requested name exists, but the requested RR type does not exist.  The
2784
 
   negative reply is authenticated by verifying the NSEC RR.  The NSEC
2785
 
   RR is authenticated in a manner identical to that of the MX RRset
2786
 
   discussed above.
2787
 
 
2788
 
C.4.  Referral to Signed Zone
2789
 
 
2790
 
   The query in Appendix B.4 returned a referral to the signed
2791
 
   "a.example." zone.  The DS RR is authenticated in a manner identical
2792
 
   to that of the MX RRset discussed above.  This DS RR is used to
2793
 
   authenticate the "a.example" DNSKEY RRset.
2794
 
 
2795
 
   Once the "a.example" DS RRset has been authenticated using the
2796
 
   "example" DNSKEY, the resolver checks the "a.example" DNSKEY RRset
2797
 
   for some "a.example" DNSKEY RR that matches the DS RR.  If such a
2798
 
   matching "a.example" DNSKEY is found, the resolver checks whether
2799
 
 
2800
 
 
2801
 
 
2802
 
Arends, et al.              Standards Track                    [Page 50]
2803
 
 
2804
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2805
 
 
2806
 
 
2807
 
   this DNSKEY RR has signed the "a.example" DNSKEY RRset and whether
2808
 
   the signature lifetime is valid.  If all these conditions are met,
2809
 
   all keys in the "a.example" DNSKEY RRset are considered
2810
 
   authenticated.
2811
 
 
2812
 
C.5.  Referral to Unsigned Zone
2813
 
 
2814
 
   The query in Appendix B.5 returned a referral to an unsigned
2815
 
   "b.example." zone.  The NSEC proves that no authentication leads from
2816
 
   "example" to "b.example", and the NSEC RR is authenticated in a
2817
 
   manner identical to that of the MX RRset discussed above.
2818
 
 
2819
 
C.6.  Wildcard Expansion
2820
 
 
2821
 
   The query in Appendix B.6 returned an answer that was produced as a
2822
 
   result of wildcard expansion.  The answer section contains a wildcard
2823
 
   RRset expanded as it would be in a traditional DNS response, and the
2824
 
   corresponding RRSIG indicates that the expanded wildcard MX RRset was
2825
 
   signed by an "example" DNSKEY with algorithm 5 and key tag 38519.
2826
 
   The RRSIG indicates that the original TTL of the MX RRset was 3600,
2827
 
   and, for the purpose of authentication, the current TTL is replaced
2828
 
   by 3600.  The RRSIG labels field value of 2 indicates that the answer
2829
 
   is the result of wildcard expansion, as the "a.z.w.example" name
2830
 
   contains 4 labels.  The name "a.z.w.w.example" is replaced by
2831
 
   "*.w.example", the MX RRset is placed in canonical form, and,
2832
 
   assuming that the current time falls between the signature inception
2833
 
   and expiration dates, the signature is authenticated.
2834
 
 
2835
 
   The NSEC proves that no closer match (exact or closer wildcard) could
2836
 
   have been used to answer this query, and the NSEC RR must also be
2837
 
   authenticated before the answer is considered valid.
2838
 
 
2839
 
C.7.  Wildcard No Data Error
2840
 
 
2841
 
   The query in Appendix B.7 returned NSEC RRs that prove that the
2842
 
   requested data does not exist and no wildcard applies.  The negative
2843
 
   reply is authenticated by verifying both NSEC RRs.
2844
 
 
2845
 
C.8.  DS Child Zone No Data Error
2846
 
 
2847
 
   The query in Appendix B.8 returned NSEC RRs that shows the requested
2848
 
   was answered by a child server ("example" server).  The NSEC RR
2849
 
   indicates the presence of an SOA RR, showing that the answer is from
2850
 
   the child .  Queries for the "example" DS RRset should be sent to the
2851
 
   parent servers ("root" servers).
2852
 
 
2853
 
 
2854
 
 
2855
 
 
2856
 
 
2857
 
 
2858
 
Arends, et al.              Standards Track                    [Page 51]
2859
 
 
2860
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2861
 
 
2862
 
 
2863
 
Authors' Addresses
2864
 
 
2865
 
   Roy Arends
2866
 
   Telematica Instituut
2867
 
   Brouwerijstraat 1
2868
 
   7523 XC  Enschede
2869
 
   NL
2870
 
 
2871
 
   EMail: roy.arends@telin.nl
2872
 
 
2873
 
 
2874
 
   Rob Austein
2875
 
   Internet Systems Consortium
2876
 
   950 Charter Street
2877
 
   Redwood City, CA  94063
2878
 
   USA
2879
 
 
2880
 
   EMail: sra@isc.org
2881
 
 
2882
 
 
2883
 
   Matt Larson
2884
 
   VeriSign, Inc.
2885
 
   21345 Ridgetop Circle
2886
 
   Dulles, VA  20166-6503
2887
 
   USA
2888
 
 
2889
 
   EMail: mlarson@verisign.com
2890
 
 
2891
 
 
2892
 
   Dan Massey
2893
 
   Colorado State University
2894
 
   Department of Computer Science
2895
 
   Fort Collins, CO 80523-1873
2896
 
 
2897
 
   EMail: massey@cs.colostate.edu
2898
 
 
2899
 
 
2900
 
   Scott Rose
2901
 
   National Institute for Standards and Technology
2902
 
   100 Bureau Drive
2903
 
   Gaithersburg, MD  20899-8920
2904
 
   USA
2905
 
 
2906
 
   EMail: scott.rose@nist.gov
2907
 
 
2908
 
 
2909
 
 
2910
 
 
2911
 
 
2912
 
 
2913
 
 
2914
 
Arends, et al.              Standards Track                    [Page 52]
2915
 
 
2916
 
RFC 4035             DNSSEC Protocol Modifications            March 2005
2917
 
 
2918
 
 
2919
 
Full Copyright Statement
2920
 
 
2921
 
   Copyright (C) The Internet Society (2005).
2922
 
 
2923
 
   This document is subject to the rights, licenses and restrictions
2924
 
   contained in BCP 78, and except as set forth therein, the authors
2925
 
   retain all their rights.
2926
 
 
2927
 
   This document and the information contained herein are provided on an
2928
 
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
2929
 
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
2930
 
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
2931
 
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
2932
 
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
2933
 
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2934
 
 
2935
 
Intellectual Property
2936
 
 
2937
 
   The IETF takes no position regarding the validity or scope of any
2938
 
   Intellectual Property Rights or other rights that might be claimed to
2939
 
   pertain to the implementation or use of the technology described in
2940
 
   this document or the extent to which any license under such rights
2941
 
   might or might not be available; nor does it represent that it has
2942
 
   made any independent effort to identify any such rights.  Information
2943
 
   on the procedures with respect to rights in RFC documents can be
2944
 
   found in BCP 78 and BCP 79.
2945
 
 
2946
 
   Copies of IPR disclosures made to the IETF Secretariat and any
2947
 
   assurances of licenses to be made available, or the result of an
2948
 
   attempt made to obtain a general license or permission for the use of
2949
 
   such proprietary rights by implementers or users of this
2950
 
   specification can be obtained from the IETF on-line IPR repository at
2951
 
   http://www.ietf.org/ipr.
2952
 
 
2953
 
   The IETF invites any interested party to bring to its attention any
2954
 
   copyrights, patents or patent applications, or other proprietary
2955
 
   rights that may cover technology that may be required to implement
2956
 
   this standard.  Please address the information to the IETF at ietf-
2957
 
   ipr@ietf.org.
2958
 
 
2959
 
Acknowledgement
2960
 
 
2961
 
   Funding for the RFC Editor function is currently provided by the
2962
 
   Internet Society.
2963
 
 
2964
 
 
2965
 
 
2966
 
 
2967
 
 
2968
 
 
2969
 
 
2970
 
Arends, et al.              Standards Track                    [Page 53]
2971