Re: [TLS] HSM-friendly Key Computation

Martin Thomson <martin.thomson@gmail.com> Fri, 17 April 2015 19:45 UTC

Return-Path: <martin.thomson@gmail.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 B872D1B2FE0 for <tls@ietfa.amsl.com>; Fri, 17 Apr 2015 12:45:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.4
X-Spam-Level:
X-Spam-Status: No, score=-1.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, J_CHICKENPOX_32=0.6, SPF_PASS=-0.001] autolearn=no
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 8Rz18QArKQrz for <tls@ietfa.amsl.com>; Fri, 17 Apr 2015 12:44:59 -0700 (PDT)
Received: from mail-ob0-x235.google.com (mail-ob0-x235.google.com [IPv6:2607:f8b0:4003:c01::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 823811A0235 for <tls@ietf.org>; Fri, 17 Apr 2015 12:44:59 -0700 (PDT)
Received: by oblw8 with SMTP id w8so79467347obl.0 for <tls@ietf.org>; Fri, 17 Apr 2015 12:44:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=0iFmP9qnXggInT268MRm+fG2iD2rEn8OQBntSjLV+XM=; b=xQ+MuzxYN96RpBlBbJv1xV4Zr5V6LOJjoVZWa563muoGbxemS7rPn/9BQCZspQhhAf mTQrMvd/OiOVO+EQLkldbotupgD94DZ6tk/BrBBhlVZv7AX4zkW/Y+6CrRKIhE6s985o 7Wydxtvq46n/nW5UI1QQ1nO6IKKvFTyDCdgUvFwOlhFROjaWlG5A/HOsmV4OSPoeD2ou vdVwVXuNTaReGzVLLdodjSOg5YAnDyMxhU4NoKnFTmLSPVPSvsJEaViDf0RGjcDKxMPs TBkzfw9BiftJEzN0nfBeNAISdJHFkUHWASHddB4JnGCXSVrNUczz3PzG5jLbfEC2USFA +YLQ==
MIME-Version: 1.0
X-Received: by 10.60.15.133 with SMTP id x5mr4429844oec.80.1429299899101; Fri, 17 Apr 2015 12:44:59 -0700 (PDT)
Received: by 10.202.212.212 with HTTP; Fri, 17 Apr 2015 12:44:59 -0700 (PDT)
In-Reply-To: <CABcZeBOh08+8bz3Wk+xXYp9myVHpk6R70QMWdRjs1h7Y7ghEeQ@mail.gmail.com>
References: <0694C3DB-FB87-42A2-BCC4-CC0F761E9A03@vigilsec.com> <CABcZeBOh08+8bz3Wk+xXYp9myVHpk6R70QMWdRjs1h7Y7ghEeQ@mail.gmail.com>
Date: Fri, 17 Apr 2015 12:44:59 -0700
Message-ID: <CABkgnnX-s+T8NHRkJQmx9hicOCkBOSRPh9NxuxgErouZ=NgQqQ@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Eric Rescorla <ekr@rtfm.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/YAhN9HNvoGTeyYrWixrI4git75I>
Cc: IETF TLS <tls@ietf.org>
Subject: Re: [TLS] HSM-friendly Key Computation
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: Fri, 17 Apr 2015 19:45:00 -0000

Note also that this is a known issue.  Mike StJohns raised it previously.

https://github.com/tlswg/tls13-spec/issues/5

On 17 April 2015 at 12:40, Eric Rescorla <ekr@rtfm.com> wrote:
> We should defer this issue until we know whether we are generating an IV
> at all.
>
> -Ekr
>
>
> On Fri, Apr 17, 2015 at 11:59 AM, Russ Housley <housley@vigilsec.com> wrote:
>>
>> Section 6.3 of draft-ietf-tls-tls13-05 describes the key calculation from
>> the current master secret (MS).  First a key block is computed:
>>
>>       key_block = PRF(MS,
>>                       "key expansion",
>>                       SecurityParameters.server_random +
>>                       SecurityParameters.client_random);
>>
>> Then, the key block is divided into keys and IVs:
>>
>>       client_write_key[SecurityParameters.enc_key_length]
>>       server_write_key[SecurityParameters.enc_key_length]
>>       client_write_IV[SecurityParameters.fixed_iv_length]
>>       server_write_IV[SecurityParameters.fixed_iv_length]
>>
>> If one wants to implement the cryptographic functions in a Hardware
>> Security Module (HSM), this structure is far from ideal.  In general I would
>> expect the client_write_key and server_write_key to stay inside the
>> protected boundary of the HSM, but the client_write_IV and server_write_IV
>> do not need this protection.  Both of these coming from the same key_block
>> makes this separation very difficult to implement.
>>
>> Can we get these values from different invocations of the PRF?  I'd like
>> to see one invocation for values that are expected to remain secret and a
>> separate invocation for values that do not need to remain secret.
>>
>> Russ
>>
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>
>
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>