Re: [TLS] New cached-info draft 09 posted

Stefan Santesson <stefan@aaa-sec.com> Tue, 13 July 2010 16:07 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 7F9693A6A18 for <tls@core3.amsl.com>; Tue, 13 Jul 2010 09:07:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.249
X-Spam-Level:
X-Spam-Status: No, score=-2.249 tagged_above=-999 required=5 tests=[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 mYpwxk1hbmMb for <tls@core3.amsl.com>; Tue, 13 Jul 2010 09:07:36 -0700 (PDT)
Received: from s87.loopia.se (s87.loopia.se [194.9.94.112]) by core3.amsl.com (Postfix) with ESMTP id 747933A699C for <tls@ietf.org>; Tue, 13 Jul 2010 09:07:35 -0700 (PDT)
Received: from s29.loopia.se (s34.loopia.se [194.9.94.70]) by s87.loopia.se (Postfix) with ESMTP id 4BA0D41B692 for <tls@ietf.org>; Tue, 13 Jul 2010 18:07:49 +0200 (CEST)
Received: (qmail 30240 invoked from network); 13 Jul 2010 16:07:42 -0000
Received: from unknown (HELO [192.168.1.2]) (stefan@fiddler.nu@[85.235.2.114]) (envelope-sender <stefan@aaa-sec.com>) by s29.loopia.se (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <mrex@sap.com>; 13 Jul 2010 16:07:42 -0000
User-Agent: Microsoft-Entourage/12.25.0.100505
Date: Tue, 13 Jul 2010 18:07:33 +0200
From: Stefan Santesson <stefan@aaa-sec.com>
To: mrex@sap.com, Marsh Ray <marsh@extendedsubset.com>
Message-ID: <C8625BE5.C8C1%stefan@aaa-sec.com>
Thread-Topic: [TLS] New cached-info draft 09 posted
Thread-Index: AcsipYBw4yjzwFKop06nWSOb40Eunw==
In-Reply-To: <201007131544.o6DFigWr026771@fs4113.wdf.sap.corp>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Cc: tls@ietf.org
Subject: Re: [TLS] New cached-info draft 09 posted
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: Tue, 13 Jul 2010 16:07:37 -0000

How about MUST use SHA-1 for TLS <1.2 and the proposed solution for =< 1.2?

/Stefan


On 10-07-13 5:44 PM, "Martin Rex" <mrex@sap.com> wrote:

> Marsh Ray wrote:
>> 
>> On 07/13/2010 09:27 AM, Stefan Santesson wrote:
>>> Marsh,
>>> 
>>> I would rather fix the issue with the following updated text:
>>> 
>>> "The hash algorithm used to calculate hash values SHALL be the Finished
>>> message hash algorithm of the handshake exchange from which the hashed
>>> information was cached. The Finished message hash algorithm in this context
>>> is the hash algorithm used to hash handshake messages in the calculation of
>>> verify_data (i.e. Hash(handshake_messages) as defined in section 7.4.9 of
>>> RFC 5246)."
>>> 
>>> I see no reason to involve the PRF function here. It only adds unnecessary
>>> complexity as far as I can see.
>> 
>> Is this intended to be a TLS 1.2-only feature?
> 
> I do not see a convincing argument to cripple this extension to TLSv1.2,
> The idea of TLS extensions is that they can be added to an existing
> implementation of TLS, and the installed base of pre-TLSv1.2 is huge.
> 
>> 
>> If not, how is it to be interpreted for 1.0 and 1.1? They don't use this
>> "Hash(handshake_messages)" definition because the unified hash mechanism
>> was introduced in 1.2.
> 
> Spelling it out for all three existing TLS protocol versions might
> avoid confusions and incorrect conclusions.
> for TLSv1.0 & TLSv1.1 use SHA-1, for TLSv1.2 use SHA-256.
> 
> 
>> 
>> To me, the PRF seems simpler because it's consistently defined in each
>> TLS version.
> 
> How come?
> 
> From the TLS spec:
> 
>        P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) +
>                               HMAC_hash(secret, A(2) + seed) +
>                               HMAC_hash(secret, A(3) + seed) + ...
>        A(0) = seed
>        A(i) = HMAC_hash(secret, A(i-1))
> 
> 
> There is neither a secret nor a seed involved in the cache identifier,
> and we also do not need an arbitrary length output, so the PRF() looks
> like a square peg to a round hole.
> 
> What we wanted is a hash over the omitted handshake data, not unlike
> what the certificate URL extension does.
> 
> The original idea is about caching data from a previous handshake
> (which shares some characteristics with TLS session caching) and
> caching on one side only (which shares some characteristics
> with the TLS session ticket extension).  When used for caching
> it is sufficient when the client learns the hash algorithm to use
> on receipt of the ServerHello handshake message that creates
> the cache entry.
> 
> 
> -Martin