{11} Active Tickets by Component (Full Description) (50 matches)
List active tickets, grouped by component. This report demonstrates the use of full-row display.
bind-patches
| Ticket | Summary | Milestone | Type | Severity | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #8 | Make BIND use base32 | defect | normal | 11/02/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Currently using hex, which is wrong. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #9 | Stop dependency on SOA | defect | normal | 11/02/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
prove_nx_domain() uses the SOA to create FQDNs from hash values. This is not necessary, and doesn't always work, since the SOA may not be present in the response. Make it compare hashes directly instead of as FQDNs. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #10 | NSEC3 checks in bind are incomplete | defect | normal | 11/02/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
NSEC3 should check that: a) All NSEC3s come from the same zone b) None of them prove an NS that delegates to qname (or records from a parent zone can be used for denial). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
drafts
| Ticket | Summary | Milestone | Type | Severity | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #18 | Check signatures before checking NSEC3 if iterations are high | defect | major | 03/18/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This is the opposite to standard practice so note it in the I-D. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #47 | nsec3 zones can have CNAME and other data issues w/ older servers | defect | blocker | 09/19/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Documennt that there are some NSEC3 zones that are not DNSSEC 4034 safe let alone RFC 1035 safe. e.g. MM6OHIUFMG05ST4UQQUVIJ0QG6UF1PIF.optoutempty.ws.nsec3.org. 3600 IN NSEC3 1 1 10 AFFE 0DIBIVDPK0P88S11VP5OVOILSLC21QLI MM6OHIUFMG05ST4UQQUVIJ0QG6UF1PIF.optoutempty.ws.nsec3.org. 3600 IN CNAME foo |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #2 | Describe salt rollover and determination of parameters | defect | normal | 10/31/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Show how a large zone can incrementally roll the salt. Specify that the apex NSEC3 determines which paramaters cover the whole zone. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #4 | Reference "closest encloser" definition | defect | normal | 10/31/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #5 | Make it clear that NSEC and NSEC3 can coexist | defect | normal | 10/31/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
i.e. NSEC3 doesn't replace NSEC, it is a choice zone owners make. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #6 | Mandate same parameters in a response | defect | normal | 10/31/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
All NSEC3s in a response MUST use the same parameters (otherwise a resolver has to hash the qname multiple times to parse the response). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #7 | Fix Zone Size estimation | defect | normal | 11/01/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In order to estimate zone size it is not necessary to walk the whole zone, or even much of it. Just query random names and look at the interval between hashes - a few of these will give an accurate estimate. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #11 | Signalling NSEC3 to NSEC3-unaware resolvers | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Do we signal, or don't we? If we signal, what mechanism do we use? http://www.ietf.org/internet-drafts/draft-ietf-dnsext-dnssec-trans-03.txt discusses alternatives (and is to be updated to include EDNS version roll). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #12 | Test ticket... | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...to see what happens with updates... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #13 | NSEC3 hashes have owner names whose existence is denied | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
David Blacka has proposed a mechanism which will fix this problem almost everywhere. He and I will write it up. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #14 | NSEC3 hash name and legitimate zone name collision is okay | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #16 | Document rationale and design choices | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Explain, for example: * why salt * why iterations |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #17 | Make hash field 8 bits... | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...so we can share the DS hash registry. http://www.iana.org/assignments/ds-rr-types |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #43 | Upper limit for names is 254 not 255 | defect | normal | 07/10/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
and the draft says 255. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #1 | Mandate same parameters for all responses | defect | normal | 10/28/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
'I think that the document should say "...all included NSEC3 rrsets MUST use the same set of parameters..." (or something like that). And possibly additionally "...if the response contains NSEC3 records that use different hash parameters, then treat as a validation failure..."' (David Blacka) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #3 | Specify a base32 alphabet that preserves canonical ordering | defect | normal | 10/31/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #15 | High iteration count could be used to DoS resolvers | defect | normal | 11/13/05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nsec3-issues
| Ticket | Summary | Milestone | Type | Severity | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #21 | NSEC3 Issue 10: Potential DoS on Servers | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue: Significantly more work is required for a name server to respond to queries which require negative proofs using NSEC3 than is required for a client to compose and send them. For each such query, the name server must repeat the hash function for the number of iterations specified in the NSEC3 RRs. Consequently, name servers with NSEC3 zones are susceptible to asymmetric DoS attacks. Resolution: None at present. If name servers serving NSEC3 zones were to have suitable hardware acceleration for SHA-1, it's possible that the rate of queries required to degrade server function could be made to be higher than that required to saturate the server's network connection(s). Also, while not optimal, implementations could provide a reduced quality of service for queries which require negative proofs, so that resolution and validation of existing names will not be compromised. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #22 | NSEC3 Issue 11: Queries for NSEC3 RRs | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
What should be contained in responses to queries where the QNAME is the
owner name of an existing NSEC3 RR and the QTYPE is NSEC3?
Discussion:
There are several possible responses:
1. Return the actual NSEC3 RR with owner name
- The response returns status RCODE = 0 and contains the NSEC3 RR
with the owner name (and corresponding RRSIG RR if the bit is set
in query).
2. Return proof of nonexistence of owner name
- The response returns status RCODE = 3 (NXDOMAIN) and contains the
NSEC3 RRs required to prove nonexistence (and corresponding RRSIG
RRs if DO bit is set in query).
3. Return both the NSEC3 RR at with the owner name and proof of
non-existence of the owner name.
- The response returns status RCODE = 3 (NXDOMAIN) and contains both
the NSEC3 RR with that owner name and the the NSEC3 RRs required
to prove nonexistence (and corresponding RRSIG RRs if DO bit is
set in query).
It's possible for the NSEC3 RR for which the query was received
to be also one of those required to prove non-existence. In this
case, duplicate NSEC3 RRs are eliminated. Consequently as few as
one and as many as four NSEC3 RRs may be returned.
Resolution:
We propose to use the third type of response, as it is the most
unambiguous.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #23 | NSEC3 Issue 12: NSEC3 RR Owner Name Coincidence | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
It's possible for an NSEC3 RR and other RRs to have the same owner name
in an NSEC3 zone. For example, a zone might contain the following RRs:
------------------------ Begin included text ------------------------
$ORIGIN example.com.
;; A RR for "die75kdbpq7tm7u8klq4kgoor752cqmd.example.com"
die75kdbpq7tm7u8klq4kgoor752cqmd IN A 10.10.10.10
IN RRSIG A 5 3 86400 20060223000000 (
20060220000000 64106 example.com.
iNwnknCEiWpfrOOgZtgLSiaUs24J2f7pzwZomaLu6VbaX
QVUI2Z43S20OaQz7W/WfaNqn19u9mrA2aN2SUQhX4n6BE
NoGybS/IaEh6bw4JquOttK6KgAhVQoIh0uOCNgNrAUH5G
vTy8eH6g3fg8wYvxp6dGb+w6Bt5WGHQOYg9M= )
;; NSEC3 RR for A RR with original owner name "www.example.com"
;; but same actual owner name as A RR above
IN NSEC3 (
0 1 200 0a0b0c0d h6eef7tgm0loe6m4nvf1plfinl8ip4gp
A NSEC3 RRSIG )
IN RRSIG NSEC3 5 3 3600 20060223000000 (
20060220000000 64106 example.com.
JRFFPPc6Dr5BN31Bjhp6HIrmkJra5JJLpRRZ7b9bc77E+
gXYXqqhfB0Yv6nkN/M5qNAe01aMB//MKzzpkJdMW1mzpZ
VICFy5VHeYx9XZJSzLxfNVfS45otdivFJX2pQWXfgN2wF
y829jT4ZlaQXdzOmOtdXjDlUyJi9qu9OFbfA= )
;; NSEC3 RR for A RR with original owner name
;; "die75kdbpq7tm7u8klq4kgoor752cqmd.example.com"
h6eef7tgm0loe6m4nvf1plfinl8ip4gp.example.com. IN NSEC3 (
0 1 200 0a0b0c0d vhhqc3cluh445sdpgrl8j8i0arntf49c
A NSEC3 RRSIG )
IN RRSIG NSEC3 5 3 3600 20060223000000 (
20060220000000 64106 example.com.
wB2nYKNXgceFLh5LtbuJmCoLShUd3t10hUsQM8vU976HG
yOnaam0Z9Ki38MlFphhcfkDXmR8ChJNr1akXVJprdqmc5
oi6UBM2QWAysCZVSVXFlIsxW+Te4KdqJm5s6sbQZS4534
D+TFEeZP3M/IQemMMoeT4ZevRtdB7T3CQS64= )
------------------------- End included text -------------------------
This could occur under the following circumstances:
1. An A RR with owner name `die75kdbpq7tm7u8klq4kgoor752cqmd.example.com'
is present in the zone and then another owner name hashes to
`die75kdbpq7tm7u8klq4kgoor752cqmd' during signing (_extremely_
improbable).
2. An owner name hashes to `die75kdbpq7tm7u8klq4kgoor752cqmd' and
an A RR with owner name `die75kdbpq7tm7u8klq4kgoor752cqmd.example.com' is
subsequently added to the zone, perhaps deliberately.
Discussion:
In either case, the coincidence is inconsequential, as the NSEC3 RR chain
is in effect orthogonal to the other RRs in the zone. Specifically,
a query with QNAME = "die75kdbpq7tm7u8klq4kgoor752cqmd.example.com" and
QTYPE = TXT and with the DO bit set would cause the NSEC3 RR associated
with the hash of the owner name to be returned; the NSEC3 RR with the
actual owner name would be ignored.
The only case in which the coincidence would noticeable is for a query
with QNAME = "die75kdbpq7tm7u8klq4kgoor752cqmd.example.com" and
QTYPE = NSEC3, for which the reply would contain:
- the NSEC3 RR with the owner name of QNAME
- the NSEC3 RR with the _original_ owner name of QNAME
- the corresponding RRSIG RRs for that name (if the DO bit was set in
the query)
In other words:
------------------------ Begin included text ------------------------
;; Header: QR AA DO RCODE=0
;;
;; Question
die75kdbpq7tm7u8klq4kgoor752cqmd.example.com. IN NSEC3
;; Answer
;; (empty)
;; Authority
die75kdbpq7tm7u8klq4kgoor752cqmd.example.com. 3600 IN NSEC3 (
0 1 200 0a0b0c0d h6eef7tgm0loe6m4nvf1plfinl8ip4gp
A NSEC3 RRSIG )
die75kdbpq7tm7u8klq4kgoor752cqmd.example.com. 3600 IN RRSIG NSEC3 (
5 3 3600 20060223000000 20060220000000
64106 example.com.
JRFFPPc6Dr5BN31Bjhp6HIrmkJra5JJLpRRZ7b9bc77E+
gXYXqqhfB0Yv6nkN/M5qNAe01aMB//MKzzpkJdMW1mzpZ
VICFy5VHeYx9XZJSzLxfNVfS45otdivFJX2pQWXfgN2wF
y829jT4ZlaQXdzOmOtdXjDlUyJi9qu9OFbfA= )
h6eef7tgm0loe6m4nvf1plfinl8ip4gp.example.com. 3600 IN NSEC3 (
0 1 200 0a0b0c0d vhhqc3cluh445sdpgrl8j8i0arntf49c
A NSEC3 RRSIG )
h6eef7tgm0loe6m4nvf1plfinl8ip4gp.example.com. 3600 IN RRSIG NSEC3 (
5 3 3600 20060223000000 20060220000000
64106 example.com.
wB2nYKNXgceFLh5LtbuJmCoLShUd3t10hUsQM8vU976HG
yOnaam0Z9Ki38MlFphhcfkDXmR8ChJNr1akXVJprdqmc5
oi6UBM2QWAysCZVSVXFlIsxW+Te4KdqJm5s6sbQZS4534
D+TFEeZP3M/IQemMMoeT4ZevRtdB7T3CQS64= )
;; Additional
;; (empty)
------------------------- End included text -------------------------
This artifact should have no effect as queries with QNAME = NSEC3
would never be used during validation.
Resolution:
No special procedures are needed for either preventing an NSEC3 RR and
other RRs from having the same owner name, nor is any special
processing required when they do.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #24 | NSEC3 Issue 13: DDNS and Opt-In Determination | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
When a DDNS client sends an UPDATE transaction containing RRs for a new
unsigned delegation to be inserted into an NSEC3 zone, there is no
obvious way for the server to determine whether or not the new
delegation should be included in the NSEC3 chain. This is because the
values of the Opt-In fields of NSEC3 RRs in the zone need not be
uniform. In other words, it's permissible to include and exclude
unsigned delegations in the NSEC3 chain in any combination.
Discussion:
Possible approaches:
1. No support for Opt-In in DDNS
- All NSEC3 RRs produced as a result an UPDATE will
default to Opt-In = 0
- Cannot change value of NSEC RR.
2. Use overloaded NSEC3 RR to signal Opt-In
- New unsigned delegations will default to Opt-In = 0, i.e. they
will be included in the NSEC3 chain. An unsigned delegation may
be removed from the NSEC3 chain by sending an UPDATE containing
an NSEC3 RR with the /unhashed/ owner name of the delegation and
the Opt-In flag set to 1. If the NSEC3 RR is included in the
same atomic update as the RRs of the new unsigned delegation,
the new delegation will not be inserted into the NSEC3 chain in
the first place.
- This method is in effect an overloading of the NSEC3 RR.
The owner name of the NSEC3 RR in the UPDATE is be the owner name of
the delegation, not the hashed value. Only the value of the Opt-In
field is meaningful; the other data in the RDATA section is ignored.
- UPDATEs containing NSEC3 RRs with the owner name of an unsigned
delegation and Opt-In = 0 will cause the owner name to be inserted
into the NSEC3 chain if it isn't already.
- UPDATEs containing RRs for existing unsigned delegations but no
NSEC3 RR will leave the current value of the Opt-In field of the
relevant NSEC3 RR unchanged.
- If an UPDATE contains an NSEC3 RR for a non-existent owner name, an
owner name that is a signed delegation, or for any owner name for
which RRs other than on RRs exist, the server will return an error.
However:
- Convoluted use of NSEC3 RR.
- NSEC3 RR is larger than required, as only one bit of the
16 octet RDATA section will be meaningful in a DDNS context.
- Has unresolved corner cases, e.g. what if an UPDATE removes
an unsigned delegation which is at the boundary of two
spans, one with Opt-In = 0 and the other with Opt-In = 1?
3. Introduce a new RRTYPE for used with DDNS updates
- Similar to previous, but uses a new RRTYPE, e.g. `OPTOUT', rather
than overloading the NSEC3 RR.
- RR more compact as only one octet will be required for RDATA
section.
However:
- requires use of a dedicated RRTYPE which would be meaningful only
in the context of DDNS updates.
- Has corner cases such as the one described in Approach 2.
4. Inherited behaviour
- If an update containing a new unsigned delegation falls in
a span with Opt-In = 1, then it's not added to the NSEC3
chain; if falls on one one which is Opt-In = 0, it is added.
However:
- Mismatch between granularity of control permitted by
- Has corner cases such as the one described in Approach 2.
5. Discourage or prohibit partial Opt-In zones.
- Opt-In = 0 or Opt-In = 1 for all NSEC3 RRs in a chain.
- Use cases unknown for partial Opt-In zones.
However:
- Adds unnecessary restrictions to the protocol.
Resolution:
None. We are still investigating the problem space.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #25 | NSEC3 Issue 14 - Presentation Format Mnemonics | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
The draft discusses a presentation format in which the algorithm
mnemonics are represented as alphanumeric labels; however there
is no registry for any such representation. The mnemonics are
_implied_ by the IANA registry at:
http://www.iana.org/assignments/ds-rr-types
Resolution:
None. We will investigate the feasability of establishing an
IANA registry for presentation format mnemonics.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #26 | NSEC3 Issue 14 - Presentation Format Mnemonics | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
The draft discusses a presentation format in which the algorithm
mnemonics are represented as alphanumeric labels; however there
is no registry for any such representation. The mnemonics are
_implied_ by the IANA registry at:
http://www.iana.org/assignments/ds-rr-types
Resolution:
None. We will investigate the feasability of establishing an
IANA registry for presentation format mnemonics.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #27 | NSEC3 Issue 15: Partially opt-out zones introduces unnecessary complexity. | defect | blocker | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue: A single zone may contain NSEC3 records with the optout bit set or clear. To cope with the granularity of a per-record signal of opt-out introduces additional complexity for signing and dynamically updating such a zone. The use case for this granularity is not clear. Discussion: To cope with partially opt-out zone, a signer needs to know if an unsigned delegation is supposed to be optout or not. When such a zone is dynamically updated, there needs to be a signal that informs the server that an added unsigned delegation is supposed to be optout or not. If the granularity is per zone, a signer can be signalled by a single command-line option, or by some meta data. When such a zone is dynamically updated, the server can determine if the added unsigned delegation is supposed to be optout or not by looking at the nsec3 at the SOA. Resolution: We haven't found a practical case where partially optout zones are preferred over fully opt-out zones. We therefor propose to add text to the draft that discourages or prohibits partially opt-out zones. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #42 | NSEC3 Issue 22: Defining new hash algorithms | defect | blocker | 07/10/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Currently, the NSEC3 draft indicates that it uses the same IANA registry as DS for its hash algorithms. This leads to a number of potential concerns:
Discussion: 1) The draft can establish a new IANA registry for NSEC3 hash algorithms, or 2) the draft can continue to use the DS registry. This will prevent people from defining new hash algorithms that are fine for use with NSEC3 but not acceptable for use with DS (point b, above). Independent from this decision the draft could be modified to stress that hash algorithms MUST be specified before use. My recommendation: Both establish a new registry and require that new algorithms have a specification describing its use with NSEC3. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #44 | NSEC3 Issue 22: Defining new hash algorithms. | defect | blocker | 08/23/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Currently, the NSEC3 draft indicates that it uses the same IANA registry as DS for its hash algorithms. This leads to a number of potential concerns:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #45 | NSEC3 Issue 23: dealing with unknown hashes | defect | blocker | 08/24/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
If a validator ignores an NSEC3 resource record because it contains an unknown hash algorithm and subsequently treat a dnssec/nsec3 response as 'unsigned', the validator must check that the NSEC3 record came from the proper zone. This check needs to be done to avoid a replay of some arbitrary NSEC3 with an unknown hash algorithm, that happens to be signed with a key that the validator trusts. A successful replay can lead to a downgrade attack. The ownername of the NSEC3 record contains the hash value, prepended to the zone name. Since we want the NSEC3 record to be future proof, we have to allow digests to be longer than the maximum label size, and so, a future hash algorithm might have a digest that is presented over multiple labels. We can therefor not safely assume that the first label contains the hash value, and the rest of the name is the zone name. So, we need to find a way to discover the zone that the NSEC3 is from. We have several approaches for this, described here in no particular order: 1) it is possible to calculate the number of labels that contains the hash from the hash length field. The hash length field contains the length of the hash of the Next Hashed Owner Name field. This length is in octets. The following formula determines the amount of labels used for the hash, and indicates that the rest of the labels contain the zone. Let L be the value of the hash length field Then labelcount = 1+((L*8)/315) This approach assumes that all hash outputs for this single (unknown) algorithm have the same length, since the hash length field applies to the Next Hashed Ownername, not to the Owner Name of the NSEC3 record. Hence, an Identity Hash function, a function with variable length output, can not be easily defined this way. 2) it is possible to use the Signer's Name field of the RRSIG record that accompanies this NSEC3 record. The drawback is that the validator, while checking the applicability of the NSEC3 record, must have knowledge of the RRSIG at that stage. Note that the validator _has_ to check the validity of the signature anyway if it decides to treat a response as insecure due to an unknown hash algorithm. 3) Add a 'Zone labels field' to the rdata field that indicates of how many labels the zone consists of, and hence, use that as a mask for the ownername of the NSEC3 record to determine the zone name. The drawback here is that the NSEC3 rdata is changed Yet Again. 4) drop the 'unknown hash' methodology alltogether. This means that if an unknown hash is encountered, it is discarded. When the validator tries to validate the response, it ignores unknown hash NSEC3's and will treat the response as bogus. The drawback is that it will be hard to introduce new hash algorithms, unknown to a deployed base. The penalty is that zones using this new hash algorithm will be treated as bogus, thus unresolveable, for the deployed base. 5) truncate all hash outputs over 315 bits to 315 bits so it will always fit in a single label. The drawback here is that the 2nd-preimage resistance of a hash function is then restricted to 2315,and thus less futureproof. Note, the number 315 is the amount of significant bits of a base32 decoded maximum length label (5 * 63) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #46 | NSEC3 Issue 24: Significance of Algorithm Numbers | defect | blocker | 09/19/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Issue: The precise meaning of algorithm numbers needs to be determined. Discussion: (tbd) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #48 | NSEC3 Issue 25: NSEC3 and DNAME at a zone apex | defect | blocker | 09/20/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The NSEC3 owner names would be below the DNAME, which is illegal. The draft needs to clarify and allow this exception to that rule. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #49 | NSEC3 Issue 26: Checking for CNAME in NODATA proof | defect | blocker | 09/20/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
When validating a NODATA proof, in addition to checking that the qtype doesn't exist, one must also check that a CNAME doesn't exist with the exception of a yet-to-be-determined list of types that can co-exist with CNAME. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #50 | NSEC3 Issue 27: Create flag octet, reduce iterations field to two octets | defect | blocker | 09/20/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
To create additional flags for future expansion, we take the first octet of iterations and designate it as a flags octet. One bit is opt out (0x01, the same presentation format) and the rest are reserved. The iterations field is reduced to two octets. Dave will write up the proposal and send to namedroppers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #19 | NSEC3 Issue 8: NSEC3 Signaling Mechanism | defect | critical | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
Should a name server for a DNSSEC zone that uses NSEC3 RRs only somehow
signal this to NSEC3-unaware DNSSEC applications?
Example: if an NSEC3-unaware validating resolver queries for a
non-existent RRset in an NSEC3 zone, the response will contain one or
more NSEC3 RRs in place of the expected NSEC RR(s). In RFC 4035,
omission of NSEC RRs in a No Data/Name Error response is a protocol
violation [Section 3.1.3]; consequently, the resolver will mark it
bogus.
Discussion:
Several approaches have been considered for handling this:
1. Use a full type code rollover (a.k.a. `DNSSECter')
- Fully independent DNSSEC scheme (third one, if RFC 2535 is
considered).
- Four new RRs:
DNSKEY -> DNSKEY2
RRSIG -> RRSIG2
NSEC -> NSEC3
DS -> DS2
- All RR formats identical except for NSEC vs NSEC3
- NSEC3-unaware validators see only DNSSECbis RRs. In NSEC3 zones
only new RRs are used. Either or both validation schemes may be
used independently without reference to one another.
However:
- A validating resolver must have special (non-RFC 4033-35) rules
for recognising and processing DS2 RRs in DNSSECbis zones, e.g.
when a DNSSECter-only zone has a DNSSSECbis-only parent.
Otherwise the DS2 RR will not be identified as part of any
validation chain. So while a type-code rollover may at first
glance appear to be an elegant solution, it only works if one or
another set of type codes is used exclusively throughout the
entire validation chain.
2. Use a partial type code rollover
- Two new RRs:
NSEC -> NSEC3
DS -> DS2
- DS2 same as D2 but with a different Type Code.
- Presence of DS2 RR in parent will be "uninteresting" to
validating resolver, so child will be regarded insecure rather
than bogus.
However:
- This has the same problem as approach #1 above: a validating
resolver would have to have special rules to handle DS2 RRs in a
DNSSECbis zone.
- If the KSK of the NSEC3 is a trust anchor, care must be taken not
to use it in the `trusted-keys' store of a non-NSEC3-aware
validating resolver.
3. Use a new DS message digest number
- Use the DS message digest field for signaling both:
a. that NSEC3 is in use in the child zone, and
b. which hash algorithm is in use by the NSEC3 RRs in the
child zone.
- Proposed in this post to namedroppers:
http://ops.ietf.org/lists/namedroppers/namedroppers.2005/msg01087.html
However:
- Only works if all subsequent children are NSEC3. If the chain of
trust is NSEC -> NSEC3 -> NSEC then the NSEC descendant will
appear bogus.
4. Use an unknown algorithm identifier
- Described in draft-ietf-dnsext-dnssec-experiments-01.txt
- Use algorithm identifiers in RRSIG and DS RRs that would not be
recognised by NSEC3-unaware validating resolver, so that
No Data/Name Error responses would appear insecure rather than
bogus.
However:
- Would require the use of multiple algorithm identifiers for the
same algorithm, at least until NSEC3 was folded into a revised
version of DNSSECbis. This would mean SHA-1 (and probably
SHA-256) would have two identifiers each. This is mitigated by
the fact that:
- the algorithm identifier is an 8-bit number out of which
only 10 assignments have been made:
http://www.iana.org/assignments/dns-sec-alg-numbers
- The rate of new assignments is expected to be low.
5. Do nothing
No Data/Name Error responses for queries that have NSEC3 somewhere in
the validation chain will be marked bogus.
- If DNSSEC deployment is sufficiently minimal before NSEC3 (or
other NSEC++) is available, this may have a negligible impact.
However:
- DNS operators considering the deployment of DNSSEC might choose
to wait until NSEC3 is available, or, conversely,
- DNSSEC deployment might become sufficiently advanced that
operators will be unwilling to deploy NSEC3.
Proposed Resolution:
Approach #4 appears to be the most promising. Thorough testing will be
required to determine whether any non-obvious issues exist, though it's
been shown to work in previous testing.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #20 | NSEC3 Issue 9: Potential DoS on Resolvers | defect | major | 05/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue:
A potential DoS condition exists in which the operator of a malicious
server could select an impractically high number of iterations for the
NSEC3 RRs in an signed zone. The NSEC3 RDATA format permits values as
high as 2 ^ 23, or 8,388,608 (N.B. this is a change in -04; in -03 it
was 2 ^ 24). Consequently, when a resolver receives multiple queries
for names (existent or non-existent) in this zone, the resolver must
perform the same number of hash iterations for each query. This could
result in a significant denial-of-service on the resolver.
Discussion:
One solution would be to permit resolvers to set an upper limit for the
number of iterations that would be permitted in an NSEC3 RR, and to
treat NSEC3 RRs with values exceeding this as insecure or bogus. This
could be accomplished at the implementation level alone, or it could be
governed by a recommendation or standard.
One subsidiary issue is that any limit may have to change over time in
response to increases in computational speed: a limit which may
initially reflect an unjustifiably high number of iterations may later
be considered cryptographically weak.
Proposed Resolution:
We agree that it is desirable for resolvers to set an upper limit.
We propose to submit the following two questions for consideration by
the IETF Security Area Directorate:
1. Should an upper limit be specified in the standard?
2. If so, should the upper limit be specified in a separate document
so that the it may be updated without having to re-publish the
entire standard.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #28 | NSEC3 Issue 1: Use of Hashes Creates New Owner Names | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A signed zone which uses NSEC3 introduces new owner names which are Base32-encoded hashes of existing owner names in the zone. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #29 | NSEC3 Issue 2: RFC 3548 Base32 Sort Order | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
RFC 3548 describes a Base32 encoding that is unsuitable for NSEC3 hashes, as the sort order of the encodings differ from binary sort order. This issue was raised in this post to namedroppers:
Subsequent to this post, the author of RFC 3548 submitted a new draft:
This draft adds a new encoding called "base 32 extended hex alphabet" which preserves the sort order of encoded data, and describes the encoding used in -nsec-03. This is the same encoding used in Section 3.1 of RFC 2938. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #30 | NSEC3 Issue 3: Determination of Correct Zone Parameters | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A name server has to be able to look up the NSEC3 RR associated with an owner name. To do this, it must have the correct values for the salt and number of iterations required to produce the hash value which is the owner name of the NSEC3 RR. However, an NSEC3 zone may contain any number of incomplete chains of NSEC3 RRs provided that at least one is complete. Consequently it cannot use the values contained in any arbitrary NSEC3 RR in the zone. So how does a name server determine the correct values for the zone? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #31 | NSEC3 Issue 4: Design Rationale | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The draft needs to include more information about rationale underlying various design decisions, for example: - Why use a salt? - Why use iterations? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #32 | NSEC3 Issue 5: Hash Function RDATA Too Short | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The hash function field of the RDATA section of the NSEC3 RR is seven bits long; however RFC 4034 specifies that DNSSEC security algorithms are identified by 8-bit numbers (Appendix A, Section 1). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #33 | NSEC3 Issue 6: Owner names of hashes are limited to case-folded names | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The owner names of NSEC3 RRs are currently restricted to case-folded names as non-case folded names will not be ordered properly in a zone. Base32 has been selected for this encoding. As a consequence, NSEC3 RRs require a 32 octet owner name to represent each hash, 12 more than the binary representation of the hash. If NSEC3 were to be subsequently modified to use SHA-256, then each owner name would require 20 more octets than the binary representation. Some have suggested that NSEC3 could use a new binary label type for owner names rather than Base32-encoded labels; this would marginally reduce the size of DNSSEC responses for zones using NSEC3. It would also marginally increase the total length domain names which could be permitted in an NSEC3 zone. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #34 | NSEC3 Issue 7: Maximum Domain Name Length | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The owner name of the apex of an NSEC3 zone is limited to 222 octets, as the NSEC3 hash for the apex (and any other owner names in the zone) is constrained to 255 octets. In practise vanishingly few domain names approach this length. Zones that require such long names will be constrained to using NSEC RRs. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #35 | NSEC3 Issue 15: recommend against the use of partially opt-out zones. | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A single zone may contain NSEC3 records with the optout bit set or clear. To cope with the granularity of a per-record signal of opt-out introduces additional complexity for signing and dynamically updating such a zone while the use case for this granularity is not clear. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #36 | NSEC3 Issue 16: The need for a Hash Length Field. | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The length of a hash is dependend on the hash function used. SHA1 produces 160 bit values, while SHA256 produces 256 bit values. Currently, the NSEC3 rdata lacks a hash length field, which makes the length of the Next Hashed Ownername field dependend on the hash algorithm listed in the Hash Algorithm field. However, when the hash algorithm is unknown, the length of the Next Hashed Ownername field is unknown. It is then impossible to express the NSEC3 record in proper presentation format. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #37 | NSEC3 Issue 17: opt-out for delegation only is not enforcable. | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The use of Optout is restricted to unsigned delegations. This restriction is inherited from the experimental Opt-In draft. Even-though the restriction is in place, it can't be enforced on the server side, i.e. there is a way to allow unsigned records other than delegations to exist in an optout span, without it ever to appear as such on the wire, by means of delegating them to unsigned subzones with the same name. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #38 | NSEC3 Issue 18: signalling complete NSEC3 chains | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A server must use NSEC3 records from a complete chain. How does it know what parameters (salt, iterations, algorithm) to use that belong to a complete chain. NOTE: this is a duplicate of NSEC3 Issue 3. More specifically, how do implementations *efficiently* learn the parameters for a zone? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #39 | NSEC3 Issue 19: NSEC3 processing order | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Should the document specify a recommendation about if a validating resolver should process first the range of NSEC3 names covers query name or the signature on the NSEC3 records is valid. RFC4035 specifies/recommends that validating resolver first check that the name range applies before validating the signature, as that is the less expensive operation. For a NSEC3 with high iteration count it is possible that validating the signature is less expensive than checking the name range. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #40 | NSEC3 Issue 20: Server behavior wrt unknown hash algorithms | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
n NSEC3 capable server might, on load or during a zone transfer, encounter an NSEC3 with an unknown hash algorithm. As it is unable to determine which NSEC3 to send back in a response, the server can't fully provide the service intended. Approach 1) Refuse to load/accept the zone. Return rcode 2 on requests related to this zone. Approach 2) load/accept the zone with a warning. Return rcode 2 where the responses normally would contain NSEC3 records. This allows the server to provide service for DO=0 requests, and for DO=1 where the responses do not contain NSEC3's Approach 3) Load/accept the zone with a warning. Return rcode 2 except for qtype=axfr/ixfr. This allows the server to provide service for secondaries. This is not an exhaustive list. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #41 | NSEC3 Issue 21: Signer behavior in case of hash collision. | defect | normal | 06/22/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
If there exists a name and a wildcard record where the corresponding hash values collide, an attacker can replace a positive answer with a wildcard and vice versa. Though hash functions are designed to be collision resistant, the question has been raised if signers are allowed to, or should check. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
