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

Stefan Santesson <stefan@aaa-sec.com> Thu, 13 May 2010 08:01 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 3778C3A6B7E for <tls@core3.amsl.com>; Thu, 13 May 2010 01:01:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.655
X-Spam-Level:
X-Spam-Status: No, score=-2.655 tagged_above=-999 required=5 tests=[AWL=0.594, BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_LOW=-1]
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 BgMyCXMuZGsB for <tls@core3.amsl.com>; Thu, 13 May 2010 01:01:43 -0700 (PDT)
Received: from s87.loopia.se (s87.loopia.se [194.9.94.112]) by core3.amsl.com (Postfix) with ESMTP id 2BCDA3A6B9A for <tls@ietf.org>; Thu, 13 May 2010 01:01:07 -0700 (PDT)
Received: from s29.loopia.se (s34.loopia.se [194.9.94.70]) by s87.loopia.se (Postfix) with ESMTP id BF28937AC3E for <tls@ietf.org>; Thu, 13 May 2010 10:00:59 +0200 (CEST)
Received: (qmail 41120 invoked from network); 13 May 2010 08:00:56 -0000
Received: from 213-64-142-247-no153.business.telia.com (HELO [192.168.1.8]) (stefan@fiddler.nu@[213.64.142.247]) (envelope-sender <stefan@aaa-sec.com>) by s29.loopia.se (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <ynir@checkpoint.com>; 13 May 2010 08:00:56 -0000
User-Agent: Microsoft-Entourage/12.24.0.100205
Date: Thu, 13 May 2010 08:00:53 +0200
From: Stefan Santesson <stefan@aaa-sec.com>
To: Yoav Nir <ynir@checkpoint.com>, 'Marsh Ray' <marsh@extendedsubset.com>, Simon Josefsson <simon@josefsson.org>
Message-ID: <C8116235.ACB4%stefan@aaa-sec.com>
Thread-Topic: [TLS] Collisions (Re: Nico's suggestions - Re: Consensus Call:
Thread-Index: Acrx4kge2BcBmY74R7+Kap33WvFRwwAh/jWwAAIJ71o=
In-Reply-To: <006FEB08D9C6444AB014105C9AEB133FB48F1B5ABA@il-ex01.ad.checkpoint.com>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Cc: "Kemp, David P." <DPKemp@missi.ncsc.mil>, "tls@ietf.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
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, 13 May 2010 08:01:44 -0000

Very well put.
This is my thinking as well.

For the sake of completeness there is also the scenario:

- It can hijack the connection as a MITM and try to replace the list of
acceptable CAs to the client with another which somehow has a colliding
hash. This will however lead to handshake failure since finished calculation
will fail and nothing will be cached. Fail.

/Stefan


On 10-05-13 9:15 AM, "Yoav Nir" <ynir@checkpoint.com> wrote:

> I kind of fail to see where the discussion shifted. In fact we have NOT
> determined that *malicious* collision resistance is a concern.
> 
> A client connects to a server and caches the credentials. Next time it
> connects to the *same* server, it shows an extension that proves knowledge of
> the credentials. Assuming the credentials haven't changed, the server can skip
> sending the credentials, but still has to prove ownership by signing something
> or by decrypting the pre-master secret. So what could an attacker do?
> 
> - It can hijack the connection, and not accept the cached credentials, but
> then it would need to present credentials of its own. Fail.
> 
> - It can hijack the connection, and accept the cached credentials, but
> assuming it doesn't have the same public/private key pair, it will then not be
> able to sign or decrypt. If it does have the same public/private key pair, it
> could use the legitimate server's credentials anyway. Fail again.
> 
> - It could get the client to connect to his malicious server first. In some
> magical way he has acceptable credentials, which the client caches. What
> happens next is not relevant, because the attacker has already won, but for
> the sake of argument, let's go on. The next time, the client connects to the
> legitimate server. It tries to use the cached credentials, which somehow
> collide with the attackers' even though the public key is different (I don't
> think we could attack even CRC this way). So the legitimate server accepts the
> cached credentials, but the handshake fails, and the client clears the cache.
> 
> The third thing seems to succeed, but it depends on being able to predict a CA
> signature to such an extent, that you can make two certificates with a
> different public key collide in FNV, and it depends on being able to at least
> once dupe the client into thinking your server is the legitimate one. And all
> you get is a one-time DoS.
> 
> OK. So where's the real attack?
> 
> 
> -----Original Message-----
> From: tls-bounces@ietf.org [mailto:tls-bounces@ietf.org] On Behalf of Marsh
> Ray
> Sent: Wednesday, May 12, 2010 5:33 PM
> To: Simon Josefsson
> Cc: Kemp, David P.; tls@ietf.org
> Subject: Re: [TLS] Collisions (Re: Nico's suggestions - Re: Consensus Call:
> 
> On 5/12/2010 4:30 AM, Simon Josefsson wrote:
>> Marsh Ray <marsh@extendedsubset.com> writes:
>> 
>>> Alternatively, if we determine that indeed the non-collision-resistance
>>> of the hash function is the root of all remaining concerns that would be
>>> very positive. We could solve them all in one stroke with
>>> s/FNV-1a/SHA-256/g.
>> 
>> If collision-resistance is a required property (I'm not convinced yet),
>> I believe we need hash agility for the possibility that SHA-256 is weak.
> 
> But perhaps that agility already exists in the form of the protocol
> version negotiation.
> 
> TLS 1.2 appears to effectively depend on SHA-256 (at least in HMAC form)
> for the PRF. If that gets broken, we can probably not trust anything
> else negotiated in the handshake and a rev of the base protocol will be
> required to fix it anyway.
> 
> If bare SHA-256 is a concern, the hash could be defined as something
> like hmac_sha256("Cached Info", object_bytes).
> 
> Just a thought.
> 
> - Marsh
> 
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls