Re: [TLS] Confirming consensus about one

Martin Rex <> Thu, 28 January 2010 15:07 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id DB97F3A6A1E for <>; Thu, 28 Jan 2010 07:07:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -10.249
X-Spam-Status: No, score=-10.249 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 0zpQSvkEPtxN for <>; Thu, 28 Jan 2010 07:07:40 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id A11D13A695C for <>; Thu, 28 Jan 2010 07:07:39 -0800 (PST)
Received: from by (26) with ESMTP id o0SF7jQN000487 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 28 Jan 2010 16:07:45 +0100 (MET)
From: Martin Rex <>
Message-Id: <>
Date: Thu, 28 Jan 2010 16:07:44 +0100 (MET)
In-Reply-To: <> from "Martin Rex" at Jan 28, 10 03:56:47 pm
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal07
X-SAP: out
Subject: Re: [TLS] Confirming consensus about one
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, 28 Jan 2010 15:07:41 -0000

Martin Rex wrote:
> Yoav Nir wrote:
> > 
> > A new version of TLS (4.0?  It's time to stop explaining that
> > three-point-one-means-one-point-zero) would have to be certified
> > again anyway, so it might as well change the way Finished is
> > calculated. Then you don't need either SCSV or RI.
> > 
> > Of course as long as you support older versions of TLS, you still
> > need them, but fully 4.0 handshakes will need neither SCSV nor RI.
> I could imagine that a part of the installed base might have an
> interop problems with protcol_versions where the major_number
> is != 0x03.  (I believe ours does). 
> In order to allow servers to perform some plausibility tests on
> the initial incoming data of a connection to recognize ClientHellos
> and distinguish them from e.g. HTTP GET/PUT/... the protocol_version
> at the record layer should IMHO use the lowest(!) protocol_version
> acceptable to the client.
> I'm also wondering about one thing I encountered not so long ago
> during interop tests:  when a Server aborts a handshake while
> processing the initial ClientHello on a connection, there seems
> to be an uncertainty what protocol_version that alert will
> use at the record layer and from which set of available alerts
> it will be chosen.
> If possible, the protocol_version for that alert (and therefore
> the set of avaiable alert numbers) should --if possible-- be chosen
> to match a protocol version _not_ exceeding the highest protocol_version
> proposed by the client in client_version.  There may be TLS server
> implementations that do not account for this yet.

Ooops, bad memories.

The confusion I ran into was different and may apply only to the
specific case that the highest protocol_version offered by the
client in ClientHello.client_version is lower than the lowest
protocol_version offered/allowed by the Server  (so the server
should send back the alert with a protocol version lower than
it would accept for communication).

The problem gets more complicated for clients that send (for whatever
reason) a client version  {0x03,0x00} (aka SSLv3).  SSLv3 does not
define an alert protocol_version(70).  But sending this alert value
anyway (_while_ using the 0x03,0x00 protocol version on the record
layer for the alert packet!) is maybe still a good idea.