Re: [DNSOP] I-D Action: draft-ietf-dnsop-rfc5011-security-considerations-08.txt

Wes Hardaker <wjhns1@hardakers.net> Fri, 08 December 2017 00:53 UTC

Return-Path: <wjhns1@hardakers.net>
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 E880B1286CA for <dnsop@ietfa.amsl.com>; Thu, 7 Dec 2017 16:53:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.108
X-Spam-Level:
X-Spam-Status: No, score=-1.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RDNS_NONE=0.793, SPF_PASS=-0.001] autolearn=no autolearn_force=no
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 eKXxvmIDvsQJ for <dnsop@ietfa.amsl.com>; Thu, 7 Dec 2017 16:53:26 -0800 (PST)
Received: from mail.hardakers.net (unknown [168.150.192.181]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1E1EA127698 for <dnsop@ietf.org>; Thu, 7 Dec 2017 16:53:26 -0800 (PST)
Received: from localhost (unknown [10.0.0.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.hardakers.net (Postfix) with ESMTPSA id 50969209C1; Thu, 7 Dec 2017 16:53:25 -0800 (PST)
From: Wes Hardaker <wjhns1@hardakers.net>
To: Michael StJohns <msj@nthpermutation.com>
Cc: dnsop@ietf.org
References: <151199364931.4845.3034001091375154653@ietfa.amsl.com> <yblvahshg6z.fsf@wu.hardakers.net> <9c71768d-4807-3d0a-b4b1-0ac8d066fe9f@nthpermutation.com>
Date: Thu, 07 Dec 2017 16:53:25 -0800
In-Reply-To: <9c71768d-4807-3d0a-b4b1-0ac8d066fe9f@nthpermutation.com> (Michael StJohns's message of "Sun, 3 Dec 2017 18:18:18 -0500")
Message-ID: <yblindiavlm.fsf@w7.hardakers.net>
User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/AlTjDoupH90g3NZgbrf_yFWmW1I>
Subject: Re: [DNSOP] I-D Action: draft-ietf-dnsop-rfc5011-security-considerations-08.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 08 Dec 2017 00:53:28 -0000

Michael StJohns <msj@nthpermutation.com> writes:

> Much improved - but still some disconnects (all review is de novo):

That's Mike.  All good comments.  I've attached responses and actions
(or inactions) below and will push a new version shortly as well.

Wes Hardaker


Table of Contents
_________________

1 DONE In Abstract - insert "by the publisher" after "must be followed" -
2 DONE Section 2 - first para - "from the DNSKEY publication and
3 DONE in 3 - lastSigExpirationTime - replace the first sentence  with "The
4 TODO in 3 - sigExpirationTimeRemaining - two items:
5 DONE in 5.1.1 T+10 - replace "they have now expired" with "the signatures
6 WONTDO Delete 6.1.4 - activeRefreshOffset -  its a nonsensical value that is
7 WONTDO 6.2.1 - replace activeRefreshOffset with activeRefresh - worst case
8 WONTDO fix 6.2.1.1 delete the term for addHoldDownTime % activeRefresh - the
9 WONTDO In 6.2.2 - same changes as for 6.2.1 and 6.2.1.1 (e.g. get rid of
10 DONE Section 6.3 has one too many activeRefresh terms in both formulas -
11 WONTDO Guidance about key compromise
12 DONE Appendix A - fix the calculations to match up with the section 6 formulas.


1 DONE In Abstract - insert "by the publisher" after "must be followed" -
=========================================================================

  this is clear later, but should be clear in the abstract.


2 DONE Section 2 - first para - "from the DNSKEY publication and
================================================================

  revocation's point of view" is unusual phrasing.  I'm not sure how a
  publication or revocation has a point of view.  I think you meant from
  the trust anchor publisher or SEP DNSKEY publisher's point of view?

  + Response: I did indeed mean SEP publisher; fixed


3 DONE in 3 - lastSigExpirationTime - replace the first sentence  with "The
===========================================================================

  latest value (i.e. the future most date and time) of any RRSig
  Signature Expiration field  covering any DNSKEY RRSet containing only
  the old trust anchor(s) that are being superseded." - This may still
  need wordsmithing or expansion.


4 TODO in 3 - sigExpirationTimeRemaining - two items:
=====================================================

  "latestSigExpirationTime" -> lastSigExpirationTime.  and measured from
  when?   I think its "when the addWaitTime calculation is run" or
  "lastSigExpirationTime - now"

  + Response: I think it's fairly self evident from the text that it's
    "when used", which is indeed at least during addWaitTime
    calculation.  But it's more conceptual and 'the amount of time
    remaining' I think is pretty clear to mean "from now".  I thought
    about adding something like "from now" into the sentence, but that
    didn't seem better to me and added unneeded or complexity to the
    sentence.  Suggestions?


5 DONE in 5.1.1 T+10 - replace "they have now expired" with "the signatures
===========================================================================

  have now expired" -  clarify context.


6 WONTDO Delete 6.1.4 - activeRefreshOffset -  its a nonsensical value that is
==============================================================================

  only valid from the resolver's point of view.   For a given
  publisher/authoritative server - there will be as many
  activeRefreshOffsets as there are resolvers so the publisher must
  assume the worst case of activeRefresh.

  + Response: I disagree here.  This was put in after a discussion with
    Matthijs Mekking to specifically address the case where the polling
    period may not end up right in time-step with the addHoldDownTime.
    The end result is that when a RFC5011 resolver is polling at a
    different frequency based on the activeRefresh time.  We are
    defining a minimum mathematically defined safety value and this
    value is calculatable, so it should remain.  There is a hint of
    guidance text that says you can set it to activeRefresh for
    simplicity if you want.  But the math-line is before a full second
    activeRefresh.  But the value itself needs to be included to account
    for the odd frequency slippage.

    TL;DR: this isn't a guidance document, it's a mathematical line
    document


7 WONTDO 6.2.1 - replace activeRefreshOffset with activeRefresh - worst case
============================================================================

  value. (Wait Timer Based Calculation)


8 WONTDO fix 6.2.1.1 delete the term for addHoldDownTime % activeRefresh - the
==============================================================================

  "2 * activeRefresh" in the previous term covers both the activeRefresh
  interval at the beginning of the acceptance period and the
  activeRefresh interval at the end.


9 WONTDO In 6.2.2 - same changes as for 6.2.1 and 6.2.1.1 (e.g. get rid of
==========================================================================

  activeRefreshOffset throughout).


  ,----
  |                         v          activeRefresh v    
  | addHoldDownTime                 v    activeRefresh v  safetyMargin  v
  | 
  | |-----------------------|-------------------------------------|-------------------------------------|--------------------------|----------------|
  | 
  |  lastSigExpirationTime^^^                 acceptanceStarts ^^^      
  | acceptance begins to complete^^            earliestSafe^^^
  `----

  After the second activeRefresh interval all of the well behaved and
  well connected resolvers should have the new trust anchor. The
  safetyMargin adds some space for poorly behaving or intermittently
  connected resolvers or those with some drops in queries.


10 DONE Section 6.3 has one too many activeRefresh terms in both formulas -
===========================================================================

  here are the corrected ones:

  remWaitTime = sigExpirationTimeRemaining + activeRefresh +
  safetyFactor

  remWallClockTime = lastSigExpirationTime + activeRefresh +
  safetyFactor

  Basically, assuming no attacker, and no drops, all well-behaved
  resolvers will see the revocation after one activeRefresh interval
  from the time of publication.  Add the safety factor to take care of
  the slackers.  This is a fine value for normal revocations where
  you're pretty sure that the key hasn't been compromised.

  There is no hold-time timer for revocation - they take effect
  immediately upon receipt and validation.


11 WONTDO Guidance about key compromise
=======================================

  In the case of a key compromise, I would suggest that the revoked key
  be published for the same interval as you would use for adding a new
  trust anchor.  (But of course, this won't actually matter all that
  much if you only have a single trust anchor....)

  + Good advice to put in an general advice document in the future


12 DONE Appendix A - fix the calculations to match up with the section 6 formulas.
==================================================================================

-- 
Wes Hardaker
USC/ISI