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

Brian Smith <brian@briansmith.org> Tue, 14 October 2014 00:22 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 0D56C1A1A5C for <tls@ietfa.amsl.com>; Mon, 13 Oct 2014 17:22:06 -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 RB1KxlFGo9HP for <tls@ietfa.amsl.com>; Mon, 13 Oct 2014 17:22:04 -0700 (PDT)
Received: from mail-oi0-f50.google.com (mail-oi0-f50.google.com [209.85.218.50]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7EAB21A1A5A for <tls@ietf.org>; Mon, 13 Oct 2014 17:22:04 -0700 (PDT)
Received: by mail-oi0-f50.google.com with SMTP id i138so15122663oig.9 for <tls@ietf.org>; Mon, 13 Oct 2014 17:22:04 -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=dEBVCn4Boa5D2mGq3S8+EQRWtAiuWF80qL/X40UKhxo=; b=AqIt5YfOxit/jk15tvbfNpxVFWNgGEdVsF2z21wyybQ2stPqdI90OD5RlDeZBK2a/b HY8+1eI7A7PizffkuNslK58CbBaimWhNSzbASrKyIbXuClxvM1Dw5iOpLeV8tzB6cjbk zt3mbGP8FPeh3DnwlBX1qnm0pkS/Cd1Hmv8D0e5LJxYKTi3Hu4VtkX1UDM95Fwz8g/za eAxXoN2htyYoC8jdWhAU0dke6EEGIzGnLkL9xliWJLKKmOeEEWCBYp2RQy5N+c5v+P7S NxnZn9/klLz2RnPLOXS2QFzRYLKxiZ8nSp5ZJpKZ7mBWGUWISMHjq7FBmfA460BauQFx bXzQ==
X-Gm-Message-State: ALoCoQlLU6tekKGYOBKGfX8rEuTJIxojKGQWgE6Zw+smkU/WjH7duXFC+omlJ1Jf+UinmxkjvENn
MIME-Version: 1.0
X-Received: by 10.202.174.76 with SMTP id x73mr1526945oie.12.1413246123918; Mon, 13 Oct 2014 17:22:03 -0700 (PDT)
Received: by 10.76.102.40 with HTTP; Mon, 13 Oct 2014 17:22:03 -0700 (PDT)
In-Reply-To: <CADMpkcKE5fLuJngj9V1wCYFa8dcr9Hxw02y8Bk9Pb56cRZYYkQ@mail.gmail.com>
References: <2112FCAD-4820-49D9-9871-6501C83A554D@cisco.com> <CABkgnnUxeouqDNhYFGDC2xqUaT8r7zFvAT5U1OUGJwHwCOuOwA@mail.gmail.com> <CADMpkcJKJiTCQXdDbepyiAf22J9VC03DDgiE521n3NsNnFmALA@mail.gmail.com> <CABkgnnWo9KGMkRrmA0wkJ5Dfnzh2Vo-cveCe_UeH71F8K_4oWw@mail.gmail.com> <CADMpkcJpHeKGV-xc4Uon8KWj=+p=6nQO1_rxb6sRN04nFX--gQ@mail.gmail.com> <CABkgnnU8DyzRvvq1e24bUsZdwx48mFOC6KstZaUCbvyQ-WwesQ@mail.gmail.com> <CADMpkc+wXf=SG3=C==SV77YXZdbXnbXspJLRZ1UORPF-WbVMEw@mail.gmail.com> <CAFewVt5mEodyqB6TWCmvOUBek9Bnb43bmw5mAqph-hQU=F=EpA@mail.gmail.com> <CAFewVt40ewzwujJZ8KQYYALnPjBSZnF-bDiVaz54URA6MaqPEg@mail.gmail.com> <CADMpkcKh=6Y9u_utfLiccZTUKT-BV1+3NQO7OzDN-Dn38sx-TQ@mail.gmail.com> <CAFewVt747+NJZxGohr_1=TqW=Pcu7qp7tz=8qYWP=Zg+vRPsPw@mail.gmail.com> <CADMpkcKE5fLuJngj9V1wCYFa8dcr9Hxw02y8Bk9Pb56cRZYYkQ@mail.gmail.com>
Date: Mon, 13 Oct 2014 17:22:03 -0700
Message-ID: <CAFewVt7ag3tUzpEq_wtqzuZi2wOq6CYEBSKKgdajGDnSQYUS5w@mail.gmail.com>
From: Brian Smith <brian@briansmith.org>
To: Bodo Moeller <bmoeller@acm.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/czq8ZwlQh4fN3zgph4PEMDWwWIs
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: Tue, 14 Oct 2014 00:22:06 -0000

On Mon, Oct 13, 2014 at 4:47 PM, Bodo Moeller <bmoeller@acm.org> wrote:
> Brian Smith <brian@briansmith.org>:
>> CASE 3: Client did not include the TLS_FALLBACK_SCSV, the server
>> forgot session state when it was upgraded. The server starts a new TLS
>> 1.1 session. Thus, the downgrade protection mechanism has failed to
>> prevent a version downgrade.
>
> Right, this is the most problematic case. Resuming a session using the old
> protocol version (if the server still recognizes that session) is one thing,
> but using the old version for a new session is another.
>
> However, this issue really just follows from the relevant language in the
> TLS RFCs: "Whenever a client already knows the highest protocol version
> known to a server (for example, when resuming a session), it SHOULD initiate
> the connection in that native protocol." If the client follows these
> directions, using the old protocol version even in case the server gets
> upgraded is expected.

I agree. But, my conclusion is that the TLS specification is wrong,
and that that advice should be dropped from it and ignored by clients,
because it enables this scenerio. I also think that the spec should be
changed to require servers to never resume a session for a version
lower than min(ClientHello.version, <the highest version the server
supports>), for similar reasons.

In fact, your draft would be a good place to tell clients that they
SHOULD NOT follow that advice in the TLS specifications.

>> I think the best solution is to take my original suggestion (i.e. keep
>> the current logic, but make it more clear),
>
> Now I'm a bit confused. If you consider that consequence (using the old
> version if server capabilities have improved since) "improper", why do you
> suggest keeping the current logic?

The current logic in your draft says that if the client doesn't
downgrade ClientHello.client_version to equal the version in the
resumed session, then it must send the TLS_DOWNGRADE_SCSV if
ClientHello.client_version is less than the highest version that it
supports. That is the correct logic. The way it is written has made
people think that TLS_DOWNGRADE_SCSV is never supposed to be sent
during resumption handshakes, which is why it is good to clarify it.

>> I think it is realistic to expect that servers that implement the
>> inappropriate_fallback logic to implement at least TLS 1.2 (or at
>> least TLS 1.1),
>
> I'm not so sure -- the TLS_FALLBACK_SCSV mechanism by design works equally
> well with TLS 1.0 and can be easily retrofitted at least in principle. Thus,
> to allow essentially *every* implementation to benefit from the SCSV, I
> wouldn't want to require any higher version.

OK.

Cheers,
Brian