Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-6lo-ap-nd-15: (with DISCUSS and COMMENT)
"Pascal Thubert (pthubert)" <pthubert@cisco.com> Wed, 05 February 2020 13:16 UTC
Return-Path: <pthubert@cisco.com>
X-Original-To: 6lo@ietfa.amsl.com
Delivered-To: 6lo@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 76CBE120805; Wed, 5 Feb 2020 05:16:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.499
X-Spam-Level:
X-Spam-Status: No, score=-14.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=gDgGTjZO; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=Ruu8JMbt
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 HHxvclMRZz2W; Wed, 5 Feb 2020 05:16:03 -0800 (PST)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 277E412080F; Wed, 5 Feb 2020 05:16:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=35914; q=dns/txt; s=iport; t=1580908563; x=1582118163; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=6SgejzQ1vcJaOXgt36l0+wi8IPoH4uHLAX5cEfiQBgM=; b=gDgGTjZO7FchruACqFxjXE3/eUrotQNOYEDvfz35wuiI2UYcAjtP8h3Y Li3x0HIZ9tHws24bSA/tGgY3Wmd6K5Z73CkOmBWAqDBar47Rz8VbCaL0G j2aW5VRen66ZrfpRofvMcPvr2EQiYV8QFwWRwghZTcvgPpmf6oxAPUHu4 0=;
IronPort-PHdr: 9a23:z8kGDhYerBx/evwsbRsTGrv/LSx94ef9IxIV55w7irlHbqWk+dH4MVfC4el20gabRp3VvvRDjeee87vtX2AN+96giDgDa9QNMn1NksAKh0olCc+BB1f8KavycywnFslYSHdu/mqwNg5eH8OtL1A=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AeCAAxvzpe/5BdJa1bCg4PAQEBCQERBQUBgXuBVFAFbFggBAsqhBWDRgOKeIJfgQGXEYFCgRADVAkBAQEMAQEjCgIBAYRAAheCIyQ4EwIDDQEBBAEBAQIBBQRthTcMhWYBAQEBAxIICQQNDAEBJQUNAQsEAgEIEQQBAQMCJgICAjAVCAgCBAENBQgagwWCSgMuAQIMoDUCgTmIYnV/M4J/AQEFgTMCDkGDDhiCDAMGgQ4qhR6EO3YQgUMagUE/gRABR4FOSTU+gmQCAQEBARiBBgUJAQcEAQYBBAcYJIJqMoIsjT4SEoJ1nxMKgjqHSoF5g02FDYRBgkiID4RIi2qMa4EdWohqkjUCBAIEBQIOAQEFgWkiRCNYAw4IcBU7gmxQGA2OHQkCARcVgzuFFIUEOgF0AoEnimMBAQ8XB4IUAQE
X-IronPort-AV: E=Sophos;i="5.70,405,1574121600"; d="scan'208";a="717938118"
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 05 Feb 2020 13:16:00 +0000
Received: from XCH-ALN-004.cisco.com (xch-aln-004.cisco.com [173.36.7.14]) by rcdn-core-8.cisco.com (8.15.2/8.15.2) with ESMTPS id 015DG0X0013822 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 5 Feb 2020 13:16:01 GMT
Received: from xhs-aln-001.cisco.com (173.37.135.118) by XCH-ALN-004.cisco.com (173.36.7.14) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 5 Feb 2020 07:16:00 -0600
Received: from xhs-aln-001.cisco.com (173.37.135.118) by xhs-aln-001.cisco.com (173.37.135.118) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 5 Feb 2020 07:15:58 -0600
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-001.cisco.com (173.37.135.118) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 5 Feb 2020 07:15:58 -0600
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fWamGK48qAz6nY56fjcnzqwTIkLEtKcXLoPXgCda5xKYHNJ3L5yetmLN7CO1w6VRtLUudk6swxJndBgaR7xvdii1hgo+wA0r91aMR0gtobZxfW5LxTDYhXs0bBGUNoDRKrzIWv29HqoZVTYHngRRsurOCt/SlCrV/a9iGcSqksCGpHqFcNC5fjct+Anc/Bgi3rzeNkfIkWrekq7fiD+gEd06dsbllji1vaBv/VIwuMYN39vnQtC6kMM0ezxK8vofXQK2o+fWJ7fDZKnOFIu/tgY+B6BsDBsRahOGUqcIc/NZf2AHaUDvwzuiFioghhMgIJAiH2B6+KWwv3N7Hqo5Jw==
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=6SgejzQ1vcJaOXgt36l0+wi8IPoH4uHLAX5cEfiQBgM=; b=mD34Q87Fh1Sh1u5UfQxwtJOruoCu6PLZyzmoJvukeXP9hrpKKOSPc8LEWKF5HRx1+swmj6DGLDfYn9uR5eUxaUwuEgil/4jnqpGeP7a9XlquLSNU7QxXsEWZEEseS4p5Vz/mba5oO49dHh3eynQYLy2MVy/oL2H6rPDVqSPcPiSuKABUnUoD/cVUjJ9bLI+OyPCuNLLsS7jLjMGEIP1tlcB2CbK3AdMIrfoORTgOSgA67g7JAFBS8hlxaCmOMdq/IpS7NsiOwjlzaBw+2OG5/AHcOjzYAHqFVuDxFBuPdYqi64mY0xtahf9yKV7U1mwmhukE3SHJwkRoDRil3IbkhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6SgejzQ1vcJaOXgt36l0+wi8IPoH4uHLAX5cEfiQBgM=; b=Ruu8JMbtTfUa/IsalX69hTax2VV6rpdd3qFRUsaRA2kWlACg0+FCWbB/RxcAmSWhOOmh0gM8Um8FQD4hKxNsMiZZ7Ftcu3qUSHQsVm4kvPUu7UwTgCApVsXOlbdrercnGKdn06ltMWWsbb77jNszGQcqUhan3buFCtmjtD+FXFU=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (20.178.250.159) by MN2PR11MB3647.namprd11.prod.outlook.com (20.178.251.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Wed, 5 Feb 2020 13:15:57 +0000
Received: from MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::fd76:1534:4f9a:452a]) by MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::fd76:1534:4f9a:452a%3]) with mapi id 15.20.2707.020; Wed, 5 Feb 2020 13:15:57 +0000
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Benjamin Kaduk <kaduk@mit.edu>, The IESG <iesg@ietf.org>
CC: "draft-ietf-6lo-ap-nd@ietf.org" <draft-ietf-6lo-ap-nd@ietf.org>, "Shwetha Bhandari (shwethab)" <shwethab@cisco.com>, "6lo-chairs@ietf.org" <6lo-chairs@ietf.org>, "6lo@ietf.org" <6lo@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-6lo-ap-nd-15: (with DISCUSS and COMMENT)
Thread-Index: AQHV2IzboswYmzjUQ0uf9MGXohRBl6gMmtFA
Date: Wed, 05 Feb 2020 13:15:43 +0000
Deferred-Delivery: Wed, 5 Feb 2020 13:15:14 +0000
Message-ID: <MN2PR11MB3565DFB17A364038B57F990CD8020@MN2PR11MB3565.namprd11.prod.outlook.com>
References: <158051274858.21121.16988738930495243847.idtracker@ietfa.amsl.com>
In-Reply-To: <158051274858.21121.16988738930495243847.idtracker@ietfa.amsl.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=pthubert@cisco.com;
x-originating-ip: [2001:420:44f3:1300:41e7:7725:e525:b2e8]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a4819b11-e6fe-4156-2fc7-08d7aa3d8985
x-ms-traffictypediagnostic: MN2PR11MB3647:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <MN2PR11MB3647E5DF268C00B8C4B3DB45D8020@MN2PR11MB3647.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0304E36CA3
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(396003)(346002)(366004)(136003)(39860400002)(189003)(199004)(53546011)(966005)(4326008)(76116006)(9686003)(55016002)(6506007)(186003)(71200400001)(66574012)(6666004)(86362001)(8936002)(30864003)(81166006)(81156014)(316002)(8676002)(478600001)(54906003)(66476007)(110136005)(66446008)(2906002)(66946007)(33656002)(64756008)(5660300002)(7696005)(52536014)(66556008)(559001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3647; H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Yr2lIYUDMzdbD9D+gXFL7iYVhI42bsVdUYhs4EEPOlXmlSPfNljrD9bzySEl7ADIWGFX3ULDJqxFFdgLMPveU8+f/rj3Tb4a8bmE5WDzHWqOJcYLLSokbpLVBOFPkHk/ztQR9x4BjezuM7Hm79BkvRNyG7jc9g2LD0kWKRihGFRyglSP3/1Uf8OqjJ5rcLpEdCHYLJJ7EF3gQaSeYE80Rs4WDH5NJjOyC7liGOCIKNKHLH/gR9P3GzAWLxejNQwea8tuj+ON8m5kouyW368bVbOAPqmkncj5L/EOf3DOMd/S5TavMT+YxfaF94oVhXj5NIIzxUwCoR+Fiu8K1ZIOhYcZhhldX3WzGMRGjEGpifdDANIW9qH0H8SoZ/ub1GLDPaLXnqZKTmXE9QRb0EYd3r2fOB0X3rJuEacT9D3Qu3QkkbcNvIBi3rUzlcCOZBRUSXStDNERbdbqoAXy2AuGsq9giPxCZNdG2uwgn0Y1MSWtI70MaqQYN5GPaAzFVwfOjJtyIIHh9qIY2FiMxa6oUw==
x-ms-exchange-antispam-messagedata: QprVScum1+D9rksUQq0eAXulZW2EqllSMpt6og0+ipsRraNCiL3w283hG32Th5DQkoMe/aKB5M+YFb560r6ybF81ABI19xOYfh9NcTUtcHtUfEdz0le6wYLJdFw3Dgkzq0kXBbJDmBJ7Z3+wEkPA9lqnbx0LxaD3EV0FZcDYsteLe0XQjKCRb19G7Q3PUl0MSyeRzrM/h6n17go2FDcUFA==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: a4819b11-e6fe-4156-2fc7-08d7aa3d8985
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Feb 2020 13:15:57.2069 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OZ8pFKcidkQoCaOytoiJqJXHsbCb0dKZjIw0rAaaLoKYmkU4nJOoeNlF1VvKKJFW2NZSNCjGNFkq7qmmxqT2FA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3647
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.14, xch-aln-004.cisco.com
X-Outbound-Node: rcdn-core-8.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/DPB7X4-olWYXnoI01Sfws8y80D0>
Subject: Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-6lo-ap-nd-15: (with DISCUSS and COMMENT)
X-BeenThere: 6lo@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Mailing list for the 6lo WG for Internet Area issues in IPv6 over constrained node networks." <6lo.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6lo>, <mailto:6lo-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6lo/>
List-Post: <mailto:6lo@ietf.org>
List-Help: <mailto:6lo-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lo>, <mailto:6lo-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Feb 2020 13:16:07 -0000
Hello again Benjamin: About your discuss below we published -18 that has text from Rene that removes the uncertainty on compression. Please have a look at https://www.ietf.org/rfcdiff?url2=draft-ietf-6lo-ap-nd-18 and let us know if the diffs correct the issue properly. Many thanks again Pascal > -----Original Message----- > From: Benjamin Kaduk via Datatracker <noreply@ietf.org> > Sent: samedi 1 février 2020 00:19 > To: The IESG <iesg@ietf.org> > Cc: draft-ietf-6lo-ap-nd@ietf.org; Shwetha Bhandari (shwethab) > <shwethab@cisco.com>; 6lo-chairs@ietf.org; Shwetha Bhandari (shwethab) > <shwethab@cisco.com>; 6lo@ietf.org > Subject: Benjamin Kaduk's Discuss on draft-ietf-6lo-ap-nd-15: (with DISCUSS > and COMMENT) > > Benjamin Kaduk has entered the following ballot position for > draft-ietf-6lo-ap-nd-15: Discuss > > When responding, please keep the subject line intact and reply to all email > addresses included in the To and CC lines. (Feel free to cut this introductory > paragraph, however.) > > > Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html > for more information about IESG DISCUSS and COMMENT positions. > > > The document, along with other ballot positions, can be found here: > https://datatracker.ietf.org/doc/draft-ietf-6lo-ap-nd/ > > > > ---------------------------------------------------------------------- > DISCUSS: > ---------------------------------------------------------------------- > > The CIPO description specifies that a 5-bit Reserved1 field and a 13-bit Public > Key Length field are combined to fit into a 16 (not 18)-bit space. > (The Figure shows the Public Key Length field as 11 bits.) > > Why do we need to allow ambiguity/flexibility as to the point representation > within a given Crypto-Type value (as opposed to fixing the representation as a > parameter of the Crypto-Type)? Alternately, what does "(un)compressed" > mean, as it's not really clarified directly? Furthermore, Table 2 lists an > "(un)compressed" representation for type 0 (over P-256), but RFC 7518 notes > that the compressed representation is not supported for P-256 (Section > 6.2.1.1). I also am not finding the needed codepoints registered in the JOSE > registries to use ECDSA25519 (crypto-type 2) -- do we need to register > anything there? > > Per my comment on Section 4.4, there may be some implicit > expectation/requirement of 128+-bit ROVRs for AP-ND, but I didn't find where > such a requirement was stated. > > > ---------------------------------------------------------------------- > COMMENT: > ---------------------------------------------------------------------- > > Thanks for this well-written document! It will be good to see this stuff getting > deployed. > > What's the risk of DoS via (short) address exhaustion in terms of 6LBR > resources (as distinct from 6LR resources mentioned at the end of Section 7.1)? > > Section 1 > > In this specification, a 6LN generates a cryptographic ID (Crypto-ID) > and places it in the ROVR field during the registration of one (or > more) of its addresses with the 6LR(s). Proof of ownership of the > Crypto-ID is passed with the first registration exchange to a new > 6LR, and enforced at the 6LR. The 6LR validates ownership of the > cryptographic ID before it creates any new registration state, or > changes existing information. > > I'll read on and see, but how much trust does this imply that we require of all > 6LRs (as opposed to the 6LBR, which is kind of required to be pretty trusted)? > [ed.: basically complete trust is required] > > The protected address registration protocol proposed in this document > enables Source Address Validation (SAVI) [RFC7039]. This ensures > that only the actual owner uses a registered address in the IPv6 > source address field. A 6LN can only use a 6LR for forwarding > packets only if it has previously registered the address used in the > source field of the IPv6 packet. > > nit: this last sentence is written as if we not only enable, but also require, SAVI. > > The 6lo adaptation layer in [RFC4944] and [RFC6282] requires a device > to form its IPv6 addresses based on its Layer-2 address to enable a > better compression. This is incompatible with Secure Neighbor > Discovery (SeND) [RFC3971] and Cryptographically Generated Addresses > (CGAs) [RFC3972], since they derive the Interface ID (IID) in IPv6 > addresses with cryptographic keys. > > Are we going to have some further discussion of the scope of that loss of > functionality and/or alternative mechanisms to achieve those goals, or is this > statement just intended to note the incompatibility? > > Section 3 > > The proof requires the support of Elliptic Curve Cryptography (ECC) > and that of a hash function as detailed in Section 6.2. To enable > the verification of the proof, the registering node needs to supply > certain parameters including a Nonce and a signature that will > demonstrate that the node has the private-key corresponding to the > public-key used to build the Crypto-ID. > > nit: the proof itself may only indirectly involve a hash, since we use non- > prehash Ed25519 (but the hash function is still needed to generate the Crypto- > ID itself). > > nit(?): I think we tend to see "possesses the private key" more often than "has > the private-key", for parallelism with the "proof of possession" term of art. > > The elliptic curves and the hash functions that can be used with this > specification are listed in Table 2 in Section 8.3. The signature > scheme that specifies which combination is used is signaled by a > > nit: this could be misread as saying that the Table is authoritative, not the > registry. > > Section 4.1 > > The Crypto-ID is derived from the public key and a modifier as > follows: > > 1. The hash function indicated by the Crypto-Type is applied to the > CIPO. Note that all the reserved and padding bits MUST be set to > zero. > 2. The leftmost bits of the resulting hash, up to the size of the > ROVR field, are used as the Crypto-ID. > > This construction seems to allow for some malleability, in that an attacker who > observes a given Crypto-ID and CIPO could produce a related, valid, Crypto-ID > by reducing the ROVR length and truncating what was received. I haven't > attempted to explore what (if any) potential consequences there are of such > malleability, and would like to know if anyone else has already done so. It > looks like the NDPSO construction includes the length of the Crypto-ID, so it > would be hard for an attacker to do much with such a truncated Crypto-ID, but > attacks only get better... > > Section 4.2 > > nit: I confess I'm missing what compels us to produce a de novo definition of > the "Status" field (and Length field) as opposed to deferring to the RFC > 8505 definition, as we do for most of the other fields. > > Section 4.3 > > Crypto-Type: 8-bit unsigned integer. The type of cryptographic > algorithm used in calculation Crypto-ID (see Table 2 in > Section 8.3). Although the different signature schemes target > similar cryptographic strength, they rely on different curves, > hash functions, signature algorithms, and/or representation > conventions. > > While the currently-defined signature schemes target similar cryptographic > strength, do we need to imply that all future ones will also target a similar > strength (especially since Section 8.3 admits the possibility of "better > security")? > > Modifier: 8-bit unsigned integer. Set to an arbitrary value by the > creator of the Crypto-ID. The role of the modifier is to enable > the formation of multiple Crypto-IDs from a same key pair, which > reduces the traceability and thus improves the privacy of a > constrained node that could not maintain many key-pairs. > > It may be worth digging in a little further to the threat model being addressed > here -- while I laud the ability to have multiple Crypto-IDs from a single keypair, > it seems that the tracking-prevention this affords implies an attacker who can > observe Crypto-IDs, most likely at multiple points in the network. Are Crypto- > IDs used for anything other than EAROs? I don't have a great sense for how > likely it is that an attacker in position to observe (a subset of) EAROs would not > also be in a position to observe at least one associated CIPO, which includes all > the information needed to generate the Crypto-ID other than the Modifier. > With only an 8-bit Modifier space, brute-forcing the other possible Crypto-IDs > for that keypair is not terribly strenuous, whereas allowing for a (potentially > variable length?) larger Modifier, say 64 bits, would substantially increase the > work-factor needed to predict (and store!) other Crypto-IDs that might be used > for this keypair. Given that the CIPO already carries the public key itself, it's > not entirely clear how space-constrained we are so as to limit this to just > 8 bits of modifier. > > Padding: A variable-length field completing the Public Key field to > align to the next 8-bytes boundary. > > (MUST be set to zero by sender and ignored by receiver, as well?) > > The implementation of multiple hash functions in a constrained > devices may consume excessive amounts of program memory. > > But multiple signature algorithm implementations will not? > > Section 4.4 > > Is there some more discussion to have about how NDPSO includes only a > specific fixed set of information under the signature but RSAO signs all options > that appear prior to it in the message? > > nit: style suggests parallelism between the Section 4.3 and 4.4 introductory > remarks (e.g., "this specification defines the NDP Signature Option (NDPSO)"). > > As opposed to the RSA Signature Option (RSAO) defined in section 5.2. > of SEND [RFC3971], the NDPSO does not have a key hash field. The > hash that can be used as index is the 128 leftmost bits of the ROVR > field in the EARO. > > nit: this last sentence perhaps leaves more context implicit than the reader > might like; I suggest "Instead, the leftmost 128 bits of the ROVR field in the > sibling EARO are used to lookup the key used for signature verification, [left- > padded with zeros if needed]". (I added the part in square brackets because > I'm not sure that anything guarantees the ROVR will actually contain > 128 bits -- when AP-ND is not in use its typically just 64 bits, right?) > > Pad Length: 8-bit unsigned integer. The length of the Padding > field. > > (In octets?) > > Padding: A variable-length field making the option length a multiple > of 8, containing as many octets as specified in the Pad Length > field. Typically there is no need of a padding and the field is > NULL. > > Just to check: nothing requires the use of minimal-length padding to achieve > the required alignment, and padding of 200+ bytes is permitted by the spec, > albeit silly? > > Section 6 > > This specification enables the 6LR to verify the ownership of the > binding at any time assuming that the "C" flag is set. The > verification prevents other nodes from stealing the address and > trying to attract traffic for that address or use it as their source > address. > > nit: I think that the verification cannot be done unilaterally by the 6LR, so > maybe "enables the 6LR to challenge the node to verify its ownership of the > binding at any time" is better. > > A node may use multiple IPv6 addresses at the same time. The node > MAY use the same Crypto-ID, to prove the ownership of multiple IPv6 > addresses. The separation of the address and the cryptographic > > nit: no comma > > material avoids the constrained device to compute multiple keys for > > nit: "avoids the need for" > > multiple addresses. The registration process allows the node to use > the same Crypto-ID for all of its addresses. > > nit(?): We could potentially mention again the ability to use different Crypto- > IDs with a single keypair, though there's not any clear need to do so. > > Section 6.1 > > Mostly just for my own elucidation, where is it first specified to put the address > being registered in the Target Address field of the NS message? > > detrimental to the battery lifetime. Alternatively, the device may > use an always-incrementing value saved in the same stable storage as > the key, so they are lost together, and starting at a best effort > random value, either as Nonce value or as a component to its > computation. > > nit: "as the Nonce value". > > and the NDPSO containing the signature. The information associated > to a Crypto-ID stored by the 6LR on the first NS exchange where it > appears. The 6LR MUST store the CIPO parameters associated with the > > nit: I think there's a verb missing in this sentence ("MUST be"?) > > |------- NS with EARO, CIPO, NonceLN and NDPSO -------->| > > (This still includes the Crypto-ID, even if there's not room in the figure to > explicition indicate that, right?) > > * Upon the first exchange with a 6LR, a 6LN will be challenged to > prove ownership of the Crypto-ID and the Target Address being > > How is the "first exchange" tracked? Just whether the 6LR knows about the > registered IPv6 address, or the L2 address, or something else? In particular, if a > 6LR has cached an IP address/ROVR binding, and an attacker tries to join that > 6LR with that address/ROVR, what controls whether the 6LR will challenge the > attacker's 6LN? Is it purely at the 6LR's discretion? > > * The challenge is triggered when the registration for a Source > Link-Layer Address is not verifiable either at the 6LR or the > 6LBR. In the latter case, the 6LBR returns a status of > "Validation Requested" in the DAR/DAC exchange, which is echoed by > the 6LR in the NA (EARO) back to the registering node. The > challenge MUST NOT alter a valid registration in the 6LR or the > 6LBR. > > nit(?): the previous bullet describes a case where the 6LR MUST issue a > challenge; my understanding is that this bullet describes an additional way in > which challenges can occur (i.e., when the 6LBR doesn't know about the > address registration either). Stylistically, it might be more clear to reword this > as being an "additional case" on top of the previous one, as opposed to the > current wording which tries to be very general about when a challenge can > happen, which is neither a parallel construction to the previous bullet nor > particularly clear about what new information is being conveyed by this bullet. > > * In order to validate the ownership, the 6LR performs the same > steps as the 6LN and rebuilds the Crypto-ID based on the > parameters in the CIPO. If the rebuilt Crypto-ID matches the > ROVR, the 6LN also verifies the signature contained in the NDPSO > option. If at that point the signature in the NDPSO option can be > verified, then the validation succeeds. Otherwise the validation > fails. > > I worry a little bit that we haven't fully specified the entire list of steps the 6LR > takes to follow the cryptographic chain and validate that the 6LN holds the key > in question and registers the address in question to the Crypto-ID in question. I > don't have a specific thing in mind that the 6LR might forget, but if we > explicitly state what things are bound to what other things, the 6LR is less likely > to make a security-relevant mistake. > > Section 6.2 > > Might we want to include the Modifier or the Crypto-ID itself in the signed > data, in addition to the public key, to avoid any potential misbinding? > > 2. JWK-encoded public key > > [just to check: JWK-encoding means that we have an injective map and aren't > subject to some sort of extension attack? Not that such a thing would be easy > to pull off, with a strict registry of Crypto-Types, of course] > > 6. The length of the ROVR field in the NS message containing the > Crypto-ID that was sent. > > nit: is this really the NS "that was sent" as opposed to the NS under > construction that contains the NDPSO? (This is related to my question up in > Section 6.1.) Tying the initial NS to the followup one requires more state on > the 6LR (though the 6LR probably already had to keep state for the Nonce) and > makes some of the verification steps a bit tougher to implement correctly. > > 7. 1-byte (in network byte order) Crypto-Type value sent in the CIPO > option. > > nit: Is there any byte order with distinct representation from network byte > order, for a 1-byte quantity? ;) > > * Depending on the Crypto-Type, apply the hash function on this > concatenation. > > nit: is this clearer as "Apply the hash function (if any) specified by the Crypto- > Type to the concatenated data"? > > * Depending on the Crypto-Type, sign the hash output with ECDSA (if > curve P-256 is used) or sign the hash with EdDSA (if curve Ed25519 > (PureEdDSA)). > > nit: this text is not very consistent with the idea of an extensible registry of > Crypto-Types; similar "apply the signature algorithm specified by the Crypto- > Type" language to what I suggested above may be appropriate. > > The 6LR on receiving the NDPSO and CIPO options first regenerates the > Crypto-ID based on the CIPO option to make sure that the leftmost > bits up to the size of the ROVR match. If and only if the check is > > In the vein of my previous questions about where the Crypto-ID appears and > truncation/malleability, this text seems to leave some room for confusion > about how many bits of output are being compared, and compared to what. > > * Depending on the Crypto-Type indicated by the (6LN) in the CIPO, > apply the hash function on this concatenation. > > [similar comment as above] > > * Verify the signature with the public-key received and the locally > computed values. If the verification succeeds, the 6LR and 6LBR > add the state information about the Crypto-ID, public-key and > Target Address being registered to their database. > > This might be a place to reiterate the FCFS nature of address registration, > though it's hardly necessary. > > Section 6.3 > > In a multihop 6LoWPAN, a 6LBR sends RAs with prefixes downstream and > the 6LR receives and relays them to the nodes. 6LR and 6LBR > communicate using ICMPv6 Duplicate Address Request (DAR) and > Duplicate Address Confirmation (DAC) messages. The DAR and DAC use > the same message format as NS and NA, but have different ICMPv6 type > values. > > In AP-ND we extend DAR/DAC messages to carry cryptographically > generated ROVR. In a multihop 6LoWPAN, the node exchanges the > messages shown in Figure 6. The 6LBR must identify who owns an > address (EUI-64) to defend it, if there is an attacker on another > 6LR. > > This description feels a little vague to me -- I'm interested in knowing how the > 6LBR gains confidence that a proof-of-possession was provided to the 6LR, and > how the ROVR gets validated at 6LBR and 6LR when the 6LN in question moves > to a new 6LR. What information remains local to (each) 6LR and what is > communicated between 6LR and 6LBR? > This also relates to the "how trusted are 6LRs?" question I mentioned earlier. > > Section 7 > > It might be appropriate to talk about how the NonceLR and NonceLN combine > to ensure contributory behavior from both 6LR and 6LN, and that each protects > against a different type of replay attack. > > Section 7.1 > > Duplicate Address Detection DoS Attack: Inside the LLN, Duplicate > Addresses are sorted out using the ROVR, which differentiates it > from a movement. DAD coming from the backbone are not forwarded > over the LLN, which provides some protection against DoS attacks > inside the resource-constrained part of the network. Over the > backbone, the EARO option is present in NS/NA messages. This > protects against misinterpreting a movement for a duplication, and > enables the backbone routers to determine which one has the > freshest registration and is thus the best candidate to validate > the registration for the device attached to it. But this > specification does not guarantee that the backbone router claiming > an address over the backbone is not an attacker. > > Where do we specify the behavior of the 6LBR to reject EAROs when the 6LBR > is not the one with the freshest registration? Or do I misunderstand the > discussion of "freshest registration"? > > Replay Attacks Using Nonces (NonceLR and NonceLN) generated by both > the 6LR and 6LN provides an efficient protection against replay > attacks of challenge response flow. The quality of the protection > still depends on the quality of the Nonce, in particular of a > random generator if they are computed that way. > > It's probably worth noting explicitly that we do not require unpredictable > nonces, just non-repeating ones. > > Neighbor Discovery DoS Attack: A rogue node that managed to access > the L2 network may form many addresses and register them using AP- > ND. The perimeter of the attack is all the 6LRs in range of the > attacker. The 6LR MUST protect itself against overflows and > reject excessive registration with a status 2 "Neighbor Cache > Full". This effectively blocks another (honest) 6LN from > registering to the same 6LR, but the 6LN may register to other > 6LRs that are in its range but not in that of the rogue. > > Are there L2 technologies where L2 media keys are tied to L2 address, so a > rogue node might be rate-limited or given a quota based on L2 address? > > Section 7.2 > > address. This specification frees the device to form its addresses > in any fashion, thereby enabling not only 6LoWPAN compression which > derives IPv6 addresses from Layer-2 addresses but also privacy > addresses. > > We noted in Section 1 that the 6lo adaptation layer requires use of L2-address- > based IPv6 address selection, so it's not clear how it would be valid to use > privacy addresses with this specification. > > Section 7.3 > > We seem to be assuming for these calculations/discussion that the hash used > for calculating the Crypto-ID is a well-behaved cryptographic hash and thus > that random collisions are the only ones possible. It would be worth > mentioning that weaknesses in the hashes associated with a given Crypto-Type > could allow attackers to make more targetted collision attempts. > > The formula for calculating the probability of a collision is 1 - > e^{-k^2/(2n)} where n is the maximum population size (2^64 here, > 1.84E19) and K is the actual population (number of nodes). If the > > nit: minuscule vs. majuscule 'k'/'K' > > Section 7.4 > > The signature schemes referenced in this specification comply with > NIST [FIPS186-4] or Crypto Forum Research Group (CFRG) standards > [RFC8032] and offer strong algorithmic security at roughly 128-bit > security level. These signature schemes use elliptic curves that > > Do we want to make any forward-looking statement about the expected > strength of future-defined Crypto-Types? ("No" is a fine answer...) > > Section 7.5 > > The text here is more about cross-algorithm attacks than cross-protocol ones. > It would be great to see some text about cross-protocol attacks added, too > (e.g., prohibiting use of the keypair for anything other than AP-ND). > > Section 7.6 > > This specification distributes the challenge and its validation at > the edge of the network, between the 6LN and its 6LR. The central > 6LBR is offloaded, which avoids DOS attacks targeted at that central > entity. This also saves back and forth exchanges across a > > nit: "the central 6LBR is offloaded" reads very oddly, as the offloading is of > work from the 6LBR, but the 6LBR itself remains in place. > > The downside is that the 6LBR needs to trust the 6LR for performing > the checking adequately, and the communication between the 6LR and > the 6LBR must be protected to avoid tempering with the result of the > test. > > I'd prefer to see some more details about the nature of the required protection > for 6LR/6LBR communications. > > If a 6LR is compromised, it may pretend that it owns any address and > defeat the protection. It may also admit any rogue and let it take > ownership of any address in the network, provided that the 6LR knows > the ROVR field used by the real owner of the address. > > nit: this language could probably be tightened up to be more precise about the > hazards. > > Section 8.3 > > New Crypto-Type values providing similar or better security (with > less code) may be defined in the future. > > I'm not sure what purpose the "with less code" requirement serves. It seems > to needlessly constrain future actions. > > Section 11 > > Curve25519 support is a MAY, so I think RFC 7748 belongs as normative; > likewise for RFCs 8032 and 6234. > > It's probably better to cite RFC 7696 as BCP 201 directly. > > Section B.3 > > It would be great if the document shepherd could diff the paramters listed here > against [CURVE-REPRESENTATIONS]. >
- [6lo] Benjamin Kaduk's Discuss on draft-ietf-6lo-… Benjamin Kaduk via Datatracker
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Rene Struik
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Benjamin Kaduk
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Benjamin Kaduk
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Benjamin Kaduk
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Benjamin Kaduk
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Pascal Thubert (pthubert)
- Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-… Benjamin Kaduk