Re: [core] đź”” WGLC of draft-ietf-core-stateless-01

Mališa Vučinić <malisa.vucinic@inria.fr> Wed, 10 July 2019 12:22 UTC

Return-Path: <malisa.vucinic@inria.fr>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74A6D1200FB for <core@ietfa.amsl.com>; Wed, 10 Jul 2019 05:22:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.897
X-Spam-Level:
X-Spam-Status: No, score=-6.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FROM_EXCESS_BASE64=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] 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 cx_SZRSIvp58 for <core@ietfa.amsl.com>; Wed, 10 Jul 2019 05:22:24 -0700 (PDT)
Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (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 2BE8A120026 for <core@ietf.org>; Wed, 10 Jul 2019 05:22:22 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.63,474,1557180000"; d="scan'208,217";a="391264464"
Received: from wifi-eduroam-85-050.paris.inria.fr ([128.93.85.50]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jul 2019 14:22:20 +0200
From: Mališa Vučinić <malisa.vucinic@inria.fr>
Message-Id: <55AA5D08-C341-4FB4-842E-FDE84931FD82@inria.fr>
Content-Type: multipart/alternative; boundary="Apple-Mail=_5F605860-0311-4F7B-B600-8151A0D57ED4"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Wed, 10 Jul 2019 14:22:20 +0200
In-Reply-To: <31720567-638E-4951-A4E3-368D454216A6@tzi.org>
Cc: core <core@ietf.org>
To: Carsten Bormann <cabo@tzi.org>
References: <BACE74BC-C665-484D-A2D2-541B42077E93@tzi.org> <0F46EC62-79D6-4C4C-B691-668E86E3B0F8@inria.fr> <31720567-638E-4951-A4E3-368D454216A6@tzi.org>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/3etIXjR4IR1jW6-yKDyo9xRJJxA>
Subject: Re: [core] đź”” WGLC of draft-ietf-core-stateless-01
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jul 2019 12:22:28 -0000


> On 10 Jul 2019, at 13:51, Carsten Bormann <cabo@tzi.org> wrote:
> 
>> On Jul 10, 2019, at 11:41, Mališa Vučinić <malisa.vucinic@inria.fr <mailto:malisa.vucinic@inria.fr>> wrote:
>> 
>> In case the extended token and Observe are used together, where multiple (legitimate) Observe responses carry the same (extended) token, replay protection using sequence numbers at the client might falsely identify such tokens as replays. How should this be handled?
> 
> Can you more specific about the scenario?
> 
> 3.1 says:
> 
>   When multiple clients observe [RFC7641] the same resource,
>   aggregating requests is REQUIRED (Section 3.1 of RFC 7641).  As this
>   cannot be satisfied without keeping request state, an intermediary
>   MUST NOT include an Observe Option in requests it sends without
>   keeping request state.


My understanding is that the text above relates to a proxy handling observations from multiple clients. I do not read from this that Observe is in general forbidden with extended tokens.The scenario I am talking about is just the basic client - server interaction, with client being stateless and using the Observe option. The server will send multiple Observe responses with the same token. How should client’s implementation of replay protection handle this?


>> A client (or intermediary in the role of a client) that depends on
>>  support for extended token lengths (Section 2) from the next hop to
>>  avoid keeping request state MUST perform a discovery of support
>>  (Section 2.2) before it can be stateless.
>> 
>> There are environments, 6TiSCH being one example, where the support for extended tokens can be known before hand, e.g. through out of band information such as dependency in the draft. In that case, saving two messages on the wire in constrained environments by omitting the discovery seems quite reasonable. I would therefore argue for this MUST to be replaced with a SHOULD.
> 
> Or, alternatively, being set up for operation in such a network could count as such a form of discovery.

Could we have a note on this in the draft?

> 
>> Some nits below:
>> 
>>  If a server supports extended token lengths but receives a request
>>  with a token of a length it is unwilling or unable to process, it
>>  MUST NOT reject the message.  Instead, it SHOULD return a 4.00 (Bad
>>  Request) response.  This implies that the server returns the entire
>>  token verbatim.
>> 
>> This paragraph to me seems self-contradictory. If a server cannot process a request with a token length greater than some value, is it reasonable to expect that it can return it in the Bad Request response?
> 
> The note (“This implies”) already points out the significant onus.  I’m not sure we can really require the MUST NOT.

Ok, so I would suggest rephrasing this to:

"Instead, it SHOULD return a 4.00 (Bad Request) response and attempt returning the entire token verbatim."

>> If SHOULD is not respected, what happens?
> 
> The client might have trouble fully assessing the situation.


>> In wireless mesh networks,
>>  where all traffic is visible to a passive attacker, encryption may
>>  not be needed as the attacker can get the same information from
>>  analyzing the traffic flows.
>> 
>> I am quite confused by this sentence which seems as an oversimplification. What kind of an attacker are you considering here?
> 
> I agree that there is a large box of pandora here.  In particular, an endpoint often cannot be sure their traffic stays within the wireless network.  I’m also not sure this is only about wireless mesh networks and not other wireless networks. So I would reformulate this “Where a passive attacker can get the same information from analyzing the traffic flows, there may be little gain in adding encryption.”.

Works for me.