Re: [TLS] New Cached info draft

Stefan Santesson <stefan@aaa-sec.com> Fri, 26 March 2010 00:36 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 70DA73A6949 for <tls@core3.amsl.com>; Thu, 25 Mar 2010 17:36:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.544
X-Spam-Level:
X-Spam-Status: No, score=-1.544 tagged_above=-999 required=5 tests=[AWL=0.575, BAYES_00=-2.599, DNS_FROM_OPENWHOIS=1.13, 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 uJID4UmWigdk for <tls@core3.amsl.com>; Thu, 25 Mar 2010 17:36:26 -0700 (PDT)
Received: from s87.loopia.se (s87.loopia.se [194.9.95.115]) by core3.amsl.com (Postfix) with ESMTP id 4204A3A696C for <tls@ietf.org>; Thu, 25 Mar 2010 17:36:25 -0700 (PDT)
Received: from s29.loopia.se (s34.loopia.se [194.9.94.70]) by s87.loopia.se (Postfix) with ESMTP id 281B3292A8F for <tls@ietf.org>; Fri, 26 Mar 2010 01:36:56 +0100 (CET)
Received: (qmail 37808 invoked from network); 26 Mar 2010 00:36:46 -0000
Received: from dhcp-wireless-open-abg-25-91.meeting.ietf.org (HELO [130.129.25.91]) (stefan@fiddler.nu@[130.129.25.91]) (envelope-sender <stefan@aaa-sec.com>) by s29.loopia.se (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <agl@imperialviolet.org>; 26 Mar 2010 00:36:46 -0000
User-Agent: Microsoft-Entourage/12.24.0.100205
Date: Thu, 25 Mar 2010 17:36:42 -0700
From: Stefan Santesson <stefan@aaa-sec.com>
To: Adam Langley <agl@imperialviolet.org>
Message-ID: <C7D14FAA.9999%stefan@aaa-sec.com>
Thread-Topic: [TLS] New Cached info draft
Thread-Index: AcrMfGefDFMM3Cl/n0+2EixxXg399Q==
In-Reply-To: <396556a21003251621q46c3966dr6442bc8abfc250ee@mail.gmail.com>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] New Cached info draft
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: Fri, 26 Mar 2010 00:36:27 -0000

Thanks for the review Adam,

Comments in line;


On 10-03-25 4:21 PM, "Adam Langley" <agl@imperialviolet.org> wrote:

> On Thu, Mar 25, 2010 at 10:55 AM, Stefan Santesson <stefan@aaa-sec.com> wrote:
>> Major changes:
>> - The 64 bit FNV-1 non-cryptographic hash is used to provide a digest over
>> cached data. All use of hash algorithms has been removed, so also all
>> elements of hash algorithm agility. The FNV-1 digest algorithm used in this
>> specification is defined in Annex A.
>> 
>> - It is now possible to query a server with an empty cached info extension
>> to find out if, and to what extent the server supports caching before the
>> client starts to cache data for that server.
>> 
>> - The data substitution syntax has been explicitly defined for both defined
>> object types
> 
> I knocked up patches for NSS (client and server) and for OpenSSL
> (server only) for this. (Available on request if anyone cares although
> the quality is currently "quick-hack").
> 
> One issue that I ran into: the representation of the FNV64 hash on the
> wire is unspecified. I assumed big-endian but it should be in the
> spec.
> 

Agree, It is big-endian and text is added.

> I think there's a typo in the first line of section 5.1 (it mentioned
> trusted_cas when I think it should be certificate_chain)
> 

Fixed.

> There are two section 5s.
> 

Fixed.

> Also, does a "digest calculated over the certificate_list element of a
> server side Certificate message" contain the three length bytes? I
> assumed not. To be clear, a certificate_list is prefixed with three
> length bytes and contains a series of certificate, each of which has
> its own three length bytes. It seems clear the the length bytes of the
> certificates should be included, but I omitted the initial three.
> 

Good question. This makes me realize that I have made an error in version 04
since I have removed the inner 3 byte length for the substitution syntax.


The correct syntax should be:

DigestInfo ASN.1Cert<1..2^24-1>;

struct {
    opaque digest_value<0..8>;
} DigestInfo;

struct {
    ASN.1Cert certificate_list<0..2^24-1>;
} Certificate;


The spec intended to specify that the whole certificate_list vector was
hashed, including the length bytes, but it makes absolutely sense to exclude
hashing the length bytes of the certificate_list vector.

I can clarify this if the list approves.

/Stefan

 


> 
> Cheers
> 
> AGL