Re: [TLS] New Cached info draft

Stefan Santesson <> Tue, 30 March 2010 18:10 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 461EB3A6978 for <>; Tue, 30 Mar 2010 11:10:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.492
X-Spam-Status: No, score=-1.492 tagged_above=-999 required=5 tests=[AWL=0.627, BAYES_00=-2.599, DNS_FROM_OPENWHOIS=1.13, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id frxVAtIdY8pL for <>; Tue, 30 Mar 2010 11:10:00 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 5F9783A68E5 for <>; Tue, 30 Mar 2010 11:09:59 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 907D436F4B0 for <>; Tue, 30 Mar 2010 20:08:56 +0200 (CEST)
Received: (qmail 7705 invoked from network); 30 Mar 2010 18:08:49 -0000
Received: from (HELO []) ([]) (envelope-sender <>) by (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for <>; 30 Mar 2010 18:08:49 -0000
User-Agent: Microsoft-Entourage/
Date: Tue, 30 Mar 2010 20:08:46 +0100
From: Stefan Santesson <>
To: <>
Message-ID: <>
Thread-Topic: [TLS] New Cached info draft
Thread-Index: AcrQNAocgsmoL6JGJE2jmJlUC1YCTw==
In-Reply-To: <>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Subject: Re: [TLS] New Cached info draft
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 30 Mar 2010 18:10:01 -0000


On 10-03-30 6:23 PM, "Martin Rex" <> wrote:

> Stefan Santesson wrote:
>> The most important reason being that the server need to reply with the same
>> extension that the client sends, everything else is a violation of TLS.
> To me it sounded like Brian disliked the ServerHelloExtension
> to be allowed empty on the initial discovery, rather than telling
> the client for which handshake data the server supports caching.
> I do not think that he suggested to not return the extension _and_
> replace cached data.

I interpreted the ServerCachedInformation structure as a separate extension
sent only by the server.

>> On 10-03-30 5:34 PM, "Brian Smith" <> wrote:
>>> * The draft says that CachedInformation.cached_info can be up to (2^16-1)*9
>>> = 590KB in size. extension_data can't be larger than 64KB, so the max bound
>>> for the CachedInformation.cached_info array must be 7281 or less. But,
>>> really, sending more than a few hashes per type of cached info is likely to
>>> run into DoS countermeasures. It would be better to have the specification
>>> require and/or at least recommend that there not be more than one (or at
>>> most a few) hashes per information type in the client hello.
> To me, allowing the client to cache distinct values for the same
> server leads to cache management problems.  How should a client expire
> outdated content from his cache?  If the client only caches one item
> per "server:port" pair, then expiring of outdated cached information
> is a non-issue.

It's a non-issue in any case. A timer for example works well. Nothing
prevents the client to refuse caching more than one object per type and
server, but that restriction doesn't strike me as necessary.

>>> * The draft says "A present non-empty digest_value indicates that the server
>>> will honor caching of objects of the specified type that matches the present
>>> digest value." I don't see why this is necessary. The server should always
>>> be supporting the digests of the values that it most recently returned, for
>>> the information items it claims to support, so the semantics for empty
>>> digest_values in the server extension are good enough.
> I would also appreciate semantics as suggested here.
> Allow the server to return a ServerHelloExtension that explicitly list
> the types of information for which the server supports caching, but
> _without_ a digest_value, both on discovery and on actual use of
> the caching extension by the client, so that the server does not
> have to pre-calculate this data of future handshake message
> while it is composing ServerHello.

The server doesn't have to send digest values in current draft.

> -Martin