In message <20150805201942.ga29...@laperouse.bortzmeyer.org>, Stephane Bortzmey
er writes:
> On Sat, Aug 01, 2015 at 10:06:48AM -0400,
>  Donald Eastlake <d3e...@gmail.com> wrote 
>  a message of 151 lines which said:
> 
> > This revisions incorporates the early allocation of 23 as the
> > BADCOOKIE RCODE and the changes agreed to on this mailing list.
> 
> Editorial: I still find section 5.2 "Responding to Request" very
> confusing. It says "there are four possibilities" but the four
> subsections don't match the list given. For instance, the draft says
> "(2) there is no valid Client Cookie in the request because the COOKIE
> OPT option is absent from the request, or one is present but is not a
> legal length;" (thus mixing the normal behavior of a non-cookie client
> and a software bug) but this possibility (2) then becomes two
> subsections 5.2.1 and 5.2.2. And the possibility "(1) there is no OPT
> RR at all in the request;" was merged with a part of (2) to be
> subsection 5.2.1.
> 
> Note this is an old (and never fully addressed) problem
> <https://mailarchive.ietf.org/arch/msg/dnsop/rQ0uUYOJqvhGFUQ9hbNFYCp8Nk8>
> 
> I suggest to rewrite it as (if there is a public version of the draft
> source, I can send patches/pull requests instead):

Looks reasonable with one change below.

> 5.2 Responding to Request
> 
>    The Server Cookie, when it occurs in a COOKIE OPT option in a
>    request, is intended to weakly assure the server that the request
>    came from a client that is both at the source IP address of the
>    request and using the Client Cookie included in the option. This weak
>    assurance is provided by the Server Cookie that server would send to

s/would send/sent/

>    that client in an earlier response appearing as the Server Cookie
>    field in the request.
> 
>    At a server where DNS Cookies are not implemented and enabled,
>    presence of a COOKIE OPT option is ignored and the server responds as
>    if no COOKIE OPT option had been included in the request.
> 
>    When DNS Cookies are implemented and enabled, there are five
>    possibilities: (1) there is no OPT RR at all in the request; or there
>    is a OPT RR but the the COOKIE OPT option is absent from the
>    request (2) a COOKIE OPT is present but is not a
>    legal length or otherwise malformed; (3) there is a valid length
>    cookie option in the
>    request with no Server Cookie; (4) there is a Server Cookie but it   
>    is invalid; or (5) there is a cookie option in the request with a
>    correct Server Cookie.
> 
>    The five possibilities are discussed in the subsections below.
> 
>    In all cases of multiple COOKIE OPT options in a request, only the
>    first (the one closest to the DNS header) is considered. All others
>    are ignored.
> 
> 
> 5.2.1 No Opt RR or No COOKIE OPT option
> 
>    If there is no OPT record or no COOKIE OPT option present in the
>    request then the server responds to the request as if the server
>    doesn't implement the COOKIE OPT.
> 
> 5.2.2 Malformed COOKIE OPT option
> 
>    If the COOKIE OPT is too short to contain a Client Cookie then
>    FORMERR is generated.  If the COOKIE OPT is longer than that required
>    to hold a COOKIE OPT with just a Client Cookie (8) but is shorter
>    that the minimum COOKIE OPT with both a Client and Server Cookie (16)
>    then FORMERR is generated.  If the COOKIE OPT is longer than the
>    maximum valid COOKIE OPT (40) then a FORMERR is generated.
> 
>    In summary, valid cookie lengths are 8 and 16 to 40 inclusive.
> 
> 5.2.3 Only a Client Cookie
> 
>    Based on server policy, including rate limiting, the server chooses
>    one of the following:
> 
>    (1) Silently discard the request.
> 
>    (2) Send a BADCOOKIE error response.
> 
>    (3) Process the request and provide a normal response. The RCODE is
>        NOERROR unless some non-cookie error occurs in processing the
>        request.
> 
>    If the server responds, choosing 2 or 3 above, it SHALL generate its
>    own COOKIE OPT containing both the Client Cookie copied from the
>    request and a Server Cookie it has generated and adds this COOKIE OPT
>    to the response's OPT record. Servers MUST, at least occasionally,
>    respond to such requests to inform the client of the correct Server
>    Cookie. This is necessary so that such a client can bootstrap to the
>    weakly secure state where requests and responses have recognized
>    Server Cookies and Client Cookies.
> 
>    If the request was received over TCP, the server SHOULD take the weak
>    authentication provided by the use of TCP into account and SHOULD
>    choose 3. In this case, if the server is not willing to accept the
>    weak security provided by TCP as a substitute for the weak security
>    provided by DNS Cookies but instead chooses 2, there is some danger
>    of an indefinite loop of retries (see Section 5.3).
> 
> 5.2.4 A Client Cookie and an Invalid Server Cookie
> 
>    The server examines the Server Cookie to determine if it is a valid
>    Server Cookie it has generated.  This examination will result in a
>    determination of whether the Server Cookie is valid or not.  If the
>    cookie is invalid, it can be because of a stale Server Cookie, or a
>    client's IP address or Client Cookie changing without the DNS server
>    being aware, or an anycast server cluster that is not consistently
>    configured, or an attempt to spoof the client.
> 
>    The server SHALL process the request as if the invalid Server Cookie
>    was not present as described in Section 5.2.3.
> 
> 5.2.5 A Client Cookie and a Valid Server Cookie
> 
>    When this occurs the server can assume that the request is from a
>    client that it has talked to before and defensive measures for
>    spoofed UDP requests, if any, are no longer required.
> 
>    The server SHALL process the request and include a COOKIE OPT in the
>    response by (a) copying the complete COOKIE OPT from the request or
>    (b) generating a new COOKIE OPT containing both the Client Cookie
>    copied from the request and a valid Server Cookie it has generated.
> 
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop
-- 
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

Reply via email to