Re: [TLS] Unifying tickets and sessions

Richard Fussenegger <richard@fussenegger.info> Thu, 23 October 2014 22:52 UTC

Return-Path: <richard@fussenegger.info>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 19F1F1A8731 for <tls@ietfa.amsl.com>; Thu, 23 Oct 2014 15:52:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WZwshnR7UGUh for <tls@ietfa.amsl.com>; Thu, 23 Oct 2014 15:52:46 -0700 (PDT)
Received: from mx208.easyname.com (mx208.easyname.com [212.232.25.164]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E3121A7016 for <tls@ietf.org>; Thu, 23 Oct 2014 15:52:46 -0700 (PDT)
Received: from 89-26-76-175.goll.dyn.salzburg-online.at ([89.26.76.175] helo=[192.168.0.11]) by mx.easyname.eu with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <richard@fussenegger.info>) id 1XhRFK-0001XI-Jh for tls@ietf.org; Fri, 24 Oct 2014 00:52:44 +0200
Message-ID: <544986A3.6010801@fussenegger.info>
Date: Fri, 24 Oct 2014 00:52:19 +0200
From: Richard Fussenegger <richard@fussenegger.info>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: tls@ietf.org
References: <2A0EFB9C05D0164E98F19BB0AF3708C71D3A8C48AF@USMBX1.msg.corp.akamai.com> <CAK3OfOj9bZcSDdWhHGeGT0STg6XBkYaExW+rQFN-FFE4oaPLrw@mail.gmail.com> <54483C33.4000702@polarssl.org> <11886639.VyNDkQ3oKj@pintsize.usersys.redhat.com> <54493904.7010807@fussenegger.info> <20141023174537.GW19158@mournblade.imrryr.org> <5449463D.7080904@fussenegger.info> <20141023183637.GX19158@mournblade.imrryr.org> <54494F20.7060002@fussenegger.info> <20141023200702.GZ19158@mournblade.imrryr.org>
In-Reply-To: <20141023200702.GZ19158@mournblade.imrryr.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="------------ms040700050005050509010106"
X-ACL-Warn: X-DNSBL-v4bl
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/yrWuWoMek-uiJRGcf5UAwyFCvPs
Subject: Re: [TLS] Unifying tickets and sessions
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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/options/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, 23 Oct 2014 22:52:49 -0000

On 10/23/2014 10:07 PM, Viktor Dukhovni wrote:
> On Thu, Oct 23, 2014 at 08:55:28PM +0200, Richard Fussenegger wrote:
>> I didn't implement it but nginx requires 48 B otherwise it's not working and
>> that's definitely more than only key and mac. Maybe the complete thing is
>> broken in nginx then? [1]
>
> The reason nginx has 48 bytes is that it stores a 16 byte name,
> followed by a 16-byte (AES-128) key and a 16-byte HMAC secret.

Oh silly me, I could have found that myself: 
https://github.com/nginx/nginx/blob/master/src/event/ngx_event_openssl.h#L99-L107

> Postfix uses 16 + 32 + 32 = 80, because the key is for AES-256 and
> the HMAC key for SHA2-256 is also chosen to be 256 bits.
>
> The nginx implementation can be "strengthened" from AES-128 to
> AES-256 just in case someone wants to burn a few million years of
> a 4GW power plant to brute force a session ticket on a classical
> computer, or future quantum computers can search a 2^128 key space
> in 2^64 time.

But then nginx needs additional code, as you wrote earlier. It would be 
better (and that's also what the nginx devs want) if the library takes 
care of all that. Right now nginx has not a single line of code for 
session tickets (beside that function for external key sets). Well, we 
can only hope that you might take care of that and commit some OpenSSL 
code. ;-)

Richard