Re: [kitten] Fwd: New Version Notification for draft-howard-gss-sanon-01.txt

Nico Williams <nico@cryptonector.com> Mon, 06 April 2020 00:45 UTC

Return-Path: <nico@cryptonector.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CB453A0A1B for <kitten@ietfa.amsl.com>; Sun, 5 Apr 2020 17:45:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cryptonector.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 EGiz-xcWP7mV for <kitten@ietfa.amsl.com>; Sun, 5 Apr 2020 17:44:51 -0700 (PDT)
Received: from chocolate.birch.relay.mailchannels.net (chocolate.birch.relay.mailchannels.net [23.83.209.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61BB13A0A0B for <kitten@ietf.org>; Sun, 5 Apr 2020 17:44:51 -0700 (PDT)
X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com
Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 8AEA43409C4; Mon, 6 Apr 2020 00:44:50 +0000 (UTC)
Received: from pdx1-sub0-mail-a32.g.dreamhost.com (100-96-23-11.trex.outbound.svc.cluster.local [100.96.23.11]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 10AA63403AD; Mon, 6 Apr 2020 00:44:50 +0000 (UTC)
X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com
Received: from pdx1-sub0-mail-a32.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.6); Mon, 06 Apr 2020 00:44:50 +0000
X-MC-Relay: Neutral
X-MailChannels-SenderId: dreamhost|x-authsender|nico@cryptonector.com
X-MailChannels-Auth-Id: dreamhost
X-Chemical-Bored: 010866c131e99e93_1586133890345_1318853072
X-MC-Loop-Signature: 1586133890345:488020027
X-MC-Ingress-Time: 1586133890345
Received: from pdx1-sub0-mail-a32.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a32.g.dreamhost.com (Postfix) with ESMTP id B604D7FF0B; Sun, 5 Apr 2020 17:44:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=RxNL6T/uwuDL8I uhXWc7vCMfEFI=; b=wbgtapQ0qifY0XS7eeAlRSbWBOrox5lcV4xa4JW8xylpCQ oVs2ITq7ZRQTckFRmZHar3v48tv1s8xb0j5/M3lFTAlVKCHcG+KV3oAvZLl6H605 lnO4yvEiWCBABcPcclx92hqpmEGq6WbxJl0y4cB/hUquBE2dufhRWA6rk4vPk=
Received: from localhost (unknown [24.28.108.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by pdx1-sub0-mail-a32.g.dreamhost.com (Postfix) with ESMTPSA id 03E967FF00; Sun, 5 Apr 2020 17:44:47 -0700 (PDT)
Date: Sun, 05 Apr 2020 19:44:45 -0500
X-DH-BACKEND: pdx1-sub0-mail-a32
From: Nico Williams <nico@cryptonector.com>
To: Luke Howard <lukeh@padl.com>
Cc: "kitten@ietf.org" <kitten@ietf.org>, Jeffrey Altman <jaltman@auristor.com>, Greg Hudson <ghudson@mit.edu>
Message-ID: <20200406004444.GE18021@localhost>
References: <158604472122.27168.16112727090339772628@ietfa.amsl.com> <B2497A4F-81B3-42F9-AED1-CFECF1D9F7C0@padl.com> <20200405234929.GD18021@localhost>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <20200405234929.GD18021@localhost>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-VR-OUT-STATUS: OK
X-VR-OUT-SCORE: -100
X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeduhedruddvgdefkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpeffhffvuffkfhggtggujggfsehttdertddtredvnecuhfhrohhmpefpihgtohcuhghilhhlihgrmhhsuceonhhitghosegtrhihphhtohhnvggtthhorhdrtghomheqnecukfhppedvgedrvdekrddutdekrddukeefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdpihhnvghtpedvgedrvdekrddutdekrddukeefpdhrvghtuhhrnhdqphgrthhhpefpihgtohcuhghilhhlihgrmhhsuceonhhitghosegtrhihphhtohhnvggtthhorhdrtghomheqpdhmrghilhhfrhhomhepnhhitghosegtrhihphhtohhnvggtthhorhdrtghomhdpnhhrtghpthhtohepnhhitghosegtrhihphhtohhnvggtthhorhdrtghomh
Archived-At: <https://mailarchive.ietf.org/arch/msg/kitten/7cweb6yZLEQmQj9LwkVHVUMbSP8>
Subject: Re: [kitten] Fwd: New Version Notification for draft-howard-gss-sanon-01.txt
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Apr 2020 00:45:01 -0000

On Sun, Apr 05, 2020 at 06:49:31PM -0500, Nico Williams wrote:
>  - Section 4.1.4
>    
>    The name string displayed should either be a constant OR, better yet,
>    a base64-encoded hash of the peer's DH key!  The latter especially
>    after context establishment.
> 
>     - GSS_Display_name(GSS_Canonicalize_name(
>                          mech=SAnon,
>                          name=GSS_Import_name(GSS_C_NT_ANONYMOUS, "whatever")))
>         -> "whatever"
> 
>     - GSS_Display_name(GSS_Inquire_context_peer_name(context))
>         -> base64_encode(hash(dh_pubkey))

Even better: base64(dh_pubkey).

And even better too if that can be used as a target name.

Then we'd have the building blocks of a modern mech_dh.

 - Section 6.1.2

   The acceptor should also send a MIC along with the key, thus proving
   it has possession of the shared secret.  This is important, otherwise
   reply tokens could be replayed, and though it wouldn't be much of an
   attack, it's worth doing.

 - Section 6

   There should be a requirement that new DH keys be generated every
   time, no?  Especially on the initiator side, and especially if you
   don't add the use of a MIC in the response token (see previous
   comment).

 - If you allow a target name to be imported as an anonymous name whose
   value is the base64 encoding of a raw public key, then the initial
   context token should send two public keys, and the response token
   should be just a MIC.

   I->A: {PK_i, PK_a}
   A->I: MIC(SK, {PK_i, PK_a}) || <error>

         (ahh, you'd have to define an error message, but it could just
          be a 1-byte code)

   Note that to reuse keys really does require nonces.  So those would
   have to be added:

   I->A: {PK_i, PK_a, nonce}
   A->I: MIC(SK, {PK_i, PK_a}) || <error>

   You could even have a half round-trip variant where the initiator
   sends {PK_i, PK_a, nonce, MIC} and the acceptor sends nothing.

   The length of the initiator context token would say all that's
   needed -- no ASN.1/DER or whatever would be needed.

 - Section 7

|  context       the concatenation of the initiator and acceptor public
|                keys, along with the channel binding application data
|                (if present)

   Add "in that order"?

 - Section 7

|  The session key K1 is used as the base key for the generation of per-
|  message tokens and the GSS-API PRF.  The encryption type of K1 is
|  aes128-cts-hmac-sha256-128 as defined in [RFC8009].

   There should be a reference here to RFC4121.  Also, RFC4121 doesn't
   mention a K1.  I suspect you need to state how to derive a key of the
   enctype (aes128-cts-hmac-sha256-128) that would be equivalent to the
   AcceptorSubkey.  You might want to mention that four keys are to be
   derived from that per RFC4121 section 2, plus the GSS_Pseudo_random()
   key (GSS_C_PRF_KEY_FULL) [RFC8009].

 - Test vectors?

 - Section 10

   This section should repeat something about the importance of SAnon
   not being negotiated when it's not appropriate.

Done.

Nico
--