Re: [TLS] Next protocol negotiation

Adam Langley <> Wed, 20 January 2010 16:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D08823A6837 for <>; Wed, 20 Jan 2010 08:52:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -106.31
X-Spam-Status: No, score=-106.31 tagged_above=-999 required=5 tests=[AWL=-0.333, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id BZtg2Qpzh-lL for <>; Wed, 20 Jan 2010 08:52:41 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 939383A6823 for <>; Wed, 20 Jan 2010 08:52:40 -0800 (PST)
Received: from ( []) by with ESMTP id o0KGqZDd015603 for <>; Wed, 20 Jan 2010 16:52:35 GMT
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; s=beta; t=1264006355; bh=zIu5DvuTawucP0rufBQz2Q7JxMY=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=bUCkNtSFa3KBcSx2lemhaFT5TIcsPcu3GBAbP3xuXsm5s0xMHOMJRUnObQZGnyffR eAGLPRLnqjdwUHdhJYjmQ==
DomainKey-Signature: a=rsa-sha1; s=beta;; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:x-system-of-record; b=VVL8dNDa/3bFkLFb9I0icpBUj0k+75vAdRXFEjHvpKVqjYVveunTVLLDOCuBwIS3P 94rUkDKangxsvNGwKb7Zg==
Received: from pxi41 ( []) by with ESMTP id o0KGqXLo020889 for <>; Wed, 20 Jan 2010 08:52:34 -0800
Received: by pxi41 with SMTP id 41so4097315pxi.27 for <>; Wed, 20 Jan 2010 08:52:33 -0800 (PST)
MIME-Version: 1.0
Received: by with SMTP id e9mr156984wfa.62.1264006352867; Wed, 20 Jan 2010 08:52:32 -0800 (PST)
In-Reply-To: <>
References: <> <> <> <> <> <>
Date: Wed, 20 Jan 2010 08:52:32 -0800
Message-ID: <>
From: Adam Langley <>
To: Marsh Ray <>
Content-Type: text/plain; charset="UTF-8"
X-System-Of-Record: true
Subject: Re: [TLS] Next protocol negotiation
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 20 Jan 2010 16:52:42 -0000

On Wed, Jan 20, 2010 at 8:26 AM, Marsh Ray <> wrote:
> Adam Langley wrote:
> One point of view is that firewall admins are ports because of their
> intentional policies and it is their right to control what goes on on
> their own network. Port 443 is going to be less useful over time as more
> sites deploy SSL-inspecting proxies.

Organisations that deploy intercepting proxies and port blocking
middleware (etc) have reasonable policy goals that they are trying to
implement. These people, for the most part, are not bad nor evil.

But one cannot expect them to understand the value of the end-to-end
principle. They are evaluating different solutions and balancing cost
and utility, as it effects them. It turns out that many of them end up
choosing networking hardware for caching, virus-scanning, content
control etc.

These network based solutions can be cheap, but they achieve these
cost reductions, in part, by imposing negative externalities on the
rest of the world. It's the case these days that HTTP traffic will
usually be 'transparently' intercepted at least once. DNS traffic is
likewise adulterated, as are many other protocols. Because of this,
protocol advances are delayed or lost. (HTTP pipelining is one
example, there are many others including our own SDCH[1]).
Unfortunately, these losses to the world are non-obvious to many and
hard to measure.

TLS is attractive because it is obviously much more resistant to these
machinations. (I'm aware that such devices do exist to intercept SSL,
but they should hopefully be intrinsically more limited.)

I admit that by using TLS we are bypassing (preferably) these
middleware boxes. Because of this, the cost/benefit analysis of these
boxes will hopefully shift so that people start to look for other
solutions. We know that we'll have to provide alternatives, but these
can be designed so as not to consign the public Internet to slow
stagnation at the bottom of the protocol stack.


> Port 443 to a proxy server with the CONNECT verb usually works.
> It is rumored that many firewalls will pass anything over port 53.
> On many corporate Windows PCs, the 'proxy server' info available in the
> registry is the only reliable way to make outbound connections.

Port 53 is not as clean as one might hope. CONNECT and port 443 often
works, but then we have the same issue as we currently face: how to
disambiguate protocols when the TCP port mechanism is unavailable.
Next protocol negotiation is our proposed solution.

> Thank you guys for caring about 200ms of my finite lifetime.

You're welcome although, as noted, the actual delay usually ends up
being several multiples for web pages as subresource discovery is
slowed down for other domains.