Re: [Ace] Genart last call review of draft-ietf-ace-mqtt-tls-profile-15

Benjamin Kaduk <kaduk@mit.edu> Sat, 05 March 2022 02:47 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: ace@ietfa.amsl.com
Delivered-To: ace@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E07713A09AB; Fri, 4 Mar 2022 18:47:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.907
X-Spam-Level:
X-Spam-Status: No, score=-1.907 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=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 sIcTwUWfr_lb; Fri, 4 Mar 2022 18:47:10 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (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 2D0C13A1472; Fri, 4 Mar 2022 18:47:08 -0800 (PST)
Received: from mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 2252kxh0003699 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 4 Mar 2022 21:47:05 -0500
Date: Fri, 04 Mar 2022 18:46:59 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Theresa Enghardt <ietf@tenghardt.net>
Cc: Cigdem Sengul <cigdem.sengul@gmail.com>, gen-art@ietf.org, Ace Wg <ace@ietf.org>, draft-ietf-ace-mqtt-tls-profile.all@ietf.org, last-call@ietf.org
Message-ID: <20220305024659.GG22457@mit.edu>
References: <164625142349.18034.6160062151802397570@ietfa.amsl.com> <CAA7SwCPcLsw_fSShi8z924w9fmWkKSyjM55y8rznc8V8rOeeiQ@mail.gmail.com> <c7cb09c0-ccd2-1c16-c1ee-1e39608ace95@tenghardt.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c7cb09c0-ccd2-1c16-c1ee-1e39608ace95@tenghardt.net>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/DHjwSA40RQXn_azWYlTWNipUdLg>
Subject: Re: [Ace] Genart last call review of draft-ietf-ace-mqtt-tls-profile-15
X-BeenThere: ace@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Authentication and Authorization for Constrained Environments \(ace\)" <ace.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ace>, <mailto:ace-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ace/>
List-Post: <mailto:ace@ietf.org>
List-Help: <mailto:ace-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ace>, <mailto:ace-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Mar 2022 02:47:15 -0000

Hi Theresa,

On Fri, Mar 04, 2022 at 06:42:07PM -0800, Theresa Enghardt wrote:
> Dear Cigdem,
> 
> Thank you for preparing the revised version, it looks pretty good to me.
> 
> Some replies inline:
> 
> On 3/4/22 14:23, Cigdem Sengul wrote:
> >
> >
> >     Section 1.3:
> >
> >     "Will
> >                        If the network connection is not closed
> >     normally, […]"
> >     I suggest to make this a bit more specific:
> >     Does "the network connection" refer to a TCP connection, or a TLS
> >     session? Or
> >     does it refer to MQTT's notion of "connection"? Does "not closed
> >     normally" mean
> >     anything other than a FIN-ACK exchange to close a TCP connection?
> >     Or does it
> >     depend on the used transport protocol (however, in this document,
> >     it should all
> >     refer to TLS over TCP iiuc?) If the notion of a "network
> >     connection is not
> >     closed normally" is a well-defined concept in this context, please
> >     provide a
> >     reference if possible.
> >
> >
> > [CS: Introduced a formal definition of Network Connection to 
> > MQTT-related terminology - as defined in MQTT standard.
> > To the Will definition, added the situations when the connection is 
> > considered not to have closed normally.
> > Question: Normal disconnection is DISCONNECT with reason code is 0x00, 
> > according to MQTT standard - is this definition also needed?"
> 
> [TE] So "not closed normally" means any way to terminate the Network 
> Connection, other than DISCONNECT with reason code 0x00? If so, I think 
> this would be a good addition to the definition, either as its own 
> definition or added to the "Will" definition.

I think that's right, but Cigdem knows MQTT better than me and she should
confirm.

> 
> >
> >     Section 2.1
> >
> >     "The PoP token includes a 'cnf' parameter with a
> >        symmetric or asymmetric PoP key. "
> >     The 'cnf' (and 'rs_cnf' in Section 2.2.1) parameter is mentioned
> >     here and in
> >     some other places, but it is not obvious what it means and why it is
> >     special/important. I suggest to provide a brief explanation or
> >     reference.
> >
> > [CS: Added for cnf:
> > The AS includes a 'cnf' parameter to the PoP token,
> >    to declare that the Client possesses a particular key and RS can
> >    cryptographically confirm that the Client has possession of that key.
> >    The 'cnf' parameter is REQUIRED if a symmetric key is used, and MAY
> >    be present for asymmetric proof-of-possession keys, as described in
> >    [I-D.ietf-ace-oauth-params].
> >
> > rs_cnf:
> > Otherwise, to authenticate the Broker, the Client MUST validate a 
> > public key from a
> >    X.509 certificate or an RPK from the Broker against the 'rs_cnf' 
> > parameter in the token response, which contains information about the
> >    public key used by the RS to authenticate if the token type is "pop"
> >    and asymmetric keys are used as defined in 
> > [I-D.ietf-ace-oauth-params].
> 
> [TE] These explanations already help, thanks! However, and this might 
> just be me, but I keep wondering what 'cnf' stands for, i.e., if it is 
> an acronym for something, and if it is, if it makes sense to expand the 
> acronym. But it might just be a string that comes from "somewhere", 
> which is fine with me, too. :)

I think the lineage of "cnf" can be traced back to at least RFC 7800, so at
this point it's probably a fairly well established part of the greater
OAuth ecosystem.

Which is not to say that we can't try to make the document more accessible
to new readers, of course.  The ACE framework itself relies pretty heavily
on proof of possession semantics for JWT/CWT tokens, so perhaps the
implicit reliance on draft-ietf-ace-oauth-authz and its terminology would
suffice.  Happy to hear further thoughts.

-Ben