[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
- [core] I-D Action: draft-ietf-core-oscore-groupco… internet-drafts
- [core] Fwd: I-D Action: draft-ietf-core-oscore-gr… Marco Tiloca
- [core] Review of draft-ietf-core-oscore-groupcomm… Christian Amsüss
- [core] Re: Review of draft-ietf-core-oscore-group… Christian Amsüss
- [core] Re: Review of draft-ietf-core-oscore-group… chrysn
- [core] Re: Review of draft-ietf-core-oscore-group… Marco Tiloca
- [core] Re: Review of draft-ietf-core-oscore-group… Marco Tiloca