Re: [TLS] Proposed text for dnsssec chain extension draft

Viktor Dukhovni <ietf-dane@dukhovni.org> Thu, 26 April 2018 04:26 UTC

Return-Path: <ietf-dane@dukhovni.org>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0E0E126C2F for <tls@ietfa.amsl.com>; Wed, 25 Apr 2018 21:26:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 v0fIeYyMDDGA for <tls@ietfa.amsl.com>; Wed, 25 Apr 2018 21:26:04 -0700 (PDT)
Received: from mournblade.imrryr.org (mournblade.imrryr.org [108.5.242.66]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A5A0712426E for <tls@ietf.org>; Wed, 25 Apr 2018 21:26:04 -0700 (PDT)
Received: from [192.168.1.161] (straasha.imrryr.org [100.2.39.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mournblade.imrryr.org (Postfix) with ESMTPSA id 009697A3309 for <tls@ietf.org>; Thu, 26 Apr 2018 04:26:03 +0000 (UTC) (envelope-from ietf-dane@dukhovni.org)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 11.3 \(3445.6.18\))
From: Viktor Dukhovni <ietf-dane@dukhovni.org>
In-Reply-To: <CAOgPGoBzx5PKzd=3=OhxXdV4bQHfxqM-4xGgsvip4-Fg1NfAUA@mail.gmail.com>
Date: Thu, 26 Apr 2018 00:26:03 -0400
Content-Transfer-Encoding: quoted-printable
Reply-To: TLS WG <tls@ietf.org>
Message-Id: <855EDC72-651A-44B7-86FB-693A4B31A7A0@dukhovni.org>
References: <1D2EB7F1-B796-4459-93C2-443A7104F33A@dukhovni.org> <d5b94d58-e625-9fc0-faae-b202d10620fb@nomountain.net> <20180425145721.GH25259@localhost> <20180425154001.GI25259@localhost> <20180425154626.GJ25259@localhost> <CAOgPGoBzx5PKzd=3=OhxXdV4bQHfxqM-4xGgsvip4-Fg1NfAUA@mail.gmail.com>
To: TLS WG <tls@ietf.org>
X-Mailer: Apple Mail (2.3445.6.18)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/snwln7hZv3j_6o9GpVBuo2VU-JA>
Subject: Re: [TLS] Proposed text for dnsssec chain extension draft
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Apr 2018 04:26:07 -0000


> On Apr 26, 2018, at 12:13 AM, Joseph Salowey <joe@salowey.net> wrote:
> 
> This proposal is quite a bit more than just a two byte reserved field.

I am not sure what you mean.  The proposed text adds the field, tells
servers to set it to zero, and tells clients to treat it as though it
were zero even if a non-zero value is seen.  So far, so good right?
Please help me understand...

The only extra bit is that the client *explicitly* MUST NOT PIN when
the field is zero.  So the pinning prohibition is stronger than what
you get if you just remove description of pinning, and my bet would
be that left unsaid, and if we don't standardize downgrade-protection
in a timely manner, some clients might unilaterally decide to pin.

I did not expect prohibiting pinning at this time to be controversial.
That should have broad support.

The relevant diff is at:

  https://github.com/tlswg/dnssec-chain-extension/pull/14/commits/034da27062b53fe4a7460536187220585df13f0d

Or see below:

commit 034da27062b53fe4a7460536187220585df13f0d
Author: Viktor Dukhovni <postfix-users@dukhovni.org>
Date:   Thu Apr 26 00:00:55 2018 -0400

    Describe new 16-bit SupportLifetime extension element
    
    This both actively inhibits "pinning" in the present,
    and serves to facilitate it in the future.

diff --git a/draft-ietf-tls-dnssec-chain-extension-08.xml b/draft-ietf-tls-dnssec-chain-extension-08.xml
index ffec606..5a4b685 100644
--- a/draft-ietf-tls-dnssec-chain-extension-08.xml
+++ b/draft-ietf-tls-dnssec-chain-extension-08.xml
@@ -304,13 +304,29 @@
 
       <figure>
         <artwork>
-
-          opaque AuthenticationChain&lt;1..2^16-1&gt;
+    struct {
+        uint16 SupportLifetime;
+        opaque AuthenticationChain&lt;1..2^16-1&gt;;
+    } DnssecChainExtension;
         </artwork>
       </figure>
 
       <t>
-    The AuthenticationChain structure is composed of a sequence of 
+      A zero "SupportLifetime" prohibits the client from unilaterally
+      requiring ongoing use of the extension based on prior observation
+      of its use (pinning).
+      </t>
+
+      <t>
+      A future specification will define the semantics of non-zero
+      values of the SupportLifetime field.  Servers implementing only
+      the present specification MUST set the SupportLifetime element
+      to zero.  Clients implementing only the present specification MUST
+      treat any value received as though it were zero.
+      </t>
+
+      <t>
+    The AuthenticationChain is composed of a sequence of
     uncompressed wire format DNS resource record sets (RRset) and 
     corresponding signatures (RRSIG) record sets.
       </t>
@@ -691,6 +707,15 @@ RRSIG(. DNSKEY)
       extension, could of course unconditionally mandate its use.
     </t>
 
+    <t>
+      Pending a future specification that defines the semantics of
+      non-zero values of the SupportLifetime element of the extension,
+      clients MUST NOT employ "pinning" to require use of the extension
+      by servers previously observed to support it.  Servers that
+      implement only this specification MUST set the SupportLifetime
+      element to zero.
+    </t>
+
     <t>
       This protocol allows TLS servers to prove that they don't have a
       signed TLSA record by returning a denial of existence chain.

-- 
	Viktor.