Re: [TLS] simplistic renego protection

Stefan Santesson <stefan@aaa-sec.com> Sat, 21 November 2009 08:28 UTC

Return-Path: <stefan@aaa-sec.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 A5DAE3A6851 for <tls@core3.amsl.com>; Sat, 21 Nov 2009 00:28:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.929
X-Spam-Level:
X-Spam-Status: No, score=-1.929 tagged_above=-999 required=5 tests=[AWL=0.320, BAYES_00=-2.599, HELO_EQ_SE=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 8rkgJJQXDrk0 for <tls@core3.amsl.com>; Sat, 21 Nov 2009 00:28:21 -0800 (PST)
Received: from s87.loopia.se (s87.loopia.se [194.9.94.111]) by core3.amsl.com (Postfix) with ESMTP id CC74B3A689B for <tls@ietf.org>; Sat, 21 Nov 2009 00:28:19 -0800 (PST)
Received: from s57.loopia.se (s34.loopia.se [194.9.94.70]) by s87.loopia.se (Postfix) with ESMTP id 175C6289D4B for <tls@ietf.org>; Sat, 21 Nov 2009 09:28:18 +0100 (CET)
Received: (qmail 2244 invoked from network); 21 Nov 2009 08:28:15 -0000
Received: from 213-64-142-247-no153.business.telia.com (HELO [192.168.1.3]) (stefan@fiddler.nu@[213.64.142.247]) (envelope-sender <stefan@aaa-sec.com>) by s57.loopia.se (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <david-sarah@jacaranda.org>; 21 Nov 2009 08:28:15 -0000
User-Agent: Microsoft-Entourage/12.23.0.091001
Date: Sat, 21 Nov 2009 09:28:14 +0100
From: Stefan Santesson <stefan@aaa-sec.com>
To: David-Sarah Hopwood <david-sarah@jacaranda.org>, tls@ietf.org
Message-ID: <C72D632E.6830%stefan@aaa-sec.com>
Thread-Topic: [TLS] simplistic renego protection
Thread-Index: AcpqhJFVGhG8+/MaDUKIzLedcJ5JLA==
In-Reply-To: <4B06E2D7.2040302@jacaranda.org>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Subject: Re: [TLS] simplistic renego protection
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: Sat, 21 Nov 2009 08:28:21 -0000

On 09-11-20 7:41 PM, "David-Sarah Hopwood" <david-sarah@jacaranda.org>
wrote:

>> One example is if authentication is performed with proper channel binding in
>> a layer above TLS and the service is provided under that security context.
> 
> I'm skeptical. How can "proper channel binding" be done correctly in a
> layer above TLS, if the TLS library merges renegotiated sessions?
> Since the session merging will result in the client and server's state
> at the higher layer(s) being out of sync, nothing can be assumed about
> the correct functioning of those layers.

The problem occurs on the clients initial handshake, being done in the
clear, while the MITM is feeding this into a renegotiation with the server.

As this attack has been described, once the client and server has concluded
an end-to-end handshake, the window for the attacker to do bad stuff is
closed. All renegotiations are safe from this point on.

The very act of channel binding, binds authentication of the client to
unique properties of the TLS channel. Thus,  successful channel binding
ensures that the client has concluded its first handshake (or it would not
have anything to bind to). It also ensures that the TLS channel is carried
end-to-end (or else channel binding would fail).

So according to the logic above, successful channel binding would prove that
the window for the attacker to do bad stuff is gone.

/Stefan