[tsvwg] Comments on draft-ietf-tsvwg-udp-options-19

Magnus Westerlund <magnus.westerlund@ericsson.com> Thu, 16 February 2023 16:09 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 715BCC19E0FF for <tsvwg@ietfa.amsl.com>; Thu, 16 Feb 2023 08:09:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vU5m6fKxTvxt for <tsvwg@ietfa.amsl.com>; Thu, 16 Feb 2023 08:09:46 -0800 (PST)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on060a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0e::60a]) (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 97C98C151551 for <tsvwg@ietf.org>; Thu, 16 Feb 2023 08:09:45 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jcxgw0GvmZA4JTLDD10Zh/DjAuE2s7fklQktxRZ8iUEIGwmhBD16o7LV0l3ZRD5zNjas23z6Qhlp4aPmAZYcYjJ7+IEGT0L06tXOD9mRzoRSUN1L8/4NreGXxH/do88s4DgINH8sSkEmAW7NgjMkL8PfTbG+jLqXP+/lS6W6feqgm9FXDkckYaxcFAEGfW/EqniMb/tPg9T46q7oNRY0ahrX26sOuti7J/QeJXl/32C9Ks+qL+iZp495wA1CfUVdOf3jO8qSXDIOlET8U4m/ajwUKBW89lYNoCNN7pMBWN8vDiiHTqWuJRNrKjrXJ0BZ62iSenFf/h120jZk0fN2LQ==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IvgEM5ijGRKtw9y0xEoQCTKqP3wyxtshrqKBAnN8/m4=; b=fdPV/hUqbL00GVAH3LDS313N2cSxzcGmvP93UnFfotluf8FxvgUi1cLq24Aw7nYVEBf/Eq644bVwwAOOwrk7HShlK5da465Oi++copyLvrfR6I5Z8np9RkL4FFgqa8YpV09vIrL1UL4GdmZEiY9aBtc0ZT8fA0G86obDh3m3lJlRs6eFg1Xn8vGxwDcIeJiuDMu1ukI45m/Vox+JXeD/Kf+QyW2eXQRrCQTMX/+/nwetRFr5q698U8Zb4SD2tk4nRsIqNLBaPxo+G19CZUELctvovK1Vzm8fjwMkpBHQWPv3tBMNAGIKl1cWvI0PFLtoATeU1pxSWQhFYCO2sKhdUA==
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=IvgEM5ijGRKtw9y0xEoQCTKqP3wyxtshrqKBAnN8/m4=; b=shZ1WomhHHAHW9TERBBzOnYZV6KWGYTTcaVNPJDLUGaRoqbpqanahYZqu042FNUm9DEjbQiCQKl0tMfqx9K4DURp3scYzQlz3q+ngL5VxaRjoW519oXHbc1dh6KdjZu+W+y+ZiL94F6l4XC0Y87xF0tAk8HFmFAswKcehC+SaT8=
Received: from PA4PR07MB8414.eurprd07.prod.outlook.com (2603:10a6:102:2a2::6) by GV1PR07MB8975.eurprd07.prod.outlook.com (2603:10a6:150:a4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.24; Thu, 16 Feb 2023 16:09:38 +0000
Received: from PA4PR07MB8414.eurprd07.prod.outlook.com ([fe80::7488:e0d7:95a4:606]) by PA4PR07MB8414.eurprd07.prod.outlook.com ([fe80::7488:e0d7:95a4:606%8]) with mapi id 15.20.6086.026; Thu, 16 Feb 2023 16:09:38 +0000
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
To: tsvwg IETF list <tsvwg@ietf.org>
Thread-Topic: Comments on draft-ietf-tsvwg-udp-options-19
Thread-Index: AQHZQgGu72b511W21UGI9LFJb5m8dQ==
Date: Thu, 16 Feb 2023 16:09:38 +0000
Message-ID: <PA4PR07MB841445E72AEBFF8DA1CDC4CB95A09@PA4PR07MB8414.eurprd07.prod.outlook.com>
Accept-Language: en-US, sv-SE
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PA4PR07MB8414:EE_|GV1PR07MB8975:EE_
x-ms-office365-filtering-correlation-id: 3e338bb1-6678-4ca9-3718-08db10383435
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: R0inYzehplt7K9THU5HBqb4bn/RbhuMKGg+GFt6ifYWEM31Wat9QX6XAhlE7crkEW8ieBDLgzTDh2HpIpRYESvQRef+RQCu/t4ilZhbOa8Si6KyByOKOoP8jNp/SLSb6uJra+Ec0gjD3bDdInDl+sDxlpXvM7MofQv2QoaGHP98dz5bhWk8nFZaqh/nSAWF3GfENPd2nzqJItjDmcOzCJT9zNVjT23LYE0h8ypX0Y8VrXMcUli8TEz2CgSdn0LeZp/ONxWCSvmJkt1bTDsYK7PqNOkRQJbVmATRT/x70TAtyHqGRhZuVxx4cMRie/oVcl1wo6ljHLCXMemDIcdiqZIDB5Sk5DsLAUimdxIc21FKPBlVXZD/5zRSPVCNeGkqcKftx1zTGSjHK7MO8RWdgDFJDr1N/y4CL0YZUoWhJ5vpj03g1laXRQCV3FDd1ZCxUOIiIljAs7Nh7clWcTG1r9Kr6f/KAAK3aR8H+bdEem2OJpbqLbYhsB+mnksXGP/ANI4p3x11qGAb6EHkGDsoApT44lxE6pAaZZhaxCMfw3sLfzRucpCZr/zuTjzgRTSux3gYbOzdgIUvtW/S9zTOSqWgayryli4/+OxIQAaO6SQ2GN0uLSIIjm37CwwU+o+yF17ZevHe8bYmIUTaiJSh096NXVcPAZ25SJM4cMMJOrOW5Cz7b1kBy2PoBgBXPcpru02Ad0VCamld26v7fwb9dpQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR07MB8414.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(396003)(346002)(39860400002)(366004)(376002)(136003)(451199018)(26005)(186003)(9686003)(6506007)(2906002)(83380400001)(5660300002)(33656002)(38070700005)(6916009)(8676002)(66476007)(64756008)(66446008)(66946007)(55016003)(66556008)(8936002)(82960400001)(44832011)(76116006)(52536014)(478600001)(41300700001)(91956017)(122000001)(38100700002)(316002)(86362001)(7696005)(71200400001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: +4pggiV1xJKHwC8AdmbVGylOKhsSJ4fb6Hl8us65zmltBjYGMmkgNRVkbCaiOqgsl+zpAUrG4O/O+MeYchTKVwyETqoS1O0FD39euo0Hr49bzKtrhLi2njABmY60LqDgTPVkxHZ3+bhIW/5JBk6rKGDJX8fbmUmJ/cp0xQaklraNrE+Og0SUP60hHNLGKxaZbUm88Jm/F8IhHT4RwBVaKdYn2CE4mDceLLsPJ4xiULwk4L5IreZ66I4vh+yJsq5L1X9sjGqWFlLHZSvwx9BvQ95y38VyZ73ur1Lm2R+9wBuJDxl6W/rdhvJteOlf/XQ9iMWOvEyUAsnHVS2RJJBmW75WQJzHE2ovkwWXMjv54DqStp7+0JB52dArrtMET7vg2P8QjpeERj+bxqtpokZQOUwt6lFETI3DR5tMiBYAfULdl8skULaQMkjZvNAF46fe6hayWQ0fIb9E5lyre1nwXAL0vtJrQh/Iz3WeoI0tEfi3PrC04JnQLLLwQBb/v5uFWHnBdAfjbqBs7YrY6K6vP0r7UjfVEkLPzwXphmcmR2pS87U2bi5j92YupikhqGtiH2fcMuN8X4WEXaCQRM34Mq//Nqrq/PelxWEAD9uVRI2hHQvUz8No8CANR8vFx0ylF/mv1g+aI2TXvYbIsBzwlqb0SSwZkdppH5p3rYvrRcolRPF7LpGZCP2iP0ANMtGozaDLwrwJBda9m3wuYQgPZEYF4niJfUckbZdu/83jBz8Hw7y/RTGx7EGSWf+sbvCB9LK36GEdY0nnNEpqxRUxbNTFwy8UEO5Hx7kJ6uhk1tXKAMbeqdbVyq8Pu6PB8zZUwIwPGL6ATF/LwG2043dyIajoQyMO3Az7hXObNTeCQjYIWyb6I4pIwARQ0u/Z6iFZiK2xlW2pJf++5VcnDobs0vRGr7flcaTdLGfpThcLdg3S5RsvEXB2QxPkA5w2pKJU+x9YEySZPi47ibjMFV0ZMlP+z5m4/T0NlyNfKutUWPLIHVuxvVtBuipXWi6p9ACVyq8rSDRmU1tdfeJ7+w6NgXDrp74ZBWjuq80Xts0g5kjvNSRuqzn8xLnKMKmpOMd9Wkk9mJRqlp4JWubbR2H5yWWPX7Ped6NRxsFcIXFycG/J8u/JK+lJt9jdMBLaSvDChgmkI4jfA2hzaeJjxL1nfP8HJtiLfqPnIJd0kgYI0V4WxZxq+nf+fKJIuRvKBLvL1ZRaUQew90Vxfe3JU5qvUvpRWA+obvD/I8M7Bo5TCxO4p/BdWY9MPeST28cb/CFw6g49iOHOvwNblAvjZUVj79ptsHCXeePe3BbjX/5/rDRY0jqmzJXYqxT9YlbweDlAnAtpdanUfhRME6G8NeKvBxOD0TrJJj/fyq5LxmhsbA6MwopoMdUtTSPdtFXowgrbaLal7NlIHXsQbaT6ueW19wfi7/Uvn1FoCJUHVzxvBuCvBYgyEUPF/VNrzqZNGV8c1jEnwJgFJrdnN82PA2K7lf/mzi98pXs+nLUcCoNQ1mG+ydjTwVfgMrCxSQZD+Ire6dd7fa37onGMlXPtQfNHBdJtzwHjXduYrlA/ZZGHJgb95CThLfkHacXx1VPInwz+ivIFWsKPNDrjnOlC5iKk3pCZYhjUEb7YBFmRbRhiUvY=
Content-Type: multipart/alternative; boundary="_000_PA4PR07MB841445E72AEBFF8DA1CDC4CB95A09PA4PR07MB8414eurp_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PA4PR07MB8414.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e338bb1-6678-4ca9-3718-08db10383435
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2023 16:09:38.2548 (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: a96Z+TYTawtmzs7OmNP5WW5u5XijxoEvD/w1mKd95tCnlPYxK2jUo4MW9FnEws3mzkDdGZ4aBOvR6IfZ+ZSl7l4R1gVzNr0ZUBAW9fArb7k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR07MB8975
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/mAiwXGMLx87AapktheAgfZQJJ4s>
Subject: [tsvwg] Comments on draft-ietf-tsvwg-udp-options-19
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2023 16:09:51 -0000

Hi,

Sorry for the late review, but I hope these comments can be addressed anyway. I think the UENC is blocking progress in its current form.


Section 6:

They commence

   with a 2-byte Option Checksum (OCS) field aligned to the first 2-

   byte boundary (relative to the start of the IP datagram) of that

   area, using zeroes for alignment.

   >> Option area bytes used for alignment before the OCS MUST be zero.

To my understanding there can only be zero or one padding byte to achieve 16-bit alignment for the OCS. Thus, the plural of bytes used for alignment should be corrected. I would also consider if one needs a stronger wording that OCS MUST be aligned and that there can only be zero or one zero value byte used for padding.

Section 7:


When the UDP checksum is zero, the OCS MAY be unused, and is then

   indicated by a zero OCS value.

I find this formulation a bit confusing. My problem is the use of the word “unused”. I think I would prefer a formulation more like this:

When the UDP checksum is disabled, i.e. has a zero value, the OCS MAY be also disabled, and this is indicated by a zero OCS value.


Section 7:


When not used (i.e., containing zero), the OCS is assumed to be

   "correct" for the purpose of accepting UDP datagrams at a receiver

   (see Section 12).

I find this sentence strange. First, I don’t understand how it can be plural “UDP Datagrams” how can this packets OCS affect other packets? Secondly, is the intention to say that is OCS is disable, the UDP options should be processed as if OCS !=0 and passed?


Section 8:


   >> UNSAFE options are used only in with the FRAG option, in a manner

   that prevents them from being silently ignored but passing the UDP

   payload to the user when not supported.

This sentence has some issues. Is the intention to say “in combination with the FRAG option”?

I would also note the >> despite having no normative word. Was the intention to say MUST be used only in combination with the FRAG option?


Section 8:

   >> Receivers supporting UDP options MUST silently drop all UDP

   options in a datagram containing an UNSAFE option when any UNSAFE

   option it contains is unknown. See Section 10 for further discussion

   of UNSAFE options.

There is also the this sentence higher up being very similar:
   >> An endpoint supporting UDP options MUST treat unsupported options
   in the UNSAFE range as terminating all option processing.

And Unless FRAG is a MUST with UNSAFE then I think dropping the UDP DATA when unknonwn UNSAFE options are encountered is a MUST.

Section 8:

   Receivers cannot generally treat unexpected option lengths as
   invalid, as this would unnecessarily limit future revision of
   options (e.g., defining a new APC that is defined by having a
   different length). The exception is only for lengths that imply a
   physical impossibility, e.g., smaller than two for conventional
   options and four for extended length options. Impossible lengths
   should indicate a malformed surplus area and all options silently
   discarded. Lengths other than those expected should result in safe
   options being ignored and skipped over, as with any other unknown
   safe option.

Do I understand this correct to imply that if a receiver sees a TIMESTAMP option with length value of 14 it could be okay and should only be interpret as TIMESTAMP instance that the receiver don’t understand. Because first I was wondering how it could function if one couldn’t follow the L value in TLV to find the next. Maybe what to do for an receiver to do when the length don’t matches what the implementation support.

I would note that in relation to the next paragraph what “option lengths” mean appear to be inconsistent. I would probably use “sum of length of the options”


   >> Option lengths MUST NOT exceed the IP length of the overall IP

   datagram. If this occurs, the options MUST be treated as malformed

   and all options dropped, and the event MAY be logged for diagnostics

   (logging SHOULD be rate limited).


Section 8:

The requirement that must-support options come before others is

   intended to allow for endpoints to implement DOS protection, as

   discussed further in Section 22.

I would note I think this DOS is Denial of Service protection, while DOS acronym is reused in section 9.4.


Section 9.4:


The FRAG option does not need a "more fragments" bit because it

   provides the same indication by using the longer, 12-byte variant,

   as shown in Figure 11.

“same indication” is unclear. I assume you mean that “last fragment” is indicated through the 12-byte variant.
The use of the 10 byte simply means “more fragments = yes”.

Section 9.4:
I think the Datagram Option start is very unclear as there appear to exist an assumption that one start from one single large IP/UDP packet that is then with the help of the UDP FRAG option is transformed into multiple packets. I would think a figure with pointer what the values are and how the created packets with FRAG really look in structure.

I mean later parts of the section makes the process clearer, but there are inconsistencies in naming. And for example the original IP packet does not exist at all in the numbered list.

Section 9.7:

What is not clear in this section is if a REQ, actually has any impact on the receiver. For example does it imply anything more than that the receiver should include a RES in the next UDP packet sent back on this address port pairs?

Section 9.9:

I think the introduction to this section could be clearer on that AUTH is dependent on out of band agreement on mac algorithm, KDF algorithm and keying material between endpoints.

Section 10:


>> Applications using UNSAFE options SHOULD NOT also use zero-length

   UDP packets as signals, because they will arrive when UNSAFE options

   fail.

Wouldn’t this be better to state as:


>> Applications using UNSAFE options SHOULD use non-zero-length

   UDP packets as signals, because they will arrive when UNSAFE options

   fail.

Section 10.1


Its fields, coverage, and processing are the same as

   for AUTH, except that UENC encrypts the user data and (when

   configured to) the portion of the surplus area that occurs after

   UENC, although it can (optionally) depend on options that precede it

   (with certain fields zeroed, as per AUTH, e.g., providing

   authentication over the surplus area).

This is a fairly convoluted sentence. First, it creates a lot of configuration options that the out-of-band establishment needs to agree. Secondly, it becomes very unclear how you form the clear text. Also, it appears to lack a normative specification for how to do this. What I read here I don’t see how UENC can be considered defined without having To18 as a normative specification. Considering that this is appear to be an abandoned draft I would suggest that this option is dropped.


[To18]    Touch, J., "A TCP Authentication Option Extension for

             Payload Encryption," draft-touch-tcp-ao-encrypt, Jul.

             2018.

I would also note that most encryption algorithms would be dependent on unique IVs per UDP datagram. That would need definition and likely inclusion. There are also payload expansion factors to take into account especially if applying AEAD algorithms.



Section 12:

         if the UDP checksum fails then

               silently drop the entire UDP packet (per RFC1122)

           if the UDP checksum passes or is zero then

               if ((OCS != 0 and fails or OCS == 0) and UDP CS != 0)

               or ((OCS != 0 and passes) and UDP CS == 0) then

                   deliver the UDP user data but ignore other options

                   (this is required to emulate legacy behavior)

               if OCS != 0 and passes or OCS == 0 when UDP CS != 0 then

                   deliver the UDP user data after parsing

                   and processing the rest of the options,

                   regardless of whether each is supported or succeeds

                   (again, this is required to emulate legacy behavior)

There is no specification for what to do when UDP Checksum =0 and OCS=0.