Re: [Ace] Roman Danyliw's No Objection on draft-ietf-ace-mqtt-tls-profile-15: (with COMMENT)

Cigdem Sengul <cigdem.sengul@gmail.com> Thu, 10 March 2022 12:32 UTC

Return-Path: <cigdem.sengul@gmail.com>
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 AB1C73A07D9; Thu, 10 Mar 2022 04:32:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.107
X-Spam-Level:
X-Spam-Status: No, score=-7.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_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] 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 W9qLyHm9o2Je; Thu, 10 Mar 2022 04:32:49 -0800 (PST)
Received: from mail-vk1-xa33.google.com (mail-vk1-xa33.google.com [IPv6:2607:f8b0:4864:20::a33]) (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 D89823A07E2; Thu, 10 Mar 2022 04:32:48 -0800 (PST)
Received: by mail-vk1-xa33.google.com with SMTP id x62so2879140vkg.6; Thu, 10 Mar 2022 04:32:48 -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=6LhLREmeVmOxq8FSZD6DT1gkigDRrS00mPzeYsK9HHs=; b=DlLKsrgugi4YxpBpNBWElALjcDpJ4J2lbHRA2mKXasw4rZCjUgxYsyImKtXXO7UwEo Vw2n86DVWHxwXVSUddO5EU5M32IxJh2ergKakfmHafjF77+efI4GKrAY4QCh2E3mmm1E 9QV92JFGqN7KTzJxYm5lPokeqHkqsot448PGVz88D+M1ovFeTb49wLm65xoe0LODcAUa 0BgOrmXlhHY97WsO1xyoiKOBafbcchXB6VHbltFrXKSdb+UujycwFKADUSIEkIoA2ZU1 u6fjCv6cO1dx+hAlwt4+uYrn2WpkYSeLM1M1zOpUHpgbKWkugBXZc94TWJa0/pqeSCLc 5hfA==
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=6LhLREmeVmOxq8FSZD6DT1gkigDRrS00mPzeYsK9HHs=; b=RQHMTT64geD228B+8LoaPOpvE996lfcIUxe1KiWo5rxniJiPRVvAxHBebDblgGcR02 6+xWKCXuN/wUIF6Zf/zosLfJ/luSaiO6fPO/FSuj49Kyv6DcCBoeuwqxqM2zmI+lfhPm hOTdIeNlKaEZejhSH9Zr7PQRxKmUrThrijDnh+jAW83pjOxBT9HMa/fxLHTnXeYFqBAL X7FTHMuZqGpp2NHOo8N/2KrrHkUCkacZyW6LTcdO4ioG5/NKw+SQDmmkH/qrgUuZzFGH rxEueCx8jCUqvapbtc1sZM7qX1xUtPxQoQ8vM1nBk1DBRhiX48QZFA/1C9jxL9ZxDVP4 bGCg==
X-Gm-Message-State: AOAM533ofINy2ixAw8m5clKC8C0qom4565KQd046yqcv4VEf0KmS175p JFB7CLNMLH3gyhYw+bU8NIpHjxHS16akUnKLm+LeZkaGgW9hSg==
X-Google-Smtp-Source: ABdhPJwEQ1CpioimReCQeIcds3mkg1MLgNA/UBRAXAbrQTUpBDBgH4B+BSEnphfuIIHnunIGfDNy/gqQMA2KETpzZrI=
X-Received: by 2002:a05:6122:a16:b0:337:9ac4:5872 with SMTP id 22-20020a0561220a1600b003379ac45872mr2255685vkn.21.1646915567241; Thu, 10 Mar 2022 04:32:47 -0800 (PST)
MIME-Version: 1.0
References: <164678055841.27251.8215934547015351301@ietfa.amsl.com>
In-Reply-To: <164678055841.27251.8215934547015351301@ietfa.amsl.com>
From: Cigdem Sengul <cigdem.sengul@gmail.com>
Date: Thu, 10 Mar 2022 12:32:35 +0000
Message-ID: <CAA7SwCMvzpVpB8nTEJX+umXS_UMtNK=DPKW+DzVs9d3_aTfMfA@mail.gmail.com>
To: Roman Danyliw <rdd@cert.org>
Cc: The IESG <iesg@ietf.org>, draft-ietf-ace-mqtt-tls-profile@ietf.org, ace-chairs@ietf.org, Ace Wg <ace@ietf.org>, Daniel Migault <daniel.migault@ericsson.com>
Content-Type: multipart/alternative; boundary="0000000000005c500d05d9dc6995"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/PjJjeJ_J4cAc2F63C7ei49ABUis>
Subject: Re: [Ace] Roman Danyliw's No Objection on draft-ietf-ace-mqtt-tls-profile-15: (with COMMENT)
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: Thu, 10 Mar 2022 12:32:52 -0000

Dear Roman,
Thank you for your comments.  I tried to respond to them inline below.
(I have made fixes here: https://github.com/ace-wg/mqtt-tls-profile/pull/104
)

On Tue, 8 Mar 2022 at 23:02, Roman Danyliw via Datatracker <noreply@ietf.org>
wrote:

> Roman Danyliw has entered the following ballot position for
> draft-ietf-ace-mqtt-tls-profile-15: No Objection
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to
> https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/
> for more information about how to handle DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-ace-mqtt-tls-profile/
>
>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> ** Section 2.
>
>    If the Client is resource-constrained or does not support HTTPS, a
>    separate Client Authorization Server may carry out the token request
>    on behalf of the Client, and later, onboard the Client with the
>    token.
>
> Appreciating that the CAS is out of scope, I’m trying to understand which
> of
> the (A) – (F) interactions are handled by the Client and which would be
> handled
> by the CAS.  Figure 1 is a ambiguous.  (A) and (B) seem like they would be
> covered by the CAS, but I’m assuming (C) and (D) are the Client after being
> provisioned with the access token (from A and B).  Is that correct?  If
> so, it
> would be helpful to clarify that in the text and/or diagram.
>

[That is correct. CAS was expected to be helpful for clients that are not
able to do the HTTPS.
We have a CAS definiton in 1.2 -

Client Authorization Server (CAS)
           An entity that prepares and endorses authentication and
           authorization data for a Client, and communicates using HTTPS
           to the AS.


In the figure, we tried to capture the two separately: (1) Client
Authorization interface,

and (2) MQTT Pub/Sub Interface.

Client may be able to do both (1) and (2), or rely on CAS for (1), and
is expected to be provisioned

with a otken for Pub/Sub Interface if aiming to publish/subscribe to
proteced topics.


We had the following text in the document:
" If the Client is resource-constrained or does not support HTTPS, a

   separate Client Authorization Server may carry out the token request
   on behalf of the Client, and later, onboard the Client with the
   token. "


Is revising it so that we point to the figure sufficient clarification?

" If the Client is resource-constrained or does not support HTTPS, a

   separate Client Authorization Server may carry out the token request
   on behalf of the Client (Figure 1 (A) and (B)), and later, onboard
the Client with the
   token.

]



> ** Section 3.3.
>    As a response to the SUBSCRIBE packet, the Broker issues a SUBACK.
>    For each Topic Filter, the SUBACK packet includes a return code
>    matching the QoS level for the corresponding Topic Filter.  In the
>    case of failure, the return code is 0x87, indicating that the Client
>    is 'Not authorized'.  A reason code is returned for each Topic
>    Filter.
>
> This may be a detail of MQTT.  Does the explicit use of “not authorized”
> vs.
> “not authorized/not found” leak the existence of a topic name to an
> off-path
> attacker?  It seems that with “not authorized” semantics, one could try to
> guess topic name with enumeration, say, try 1:
> “/topic/is-the-sensitive-project-called-A”, try 2:
> “/topic/is-the-sensitive-project-called-B”, etc.
>

[CS : I see your point. MQTT has also the following error code:

0x80

Unspecified error

The subscription is not accepted and the Server either does not wish to
reveal the reason or none of the other Reason Codes apply.

We can add: "The Broker MAY return 0x80 Unspecified error if they do not
want to leak the topic names to unauthorised clients."
Would that be OK?
]


> Editorial Nits
>
> ** Section 1. Editorial. s/The Client-AS and RS-AS/The Client-AS and RS-AS
> communication/
>
[CS: This was changed to "The client-AS and RS-AS exchanges" based on
artart review.]

>
> ** Section 1.3.  Editorial.  Chose either the “65535” or “65,535”
> convention
> (comma or no comma).  “UTF-8 string” uses the former and “binary data”
> uses the
> latter
>
[CS: Fixed to 65535]

>
> ** Section 1.2. Editorial.  SUBACK.  Describe the who is the sender and
> receiver like in the other message types.
>
> OLD
> Subscribe acknowledgement.
>
> NEW
> Subscribe acknowledgement from the Broker to the Client.
>
[CS: Fixed]

>
> ** Section 2.  Editorial.
>    The token request and
>    response use the token endpoint at the AS, specified for HTTP-based
>    interactions in Section 5.8 of the ACE framework
>    [I-D.ietf-ace-oauth-authz].
>
> This reference should likely read Section 4 of [I-D.ietf-ace-oauth-authz]
> as
> this section included the bullet protocol flow from (A) – (E).
>

[CS: Actually, I was referring to section 5.8 to highlight the
HTTP-specific interactions, and in the rest of that paragraph I refer
to the specific section for introspection as well. I will keep this as-is
if it is not affecting clarity.]


>
> ** Section 2.3.  Should it be MQTT messages vs. MQTT packets?  For
> example, in
> “… to allow a Client’s future PUBLISH and SUBSCRIBE packets”.
>

[CS: That crept in because the MQTT standard uses both Publish Message,
Publish Packet.
But in this context, "message" is more meaningful. So, fixed.]


>
> ** Section 3.3.  Editorial.  s/token token/token scope which/
>

[CS: This has been fixed in an earlier revision. ]

Thanks again for your review.
Kind regards,
--Cigdem