Re: [TLS] [perpass] Let's remove gmt_unix_time from TLS

Nick Mathewson <nickm@torproject.org> Wed, 11 September 2013 16:15 UTC

Return-Path: <nick.a.mathewson@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 82AD121E813F; Wed, 11 Sep 2013 09:15:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.73
X-Spam-Level:
X-Spam-Status: No, score=-1.73 tagged_above=-999 required=5 tests=[AWL=0.248, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2p9qw3w96Elp; Wed, 11 Sep 2013 09:15:10 -0700 (PDT)
Received: from mail-qc0-x236.google.com (mail-qc0-x236.google.com [IPv6:2607:f8b0:400d:c01::236]) by ietfa.amsl.com (Postfix) with ESMTP id 8FBC221E80B6; Wed, 11 Sep 2013 09:14:58 -0700 (PDT)
Received: by mail-qc0-f182.google.com with SMTP id n4so2990391qcx.13 for <multiple recipients>; Wed, 11 Sep 2013 09:14:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=0kJ9vsCEjKwxchKhmuongcbGoKhLmSVlP1J6u5wpXe4=; b=aKMrQxnEiX59F5ctAGnk9nKjb/jEIWg3g2ZeOzoOsJnnOQQsNlisZhRJXScSLkVKPA yrOVJ31e+yVlcvcJdVf6uBWkEPwMUxD/tPpXxlnaTvbn40CWGzvgdIkIdcv0/xRQ6OrQ smzpLz6ns2btfo4ssyIzHOeAOO8nknozQV+6pMSBQ82ar8algiv89bn1Pm3arx05mdTt ZsJEiIe2jhZYT3O6zSVqCERqChYJzNrfzilZf7vXijz4T77W1sBlXf0dWcbUfYOaN2lZ doIKThwkxd6BPj02PwOVNaqmCEBSkEkUndtjqr0QjVWoBZzNAkyP5ecictMblCK/JQkF 1sDA==
MIME-Version: 1.0
X-Received: by 10.49.71.106 with SMTP id t10mr4765327qeu.26.1378916097643; Wed, 11 Sep 2013 09:14:57 -0700 (PDT)
Sender: nick.a.mathewson@gmail.com
Received: by 10.140.22.81 with HTTP; Wed, 11 Sep 2013 09:14:57 -0700 (PDT)
In-Reply-To: <49E21B63-C93A-450A-80EE-2050FFCDC0B4@vigilsec.com>
References: <CAKDKvuw240Ug4xB3zi2w0y7pUvCwSe0nNFZ2XP2vL-tbtKT0tg@mail.gmail.com> <49E21B63-C93A-450A-80EE-2050FFCDC0B4@vigilsec.com>
Date: Wed, 11 Sep 2013 12:14:57 -0400
X-Google-Sender-Auth: rF7Q4Kvo78gMWeWKIK0tSba9VYY
Message-ID: <CAKDKvuxHM0c5bRL+zoqeX3xcsSsx7KD-knd=sN1hbz6xQ3Ec3w@mail.gmail.com>
From: Nick Mathewson <nickm@torproject.org>
To: Russ Housley <housley@vigilsec.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: perpass@ietf.org, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] [perpass] Let's remove gmt_unix_time from TLS
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.12
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: Wed, 11 Sep 2013 16:15:22 -0000

On Wed, Sep 11, 2013 at 12:04 PM, Russ Housley <housley@vigilsec.com> wrote:
> The tlsdate program (with origins in the TOR project) makes use of this value in the nonce portion of the handshake.

That's true, and it's one reason that I would propose this as a
client-only change (by default).

> I think that the time is an important part of the nonce.  Even if the implementation has a crappy random number generator, the time value does a good job of ensuring that the nonce value is not repeated.  Obviously, the time value does not help with the unpredictability, but the random value is supposed to do that.

I discussed that a bit in this part of my proposal:

> I doubt that this goal is really achieved, for two reasons:
>
>   * On modern desktop environments, it's not really so strange to
>     start two or more TLS connections within the same second.  When
>     this occurs, the gmt_unix_time fails in its intended purpose of
>     preventing repeated Random values.
>
>   * Nonwithstanding the gmt_unix_time workaround, TLS in general
>     does not withstand broken PRNGs.  For one example, if an
>     implementation's PRNG is prone to repeating ClientRandom
>     values, it is probably prone to repeating those some values as
>     ephemeral Diffie-Hellman private values.

In other words, sending gmt_unix_time in the clear will not save you
from a bad RNG.  (Later in the proposal, in the HMAC-based section, I
explain how sending the gmt_unix_time in the clear is not necessary to
save you from a bad RNG.)

best wishes,
-- 
Nick