Re: [TLS] simplistic renego protection

Michael D'Errico <mike-list@pobox.com> Mon, 16 November 2009 18:35 UTC

Return-Path: <mike-list@pobox.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 7289A3A69BA for <tls@core3.amsl.com>; Mon, 16 Nov 2009 10:35:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.376
X-Spam-Level:
X-Spam-Status: No, score=-2.376 tagged_above=-999 required=5 tests=[AWL=0.223, BAYES_00=-2.599]
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 o14XMws2JcnJ for <tls@core3.amsl.com>; Mon, 16 Nov 2009 10:35:58 -0800 (PST)
Received: from sasl.smtp.pobox.com (a-pb-sasl-sd.pobox.com [64.74.157.62]) by core3.amsl.com (Postfix) with ESMTP id 6AA5E3A6AF4 for <tls@ietf.org>; Mon, 16 Nov 2009 10:35:58 -0800 (PST)
Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 8E3CE9D2E3 for <tls@ietf.org>; Mon, 16 Nov 2009 13:35:57 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=message-id :date:from:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; s=sasl; bh=PfV+Nlu1NG2p 0I9lDIYyS5O8Diw=; b=IS41ReoCqwMPREgBRh1lbLMPzvrSjLwrShTAEjgno5GZ u5ob9U43TFmi8W5r3ldA16Z//YsE62TkicbvYvuBL6uYHW9dVrFN8OEQ/4mOGKyF 6cdED5DVNFpWYNu0bkvO+5tHZpAHqVJnmPxiXRvfseN9lIJKHxqBPIlQG/zYLvY=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=message-id:date :from:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; q=dns; s=sasl; b=ZsHtr5 3KNLXR8aJ1t2aUzsg40S0w3dIbqYzqzMYMamOT1HNYG8SAFztBKSQuJ8ElXpEtOJ 4Ei89A/mnjmOvLomIvInKPpik1pfrzSRWSd3Pm8tMpRsFoEHZOkY5RugCDfm7sye t8W/+Bn8WcjavPNf+sJFlJnDzH7oTeXwrFEd8=
Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 8B6469D2E2 for <tls@ietf.org>; Mon, 16 Nov 2009 13:35:57 -0500 (EST)
Received: from administrators-macbook-pro.local (unknown [24.234.114.35]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 0767D9D2E1 for <tls@ietf.org>; Mon, 16 Nov 2009 13:35:55 -0500 (EST)
Message-ID: <4B019BC7.2080201@pobox.com>
Date: Mon, 16 Nov 2009 10:36:55 -0800
From: Michael D'Errico <mike-list@pobox.com>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: tls@ietf.org
References: <200911161029.nAGAT8uN019401@fs4113.wdf.sap.corp> <4B01923F.9020806@pobox.com> <4B019434.9020001@extendedsubset.com>
In-Reply-To: <4B019434.9020001@extendedsubset.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Pobox-Relay-ID: E17BC7BC-D2DE-11DE-891E-EF34BBB5EC2E-38729857!a-pb-sasl-sd.pobox.com
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: Mon, 16 Nov 2009 18:35:59 -0000

If a client doesn't check the server's certificate, it is subject to
any man-in-the-middle attack.  One of the requirements is that a client
verify the certificate.  If a client doesn't do that, how can we
possibly protect it???

I'm interested in providing the best defense to a client that is aware
of the MITM renegotiation problem when faced with having to interact
with possibly-unpatched servers.

Mike


Marsh Ray wrote:
> Michael D'Errico wrote:
>> The attack requires that there be a man-in-the-middle between the
>> client and server.  The MITM handshakes once with the server.  The
>> client then handshakes with the server via the MITM, so:
>>
>>   - the client sees the handshake as its initial handshake
>>   - the server sees the handshake as a renegotiation
>>
>> This is the point: the client is attacked on its *initial* handshake.
>>
>> Therefore the client needs to be protected on its *initial* handshake.
>>
>> It doesn't matter what happens after that.  If the client has completed
>> its initial handshake and there was no MITM, it is impossible for a MITM
>> to insert itself in the next handshake (i.e. a renegotiation).  So from
>> the client's point of view the only handshake it needs to be concerned
>> with (in terms of security not mechanics) is the initial one.
> 
> I hear this often enough that I don't argue with it every time,
> nevertheless...
> 
> There is another attack which is a mirror-image of this one, where the
> client sees a renegotiation but the server only sees one session.
> 
> One may dismiss this attack with the reasoning that "well it's the
> client's fault for not checking the cert at the right point". Perhaps
> for some specific protocol on TLS that may be true, but there doesn't
> appear to be anything the TLS protocol itself that requires clients to
> authenticate (rather than the other way round).
> 
> I strongly suspect many actual client applications are vulnerable to
> this attack.
> 
> For these reasons, I suggest that we are unsafe in concluding that all
> vulnerabilities can be fixed at the server.
> 
> - Marsh