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

Cigdem Sengul <cigdem.sengul@gmail.com> Fri, 04 March 2022 22:24 UTC

Return-Path: <cigdem.sengul@gmail.com>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 72DF23A111D; Fri, 4 Mar 2022 14:24:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 BqXae4KeELnW; Fri, 4 Mar 2022 14:24:02 -0800 (PST)
Received: from mail-vs1-xe32.google.com (mail-vs1-xe32.google.com [IPv6:2607:f8b0:4864:20::e32]) (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 CBBFE3A09AD; Fri, 4 Mar 2022 14:24:01 -0800 (PST)
Received: by mail-vs1-xe32.google.com with SMTP id g21so10591798vsp.6; Fri, 04 Mar 2022 14:24:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kDC3rTzUF3CayBBsXeUa3Ti0f9qCGrdN6F8Syiad4wk=; b=I4ucaV9HErWhR3VK6W/0FkaZQ8839VGgLAZyphGQk9bwMcvpZKW8MdfxKRy7TOF9lQ f21HqXHSHncwQrd/UQ9YuL7H59bpeHeoHFZYCh0uEBULh2+TUc9qY6600H2CjkOFX/lj ysfbzgMmuuZbOlTuEcH0kW9i2+4+oY35r8JYVZ+WxDGIRN+VZ0dDWATTJGANFDPRXVP0 CVQIrH0KsuZpjzu3WnNxY/VWiREevyyHqTLbWhdgnuU101VeSGaiIcWxjg4ovraZC3T6 up5p5nZllQZh/TTKnewSnuedwjInGihLvpU7fmjPEOH59MN01MBc638g2qHg6QhMgHmm aJAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kDC3rTzUF3CayBBsXeUa3Ti0f9qCGrdN6F8Syiad4wk=; b=zD2giTIzcBE3cXIrfa3aVy591X6E/VjV4jQnDtTyk+FXGy+w/uQZdMf94FZuIkzBP5 +0x+sQtodRw0SccdVRSbyehsRHkUlJ0G7w3F+wcwWWa4GRQ16OEJLv/NLfyiViTpzk2A rxmmwwk5T/ZURDNc4k/q82EXva8AStQvokGmB/BPYf0dfzoALc/FIqpAzPv9/P6MF/zm D9J90vHYu20mrDdAePZkRFQX4k5mrE5fcOqrbG427QqNRTJycDIA/ZUVGic7W5kZbQsL 16dHSlCDwZejtV8fiuJSjGu1eoBzVVuITM3ta8YUDruBa6RU/a9cn84q7yBst7XHe9ch Z53w==
X-Gm-Message-State: AOAM530biywAYo1cK8Lq68DVwuX+XNwU/UupXtaI2H+Y0r/0E+kkgZXG Qourjx1D2PCuzGDYifrhWxmKVrBwiwSHgyMioBHwxcASNraJ0w==
X-Google-Smtp-Source: ABdhPJw3H+ixpqiTFuq88VitRMgqHu69TNuDRgMiK8oryxnxHvNV2kpINzfCoADOIOkBmXoCVJ6RcU5q4w28tVKEzjo=
X-Received: by 2002:a67:2f88:0:b0:31e:c163:ee53 with SMTP id v130-20020a672f88000000b0031ec163ee53mr445895vsv.78.1646432640282; Fri, 04 Mar 2022 14:24:00 -0800 (PST)
MIME-Version: 1.0
References: <164625142349.18034.6160062151802397570@ietfa.amsl.com>
In-Reply-To: <164625142349.18034.6160062151802397570@ietfa.amsl.com>
From: Cigdem Sengul <cigdem.sengul@gmail.com>
Date: Fri, 04 Mar 2022 22:23:50 +0000
Message-ID: <CAA7SwCPcLsw_fSShi8z924w9fmWkKSyjM55y8rznc8V8rOeeiQ@mail.gmail.com>
To: Theresa Enghardt <ietf@tenghardt.net>
Cc: gen-art@ietf.org, Ace Wg <ace@ietf.org>, draft-ietf-ace-mqtt-tls-profile.all@ietf.org, last-call@ietf.org
Content-Type: multipart/alternative; boundary="000000000000abb46f05d96bf84f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/gen-art/VMlEQDc-Mng5mXWRgrTx9lhZ70Y>
Subject: Re: [Gen-art] Genart last call review of draft-ietf-ace-mqtt-tls-profile-15
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Mar 2022 22:24:06 -0000

Dear Theresa,
Thank you very much for the comments.

I have prepared a revised version, where the changes can be found in the
following pull request:
 https://github.com/ace-wg/mqtt-tls-profile/pull/99

If you are happy with these changes, I can submit a new ID.
I also explain the changes below, inline.

>
>
> Minor issues:
>
> Section 1:
>
> "The token MAY be a
>    reference or JSON Web Token (JWT) [RFC7519]."
> What is a reference in this context?
>

[CS: Added: "opaque reference to authorization information"]



>
> 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?"


>
> Section 2
>
> "Whatever protocol is
>    used for C-AS and Broker-AS communications must provide mutual
>    authentication, confidentiality protection, and integrity protection."
> Is this a MUST?
>

[CS: Changed to MUST].

>
> 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].




> 2.2.2
> "If the QoS level is equal to 0, and the token is invalid or the
>    claims cannot be obtained in the case of an introspected token, the
>    Broker MUST send a DISCONNECT packet with the reason code '0x87 (Not
>    authorized)'."
> Does this paragraph apply to all packets or is it specific to the PUBLISH
> packet (like the next paragraph)? I suggest to make this explicit.
>

[CS: Moved the last sentence of the previous paragraph to underline that we
are talking about the PUBLISH packet.
So, it is now:
Depending on the QoS level of the PUBLISH packet, the Broker returns
   the error response as a PUBACK, PUBREC, or DISCONNECT packet.  If the
   QoS level is equal to 0, ....
]


>
> Section 2.2.4.1
>
> "Given that clients provide a token at each connection,"
> Does "at each connection" mean in each CONNECT packet, or something else?
> Please clarify.
>

[CS: Clarified as:
 "Given that the Broker MUST associate the Client with a valid token, a
Client will only send or receive messages to its authorized topics.."
(This is becuase the Broker may have saved a token for Client, and Client
may have not provided a Token in Connect, but passed the challenge/response
hence, proving that the stored token is for itself]
]

>
> Nits/editorial comments:
>
> Section 1:
>
> "In this profile, Clients and Servers
>    (Brokers) use MQTT to exchange Application Messages.  The protocol
>    relies on TLS for communication security between entities."
> Section 1.3 defines MQTT over TLS as MQTTS, and if I understand correctly,
> this
> document requires MQTT between Clients and Servers over TLS, effectively,
> making the document about MQTTS, and it does say "MQTTS" in some places.
> Short
> of substituting all or nearly all "MQTT" with "MQTTS", is it worth
> mentioning
> "MQTTS" once more here in the introduction?
>

[CS: Decided MQTTS is colloquial - as MQTT Standard doesn't refer to it.
So, removed its definition and fixed all instances of MQTTS as MQTT over
TLS]


>
> "MQTT v3.1.1 clients"
> Here, "clients" is lower case, while it is upper case in most other places
> in
> the doc. Should it be upper case here as well? There are other occurences
> of
> lower case "client" in Section 2.2.3.1, 2.2.3.2, 2.2.4.1, 2.2.5 - should
> these
> all be upper case?
>

[CS: changed client->Client if speaking of an MQTT client. ]


>
> "This
>    document does not protect the payload of the PUBLISH packet from the
>    Broker."
> Maybe this reads better as "The mechanisms specified in this document do
> not
> protect […]"?
>
[CS: Fixed]


>
> Section 2.1:
> "The document follows the procedures
>    defined in Section 3.2.1 of the DTLS profile
>    [I-D.ietf-ace-dtls-authorize] for RPK, and in Section 3.3.1 of the
>    same document for PSK."
> This is the first occurrence of RPK and PSK, yet, these acronyms are only
> expanded later in Section 2.2.1 and 2.2.3. I suggest move the expansion and
> maybe a brief explanation to Section 2.1, and then perhaps the acronyms do
> not
> need to be expanded again in Sections 2.2.1 and 2.2.3.
>

[CS: Moved to where RPK/PSK first mentioned.  Kept the expansions in two
places, removed others.]

>
> Section 8:
> "Broker does not cache
>    any invalid tokens."
> The broker?
>

[CS: Fixed]

Thanks again,
--Cigdem