[core] Re: Review of draft-ietf-core-oscore-groupcomm-17

Marco Tiloca <marco.tiloca@ri.se> Tue, 16 July 2024 13:43 UTC

Return-Path: <marco.tiloca@ri.se>
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 A026FC151096; Tue, 16 Jul 2024 06:43:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.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, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=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=ri.se
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 n5Ob1edQyT_O; Tue, 16 Jul 2024 06:43:09 -0700 (PDT)
Received: from GVZP280CU001.outbound.protection.outlook.com (mail-swedencentralazon11021102.outbound.protection.outlook.com [52.101.81.102]) (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 3DD3EC14F6EE; Tue, 16 Jul 2024 06:43:08 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fTvdWcNYYITukGaBkRwBV2YW88HWde7aom3xhwvzfFRnZihw0F4bjwWrssI2IyOzeKjDovlj272mF2+WFPB6wIb9aODqmajvsHcK/axXAsJKjUcHy531s/DKbiPNvnTEyyVNHNfhvr7RLtwJU7reqats623zmjH1bilYfe7649PGDGzD+2XwEqyN5HPsRtz/1GikuGff3a04g3bB0fVu/BmjF9k5ap0h2bjGzUQR4J2UeUp8KAPIfTp+H6F6MbCnaXeP+c2ZzvhD55eU1T5exEEWEfLcwWuCKkUZ6a4EJHgiqj9EhitZ0YrDuQkkJqd7GWo6YFdm25Nm40b7EwLRUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=PlDrVW+l5Km+6TUpEXtqnZMxLFmMSiN4DMehxnnTzew=; b=S+eXII96NsrDnCDNalVU3N1VqlKy0RvDaEqK4yBsRLZPDVLuLKLD3P6KDKJ8qMRPXua9qVBTlKsKnzPsGt6z/Tw9xmCL36b01iTeqiR3sjUzPEXBXx5WoisLW12xfKWqSxVdFa3GeUDMVxeUtAst5pz6xqQvEgTr7lZ2G/oz6G9zqxI2X4e73P+bZQ4zWA+ACuy+zQq62dsiZrqcnlupjmtXDDhN1qVfVZdRYuN9NfquAzxW9mmcDrc224WGh5I2FRCmtHlexgjtzL4ONPwRmgnI8BiPvzo91F3vp1uOK16P/3eb9pIDRw9bFpakU1mP++s2sXFwJKJYfaX40L87Mg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ri.se; dmarc=pass action=none header.from=ri.se; dkim=pass header.d=ri.se; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ri.se; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PlDrVW+l5Km+6TUpEXtqnZMxLFmMSiN4DMehxnnTzew=; b=iL6Az++eckfvEEkpsPZMTyVe+gqcu4EAtHAoIQ+oc8AO2/YezkIIJCx5zwz1L7dcNZBSMOiu60R3FFxbww7mJjYuv5vFjiFya4MZBiwZLfVQ/1MhnaYiZYo2iuL/VEjDodWcNetInPrVAh07vlgnkB83aXuCpe/gBQYE5upUEBc=
Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ri.se;
Received: from GVYP280MB0464.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:37::17) by GVZP280MB0169.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:41::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28; Tue, 16 Jul 2024 13:43:05 +0000
Received: from GVYP280MB0464.SWEP280.PROD.OUTLOOK.COM ([fe80::b1d3:d63d:ce0b:3f70]) by GVYP280MB0464.SWEP280.PROD.OUTLOOK.COM ([fe80::b1d3:d63d:ce0b:3f70%6]) with mapi id 15.20.7784.013; Tue, 16 Jul 2024 13:43:05 +0000
Message-ID: <d9bad7fa-9114-4965-a7b6-a14fca8a04db@ri.se>
Date: Tue, 16 Jul 2024 15:42:55 +0200
User-Agent: Mozilla Thunderbird
To: Christian Amsüss <christian@amsuess.com>, core@ietf.org, draft-ietf-core-oscore-groupcomm@ietf.org
References: <167155165139.12883.5074467066117832003@ietfa.amsl.com> <ZDBAZn9uxU6eB9IY@hephaistos.amsuess.com> <ZoMLbTXHh9ub78Q5@hephaistos.amsuess.com>
Content-Language: en-US
From: Marco Tiloca <marco.tiloca@ri.se>
Autocrypt: addr=marco.tiloca@ri.se; keydata= xsBNBFSNeRUBCAC44iazWzj/PE3TiAlBsaWna0JbdIAJFHB8PLrqthI0ZG7GnCLNR8ZhDz6Z aRDPC4FR3UcMhPgZpJIqa6Zi8yWYCqF7A7QhT7E1WdQR1G0+6xUEd0ZD+QBdf29pQadrVZAt 0G4CkUnq5H+Sm05aw2Cpv3JfsATVaemWmujnMTvZ3dFudCGNdsY6kPSVzMRyedX7ArLXyF+0 Kh1T4WUW6NHfEWltnzkcqRhn2NcZtADsxWrMBgZXkLE/dP67SnyFjWYpz7aNpxxA+mb5WBT+ NrSetJlljT0QOXrXMGh98GLfNnLAl6gJryE6MZazN5oxkJgkAep8SevFXzglj7CAsh4PABEB AAHNNk1hcmNvIFRpbG9jYSAobWFyY28udGlsb2NhQHJpLnNlKSA8bWFyY28udGlsb2NhQHJp LnNlPsLAdwQTAQgAIQUCWkAnkAIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRDuJmS0 DljaQwEvCACJKPJIPGH0oGnLJY4G1I2DgNiyVKt1H4kkc/eT8Bz9OSbAxgZo3Jky382e4Dba ayWrQRFen0aLSFuzbU4BX4O/YRSaIqUO3KwUNO1iTC65OHz0XirGohPUOsc0SEMtpm+4zfYG 7G8p35MK0h9gpwgGMG0j0mZX4RDjuywC88i1VxCwMWGaZRlUrPXkC3nqDDRcPtuEGpncWhAV Qt2ZqeyITv9KCUmDntmXLPe6vEXtOfI9Z3HeqeI8OkGwXpotVobgLa/mVmFj6EALDzj7HC2u tfgxECBJddmcDInrvGgTkZtXEVbyLQuiK20lJmYnmPWN8DXaVVaQ4XP/lXUrzoEzzsBNBFSN eRUBCACWmp+k6LkY4/ey7eA7umYVc22iyVqAEXmywDYzEjewYwRcjTrH/Nx1EqwjIDuW+BBE oMLRZOHCgmjo6HRmWIutcYVCt9ieokultkor9BBoQVPiI+Tp51Op02ifkGcrEQNZi7q3fmOt hFZwZ6NJnUbA2bycaKZ8oClvDCQj6AjEydBPnS73UaEoDsqsGVjZwChfOMg5OyFm90QjpIw8 m0uDVcCzKKfxq3T/z7tyRgucIUe84EzBuuJBESEjK/hF0nR2LDh1ShD29FWrFZSNVVCVu1UY ZLAayf8oKKHHpM+whfjEYO4XsDpV4zQ15A+D15HRiHR6Adf4PDtPM1DCwggjABEBAAHCwF8E GAECAAkFAlSNeRUCGwwACgkQ7iZktA5Y2kPGEwf/WNjTy3z74vLmHycVsFXXoQ8W1+858mRy Ad0a8JYzY3xB7CVtqI3Hy894Qcw4H6G799A1OL9B1EeA8Yj3aOz0NbUyf5GW+iotr3h8+KIC OYZ34/BQaOLzdvDNmRoGHn+NeTzhF7eSeiPKi2jex+NVodhjOVGXw8EhYGkeZLvynHEboiLM 4TbyPbVR9HsdVqKGVTDxKSE3namo3kvtY6syRFIiUz5WzJfYAuqbt6m3TxDEb8sA9pzaLuhm fnJRc12H5NVZEZmE/EkJFTlkP4wnZyOSf/r2/Vd0iHauBwv57cpY6HFFMe7rvK4s7ME5zctO Ely5C6NCu1ZaNtdUuqDSPA==
In-Reply-To: <ZoMLbTXHh9ub78Q5@hephaistos.amsuess.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="------------wTx40wZVgaPnUnMtNBBKHb0n"
X-ClientProxiedBy: CH0PR03CA0206.namprd03.prod.outlook.com (2603:10b6:610:e4::31) To GVYP280MB0464.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:37::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: GVYP280MB0464:EE_|GVZP280MB0169:EE_
X-MS-Office365-Filtering-Correlation-Id: de83dd5d-0412-440e-5e3a-08dca59d3818
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info: Nl5cvVeIthNRSZkQJhpnz9rnyH4dX4DtkA9RlEN4l99afx/beAcJriHOJYxPLuBVlQ4eSjLDhjJMSWEIyHpJOsrTLV2zEpUis8rTsYLIHoCDvkpc1xKI8kP3SV/mzw83CiGrxg6/LGEwhHKH/d/P7v5It0dCe7raIiwxHMoKsvRlxHKELASBEycQRn30fqM0TijtlFV0FP8/5hhcvusH/4gNp94ryJPdOVIp7780j7d8vyLvdlK54IyupA6aOhkgrH10EC5cFF5SQMeUq2lUHrFVwI66KcnYE3Xlf2L+5udoHOILjibn5R65vg/1sCd7up53qGgKxmfQbBhTGGSmsWbLamwbXGweuL3DWzIY3+OjYyLJmzINBVfWQ2AGUF9se52D7OAprBBiY8UqaTI46A2kDAkePxDjDVKOXBDRPlbYc2LRreKbeFuShOBMnVF16mckBxxEBKRROZw5RQR/VTi45MdLdz8czLpZurMmAv37CDj+Drhe0EZ8K9Pxdhfx0gDPml58xCxdjB5AFdloYrF7HUDj7zb2U0KUPQfFOmKeq8DDjxdvaLc1oUrN1ysI5j2DeFqTHMACTe9aCgV+H4kFCytP76fZTqvUPvfjk3UE1N8V6kPBA9gFvbtbV0M99Q1ymhNngOTI5Hx3LqpvdSdDr7S+XBR8Rh3quArVfRsEoB7tmR79574bFGThr87V03uBUT1uEgACe2Zcr/wu47NtjWEmeKYAtEcvl6zmLdeDXzixYBnrxz1BiWtUA9t+ka8HAobz3kaaIa7aqHL8Z+UMzswTYdwHmCJZpW8Xxy62t+MxjMwml38faz0qR5GWMU4USFhgJ6DuQOowhdakwGpek8NXPB7RBEAJJt4cjURAoBW2MoydKyV3TCAYH3LZ0QjRS/ODVh8a9NojT3MqDd3xt4bWDLhlp1jTQwSRmyBDbl3IeEVFeUcTK6AxHJmg2wRD+cQYoJjK6vCmGjjjLJ/l0GVVwf8uatkIekIlQ+jm4cvNY3OG8gZc4x5NZLHzbGjdqp6s9oAXRrJemqmlk5aszRIn7fAwyy2UJuI7ic0NCvXagZC/Mr9EfKIQy12vhVixv7RnlCDfoQreofJYvTLc8PFXxt5SyFB3Cxkn12aaGvl9plAcFMnPy+qoRUnJLZVMgTvkBj5qjOClSaCwSFL0NnfD2Cukyjlj68LDnW2fU3IoCADiTvqkwu6bwa/w2PiwlLf8pGmMi2krFHpKpJbPKFgOKKIsCEsl4Lh+j9IqEnL+votRscAu6UO4x/p9uBaEnbyBzsWTTJ9KOlGmRmI9P0DrH8G2C3UtyKuOZLM=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVYP280MB0464.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: VOWbPMx56RPKj+e9L1LK/6ffL5UsEmRshVTQMC0lsTt5FIF2YNZQCmnsZnGmg9WUuOsCj3iOnwmOLRp+qjkAgDs4kRmjZ/uxePWC20wsBPsF4cTJabKJ4dLUKeDn4K8i839SWTCqIcLslTC+IWG32zSgrDgPRsGs6KnIHpXbNvfA67vK8sI4u0uCWWUG3LgJov7dBIIYHm+9YiVeKifkToj71lom41IAvftNLsLt3uAAccRbxzt5mRxTpy/qJuK4Y3tR0ZoF4BlbqGm79saEC7uGdNyghpQePVApTcQLTZ1Fb3nR8jU51FdfeDha43tdOoZSUj9Jz+AXoHgKKAgXuG5CetYiXk4ne5W1/PtKJInMG01gnT1SUBtwBkLNj9v1sVj+s13PoHkmKgXVPav0c2wBNa7yKzGfkFlZFSGIvYZfe0Du79JtDYMxcN/Pl3V8unt7QjvLAbnBpUBcdTpc7l5Vy7Zw33HnxvK06dh+CkgGQHRnBjAedVG+TFpeXLnI1/5ABywl9IVCIu8I0YL8rCj5VYNnhPYDhc+cg/kuaxKPKOgK9ohfKCtjEjIMmXcrXZeldoH9shTwFX/5fUSfl4bjm0q2ql2tZVBoa5pByDaeI6X9pdmXD3qD45cIwdOmUPyuf/RAJtTdD2omtMwKPWcI3szfN00g0SXsKdBvAsbsxNzAxrS+jUiKgEUQWiQcQZIi/xh95VsI1eB0OXkNQGdXQMmLcC3DyDRVknj6Dcd3zxjf2lKvZhGNfTjGP6HnRg4avSTz+f7Bglz0oWCD5u3M/p6vcKM+qV4RS0MvtxXiv5QJy0JQSSg0WWBC2GLYXIWQvA9IGvbq6IhVJ5w+A9lUxbUdnZ/3bNecvXh1HzPEGmt6iIg2krCytPixXN/tcRgo7o6plx6lYHjPBpYX/mnxogoZMrzfFjX5Ht17e8M4M+S2I0cgQrinFg20cbXRmZMsJnJdD4eucEWF9zv2ETutKm0ZMHhazMMiisRmPWdRNdxsPVHKiCC2amb1fuYZDab+IQSRuLqkA8beU74Hq5sHoTwmeY8aMFReXzkTQI4w47LGf9goLATXpubtwjYrsTwvSTTg4fOg+PpBtnojDB//37o8fT8m4ChnJV7ThRGmjoSWjL042ThI1xv4L4INtvKtjl6Cdz0T4jojSUjKYgV4luASQNeBGchXn2Vy1c1KyMyBBeENxBnXKp0Y4nQnZduf06BVOe9tLbpq7ekeS2EFHs3m3THXB8iQ8TRlviouYdzZuoS5HmLjLsVfwRD4OlIc1XLLrPbrXJxEqElUJxPGqnw6cBPPsTt3MK5X588vbtm+zVc/KmUb2DkRbTbrb9l3GNvhIwenjZI+E6/MWkcoqXvrEaUcfVBoGS4ho6i1LuoQHl1IFEDfC0NSmCDuKx/I6MxDqBPEffFDfMXzZYpJm7qafqZZTFmnmus6bdX4RgIjFb4XIpO3qI3CyLA2OA57G5ACcLEGatKL8dzUT7XY2Uhc8/1bev7Cs8dGXfy9k++E6keYUgJ5Y+efICImwfx0lO/Untxazk9Pce1eJBOwrgjOuI68M2vHuO+Kq0nU8W5ut/qFu78hcKU5CBgh
X-OriginatorOrg: ri.se
X-MS-Exchange-CrossTenant-Network-Message-Id: de83dd5d-0412-440e-5e3a-08dca59d3818
X-MS-Exchange-CrossTenant-AuthSource: GVYP280MB0464.SWEP280.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2024 13:43:05.1397 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 5a9809cf-0bcb-413a-838a-09ecc40cc9e8
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 76uDBt+bnxdgSc7E0t5HMEBIwxcDq8dpHQxefa8qu9+R1uHWmlSSkbrK8ZmeuukST0xG3Le21Gz11izymeZdNw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVZP280MB0169
Message-ID-Hash: WLG6UX2I37TY7UE3UYAMSW6S6KE722BY
X-Message-ID-Hash: WLG6UX2I37TY7UE3UYAMSW6S6KE722BY
X-MailFrom: marco.tiloca@ri.se
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-core.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [core] Re: Review of draft-ietf-core-oscore-groupcomm-17
List-Id: "Constrained RESTful Environments (CoRE) Working Group list" <core.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/YELaPm-FKoOkkRAgcnvIKl9DijA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Owner: <mailto:core-owner@ietf.org>
List-Post: <mailto:core@ietf.org>
List-Subscribe: <mailto:core-join@ietf.org>
List-Unsubscribe: <mailto:core-leave@ietf.org>

Hi Christian,

Thanks! See our replies below. Please note that:

* All these points were addressed (with or without an action) in the 
versions following v -17. Last year we actually had the opportunity to 
discuss those points with you during a few side meetings.

* We will shortly reply with a separate mail to your follow-up comments 
on v -17 archived at 
https://mailarchive.ietf.org/arch/msg/core/zX5DsiXWXnDv3U2Hqs955M8uMCc/

* We will work on a separate reply to your comments on v -21 archived at 
https://mailarchive.ietf.org/arch/msg/core/tPPSsrFMPZId_7Q7OrmbgN1DCdw/

Best,
/Marco (for the authors team)

On 2024-07-01 22:02, Christian Amsüss wrote:
> Hello oscore-groupcomm authors,
>
> as part of having read the updated document, I'm going through the
> review that initiated many of the changes for open points.
>
> While there are points which I'm still reviewing in more detail, and
> some remarks based on the latest version, what I can start with is a
> list of items I found neither changed nor mentioned in a response (or I
> missed where that happened). Many of those may easily be fine, just want
> to make sure none of that is getting lost:
>
> * 2.1.6 "The label is an ASCII string": Given that the type element in
>    the info array is a CBOR item, it can only be a byte or a text string;
>    I assume that the latter is meant. (And these don't typically contain
>    trailing NUL bytes).

==>MT

Yes, it's a CBOR text string, per the CDDL definition of the 'info' 
array inherited from RFC 8613.

The quoted text uses the same formulation of Section 3.2.1 of RFC 8613, 
where the clarification "The label is an ASCII string and does not 
include a trailing NUL byte" is also given.

Therefore, the text was kept as is, for consistency with RFC 8613.

<==

>
> * 4., "OSCORE uses the untagged COSE_Encrypt0 structure with an
>    Authenticated Encryption with Associated Data (AEAD) algorithm":
>    After compression, it doesn't matter any more whether it's the tagged
>    or the untagged COSE_Encrypt0 structure.

==>MT

That is correct. However, it is the same formulation used in Section 5 
of RFC 8613, where exactly the same applies.

Therefore, the text was kept as is, for consistency with RFC 8613.

<==

>
> * In verifying that the now explicit arithmetic for the Ed25519 /
>    Curve25519 mapping is what I'm using, I found that libsodium (from
>    where I lifted my implementation) since very recently contains a note
>    on its ed25519_..._to_curve25519 functions that "An alternative is do
>    the ECDH operation over the Edwards curve, avoiding the conversion
>    altogether"[2].
>
>    Given that a lot of work has gone into making the Ed25519/X25519
>    conversion work, I hope that no easy alternatives to this moderately
>    cumbersome process (admittedly, it's the hardest in terms of spec
>    text, and probably easier on the target CPU than on the programmer)
>    have been missed, but I'd appreciate if someone who understood what's
>    actually going on here could verify that whatever they're proposing
>    doesn't apply here.

==>MT

The considered manual coordinate conversion has been proved secure by 
Erik Thormarker [THORMARKER], it is aligned with a specification, and it 
is simple.

In addition, we would like to keep one method to compute a 
Diffie-Hellman secret starting from EdDSA keys, and we do have that one 
already.

On this topic, we also got the following two inputs from Erik Thormarker:

**First input:**

 > Note that the private EdDSA key needs to be extracted if it is being 
used for DH, independent of curve.
 >
 >
 > In theory it is secure to do DH direcly on the peer’s EdDSA key. In 
practice EdDSA and DH can have different APIs which makes it complicated.
 >
 > Note also that there are different assumptions on the points which 
are operated on. X25519 needs to protect the static key with a constant 
time scalar multiplication on a variable attacker-chosen point on the 
curve [X].
 >
 > There may be problems in implementations doing DH on EdDSA keys. It 
happens to be supported in libsodium, but not clear how widely supported 
it is.
 >
 >  [X] 
https://crypto.stackexchange.com/questions/27866/why-curve25519-for-encryption-but-ed25519-for-signatures
 >

**Second input:**

 > Both parties need to agree on which curve coordinates they put in the 
hash function, so one party cannot silently choose to stay on the 
Edwards curve. If the party staying on the Edwards curve needs to map to 
Montgomery afterwards anyway (to agree on the hash function input), you 
could just as well map before the DH as in the current draft.
 >
 > If doing it on the Edwards curve, the parties would need to agree on 
the format of the DH result to put into the hash function (e.g., use 
both coordinates or only one).
 >
 > The current draft also says that parties must abort on some public 
keys for which the mapping to Montgomery coordinates is undefined.
 >
 > For edwards448 to curve448 I think the mapping used in the draft 
(from Section 4.2 of RFC 7748) induces a scalar multiplication by 4 (the 
mapping is “4-isogenous”), which is OK for the current draft since both 
sides do one mapping operation each.
 >
 > Taking the approach from libsodium can rely on computing the 
Diffie-Hellman secret from Edwards coordinate first, and then do the 
coordinate mapping afterwards. However, such a mapping needs to be 
performed in constant time, which may be more difficult compared to 
performing the coordinate conversion as a first thing altogether, before 
computing the Diffie-Hellman secret over Montgomery coordinates.
 >
 > Furthermore, the computation of a Diffie-Hellman secret over 
Montgomery coordinates should be as per the standard X25519, so 
libsodium should support this method.


Therefore, we made no change about this in the document.

[THORMARKER] https://eprint.iacr.org/2021/509

<==

> * Now that authentication credentials are a thing in Group OSCORE, and
>    these can in particular be CWTs or ?509 certificates that can have
>    chains leading there: Does this mean that for deployments such as the
>    pairwise-only one sketched at the last paragraph above Section 1.1,
>    it's possible to run a group on more-or-less unchanged group key
>    material, and members join by means of learning the current key
>    material and obtaining a signed certificate to their key? (When they
>    then arrive in the group, they start communicating, and when their
>    peers need the credentials, those can be disseminated in a
>    self-contained way, eg. by the new node itself -- without involving
>    the GM).

==>MT

TL;DR: Something like the above might be engineered somehow, but it can 
rather be left out of the scope of this document.

At the moment we do not mean to imply that such a provisioning approach 
is possible, or to take any particular stance about that. At the same 
time, as things are described now:

* The Group Manager is the solely intended repository of authentication 
credentials of group members.

* Each group member uploads its authentication credential to the Group 
Manager and obtains the other group members' authentication credentials 
from the Group Manager.

Just for the sake of the argument, these are first thoughts.

The authentication credential of a joining node would also need to be 
countersigned by the Group Manager, as vouching for the current 
membership of that node in the group, building on having achieved 
proof-of-possession for the private key of that node (see Section 3.1 of 
v -21).

In most cases, the Group Manager can countersign the authentication 
credential by using the private key corresponding to the same Group 
Manager's authentication credential used in the group, and that the 
group members also obtain upon joining.

However, if the group uses only the pairwise mode of Group OSCORE, then 
the Group Manager's authentication credential includes a Diffie-Hellman 
public key, hence the group members would have to somehow acquire a 
separate Group Manager's public key for verifying the Group Manager's 
countersignature on each others' authentication credential.

That is, this seems to be in principle doable, with quite a few things 
that may require proper engineering.

* Upon joining the group:
   * The joining node must still provide its own authentication 
credential to the Group Manager, which still has to achieve 
proof-of-possession of the corresponding private key.
   * The joining node must obtain from the Group Manager a countersigned 
version of its own public authentication credential.
   * If the group uses only the pairwise mode, the joining node must 
obtain from the Group Manager a separate signing authentication 
credential of the Group Manager to be used for verifying such 
countersignature on the authentication credentials of other group members.

* When sending (the first? some? every?) message to the group, a node 
has to somehow embed also its countersigned public authentication 
credential.

   If no special care is taken, this will prove that the node was a 
group member at the point in time when the Group Manager computed the 
countersignature, but not necessarily when a recipient group member 
verifies that countersignature.

   This could be addressed by including together with the 
countersignature an information that binds the public authentication 
credential with the version of the group keying material (this concept 
is defined in this document already, not in 
draft-ietf-ace-key-groupcomm-oscore). That information has also to be 
input to the signing process.

Perhaps this can be material for a separate document focused on 
alternative distribution of authentication credentials.

<==

> * Is the attack described in 13.7 ("Cross-group Message Injection")
>    still possible now that request_kid_context and gm_cred are part of
>    the eAAD? My impression (but without thorough checking) is that it
>    wouldn't work any more because the gm_cred differ.
>
>    Having the OSCORE option in the signature is a bit convoluted in
>    implementations (not impossible, and can be optimized out, but
>    requires some mental gymnastics), and AIU 13.7 is the only reason to
>    have the OSCORE option in the eAAD in the first place.

==>MT

In short, the attack is not feasible to perform thanks to the current 
design as-is, i.e., with the external_aad also taking into account 
request_kid_context, gm_cred, and the OSCORE Option of the present message.

In general, gm_cred would not differ. The two groups might be operated 
by the same Group Manager. If those two groups rely on the same format 
of authentication credential for the same kind of algorithm/curve, then 
the Group Manager can use exactly the same authentication credential in 
both of them.

Besides, covering specifically the OSCORE Option in the external_aad 
allows to prevent the attack also if mounted on response messages. 
That's otherwise not possible, since the kid, kid_context, and piv in 
the external_aad refer to the corresponding values that the original 
request had in its OSCORE Option. Instead, the OSCORE Option in the 
external_aad is exactly as in the present message to process.

On taking the OSCORE Option as input to the signature process: yes, 
preventing this attack is the only reason. It was judged simpler than 
extending the external_aad separately with the different pieces of 
information this_message_kid, this_message_kid_context, 
this_message_piv, which would also be not flexible to possible further 
extensions of the OSCORE Option introduced in the future.

Therefore, we made no changes in the draft.

<==

> * A.1, forward and backward security: These look more like objectives
>    (A.2) than assumptions (A.1) to me.

==>MT

We intended them to be assumptions, since ensuring those is out of the 
scope of Group OSCORE itself, see the beginning of Appendix A.1:

 > The following points are assumed to be already addressed and are out 
of the scope of this document.

That is, Group OSCORE itself is not required/expected to ensure backward 
and forward security. That's up to the rekeying algorithm performed, 
e.g., by the Group Manager.

Consistently, we did rename the two bullet points as follows:

OLD:
 > Backward security

NEW:
 > Ensuring backward security

OLD:
 > Forward security

NEW:
 > Ensuring forward security

<==

>
> * 13.5.1, "the recipient can still try to process the received message
>    using the old retained Security Context as a second attempt": Why is
>    that a second attempt? This makes it sound like the server attempts
>    decryption, encounters a bad signature, and then retries with the old
>    context, whereas what actually happens is that the server sees the old
>    Gid, and still has that security context around.

==>MT

That was a good catch, and we did address it.

There is actually a case where it is indeed a second attempt, i.e., if 
the message in question is a response received at the client and not 
including the Gid (which, in responses, is optional and typically not 
included).

In Section 13.5.1, we expanded that paragraph as follows.

OLD:
 > By doing so, the recipient can still try to process the received 
message using the old retained Security Context as a second attempt. 
This makes particular sense when the recipient is a client, that would 
hence be able to process incoming responses protected with the old, 
recent, Security Context used to protect the associated group request. 
Instead, a recipient server would better and more simply discard an 
incoming group request which is not successfully processed with the new 
Security Context.

NEW:
 > By doing so, the recipient can still try to process the received 
message using the old retained Security Context.
 >
 > This makes particular sense when the recipient is a client, that 
would hence be able to process incoming responses protected with the old 
retained Security Context used to protect the associated request. If, as 
typically expected, the old Gid is not included in the response, then 
the client will first fail to process the response using the latest 
Security Context, and then use the old retained Security Context as a 
second attempt.
 >
 > Instead, a recipient server can immediately process an incoming 
request with the old retained Security Context, as signaled by the old 
Gid that is always included in requests. However, the server would 
better and more simply discard such an incoming request.

<==

>
> * 13.14: Does it make sense to show client aliveness? The server gets
>    client aliveness relative to the last rekeying, but an application
>    that requires aliveness exceeding that would cause a storm of Echo
>    options that could have better been handled by 1:1 communication (or
>    more frequent rekeying) in the first place.

==>MT

That was a good consideration, since some client aliveness is ensured 
here. Not to the extent of the current message exchange, but at least of 
the current epoch of group keying material.

We largely revised Section 13.14, now consisting of the text below:

 > As in OSCORE, Group OSCORE provides only the guarantee that the 
request is not older than the Group OSCORE Security Context used to 
protect it. Other aspects of freshness are discussed in Section 6.2.
 >
 > The challenge-response approach described in Section 10 provides an 
assurance of freshness of the request without depending on the honesty 
of the client. However, it can result in an impact on performance which 
is undesirable or unbearable, especially in large groups where many 
endpoints at the same time might join as new members or lose 
synchronization.
 >
 > Endpoints configured as silent servers are not able to perform the 
challenge-response described above, as they do not store a Sender 
Context to secure the 4.01 (Unauthorized) response to the client. Thus, 
silent servers should adopt alternative approaches to achieve and 
maintain synchronization with Sender Sequence Numbers of clients.
 >
 > Since requests including the Echo Option are sent over unicast, a 
server can be victim of the attack discussed in Section 13.9, in case 
such requests are protected in group mode. Instead, protecting those 
requests with the pairwise mode prevents the attack above. In fact, only 
the very server involved in the challenge-response exchange is able to 
derive the pairwise key used by the client to protect the request 
including the Echo Option.
 >
 > In either case, an internal on-path adversary would not be able to 
mix up the Echo Option value of two different unicast requests, sent by 
a same client to any two different servers in the group. In fact, even 
if the group mode was used, this would require the adversary to forge 
the countersignature of both requests. As a consequence, each of the two 
servers remains able to selectively accept a request with the Echo 
Option only if it is waiting for that exact integrity-protected Echo 
Option value, and is thus the intended recipient.

<==

>
> BR
> Christian
>
> [2]: https://github.com/jedisct1/libsodium-doc/commit/0732187608798b7b6d48d291ed1562fb28cf1e36 / https://doc.libsodium.org/advanced/ed25519-curve25519
>

-- 
Marco Tiloca
Ph.D., Senior Researcher

Phone: +46 (0)70 60 46 501

RISE Research Institutes of Sweden AB
Box 1263
164 29 Kista (Sweden)

Division: Digital Systems
Department: Computer Science
Unit: Cybersecurity

https://www.ri.se