Re: [TLS] Last Call: draft-ietf-tls-rfc4366-bis (Transport Layer

Simon Josefsson <> Thu, 01 October 2009 10:59 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 395D33A682E for <>; Thu, 1 Oct 2009 03:59:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.56
X-Spam-Status: No, score=-2.56 tagged_above=-999 required=5 tests=[AWL=0.039, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id P7hm6X4cIJV7 for <>; Thu, 1 Oct 2009 03:59:14 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 06C903A6767 for <>; Thu, 1 Oct 2009 03:59:13 -0700 (PDT)
Received: from ( []) (authenticated bits=0) by (8.14.3/8.14.3/Debian-5) with ESMTP id n91B0Yj3006323 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 1 Oct 2009 13:00:36 +0200
From: Simon Josefsson <>
References: <> <>
OpenPGP: id=B565716F; url=
Date: Thu, 01 Oct 2009 13:00:34 +0200
In-Reply-To: <> (Martin Rex's message of "Wed, 30 Sep 2009 16:54:14 +0200 (MEST)")
Message-ID: <>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Virus-Scanned: clamav-milter 0.95.2 at yxa-v
X-Virus-Status: Clean
Subject: Re: [TLS] Last Call: draft-ietf-tls-rfc4366-bis (Transport Layer
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: Thu, 01 Oct 2009 10:59:15 -0000

Martin Rex <> writes:

> Blumenthal, Uri wrote:
>> In my understanding, TLS-established server_name should be
>> enforced by the server.
>> And Martin - I couldn't disagree more with you. The whole point of
>> using TLS is to enforce who can access what. So the client makes sure
>> he accesses the right server, the server makes sure he grants access
>> to the right pages on the right virtual host. And if your server
>> doesn't do that - please kindly tell me what commercial or
>> freeware product it is included in, so I can avoid buying or
>> using it in the future.
> There seems to be a significant misunderstanding.
> The Host header field of an HTTP request is a detail of an
> application protocol.  The hostname conveyed by the TLS extension
> server name indication (SNI) happens at a competely different
> protocol layer.
> The difference becomes obvious when you add reverse proxies
> into the picture (those which terminate the TLS wrapping).
> Conceptually, the Host: header field of a HTTP request is
> part of the URL.  If a reverse proxy perform URL rewriting,
> it may as well have to rewrite Host: header fields.  That
> depends entirely on the backend architecture of each
> particular software installation.
> Whether or not an application may want to make consistency
> checks between a Host: Header field and a hostname received
> via SNI at the specific point of the backend architecture
> where TLS was terminated depends entirely on the backend
> architecture, and is an application issue.

I believe this wording in RFC 4366bis makes it a TLS issue:

   If the server_name is established in the TLS session handshake, the
   client SHOULD NOT attempt to request a different server name at the
   application layer.

I believe there are two options:

1) Either remove all requirements on application behaviour from 4366bis
   (including the text above) and explicitly defer such discussions to
   other documents.

2) Add the text I proposed to make servers actually validate proper
   client behaviour.

I went for 2) assuming that the text above was intentional, but I share
your arguments for going with approach 1).