Re: [kitten] AD review of draft-ietf-kitten-tls-channel-bindings-for-tls13-08

Alexey Melnikov <alexey.melnikov@isode.com> Fri, 01 October 2021 08:57 UTC

Return-Path: <alexey.melnikov@isode.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 175213A0931; Fri, 1 Oct 2021 01:57:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, NICE_REPLY_A=-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 (1024-bit key) header.d=isode.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 PS9Tdwt3TY1n; Fri, 1 Oct 2021 01:57:10 -0700 (PDT)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id E83373A0414; Fri, 1 Oct 2021 01:57:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1633078628; d=isode.com; s=june2016; i=@isode.com; bh=QAL36pgrOeLjTxJ95MMMTFanvLs65CFzpqrU4rgxUL8=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=NoOgIWTA16C9ZX8HYvyKkq2Tyc+YiRtSw+b68rHjsVOo/hj5ZpCxtaa1BZ8wIe4tKkxtaW xMHNx74hvsfyZnYPYcXQ6RMWFj8RMa+iYI056byXfXyj/u05L9q8f34AJd3Kt5yz+eCfJY 5zYV1fr+AJsdNLo4xGFXFWu9oSkpTAY=;
Received: from [192.168.1.222] (host5-81-100-26.range5-81.btcentralplus.com [5.81.100.26]) by waldorf.isode.com (submission channel) via TCP with ESMTPSA id <YVbNYwABR3sH@waldorf.isode.com>; Fri, 1 Oct 2021 09:57:07 +0100
To: Benjamin Kaduk <kaduk@mit.edu>, draft-ietf-kitten-tls-channel-bindings-for-tls13.all@ietf.org
Cc: kitten@ietf.org
References: <20211001045330.GX98042@kduck.mit.edu>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <327a29ea-b384-8ba2-20d8-511b3071857a@isode.com>
Date: Fri, 1 Oct 2021 09:57:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
In-Reply-To: <20211001045330.GX98042@kduck.mit.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/kitten/DYEK3iuBBKuau2htrr-ScfnKwvM>
Subject: Re: [kitten] AD review of draft-ietf-kitten-tls-channel-bindings-for-tls13-08
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Oct 2021 08:57:16 -0000

Hi Ben,

On 01/10/2021 05:53, Benjamin Kaduk wrote:

> Hi all,
>
> Nothing particularly earth-shattering here, but enough that we should
> put out a revised I-D before I initiate the IETF last-call.
>
> Though there's not currently a formal requirement (since the precise
> meaning and usage of the "updates" tag is not well defined), it's been
> the practice of recent IESGs to ask that documents provide a clear
> statement of the nature of any updates being made.  While we currently
> do this for the updates of RFCs 5801 and 5802, we're pretty silent about
> how we update RFCs 5929 and 8446.  I have a proposal for 8446 below
> (wrapped into another suggestion), and we can probably put a note
> somewhere that we update 5929 to provide a channel-binding for TLS that
> is compatible with TLS 1.3.
>
> Section 1
>
>     The "unique" channel binding types defined in [RFC5929] were found to
>     be vulnerable to the "triple handshake vulnerability"
>     [TRIPLE-HANDSHAKE] without the extended master secret extension
>     defined in [RFC7627].  Because of this they were not defined for TLS
>     1.3 (see [RFC8446] section C.5).  [...]
>
> I don't think this conveys quite the right reasoning for why the channel
> bindings were not updated in RFC 8446 directly.  In particular, TLS 1.3
> intrinsically uses the extended master secret mechanism of "hash the
> entire handshake transcript" and in that regard is not susceptible to
> triple-handshake type attacks.
>
> Peeking through the archives, it seems that
> https://mailarchive.ietf.org/arch/msg/tls/2XbkUZhdxwFXhLVTdE2C-UZGaO0/
> may have been the most recent discussion of tls-unique in the context of
> draft-ietf-tls-tls13 .  The note referenced in that email thread seems
> to be:
>
> % [Raw public keys or skipping certificate chain checking]
> % used alone is vulnerable to man-in-the-middle
> % attacks and therefore unsafe for general use.  However, it is also
> % possible to bind such connections to an external authentication
> % mechanism via out-of-band validation of the server's public key,
> % trust on first use, or channel bindings [RFC5929].  [[NOTE: TLS 1.3
> % needs a new channel binding definition that has not yet been
> % defined.]] If no such mechanism is used, then the connection has no
> % protection against active man-in-the-middle attack; applications MUST
> % NOT use TLS in such a way absent explicit configuration or a specific
> % application profile.
>
> So I would propose the following replacement text:
>
>     The "unique" channel binding types defined in [RFC5929] were found to
>     be vulnerable to the "triple handshake vulnerability"
>     [TRIPLE-HANDSHAKE] without the extended master secret extension
>     defined in [RFC7627].  While TLS 1.3 uses a complete transcript hash
>     akin to the extended master secret procedures, the safety of channel
>     bindings with TLS 1.3 was not analyzed as part of the core protocol
>     work, and so the specification of channel bindings for TLS 1.3 was
>     deferred.  [RFC8446] section C.5 notes the lack of a channel bindings
>     definition for TLS 1.3; as this document defines such channel
>     bindings, it accordingly updates [RFC8446] to note that the gap has
>     been filled.
>
> (Note that I also modified the final sentence to be able to explicitly
> note in what way we see this document as updating RFC 8446.)
I like your proposal.
> Section 3
>
>     Channel bindings do not leak secret information about the channel and
>     are considered public.  [...]
>
> In light of the way that
> https://datatracker.ietf.org/doc/html/rfc5929#section-10.2 frames its
> discussion of channel-bindings disclosure (and to some extent
> https://datatracker.ietf.org/doc/html/rfc5056#section-8 as well), I
> think that we might want to scope the statement to just "the channel
> bindings type defined in this document" and to frame the subsequent
> discussion as being that "disclosure of the channel binding data does
> not affect the security of the TLS channel.  To say that they are
> "considered public" might imply an intention to disclose, when it seems
> that the important point is only that disclosure or non-disclosure is
> irrelevant.  With those changes included, this might look something
> like:
>
>    The channel binding type defined in this document is constructed so
>    that disclosure of the channel binding data does not leak secret
>    information about the TLS channel and does not affect the security of
>    the TLS channel.  [...]
I like this too.
> Section 3.1
>
>     While it is possible to use this channel binding mechanism with TLS
>     versions below 1.3, extra precaution must be taken to ensure that the
>     chosen cipher suites always result in unique master secrets.  For
>     more information see the Security Considerations section of
>     [RFC5705].
>
> Should we reiterate here that the extended master secret mechanism of
> RFC 7627 is one way to ensure uniqueness of master secrets?
>
>     When TLS renegotiation is enabled the "tls-exporter" channel binding
>     type is not defined and implementations MUST NOT support it.
>
> We may want to be specific that this mandate is scoped to renegotiation
> being enabled at (e.g.) connection scope (vs implementation-wide).
Right.
> Section 4.1
>
>     Subject:  Registration of channel binding tls-exporter
>
> It's interesting that this is part of the template given in RFC 5056 but
> not part of the registry itself...arguably a bug in 5056, but probably
> not worth doing anything about now.

Agreed.

Best Regards,

Alexey