Re: [TLS] TLS renegotiation issue

Florian Weimer <fweimer@bfk.de> Thu, 05 November 2009 18:40 UTC

Return-Path: <fweimer@bfk.de>
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 CD0EC28C110 for <tls@core3.amsl.com>; Thu, 5 Nov 2009 10:40:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[AWL=0.250, BAYES_00=-2.599, HELO_EQ_DE=0.35]
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 6XtItV+RDbe3 for <tls@core3.amsl.com>; Thu, 5 Nov 2009 10:40:01 -0800 (PST)
Received: from mx01.bfk.de (mx01.bfk.de [193.227.124.2]) by core3.amsl.com (Postfix) with ESMTP id 90A533A69F0 for <tls@ietf.org>; Thu, 5 Nov 2009 10:40:01 -0800 (PST)
Received: from mx00.int.bfk.de ([10.119.110.2]) by mx01.bfk.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) id 1N67Ft-0006lZ-KC; Thu, 05 Nov 2009 19:40:21 +0100
Received: by bfk.de with local id 1N67Ft-0002CR-Gw; Thu, 05 Nov 2009 18:40:21 +0000
To: Eric Rescorla <ekr@rtfm.com>
References: <73843DF9-EFCB-4B8D-913E-FE2235E5BDD3@rtfm.com> <d3aa5d00911051016p7a0cc508q2090b86de30a50d5@mail.gmail.com>
From: Florian Weimer <fweimer@bfk.de>
Date: Thu, 05 Nov 2009 18:40:21 +0000
In-Reply-To: <d3aa5d00911051016p7a0cc508q2090b86de30a50d5@mail.gmail.com> (Eric Rescorla's message of "Thu\, 5 Nov 2009 10\:16\:11 -0800")
Message-ID: <82aaz0rf1m.fsf@mid.bfk.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] TLS renegotiation issue
X-BeenThere: tls@ietf.org
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." <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: Thu, 05 Nov 2009 18:40:02 -0000

* Eric Rescorla:

> I now have a draft extension up at:
>
> https://svn.resiprocate.org/rep/ietf-drafts/ekr/draft-rescorla-tls-renegotiate.txt
> https://svn.resiprocate.org/rep/ietf-drafts/ekr/draft-rescorla-tls-renegotiate.xml
>
> Comments welcome.

Most email addresses are incorrect. 8-)

Based on the attack description in the draft, the server can implement
a layering violation and detect a splicing which crosses an
application-layer record boundary (which should result in a hard
error).  If the splicing does not cross a boundary, there is not
really any ambiguity, just a succession of differently authenticated
application records.

What seems to happen in vulnerable applications I've created in a
previous life (but I have no longer access to them, so I can't check
for sure) is that in a HTTP context, you tend to perform a sub-request
within the server to get the authentication information which only
applies to future requests, and use that to answer the
not-really-authenticated request as if it were authenticated.  As a
result, you're still vulnerable even if you refuse to renegotiation in
the middle of an HTTP request message.

So avoiding protocol changes seems to require an API change (to expose
part of the TLS record layer to the application layer, so that
byte-exact authentication information is available) plus extensive
application code changes, potentially resulting in additional
client/server round-trips.

Therefore, I think a protocol change is less invasive (assuming that
it is essentially free-for-all-uses IPR-wise).

-- 
Florian Weimer                <fweimer@bfk.de>;
BFK edv-consulting GmbH       http://www.bfk.de/
Kriegsstra├če 100              tel: +49-721-96201-1
D-76133 Karlsruhe             fax: +49-721-96201-99