Re: [DNSOP] DNS cookies and multi-vendor anycast incompatibility

Daniel Salzman <daniel.salzman@nic.cz> Thu, 21 June 2018 15:20 UTC

Return-Path: <daniel.salzman@nic.cz>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A4DF1130EAE for <dnsop@ietfa.amsl.com>; Thu, 21 Jun 2018 08:20:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.999
X-Spam-Level:
X-Spam-Status: No, score=-6.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8r4t3UxIsADr for <dnsop@ietfa.amsl.com>; Thu, 21 Jun 2018 08:20:38 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D70911294D7 for <dnsop@ietf.org>; Thu, 21 Jun 2018 08:20:37 -0700 (PDT)
Received: from [IPv6:2001:1488:fffe:6:e153:5e1f:323e:a0ab] (unknown [IPv6:2001:1488:fffe:6:e153:5e1f:323e:a0ab]) by mail.nic.cz (Postfix) with ESMTPSA id 5C917604DE; Thu, 21 Jun 2018 17:20:36 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1529594436; bh=8MtohISi5JKc5d4QATfQOh9n1hvlWsikGqp0FjFlyGE=; h=To:From:Date; b=Uib8JlMTWhyUwdFqUHvNvACFzdcM98D38KCP+/GGs5s/D9hSWvVwSyYhXyV70me9S VAAK6xn+jbQpMARSDkjXdQmRjC3+/D4lS9cdxFTu0+y2aZZvGn79Qlmfwb8IlRWimE Bf460DKpbQcxyPwg/6Tw0156Gm8h7BeXCHPKAbmA=
To: Mark Andrews <marka@isc.org>
Cc: Petr Špaček <petr.spacek@nic.cz>, Paul Wouters <paul@nohats.ca>, "dnsop@ietf.org WG" <dnsop@ietf.org>
References: <c70f058c-8e82-f905-e352-f3e2fd0d4cfc@nic.cz> <alpine.LRH.2.21.1806201006530.6077@bofh.nohats.ca> <107c3532-a07d-9821-70ab-94c00a9dd2f0@nic.cz> <9A860D2F-C02D-4D89-B54D-7FDA9823101B@isc.org> <c4de878b-2559-cb68-a033-48ed6322a4a2@nic.cz> <20D2731B-C3DF-461D-B48D-F1CB1BC69DEE@isc.org>
From: Daniel Salzman <daniel.salzman@nic.cz>
Openpgp: preference=signencrypt
Autocrypt: addr=daniel.salzman@nic.cz; prefer-encrypt=mutual; keydata= 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 n/h2cnUw3pqbHw==
Message-ID: <698db15e-f88e-ec30-80e4-b4c115e7fc8f@nic.cz>
Date: Thu, 21 Jun 2018 17:20:36 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
MIME-Version: 1.0
In-Reply-To: <20D2731B-C3DF-461D-B48D-F1CB1BC69DEE@isc.org>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: clamav-milter 0.99.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/yGvAUJ_H4hYZir5DlJx3ET_LhuA>
X-Mailman-Approved-At: Fri, 22 Jun 2018 05:57:27 -0700
Subject: Re: [DNSOP] DNS cookies and multi-vendor anycast incompatibility
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jun 2018 15:20:43 -0000


On 06/21/2018 05:09 PM, Mark Andrews wrote:
> 
>> On 21 Jun 2018, at 5:21 pm, Daniel Salzman <daniel.salzman@nic.cz> wrote:
>>
>> Hello Mark,
>>
>> On 06/20/2018 11:01 PM, Mark Andrews wrote:
>>>
>>>> On 21 Jun 2018, at 12:25 am, Petr Špaček <petr.spacek@nic.cz> wrote:
>>>>
>>>> On 20.6.2018 16:10, Paul Wouters wrote:
>>>>> On Wed, 20 Jun 2018, Petr Špaček wrote:
>>>>>
>>>>>> it seems that current specification of DNS cookies in RFC 7873 is not
>>>>>> detailed enough to allow deployment of DNS cookies in multi-vendor
>>>>>> anycast setup, i.e. a setup where one IP address is backed by multiple
>>>>>> DNS servers.
>>>>>>
>>>>>> The problem is lack of standardized algorithm to generate server
>>>>>> cookie from a shared secret. In practice, even if users manually
>>>>>> configure the same shared secret, Knot DNS and BIND will use diffrent
>>>>>> algorithm to generate server cookie and as consequence these two
>>>>>> cannot reliably back the same IP address and have DNS cookies enabled.
>>>>>>
>>>>>> One of root server operators told me that they are not going to enable
>>>>>> DNS cookies until it can work with multi-vendor anycast, and I think
>>>>>> this is very reasonable position.
>>>>>>
>>>>>> So, vendors, would you be willing to standardize on small number of
>>>>>> server cookie algorithms to enable multi-vendor deployments?
>>>>>
>>>>> I think this is a good idea but there are already two examples in RFC
>>>>> 7873 for cookie generation. Is there a problem with those examples, or
>>>>> is there only a lack of options in the implementation to configure
>>>>> these? If the latter, than no new IETF work would be needed.
>>>>
>>>> These are mere examples and not specifications with all the details
>>>> necessary for reliable interoperability.
>>>
>>> The server cookie examples have all the details required to build a interoperable
>>> implementation.  i.e. with the same inputs you will get the same outputs.
>>>
>>
>> So how should the DNS cookies be implemented? IMHO if one server uses https://tools.ietf.org/html/rfc7873#appendix-B.1
>> and another server uses https://tools.ietf.org/html/rfc7873#appendix-B.2, then it's not interoperable.
>> Actually the upcoming Knot DNS 2.7 implemented "B.1" using Siphash instead of FNV. Bind probably implemented B.2.
>> Are both implementations correct?
> 
> Well you are free to inspect the code to ensure that it behaves the way
> we said it did.  The code is in lib/ns/client.c:compute_cookie.  Older
> branches that is bin/named/client.c:compute_cookie
> 

I mean if one implementation computes cookies based on "Client IP Address | Client Cookie | Server Secret",
then it cannot be interoperable with another implementation which is based on "Server Secret, (Client Cookie | Nonce | Time | Client IP Addres)",
no matter which hashing algorithm is used. And still both implementations comply with the RFC (I think).

>> Thanks,
>> Daniel
>>
>>>> E.g. when a cookie is "old" according to B.2.?
>>>> E.g. are there privacy considerations with plain HMAC vs. encryption?
>>>
>>>
>>>> Besides this, BIND defaults to AES-based algorithm which is not
>>>> specified in the RFC and Knot DNS has its own because developers
>>>> considered the BIND's approch overkill.
>>>>
>>>> If we decide to standardize we need to find a reasonable algorihm and
>>>> standardize all its variables to make it work without run-time
>>>> synchronization (posssibly except key rotation but it can be done
>>>> avoided as well).
>>>>
>>>> This message is for other DNS vendors to see if there is an interest in
>>>> standardizing something we can all share and operators use in practice.
>>>>
>>>> -- 
>>>> Petr Špaček  @  CZ.NIC
>>>>
>>>> _______________________________________________
>>>> DNSOP mailing list
>>>> DNSOP@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/dnsop
>