Re: [Lwip] [IPsec] draft-ietf-lwig-minimal-esp shepherd writeup

Mohit Sethi M <mohit.m.sethi@ericsson.com> Mon, 22 March 2021 13:14 UTC

Return-Path: <mohit.m.sethi@ericsson.com>
X-Original-To: lwip@ietfa.amsl.com
Delivered-To: lwip@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 048D53A1447; Mon, 22 Mar 2021 06:14:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.452
X-Spam-Level:
X-Spam-Status: No, score=-0.452 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.251, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.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 l0mXu2h7ghgS; Mon, 22 Mar 2021 06:14:17 -0700 (PDT)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40082.outbound.protection.outlook.com [40.107.4.82]) (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 B524A3A1446; Mon, 22 Mar 2021 06:14:16 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A2AffjwBzlzODiYwMVlh/KWD9zKqXmPpYX8vyOG53CxbGd0Y2jfD8BZzX+/e9nW7G2TCbjXnp8QEaqWP0iul3zQ/8je3xQQXjclxuykwedjTbnCF4MTw/1cewCOxveCOVCJvOg4nWsUJgnSiYuhjUKbwF6jr20El5wk+uM0w8owon/zgpORSc9blrFOoWwRfUMTpWtkyzxrE9jlSpAUMWR3NGDxhuuMnlBFvPcihvRalBM4cNxP4uf7WMljPSW1qN2GQVokqCdme+WDThQX3X+OVE7xd7kic0pheXO1QIWdRSJMMbZKTF3jo/00S+jybQhA80pOQzIPM3bMp+vAD1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GWZalUlWDdknjc7yZ6FRmixzLbM6x963tcID3pzE4HI=; b=YRoI/2tlAuFCN7zvmABhcnMG2x8gdrcipUGOgr+2vciGXqgnVljpK2wcBqu+Z03iF8c1z1rfYMEf6kvI9yI1ox8gL38BBUGwZLZ9k44OIMdH4OGS+oSdjlm7UibJxJTe00wxRh79Ct17fiqX+6QjffHfKcuIDqIXvzHS7kwRkgobq4GRpICA3h03WvdwZe0xx1HaQii/WVnGqsVmy2S2/m3EISg6QZmn5/4EEj5a6JkB/k4m683qcIeHu0YStUddoZxOPn+I5hkqnrEbdRhH/pLUo0Z4TAcTX0cgjf8kbcW7WdpQu6mt4l+59fJQ0h9WYkz7eaZYzzKkQGkqVKoyHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GWZalUlWDdknjc7yZ6FRmixzLbM6x963tcID3pzE4HI=; b=IzK+JfVskeFpG41+CxGxRO5fmcmO+okp5id6jH2wEqi+hw14/OgpWqXGlBQVC34Z5PjG6oZQD3gF/J71uhh+9mMTYz4mK34GT9Di79V1h2aiMpgqVGQG3/Y6e7RW7pNldKDLSY9ijBdD1DN/dO/WIlW+erHy6ssUXUy0xMtxP78=
Received: from HE1PR07MB3436.eurprd07.prod.outlook.com (2603:10a6:7:37::31) by HE1PR0701MB2508.eurprd07.prod.outlook.com (2603:10a6:3:72::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.9; Mon, 22 Mar 2021 13:14:11 +0000
Received: from HE1PR07MB3436.eurprd07.prod.outlook.com ([fe80::9028:916a:402e:aa6a]) by HE1PR07MB3436.eurprd07.prod.outlook.com ([fe80::9028:916a:402e:aa6a%6]) with mapi id 15.20.3977.018; Mon, 22 Mar 2021 13:14:11 +0000
From: Mohit Sethi M <mohit.m.sethi@ericsson.com>
To: Paul Wouters <paul@nohats.ca>, Daniel Migault <mglt.ietf@gmail.com>
CC: "ipsec@ietf.org" <ipsec@ietf.org>, "lwip@ietf.org" <lwip@ietf.org>, "ipsecme-chairs@ietf.org" <ipsecme-chairs@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>, Erik Kline <ek.ietf@gmail.com>
Thread-Topic: [IPsec] [Lwip] draft-ietf-lwig-minimal-esp shepherd writeup
Thread-Index: AQHXHWkSFdHFjhO7pkaBGD1ztZrO76qPU2qAgAAU8ICAAJdRAA==
Date: Mon, 22 Mar 2021 13:14:11 +0000
Message-ID: <1fc47361-bb69-27a8-ce1d-5f5a27bfe309@ericsson.com>
References: <67654664-717b-1017-707b-0b4dfde52d24@ericsson.com> <CADZyTkkgCiy9hf7DE42oGd-5Mw3pjVB3_Y89U8KovxNctQBWZw@mail.gmail.com> <cea14f52-52bb-6f3f-1266-a457978dd43@nohats.ca>
In-Reply-To: <cea14f52-52bb-6f3f-1266-a457978dd43@nohats.ca>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0
authentication-results: nohats.ca; dkim=none (message not signed) header.d=none;nohats.ca; dmarc=none action=none header.from=ericsson.com;
x-originating-ip: [2001:14bb:180:20a3:c8d9:9454:10a6:8beb]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 59602755-12bc-4e90-c7a2-08d8ed34625d
x-ms-traffictypediagnostic: HE1PR0701MB2508:
x-microsoft-antispam-prvs: <HE1PR0701MB250873A7F33DF0B358BB5761D0659@HE1PR0701MB2508.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: F2ttPK3NsYSodKB4BprDeG1NKe533iVaQ/doJC4eNbBucuzpn1ID0OtCTxumYblV/wmVFKlagKmknlfZ33VP/u3m6hQdDOe6RJ0VZa8xkvcw1bt8d03UbDyOKDzsDfSEIq8nNnzweEBZh5OOTLH/YMdXMgsZ1kOaLq2sXW0OqdzxNdgEw3j7dKWeXCWphi3DV62dyMygUxdnw+yeUWXLEINe1sRxZSJ0o8EY6h7Dw3pa9VwzXVsu6aBSscAEIIN6QF8U9qwVcbckLYUF8kSxP/z38ZVld4nhfmVhbuBi4RK1aVLIBaxZUsDy/eKsAQpWEgfQsZjePFYAUquEt3buDdfnmiDH0HgDcXXuTOkdWnzAQDPmuoxuFoTid+pM2XsAfwudki4bEoJMFDuSwWQYTfbXRD6WgfUqox+cuWn8JKDsA2JsZQBU0iEg5UjQoW7AiIKO+QUt5E6L2mfPQAZ1yYPk3FkaCfwnqr+iuFfn+ERd234NmGS1vzRKUhjK1o+1mYriaV+jQw+HRVp4KkZUSXGZUvhplD6S5SUqLU9UZ4GUPnfbht6Y8GohJ+wWWfffpHsYKvfm1FdQrtyO6W1lb2FE1Ht4XPMyPL7J33sVfY7q4iVBsxfVf8/6jIg2JIm2KcdNLUg8d13+ERCh7mdC2/PWkannDaIl9dgUCFQy77+CsoRdCn3FCFF3Ggf5cctQ2obHr9KmFpc0PhZsH+3/ffypyo5PsM+VLCOcI0fXxKVSOzsilahEKgZqU8oT3bb8ltaOgLEyDjH0HCSl3a/w41YKitZZKhVoKd1DTNbHkiw=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB3436.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(136003)(396003)(346002)(366004)(39860400002)(4326008)(66556008)(66446008)(66476007)(71200400001)(6486002)(86362001)(31696002)(2616005)(38100700001)(31686004)(30864003)(76116006)(966005)(6512007)(478600001)(316002)(8676002)(36756003)(5660300002)(166002)(6506007)(8936002)(53546011)(110136005)(83380400001)(66946007)(186003)(64756008)(54906003)(2906002)(45980500001)(43740500002); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: pijNKLCe3URssalij/fYk9wGbwob/WO/gnknQT84OWMzGaR04ZVkMphvdlgXc6ROxpWcWF+OXtOqQvVwlXE36gZI99sV43LS/jkvaFVqmULkP2jObo1DNJDjcdEBK1Pb3lykyE1ed542FaLERzcfaLND15FpUvTbTWD+EiTWMg40VS2lZCXRJV4WNU+z/Xr3Hy+fFAUf8s8yR1DHqD/kbiBwcmLxiZv4Fg11KsmLV1gpal4lBJQbyPgBwMTfa91CGfZtzZPtgS95NWK3oTkimvWF6i2tHeXYxxkBSeSVjRkve1wRu6s4M/MOT//wxrD+gL2tznTDyMYs6VKUh5hSMadUKfypjZNz5JSb4u2f/15Dm+uxN8uQCIzmMSfSnfF7TcNEsfHHvHZJRPLbwOA5zisHuQNbHikFtgyw5048vuDVNapqMp3eiRRKIw2oNAvYHhICH4ukg2d1pQ0NhEmIn4HhniVzsb8lpxnHIFxWV/NTwYgDl/iADVRG2EmF/uPOShG+kI1Yw8M8XaXdNXwL7cb0dTFN9OfVXFXRQ4VqZW+uV/aY0Es0zhllYeX0IQNKZ1O7uj4eaONeQ57lwsCATANefQxWPcmXC6OTgMD/cm7fXZEzriOQ2wFrFhPQE8cC0uu0tI5aRve7UYNihGng/Sgs7oRij3wFKWqJdHkKvGJb4vJdfgNYvgbR3HjESXPrdfojsFZjF26pvZhnkNV3hDDyH8upqip/g+wK++ra5f8GlBlfgsN2Zydrrz1SQaVzs4VIkRm/ZejYkTLI8QSysGwG9mNAyWTj7ktTt/SDusKG45a289OaLCEu6qrg96//o9KOM0FxVjTYXmd/S8N5xTn+gChORlLGCuPv3l+7QTn4i2pRgzU1Ty1e9IbK9nDF5eaSsajFww3wCIn8CPVn6Q+bf1oHNKNRTAPOAiP316WoNrA4t3el1R1xs5uLZtxE7Ciuur9Ed4Zk0xic0qQO7neJxe/mWc3dtLo8yEiT6JUEzpULahUS9MRE2BJxpsAdosOzLLVVycxkBXvdTnnHkWY7DbfQlt10zheKVlm0wv/tF1cUwl5XV+9uF8QfeT5LzqOBtY90x25KXCl/YWx6E4nhwPU8qu/r5qOtt4/7bRmPtQlCD0JhlG2p8hm3NMekiBfaYVTl3ygXFTdbWI5Ip5GSHd43hz85B5c9/aPILx39iaG2xs6o0UNOMXWRcDbhdOx4WEs0LOCb3zS2X3DVVqAVOt/APYJQXSNdXoJJDjGgNwCMf1D9mtFBbYotiRkBxngaqVS38jNZMLgnbh1dLXPoTmv7G83YPoVfb/KlOuGedql87H2ZepDIh2HI2Y8NYIRYUEbP7pTEB99XtfX2eU42+NUpHiq+zeV9OSElwuRWhz11xdc4jE3E7qeXU3z3
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_1fc47361bb6927a8ce1d5f5a27bfe309ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB3436.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59602755-12bc-4e90-c7a2-08d8ed34625d
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2021 13:14:11.6291 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wlQbcUzdhsr20So3eGR/9NlTr1a/TYckndMnxIhi2WQ6cDnKeK7n3tN6Mau3sz7Fojeh3sEnj3VdGCMVhfr95XZWpOP9C+AnPc9yMuDQKjo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2508
Archived-At: <https://mailarchive.ietf.org/arch/msg/lwip/VRt7MD7K7A5TJE9AuC63YNZNbj0>
Subject: Re: [Lwip] [IPsec] draft-ietf-lwig-minimal-esp shepherd writeup
X-BeenThere: lwip@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Lightweight IP stack. Official mailing list for IETF LWIG Working Group." <lwip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lwip>, <mailto:lwip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lwip/>
List-Post: <mailto:lwip@ietf.org>
List-Help: <mailto:lwip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lwip>, <mailto:lwip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Mar 2021 13:14:22 -0000

Hi Paul,

Adding Ben (IPsecME AD) and Erik (LWIG AD) to the CC list for an early heads up.

Thanks for reviewing the document. I'll let the authors provide answers to your review.

On the procedural side of things: this document is within the LWIG charter (https://datatracker.ietf.org/wg/lwig/charter/) and follows the path taken by Minimal IKEv2 which was also completed in LWIG as RFC 7815 (https://datatracker.ietf.org/doc/rfc7815/).

During the call for adoption, there was a general consensus to proceed in LWIG while keeping close contacts with IPsecME (as well as an agreement to issue a joint last call). Tero (https://mailarchive.ietf.org/arch/msg/lwip/Shf2oUKvtIsb0uzY2zRwuBurm58/), Valery (https://mailarchive.ietf.org/arch/msg/lwip/p1i4hZBjn7PD3ksS9kh8C0ouUOU/) and Scott (https://mailarchive.ietf.org/arch/msg/lwip/dF3eZXG8GTV-o7aH4BnFk2zlR6c/) for example provided reviews of the draft.

I think your comments during the adoption (https://mailarchive.ietf.org/arch/msg/lwip/xDcICiuALZ2ExF3qwRCnhCQC3A0/) did not argue moving this draft to IPsecME (unless I missed something):

If the document is defining a minimum/battery optimized ESP
configuartion, I have no problems with it and I will review further
text and welcome adoption. If it makes changes to the ESP protocol,
then I think there should be more discussion before adoption.

Paul

That being said, I am not fundamentally opposed to moving this document to IPsecME. However, it is important to consider that the document has already had a relatively long lifecycle in LWIG.

--Mohit

On 3/22/21 6:12 AM, Paul Wouters wrote:
On Sun, 21 Mar 2021, Daniel Migault wrote:

(replying to some issues here, but also added a full review of the document)

Side note: I am bit confused why this document would not be a document
from the IPsecME WG ? I know we talked about this before? Did we decide
against adoption at IPsecME ? Can the authors, WG chairs of IPsecME or
the responsible AD shed some light on the history here?

In general, this draft is very "wordy" because it is trying to steer
itself around a lot of problems, without making firm decisions. But
the point of an RFC is that it should make clear decisions that
implementers can adopt clearly. As such, I'm not in favour of this
draft. I believe I stated this before?

[1] https://protect2.fireeye.com/v1/url?k=267ff37b-79e4ca56-267fb3e0-8692dc8284cb-4b11e1d62003bf58&q=1&e=de278ec7-abe4-4a5c-bad8-76ad8f57cf87&u=https%3A%2F%2Fgithub.com%2Fmglt%2Fdraft-mglt-lwig-minimal-esp%2Fcommit%2F47f1351b1928ba687af18e75e253e98720448e8e
On Sat, Mar 20, 2021 at 5:12 AM Mohit Sethi M <mohit.m.sethi=40ericsson.com@dmarc.ietf.org><mailto:mohit.m.sethi=40ericsson.com@dmarc.ietf.org> wrote:
      I am now preparing the shepherd writeup for draft-ietf-lwig-minimal-esp.
      I wanted to clarify and double check a few things:

      - If the SPI is not random and is chosen by some application specific
      method -> it can reveal the application using ESP.

<mglt>
It is correct that the use of non random SPI may have some privacy impacts and one of these impacts is that in some cases, a SPI may be used to track an application. Note that our intention was to make it
clear that when SPI are non randomly generated, there are some privacy implications to consider as well as that randomly generated SPI is preferred.

At the time I also mentioned one attack against IKE that was twarted by
having 4 random bytes as SPI. It remains dangerous to change this
property of ESP, and I recommended to not do that.

https://access.redhat.com/blogs/product-security/posts/sloth

But it seems that although my comments caused the draft to be modified,
it still allows non-random SPIs:

   However, for some constrained nodes, generating and handling 32 bit
   random SPI may consume too much resource, in which case SPI can be
   generated using predictable functions or end up in a using a subset
   of the possible values for SPI.  In fact, the SPI does not
   necessarily need to be randomly generated.  A node provisioned with
   keys by a third party - e.g. that does not generate them - and that
   uses a transform that does not needs random data may not have such
   random generators.  However, nonrandom SPI and restricting their
   possible values MAY lead to privacy and security concerns.  As a
   result, this alternative should be considered for devices that would
   be strongly impacted by the generation of a random SPI and after
   understanding the privacy and security impact of generating nonrandom
   SPI.

So I feel I raised a security issue, and the text just copied my concern
but still basically states implementations MAY do this. I believe this
is wrong.

Note that the draft defined one (common way) to generate the SPI value that is using a random generator to generate this SPI value. All other means fall into the category of using deterministic functions.
This does not necessarily mean that a fix of predefined SPI will necessarily be used. This includes for example the fact that only 2**16 or 2**24 values may be candidates. The case where one device has a
very limited number of SPI is quite extreme. In any case, it should be estimated how much the SPI leaks more information than the IP destination and the use of IPsec as well as the pattern associated with
the traffic.

I'm not concerned about privacy. As you stated, it is usually pretty
clear what an IoT device is based on where it connects to. I am far
more concerned about security.

However, for some constrained nodes, generating and handling 32 bit random SPI may
consume too much resource, in which case SPI can be generated using
predictable functions or end up in a using a subset of the possible values for SPI.

If such a device cannot generate 4 random bytes, how is it performing a
DiffieHellman key exchange? Or is it presumed that IKE is done
elsewhere? In which case "elsewhere" can generate 4 random bytes.

What about IVs ? If you cannot generate 4 bytes of random, how it is
going to generate the IVs required for ESP?

In fact, the SPI does not necessarily need to be randomly generated.

Yes it is does, see the above link on an attack against IKE where the
randomized SPI made offline attacks impossible and online attacks
impractical.

A node provisioned with keys by a third party - e.g. that does not generate them - and that uses a transform that does not need random data may not have such random generators.

There is a strong move to AEADs, and it would be foolish to limit IoT to
things like AES-CBC because of the IV generation.

      - When sequence numbers are time -> won't it reveal the time at which
      the packet was sent.

<mglt>
First the use of time is primarily driven to have a always increasing function, more than the value of the time itself. This could be used with a clock that is 2 years back in the past or in the future. It
is correct that a few packet analysis may reveal how synchronized the clock of the device is.
Regarding the time the packet has been sent, it seems to me this is relatively close to the time the  time is captured, but maybe I am missing how this could be used or any specific cases where delay
tolerant networks are involved. So I am inclined to say that yes this may leak some information, but this information may already be leaked.

</mglt>

The secion on Sequence Numbers concerns me too, and for the same reasons
as above. If you cannot keep a sequence number as state, you cannot do
any AEAD encryption. I believe it is a bad idea to still write
specifications today that require non-AEAD algorithms. Once you can do
it for AEAD, then you can do it for SN too (and using the other draft
that specified re-using the SN for one of these for other saves you
those bytes once).


      - Are we comfortable with the recommendation: 'A node MAY drop
      anti-replay protection provided by IPsec, and instead implement its own
      internal mechanism.'? What might this internal mechanism look like?

Again, I do not think that we should write RFCs where to disable
security meassures because the device is too constrained. If that is
the case, perhaps IPsec is not the protocol that should be used? Yes,
we can use IPsec without replay protection, but it is unwise to do so.
Handwaving it to be the implementors or application's problem is a bit
dangerous (though not as dangerous as the SPI case above)


Padding I am less concerned about. Often it is not needed, and TFC is
indeed not used a lot - mostly I think because it really only makes
sense to use TFC based on MTU size, but that in itself will cause
more MTU related issues. And an IoT device is likely to send a fixed
format packet anyway with minimal or no change in packet length, in
which case all packets will be the same length. It could create real
security concerns though, if one could deduce a password length or
something based on the type of IoT device and its packet length.


    For interoperability, it is RECOMMENDED a minimal ESP
    implementation discards dummy packets.

I'm not sure what this means. What else would one do with a dummy
packet? Regardless, I don't know of implementations that currently
support sending dummy packets.

I'm a little confused what Section 7 is saying? What does the
implementer need to take in from reading this ?


    In the latter case, authenticated encryption must always be considered [RFC8221].

I'm unsure what this means? Do you mean AEAD? Or are you refering to the
obsolete encryption without _any_ authentication (eg ESP without
authentication _and_ without AH ) ? Regardless of that "must always be
considered" is basically saying nothing. It is not strong enough.
Compare this to:

https://datatracker.ietf.org/doc/html/rfc8221#section-4

where it clearly states MUST NOT. So your text is is basically negating
that MUST NOT to "consider".

    When the key is likely to be re-used
       across reboots, it is RECOMMENDED to consider transforms that are
       nonce misuse resistant such as AES-GCM-SIV

But there is no AES-GCM-SIV IKE or ESP algorithm, so you cannot
recommend that. The only thing you can recommend is AES-CBC, and as I
said before, recommending non-AEAD over AEAD is not something I think
the IETF should do.

I cannot parse this sentence:

    Note that it
    is not because an encryption algorithm transform is widely
    deployed that is secured.


I also see some promotion of AES-CTR, which I'm a little uncomfortable
with.


The security considerations section does not list the issue I've raised
here. For AEAD it states that "mechanisms MUST be in place" to prevent
nonce re-use, but the document doesn't really give guidance. In fact,
if anything it is saying there there is no way to carry state across
reboots for that and that keys might be somehow hardcoded and re-used?
So I would like to ask again, what concrete thing should an implementer
take from this section, eg when it is implementing AES-GCM ?

After lots of talk that generating 4 random bytes for the SPI might be
too hard, the Security Considerations lists:

    When a node generates its key or when random value such as nonces are
    generated, the random generation MUST follow [RFC4086].  In addition
    [SP-800-90A-Rev-1] provides appropriated guidance to build random
    generators based on deterministic random functions.

If you can do that, you can do 4 bytes of random SPI. So these two items
are contradicting each other. Either you can easilly generate random
SPIs and we should keep them at 4 bytes, OR we simply don't have the
resources for RFC4086 and SP-800-90A-Rev-1 based random number
generates. I mean, I can't see them doing a continious self test for
random required by FIPS if you can't even generate 4 bytes of random
SPI.


In conclusion, I think this document is not helpful to implementers. It
is very wordy but lacks clear advise to implementors and while it raises
security issues for those implementers, it does not actually present
solutions for them.

Paul