Re: [TLS] TLS Export Channel Binding

Alexey Melnikov <alexey.melnikov@isode.com> Mon, 04 May 2020 15:23 UTC

Return-Path: <alexey.melnikov@isode.com>
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 EB4543A0A25 for <tls@ietfa.amsl.com>; Mon, 4 May 2020 08:23:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, 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 aQGSt8X11w_o for <tls@ietfa.amsl.com>; Mon, 4 May 2020 08:23:15 -0700 (PDT)
Received: from statler.isode.com (Statler.isode.com [62.232.206.189]) by ietfa.amsl.com (Postfix) with ESMTP id 3EB193A0A09 for <tls@ietf.org>; Mon, 4 May 2020 08:23:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1588605794; d=isode.com; s=june2016; i=@isode.com; bh=Yo3haB5tDPkw/XA8nu3oXiTx+LfxZTD5R0EHcckiXzI=; 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=KqfZ6XrHOSIEdohj3VtlU8DM5Batr/i9GMZOhZmcf9mktqyRBmuwIRpT5+FTPk7VZ5WPpa 6Vcq6Xq+xegZESe+Z67cB746cVSW71/oPgWhiu2lrXv9SalptD5Q6DE/65wWQK3PoNtwEo Lv+z1L77barGElCgkDia1gF6YYWsJ9o=;
Received: from [172.27.249.197] (connect.isode.net [172.20.0.72]) by statler.isode.com (submission channel) via TCP with ESMTPSA id <XrAzYQAhH8SO@statler.isode.com>; Mon, 4 May 2020 16:23:14 +0100
To: Jonathan Hoyland <jonathan.hoyland@gmail.com>, Sam Whited <sam@samwhited.com>
Cc: tls@ietf.org
References: <0f20d1f6-56c1-4e01-813f-f8b3c57a5c9b@www.fastmail.com> <CACykbs3WDk7a0+0vCSDfCuib1Bex8SUJ-kvtZhjchvvm+5xc0g@mail.gmail.com> <13c2ff5e-f68e-45b5-bd64-085b9bdaf17e@www.fastmail.com> <CACykbs3+G8DCwC3ZrCbmzoygGkz6nRoYWHVxKWw3BvJ8YwAv7Q@mail.gmail.com> <ba8c1b17-6032-4420-8ead-a70c529721aa@www.fastmail.com> <CACykbs1Cz4aG1WaXpBeNmpdR90b2x-cGsrpnm=MXgFJiif0K2A@mail.gmail.com>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <dc82ad3c-2806-7be3-c4fc-307d0f5fd482@isode.com>
Date: Mon, 04 May 2020 16:22:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0
In-Reply-To: <CACykbs1Cz4aG1WaXpBeNmpdR90b2x-cGsrpnm=MXgFJiif0K2A@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-GB
Content-transfer-encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/CHNitTwjiCv-qeWFbZ06BqPITDk>
Subject: Re: [TLS] TLS Export Channel Binding
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 04 May 2020 15:23:17 -0000

Hi Jonathan,

On 04/05/2020 14:14, Jonathan Hoyland wrote:
> Hi Sam,
>
> If you wanted to use a SCRAM based SASL auth then you could pick 
> `p=SCRAM-SHA256-PLUS`, or any other very specific IANA-registered 
> string, and update the SCRAM RFC to require that string with TLS 1.3.
> You actively don't want for the same channel binding to be an input to 
> multiple different protocols (or even the same protocol but with 
> different parameters) because it opens the door to confusion attacks.

Can you elaborate on what you are trying to protect from?

Historically channel bindings were constant once TLS negotiation was 
complete (they could change if TLS renegotiation happens). So they never 
depended on what was sent over the protocol above TLS.

> I've only skimmed the SCRAM RFC, but it might make sense to include 
> `client-first-message` and `server-first-message` as context to the 
> exporter interface, because it seems that the channel binding isn't 
> needed until the `client-final-message`.

"the channel binding isn't needed until the `client-final-message`" is 
correct. Can you elaborate on what is problematic with this?

> The idea is to use the transcript to bind the channel binding to the 
> negotiation of SCRAM parameters, and thus allow you to define a single 
> "TLS-SASL-SCRAM" string (or whatever makes sense), rather than have 
> one for each possible set of parameters.
> Obviously you'd need to think some more about whether that was 
> actually secure, but at first glance it seems like a reasonable approach.
>
> Channel bindings that bind both the underlying channel and the 
> higher-level protocol make more sense to me that channel bindings that 
> only identify the underlying channel, because you don't have to worry 
> about the (potentially pathological) behaviours of other users of the 
> binding.
>
Best Regards,

Alexey