Re: [secdir] Secdir last call review of draft-ietf-anima-constrained-join-proxy-09

Toerless Eckert <tte@cs.fau.de> Fri, 08 April 2022 16:49 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
X-Original-To: secdir@ietfa.amsl.com
Delivered-To: secdir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B1B4E3A1786; Fri, 8 Apr 2022 09:49:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.88
X-Spam-Level:
X-Spam-Status: No, score=-0.88 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=no 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 DDauA7cDV3QV; Fri, 8 Apr 2022 09:49:35 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:40]) (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 EC6753A178B; Fri, 8 Apr 2022 09:49:32 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [131.188.34.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id 58E4A58C4AF; Fri, 8 Apr 2022 18:49:26 +0200 (CEST)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id 4607A4EAB58; Fri, 8 Apr 2022 18:49:26 +0200 (CEST)
Date: Fri, 08 Apr 2022 18:49:26 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: Mališa Vučinić <malisa.vucinic@inria.fr>
Cc: secdir@ietf.org, anima@ietf.org, draft-ietf-anima-constrained-join-proxy.all@ietf.org, last-call@ietf.org
Message-ID: <YlBnlrzLf58SbU8X@faui48e.informatik.uni-erlangen.de>
References: <164942421882.15991.10648263530009015921@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <164942421882.15991.10648263530009015921@ietfa.amsl.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/secdir/Nl_idGhpG2TxmLjU6zMcEidqLHQ>
Subject: Re: [secdir] Secdir last call review of draft-ietf-anima-constrained-join-proxy-09
X-BeenThere: secdir@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Security Area Directorate <secdir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/secdir>, <mailto:secdir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/secdir/>
List-Post: <mailto:secdir@ietf.org>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Apr 2022 16:49:40 -0000

Malisa,

Thanks a lot for the review.

Just quick feedback on one of your points

On Fri, Apr 08, 2022 at 06:23:38AM -0700, Mališa Vučinić via Datatracker wrote:
> Interoperability-wise, the operation of a Stateful Join Proxy does not seem to
> necessitate a standardization effort as the processing is contained on a single
> network node.

I disagree with this assessment. The stateful join proxy  is a new element
establishing a distributed machinery between three components, the pledge, the
proxy and the registrar, which requires interoperability between the three.

> The Registrar processes the packet from the Join Proxy as any
> other packet.

The fact that the DTLS state machinery of registrar and pledge do not have to
change over a proxy-free operation is the result of the miticulous, packet by
packet forwarding specified in 5.1. Rather a proof of the opposite of what you
claim. For example: i can easily see how i could build a proxy that would break the
connection by working differently.

> The language that describes the operation of a Stateful Join
> Proxy in Section 5.1 is informational and describes the process rather than the
> protocol.

It describes packet forwarding based on flow lookup, network header rewrite/recreate
and delivery to new destination. If that isn't a standard demanding protocol operation, then
we should have prohibited single-router-hop rfc791 networks, bcause this is already sso
much more interoperable machinery than what is described in that rfc.

Btw: Nobody says you can't build a multi-proxy-hop-network, its just not
the desire of this spec to standardize it.

Cheers
    Toerless

> Stateless Join Proxy specification in Section 5.3 defines the message format
> that the Registrar and the Join Proxy agree on, which is necessary from the
> interoperability point of view. The message is split into Header and Content
> parts, where Header is opaque to the Registrar and just returned verbatim to
> the Join Proxy. In that sense, I don’t understand the need to specify the inner
> structure of the Header part. I believe this will only introduce
> interoperability issues with future version of the specification. In the last
> paragraph in Section 5.3, you argue that if any (new) field is not recognized
> by the Registrar, it should be ignored. But then, the protocol simply won’t be
> backwards compatible because Stateless Join Proxy will have expected the
> Registrar to echo the new fields. Why complicate this and not leave the whole
> “Header” struct as an opaque byte string that is just echoed by the Registrar?
> 
> Security-wise, document is incomplete. Without protection of the Header field,
> an on-path attacker can easily alter the return address of the pledge to DoS
> it. This is all discussed in RFC8974 and RFC9031 so I don’t understand why none
> of those concerns are addressed, given the similarity of the topic. Security
> considerations or Figure 5 do not elaborate on DoS considerations of either
> approach.
> 
> In general, I think that the document would use an editorial pass as there seem
> to be many small inconsistencies. For example, Security Considerations talk
> about a “CBOR map” while the normative message structure uses CBOR arrays.
> 

-- 
---
tte@cs.fau.de