Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-ace-mqtt-tls-profile-17> for your review
Anthony Kirby <anthony@anthony.org> Mon, 03 July 2023 15:33 UTC
Return-Path: <anthony@anthony.org>
X-Original-To: auth48archive@ietfa.amsl.com
Delivered-To: auth48archive@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B1F71C15153E for <auth48archive@ietfa.amsl.com>; Mon, 3 Jul 2023 08:33:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.894
X-Spam-Level:
X-Spam-Status: No, score=-1.894 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=anthony-org.20221208.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y_ITYRY0tDDF for <auth48archive@ietfa.amsl.com>; Mon, 3 Jul 2023 08:33:36 -0700 (PDT)
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7B64C151539 for <auth48archive@rfc-editor.org>; Mon, 3 Jul 2023 08:33:35 -0700 (PDT)
Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2b6a5fd1f46so70570731fa.1 for <auth48archive@rfc-editor.org>; Mon, 03 Jul 2023 08:33:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anthony-org.20221208.gappssmtp.com; s=20221208; t=1688398413; x=1690990413; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=W5nIqhwAeUkfz4INSk9LjTdfg15Zmjxrx8SdjdbZwlA=; b=LkYQVibr8WnXmS1bOmXeS0HUYsWO1mC/xo0W2F9YUFFOvzTsbC/Aj98gNP1CZ7pEp3 YZOGVFUe3/HXs3r9x5Ljvrk4IMrsT/mgvIqkxtRl8dxGHZHRq6+tMUkG8hfsFR100vFg bigs1bknNJN9Aqq0/Gr7V2qSpCQvvRpfoL2HC6s3ECLlYKu29R5tZKgtWeCCy2Y/5+uT BkvySIuua1zTIt/lqxxjSCqzUWDLgYst1Nw11Iux96A9XIPp66GqKni9uY+tbhidlNVC +rXCqgGfMXFFV0TysMKsdrjae2X+/DnBsPfL1n34Y2bhvvwRYF+hvdy5pArM5ooIucNe hHgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688398413; x=1690990413; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=W5nIqhwAeUkfz4INSk9LjTdfg15Zmjxrx8SdjdbZwlA=; b=I2twnPbl01qNYAKlKm6B5srFWS2gWuE/eO5TIYVnQlY8ZURvSXctK3JifuF3FDGPWp UZdjMJKEL83xsXYQHem9OMhaVyCKn/9IplNj0O3KGJ4zztbMxiCcA8Kv3c8pogwUVY9X PXhM7aI5XiITWBgWpvLymT0gHJ/BMQUQGdHpa/wM7smDkCgBeTu6C8jx8m/1aaPjbQg6 iWoLBRH0/3DJhVHM89DMAzWIoDZyVlkxDJQHZiJ5LIpbKIWkhA8SJY9nyPOwtTJinBt6 qZjdXsEZLNCg+f5H7DRLIDhI2TrPItDEUx+8spp8OBKcnJwbflw6q3OPCJnRnK4SaQZa d/Dg==
X-Gm-Message-State: ABy/qLaDJLc4RNKMRt2qaby1ki0keEyap2n8AnbTJilDDwBC75zSUn/B JCfpozVCXhe77X+BQOGn3YvPb6CHZHksKsit7MQmFg==
X-Google-Smtp-Source: APBJJlGKTWMbAb2p1mpjICMZxQNeGg0ULuEJmoc/+8peq6F8TshwAnqjnWbsupLll7rBKCc4nodfBuI6p32mjUmibdU=
X-Received: by 2002:a2e:9b4e:0:b0:2b6:dbf2:11fd with SMTP id o14-20020a2e9b4e000000b002b6dbf211fdmr4900157ljj.24.1688398413098; Mon, 03 Jul 2023 08:33:33 -0700 (PDT)
MIME-Version: 1.0
References: <20230619230040.632B2119F1@rfcpa.amsl.com> <CAA7SwCMEByOisYe+XddRvcfgwu7UFt7GmhMyLhHP876ijYxmdQ@mail.gmail.com> <5B78DE5C-E12E-459C-B469-26590439F200@amsl.com> <CAA7SwCN3sULswFQQ7-H+4tkneMRW5cGZX=H-XOFrzv78QBLv0w@mail.gmail.com>
In-Reply-To: <CAA7SwCN3sULswFQQ7-H+4tkneMRW5cGZX=H-XOFrzv78QBLv0w@mail.gmail.com>
From: Anthony Kirby <anthony@anthony.org>
Date: Mon, 03 Jul 2023 16:33:21 +0100
Message-ID: <CAE+qpjRf+FPLLekRXPY_xBGhCVaDxnw8Ju+Wyxg0467LiV+YAw@mail.gmail.com>
To: Cigdem Sengul <cigdem.sengul@gmail.com>
Cc: Alanna Paloma <apaloma@amsl.com>, rfc-editor@rfc-editor.org, csengul@acm.org, ace-ads@ietf.org, ace-chairs@ietf.org, daniel.migault@ericsson.com, auth48archive@rfc-editor.org
Content-Type: multipart/alternative; boundary="000000000000a7087605ff96e3f3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/auth48archive/xFjnzxRxn4SdMV65RNM8u9cg7EQ>
Subject: Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-ace-mqtt-tls-profile-17> for your review
X-BeenThere: auth48archive@rfc-editor.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Archiving AUTH48 exchanges between the RFC Production Center, the authors, and other related parties" <auth48archive.rfc-editor.org>
List-Unsubscribe: <https://mailman.rfc-editor.org/mailman/options/auth48archive>, <mailto:auth48archive-request@rfc-editor.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/auth48archive/>
List-Post: <mailto:auth48archive@rfc-editor.org>
List-Help: <mailto:auth48archive-request@rfc-editor.org?subject=help>
List-Subscribe: <https://mailman.rfc-editor.org/mailman/listinfo/auth48archive>, <mailto:auth48archive-request@rfc-editor.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2023 15:35:04 -0000
I approve this RFC for publication. Many thanks, Anthony On Mon, 3 Jul 2023, 11:16 Cigdem Sengul, <cigdem.sengul@gmail.com> wrote: > Hello, > Thank you for the revisions. I only have the following change: > > 2.2.5. Broker Token Validation > > OLD: i.e., a CWT token uses COSE, while a JWT token uses JOSE. > > NEW: i.e., a CWT uses COSE, while a JWT uses JOSE. > > The rest looks great, and after this minor edit, I approve this RFC for > publication. > Thank you very much for all your work. > Kind regards, > --Cigdem > > > On Tue, 20 Jun 2023 at 22:56, Alanna Paloma <apaloma@amsl.com> wrote: > >> Hi Cigdem, >> >> Thank you for your reply. We have updated as requested. >> >> The files have been posted here (please refresh): >> https://www.rfc-editor.org/authors/rfc9431.xml >> https://www.rfc-editor.org/authors/rfc9431.txt >> https://www.rfc-editor.org/authors/rfc9431.html >> https://www.rfc-editor.org/authors/rfc9431.pdf >> >> The relevant diff files have been posted here: >> https://www.rfc-editor.org/authors/rfc9431-diff.html (comprehensive >> diff) >> https://www.rfc-editor.org/authors/rfc9431-auth48diff.html (AUTH48 >> changes) >> >> Please review the document carefully and contact us with any further >> updates you may have. Note that we do not make changes once a document is >> published as an RFC. >> >> We will await approvals from each party listed on the AUTH48 status page >> below prior to moving this document forward in the publication process. >> >> For the AUTH48 status of this document, please see: >> https://www.rfc-editor.org/auth48/rfc9431 >> >> Thank you, >> RFC Editor/ap >> >> >> > On Jun 20, 2023, at 8:34 AM, Cigdem Sengul <cigdem.sengul@gmail.com> >> wrote: >> > >> > Thank you for your email. Please see my responses below. >> > --Cigdem >> > >> > On Tue, 20 Jun 2023 at 00:00, <rfc-editor@rfc-editor.org> wrote: >> > Authors, >> > >> > While reviewing this document during AUTH48, please resolve (as >> necessary) the following >> > questions, which are also in the XML file. >> > >> > 1) <!--[rfced] To avoid awkward hyphenation, may we update the title as >> follows? >> > >> > Original: >> > Message Queuing Telemetry Transport (MQTT)-TLS profile of Authentication >> > and Authorization for Constrained Environments (ACE) Framework >> > >> > Perhaps: >> > Message Queuing Telemetry Transport (MQTT) and TLS Profile for the >> > Authentication and Authorization for Constrained Environments (ACE) >> > Framework >> > --> >> > >> > I suggest: >> > >> > Message Queuing Telemetry Transport (MQTT) and Transport Layer Security >> (TLS) profile of Authentication >> > and Authorization for Constrained Environments (ACE) Framework >> > >> > >> > >> > 2) <!-- [rfced] Please insert any keywords (beyond those that appear in >> the >> > title) for use on https://www.rfc-editor.org/search. --> >> > >> > publish-subscribe, authorization information format >> > >> > >> > >> > 3) <!--[rfced] Please clarify; how does "and setting up the keying >> material" >> > relate to the rest of the sentence? Is it a second topic for which >> > assumptions are made? Or, should "and" be "while"? >> > >> > Original: >> > This document makes the same assumptions as Section 4 of the ACE >> > framework [I-D.ietf-ace-oauth-authz] regarding Client and RS >> > registration with the AS and setting up the keying material. >> > >> > Perhaps: >> > This document makes the same assumptions as Section 4 of the ACE >> > framework [RFC9200] regarding Client and RS registration with the AS >> > and regarding the setup of the keying material. >> > --> >> > >> > >> > Suggested: >> > This document makes the same assumptions as Section 4 of the ACE >> > framework [RFC9200] regarding Client and RS registration with the AS >> > for setting up the keying material. >> > >> > >> > 4) <!--[rfced] Should this instance of "JWT token" be updated to read >> simply as "JWT" to >> > avoid redundancy (if expanded, "JWT token" would read "JSON Web Token >> token")? >> > >> > Original: >> > A JWT token uses JOSE, while a CWT token uses COSE >> > [RFC8152] for security protection. >> > >> > Perhaps: >> > A JWT uses JOSE, while a CWT token uses COSE >> > [RFC8152] for security protection. >> > >> > Suggested (as the same argument applies to CWT): >> > A JWT uses JOSE, while a CWT uses COSE >> > [RFC8152] for security protection. >> > >> > >> > >> > Similarly, should "PSK key be updated to "PSK" (if expanded, "PSK key" >> would read >> > Pre-Shared Key key")? >> > >> > Original: >> > To use TLS 1.3 with pre-shared keys, the Client utilizes the PSK key >> > extension specified in [RFC8446] using the key conveyed in the "cnf" >> > parameter of the AS response. >> > >> > Perhaps: >> > To use TLS 1.3 with pre-shared keys, the Client utilizes the PSK >> > extension specified in [RFC8446] using the key conveyed in the "cnf" >> > parameter of the AS response. >> > --> >> > >> > Yes, accepting the suggestion. >> > >> > >> > >> > 5) <!--[rfced] As "confidentiality" is not a term listed in RFC 4949 >> but "data >> > confidentiality" is listed, we have updated the list below accordingly. >> > Please let us know if further updates are needed. >> > >> > Original: >> > Certain security-related terms such as "authentication", >> > "authorization", "confidentiality", "(data) integrity", "message >> >> > authentication code", and "verify" are taken from [RFC4949]. >> > >> > Perhaps: >> > Certain security-related terms such as "authentication", >> > "authorization", "data confidentiality", "(data) integrity", >> "message >> > authentication code", and "verify" are taken from [RFC4949]. >> > --> >> > >> > Yes, accepting the suggestion. >> > >> > >> > >> > 6) <!--[rfced] Please clarify; what does "labeled with their topics" >> > refer to? >> > >> > Original: >> > The Clients are MQTT Clients, which connect to the >> > Broker to publish and subscribe to Application Messages, labelled >> > with their topics. >> > >> > Perhaps (if the Clients are labeled): >> > The Clients are MQTT Clients, which connect to the >> > Broker to publish and subscribe to Application Messages, and are >> labeled >> > with their topics. >> > >> > Or (if the Application Messages are labeled): >> > The Clients are MQTT Clients, which connect to the >> > Broker to publish and subscribe to Application Messages (which are >> > labeled with their topics). >> > --> >> > >> > The Or version is correct version and accepted: the Application >> Messages are labeled. >> > (This was written like this because MQTT v5 standard defines Topic Name >> as >> > The label attached to an Application Message which is matched against >> the Subscriptions known to the Server.) >> > >> > >> > 7) <!--[rfced] Should "Connection" be "Network Connection"? >> > >> > Original: >> > If the Network >> > Connection is closed without the Client first sending a >> > DISCONNECT packet with Reason Code 0x00 (Normal >> > disconnection) and the Connection has a Will Message, the >> > Will Message is published. >> > >> > Perhaps: >> > If the Network >> > Connection is closed without the Client first sending a >> > DISCONNECT packet with reason code 0x00 (Normal >> > disconnection) and the Network Connection has a Will Message, the >> > Will Message is published. >> > --> >> > >> > It should remain as original. >> > This was taken from MQTT v5 document: "If the Network Connection is >> closed without the Client first sending a DISCONNECT packet with Reason >> Code 0x00 (Normal disconnection) and the Connection has a Will Message, the >> Will Message is published". >> > The second "Connection" refers to MQTT Connection. >> > >> > Perhaps if unclear: >> > If the Network Connection is closed without the Client first sending a >> > DISCONNECT packet with reason code 0x00 (Normal >> > disconnection) and the MQTT Connection has a Will Message, the >> > Will Message is published. >> > >> > >> > >> > 8) <!--[rfced] Figure 1 has been widened slightly for readability; >> > please review. Specifically, a single space was added after >> > (C), (D), (E), and (F), which matches how (A) and (B) appear, >> > and the second lines of labels were indented. The side-by-side diff >> > file is here: https://www.rfc-editor.org/authors/rfc9431-rfcdiff.html >> > --> >> > >> > This is all good. >> > >> > >> > >> > 9) <!--[rfced] Regarding Figure 2, may "Len." be changed to "Len" to >> match >> > other instances within this figure, or is this difference intentional? >> > Also, will it be clear to readers how to read this diagram? >> Specifically, >> > the "Authentication Method" and "Authentication Data" portions seem >> unclear. >> > --> >> > >> > >> > Please change "Len." to "Len". >> > The figure is explained in 2.2.4.2. >> > Old: >> > To use AUTH, the Client MUST set the Authentication Method as a >> property of a CONNECT packet by using the property identifier 21 (0x15). >> This is followed by a UTF-8-encoded string containing the name of the >> Authentication Method, which MUST be set to "ace". If the Broker does not >> support this profile, it sends a CONNACK packet with reason code 0x8C (Bad >> authentication method). >> > >> > New: >> > Figure 2 shows the Authentication Method and Authentication Data fields >> when the client authenticates using AUTH property. The Client MUST set the >> Authentication Method as a property of a CONNECT packet by using the >> property identifier 21 (0x15). This is followed by a UTF-8-encoded string >> containing the name of the Authentication Method, which MUST be set to >> "ace". If the Broker does not support this profile, it sends a CONNACK >> packet with reason code 0x8C (Bad authentication method). >> > >> > >> > >> > 10) <!-- [rfced] Please review the "type" attribute of each sourcecode >> element >> > in the XML file to ensure correctness. If the current list of preferred >> > values for "type" ( >> https://www.rfc-editor.org/materials/sourcecode-types.txt) >> > does not contain an applicable type, then feel free to let us >> > know. Also, it is acceptable to leave the "type" attribute not >> > set. >> > >> > In addition, review each artwork element. Specifically, >> > should any artwork element be tagged as sourcecode or another >> > element? >> > --> >> > >> > "cddl" type is correct for the artwork in Figure 8. >> > >> > Fig 9 should be tagged with "sourcecode", with type "json". >> > >> > There is no other artwork to be tagged as source code. >> > >> > >> > >> > 11) <!--[rfced] As "PINGREQ" is defined in Section 1.3, we have updated >> > "PINGREQUEST" to "PINGREQ". Please let us know if further updates are >> needed. >> > >> > Original: >> > The Broker SHOULD check >> > for token expiration on receiving a PINGREQUEST. >> > >> > Current: >> > The Broker SHOULD check >> > for token expiration on receiving a PINGREQ packet. >> > --> >> > >> > Thank you. >> > >> > >> > >> > 12) <!--[rfced] Do you agree with these changes (added 'the', >> capitalized 'Client' >> > to match usage within the document)? If so, we will ask IANA to update >> the >> > description in the registry ( >> https://www.iana.org/assignments/media-type-sub-parameters/) >> > accordingly. >> > >> > Original: Permissions for MQTT client as defined in ... >> > >> > Current: Permissions for the MQTT Client as defined in ... >> > --> >> > >> > That is OK. >> > >> > 13) <!--[rfced] Please clarify the last part of this sentence; >> specifically, >> > what does the "which" clause describe? Is it the transport tokens that >> > the Broker may need to store until they expire? >> > >> > Original: >> > If the Broker supports the public >> > "authz-info" topic, described in Section 2.2.2, then this may be >> > vulnerable to a DDoS attack, where many Clients use the "authz-info" >> > public topic to transport tokens that are not meant to be used, and >> > which the Broker may need to store until the tokens expire. >> > >> > Perhaps: >> > If the Broker supports the public >> > "authz-info" topic, described in Section 2.2.2, then this may be >> > vulnerable to a DDoS attack, where many Clients use the "authz-info" >> > public topic to to transport tokens that are not meant to be used >> > and that the Broker may need to store until they expire. >> > --> >> > >> > Yes, it is the tokens that need to be stored. Accepting the suggestion. >> > >> > >> > 14) <!--[rfced] RFC 7525 has been obsoleted by RFC 9325, and RFC 8152 >> has been >> > obsoleted by RFC 9052. May these references be updated accordingly? >> > >> > RFC 7525 is cited once: >> > For TLS 1.2, however, a client >> > MUST support TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 for PSKs [RFC8442] >> > and TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 for RPKs [RFC8422], as >> > recommended in [RFC7525] (and adjusted to be a PSK cipher suite as >> > appropriate). >> > >> > RFC 8152 is cited once: >> > A JWT token uses JOSE, while a CWT token uses COSE >> > [RFC8152] for security protection. >> > --> >> > >> > >> > Yes, please. >> > >> > >> > 15) <!-- [rfced] FYI, we have added expansions for the following >> abbreviations >> > per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each >> > expansion in the document carefully to ensure correctness. >> > >> > Concise Binary Object Representation (CBOR) >> > JSON Web Encryption (JWE) >> > --> >> > >> > Correct. >> > >> > >> > 16) <!--[rfced] We have made the following terminology capitalized for >> consistency. >> > Please review this occurrences carefully and let us know if further >> updates >> > are necessary. >> > >> > Will >> > Will Delay Interval >> > Will Flag >> > Will Message >> > Will Properties >> > Will Retain >> > Will Topic >> > Will QoS >> > --> >> > >> > All capitalizations are correct. >> > >> > >> > 17) <!--[rfced] Throughout the text, the following terminology appears >> to be used inconsistently. >> > >> > a) We have updated to use the form on the right. Please let us know of >> any objections. >> > >> > Control Packet / control packet >> > Fixed Header / fixed header >> > password / Password >> > Payload / payload >> > username / Username >> > Variable Header / variable header >> > >> > "Control Packet", "Fixed Header", and "Variable Header" are capitalized >> in the MQTTv5 specification and, therefore, were capitalised here. (Source: >> https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) >> > >> > Password - capital is correct. >> > >> > "Username" is "User Name" in MQTTv5, and would be good if we keep the >> same field names exactly as the MQTT protocol specifies in their >> specification. >> > (I acknowledge that the original text did not do a consistent job of >> that). >> > >> > b) Please review the terms below and let us know if/how they may be >> made consistent. >> > >> > Session vs. session >> > Subscription vs. subscription >> > --> >> > >> > For session, the following need to be capitalised: >> > Section 1.3 >> > Old: >> > A Subscription comprises a Topic Filter and a maximum QoS. A >> Subscription is associated with a single session. >> > New: >> > A Subscription comprises a Topic Filter and a maximum QoS. A >> Subscription is associated with a single Session. >> > >> > Section 2.2.4.1 >> > Old: The Connect flags in the variable header specify the properties of >> the MQTT session. >> > New: The Connect flags in the variable header specify the properties of >> the MQTT Session. >> > >> > Old: In MQTT v5.0, the Client signals a clean session (i.e., that the >> session does not continue an existing session) by setting the Clean Start >> flag to 1 in the CONNECT packet. In this profile, the Client SHOULD always >> start with a clean session. The Broker MAY also signal that it does not >> support session continuation by setting the Session Expiry Interval to 0 in >> the CONNACK. If the Broker starts a clean session, the Broker MUST set the >> Session Present flag to 0 in the CONNACK packet to signal this to the >> Client. >> > >> > New: In MQTT v5.0, the Client signals a new Session (i.e., that the >> Session does not continue an existing Session) by setting the Clean Start >> flag to 1 in the CONNECT packet. In this profile, the Client SHOULD always >> start with a new Session. The Broker MAY also signal that it does not >> support the continuation of an existing Session by setting the Session >> Expiry Interval to 0 in the CONNACK. If the Broker starts a new Session, >> the Broker MUST set the Session Present flag to 0 in the CONNACK packet to >> signal this to the Client. >> > -------- >> > Old: The Broker MAY support session continuation, e.g., if the Broker >> requires it for QoS reasons. In this case, if a CONNECT packet is received >> with Clean Start set to 0 and there is a Session associated with the Client >> Identifier, the Broker MUST resume communications with the Client based on >> the state from the existing Session. In its response, the Broker MUST set >> the Session Present flag to 1 in the CONNACK packet to signal session >> continuation to the Client. The session state stored by the Client and the >> Broker is described in Section 5. >> > >> > New: The Broker MAY support continuing an existing Session, e.g., if >> the Broker requires it for QoS reasons. In this case, if a CONNECT packet >> is received with Clean Start set to 0, and there is a Session associated >> with the Client Identifier, the Broker MUST resume communications with the >> Client based on the state from the existing Session. In its response, the >> Broker MUST set the Session Present flag to 1 in the CONNACK packet to >> signal the continuation of an existing Session to the Client. The Session >> State stored by the Client and the Broker is described in Section 5. >> > >> > Old: When reconnecting to a Broker that supports session continuation, >> the Client MUST still provide a token in addition to using the same Client >> Identifier and setting the Clean Start to 0. The Broker MUST still perform >> PoP validation on the provided token. If the token matches the stored >> state, the Broker MAY skip introspecting a token-by-reference and use the >> stored introspection result. The Broker MUST also verify the Client is >> authorized to receive or send MQTT packets that are pending transmission. >> When a Client connects with a long Session Expiry Interval, the Broker may >> need to maintain the Client's MQTT session state after it disconnects for >> an extended period. Brokers SHOULD implement administrative policies to >> limit misuse. >> > >> > New: When reconnecting to a Broker that supports continuing existing >> Sessions, the Client MUST still provide a token in addition to using the >> same Client Identifier and setting the Clean Start to 0. The Broker MUST >> still perform PoP validation on the provided token. If the token matches >> the stored state, the Broker MAY skip introspecting a token-by-reference >> and use the stored introspection result. The Broker MUST also verify the >> Client is authorized to receive or send MQTT packets that are pending >> transmission. When a Client connects with a long Session Expiry Interval, >> the Broker may need to maintain the Client's MQTT Session State after it >> disconnects for an extended period. Brokers SHOULD implement administrative >> policies to limit misuse. >> > ------ >> > Old: Note that, according to the MQTT standard, the Broker uses the >> Client Identifier to identify the session state. In the case of a Client >> Identifier collision, a Client may take over another Client's session. >> > >> > New: Note that, according to the MQTT standard, the Broker uses the >> Client Identifier to identify the Session State. In the case of a Client >> Identifier collision, a Client may take over another Client's Session. >> > --------- >> > Section 2.4.2 >> > Old: If the Broker starts a new session, it MUST also set Session >> Present to 0 in the CONNACK packet to signal a clean session to the Client. >> Otherwise, it MUST set Session Present to 1. >> > >> > New: If the Broker starts a new Session, it MUST also set Session >> Present to 0 in the CONNACK packet to signal a new Session to the Client. >> Otherwise, it MUST set Session Present to 1. >> > >> > Section 5 >> > Old: In the case of a Client DISCONNECT, if the Session Expiry Interval >> is set to 0, the Broker doesn't maintain session state but MUST keep the >> retained messages. If the Broker maintains session state, the state MAY >> include the token and its introspection result (for reference tokens) in >> addition to the MQTT session state. The MQTT session state is identified by >> the Client Identifier and includes the following: >> > >> > the Client subscription state, >> > >> > New: >> > In the case of a Client DISCONNECT, if the Session Expiry Interval is >> set to 0, the Broker doesn't store the Session State but MUST keep the >> retained messages. If the Broker stores the Session State, the state MAY >> include the token and its introspection result (for reference tokens) in >> addition to the MQTT Session State. The MQTT Session State is identified by >> the Client Identifier and includes the following: >> > >> > the Client Subscriptions, >> > ---- >> > Old: >> > * if the Session is currently not connected, the time at which the >> Session will end and session state will be discarded. >> > The token/introspection state is not part of the MQTT session state, >> and PoP validation is required for each new connection, regardless of >> whether MQTT session continuation is used. >> > >> > New: >> > * if the Session is currently not connected, the time at which the >> Session will end and the Session State will be discarded. >> > The token/introspection state is not part of the MQTT Session State, >> and PoP validation is required for each new connection, regardless of >> whether existing MQTT Sessions are continued. >> > >> > (Note that Session State is capitalised in MQTT Spec.) >> > >> > Section 6.1 >> > Old: The Client SHOULD set the Clean flag to 1 to always start a new >> session. If the Clean flag is set to 0, the Broker MUST resume >> communications with the Client based on the state from the current Session >> (as identified by the Client Identifier). If there is no Session associated >> with the Client Identifier, the Broker MUST create a new session. The >> Broker MUST set the Session Present flag in the CONNACK packet accordingly, >> i.e., 0 to indicate a clean session to the Client and 1 to indicate session >> continuation. The Broker MUST still perform PoP validation on the provided >> Client token. MQTT v3.1.1 does not use a Session Expiry Interval, and the >> Client expects that the Broker maintains the session state after it >> disconnects. However, the stored session state can be discarded as a result >> of administrator action or policies (e.g., defining an automated response >> based on storage capabilities), and Brokers SHOULD implement administrative >> policies to limit misuse. >> > >> > New: The Client SHOULD set the Clean flag to 1 to always start a new >> Session. If the Clean flag is set to 0, the Broker MUST resume >> communications with the Client based on the state from the current Session >> (as identified by the Client Identifier). If there is no Session associated >> with the Client Identifier, the Broker MUST create a new Session. The >> Broker MUST set the Session Present flag in the CONNACK packet accordingly, >> i.e., 0 to indicate a new Session to the Client and 1 to indicate that the >> existing Session is continued. The Broker MUST still perform PoP validation >> on the provided Client token. MQTT v3.1.1 does not use a Session Expiry >> Interval, and the Client expects that the Broker maintains the Session >> State after it disconnects. However, the stored Session State can be >> discarded as a result of administrator action or policies (e.g., defining >> an automated response based on storage capabilities), and Brokers SHOULD >> implement administrative policies to limit misuse. >> > >> > Section 6.2 >> > Old: Therefore, the Broker will disconnect on almost any error and may >> not keep the session state, necessitating that clients make a greater >> effort to ensure that tokens remain valid and do not attempt to publish to >> topics that they do not have permissions for. >> > >> > New: Therefore, the Broker will disconnect on almost any error and may >> not keep the Session State, necessitating that clients make a greater >> effort to ensure that tokens remain valid and do not attempt to publish to >> topics that they do not have permissions for. >> > >> > Section 8 >> > Old: After the Broker validates an access token and accepts a >> connection from a client, it caches the token to authorize a Client's >> publish and subscribe requests in an ongoing session. >> > >> > New: After the Broker validates an access token and accepts a >> connection from a client, it caches the token to authorize a Client's >> publish and subscribe requests in an ongoing Session. >> > >> > Old: For MQTT v5.0, when a Client connects with a long Session Expiry >> Interval, the Broker may need to maintain the Client's MQTT session state >> after it disconnects for an extended period. For MQTT v3.1.1, the session >> state may need to be stored indefinitely, as it does not have a Session >> Expiry Interval feature. The Broker SHOULD implement administrative >> policies to limit misuse of the session continuation by the Client. >> > >> > New: For MQTT v5.0, when a Client connects with a long Session Expiry >> Interval, the Broker may need to maintain the Client's MQTT Session State >> after it disconnects for an extended period. For MQTT v3.1.1, the Session >> State may need to be stored indefinitely, as it does not have a Session >> Expiry Interval feature. The Broker SHOULD implement administrative >> policies to limit misuse by the Client resulting from continuing existing >> Sessions. >> > >> > ===================================== >> > All "subscription" instances are to be capitalised to "Subscription" >> with the following exceptions, which suggest additional changes following >> MQTT specification: >> > >> > Section 3.2 >> > Old: To forward PUBLISH packets to the subscribing Clients, the Broker >> identifies all the subscribers that have valid matching topic subscriptions >> to the Topic Name of the PUBLISH packet (i.e., the tokens are valid, and >> token scopes allow a subscription to this particular Topic Name). >> > >> > New: To forward PUBLISH packets to the subscribing Clients, the Broker >> identifies all the subscribers that have valid matching Topic Subscriptions >> to the Topic Name of the PUBLISH packet (i.e., the tokens are valid, and >> token scopes allow a Subscription to this particular Topic Name). >> > --------------------- >> > Section 3.3 >> > Old: For example, if the Client sends a subscription request for topic >> "a/b/*" and has a token that permits "a/*", this is a valid subscription >> request, as "a/b/*" is a subset of "a/*". (The process is similar to a >> Broker matching the Topic Name in a PUBLISH packet against the >> Subscriptions known to the Server.) >> > >> > New: For example, if the Client sends a SUBSCRIBE request for topic >> "a/b/*" and has a token that permits "a/*", this is a valid SUBSCRIBE >> request, as "a/b/*" is a subset of "a/*". (The process is similar to a >> Broker matching the Topic Name in a PUBLISH packet against the >> Subscriptions known to the Server.) >> > ------------------------------- >> > >> > >> > >> > 18) <!-- [rfced] Please review the "Inclusive Language" portion of the >> online >> > Style Guide < >> https://www.rfc-editor.org/styleguide/part2/#inclusive_language> >> > and let us know if any changes are needed. >> > >> > Note that our script did not flag any words in particular, but this >> should still >> > be reviewed as a best practice. >> > --> >> > >> > This was reviewed earlier, and no issues are expected. >> > >> > Please let me know if i need to make further clarifications. >> > Kind regards, >> > --Cigdem >> > >> > On Jun 19, 2023, rfc-editor@rfc-editor.org wrote: >> > >> > *****IMPORTANT***** >> > >> > Updated 2023/06/19 >> > >> > RFC Author(s): >> > -------------- >> > >> > Instructions for Completing AUTH48 >> > >> > Your document has now entered AUTH48. Once it has been reviewed and >> > approved by you and all coauthors, it will be published as an RFC. >> > If an author is no longer available, there are several remedies >> > available as listed in the FAQ (https://www.rfc-editor.org/faq/). >> > >> > You and you coauthors are responsible for engaging other parties >> > (e.g., Contributors or Working Group) as necessary before providing >> > your approval. >> > >> > Planning your review >> > --------------------- >> > >> > Please review the following aspects of your document: >> > >> > * RFC Editor questions >> > >> > Please review and resolve any questions raised by the RFC Editor >> > that have been included in the XML file as comments marked as >> > follows: >> > >> > <!-- [rfced] ... --> >> > >> > These questions will also be sent in a subsequent email. >> > >> > * Changes submitted by coauthors >> > >> > Please ensure that you review any changes submitted by your >> > coauthors. We assume that if you do not speak up that you >> > agree to changes submitted by your coauthors. >> > >> > * Content >> > >> > Please review the full content of the document, as this cannot >> > change once the RFC is published. Please pay particular attention to: >> > - IANA considerations updates (if applicable) >> > - contact information >> > - references >> > >> > * Copyright notices and legends >> > >> > Please review the copyright notice and legends as defined in >> > RFC 5378 and the Trust Legal Provisions >> > (TLP – https://trustee.ietf.org/license-info/). >> > >> > * Semantic markup >> > >> > Please review the markup in the XML file to ensure that elements of >> > content are correctly tagged. For example, ensure that <sourcecode> >> > and <artwork> are set correctly. See details at >> > <https://authors.ietf.org/rfcxml-vocabulary>. >> > >> > * Formatted output >> > >> > Please review the PDF, HTML, and TXT files to ensure that the >> > formatted output, as generated from the markup in the XML file, is >> > reasonable. Please note that the TXT will have formatting >> > limitations compared to the PDF and HTML. >> > >> > >> > Submitting changes >> > ------------------ >> > >> > To submit changes, please reply to this email using ‘REPLY ALL’ as all >> > the parties CCed on this message need to see your changes. The parties >> > include: >> > >> > * your coauthors >> > >> > * rfc-editor@rfc-editor.org (the RPC team) >> > >> > * other document participants, depending on the stream (e.g., >> > IETF Stream participants are your working group chairs, the >> > responsible ADs, and the document shepherd). >> > >> > * auth48archive@rfc-editor.org, which is a new archival mailing >> list >> > to preserve AUTH48 conversations; it is not an active discussion >> > list: >> > >> > * More info: >> > >> https://mailarchive.ietf.org/arch/msg/ietf-announce/yb6lpIGh-4Q9l2USxIAe6P8O4Zc >> > >> > * The archive itself: >> > https://mailarchive.ietf.org/arch/browse/auth48archive/ >> > >> > * Note: If only absolutely necessary, you may temporarily opt out >> > of the archiving of messages (e.g., to discuss a sensitive >> matter). >> > If needed, please add a note at the top of the message that you >> > have dropped the address. When the discussion is concluded, >> > auth48archive@rfc-editor.org will be re-added to the CC list >> and >> > its addition will be noted at the top of the message. >> > >> > You may submit your changes in one of two ways: >> > >> > An update to the provided XML file >> > — OR — >> > An explicit list of changes in this format >> > >> > Section # (or indicate Global) >> > >> > OLD: >> > old text >> > >> > NEW: >> > new text >> > >> > You do not need to reply with both an updated XML file and an explicit >> > list of changes, as either form is sufficient. >> > >> > We will ask a stream manager to review and approve any changes that seem >> > beyond editorial in nature, e.g., addition of new text, deletion of >> text, >> > and technical changes. Information about stream managers can be found >> in >> > the FAQ. Editorial changes do not require approval from a stream >> manager. >> > >> > >> > Approving for publication >> > -------------------------- >> > >> > To approve your RFC for publication, please reply to this email stating >> > that you approve this RFC for publication. Please use ‘REPLY ALL’, >> > as all the parties CCed on this message need to see your approval. >> > >> > >> > Files >> > ----- >> > >> > The files are available here: >> > https://www.rfc-editor.org/authors/rfc9431.xml >> > https://www.rfc-editor.org/authors/rfc9431.html >> > https://www.rfc-editor.org/authors/rfc9431.pdf >> > https://www.rfc-editor.org/authors/rfc9431.txt >> > >> > Diff file of the text: >> > https://www.rfc-editor.org/authors/rfc9431-diff.html >> > https://www.rfc-editor.org/authors/rfc9431-rfcdiff.html (side by >> side) >> > >> > Diff of the XML: >> > https://www.rfc-editor.org/authors/rfc9431-xmldiff1.html >> > >> > The following files are provided to facilitate creation of your own >> > diff files of the XML. >> > >> > Initial XMLv3 created using XMLv2 as input: >> > https://www.rfc-editor.org/authors/rfc9431.original.v2v3.xml >> > >> > XMLv3 file that is a best effort to capture v3-related format updates >> > only: >> > https://www.rfc-editor.org/authors/rfc9431.form.xml >> > >> > >> > Tracking progress >> > ----------------- >> > >> > The details of the AUTH48 status of your document are here: >> > https://www.rfc-editor.org/auth48/rfc9431 >> > >> > Please let us know if you have any questions. >> > >> > Thank you for your cooperation, >> > >> > RFC Editor >> > >> > -------------------------------------- >> > RFC9431 (draft-ietf-ace-mqtt-tls-profile-17) >> > >> > Title : Message Queuing Telemetry Transport (MQTT)-TLS >> profile of Authentication and Authorization for Constrained Environments >> (ACE) Framework >> > Author(s) : C. Sengul, A. Kirby >> > WG Chair(s) : Daniel Migault, Loganaden Velvindron >> > Area Director(s) : Roman Danyliw, Paul Wouters >> >>
- [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-ace-m… rfc-editor
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… rfc-editor
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Cigdem Sengul
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Alanna Paloma
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Alanna Paloma
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Cigdem Sengul
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Anthony Kirby
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Alanna Paloma
- [auth48] [IANA] Re: AUTH48: RFC-to-be 9431 <draft… Alanna Paloma
- [auth48] [IANA #1275931] [IANA] Re: AUTH48: RFC-t… Amanda Baber via RT
- [auth48] [IANA #1275931] [IANA] Re: AUTH48: RFC-t… Amanda Baber via RT
- Re: [auth48] [IANA #1275931] [IANA] Re: AUTH48: R… Alanna Paloma
- Re: [auth48] AUTH48: RFC-to-be 9431 <draft-ietf-a… Alanna Paloma