Petr Špaček wrote on 2021-11-25 04:00:
On 25. 11. 21 9:33, Matthijs Mekking wrote:
...
3.1. Best-practice for zone publishers
...
This section is IMHO missing a scary warning to explain the reasons. Let
add one couple sentences (+ "extra" keyword to differentiate it from the
implicit single iteration):
----------
If NSEC3 must be used, then an extra iterations count of 0 SHOULD be
used to alleviate computational burdens.
Please note that extra iteration counts other than 0 increase impact of
resource CPU-exhausting DoS attacks, and also increase risk of
interoperability problems.
----------
+1.
On 24-11-2021 18:02, Wes Hardaker wrote:
...
Title : Guidance for NSEC3 parameter settings
...
Filename : draft-ietf-dnsop-nsec3-guidance-02.txt
Pages : 10
Date : 2021-11-24
...
I have an additional comment for section 2.4:
...
I believe that this property renders salt practically useless, so let me
propose a modified section 2.4:
------------
NSEC3 records provide an an additional salt value, which can be
combined with FQDN to influence the resulting hash, but properties of
this extra salt are complicated.
In the cryptography field, salts generally add a layer of protection
against offline, stored dictionary attacks by combining the value to be
hashed with a unique "salt" value. This prevents adversaries from
building up and remembering a single dictionary of values that can
translate a hash output back to the value that it derived from.
In the case of DNS, the situation is different because the hashed
names placed in NSEC3 records are always implicitly "salted" by hashing
the fully-qualified domain name from each zone. Thus, no single
pre-computed table works to speed up dictionary attacks against multiple
target zones. An attacker is always required to compute a complete
dictionary per zone, which is expensive in both storage and CPU time.
To understand role of the additional NSEC3 salt field, we have to
consider how a typical zone walking attack works. Typically the attack
has two phases - online and offline. In the online phase, an attacker
"walks the zone" by enumerating (almost) all hashes listed in NSEC3
records and storing them for offline cracking. Then in the offline
phase, the attacker attempts to crack the underlying hash. In this case,
the additional salt value can raise cost of the attack only if the salt
value changes during the online phase of the attack. In other words, a
additional salt value which is constant during the online phase of the
attack does not change cost of the attack.
Changing a zone's salt value requires the construction of a complete
new NSEC3 chain. This is true both when resigning the entire zone at
once, or incrementally signing it in the background where the new salt
is only activated once every name in the chain has been completed. As a
result, re-salting a is very complex operation, with significant CPU
time, memory, and bandwidth consumption. This makes very frequent
re-salting unpractical, and renders the additional salt field almost
useless.
Operators are encouraged to forget the salt entirely by using a
zero-length salt value instead (represented as a "-" in the presentation
format).
------------
+1.
I'm tempted to put the last paragraph first, because all the rest is
justification and I don't want to drown the important piece of
information in it.
+1.
vixie
--
Sent from Postbox
<https://www.postbox-inc.com/?utm_source=email&utm_medium=siglink&utm_campaign=reach>
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop