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

Nico Williams <nico@cryptonector.com> Sun, 05 April 2020 23:49 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 0CF323A08E5 for <kitten@ietfa.amsl.com>; Sun, 5 Apr 2020 16:49:41 -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 Ehc6aPiXhsH9 for <kitten@ietfa.amsl.com>; Sun, 5 Apr 2020 16:49:39 -0700 (PDT)
Received: from camel.birch.relay.mailchannels.net (camel.birch.relay.mailchannels.net [23.83.209.29]) (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 E00843A08E3 for <kitten@ietf.org>; Sun, 5 Apr 2020 16:49:38 -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 2993E4007F2; Sun, 5 Apr 2020 23:49:38 +0000 (UTC)
Received: from pdx1-sub0-mail-a32.g.dreamhost.com (100-96-22-19.trex.outbound.svc.cluster.local [100.96.22.19]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id A3EFA400AF5; Sun, 5 Apr 2020 23:49:37 +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); Sun, 05 Apr 2020 23:49:38 +0000
X-MC-Relay: Neutral
X-MailChannels-SenderId: dreamhost|x-authsender|nico@cryptonector.com
X-MailChannels-Auth-Id: dreamhost
X-Supply-Whimsical: 7494a13754765018_1586130577940_2653758652
X-MC-Loop-Signature: 1586130577940:3598760176
X-MC-Ingress-Time: 1586130577940
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 5CAA57F5E6; Sun, 5 Apr 2020 16:49:37 -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=560XJ+hZ90cQB6 YIcfaymq6Ov2c=; b=obshkszPu+FBPNV95as6SACCRXkd3kXaZGi6To5h0c5XUV jzlXUikY+/u/2Zgyfz8ThGCS+7WwNTNKBdpaAeCg1sOQi/1upGb46XO9baK8y7yn PUHQaXzfKcOupz05GC/UN8TXJz1dcjll+KF7LzJzEncgLgL12pWmjUA00q5Yo=
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 DBDC67F5DD; Sun, 5 Apr 2020 16:49:33 -0700 (PDT)
Date: Sun, 05 Apr 2020 18:49:31 -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: <20200405234929.GD18021@localhost>
References: <158604472122.27168.16112727090339772628@ietfa.amsl.com> <B2497A4F-81B3-42F9-AED1-CFECF1D9F7C0@padl.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <B2497A4F-81B3-42F9-AED1-CFECF1D9F7C0@padl.com>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-VR-OUT-STATUS: OK
X-VR-OUT-SCORE: -100
X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeduhedruddvgddviecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpeffhffvuffkfhggtggujggfsehttdertddtredvnecuhfhrohhmpefpihgtohcuhghilhhlihgrmhhsuceonhhitghosegtrhihphhtohhnvggtthhorhdrtghomheqnecukfhppedvgedrvdekrddutdekrddukeefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdpihhnvghtpedvgedrvdekrddutdekrddukeefpdhrvghtuhhrnhdqphgrthhhpefpihgtohcuhghilhhlihgrmhhsuceonhhitghosegtrhihphhtohhnvggtthhorhdrtghomheqpdhmrghilhhfrhhomhepnhhitghosegtrhihphhtohhnvggtthhorhdrtghomhdpnhhrtghpthhtohepnhhitghosegtrhihphhtohhnvggtthhorhdrtghomh
Archived-At: <https://mailarchive.ietf.org/arch/msg/kitten/BNa7tX7B3MTdRu-mswNlm2zJVE8>
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: Sun, 05 Apr 2020 23:49:41 -0000

 - Section 1

   Another potential use of SAnon would be as a substrate for
   constructing other mechanisms.

   (Recall discussion of "stackable" mechanisms... what, 15 years ago?)

 - Section 3, regarding NegoEx...

|  The means of discovering GSS-API peers and their supported mechanisms
|  is out of this specification's scope.  However, when the Simple and
|  Protected Negotiation mechanism (SPNEGO) defined in [RFC4178] is
|  used, the mechanism MUST be negotiated under [I-D.zhu-negoex].  [...]

   Hmm, well, can this MUST be relaxed to apply only when the initiator
   supports [I-D.zhu-negoex]?  Alternatively, maybe remove it.  After
   all, [I-D.zhu-negoex] imposes the requirement, not this document.

   I see you're aiming to publish this on the Experimental Track.  If
   you want to eventually get on the Standards Track (why not now?),
   [I-D.zhu-negoex] not being an RFC (let alone a Standards-Track RFC)
   would block this document's progress.  Phrasing this as a requirement
   imposed by [I-D.zhu-negoex], or not mentioning it at all, would cure
   that problem.

 - Section 3

|  The selection of SAnon is subject to local policy.  [...]

   Did you mean, its selection via SPNEGO/NegoEx?  But apps can use
   GSS_Set_neg_mechs(), so I'd say that selection is not a matter of
   local policy, except in any case where multiple mechanisms are
   supported by both the initiator and the acceptor, and no preference
   can be gleaned from the applications (is that possible?)

   In any case, I think you might want to say that when using the
   default credential and a non-anonymous target name, and when
   GSS_Set_neg_mechs() was not used (or was used and did not list
   SAnon), then SAnon MUST NOT be negotiated.

|                                              [...].  If anonymity is
|  not desired, mechanisms that provide authentication SHOULD be
|  preferred.  [...]

   Hmm, I'd say that if "anonymity is not desired" then SAnon MUST NOT
   be used.

   Also, phrasing it as "mechanisms that .... SHOULD be preferred"
   sounds like an update to SPNEGO/NegoEx.  Indeed, the need to
   understand that SAnon cannot authenticate the acceptor to the
   initiator imposes on SPNEGO/NegoEx, so an update might be
   unavoidable.

   Another option would be to say that SPNEGO/NegoEx can only negotiate
   SAnon when it is explicitly a credential element in the initiator's
   non-default credential or it is referenced in GSS_Set_neg_mechs().
   This approach imposes no need to update SPNEGO/NegoEx.

|      [...].  Initiators use GSS_C_ANON_FLAG or the well known
|  anonymous credential to indicate that anonymous authentication is
|  desired.  Either party can test for the presence of GSS_C_ANON_FLAG
|  to check if anonymous authentication was performed.

   Or the default credential and a GSS_C_NT_ANONYMOUS name for the
   target acceptor!

   It may be useful to enumerate the ways to end up using SAnon.

 - Section 4.1.1

   The SHOULD in this section should be a MUST.

 - Section 4.1.2

   Huh!  Works for me.

 - Section 4.1.3

   Perhaps we could say this for all name-types on the acceptor side.

 - Section 4

   It's important to state that the name as observed by the peer is
   always GSS_C_NT_ANONYMOUS.

   This should probably be its own sub-session inserted before 4.1.

 - 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))


More later,

Nico
--