[dtn] Re: Comments on draft-ietf-dtn-bpsec-cose-15 Section 5.11: a related cascade-ordering hazard
"Sipos, Brian J." <Brian.Sipos@jhuapl.edu> Thu, 28 May 2026 13:42 UTC
Return-Path: <Brian.Sipos@jhuapl.edu>
X-Original-To: dtn@mail2.ietf.org
Delivered-To: dtn@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 2415BF6A88AE; Thu, 28 May 2026 06:42:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1779975729; bh=0NB26zMk/qFBUABH27DocCZLmGu7BJ6Aakw2DsZkNwg=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=RfH9IQssZItPHnyGj5/zhELkwSo6dzEU4qx7nCC98FLncMves+wZrfM5xkSE7We5F N3fdYOB2oM+3LJnFaUbPQoBKmxdVYeMghjgi1Mdj+F4cXlsV381zMsmSEbR0RXP5W3 SReAZLJv3mP90fhSg6VitYX2ppGRHHMTIUGfZ6q4=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=jhuapl.edu
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P6g7pSLSG94J; Thu, 28 May 2026 06:42:08 -0700 (PDT)
Received: from aplegw03.jhuapl.edu (aplegw03.jhuapl.edu [128.244.208.131]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id E8AEBF6A87D3; Thu, 28 May 2026 06:41:52 -0700 (PDT)
Received: from pps.filterd (aplegw03.jhuapl.edu [127.0.0.1]) by aplegw03.jhuapl.edu (8.18.1.7/8.18.1.7) with ESMTP id 64SDfkkI160451; Thu, 28 May 2026 09:41:46 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jhuapl.edu; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=JHUAPL2024; bh=aeGJUpnooT4iR/0LK+OSwDN /ytUwNF7o4sSEhSJU/hw=; b=b6l/7aArxKs2bnklT3peFhEu3us+bi6SDsuk76M sCMpEewgi4VZmW6ckNAPfk9n+GsY0RzZfsvw0UiXjUvWXlT5CTnLv9BTH/LsLKQJ vVC0EtTQaUAx+h/CwuKOJcZ1uPCIlkx/IgknAmspc0M9IFJgq91PCSmapTifx3uC HfbuUIpOc10dwYb8ztUhfZLzZWVktRNDXdd4X5fL0zG1GykITkRxx90ht5lxLrHp rcp5PmloK5MbidlFXF8cJHT9gO5pqnsNstEAmhqkpGczxBXoBvuqeQYgazO/0wfT YknbhvlYrYS/aSzu+moP+3hT3PqZTBIIUTYHDB8zVw6QFHg==
Received: from aplex30.dom1.jhuapl.edu (aplex30.dom1.jhuapl.edu [10.114.162.2]) by aplegw03.jhuapl.edu (PPS) with ESMTPS id 4ebtd9e4h4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 28 May 2026 09:41:46 -0400 (EDT)
Received: from aplex39.dom1.jhuapl.edu (10.114.162.26) by aplex30.dom1.jhuapl.edu (10.114.162.2) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Thu, 28 May 2026 09:41:46 -0400
Received: from aplex39.dom1.jhuapl.edu ([fe80::45d4:6ccc:c2ee:2a03]) by aplex39.dom1.jhuapl.edu ([fe80::45d4:6ccc:c2ee:2a03%9]) with mapi id 15.02.2562.035; Thu, 28 May 2026 09:41:46 -0400
From: "Sipos, Brian J." <Brian.Sipos@jhuapl.edu>
To: Rick Taylor <rick@tropicalstormsoftware.com>, "dtn@ietf.org" <dtn@ietf.org>
Thread-Topic: Comments on draft-ietf-dtn-bpsec-cose-15 Section 5.11: a related cascade-ordering hazard
Thread-Index: AdzqtKySniY/018KQ9C9nwJtLdlyfQDIx/pg
Date: Thu, 28 May 2026 13:41:45 +0000
Message-ID: <f760dda6dc164f208c58f93a142016c4@jhuapl.edu>
References: <82fc531f-62fd-4e50-a404-ed551e8087bc@email.android.com>
In-Reply-To: <82fc531f-62fd-4e50-a404-ed551e8087bc@email.android.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.162.19]
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_00A7_01DCEE86.31F2B410"
MIME-Version: 1.0
X-CrossPremisesHeadersFilteredBySendConnector: aplex30.dom1.jhuapl.edu
X-OrganizationHeadersPreserved: aplex30.dom1.jhuapl.edu
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-28_03,2026-05-28_02,2025-10-01_01
Message-ID-Hash: 6AP3WRYCH2K4KSL7QCPEUMUUOPDR5KN5
X-Message-ID-Hash: 6AP3WRYCH2K4KSL7QCPEUMUUOPDR5KN5
X-MailFrom: Brian.Sipos@jhuapl.edu
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-dtn.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "draft-ietf-dtn-bpsec-cose@ietf.org" <draft-ietf-dtn-bpsec-cose@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [dtn] Re: Comments on draft-ietf-dtn-bpsec-cose-15 Section 5.11: a related cascade-ordering hazard
List-Id: "Delay Tolerant Networking (DTN) discussion list at the IETF." <dtn.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/eq_MK9BjmF9za2eKoytxc_zJLrU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dtn>
List-Help: <mailto:dtn-request@ietf.org?subject=help>
List-Owner: <mailto:dtn-owner@ietf.org>
List-Post: <mailto:dtn@ietf.org>
List-Subscribe: <mailto:dtn-join@ietf.org>
List-Unsubscribe: <mailto:dtn-leave@ietf.org>
Rick, I agree that there are many possible situations for using AAD Scope which do not make operational sense. I would rather that the document explain the consequences of doing something ‘bad’ rather than try to examine all the possible ways that ‘bad’ can manifest. But for specific easy-to-check cases like this I see the value in explaining and excluding them separately. I am going to manage your feedback (in the earlier email also) as separate issues/PRs on the draft repository, eventually viewable in [1]. There are already some changes not yet in the datatracker, visible in [2], which include the addition of a new “Operational Considerations” section 5 which could be updated to address some of these issues. Brian S. [1] https://briansipos.github.io/dtn-bpsec-cose/draft-ietf-dtn-bpsec-cose.html [2] https://author-tools.ietf.org/diff?doc_1=draft-ietf-dtn-bpsec-cose <https://author-tools.ietf.org/diff?doc_1=draft-ietf-dtn-bpsec-cose&url_2=https://briansipos.github.io/dtn-bpsec-cose/draft-ietf-dtn-bpsec-cose.txt> &url_2=https://briansipos.github.io/dtn-bpsec-cose/draft-ietf-dtn-bpsec-cose.txt From: Rick Taylor <rick@tropicalstormsoftware.com> Sent: Saturday, May 23, 2026 9:04 AM To: dtn@ietf.org Cc: draft-ietf-dtn-bpsec-cose@ietf.org Subject: [EXT] [dtn] Re: Comments on draft-ietf-dtn-bpsec-cose-15 Section 5.11: a related cascade-ordering hazard APL external email warning: Verify sender forwardingalgorithm@ietf.org <mailto:forwardingalgorithm@ietf.org> before clicking links or attachments Hi all, Brian, A related issue to my earlier mail on Section 5.11 -- it surfaced while working through the cascading-block-delete path in Hardy. This one feels like a foot-gun for any implementation doing cascading edits to BIBs or BCBs, which is more or less every meaningful BPA. The hazard Section 2.2.2 allows AAD Scope to reference any block in the bundle via positive integer keys, including other security blocks (BIB or BCB). Step 3b of the AAD construction in Section 2.5.1 then pulls in the referenced block's BTSD when the AAD-btsd flag is set. If one security block's AAD covers another security block's BTSD, and the latter is re-encrypted (or re-signed) for any reason -- including the perfectly legitimate cascade-delete path where dropping a target forces re-encryption of the covering BCB with a fresh IV -- then the former's AAD bytes change and its verification breaks. Concretely: BCB X has AAD Scope referencing BCB Y with AAD-btsd. The cascade drops a target covered by BCB Y, which forces re-encryption of BCB Y (fresh IV -> new BTSD). BCB X is now broken downstream, even though we have not touched X directly. For implementations doing cascading edits, this creates an ordering constraint with no obvious way to satisfy it short of building a dependency graph from AAD Scope references, topologically sorting, and re-encrypting in dependency order -- with cycle detection and an error path for ill-formed bundles. That is a lot of machinery for a feature whose use case is not obvious to me. Use case unclear I cannot think of a legitimate reason for one security block to AAD-cover another security block's BTSD. The metadata case is different -- binding to the presence and identity of another security block via AAD-metadata is plausible and is also safe, since metadata is stable across security operation regeneration. It is specifically the BTSD case that creates the ordering hazard. If anyone on the list has a use case in mind I am keen to hear it; otherwise the simplest fix is to disallow it. Relationship to existing Section 5.11 text Section 5.11's second SHALL NOT prohibits AAD-btsd references to blocks "expected to be modified by intermediate nodes during the lifetime of the containing security operation." This implicitly covers blocks like Hop Count and Bundle Age -- blocks designed to be modified in transit. Security blocks are not in that category. They are not designed to be modified in transit. But their BTSD nonetheless changes as a side effect of normal BPA operations (cascade-delete re-encryption, re-signing following target-set changes). The existing text doesn't quite catch this, because the cascade-induced change isn't "modification in transit" in the conventional sense -- it's an endogenous consequence of forwarding decisions. A small additional rule makes the prohibition explicit. Suggested text, alongside the additions in my earlier mail to Section 5.11: The AAD Scope parameter SHALL NOT reference any BIB or BCB block via a positive integer key with the AAD-btsd flag set. References to other security blocks with the AAD-metadata flag only are permitted, as block metadata is stable across security operation regeneration (whereas BTSD content changes whenever the referenced block is re-signed or re-encrypted, including as a side effect of cascading block delete). A security verifier or acceptor that detects an AAD Scope reference to a BIB or BCB block with the AAD-btsd flag set SHOULD log the violation, and MAY refuse the bundle in accordance with local policy. For what it's worth on the implementation side: Hardy will enforce this as part of the same defensive-check pass discussed in the previous mail. The cascade machinery becomes substantially simpler if security-block-to-security-block BTSD AAD coverage is ruled out -- no dependency graph, no topological sort, no cycle detection, and BIBs and BCBs can be re-encrypted in any order. Cheers, Rick
- [dtn] Re: Comments on draft-ietf-dtn-bpsec-cose-1… Rick Taylor
- [dtn] Re: Comments on draft-ietf-dtn-bpsec-cose-1… Sipos, Brian J.
- [dtn] Re: Comments on draft-ietf-dtn-bpsec-cose-1… Rick Taylor