Re: [TLS] Working Group Last Call for draft-ietf-tls-downgrade-scsv-00

Brian Smith <brian@briansmith.org> Wed, 15 October 2014 20:39 UTC

Return-Path: <brian@briansmith.org>
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 582C51ACD1C for <tls@ietfa.amsl.com>; Wed, 15 Oct 2014 13:39:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level:
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
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 UvQL7JRzRFkg for <tls@ietfa.amsl.com>; Wed, 15 Oct 2014 13:39:20 -0700 (PDT)
Received: from mail-oi0-f51.google.com (mail-oi0-f51.google.com [209.85.218.51]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 749FA1ACD05 for <tls@ietf.org>; Wed, 15 Oct 2014 13:39:20 -0700 (PDT)
Received: by mail-oi0-f51.google.com with SMTP id h136so1616189oig.24 for <tls@ietf.org>; Wed, 15 Oct 2014 13:39:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=YewGF65Zhj4BcNoDfT5j7ECFHedqIotl08YFYYH2Omc=; b=PYC+E1CxFYXo40ejT10PcqkMv7KLgePzQ1NJzXUKf8P5HwD2jNaQLr60Cb+l2tPQFG 9tyHFnlI8OAa9Xmi0qCcT6F+4GoNRwq7/JOcMNpzj/oPUSEsXm/3in+YQOMEqhhKARYS SqO1yjko0Kkk5O6iPgBuGWI2JIR4SD8QaSUH5qX6lsU+Prw1vv/K5ncGzf5g1s8U9Jyk ZDkJHhia/BjMyA664bh96wLq8lR0dLMwBq67aWjaC2r/pGNEQ3A6N8VJn2P14rBxB0tj 3h0zWPaocmjF6g+NziNZ9am1Z68hVZPLnxJGY4XMo3o3Or8D086GlCIwzzd3b2UwiuLM Jt8Q==
X-Gm-Message-State: ALoCoQk92br47Y2aKMq0np/l+wT/S+i936MZ6EeVd0D5x6VXWRjgF/dpcbBFV7r46/Cgq20rh/u4
MIME-Version: 1.0
X-Received: by 10.202.168.65 with SMTP id r62mr12405818oie.26.1413405559919; Wed, 15 Oct 2014 13:39:19 -0700 (PDT)
Received: by 10.76.93.9 with HTTP; Wed, 15 Oct 2014 13:39:19 -0700 (PDT)
In-Reply-To: <2112FCAD-4820-49D9-9871-6501C83A554D@cisco.com>
References: <2112FCAD-4820-49D9-9871-6501C83A554D@cisco.com>
Date: Wed, 15 Oct 2014 13:39:19 -0700
Message-ID: <CAFewVt77caT8kDPyKhT3Bqn5T+uRKA79n_F24VGnd+abMe6=zA@mail.gmail.com>
From: Brian Smith <brian@briansmith.org>
To: "Joseph Salowey (jsalowey)" <jsalowey@cisco.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/dEoNDkcseCVFnAChdly0Epwdayw
Cc: "<tls@ietf.org>" <tls@ietf.org>
Subject: Re: [TLS] Working Group Last Call for draft-ietf-tls-downgrade-scsv-00
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: Wed, 15 Oct 2014 20:39:22 -0000

On Thu, Sep 25, 2014 at 9:00 PM, Joseph Salowey (jsalowey)
<jsalowey@cisco.com> wrote:
> This is an announcement for the working group last call for draft-ietf-tls-downgrade-scsv-00.  Please review the document and send your comments to the list by Friday, October 17, 2014.

It seems like the draft should also advise clients that they MUST NOT
do the False Start optimization if the server does not choose the
maximum version of TLS that they support. For example, if the server
chooses a version less than ClientHello.client_version, or if the
client sent the TLS_FALLBACK_SCSV, then the client MUST NOT false
start. Currently the draft says nothing about this. Because of False
Start, there are several downgrades that are still possible even with
the current downgrade-SCSV-enabled Chrome and Firefox, for example.

1. During a False Start handshake, the MitM can remove the
TLS_FALLBACK_SCSV from the ClientHello, so that the server cannot
detect the version downgrade. The client will only be able to detect
this tampering once it has processed the server's Finished message.
But, by then, it has already sent application data using the
downgraded version.

2. Similarly, the MitM can tamper with ClientHello.client_version in a
ClientHello regardless of whether it has the TLS_FALLBACK_SCSV in it,
and a client that does the False Start optimization won't notice the
tampering until after it has sent some application data.

3. Even without tampering with TLS_FALLBACK_SCSV or
ClientHello.client_version, a MitM can easily degrade the cryptography
on a connection. For example, let's say a server supports ECDHE with
P-256 and DHE with 1024-bit keys. A P-256 key is much stronger than a
DHE-1024 key. If an attacker removes P-256 from the client's
supported_curves extension, then the server will choose a DHE-1024 key
in the handshake, even with TLS 1.2. This type of downgrade could have
a much bigger effect than a downgrade from TLS 1.2 to TLS 1.1.

In all these cases, the server won't process the client's application
data, because the server will detect the tampering before processing
it (because it processes the client's Finished message before it
processes the application data). But in theory there may be attacks
where just sending the initial application data in a downgraded
version would be a security problem. For example, when it is clear to
everybody that SHA-1 is broken, non-secure downgrades from TLS 1.2 to
TLS 1.1 alone will be a severe security problem. If these attacks are
out of scope, then the document should say so. Otherwise, they should
be addressed.

In summary, the way it is defined, the downgrade SCSV is only helpful
in preventing a limit number of unspecified downgrade attacks when
used in conjunction with False Start. Also, the draft is based on the
premise that preventing version downgrade is useful for preventing
some cryptographic attacks, but it does not substantiate that. POODLE
and BEAST are evidence that the mechanism helps for some attacks. But,
is this mechanism actually effective for preventing any other class of
attacks, other than TLS 1.1 -> TLS 1.0 -> SSL 3.0 downgrade for CBC
cipher suites? The answer to this should be in the security
considerations.

I don't think it makes sense to consider False Start out of scope for
this, because all the browsers that are doing the non-secure version
fallback are also doing the False Start optimization.

Cheers,
Brian