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

David Benjamin <davidben@chromium.org> Thu, 17 September 2015 22:24 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 412A41A1BB1 for <tls@ietfa.amsl.com>; Thu, 17 Sep 2015 15:24:40 -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 5gdPC7F93DCQ for <tls@ietfa.amsl.com>; Thu, 17 Sep 2015 15:24:38 -0700 (PDT)
Received: from mail-io0-x233.google.com (mail-io0-x233.google.com [IPv6:2607:f8b0:4001:c06::233]) (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 7D0A21A1B8C for <tls@ietf.org>; Thu, 17 Sep 2015 15:24:38 -0700 (PDT)
Received: by iofh134 with SMTP id h134so38250254iof.0 for <tls@ietf.org>; Thu, 17 Sep 2015 15:24:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-type; bh=2yBQqCEaWFH4wAkFgKBdH1+w2mth7m+4PYApw1Y03TU=; b=lbPM9FoElByT2IiBhJ9DW8FA0Aj8p2Mveq3IRa52vDX+wnFU3YechZYj5Uw2c3Cy3K pTth/X/ef/XX2NFDoy5PkZ6wGpBIqbKtcoAZQ3ZOu8ky/Upc0gfRD6qh5UkVCIhjinYd Z9hy2gBjDVzdaGhPIaK2NYbpsxISftb7w2ZY0=
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=2yBQqCEaWFH4wAkFgKBdH1+w2mth7m+4PYApw1Y03TU=; b=WACxhtQ7TfM8TE2LunUryJ7UTLgYb7emBwKqV177uwbsALGsfL2l/nhfnHFFORqu/N cBik60oCs8URBFBiRHY2HnJAwhGgSM8kZMvUr5nAZ0SiHipkg0vxqRAoBARKPZ7dv17s LXCntaXOl16y829AIE0Wj4g620q21T/okIPu3vPMmTE65pO/nxQQazJMGPAhuUhpzOF+ IHTtv3j9MaKj43ecn5f6qwXfowpYHu8Fc0MMFORnZ7Fawe7RCH1fDpaFb8TnYB9ZBF52 wK9XGOzpFbPVlfoZOip9qkENMvOLwQAR+kJJ0aA10m7BC7pADdgkKS1Dn2UzXQ/Iiohe YBiQ==
X-Gm-Message-State: ALoCoQnQVkEBlQsfLZfQs25Kp2W+CsnwKFJmDwREn8mk1YOZxLGPVKi9NS2aD2KE8zz8De+trHsW
X-Received: by 10.107.34.207 with SMTP id i198mr10525052ioi.2.1442528677702; Thu, 17 Sep 2015 15:24: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> <CAF8qwaChecH8rXheeURhETgVh1JzOCV7VkFt01rS9kHBmyXxgw@mail.gmail.com>
In-Reply-To: <CAF8qwaChecH8rXheeURhETgVh1JzOCV7VkFt01rS9kHBmyXxgw@mail.gmail.com>
From: David Benjamin <davidben@chromium.org>
Date: Thu, 17 Sep 2015 22:24:28 +0000
Message-ID: <CAF8qwaAdYejBMvzcTUvysyM7Mx9uQq6bUaTMWFDptPnmm3ZVGg@mail.gmail.com>
To: Brian Smith <brian@briansmith.org>, Nico Williams <nico@cryptonector.com>
Content-Type: multipart/alternative; boundary="001a11403e2469fcc4051ff8e128"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/1CiPzR9yO5pvNnGVRbyXToCC1II>
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:24:40 -0000

(Resending from the right address, again. Possibly I should have subscribed
with the other one...)

On Thu, Sep 17, 2015 at 6:23 PM David Benjamin <davidben@google.com> wrote:

> 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?
>>
>>