On 24.3.2015 19:11, Warren Kumari wrote:
> On Tue, Mar 24, 2015 at 9:56 AM, Jan Včelák <jan.vce...@nic.cz> wrote:
>> On 24.3.2015 13:57, Paul Hoffman wrote:
>>> On Mar 23, 2015, at 6:23 PM, Jan Včelák <jan.vce...@nic.cz> wrote:
>>>>> This proposal continues to have fundamental problems that are not 
>>>>> documented in the draft.
>>>>>
>>>>> - The statement about NSEC3 "offline dictionary attacks are still 
>>>>> possible and have been demonstrated" doesn't take into account trivial 
>>>>> changes that an operator can choose to take if they are really concerned 
>>>>> about offline dictionary enumeration (with the trade-off being zone size).
>>>>
>>>> Please, can you clarify which trivial solution in particular do you mean?
>>>
>>> Sure. When signing the zone, instead of creating one NSEC3 record for a 
>>> gap, you create 10 or 100 with random intervals between the two hashes. 
>>> That way an attacker is more likely to get results that will not match 
>>> dictionary entries.
>>
>> This is described in the mentioned paper as "NSEC3 with dummy records".
>> It's not a good solution - the cost for the name server is higher than
>> the cost for the attacker.
>>
>>>> There is a paper "Stretching NSEC3 to the Limit: Efficient Zone
>>>> Enumeration Attacks on NSEC3 Variants" by Sharon Goldberg et al, which
>>>> covers some of the trivial solutions and explains why it won't work:
>>>>
>>>> http://www.cs.bu.edu/~goldbe/papers/nsec3attacks.pdf
>>>>
> 
> Yes, this was presented at (IIRC) DNS-OARC in Los Angeles. While the
> paper is correct, my view of the response was "shrug", and "this is
> not a problem worth spending resources to solve". While some zone
> operators want to minimize zone enumeration, it's not really viewed as
> a huge issue. This is like buying a triple hardened bank vault door to
> protect a slice of cake.

Is the cake delicious?

>>>>> - The draft does not discuss the increased CPU resources needed on every 
>>>>> authoritative server to respond to non-existent queries relative to 
>>>>> simply serving NSEC or NSEC3 directly.
>>>>
>>>> Yes, that's right. We would like to cover this in the "Performance
>>>> Considerations" section, which is not ready at the moment.
>>>
>>> NSEC5 has significant operational consequences. Deferring the description 
>>> of them until later doesn't help the WG evaluate whether or not this 
>>> proposal is worth considering.
>>
>> Sure. We just wanted some early feedback.
>>
>>>>> - Section 2 says "The zones signed according to this specification MUST 
>>>>> use only these [NSEC5-based] algorithm identifiers, thus NSEC5-unaware 
>>>>> resolvers will treat the zone as insecure" without acknowledging that 
>>>>> such a tradeoff is unneeded if the operator uses NSEC3 obfuscation 
>>>>> instead.
>>>>
>>>> I'm not sure if I understand this correctly. If the zone uses NSEC5 for
>>>> authenticated denial ("zones signed according to this specification"),
>>>> then it must use only NSEC5 capable algorithms ("these algorithm
>>>> identifiers"). Otherwise an NSEC5-unaware resolver would treat the
>>>> denying responses from the server as bogus. Does it make sense?
>>>
>>> No. As a zone administrator, you decide whether to sign your zone with NSEC 
>>> or NSEC3. You are prosing to make that decision "NSEC or NSEC3 or NSEC5", 
>>> but without acknowledging tradeoffs.
>>
>> OK.
>>
>>>>> - Section 10, "Resolver Considerations", doesn't mention that the NSEC5 
>>>>> private keys must be securely distributed out-of-band when the NSEC5KEY 
>>>>> RR is updated, nor that the private key must be atomically updated when 
>>>>> the NSEC5KEY is updated.
>>>>
>>>> Does it fit the "Resolver Considerations"?
>>>
>>> Sorry, my fault. I should have said: Section 9.4, Secondary Servers,  
>>> doesn't mention that the NSEC5 private keys must be securely distributed 
>>> out-of-band when the NSEC5KEY RR is updated, nor that the private key must 
>>> be atomically updated when the NSEC5KEY is updated. Instead, it only says 
>>> "This document does not define mechanism to distribute NSEC5 private keys".
>>>
>>>> Yes, we don't define any mechanism to distribute the private keys to
>>>> other authoritative servers. I think this is out of the scope of the draft.
>>>
>>> This protocol is an operational change to the way that DNSSEC is provided. 
>>> Having a critical piece of that operation be out of scope for your proposal 
>>> is inappropriate.
>>
>> I disagree. This can be implementation specific. From the same reason we
>> don't define format for NSEC5 private keys. This is a general problem of
>> DNS provisioning. I'm persuaded that defining some provisioning protocol
>> within NSEC5 is a bad idea.
>>
>>>> We can provide more details about the private key exchange during the
>>>> NSEC5 key rollover. The key itself is bound to one NSEC5 chain - so
>>>> during the rollover, when the NSEC5 chain is replaced, the new private
>>>> key is started to be used.
>>>
>>> That part is clear: what isn't clear is the importance of getting that on 
>>> all secondaries.
>>
>> OK.
>>
>>>>> - There is no discussion of how many queries an attacker needs to send to 
>>>>> enumerate a zone with NSEC5. In the real world, it is pretty easy to send 
>>>>> queries for each string in a dictionary, making NSEC5 just as vulnerable 
>>>>> as NSEC3, yet at a much higher operational cost.
>>>>
>>>> To enumerate the zone, you will need approximately the same amount of
>>>> queries you will need to enumerate a plain unsigned zone. (Assuming that
>>>> the server responds to ANY. And ignoring wildcards, which are easily
>>>> recognizable in DNSSEC.)
>>>
>>> Yes, exactly.
>>>
>>>>
>>>>> Overall, this seems like a novel idea that comes with a huge operational 
>>>>> overhead and no actual demand.
>>>>
>>>> Yes, it comes at a price. People who don't want to disclose content of a
>>>> zone may already use online signing and the overhead is huge as well.
>>>> NSEC5 just makes it possible to have the zone signing key offline.
> 
> Sure, you might not want folk to just download your zone and walk off
> with it, but ... If you put something in a zone, and expect that to
> remain secret, you are in for a bad day.
> 
> The contents of zones quickly becomes visible, what with passive DNS,
> DITL, people who connect in place X, and then reopen their laptop in
> place Y, etc.

I know and I completely agree.

On the other hand, there are efforts (DPRIVE) to make this data
collection more difficult.

>>> People who don't want to disclose the content of a zone don't serve the 
>>> zone. That is not the operational tradeoff that NSEC3 addresses.
>>
>> That's more a philosophical question. Depends if you think that the data
>> in the zone are public.
> 
> It is -- or, at least, it soon becomes so.
> 
>> If you are an attacker, the first think you will
>> probably do is to determine attack vectors on a target system. And the
>> DNS zone may provide a lot of useful information about the system
>> architecture.
> 
> Perhaps not naming your NEC Point of Sale terminal as
> nec-cashregister-running-nOS3-14.example.com would be a better idea
> than assuming that this will remain "secret". If you really want,
> there is split dns, etc, but if you stick things in a publicly
> accessible zone, you should expect it will become public....

The reason why I started to write the draft was to find out, how the
theory is applicable in the real-world DNS. I really like the idea of
NSEC5. It's a proper way of preventing zone enumeration, while having
the zone signing key offline.

I know that the changes to the protocol are invasive and that the
performance degradation is significant. I want that to be documented. If
we quantify the benefits and trade-offs, the zone operators can decide
if NSEC5 is worthy.

Jan

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to