Re: [DNSOP] I-D Action: draft-ietf-dnsop-rfc2845bis-08.txt

Donald Eastlake <d3e3e3@gmail.com> Mon, 11 May 2020 19:39 UTC

Return-Path: <d3e3e3@gmail.com>
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 E36383A0B30 for <dnsop@ietfa.amsl.com>; Mon, 11 May 2020 12:39:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.847
X-Spam-Level:
X-Spam-Status: No, score=-1.847 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 UWr7dp--Po0Z for <dnsop@ietfa.amsl.com>; Mon, 11 May 2020 12:39:14 -0700 (PDT)
Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3613C3A0C7C for <dnsop@ietf.org>; Mon, 11 May 2020 12:38:57 -0700 (PDT)
Received: by mail-io1-xd2d.google.com with SMTP id w11so11180393iov.8 for <dnsop@ietf.org>; Mon, 11 May 2020 12:38:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gKbPY5uAp72WNRuGMM8Sue9baAkjxQAei2Lq8UOO98Y=; b=ZWIXNdUsPOEBVbAunaIq22crchnTWyTA+uyxp5uY9bEyouyEJWVA2yvKCsECqncXEI 9oXbiXwtlyJowsvjRxwMNwxUAemZ9XAQQw5O4rK6JbFSQ5D9X7Htx1/ZmH0FOtA9SBv3 GQD1hHWzoJrKAeE3wylATos9g77tk0qhk9ZwGxHOFtQ3ynyWfV+2Uk/WDcyJlkfedjNk WiJ75z23lu1EBFGf6k+38Hwku5rmEthJ7WrQ64msc3KVu2lA8OM13gQyq05F7so394tJ vR7HHkA66h8XEdtp508B9anzyI3zoZlrDqy2n8WyJ6lH4wDyJznhQHIZ28OTlJFl//6C cgNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gKbPY5uAp72WNRuGMM8Sue9baAkjxQAei2Lq8UOO98Y=; b=SckNAvdPpk69bH+KvD1lup3XFwnJZVO0aR4TomNGc3XAfQ4Xoc1em5BcDwFF64OF2E 5473UUp2qj6Xlll3KcpSWPrXVXCjoKx8WNatLob9ZydgFzMyNO1joqQCH+55Aztyp+GH iQ1opMRWBv+LXYkQzgNNTP7vqIxF1vBZ8Y2cZ6f+rKRmprZaK6OexIPfXR0m+IFbukoB 5OHvGckqz8X7GLAe7BPwmImD0SSpQrQ2TlJSytppzYH6lGLkEAXmtYGHp0c/oZZmpfXR lGCKWslUyUOvRfC1ympXJONzmORNDKyWN+TxtjqJT8+E016WrpUOf78lkOdzL3eC0J83 T7pA==
X-Gm-Message-State: AGi0PuYiQD0aT8DpvwByLF7AvhZuDPYcnOs5fLUwvNmvrL4UJWLlHNUp NFOxgcAbvJJPmnlIJbWACkhKd3tjsUJHblQePaNQG6Ril1w=
X-Google-Smtp-Source: APiQypJZycjlAL9/SsM4MQQDoFxY0FYg+zqoCRzz5mEynmLEFYdpVquQWxXh9N6SUB9R71F6zgfvR3QfpPFsifEcYus=
X-Received: by 2002:a6b:6607:: with SMTP id a7mr9574084ioc.167.1589225935951; Mon, 11 May 2020 12:38:55 -0700 (PDT)
MIME-Version: 1.0
References: <C14C5908-2CAE-4A56-A84A-C6CC546D7B17@gmail.com> <80827E5F-F0DF-4A3C-BD2D-9E57991337FD@gmail.com> <CADyWQ+EDJsAQy05RfbCB+eC-YJttPMabnxDLFHSpZpP0b4QONA@mail.gmail.com> <CAF4+nEGG8vYeaj_HBA1ZxJvuYwXEqPF2X3J5bc9XfjOWxK-iVw@mail.gmail.com> <CADyWQ+GP+di0W4ivcWvxBxFiS5TQqmUrun2gqQQxdK7nf_PenA@mail.gmail.com>
In-Reply-To: <CADyWQ+GP+di0W4ivcWvxBxFiS5TQqmUrun2gqQQxdK7nf_PenA@mail.gmail.com>
From: Donald Eastlake <d3e3e3@gmail.com>
Date: Mon, 11 May 2020 15:38:44 -0400
Message-ID: <CAF4+nEH0hnfLhWCRX+o30oQVYQ2KoDrehNPDO629K+o9AznxGw@mail.gmail.com>
To: Tim Wicinski <tjw.ietf@gmail.com>
Cc: Stephen Morris <sa.morris8@gmail.com>, dnsop <dnsop@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000615d0f05a5647fdc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/Avm9yM1v5ew8uzI0de36a7udLUc>
Subject: Re: [DNSOP] I-D Action: draft-ietf-dnsop-rfc2845bis-08.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 11 May 2020 19:39:22 -0000

Hi Tim,

On Mon, May 11, 2020 at 1:51 PM Tim Wicinski <tjw.ietf@gmail.com> wrote:

> Donald
>
> So you're suggest hmac-sha224 is "MAY" for both Implementation and Use ?
>

Yes, that would be fine.

SHA-224 is just SHA-256 with some different initial vectors and the result
truncated to 224 bits. So if you have implemented SHA-256, it takes like
0.1% more code to add SHA-224. And, while the value of SHA-224 would be
different for a particular input from the value of SHA-256 truncated to 224
bits, I don't see any reason why it would be less secure.

Thanks,
Donald
===============================
 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 2386 Panoramic Circle, Apopka, FL 32703 USA
 d3e3e3@gmail.com

On Mon, May 11, 2020 at 12:29 AM Donald Eastlake <d3e3e3@gmail.com> wrote:
>
>> The incremental effort to implement SHA-224 if you are implementing
>> SHA-256 is miniscule. It makes no sense to me for SHA-224 to be NOT
>> RECOMMENDED to use when SHA-256 is MUST implement and RECOMMENDED to use
>> and you can use SHA-256 with truncation to 224 or even fewer bits.
>>
>> Thanks,
>> Donald
>> ===============================
>>  Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
>>  2386 Panoramic Circle, Apopka, FL 32703 USA
>>  d3e3e3@gmail.com
>>
>>
>> On Sat, May 9, 2020 at 9:52 PM Tim Wicinski <tjw.ietf@gmail.com> wrote:
>>
>>> To follow up on Stephen's comments, a table was added to 2845bis to
>>> list all the algorithms that are currently in the IANA registry,
>>> along with suggestions for implementation.  This was the first version:
>>>
>>>                    Requirement Name
>>>                    ----------- ------------------------
>>>                    Optional    HMAC-MD5.SIG-ALG.REG.INT
>>>                    Optional    gss-tsig
>>>                    Mandatory   hmac-sha1
>>>                    Optional    hmac-sha224
>>>                    Mandatory   hmac-sha256
>>>                    Optional    hmac-sha384
>>>                    Optional    hmac-sha512
>>>
>>> During the IESG review (I think it was the SECDIR review), there was
>>> a meltdown over implementing SHA-1. But SHA-1 is in use currently.
>>> My suggestion was to do a variation describing implementation use.
>>> This is what I came up with(so blame me):
>>>
>>>           Name                     Implementation Use
>>>           ------------------------ -------------- ---------------
>>>           HMAC-MD5.SIG-ALG.REG.INT MAY            MUST NOT
>>>           gss-tsig                 MAY            MAY
>>>           hmac-sha1                MUST           NOT RECOMMENDED
>>>           hmac-sha224              MAY            NOT RECOMMENDED
>>>           hmac-sha256              MUST           RECOMMENDED
>>>           hmac-sha256-128          MAY            MAY
>>>           hmac-sha384              MAY            MAY
>>>           hmac-sha384-192          MAY            MAY
>>>           hmac-sha512              MAY            MAY
>>>           hmac-sha512-256          MAY            MAY
>>>
>>> On the use side, these are mostly guesses.   We would love to hear
>>> what the WG has to say about this.
>>>
>>> thanks
>>> tim
>>>
>>>
>>> On Mon, May 4, 2020 at 2:07 PM Stephen Morris <sa.morris8@gmail.com>
>>> wrote:
>>>
>>>>
>>>> > On 4 May 2020, at 19:00, internet-drafts@ietf.org wrote:
>>>> >
>>>> >
>>>> > A New Internet-Draft is available from the on-line Internet-Drafts
>>>> directories.
>>>> > This draft is a work item of the Domain Name System Operations WG of
>>>> the IETF.
>>>> >
>>>> >        Title           : Secret Key Transaction Authentication for
>>>> DNS (TSIG)
>>>> >        Authors         : Francis Dupont
>>>> >                          Stephen Morris
>>>> >                          Paul Vixie
>>>> >                          Donald E. Eastlake 3rd
>>>> >                          Olafur Gudmundsson
>>>> >                          Brian Wellington
>>>> >       Filename        : draft-ietf-dnsop-rfc2845bis-08.txt
>>>> >       Pages           : 29
>>>> >       Date            : 2020-05-04
>>>>
>>>>
>>>> The update addresses to the draft comments made during the IESG
>>>> review.  There were a fair number of these which led to a number of changes
>>>> to the document.  These are listed below.
>>>>
>>>> One significant change is that the list of acceptable algorithms has
>>>> been extended, and WG approval for this is sought.
>>>>
>>>> Stephen
>>>>
>>>>
>>>>
>>>>
>>>> Comments from Roman Danyliw
>>>> ---
>>>> > ** Section 1.3.  Per “In 2017, two nameservers  strictly following
>>>> that document (and the related [RFC4635]) were discovered to have security
>>>> problems related to this feature”, consider providing a reference to the
>>>> published vulnerabilities (i.e., CVE-2017-3142 and CVE-2017-3143)
>>>>
>>>> I’ve added these (and one other related CVE) as informative
>>>> references.  Using just the CVE number as a reference seemed a bit spartan,
>>>> so I’ve added a title to each incident. As the description of the CVEs in
>>>> Mitre’s database don’t contain a title (only a description, which can be
>>>> rather long), I’ve taken the title from ISC’s KnowledgeBase (for the BIND
>>>> CVEs) and from the Knot release notes (for the Knot CVE).
>>>>
>>>>
>>>> > ** Section 6.  Per “SHA-1 collisions have been demonstrated so the
>>>> MD5 security considerations apply to SHA-1 in a similar manner.  Although
>>>> support for hmac-sha1 in TSIG is still mandatory for compatibility reasons,
>>>> existing uses should be replaced with hmac-sha256 or other SHA-2 digest
>>>> algorithms [FIPS180-4], [RFC3874], [RFC6234].
>>>> >
>>>> > -- It’s worth repeating those MD5 security considerations here
>>>>
>>>> I’m not really keen on doing this, since the security considerations in
>>>> RFC 6151 cover two paragraphs and including them - or even a summary of
>>>> them - would detract from the flow of the document.  However, I have
>>>> explicitly included a reference to RFC 6151 in the text.
>>>>
>>>>
>>>> > -- (from Magnus Nystrom’s SECDIR review, thanks Magnus!) it’s worth
>>>> including references to the recent SHA-1 cryptoanalysis provided in the
>>>> SECDIR review
>>>>
>>>> Added references to just one of these papers (”SHA1 is a Shambles”).
>>>> We’re not doing a general analysis of the algorithms, so a simple reference
>>>> to a paper than describes a SHA1 collision is all that is needed.  (As an
>>>> aside, the paper doesn't give the date of publication, so I had to search
>>>> the Web looking for references to it.  I think I’ve got the date correct,
>>>> but I’d be grateful for a double-check.)
>>>>
>>>>
>>>> > -- The SHA-2 family should be a normative SHOULD (or RECOMMENDED).
>>>>
>>>> Done - see Table 2
>>>>
>>>>
>>>> > ** Section 10.  Per “For all of the message authentication code
>>>> algorithms listed in this document, those producing longer values are
>>>> believed to be stronger”, as noted in Magnus’s SECDIR review, this could be
>>>> misconstrued as the algorithm choice not the digest length provides the
>>>> security.  Recommend rephrasing (or making some statement
>>>>
>>>> I’ve reworded this paragraph (in section 10).  It now reads:
>>>>
>>>>   "Although the strength of an algorithm determines its security, there
>>>>   have been some arguments that mild truncation can strengthen a MAC by
>>>>   reducing the information available to an attacker.  However, excessive
>>>>   truncation clearly weakens authentication by reducing the number of
>>>>   bits an attacker has to try to break the authentication by brute
>>>>   force [RFC2104]."
>>>>
>>>>
>>>> > ** Editorial
>>>> > -- Section 4.3.2.  Per “When verifying an incoming message, this is
>>>> the message after the TSIG RR and been removed and the ARCOUNT field has
>>>> been decremented.”, this sentence doesn’t parse (is missing a word).
>>>> >
>>>> > -- Section 4.3.2.  Per “A whole and complete DNS message in wire
>>>> format.”, this isn’t a sentence.
>>>>
>>>> Section 4.3.2 has been reworded to address these issues.
>>>>
>>>>
>>>>
>>>> Comments from Benjamin Kaduk
>>>>
>>>> > Thanks for putting together this update; it's good to see the security
>>>> > issue getting closed off in the udpated spec, and progression to full
>>>> > Internet Standard!  I do have several substantive comments (as well as
>>>> > some minor/nit-level ones), many of which are listed here at the top
>>>> but
>>>> > a few of which are interspersed in the per-section comments.
>>>> >
>>>> >
>>>> > I considered making this a Discuss point, but it should be pretty
>>>> > uncontroversial and I trust that the right thing will happen even if I
>>>> > don't: there's a couple lingering remnants of SHA-1 being the
>>>> > preferred algorithm that need to be cleaned up, in Sections 5.2.2.1
>>>> and
>>>> > 10 (further detailed in the per-section comments).
>>>>
>>>> The document now mentions SHA1 collisions and notes that the MD5
>>>> security considerations apply to SHA1.  It also mentions that support for
>>>> SHA1 is mandatory for compatibility reasons but in existing uses it should
>>>> be replaced by a stronger one.
>>>>
>>>>
>>>> > I also initially had made the following point a Discuss-level point,
>>>> but
>>>> > decided to not do so since I don't remember any BCP-level guidance
>>>> > relating to cross-protocol attacks.  Nevertheless, I strongly
>>>> encourage
>>>> > the authors to consider that cryptographic best practice is to use any
>>>> > given key with exactly one cryptographic algorithm.  The record format
>>>> > listed in Section 4.2 has the key name and algorithm as separately
>>>> > conveyed, which would allow for a given key to be used with all
>>>> > implemented algorithms.  We should include some discussion that it's
>>>> > best to only use a single algorithm with any given key.
>>>>
>>>> The following text has been added to the Security Considerations
>>>> section:
>>>>
>>>>   "To prevent cross-algorithm attacks, there SHOULD only be one
>>>>     algorithm associated with any given key name."
>>>>
>>>>
>>>> > We also have a 16-bit wide field for "Fudge", which (since it counts
>>>> > seconds) corresponds to a maximum window of something like +/- 18
>>>> hours;
>>>> > it's hard to believe that we really want to give people the rope to
>>>> > allow for that much time skew.  (Yes, I understand that
>>>> implementations
>>>> > will set something sane in practice but that doesn't necessarily mean
>>>> > that the protocol still has to allow it.)
>>>>
>>>> That was set in the original RFC 2845.  Although I agree with the
>>>> comments, changing the size of that field would be a significant
>>>> undertaking.  However, section 10 does state that the RECOMMENDED fudge
>>>> value in most circumstances is 300 seconds.
>>>>
>>>>
>>>> > Our authoritative list of algorithm names (Table 1) is rather divorced
>>>> > from the references to be consulted for the individual hash algorithms
>>>> > to be used with the HMAC procedure.  The ones used here are
>>>> sufficiently
>>>> > well-known that I'm not terribly concerned about it, though.
>>>>
>>>> The first paragraph of the IANA considerations section lists the
>>>> algorithms and references to where they are described, and I didn’t want to
>>>> duplicate the information.
>>>>
>>>>
>>>> > Abstract
>>>> >
>>>> > The title says "DNS" but maybe the body of the abstract should as
>>>> well?
>>>>
>>>> In the abstract, changed:
>>>>
>>>> "It can be used to authenticate dynamic updates as coming from an
>>>> approved client"
>>>>
>>>> to
>>>>
>>>> "It can be used to authenticate dynamic updates to a DNS zone as coming
>>>> from an approved client"
>>>>
>>>>
>>>> > Section 1.1
>>>> >
>>>> > Some of this language feels like it might not age terribly well, e.g.,
>>>> > "this can provide" or "[t]here was a need".
>>>> >
>>>> >   addresses that need.  The proposal is unsuitable for general server
>>>> >   to server authentication for servers which speak with many other
>>>> >   servers, since key management would become unwieldy with the number
>>>> >   of shared keys going up quadratically.  But it is suitable for many
>>>> >   resolvers on hosts that only talk to a few recursive servers.
>>>>
>>>> Changed to:
>>>>
>>>>         "The authentication mechanism proposed here provides a
>>>>         simple and efficient authentication between clients and local
>>>> servers
>>>>         by using shared secret keys to establish a trust relationship
>>>> between
>>>>         two entities.  Such keys must be protected in a manner similar
>>>> to
>>>>         private keys, lest a third party masquerade as one of the
>>>> intended
>>>>         parties (by forging the MAC).  The proposal is unsuitable for
>>>> general
>>>>         server to server authentication for servers which speak with
>>>> many
>>>>         other servers, since key management would become unwieldy with
>>>> the
>>>>         number of shared keys going up quadratically. But it is
>>>> suitable for
>>>>         many resolvers on hosts that only talk to a few recursive
>>>> servers.”
>>>>
>>>>
>>>> > Should zone transfers be mentioned here as well?
>>>>
>>>> Zone transfers are mentioned in the preceding paragraph.
>>>>
>>>>
>>>> > Section 1.2
>>>> >
>>>> > I don't understand the motivation for changing terminology from MACs
>>>> to
>>>> > "signatures"; they're still MACs even though they're
>>>> transaction-based.
>>>>
>>>> The mention of signatures in section 1.2 is intended as a link between
>>>> the name of the RR (TSIG or Transaction Signature) and the term MAC used in
>>>> the rest of the document.
>>>>
>>>>
>>>> >   MAC of the query as part of the calculation.  Where a response
>>>> >   comprises multiple packets, the calculation of the MAC associated
>>>> >   with the second and subsequent packets includes in its inputs the
>>>> MAC
>>>> >   for the preceding packet.  In this way it is possible to detect any
>>>> >   interruption in the packet sequence.
>>>> >
>>>> > I suggest mentioning the lack of mechanism to detect truncation of the
>>>> > packet sequence.
>>>>
>>>> That is a fair point.  I’ve modified the last sentence to read:
>>>>
>>>>    "In this way it is possible to detect any interruption in the packet
>>>> sequence,
>>>>    although not its premature termination."
>>>>
>>>>
>>>> > Section 4.2
>>>> >
>>>> >   NAME  The name of the key used, in domain name syntax..  The name
>>>> >         should reflect the names of the hosts and uniquely identify
>>>> the
>>>> >         key among a set of keys these two hosts may share at any given
>>>> >         time.  For example, if hosts A.site.example and
>>>> > B.example.net
>>>> >
>>>> >         share a key, possibilities for the key name include
>>>> >         <id>.A.site.example, <id>..B.example.net, and
>>>> >         <id>.A.site.example.B..example.net
>>>> <http://A.site.example.B.example.net>.  It should be possible for
>>>> >         more than one key to be in simultaneous use among a set of
>>>> >         interacting hosts.
>>>> >
>>>> > I'd suggest adding a note along the lines of "This allows for periodic
>>>> > key rotation per best operational practices, as well as algorithm
>>>> > agility as indicated by [BCP201].”
>>>>
>>>> Added.
>>>>
>>>>
>>>> >         The name may be used as a local index to the key involved and
>>>> >         it is recommended that it be globally unique.  Where a key is
>>>> >
>>>> > (nit?): this feels more like a "but" than an "and", to me.
>>>>
>>>> Well spotted.  I also think it is more “but” than “and”
>>>>
>>>>
>>>> >         *  MAC Size - an unsigned 16-bit integer giving the length of
>>>> >            MAC field in octets.  Truncation is indicated by a MAC size
>>>> >            less than the size of the keyed hash produced by the
>>>> >            algorithm specified by the Algorithm Name.
>>>> >
>>>> > nit: I would suggest "output size", as there are potentially a few
>>>> > different sizes involved (key size, block size, and output size, for
>>>> > starters, though I think the possibility of confusion here is low).
>>>>
>>>> I disagree here. “MAC Size” is an unambiguous reference to this field,
>>>> and the other size mentioned - that of the keyed hash is, I think, also
>>>> unambiguous.
>>>>
>>>>
>>>> >         *  Other Len - an unsigned 16-bit integer specifying the
>>>> length
>>>> >            of the "Other Data" field in octets.
>>>> >
>>>> >         *  Other Data - this unsigned 48-bit integer field will be
>>>> >            empty unless the content of the Error field is BADTIME, in
>>>> >            which case it will contain the server's current time as the
>>>> >            number of seconds since 00:00 on 1970-01-01 UTC, ignoring
>>>> >            leap seconds (see Section 5.2..3).
>>>> >
>>>> > I'm slightly confused at the interplay between the explicit length
>>>> field
>>>> > and the "empty unless" directive.  Does this mean that the only
>>>> allowed
>>>> > values in the "Other Len" are 0 and 6?  Does "empty" mean
>>>> "length-zero”?
>>>>
>>>> I’ve rewritten this slightly in a bid to make it clearer that “Other
>>>> Data” being empty means that “Other Len” is zero.
>>>>
>>>>
>>>> > Section 4.3.1
>>>> >
>>>> >   Only included in the computation of a MAC for a response message (or
>>>> >   the first message in a multi-message response), the validated
>>>> request
>>>> >   MAC MUST be included in the MAC computation.  If the request MAC
>>>> >   failed to validate, an unsigned error message MUST be returned
>>>> >   instead.  (Section 5.3.2).
>>>> >
>>>> > side note: while Section 5.3.2 specifies how to create an unsigned
>>>> error
>>>> > message, it looks like Section 5.2 (and subsections lists specific
>>>> > RCODEs that are to be used.
>>>>
>>>> That is the case.  Section 4 is a description of the TSIG RR and its
>>>> fields.  Section 5 describes the contents of the fields in various
>>>> situations (client transmission, server reception, server transmission,
>>>> client reception).
>>>>
>>>>
>>>> > Section 4.3.2
>>>> >
>>>> >   When verifying an incoming message, this is the message after the
>>>> >   TSIG RR and been removed and the ARCOUNT field has been decremented.
>>>> >   If the message ID differs from the original message ID, the original
>>>> >   message ID is substituted for the message ID.  (This could happen,
>>>> >   for example, when forwarding a dynamic update request.)
>>>> >
>>>> > I trust (based on this text having survived while going for full IS)
>>>> > that there are no interesting record-keeping considerations with
>>>> respect
>>>> > to knowing the message ID(s) to substitute, in the "forwarding a
>>>> > dynamic-update request" case, presumably since this is just the field
>>>> > from the TSIG RDATA and not some externally retained state.
>>>>
>>>> That is correct - the original ID is stored in the TSIG record’s RDATA
>>>> and it is from there that the original ID is retrieved when a substitution
>>>> is made.
>>>>
>>>>
>>>> > Section 4.3.3
>>>> >
>>>> >   The RR RDLEN and RDATA MAC Length are not included in the input to
>>>> >   MAC computation since they are not guaranteed to be knowable before
>>>> >   the MAC is generated.
>>>> >
>>>> > I appreciate that this is explicitly noted; there are some security
>>>> > considerations regarding the non-inclusion of the (truncated) mac
>>>> length
>>>> > as input, though.  The local truncation policy helps here, but not
>>>> 100%.
>>>>
>>>> OK
>>>>
>>>>
>>>> >   For each label type, there must be a defined "Canonical wire format"
>>>> >
>>>> > Just to check my understanding: label types only come into play for
>>>> the
>>>> > two fields that are in domain name syntax, key name and algorithm
>>>> name?
>>>>
>>>> There was actually an error in the text here: RFC 4034 section 6.1 is
>>>> concerned with Canonical Name Order.  It is section 6.2 that details the
>>>> canonical wire format - I’ve changed the reference.
>>>>
>>>> Going back to the original point, yes, that is correct.  Label type 00
>>>> is uncompressed name. (11 is a compressed name, and label types 01 and 10
>>>> are discouraged - see RFC 6891 section 5).
>>>>
>>>>
>>>> > Section 5.1
>>>> >
>>>> >   the server.  This TSIG record MUST be the only TSIG RR in the
>>>> message
>>>> >   and MUST be last record in the Additional Data section.  The client
>>>> >
>>>> > (Is there anything else that tries to insist on being the last record
>>>> in
>>>> > the additional data section?  I guess it doesn't really make sense to
>>>> > try to Update: 1035 just to note this requirement.)
>>>>
>>>> Not to our knowledge.
>>>>
>>>>
>>>> >   MUST store the MAC and the key name from the request while awaiting
>>>> >   an answer.
>>>> >
>>>> > [This is going to end up alongside the request-ID that it has to store
>>>> > already, right?]
>>>>
>>>> Yes.  The request MAC is included as one of the components used by the
>>>> server to generate the response - which should be encoded using the same
>>>> key as used in the request.
>>>>
>>>>
>>>> >   Note that some older name servers will not accept requests with a
>>>> >   nonempty additional data section.  Clients SHOULD only attempt
>>>> signed
>>>> >   transactions with servers who are known to support TSIG and share
>>>> >   some algorithm and secret key with the client -- so, this is not a
>>>> >   problem in practice.
>>>> >
>>>> > (The context in which this "SHOULD" appears makes it feel like it's
>>>> > repeating an admontion from elsewhere and not the only instance of the
>>>> > requirement, in which case a reference might be appropriate.)
>>>>
>>>> I’ve removed this paragraph.  The reference to older name servers is
>>>> now completely out of date (it was a carry-over from the original 20-year
>>>> old text).  The rest of the paragraph seems superfluous - rather like
>>>> stating that TCP clients should only connect to servers that support TCP.
>>>>
>>>>
>>>> > Section 5.2
>>>> >
>>>> >   If the TSIG RR cannot be understood, the server MUST regard the
>>>> >   message as corrupt and return a FORMERR to the server.  Otherwise
>>>> the
>>>> >   server is REQUIRED to return a TSIG RR in the response.
>>>> >
>>>> > As written, this could be read as an attempt to make a normative
>>>> > requirement of servers that do not implement this spec.  Presumably
>>>> it's
>>>> > just restating a requirement of the core protocol, though?
>>>>
>>>> It is the core protocol.
>>>>
>>>> I see your point though.  However, by implication we are talking about
>>>> a server that implements TSIG.
>>>>
>>>>
>>>> > Section 5.2.2
>>>> >
>>>> >   Using the information in the TSIG, the server should verify the MAC
>>>> >   by doing its own calculation and comparing the result with the MAC
>>>> >   received.  If the MAC fails to verify, the server MUST generate an
>>>> >
>>>> > Is there any other way to verify the MAC?  (Should this be a "MUST
>>>> > verify”?)
>>>>
>>>> Well spotted, it should be a “MUST” - changed.
>>>>
>>>>
>>>> > Section 5.2.2.1
>>>> >
>>>> >   When space is at a premium and the strength of the full length of a
>>>> >   MAC is not needed, it is reasonable to truncate the keyed hash and
>>>> >   use the truncated value for authentication.  HMAC SHA-1 truncated to
>>>> >   96 bits is an option available in several IETF protocols, including
>>>> >   IPsec and TLS.
>>>> >
>>>> > Also Kerberos, where it was the strongest option for a while and we
>>>> had
>>>> > to define a new encryption type to provide a better option (RFC 8009).
>>>> >
>>>> > This text seems to be implying that HMAC SHA-1 truncated to 96 bits
>>>> is a
>>>> > recommendable option, which is ... far from clear.  I'd prefer to
>>>> have a
>>>> > note that this specific truncation was appropriate when initially
>>>> > specified but may not provide a security level appropriate for all
>>>> cases
>>>> > in the modern environment, or preferrably to just change the reference
>>>> > to (e.g.) SHA-384-192 or SHA-256-128.
>>>>
>>>> Added the following an the end of the paragraph:
>>>>
>>>>   However, while this option is kept for backwards compatibility,
>>>>   it may not provide a security level appropriate for all cases
>>>>   in the modern environment. In these cases, it is preferable to
>>>>   use a hashing algorithm such as SHA-256-128, SHA-384-192
>>>>   or SHA-256-128 [RFC4868].
>>>>
>>>> I’ve also added the algorithms “hmac-sha256-128”, “hmac-sha384-192” and
>>>> “hmac-sha512-256” as optional algorithms to the algorithm table.
>>>>
>>>>
>>>> >       This is sent when the signer has truncated the keyed hash output
>>>> >       to an allowable length, as described in [RFC2104], taking
>>>> initial
>>>> >       octets and discarding trailing octets.  TSIG truncation can only
>>>> >
>>>> > (Or when an on-path attacker has performed truncation.)
>>>>
>>>> True, but an on-path attacker can manipulate the message in any way
>>>> possible.  I’m not sure whether adding this caveat will add anything to the
>>>> document.
>>>>
>>>>
>>>> > Section 5.2.3
>>>> >
>>>> >   (BADTIME).  The server SHOULD also cache the most recent time signed
>>>> >   value in a message generated by a key, and SHOULD return BADTIME if
>>>> a
>>>> >   message received later has an earlier time signed value.  A response
>>>> >
>>>> > (But there's no fudge factor on this check, other than the inherent
>>>> > limit of seconds granularity, as alluded to by the last paragraph of
>>>> > this section?)
>>>>
>>>> The last paragraph in the section states that handling this issue
>>>> should be left up to implementations and that the exact method (and by
>>>> implication, the size of the fudge factor) be determined by the
>>>> implementation themselves.
>>>>
>>>>
>>>> > Section 5.3.1
>>>> >
>>>> >   A zone transfer over a DNS TCP session can include multiple DNS
>>>> >   messages.  Using TSIG on such a connection can protect the
>>>> connection
>>>> >   from hijacking and provide data integrity.  The TSIG MUST be
>>>> included
>>>> >
>>>> > (I assume that "hijacking TCP" means a sequence-number-guessing attack
>>>> > that would require the attacker to be winning the race against the
>>>> > legitimate sender to cause modified data to be introduced into the TCP
>>>> > stream?  This is maybe not the best word to use for such a case.)
>>>>
>>>> I’ve changed “hijack” to “attack”.
>>>>
>>>>
>>>> >   on all DNS messages in the response.  For backward compatibility, a
>>>> >   client which receives DNS messages and verifies TSIG MUST accept up
>>>> >   to 99 intermediary messages without a TSIG.  The first message is
>>>> >
>>>> > (side note: I'm kind of curious what such compatibility is needed
>>>> with.
>>>> > Also, this gives an attacker some flexibility into which to
>>>> incorporate
>>>> > a collision, though given the near-real-time constraints and the
>>>> > strength of the HMAC construction I don't expect any practical
>>>> impact.)
>>>>
>>>> The original RFC 2845 did not require all packets in a message stream
>>>> to contain a TSIG, it just stated that there be no more than 99
>>>> intermediary messages without a TSIG (presumably to cut down on the
>>>> overhead required in message calculations - remember that RFC 2845 was
>>>> published 20 years ago).  Although many DNS implementations now add a TSIG
>>>> to every message, it is by no means certain that all do. (In fact, less
>>>> than three years ago, a bug was introduced into BIND, causing it to require
>>>> that all packets in a zone transfer would contain a TSIG.  A fix allowing
>>>> BIND to accept up to 99 packets between signed ones was released shortly
>>>> afterwards after reports were received of zone transfers failing.)
>>>>
>>>>
>>>> > Section 5.3.2
>>>> >
>>>> >      Request MAC (if the request MAC validated)
>>>> >      DNS Message (response)
>>>> >      TSIG Variables (response)
>>>> >
>>>> >   The reason that the request is not included in this MAC in some
>>>> cases
>>>> >   is to make it possible for the client to verify the error.  If the
>>>> >   error is not a TSIG error the response MUST be generated as
>>>> specified
>>>> >   in Section 5.3.
>>>> >
>>>> > This makes it sound like the server excludes the request MAC from the
>>>> > digest if it failed to validate (something the client cannot predict),
>>>> > so that the client must perform trial verification of both versions in
>>>> > order to validate the response.  Is that correct?
>>>>
>>>> No.  If the incoming MAC failed to validate, the server should send
>>>> back an unsigned response (MAC size == 0 and empty MAC).
>>>>
>>>>
>>>> > Also, I think that the "in some cases" is not properly placed: as-is,
>>>> it
>>>> > says that the request (not request MAC) is sometimes not included
>>>> > (implying that sometimes it is), which does not match up with the
>>>> > specification for the digest components.  I presume that the intent is
>>>> > to say that in some cases the client could not verify the error, if
>>>> the
>>>> > request itself was always included in the digest.
>>>>
>>>> Changed “request” to “request MAC”.
>>>>
>>>> If the MAC could not be verified, it is possible that it was corrupted,
>>>> which would prevent the client verifying the response. But a major reason
>>>> is that an incorrect MAC included in a signed response led to the CVEs that
>>>> prompted this document update.
>>>>
>>>>
>>>> > Section 5.4.1
>>>> >
>>>> >   If an RCODE on a response is 9 (NOTAUTH), but the response TSIG
>>>> >   validates and the TSIG key recognised by the client but different
>>>> >   from that used on the request, then this is a Key Error.  The client
>>>> >
>>>> > nits: missing words "key is recognized" and "but is different”
>>>>
>>>> It now reads “key is recognized but different"
>>>>
>>>>
>>>> > Section 5.5
>>>> >
>>>> >   destination or the next forwarder.  If no transaction security is
>>>> >   available to the destination and the message is a query then, if the
>>>> >   corresponding response has the AD flag (see [RFC4035]) set, the
>>>> >   forwarder MUST clear the AD flag before adding the TSIG to the
>>>> >   response and returning the result to the system from which it
>>>> >   received the query.
>>>> >
>>>> > Is there anything to say about the CD bit?  (It's independent crypto,
>>>> so
>>>> > I don't expect so, but it seems worth checking.)
>>>>
>>>> No.  CD is just a mechanism by which a client can request that the
>>>> server not do DNSSEC signature validation on the data and so allow the
>>>> client to receive the data instead of a SERVFAIL response.
>>>>
>>>>
>>>> > Section 6
>>>> >
>>>> >   The only message digest algorithm specified in the first version of
>>>> >   these specifications [RFC2845] was "HMAC-MD5" (see [RFC1321],
>>>> >   [RFC2104]).  Although a review of its security [RFC6151] concluded
>>>> >   that "it may not be urgent to remove HMAC-MD5 from the existing
>>>> >   protocols", with the availability of more secure alternatives the
>>>> >   opportunity has been taken to make the implementation of this
>>>> >   algorithm optional.
>>>> >
>>>> > It seems worth noting that the advice from RFC 6151 is already nine
>>>> > years old.
>>>>
>>>> I’ve use the phrasing "Although a review of its security some years
>>>> ago”.
>>>>
>>>>
>>>> >   [RFC4635] added mandatory support in TSIG for SHA-1 [FIPS180-4],
>>>> >   [RFC3174].  SHA-1 collisions have been demonstrated so the MD5
>>>> >   security considerations apply to SHA-1 in a similar manner..
>>>> Although
>>>> >
>>>> > I'd consider referencing (e.g.)
>>>> > shattered.io
>>>> > for the "collisions have
>>>> > been demonstrated" claim, though it's pretty optional.
>>>>
>>>> A reference has been made to the “SHA1 is a Shambles” paper..
>>>>
>>>>
>>>> >   support for hmac-sha1 in TSIG is still mandatory for compatibility
>>>> >   reasons, existing uses should be replaced with hmac-sha256 or other
>>>> >   SHA-2 digest algorithms [FIPS180-4], [RFC3874], [RFC6234].
>>>> >
>>>> > Is this "sha1 mandatory for compatibility" going to age well?  If we
>>>> > have two implementations that can operate with sha2 variants, is it
>>>> > required to keep this as mandatory (vs. optional with a note about
>>>> > deployed reality at time of publication) for progression to Internet
>>>> > Standard?
>>>>
>>>> This has been addressed by splitting the “Mandatory/Optional” column in
>>>> RFC4635 (from which Table 2 was derived) into “Implementation” and “Use”.
>>>> SHA1 is required to be implemented (for backwards compatibility) but its
>>>> use is not recommended.
>>>>
>>>>
>>>> >                   Optional    hmac-sha224
>>>> >
>>>> > It's not clear there's much reason to keep this around, or if we do,
>>>> it
>>>> > could probably be "not recommended".  (I assume that just dropping it
>>>> > entirely makes things annoying w.r.t. the IANA registry.)
>>>>
>>>> It has been left in for compatibility reasons, but its use is not
>>>> recommended.
>>>>
>>>>
>>>> > Section 9
>>>> >
>>>> >   Previous specifications [RFC2845] and [RFC4635] defined values for
>>>> >   HMAC MD5 and SHA.  IANA has also registered "gss-tsig" as an
>>>> >
>>>> > I'd suggest "HMAC-MD5 and HMAC-SHA-1", as the implied grouping where
>>>> > HMAC qualifies both hash algorithms is not terribly clear.
>>>>
>>>> Changed to
>>>>
>>>>         Previous specifications [RFC2845] and [RFC4635] defined names
>>>> for
>>>>         the HMAC-MD5 and the various HMAC-SHA algorithms.
>>>>
>>>>
>>>> > Section 10
>>>> >
>>>> > I suggest some discussion that the way truncation policy works, an
>>>> > attackers ability to forge messages accepted as valid is limited by
>>>> the
>>>> > amount of truncation that the recipient is willing to accept, not the
>>>> > amount of truncation used to generate messages by the legitimate
>>>> sender.
>>>>
>>>> I think this is already taken care of by the reference to a local
>>>> policy in the “Truncation Check and Error Handling” section (5.2.4).
>>>>
>>>>
>>>> > There's also some fairly standard content to put in here about
>>>> allowing
>>>> > for an unsigned error response to a signed request, so an attacker
>>>> (even
>>>> > off-path) can spoof such resposnes.  (Section 5.4 indicates that the
>>>> > client should continue to wait if it gets such a thing, which helps a
>>>> > lot.)
>>>>
>>>> I’ve just added text that an unsigned response is not considered
>>>> acceptable because can be subject to spoofing and manipulation.
>>>>
>>>>
>>>> >   TKEY [RFC2930].  Secrets SHOULD NOT be shared by more than two
>>>> >   entities.
>>>> >
>>>> > I suggest adding "; any such additional sharing would allow any party
>>>> > knowing the key to impersonate any other such party to members of the
>>>> > group”.
>>>>
>>>> Added.
>>>>
>>>>
>>>> >   A fudge value that is too large may leave the server open to replay
>>>> >   attacks.  A fudge value that is too small may cause failures if
>>>> >   machines are not time synchronized or there are unexpected network
>>>> >   delays.  The RECOMMENDED value in most situations is 300 seconds.
>>>> >
>>>> > Our experience with kerberos in modern network environments has shown
>>>> > that 5 minutes is much larger than needed, though it's not clear
>>>> there's
>>>> > a strong need to change this recommendation right now.
>>>>
>>>> The value is recommended (and even then, only in “most situations”), so
>>>> implementations are free to set their own value.  However, any guidance as
>>>> to typical time skews measured across a network would be useful in a number
>>>> of protocols.
>>>>
>>>>
>>>> >   Significant progress has been made recently in cryptanalysis of hash
>>>> >   functions of the types used here.  While the results so far should
>>>> >   not affect HMAC, the stronger SHA-1 and SHA-256 algorithms are being
>>>> >   made mandatory as a precaution.
>>>> >
>>>> > Please revise this note to not imply that SHA-1 is considered
>>>> "strong”.
>>>>
>>>> Text revised to
>>>>
>>>>         Significant progress has been made recently in cryptanalysis of
>>>> hash
>>>>         functions of the types used here.  While the results so far
>>>> should not
>>>>         affect HMAC, the stronger SHA-256 algorithm is being made
>>>> mandatory
>>>>         as a precaution.
>>>>
>>>>
>>>> > Section 11.2
>>>> >
>>>> > I'm not sure why RFC 2104 is listed as informative.
>>>>
>>>> RFC2104 is an Informational RFC and “Idnits” warns of a possible
>>>> downref if the reference is placed in the “Normative” section.
>>>>
>>>>
>>>>
>>>> Comments from Mirja Kühlewind
>>>>
>>>> > I only had limited time for a quick review of this document, so I
>>>> might not be aware of all the needed background and details. Still I have
>>>> two quick questions on retries:
>>>> >
>>>> > 1) Sec 5.2.3:
>>>> > "Implementations should be aware
>>>> >   of this possibility and be prepared to deal with it, e.g. by
>>>> >   retransmitting the rejected request with a new TSIG once outstanding
>>>> >   requests have completed or the time given by their time signed plus
>>>> >   fudge value has passed."
>>>> > I might not be aware of all protocol details and maybe this is
>>>> already specified somewhere: While unlikely, it is possible that a request
>>>> might be retransmitted multiple times, as that could cause president
>>>> congestion over time, it's always good practice to define a maximum number
>>>> of retransmissions. If that is already defined somewhere, maybe adding a
>>>> note/pointer would be good as well.
>>>>
>>>> If someone can suggest a suitable number (and a reason for it), we can
>>>> consider doing this.  In the meantime, I’ve merely stated that
>>>> implementation should limit the number of retransmissions and so leave the
>>>> choice up to the implementation.
>>>>
>>>>
>>>> > 2) Sec 5.3.1:
>>>> > "   This allows the client to rapidly detect when the session has been
>>>> >   altered; at which point it can close the connection and retry."
>>>> > When (immediately or after some waiting time) should the client retry
>>>> and how often?
>>>>
>>>> I think that should be down to the implementation to decide.
>>>>
>>>>
>>>> > You further say
>>>> > "The client SHOULD treat this the
>>>> >   same way as they would any other interrupted transfer (although the
>>>> >   exact behavior is not specified here)."
>>>> > Where is that specified? Can you provide a pointer in the text?
>>>>
>>>> That was a mistake in transcribing the original RFC2845 text.  The
>>>> final word “here” has been removed paragraph now reads:
>>>>
>>>>         The client SHOULD treat this the same way as they would any
>>>> other
>>>>         interrupted transfer (although the exact behavior is not
>>>> specified).
>>>>
>>>>
>>>> > 3) Sec 8.  Shared Secrets: Would it be appropriate to use more
>>>> normative language here? There are a bunch of lower case shoulds in this
>>>> section; is that on purpose?
>>>>
>>>> The context in which the lower-case “should”s appear is very general
>>>> security advice.  Although this is something users ought to do, it is not
>>>> really a specific recommendation.
>>>>
>>>>
>>>>
>>>> Comments from Barry Leiba
>>>>
>>>> > — Section 4.2 —
>>>> >
>>>> >         *  Other Len - an unsigned 16-bit integer specifying the
>>>> length
>>>> >            of the "Other Data" field in octets.
>>>> >         *  Other Data - this unsigned 48-bit integer field will be
>>>> >
>>>> > Does this mean that “other data” is always 48 bits?  If so, does that
>>>> mean tgat the value of “other len” is always 6?  If so, then shouldn’t it
>>>> say that?  If not, then what don’t I understand?
>>>>
>>>> Benjamin Kaduk also made the same comment, it has been addressed above.
>>>>
>>>>
>>>> > — Section 5.1 —
>>>> >
>>>> >   Clients SHOULD only attempt signed
>>>> >   transactions with servers who are known to support TSIG and share
>>>> >   some algorithm and secret key with the client -- so, this is not a
>>>> >   problem in practice.
>>>> >
>>>> > Why SHOULD and not MUST?
>>>>
>>>> Benjamin Kaduk also noted an issue here.  The paragraph has been
>>>> removed.
>>>>
>>>>
>>>> > — Section 5.3.2 —
>>>> >
>>>> >   The server SHOULD also cache the most recent time signed
>>>> >   value in a message generated by a key
>>>> >
>>>> > I tripped over this until I realized you mean “Time Signed value”.
>>>> You capitalize it elsewhere, and it helps the parsing if it’s consistent.
>>>> There are four uncapitalized instances in this section.
>>>>
>>>> “time signed” has been capitalised.  In addition, in the description of
>>>> the field, “tims signed” has been replaced with “time the message was
>>>> signed”.
>>>>
>>>> Elsewhere, a “fudge field” has been replaced by “Fudge field” (although
>>>> occurrences of “fudge value” have not been capitalised, as the context of
>>>> that is that it is referring to the contents of the Fudge field). Also,
>>>> “other data” and “other data length” have been replaced with the
>>>> (capitalised) field names, “Other Data” and “Other Len”.
>>>>
>>>>
>>>> > — Section 9 —
>>>> >
>>>> >   There is no structure
>>>> >   required other than names for different algorithms must be unique
>>>> >   when compared as DNS names, i.e., comparison is case insensitive.
>>>> >
>>>> > I found this sentence to be really awkward and hard to parse.  May I
>>>> suggest this?:
>>>> >
>>>> > NEW
>>>> > There is no structure to the names, and algorithm names are compared
>>>> as if they were DNS names (the comparison is case-insensitive).
>>>> > END
>>>> >
>>>> > I don’t think you really need to say that each name is
>>>> different/unique, right?
>>>>
>>>> Agreed.  The text has been changed to that suggested.
>>>>
>>>>
>>>> >   other algorithm
>>>> >   names are simple (i.e., single-component) names.
>>>> >
>>>> > Nitty thing that you can completely ignore, but I would avoid the
>>>> Latin abbreviation thus: “other algorithm names are simple,
>>>> single-component names.”
>>>>
>>>> Changed.
>>>>
>>>>
>>>>
>>>> Comments from Éric Vyncke
>>>>
>>>> > Thank you for the work put into this document. It is clear and easy
>>>> to read.
>>>> >
>>>> > Please find below some non-blocking COMMENTs and NITs. An answer will
>>>> be appreciated.
>>>> >
>>>> > I hope that this helps to improve the document,
>>>> >
>>>> > Regards,
>>>> >
>>>> > -éric
>>>> >
>>>> > == COMMENTS ==
>>>> >
>>>> > There are 6 authors while the usual procedure is to limit to 5
>>>> authors.. Personally, I do not care.
>>>> >
>>>> > -- Section 1.3 --
>>>> > It is a little unclear to me whether the "two nameservers" were two
>>>> implementations or two actual DNS servers.
>>>>
>>>> Agreed, it was unclear.  Changed to “two name server implementations”.
>>>>
>>>>
>>>> > -- Section 5.2 --
>>>> > Suggest to provide some justifications about "copied to a safe
>>>> location": the DNS message was sent in the clear, why does the TSIG part be
>>>> copied in a safe location? Please define what is meant by "safe location"
>>>> (Mainly for my own curiosity)
>>>>
>>>> It is a bit over-specified and has been changed.  The text now reads:
>>>>
>>>>       Upon receipt of
>>>>        a message with exactly one correctly placed TSIG RR, a copy of
>>>> the
>>>>        TSIG RR is stored, and the TSIG RR is removed from the DNS
>>>> Message,
>>>>        and decremented out of the DNS message header's ARCOUNT.
>>>>
>>>>
>>>> > "cannot be understood" is also quite vague.
>>>>
>>>> Changed to “cannot be interpreted”.
>>>>
>>>>
>>>> > -- Section 5.3 --
>>>> > About rejecting request with a time signed value being earlier than
>>>> the last received value. I wonder what is the value of this behavior if
>>>> there is no 'fudge' as well... The last paragraph of this section describes
>>>> this case and push the error handling to the request initiator. Any reason
>>>> why being flexible on the receiving site was not selected ?
>>>>
>>>> The fudge value is to cope with clock skew between the sender and
>>>> receiver.  This won't impact on the order in which the packets are received
>>>> by the receiver, for which the “time signed” is a first-level check. (It is
>>>> not fool-proof - a number of packets signed by the sender within a second
>>>> of one another may have the same “Time Signed” field.)
>>>>
>>>> Pushing the error handling to the initiation goes back to the original
>>>> RFC 2845.
>>>>
>>>>
>>>> > == NITS ==
>>>> >
>>>> > -- Section 4.3.2 --
>>>> > Is " A whole and complete DNS message in wire format." a complete and
>>>> valid sentence?
>>>>
>>>> This was also pointed out by Roman Danyliw and has been addressed.
>>>>
>>>>
>>>> Other changes made during editing
>>>>
>>>> * There was no description of the contents of the “Error” and “Other
>>>> Data” fields were in a request.  This has now been corrected (Error is set
>>>> to 0. The contents of “Other Data” are stated to be undefined to allow for
>>>> extensions such as draft-andrews-dnsop-defeat-frag-attack.)
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> DNSOP mailing list
>>>> DNSOP@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/dnsop
>>>>
>>> _______________________________________________
>>> DNSOP mailing list
>>> DNSOP@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dnsop
>>>
>>