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

Martin Rex <mrex@sap.com> Tue, 11 May 2010 16:41 UTC

Return-Path: <mrex@sap.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E63C63A69E4 for <tls@core3.amsl.com>; Tue, 11 May 2010 09:41:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.775
X-Spam-Level:
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 mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p0SdrrTfzjtX for <tls@core3.amsl.com>; Tue, 11 May 2010 09:41:12 -0700 (PDT)
Received: from smtpde03.sap-ag.de (smtpde03.sap-ag.de [155.56.68.140]) by core3.amsl.com (Postfix) with ESMTP id 6094C3A6A0A for <tls@ietf.org>; Tue, 11 May 2010 09:41:06 -0700 (PDT)
Received: from mail.sap.corp by smtpde03.sap-ag.de (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 <mrex@sap.com>
Message-Id: <201005111640.o4BGeqFZ020630@fs4113.wdf.sap.corp>
To: Nicolas.Williams@oracle.com (Nicolas Williams)
Date: Tue, 11 May 2010 18:40:52 +0200 (MEST)
In-Reply-To: <20100511152153.GF9429@oracle.com> 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
Cc: paul.hoffman@vpnc.org, tls@ietf.org
Subject: Re: [TLS] Collisions (Re: Nico's suggestions - Re: Consensus Call:
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mrex@sap.com
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/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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, 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
handshake http://tools.ietf.org/html/rfc5246#section-7.2.1
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.


-Martin