> On 21 Jun 2018, at 5:24 pm, Petr Špaček <petr.spa...@nic.cz> wrote: > > On 20.6.2018 23:01, Mark Andrews wrote: >>> On 21 Jun 2018, at 12:25 am, Petr Špaček <petr.spa...@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. > > Sorry, I still do not think it is sufficient for interoperable > implementations for multiple reasons: > > - Let's assume that serverA has time limit for cookie freshness "1 hour" > and the serverB in the same anycast cluster "2 hours". This will produce > unnecessary BADCOOKIE errors from time to time.
Your worried about a client that hasn’t talked to the anycast cluster for a hour getting a BADCOOKIE? Knit picking to the extreme. > - It is not specified how "Time" sub-field in B.2. is encoded on the > wire so it is not guaranteed that two different implementations will > decode the value in the same way. > (Is it in integer seconds? Unix timestamp? Signed or unsigned? How do we > handle rollover over 0xFFFFFFFF? …) It is the seconds since Jan 1 1970 ignoring leap seconds in named. Serial arithmetic will be fine for the rollover in 2038 or you can just use a straight unsigned modulus value and have a extra BADCOOKIE per client during the first hour. > - Besides data format we need to explicitly state if sub-fields are big > endinan (I guess) or not, etc. We used network byte order like every other field in the DNS. > Also, let me ask why BIND decided to use AES by default instead of > HMAC-SHA256-64 described in the RFC? Because it is faster and unless you are running a anycast cluster it doesn’t matter what algorithm is being used as all you need to be able to do is handle your own output being returned to you. BIND implements 2 or 3 hashes. How many depends on what version of OpenSSL it is linked against does it have AES support or not. AES is used to generate a HASH which is actually documented in RFC 7873. There is no “hiding” the cookie from from the attacker. > For me it is appealing to hide > content of the cookie from attacker eyes but I'm not willing to > implement something without proper description and understanding > (cargo-cult algorithms instead of spec, anyone? :-). > > > So let me ask again: > Are other vendors willing to work on sufficiently detailed > specification? If not just say it! > > In that case I will be happy to reply to our friendly root operator that > it is not going to happen, and consequently throw away code for cookies > from Knot Resolver. I do not see value in it without interoperable spec, > just maintenance costs. > > Petr Špaček @ CZ.NIC > > >>> 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 -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: ma...@isc.org _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop