Re: [TLS] Last Call: <draft-ietf-tls-downgrade-scsv-03.txt> (TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks) to Proposed Standard

Michael Clark <michael@metaparadigm.com> Fri, 23 January 2015 03:48 UTC

Return-Path: <michael@metaparadigm.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 828871A0125 for <tls@ietfa.amsl.com>; Thu, 22 Jan 2015 19:48:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.458
X-Spam-Level:
X-Spam-Status: No, score=-1.458 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, IP_NOT_FRIENDLY=0.334, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=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 1zTnTC9O8wYb for <tls@ietfa.amsl.com>; Thu, 22 Jan 2015 19:48:32 -0800 (PST)
Received: from tlsx.org (tlsx.org [67.207.128.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EDB951A0130 for <tls@ietf.org>; Thu, 22 Jan 2015 19:48:31 -0800 (PST)
Received: from monty.local (unknown.maxonline.com.sg [58.182.168.20] (may be forged)) (authenticated bits=0) by tlsx.org (8.14.4/8.14.4/Debian-4) with ESMTP id t0N4AICq015489 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 23 Jan 2015 04:10:22 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=metaparadigm.com; s=klaatu; t=1421986224; bh=9p7NdCOurf42ul+mlJ51jDxf3Kh9GTqvLyHhPuE+XQU=; h=Date:From:To:Subject:References:In-Reply-To:From; b=Fnlm3OgKvKuybujI8cdHpE2r3vwqv7iWpHutOzfnHCgXj3O2ikaDFJ6onB5gP75wt AEgd6J4HAN+bpHDvAOtCCrmLO5CB8mQBm7kRk9ejs+vj2cwIAARzWp6ukEzPIb8Yfc feLfXLSAPmxZc7iPjc7iPFq3LBDd8QStjIARUWkU=
Message-ID: <54C1C47F.1010605@metaparadigm.com>
Date: Fri, 23 Jan 2015 11:48:15 +0800
From: Michael Clark <michael@metaparadigm.com>
Organization: Metaparadigm
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: "tls@ietf.org" <tls@ietf.org>, Nikos Mavrogiannopoulos <nmav@redhat.com>, Dave Garrett <davemgarrett@gmail.com>, Bodo Moeller <bmoeller@acm.org>
References: <40128f312378442fbd26459bf5d7593b@usma1ex-dag1mb2.msg.corp.akamai.com> <20150119192701.190C71B0FF@ld9781.wdf.sap.corp> <CAFewVt6LRafnJN_L=xVeiAxNcpSB+8vPYzquPfjXsduudyj+QQ@mail.gmail.com> <BAY180-W688DE2930CB7F231E60989FF480@phx.gbl> <04690E05-4905-4941-A60D-7BC5CDC93431@gmail.com> <BAY180-W1849690A1D8C42F1063DDBFF480@phx.gbl> <39B8BC24-D539-456F-970B-B11665B0E892@gmail.com> <54C0B783.2060604@metaparadigm.com> <CADMpkcJLidpZcQd-zmFAyd022xHB9Cj0xkhQyjBxQBsLk54SbA@mail.gmail.com> <54C1B2EC.2060507@metaparadigm.com>
In-Reply-To: <54C1B2EC.2060507@metaparadigm.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
X-Virus-Scanned: clamav-milter 0.98.4 at klaatu.tlsx.org
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/1sZqsu3Fg-omQw9inFJP2KtIpD4>
Subject: Re: [TLS] Last Call: <draft-ietf-tls-downgrade-scsv-03.txt> (TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks) to Proposed Standard
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Fri, 23 Jan 2015 03:48:33 -0000

On 23/1/15 10:33 am, Michael Clark wrote:
> However this is my thinking, which was modified by the comments of others.
>
> A).
>
>     1). Codify use of a "Supported TLS Versions Extension" with either
> a strong recommendation for a minimum of TLSv1.0 { 3, 1 } to deprecate
> SSLv3.0
>         * Advisory to recommend the record layer ClientHello version
> be fixed to the lower bound { 3, 0 } ; which there seems to be some
> consensus for
>         * In the case where the extension is echoed. i.e. supported,
> the record layer version is echoed by the server and signed in the
> handshake.
>         * This is TLSv1.0 through TLSv1.2 compatible via extension
> tolerance. i.e. All TLS implementations can benefit from it.
>
> And in TLSv1.3, where payload can be changed, and extensions can be
> mandated, without breaking backwards compatibility, it also makes
> sense to:
>
> B).
>
>     1). MUST Codify use of a "Supported TLS Versions Extension" with
> either a strong recommendation or MUST for a minimum of TLSv1.0 { 3, 1
> } to deprecate SSLv3.0
>         * In the case where the extension is echoed. i.e. the lower
> bound is signed in the handshake.
>         * This provides administrators with a clear indication of
> supported versions and the ability to set their lower bound
>         * This is TLSv1.0 through TLSv1.2 compatible via extension
> tolerance.
>         * Complete deprecation of SSLv3.0 would like be achieved by
> the time TLSv1.3 is in the wild.
>
>     2). MUST tighten the wording with respect to the ClientHello
> record layer and message layer versions
>         * Fix the record layer ClientHello version to the lower bound
> { 3, 0 } ; which there seems to be some consensus for
>         * This is TLSv1.0 through TLSv1.2 compatible via extension
> tolerance.


Based on Nikos's comment there needs to be a clarification on the
mitigation track (for TLSv1.0 through TLSv1.2) vs standards track (for
TLSv1.3) on whether the ClientHello "record layer" lower bound is { 3, 0
} or { 3, 1 } and this could potentially be different in TLSv1.3?

From my read, it seems in the time frame of current mitigations (SVSC in
the field or Nikos's "Supported Versions Extension" as a more elegant
forwards and backwards compatible version signalling mechanism). Nikos
was pushing on { 3, 0 } for a current lower bound (at the record layer)
for TLSv1.0 through TLSv1.2 as { 3, 1 } at the record layer in the
current time-frame *allegedly* causes dancing for a few remaining
upgrade recalcitrant servers. i.e. causing problems in the wild. This
was my read.

So the decision remains whether { 3, 0 } or { 3, 1 } is the "record
layer" lower bound in TLSv1.3; depending on whether mitigation
propagation has made provision for the lower bound to be raised to { 3,
1 } in TLSv1.3. Implementors tried { 3, 1 } and Nikos disagreed and said
this compounded the dancing issue. We proposed a compromise that is both
forwards and backwards compatible and it happened to match something
Nikos had previously proposed. It was to pin { 3, 0 } at the record
layer (essentially making the protocol major version the record layer
version as opposed to TLSv1.0 { 3, 1 } ; this is in fact a record layer
binary compatibility boundary) and listing "Supported TLS Versions
Extension" with { 3, 1 } as a mandatory lower bound (ignored by the
recalcitrant servers). This allows someone unwise to add SSLv3 { 3, 0 }
to "Supported Versions" if they want to support it, but most importantly
lets you signal { 3, 1 } as a signed lower bound in any TLS version (1.0
through 1.3) while showing { 3, 0 } at the record layer for
compatibility. This seems ideal.

I understand this is issue is already mitigated where it is important
(using SVSC or other tightening mechanisms) rather the mechanism is
completely not standardized.

Sorry I am on the temporal track, not the standards track. I'll read
these pull requests:

  https://github.com/tlswg/tls13-spec/pull/105
  https://github.com/tlswg/tls13-spec/pull/107

Thanks for clarifications.