Re: [TLS] Should we require implementations to send alerts?

David Benjamin <davidben@google.com> Thu, 17 September 2015 22:23 UTC

Return-Path: <davidben@google.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 87E3D1A1BB1 for <tls@ietfa.amsl.com>; Thu, 17 Sep 2015 15:23:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level:
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 SKdlEZwXgHDw for <tls@ietfa.amsl.com>; Thu, 17 Sep 2015 15:23:38 -0700 (PDT)
Received: from mail-ig0-x229.google.com (mail-ig0-x229.google.com [IPv6:2607:f8b0:4001:c05::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD3391A1B6E for <tls@ietf.org>; Thu, 17 Sep 2015 15:23:37 -0700 (PDT)
Received: by igxx6 with SMTP id x6so5674406igx.1 for <tls@ietf.org>; Thu, 17 Sep 2015 15:23:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-type; bh=H0Ecq2eeaxowtgI6KRECRfzeCHwnAdjRujvqLx5pvfc=; b=NdVWbwMeXKpUyDFChsxn+0kzWWDRBPoMwzTPzrztpOm0wU5D5RtYw9W/3iZB7GVocx Xmshjd2aNTQdXTRUBNqW93xNc8CTKTfLZEEsrZKU2BMNyUoBPcVOMLzPimg9d9sq939h gyr2VgW9juT1Ct5LKwiwPiQL3DEESgwNbB6hKlFpuGAelde3rI2eIRnVkZ/CzipPAZb7 gIoPBnIba3bf6Aj5zByPGBb1oGLDjit3OihS7ZAftmDLhJiga27FcVCqus+VBWVt8k0Q rBEDs/G9jCQG1sQt78JXMsIEQcT6Zmyf1RJwNW4NE+JEjRbPUcj2Ib6MhSchfbJs+JUZ 4U8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-type; bh=H0Ecq2eeaxowtgI6KRECRfzeCHwnAdjRujvqLx5pvfc=; b=bMcxnoJQXuqH0dRHTs8wFaeZU+d/iQbh7vsmU6RE1YKFeFomP+mbPHZUoseSbru/LI ttq9ZHHKy6YKdUTTq4RUOAk0CtwONWHOwgYiokAkackSm5gkr58BxTGnpC9M1q/dvltM DFNHJId1YBmR9VAF+5NNlXNJdyrKE2XCx7E7N41S9y0GuoJCgCMMIkFHM72c++fuaLIu H0TlFQeRMqzVEvPQP2SYS5v6xZjMTf9mGq2i2+oDQHwCGo8rutYpXW/05XXl3uRFsIzG UjnDfjIKKrswiRunKYaT4D10SIkccXjYoS++ChBGyEE06BVs0M1En7Zuvd39If9wLORv dhPg==
X-Gm-Message-State: ALoCoQkycQQNov6wmbaVs+3me0e5gCeN4aBMHYEVt97EUF1S3xbS5yHvyXbNgifX7/6TxyNtahUm
X-Received: by 10.50.83.73 with SMTP id o9mr10683137igy.40.1442528617170; Thu, 17 Sep 2015 15:23:37 -0700 (PDT)
MIME-Version: 1.0
References: <CABcZeBPnO4zn_HkvwLpLC+EVYN8EKOBEsR80oRt3HZgsiNGDoQ@mail.gmail.com> <CAFewVt6JAY20iXGZhufFRHSUrs5kVzP_CO2VmR5c1vaM-D_KZQ@mail.gmail.com> <20150917205004.GW13294@localhost> <CAFewVt4ayyOfzQBgAkSEu7R+x+0PjHbxCWd400fSLrzoQYsTAA@mail.gmail.com>
In-Reply-To: <CAFewVt4ayyOfzQBgAkSEu7R+x+0PjHbxCWd400fSLrzoQYsTAA@mail.gmail.com>
From: David Benjamin <davidben@google.com>
Date: Thu, 17 Sep 2015 22:23:27 +0000
Message-ID: <CAF8qwaChecH8rXheeURhETgVh1JzOCV7VkFt01rS9kHBmyXxgw@mail.gmail.com>
To: Brian Smith <brian@briansmith.org>, Nico Williams <nico@cryptonector.com>
Content-Type: multipart/alternative; boundary="089e0116076cce52d1051ff8dd8a"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/SlLLtDfCikmQZks1TPECQQQ9pSQ>
X-Mailman-Approved-At: Thu, 17 Sep 2015 21:46:15 -0700
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Should we require implementations to send alerts?
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: <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: Thu, 17 Sep 2015 22:23:39 -0000

On Thu, Sep 17, 2015 at 5:46 PM Brian Smith <brian@briansmith.org> wrote:

> On Thu, Sep 17, 2015 at 1:50 PM, Nico Williams <nico@cryptonector.com>
> wrote:
>
>> On Wed, Sep 16, 2015 at 12:53:53PM -0700, Brian Smith wrote:
>> > Further, the alerting mechanism has encouraged the unsafe practice of
>> > "version fallback." It is clear from looking at the bug databases of
>> > Firefox and Chrome that their attempts to make security decisions based
>> on
>> > what alerts they received was bad for security.
>>
>> Do we think that silent connection closings wouldn't also lead to
>> version fallback?
>>
>
> Let's ask the browser vendors:
>
> Browser vendors, if web servers were to stop sending alerts during
> handshake failures, would you start doing version fallback when a
> connection is closed?
>

Connection close is already a fallback trigger.


> Fatal alerts are quite handy for diagnostics on the client side, really.
>>
>
> I agree that they are often marginally useful. However, the risks
> associated with the alert mechanism outweigh those benefits.
>

I don't think the existence of alerts at all increases the "risk" that
people will do fallbacks. I think you've got causality flipped. It wasn't
"we get alerts, ergo we can get away with a fallback" but "Servers are
dumb, we want to fallback. If there's something easy we can do to constrain
when fallbacks happen, we should. Being more lenient means even more
unexpected dependencies on the fallback may crop up. (Not that this hasn't
happened anyway.)".

Besides, fallback conditions tend to be extremely liberal in my experience.
Which makes sense since it's used against buggy servers. If a buggy server
blew up because it's version-intolerant, it's not likely to be kind enough
to tell you that.

While I don't see much use in "your records don't authenticate" and "that's
not even a syntactically valid ServerKeyExchange!", not all failures are
protocol failures. There's also negotiation failures when parameters aren't
okay. When removing cipher suites or bumping minimum versions, it's nice to
show a dedicated error message when it goes wrong.

And client certs break (even more) if you can't distinguish network errors
from the peer complaining at you. I wish they would go away, but I'm stuck
with supporting it right now and I doubt the world will rally behind
"client certs on the web are deprecated; you do not get TLS 1.3 if you use
client certs".

David


>
>
I'd rather keep them than remove them, but I'd be OK with clients never
>> sending them.  I'm OK with fata alerts being SHOULD send.
>
>
> I suggest that, at most, implementations SHOULD NOT send them. IMO it
> would be better to remove the alert mechanism altogether in TLS 1.3.
>
> Most people that are arguing for retaining the alert requirements seem to
> be concerned about alerts sent from the server to the client. Does anybody
> think it is important to require clients to ever send alerts other than
> close_notify?
>
>