Re: [TLS] Collisions (Re: Nico's suggestions - Re: Consensus Call:

Martin Rex <> Tue, 11 May 2010 16:41 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E63C63A69E4 for <>; Tue, 11 May 2010 09:41:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -7.775
X-Spam-Status: No, score=-7.775 tagged_above=-999 required=5 tests=[AWL=-0.126, BAYES_50=0.001, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id p0SdrrTfzjtX for <>; Tue, 11 May 2010 09:41:12 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 6094C3A6A0A for <>; Tue, 11 May 2010 09:41:06 -0700 (PDT)
Received: from by (26) with ESMTP id o4BGerEZ011026 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 11 May 2010 18:40:53 +0200 (MEST)
From: Martin Rex <>
Message-Id: <>
To: (Nicolas Williams)
Date: Tue, 11 May 2010 18:40:52 +0200 (MEST)
In-Reply-To: <> from "Nicolas Williams" at May 11, 10 10:21:54 am
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] Collisions (Re: Nico's suggestions - Re: Consensus Call:
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: Tue, 11 May 2010 16:41:14 -0000

Nicolas Williams wrote:
> > I wanted to avoid the cache of the server and client to get out-of-sync,
> > and the use of a sha-1 hash value over the real data instead of that
> > data should be sufficiently robust so that the server will send the
> > real data in case the clients cached value differs from what the
> > server would normally send.
> I don't see how to recover from collisions, transparently to apps,
> without either adding round-trips, which is supposed to be a big no-no,
> or making handshakes retriable (I'm assuming they aren't).

A theoretical possibility would be some kind of "epoch" counter by
the server (or more general "peer", when caching is later extended
to apply to client-side handshake data as well).  The server would
have to bump that counter whenever it knows (or can not rule out)
that the cachable data has changed.

> > It is generally impossible to recover from a TLS handshake failure.
> Well, the app can retry.
> Also, StartTLS protocols might be able to retry without the application
> having to disconnect/reconnect.
> > It normally requires closure of the existing connection and opening
> > of a new connection because it is completely unspecified how to
> > recover from a TLS handshake failure on a connection (and how to
> > clear the network pipe from unprocessed data from the previous handshake).
> It's easy to clear the "pipe" since the records have lengths.

There is *NO* guarantee that there are _only_ valid and complete TLS records
left in the pipe.

Flushing an orphaned closure alert is something that may be used to clear
a TLS connection after successful communication and a closure alert
but the current TLS spec doesn't provide grounds for interoperably clearing
a connection from residue of a failed TLS handshake.  It amounts to
heuristics based on good faith.

> > If a client-side proxy traversal is involved, a full app-level proxy
> > handshake is required.  If proxy traversal requires an OTP authentication,
> > it will be completely impossible without user interaction.
> Is there such a thing as proxies that require OTP for authentication?

I think that SOCKS has been used with OTP authentication.

TLS does't imply HTTP-over-TLS and client-side proxy doesn't imply
HTTP-proxy with CONNECT method and header-based authentication.