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

Bodo Moeller <bmoeller@acm.org> Sun, 19 October 2014 20:52 UTC

Return-Path: <SRS0=Mujv=7K=acm.org=bmoeller@srs.kundenserver.de>
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 596C81A6F93 for <tls@ietfa.amsl.com>; Sun, 19 Oct 2014 13:52:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.938
X-Spam-Level:
X-Spam-Status: No, score=-0.938 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HELO_EQ_DE=0.35, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-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 LSc9__JQ1_eM for <tls@ietfa.amsl.com>; Sun, 19 Oct 2014 13:52:37 -0700 (PDT)
Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.24]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E22E1A0258 for <tls@ietf.org>; Sun, 19 Oct 2014 13:52:36 -0700 (PDT)
Received: from mail-yh0-f46.google.com (mail-yh0-f46.google.com [209.85.213.46]) by mrelayeu.kundenserver.de (node=mreue105) with ESMTP (Nemesis) id 0MHG1D-1Xty671zcJ-00E6Ra; Sun, 19 Oct 2014 22:52:32 +0200
Received: by mail-yh0-f46.google.com with SMTP id f73so2073676yha.5 for <tls@ietf.org>; Sun, 19 Oct 2014 13:52:31 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.236.110.35 with SMTP id t23mr6814732yhg.126.1413751951403; Sun, 19 Oct 2014 13:52:31 -0700 (PDT)
Received: by 10.170.194.15 with HTTP; Sun, 19 Oct 2014 13:52:31 -0700 (PDT)
Date: Sun, 19 Oct 2014 22:52:31 +0200
Message-ID: <CADMpkcJ5GVVxOhg-ccVr_Y7+DBBPirv8i4WJXZk82OjAcPbBkQ@mail.gmail.com>
From: Bodo Moeller <bmoeller@acm.org>
To: "tls@ietf.org" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="001a1133358add31fe0505ccc627"
X-Provags-ID: V02:K0:QYGR4Z4m62TUsNwfYUkD3GxMn2D6edu/9hQf52pkeoE XMPaKaAe4f7zU3Hv+yV2tzYHf5IOGcTCshqJIUMqEfazzYu675 +9hXxCD0q9QpiN90iotmguLWBn8MRHXwiLqX24EMwJ0s5IaEN/ auwdooIEjhZohqOad4Q7jcuktF5OGuxM22oxQKIvlQFskKV4un OCugGrahWnwyaC+x1YzFY9qMiP/GD+2+gqnegKfgo1ouE+nNpI gPQT30SXFTTe1CoAVqh5u3u5UKFK1BlDwr/V2qMsspUmXVyPFo 3vVGJ5YAnhGnEAbICjqdNeybRiXZMnOTqRT1eM4L7uf2eN5Uzu JPgq3Jxg6URVCX/fOnvIJs5uzmN5NH7Qxig2w+2Z9/stT3XQ/B qMzv7ugcdGOuLLKO9jtGd8JMPLHGtg4UcF3/PnrXzh+rMVFAFp iNQ6P
X-UI-Out-Filterresults: notjunk:1;
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/mifMjm4qOMRbG5FvOk6WYIKB56g
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: Sun, 19 Oct 2014 20:58:21 -0000

Andrey Jivsov <crypto@brainhub.org>:

> According to the draft, this server-side rejection is REQUIRED *if the
> client sent TLS_FALLBACK_SCSV to request it*. For the client, however, it
> is merely RECOMMENDED to send TLS_FALLBACK_SCSV in all fallback retries.
>
>

> Thinking more about it, there are two issues I see with the above: "smart
> client / dumb server" model and SHOULD for the client use of
> TLS_FALLBACK_SCSV.
>
> What was the rationale for the dumb server / smart client design?
>

The client is the one making fallback decisions anyway. Mixing that with
server-side heuristics makes it less clear what's going on (then, neither
the client nor the server could fully enforce its preferences).



> Example. Most often the servers are the custodians of the information /
> content. Servers are managed by professionals and are properly maintained.
> A server security policy might require TLS 1.1 to access the content that
> it serves. When such a server receives a ClientHello with TLS 1.0, it might
> proceed with a handshake, but display an HTML page explaining that access
> was denied due to low security, perhaps adding how to remedy the problem.
> In the end this is more secure: the same result of denying access to
> information, but with a more informative message. Neither the server nor
> the client implementations may find it appealing to code a special warning
> message specifically to flag MiT downgrade attack when TLS_FALLBACK_SCSV is
> used (e.g. to avoid false-positives), however, the server may include some
> of this information on the above-mentioned page as well, or choose to send
> inappropriate_fallback alert.
>

Well, if you think this might really happen, the scenario only confirms
that the server-side MUST is exactly right ... because if the server
includes a warning message in content it serves rather than entirely
rejecting the connection, that's well-intentioned but dangerous misbehavior
we should rather prevent. (If the server allows the downgraded handshake to
complete, the client will send secrets such as HTTP cookies even though
they may not be adequately protected.)


Currently the client has SHOULD for TLS_FALLBACK_SCSV. Why is this one not
> MUST (regardless of the server MUST or SHOULD)?
>

When you start experimental use of TLS 1.3, incompatibilities between
implementations might result in handshake failures, and silently falling
back to TLS 1.2 (without the SCSV!) could then make sense -- hence the
SHOULD (rather than MUST) for the client. (To fix interoperability,
alternatively you'd completely disable TLS 1.3 in the client, and the
fallback isn't worse than that.)



> This SHOULD for the client means that the client that implements the draft
> will use some logic to switch between cases:
> a) as if doesn't implement the draft
> b) client sends TLS_FALLBACK_SCSV with any downgraded negotiation
>
> If client does a), perhaps by interpreting network errors, POODLE
> continues to live.
>

It's a SHOULD, not MAY. I don't think omitting the SCSV when falling back
to SSL 3.0 is reasonable. (See also the draft-ietf-tls-downgrade-scsv-00
Security Considerations.)

Bodo