Re: [TLS] ChaCha and IVs

Nikos Mavrogiannopoulos <nmav@redhat.com> Tue, 04 March 2014 17:57 UTC

Return-Path: <nmav@redhat.com>
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 39DA11A024A for <tls@ietfa.amsl.com>; Tue, 4 Mar 2014 09:57:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.449
X-Spam-Level:
X-Spam-Status: No, score=-7.449 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.547, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 dZCiorxqv7rX for <tls@ietfa.amsl.com>; Tue, 4 Mar 2014 09:57:29 -0800 (PST)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by ietfa.amsl.com (Postfix) with ESMTP id 99D8E1A0262 for <tls@ietf.org>; Tue, 4 Mar 2014 09:57:29 -0800 (PST)
Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s24HvM3s030026 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 4 Mar 2014 12:57:23 -0500
Received: from [10.34.2.127] (dhcp-2-127.brq.redhat.com [10.34.2.127]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s24HvJ86014067 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 4 Mar 2014 12:57:21 -0500
Message-ID: <1393955839.20861.20.camel@dhcp-2-127.brq.redhat.com>
From: Nikos Mavrogiannopoulos <nmav@redhat.com>
To: Stephen Kent <kent@bbn.com>
Date: Tue, 04 Mar 2014 18:57:19 +0100
In-Reply-To: <53160513.20703@bbn.com>
References: <53160513.20703@bbn.com>
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/QZQiguMlpc5FPJl5EQt5ilEoahw
Cc: tls@ietf.org
Subject: Re: [TLS] ChaCha and IVs
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: Tue, 04 Mar 2014 17:57:32 -0000

On Tue, 2014-03-04 at 11:53 -0500, Stephen Kent wrote:

> I reviewed several reasons for this, based on discussions that took place in
> the IPsec WG several years ago, when we considered the same topic for 
> AES counter
> mode use with ESP. We decided to require each packet to carry an IV 
> independent of
> the ESP sequence number (or extended sequence number). Slide 5 of my 
> presentation
> enumerates reasons for not re-using a packet/record sequence number for 
> an IV.

Hello,
 I believe there advantages in using the record sequence number for an
IV _in TLS_, but before mentioning them, I'll make some comments on your
points.
 
> From a security assurance perspective, an IV based on a 
> protocol-supplied value expands the scope of what has to 
> be analyzed (to ensure uniqueness) 

In TLS the record sequence numbers are unique by definition, thus any
analysis is simplified.

> An algorithm implementation submitted for FIPS evaluation 
> must be independently evaluable 

>From the wording I don't understand how this is relevant to your point
for nonces. Could you elaborate?

> If DTLS and ESP adopt different IV approaches for the 
> same algorithm/mode, chip vendors have problems 

By problems I suppose that you mean that they have to implement a module
that works with both. 

> In some cases, a non-counter IV approach can be faster 
> than a counter (in hardware) 

I don't think that this is a good argument against implicit nonces. In
software the counter IV approach is always faster.

> Allowing each sender to choose its own IV generation 
> approach is more flexible 

Indeed, but flexibility in security protocols isn't an advantage, and I
don't see what is the actual gain from such flexibility.


So now for the arguments for using the record sequence number as (part
of) the nonce in TLS:
* It reduces the exchanged data (by 12 or 8 bytes - depending on the
explicit nonce size). This is particularly important in DTLS where the
typical record size is less than 1400 bytes.

* It ensures that the nonce is unique even until 2^64-1 records are
exchanged (which is the termination limit for TLS sessions).

regards,
Nikos