Re: [TLS] HMAC context of ClientFinished in TLS 1.3
Kazuho Oku <kazuhooku@gmail.com> Fri, 07 October 2016 11:56 UTC
Return-Path: <kazuhooku@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 97E07129537 for <tls@ietfa.amsl.com>; Fri, 7 Oct 2016 04:56:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 8ZvNCaEsb2vz for <tls@ietfa.amsl.com>; Fri, 7 Oct 2016 04:56:34 -0700 (PDT)
Received: from mail-pf0-x230.google.com (mail-pf0-x230.google.com [IPv6:2607:f8b0:400e:c00::230]) (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 48EB0129510 for <tls@ietf.org>; Fri, 7 Oct 2016 04:56:34 -0700 (PDT)
Received: by mail-pf0-x230.google.com with SMTP id 128so3988135pfz.2 for <tls@ietf.org>; Fri, 07 Oct 2016 04:56:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:mime-version:subject:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lCgtFdNNlmLW9O/pO1To6BeWOepelb2Ho/4rOqtujtc=; b=xgIYXriVjAJCcMqkWYmlrCyJL5vGWLt9bpc+M32J5lmA1I4gy6LJiRqeWISYC2LIAC 5I/bKlWR/6xRiuNRAmekCZZx8OPtL0sK9k+JWCxXZnptWofslwjegkVx42lbEdAMJ6tf n7CP+PLOSpkqVwloyraTIT+RG4sg9bZHtaoJdonpPxg0dg1O61iRLUsG3JfSnFfRtEq1 GFrQYM93hlcfX0uGJFVWNbj9uSnxioCAtqW4srLin6MkIYNvyIrVv42q/wM3U48io07o r2ZRztIAbZWSC9ButljvZsvJ5xNa9XiJpwmyeY8EY4WT6jCKJaoxXYdA0wAGEmlyH9s3 BqkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:mime-version:subject:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=lCgtFdNNlmLW9O/pO1To6BeWOepelb2Ho/4rOqtujtc=; b=Be0CTEVQ9jJQQ/6hPNn/HmPh0Rb5OLS3zHu/+eqBEiSawZ8ybZQhSo4PXUh96B59+D fEyvqob+sQuMQYzWCKI3ySAOl54flfk/GAKhHownD6rpQUZ3hCEnwz74b66lit9i+AkZ LOJ8SGnt4gylIMTJyoh+YMtiD2hT+ZLYJlTrpM/XFg463lsFxlHSACfLFtrHo6rBjCER T2PMWknBxs4wktCIben1Qjsl8NMVm2LNDCDy4qeHP22Px3NONBdGPgyNQZ+nIWh4er8c RlnAdrD4n+t0grksdxLKqHDWtSVbfn7/gCpir7i1F2qL4m/ZlkcxYKFJ4lMcWyGpqm1q 1mgA==
X-Gm-Message-State: AA6/9RkWAm9WRh15yLCXKB0/t6hJrCcEQvdEs7EVZsB3OM1uSXXOsSr1swrpI7/ybTUmhA==
X-Received: by 10.98.34.212 with SMTP id p81mr35963471pfj.18.1475841393594; Fri, 07 Oct 2016 04:56:33 -0700 (PDT)
Received: from [192.168.0.4] (p1679242-ipngn15801marunouchi.tokyo.ocn.ne.jp. [153.204.204.242]) by smtp.gmail.com with ESMTPSA id b197sm13465194pfb.52.2016.10.07.04.56.31 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 07 Oct 2016 04:56:32 -0700 (PDT)
From: Kazuho Oku <kazuhooku@gmail.com>
X-Google-Original-From: Kazuho Oku <KAZUHOOKU@gmail.com>
Content-Type: text/plain; charset="iso-2022-jp"
Mime-Version: 1.0 (1.0)
X-Mailer: iPhone Mail (13G36)
In-Reply-To: <20161007101436.GA8774@LK-Perkele-V2.elisa-laajakaista.fi>
Date: Fri, 07 Oct 2016 20:56:29 +0900
Content-Transfer-Encoding: quoted-printable
Message-Id: <14A4B8BA-31FC-4C2A-BC6D-3C0F6F1A5FDD@gmail.com>
References: <CANatvzySkbddprp_mN3Hb4joscUPGANC4KwSz04K7hwRSSL48Q@mail.gmail.com> <20161007101436.GA8774@LK-Perkele-V2.elisa-laajakaista.fi>
To: Ilari Liusvaara <ilariliusvaara@welho.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/2-YmiorvHtxqo0EvCdg4JmFdDms>
Cc: tls@ietf.org
Subject: Re: [TLS] HMAC context of ClientFinished in TLS 1.3
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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, 07 Oct 2016 11:56:35 -0000
Hi, Thank you very much for the clarification and the advise. I had indeed forgotten to consider the client certificate and its verify message. iPhoneから送信 2016/10/07 19:14、Ilari Liusvaara <ilariliusvaara@welho.com> のメッセージ: >> On Fri, Oct 07, 2016 at 06:41:35PM +0900, Kazuho Oku wrote: >> Hi, >> >> Recently I have started writing a TLS 1.3 implementation. While >> working on it, I have noticed the following. >> >> In section 4.4.3, the hash value used for building the HMAC is defined >> as: Hash(Handshake Context + Certificate* + CertificateVerify*). >> >> For ServerFinished, this corresponds to the statement following the >> formula that states, quote: >> >> the HMAC input can generally be implemented by a running hash, >> i.e., just the handshake hash at this point. >> >> since Handshake Context for 1-RTT server is (as defined in section >> 4.4): ClientHello … later of EncryptedExtensions/CertificateRequest. >> >> However, for ClientFinished, the two descriptions do not match, since >> Handshake Context for 1RTT client is: ClientHello … ServerFinished. >> >> If we follow the way it is defined in the formula, then Certificate >> and CertificateVerify needs to be applied to the hash after >> ServerFinished, which is in discordance with the statement that it >> could be implemented using a running hash. > > Nope, it is a running hash: > > The server Finished includes the following messages, in this order: > > - ClientHello > - HelloRetryRequest (if sent) > - Clienthello (another, if HRR was sent) > - ServerHello > - EncryptedExtensions > - CertificateRequest (if sent) > - Certificate (server's) > - CertificateVerify (server's) > > And this exactly corresponds to the send/receive order. > > > The client finished includes, in this order: > > - ClientHello > - HelloRetryRequest (if sent) > - Clienthello (another, if HRR was sent) > - ServerHello > - EncryptedExtensions > - CertificateRequest (if sent) > - Certificate (server's) > - CertificateVerify (server's) > - Finished (server's) > - Certificate (client's, if CR was sent). > - CertificateVerify (client's, if non-empty client cert was sent) > > And this exactly corresponds to the send/receive order. > > > One place to be careful of is client application keys: The hash used > for those is taken immediately after ServerFinished, but the keys are > only commissioned after ClientFinished (whereas server keys have the > hash taken in the same time as those are commissioned in). > > > > -Ilari
- [TLS] HMAC context of ClientFinished in TLS 1.3 Kazuho Oku
- Re: [TLS] HMAC context of ClientFinished in TLS 1… Ilari Liusvaara
- Re: [TLS] HMAC context of ClientFinished in TLS 1… Kazuho Oku