Re: [TLS] New Version Notification for draft-friel-tls-over-http-00.txt

Ben Schwartz <bemasc@google.com> Tue, 31 October 2017 01:35 UTC

Return-Path: <bemasc@google.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB8B313FBF0 for <tls@ietfa.amsl.com>; Mon, 30 Oct 2017 18:35:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 bsk2A01kr8N2 for <tls@ietfa.amsl.com>; Mon, 30 Oct 2017 18:35:18 -0700 (PDT)
Received: from mail-ua0-x22a.google.com (mail-ua0-x22a.google.com [IPv6:2607:f8b0:400c:c08::22a]) (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 6BBE413EDE3 for <tls@ietf.org>; Mon, 30 Oct 2017 18:35:18 -0700 (PDT)
Received: by mail-ua0-x22a.google.com with SMTP id s41so10908555uab.10 for <tls@ietf.org>; Mon, 30 Oct 2017 18:35:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3Dt2yj1ac7mk2ZS3WFSp5jrDw8C4cwOY19cvmJBeZQg=; b=vxwLzVeBujMENaKQWQhTrAivo0KPVLBCKnmBIHYw5xrdIYnxBUvEZvsNZ+Q8cFDUwe o5GnPRNgY7fgWJ94Vre4OIaL31rCQss4FsXPqZxejj/pCpP04zOMI5pXE2XtMn969fG+ IcA/uVzthJa3Byvq/lmMUAu0CBDvZL7YCVHcEWn8/dI59oP+lfmsfxtZKi4IV375HRb4 DCTsRWS5yB1BPxzfYPYxjMNdbD5cOMaS46fZJ6r4ZUEuAdOSP5gCcr+aErXBOTXlkpg/ 4cqs6NJdA7h0HDOKxblEy/FyWLhd1KnaPdyGs0mG2nzPemCDOHCZgzsUqzwlv/Rxmglm 1cQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3Dt2yj1ac7mk2ZS3WFSp5jrDw8C4cwOY19cvmJBeZQg=; b=YeLWg0fpFDfTVGUJFDjNEJWbrRDhY5pImeayPKMinpMLOd6pcf81CwobPo0k8bigmi gkIZRPjoTdPHctQo9THENXZS6+MmG6S27pwgyCLaMb+/s2B/U51P9qRLrTBRKIScEz7v jgHfiAPw3WoI08jTWE6yeMtyz5FL9DuzAr+5zTCxgwXM3Hezgo6KAovKHJWstECFHK98 h9I4j+u/BiRIABWTEvorudU7IDcJgJEDuzY0vy+vWKjjReVJ+XcNvROBFg+uc8Kwo9YS V1y/XiEk8bvucLeEjzHjEAczuyIW0SPgubB7+SQuSFU3LrFLgcXlX6mgbIqaY/9n6dLB Zqvg==
X-Gm-Message-State: AMCzsaX38Tl8vOGXPNRW9fbdAvE6m4v88coy7jIYKxdfFyEb9xpGKjQU yLIGpC6WecMbclWc7br26vDW7vDvvQVSALeuLjbGOORy
X-Google-Smtp-Source: ABhQp+Rjxtveezw1OJ+x9hYa/8AeYCdqVXYUV2WXgKTfLkoYHITCRj0oKFWBdiQkBLa2T2kPo3Pio/bjoFYrWCddFj4=
X-Received: by 10.159.58.76 with SMTP id r12mr229699uag.141.1509413717109; Mon, 30 Oct 2017 18:35:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.31.170.145 with HTTP; Mon, 30 Oct 2017 18:35:16 -0700 (PDT)
In-Reply-To: <CAL02cgTkaz0zLf+jrFeccD-GPJ+R_evySsLgW+R7F646YLOUkQ@mail.gmail.com>
References: <150939282345.7694.10153977158870845060.idtracker@ietfa.amsl.com> <CAL02cgRS715Vc+4_QNDSNBW8LP1f-Rmp0FW9W_pyHHpAnkX7Sg@mail.gmail.com> <CAHbrMsDMdjkffwqE+CeVfHBcU1gnxW3rpOmiitM3fCMyrTye0g@mail.gmail.com> <CAL02cgTwWB_w4+j=8RS=1ZfxNkLE0OeKivrjz33oBamJyD_tbQ@mail.gmail.com> <CAL02cgSBim4HxAkA-_HP3hc_95zsyNdvezmttgkTbs850pPddg@mail.gmail.com> <CAHbrMsAqnTC4jOAuyfyaujNq=ugXCVF4AH4Kp4f==L36e4twrw@mail.gmail.com> <CAL02cgTkaz0zLf+jrFeccD-GPJ+R_evySsLgW+R7F646YLOUkQ@mail.gmail.com>
From: Ben Schwartz <bemasc@google.com>
Date: Mon, 30 Oct 2017 21:35:16 -0400
Message-ID: <CAHbrMsDjR6e2+MLepLJbNFxkwy+oQN=0OmMDHeDKYJGknyFo2A@mail.gmail.com>
To: Richard Barnes <rlb@ipv.sx>
Cc: "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="089e08e4b65d772749055ccdc477"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/OvfzQiXD1phbWnG7_EopVjewg7k>
Subject: Re: [TLS] New Version Notification for draft-friel-tls-over-http-00.txt
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 31 Oct 2017 01:35:22 -0000

On Mon, Oct 30, 2017 at 7:02 PM, Richard Barnes <rlb@ipv.sx> wrote:

> It requires awareness in the following sense: If by chance the client is
> in a nice, open network and the base TLS connection goes directly to the
> server, CONNECT is kind of unnatural; you would want the client to do
> something different in that case.
>

Surely this is equally true/untrue of ATLS.  Why do double-TLS if it can be
avoided?  But then, how does the application know whether to do ATLS
encapsulation?  It's the same question in both cases.


>   You're correct that you *could* configure the server to handle connect
> properly, but all of the options for doing this are kind of cumbersome --
> either you have to stick a possibly-unnecessary proxy in front of the
> server, or handle CONNECT on the server, which is not really well-supported
> by web application frameworks.  By contrast, running data over POST is
> ubiquitous.
>

This makes a certain amount of sense to me.  If it were up to me, rather
than design a TLS-specific transport, I'd be more inclined to propose a
standardized version of something like Crowbar
<https://github.com/q3k/crowbar>.  (Or just document that reverse proxies
and frameworks ought to do something reasonable with CONNECT.)  Otherwise
this seems to be ossifying the proxy, privileging TLS and preventing
deployment of Noise protocol <http://noiseprotocol.org/> or whatever the
future may hold.

It was also pointed to me off-list that you can generate POST requests from
> Javascript in XHR, but not CONNECT requests.  So doing this over POSTs also
> makes it accessible to web apps.  (`emscripten libssl.a` left as an
> exercise to the reader.)
>

It seems your threat model assumes an adversary who is an active
intermediary in your HTTP session.  If so, then this wouldn't seem to
protect the user against the threat.


>
>
> --Richard
>
>
> On Mon, Oct 30, 2017 at 6:43 PM, Ben Schwartz <bemasc@google.com> wrote:
>
>> I don't understand why ATLS allows the app to be less "aware" than HTTP
>> CONNECT.  I also don't understand how an ATLS client is closer to "one code
>> path" than HTTP CONNECT.  It seems to me that your description of client
>> behavior applies equally to ATLS and HTTP CONNECT.
>>
>> On Mon, Oct 30, 2017 at 6:38 PM, Richard Barnes <rlb@ipv.sx> wrote:
>>
>>> But I agree, it would be good to have some more clarity around use cases
>>> and why not other solutions.
>>>
>>> On Mon, Oct 30, 2017 at 6:37 PM, Richard Barnes <rlb@ipv.sx> wrote:
>>>
>>>> HTTP CONNECT is not great for some use cases because it requires the
>>>> app to be aware that it's dealing with a proxy.  It's simpler if you can
>>>> just have one code path that works whether your TLS is intermediated or
>>>> not.  With the solution outlined in the draft, you can just always ignore
>>>> the certificate the server sends in the first TLS connection (because it
>>>> might be from a MitM), and then do all your cert validation, pin checks,
>>>> etc. at the application layer.
>>>>
>>>> On Mon, Oct 30, 2017 at 6:26 PM, Ben Schwartz <bemasc@google.com>
>>>> wrote:
>>>>
>>>>> Why not use HTTP CONNECT?  Or rather, it would be helpful to have a
>>>>> section on when/why one would do this vs. CONNECT.
>>>>>
>>>>> On Mon, Oct 30, 2017 at 6:17 PM, Richard Barnes <rlb@ipv.sx> wrote:
>>>>>
>>>>>> Hey TLS folks,
>>>>>>
>>>>>> Owen, Max, and I have been kicking around some ideas for how to make
>>>>>> secure connections in environments where HTTPS is subject to MitM /
>>>>>> proxying.
>>>>>>
>>>>>> The below draft lays out a way to tunnel TLS over HTTPS, in hopes of
>>>>>> creating a channel you could use when you really need things to be private,
>>>>>> even from the local MitM.
>>>>>>
>>>>>> Feedback obviously very welcome.  Interested in whether folks think
>>>>>> this is a useful area in which to develop an RFC, and any thoughts on how
>>>>>> to do this better.
>>>>>>
>>>>>> Thanks,
>>>>>> --Richard
>>>>>>
>>>>>>
>>>>>> On Mon, Oct 30, 2017 at 3:47 PM, <internet-drafts@ietf.org> wrote:
>>>>>>
>>>>>>>
>>>>>>> A new version of I-D, draft-friel-tls-over-http-00.txt
>>>>>>> has been successfully submitted by Owen Friel and posted to the
>>>>>>> IETF repository.
>>>>>>>
>>>>>>> Name:           draft-friel-tls-over-http
>>>>>>> Revision:       00
>>>>>>> Title:          Application-Layer TLS
>>>>>>> Document date:  2017-10-30
>>>>>>> Group:          Individual Submission
>>>>>>> Pages:          20
>>>>>>> URL:            https://www.ietf.org/internet-
>>>>>>> drafts/draft-friel-tls-over-http-00.txt
>>>>>>> Status:         https://datatracker.ietf.org/
>>>>>>> doc/draft-friel-tls-over-http/
>>>>>>> Htmlized:       https://tools.ietf.org/html/d
>>>>>>> raft-friel-tls-over-http-00
>>>>>>> Htmlized:       https://datatracker.ietf.org/
>>>>>>> doc/html/draft-friel-tls-over-http-00
>>>>>>>
>>>>>>>
>>>>>>> Abstract:
>>>>>>>    Many clients need to establish secure connections to application
>>>>>>>    services but face challenges establishing these connections due to
>>>>>>>    the presence of middleboxes that terminate TLS connections from
>>>>>>> the
>>>>>>>    client and restablish new TLS connections to the service.  This
>>>>>>>    document defines a mechanism for transporting TLS records in HTTP
>>>>>>>    message bodies between clients and services.  This enables clients
>>>>>>>    and services to establish secure connections using TLS at the
>>>>>>>    application layer, and treat any middleboxes that are intercepting
>>>>>>>    traffic at the network layer as untrusted transport.  In short,
>>>>>>> this
>>>>>>>    mechanism moves the TLS handshake up the OSI stack to the
>>>>>>> application
>>>>>>>    layer.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Please note that it may take a couple of minutes from the time of
>>>>>>> submission
>>>>>>> until the htmlized version and diff are available at tools.ietf.org.
>>>>>>>
>>>>>>> The IETF Secretariat
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> TLS mailing list
>>>>>> TLS@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/tls
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>