<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tian-dtn-sbam-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SBAM">Securing BPSec Against Arbitrary Packet Dropping</title>
    <seriesInfo name="Internet-Draft" value="draft-tian-dtn-sbam-01"/>
    <author initials="B." surname="Dowling" fullname="Benjamin Dowling">
      <organization>Kings College London</organization>
      <address>
        <email>benjamin.dowling@kcl.ac.uk</email>
      </address>
    </author>
    <author initials="B." surname="Hale" fullname="Britta Hale">
      <organization>Naval Postgraduate School</organization>
      <address>
        <email>britta.j.hale.civ@mail.mil</email>
      </address>
    </author>
    <author initials="X." surname="Tian" fullname="Xisen Tian">
      <organization>Naval Postgraduate School</organization>
      <address>
        <email>xisen.tian1@nps.edu</email>
      </address>
    </author>
    <author initials="B." surname="Wimalasiri" fullname="Bhagya Wimalasiri">
      <organization>King's College London</organization>
      <address>
        <email>bhagya.wimalasiri@kcl.ac.uk</email>
      </address>
    </author>
    <date year="2026" month="February" day="05"/>
    <area>Internet</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>security</keyword>
    <keyword>integrity</keyword>
    <keyword>read receipts</keyword>
    <abstract>
      <?line 101?>

<t>In this document we describe Strong Bundle Protocol Audit Mechanism (SBAM), an authentication protocol designed to provide cryptographic auditing services for the Bundle Security protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://bwimad.github.io/draft-xxx-str-bpsec/draft-tian-dtn-sbam.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tian-dtn-sbam/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Delay/Disruption Tolerant Networking Working Group mailing list (<eref target="mailto:dtn@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dtn/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dtn/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/bwimad/draft-xxx-str-bpsec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 105?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines additional security features for the Bundle Protocol Security (BPSec) <xref target="RFC9172"/> and is intended in use for Delay Tolerant Networking (DTN) environments using BPSec to provide security guarantees, SBAM is intended to provide additional security guarantees for BPSec communication between a security source (typically a bundle source), a security acceptor, and a security destination (typically the bundle destination).</t>
      <t>The BPSec specification <xref target="RFC9172"/> defines BPSec as "an end-to-end security service that operates in all of the environments where the BP operates" and claims to provide "integrity and confidentiality services for BP bundles." In particular, BPSec enables partial processing of bundles, where an intermediate node acting as a security acceptor can process and remove security services. As a result, it is possible for an intermediate malicious nodes to simply drop blocks (and associated security extension blocks). StrongBPSec Audit Mechanism (SBAM) provides in-band integrity guarantees by cryptographic auditing via ledger blocks, mitigating the risk of undetected message deletion in BPSec.  Specifically, SBAM addresses a critical limitation of BPSec by enabling destination nodes to verify whether security service blocks added by the bundle source were dropped, processed, or modified during transit, while retaining compatibility with existing BPSec deployments.</t>
      <section anchor="notation">
        <name>Notation</name>
        <t>This section defines terminology that either is unique to the BPSec or SBAM and is necessary for understanding the concepts defined in this specification.</t>
        <ul spacing="normal">
          <li>
            <t>Bundle Destination: the Bundle Protocol Agent (BPA) that receives a bundle and delivers the payload of the bundle to an Application Agent.  Also, an endpoint comprising the node(s) at which the bundle is to be delivered. The bundle destination acts as the security acceptor for every security target in every security block in every bundle it receives.</t>
          </li>
          <li>
            <t>Bundle Protocol Agent: a node component that offers the Bundle Protocol services and executes its procedures.</t>
          </li>
          <li>
            <t>Bundle Source: the BPA that originates a bundle. Also, any node ID of the node of which the BPA is a component.</t>
          </li>
          <li>
            <t>Cipher Suite: a set of one or more algorithms providing integrity and/or confidentiality services. Cipher suites may define user parameters (e.g., secret keys to use), but they do not provide values for those parameters.</t>
          </li>
          <li>
            <t>Destination Node: a security acceptor BPA that is the bundle destination and processes the bundle payload.</t>
          </li>
          <li>
            <t>Forwarder: any BPA that transmits a bundle in DTN. Also, any node ID of the node of which the BPA that sent the bundle on its most recent hop is a component.</t>
          </li>
          <li>
            <t>Intermediate Node: a security acceptor BPA that is not the bundle destination.</t>
          </li>
          <li>
            <t>Intermediate Receiver, Waypoint, or Next Hop: any BPA that receives a bundle from a forwarder that is not the bundle destination. Also, any node ID of the node of which the BPA is a component.</t>
          </li>
          <li>
            <t>Path: the ordered sequence of nodes through which a bundle passes on its way from source to destination. The path is not necessarily known in advance by the bundle or any BPAs in DTN.</t>
          </li>
          <li>
            <t>Security Acceptor: a BPA that processes and dispositions one or more security blocks in a bundle. Security acceptors act as the endpoint of a security service represented in a security block. They remove the security blocks they act upon as part of processing and disposition. Also, any node ID of the node of which the BPA is a component.</t>
          </li>
          <li>
            <t>Security Block: a BPSec extension block in a bundle.</t>
          </li>
          <li>
            <t>Security Context: the set of assumptions, algorithms, configurations, and policies used to implement security services.</t>
          </li>
          <li>
            <t>Security Operation: the application of a given security service to a security target, denoted as OP(security service, security target). For example, OP(bcb-confidentiality, payload).  Every security operation in a bundle MUST be unique, meaning that a given security service can only be applied to a security target once in a bundle. A security operation is implemented by a security block.</t>
          </li>
          <li>
            <t>Security Service: a process that gives some protection to a security target. For example, the BPSec specification defines security services for plaintext integrity (bib-integrity) and authenticated plaintext confidentiality with additional authenticated data (bcb-confidentiality). This SBAM specification defines security services for cryptographic auditing of security services added by the bundle source to the bundle destination.</t>
          </li>
          <li>
            <t>Security Source: a BPA that adds a security block to a bundle. Also, any node ID of the node of which the BPA is a component.</t>
          </li>
          <li>
            <t>Security Target: the block within a bundle that receives a security service as part of a security operation.</t>
          </li>
          <li>
            <t>Security Verifier: a BPA that verifies the data integrity of one or more security blocks in a bundle. Unlike security acceptors, security verifiers do not act as the endpoint of a security service, and they do not remove verified security blocks. Also, any node ID of the node of which the BPA is a component.</t>
          </li>
          <li>
            <t>Source Node: A BPA that creates an initial bundle.</t>
          </li>
          <li>
            <t><strong>BAB</strong>: Bundle Audit Block– a ledger block authenticated by the source node.</t>
          </li>
          <li>
            <t><strong>BRB</strong>: Bundle Report Block – a signed/verifiable block produced by an intermediate node that processed and discarded source-added blocks.</t>
          </li>
        </ul>
      </section>
      <section anchor="motivation-and-problem-statement">
        <name>Motivation and Problem Statement</name>
        <t>DTN recognizes an attacker with complete network access, affording them read/write access to bundles traversing the network. Eavesdropping, modification, topological, and injection attacks are all described in <xref section="8.2" sectionFormat="comma" target="RFC9172"/>. Therein, these "on-path attackers" can be unprivileged, legitimate, or privileged nodes depending on their access to cryptographic material: unprivileged nodes only have access to publicly shared information, legitimate nodes have additional access to keys provisioned for itself, and privileged nodes have further access to keys (privately) provisioned for others. There are currently no guarantees against privileged attacks.</t>
        <t>In an effort to distinguish malice by intermmediate nodes, these classes can be further abstracted into honest security acceptors and dishonest forwarders. Honest forwarders are privileged nodes that faithfully execute the role of a BPA as described in <xref section="3" sectionFormat="comma" target="RFC9171"/>. Dishonest forwarders are unprivileged nodes that attempt to violate the integrity or confidentiality of blocks it processes (e.g. by dropping or modifying blocks). This is the gap we address with SBAM: BPSec under the default security context <xref target="RFC9173"/> has no cryptographic auditing mechanism for detecting modifications to a bundle between the SN and DN. With SBAM, all security acceptors (including the intended destination) are obliged to record their modifications</t>
      </section>
    </section>
    <section anchor="design-decisions">
      <name>Design Decisions</name>
      <t>In this section we describe the design decisions of BPSec, and describe how these are impacted through the use of SBAM.</t>
      <t>TODO: Use RFC 9172 draft as starting point, discuss how SBAM changes these, or our design does not effect.</t>
      <section anchor="block-level-granularity">
        <name>Block-Level Granularity</name>
      </section>
      <section anchor="multiple-security-sources">
        <name>Multiple Security Sources</name>
      </section>
      <section anchor="mixed-security-policy">
        <name>Mixed Security Policy</name>
      </section>
      <section anchor="user-defined-security-contexts">
        <name>User-Defined Security Contexts</name>
      </section>
      <section anchor="deterministic-processing">
        <name>Deterministic Processing</name>
      </section>
      <section anchor="cose-context-considerations">
        <name>COSE-Context Considerations</name>
        <t>In conjunction with a proper PKI mechanism, SBAM may be used in the COSE-Context <xref target="draft-ietf-dtn-bpsec-cose"/> to provide further authentication enhancements to auditing. Specifically, through the use of digital signature algorithms rather than message authentication codes as described herein, SBAM in the COSE-context adds source authentication as well as authentication of intermediate nodes.</t>
      </section>
      <section anchor="unique-key-identifiers">
        <name>Unique Key Identifiers</name>
        <t>The Bundle Protocol Security (BPSec) and its defined security contexts, as described in RFC9172 and RFC9173 respectively, rely on the assumption that local security policies will inform Bundle Protocol Agents (BPAs) of the appropriate cryptographic keys to use for each security context. This decentralized, policy-driven approach allows flexibility but introduces ambiguity when these policies are not uniformly enforced or clearly defined across participating nodes. In the absence of standardized key selection mechanisms, there is a risk that different BPAs may select conflicting keys for the same security context or inadvertently reuse keys across incompatible contexts. Such ambiguity can lead to key collisions, where multiple security contexts reference the same key identifier or cryptographic material unintentionally, undermining the security operations BPSec is intended to enforce. To mitigate this ambiguity, our proposed SBAM mechanism introduces a <tt>key_identifier</tt> as an explicit security context parameter, enabling BPAs to uniquely identify the correct cryptographic key for each context.</t>
      </section>
      <section anchor="scope-flag">
        <name>Scope Flag</name>
        <t>The Integrity Security Context BIB_HMAC-SHA2 includes Integrity Scope Flags as a parameter set (see 3.2 and 3.3.3 in RFC9173). The value of the Integrity Scope Flag describe what information is used to construct the Integrity Protected Plain Text (IPPT) for a BIB. The existing Integrity Scope Flags in bit 2 and bit 3 refer to an excessive amount of information (block type code, block number, block processing control flags). Since we explicitly only use the block number in our calculations, this scope flag is redundant and we choose to remove it.</t>
      </section>
      <section anchor="security-blocks">
        <name>Security Blocks</name>
        <t>In this section we describe the different Security Blocks used in BPSec and SBAM. In particular, we note that BPSec introduced two types of security blocks: the Block Integrity Block (BIB) and the Block Confidentiality Block (BCB) providing integrity and confidentiality and integrity, respectively.</t>
        <t>In SBAM we also introduce the Bundle Audit Block (BAB) and the Block Report Block (BRB), which (when combined) enable security targets to verify only honest security intermediate nodes have processed missing BIB or BCBs.</t>
      </section>
      <section anchor="block-definitions">
        <name>Block Definitions</name>
        <t>The BPSec specification defines two types of security blocks: the Block Integrity Block (BIB) and the Block Confidentiality Block (BCB). The SBAM specification defines two additional types of security blocks: the Bundle Audit Block (BAB) and the Block Report Block (BRB).</t>
        <t><strong>TODO: Check references are correct</strong></t>
        <ul spacing="normal">
          <li>
            <t>The BIB is used to ensure the integrity of its plaintext security target(s). The integrity information in the BIB MAY be verified by any node along the bundle path from the BIB security source to the bundle destination. Waypoints add or remove BIBs from bundles in accordance with their security policy. BIBs are never used for integrity protection of the ciphertext provided by a BCB. Because security policy at BPSec nodes may differ regarding integrity verification, BIBs do not guarantee hop-by-hop authentication, as discussed in <eref target="https://www.rfc-editor.org/rfc/rfc9172.html#sup_sec_svc">Section 1.1</eref>.</t>
          </li>
          <li>
            <t>The BCB indicates that the security target or targets have been encrypted at the BCB security source in order to protect their content while in transit. As a matter of security policy, the BCB is decrypted by security acceptor nodes in the network, up to and including the bundle destination. BCBs additionally provide integrity-protection mechanisms for the ciphertext they generate.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="strongbpsec-audit-mechanism-protocol-overview">
      <name>StrongBPSec Audit Mechanism Protocol Overview</name>
      <t>The core guarantee provided by SBAM is a guarantee that, after correctly verifying the Bundle Audit Block, the destination node is assured that either</t>
      <ul spacing="normal">
        <li>
          <t>all security blocks added by the Source Node have arrived without an unprivileged node dropping or modifying security block; or</t>
        </li>
        <li>
          <t>an honest intermediary has processed a security block.</t>
        </li>
      </ul>
      <t>Thus, for any bundle, the source node will generate all security blocks for their destination node exactly as in BPSec. Additionally, it will provide a Bundle Audit Block, which provides a cryptographically-authenticated digest of all security services it provided for the bundle, as well as all necessary uniquely identifying information, such as the key and block identifiers. This digest is added as the security result to the Bundle Audit Block.</t>
      <t>Any honest intermediary node that processes a security block from the source bundle will also provide a cryptographic proof that they were privileged to perform this operation (demonstrated by providing a cryptographic signature over the identifying information for the security service contained in the security block). This signature is contained within the Block Report Block, which provides a cryptographically-authenticated digest of all uniquely identifying information of the security block it just processed, such as key and block identifiers.</t>
      <t>Finally, when the destination receives the bundle, it will collate all identifying information contained within security blocks (generated by the source node) with identifying information contained within each BRB. Verifying this information against the cryptographic digest contained within the Bundle Audit Block enables the destination node to verify that no unprivileged node modified or dropped any security block between the source node and the destination node.</t>
      <section anchor="bundle-audit-blocks-bab">
        <name>Bundle Audit Blocks (BAB)</name>
        <t>This section describes the procedure used to compute a Message Authentication Code (MAC) tag for a bundle containing one or more security blocks added by the bundle SN.</t>
        <t>Each SN MUST attach a BAB immediately before the Payload Block. This BAB contains metadata describing all security blocks added by the SN and a MAC computed using a key shared with the DN.</t>
        <section anchor="inputs">
          <name>Inputs</name>
          <ul spacing="normal">
            <li>
              <t><strong><tt>plaintext</tt></strong>
A binary string constructed as the concatenation of the payload and metadata elements from each security block added by the SN. Formally:  </t>
              <t><tt>
plaintext = payload ||
            { block_no || key_id || security_targets }
            for each security block added by the SN
</tt>  </t>
              <t>
where:
- <tt>payload</tt>: The application data block.
- <tt>block_no</tt>: The identifier of the block being protected.
- <tt>key_id</tt>: The identifier for the cryptographic key used as specified by the security context
- <tt>security_targets</tt>: A list of target block numbers to which the security operation applies.</t>
            </li>
            <li>
              <t><strong><tt>key</tt></strong>
The symmetric key (e.g., a pre-shared key or key-wrapped ephemeral key) used to compute the MAC. This key is identified by the <tt>key_id</tt> and MUST be established in accordance with the security context shared between communicating nodes.</t>
            </li>
          </ul>
        </section>
        <section anchor="output">
          <name>Output</name>
          <ul spacing="normal">
            <li>
              <t><strong><tt>MAC tag</tt></strong>
A cryptographic tag that provides data origin authentication and integrity verification. The MAC is calculated as follows:  </t>
              <t><tt>
MAC = HMAC(key, plaintext)
</tt>  </t>
              <t>
where:
- <tt>HMAC</tt> is the keyed-hash message authentication code function as defined in <xref target="RFC2104"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="usage">
          <name>Usage</name>
          <t>The <tt>MAC tag</tt> generated by this procedure (alongside the <tt>plaintext</tt>) is attached to the BAB security block as the <tt>security_result</tt> field and MUST be verified by the DN. Failure to validate the tag indicates tampering or corruption of the bundle or associated metadata.</t>
          <t><strong>TODO</strong>: Describe how to reconstruct the BAB payload from the security blocks (e.g. BIB, BCB, BRB) present in the rest of the bundle.</t>
        </section>
        <section anchor="block-specific-data">
          <name>Block Specific Data</name>
          <t><strong>TODO</strong>: describe the exact sub-fields for the security block. Broadly it follows the following structure:</t>
          <ul spacing="normal">
            <li>
              <t>Number of Security Blocks (Integer)</t>
            </li>
            <li>
              <t>Key identifier (BAB key shared between the SN and DN)</t>
            </li>
            <li>
              <t>For each security block represented in the BAB:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Block number (of the original Security Block)</t>
                </li>
                <li>
                  <t>Key identifier (of the original Security Block)</t>
                </li>
                <li>
                  <t>Security Targets (of the original Security Block)</t>
                </li>
                <li>
                  <t>Block Type Code (of the original Security Block)</t>
                </li>
                <li>
                  <t>Security Parameters (of the original Security Block)</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Note that the (Block, Key, Target, Code, Parameters) field should be ordered by block number to ensure consistent ordering between the SN generating the MAC tag and the DN verifying the MAC tag.</t>
        </section>
      </section>
      <section anchor="bundle-report-blocks-brb">
        <name>Bundle Report Blocks (BRB)</name>
        <t>This section defines how a Message Authentication Code (MAC) is generated by an IN when processing and discarding a security block from a bundle. The resulting tag is attached to a newly created Block Report Block (BRB). This enables the DN to verify the legitimacy of IN(s) that process and discarded SN-originated added security blocks.</t>
        <t>An IN that processes and discards any SN-originated security block MUST add a BRB. Each BRB cryptographically authenticates metadata about the discarded block (e.g., <tt>key_id</tt>, <tt>block_id</tt>, <tt>security_targets</tt>) and is authenticated with a unique key (independant of the BAB key) shared with the DN.</t>
        <section anchor="inputs-1">
          <name>Inputs</name>
          <ul spacing="normal">
            <li>
              <t><strong><tt>plaintext</tt></strong>
A structured binary string composed of identifying information related to the discarded block:  </t>
              <t><tt>
plaintext = block_no || key_id || security_targets
</tt>  </t>
              <t>
where:
- <tt>block_no</tt>: The unique identifier of the discarded security block.
- <tt>key_id</tt>: The identifier of the key used by the SN for the original security block.
- <tt>security_targets</tt>: A list of block numbers to which the discarded security block originally applied.</t>
            </li>
            <li>
              <t><strong><tt>key</tt></strong>
A symmetric key used for computing the MAC. This may be a pre-shared key or a key-wrapped ephemeral variant, as specified by the active security context.</t>
            </li>
          </ul>
        </section>
        <section anchor="output-1">
          <name>Output</name>
          <ul spacing="normal">
            <li>
              <t><strong><tt>MAC tag</tt></strong>
A cryptographic tag calculated over the <tt>plaintext</tt>:  </t>
              <t><tt>
MAC = HMAC(key, plaintext)
</tt>  </t>
              <t>
where:
- <tt>HMAC</tt> is the keyed-hash message authentication code function defined in <xref target="RFC2104"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="usage-1">
          <name>Usage</name>
          <t>The resulting <tt>MAC tag</tt>, along with the original <tt>plaintext</tt>, is attached to the <strong>Read Report Block (BRB)</strong> as the <tt>security results</tt> field. This allows the destination node to validate that the discarded security block was processed by an authorized intermediate node, and that its original security configuration is cryptographically verifiable.</t>
        </section>
        <section anchor="block-specific-data-1">
          <name>Block Specific Data</name>
          <t><strong>TODO</strong>: describe the exact sub-fields for the security block. Broadly it follows the following structure:</t>
          <ul spacing="normal">
            <li>
              <t>Block number (of the original Security Block)</t>
            </li>
            <li>
              <t>Key identifier (of the original Security Block)</t>
            </li>
            <li>
              <t>Security Targets (of the original Security Block)</t>
            </li>
            <li>
              <t>Block Type Code (of the original Security Block)</t>
            </li>
            <li>
              <t>Security Parameters (of the original Security Block)</t>
            </li>
            <li>
              <t>MAC tag</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="blocks-excluded-by-sbam">
        <name>Blocks Excluded by SBAM</name>
        <t>SBAM participants should exclude blocks that necessarily change throughout a bundle's life cycle from auditing. Extension blocks such as Hop-Count or Previous Node which change values SHOULD be excluded from SBAM protection to avoid unnecessary processing and overhead.</t>
      </section>
      <section anchor="integration-with-bibbcb">
        <name>Integration with BIB/BCB</name>
        <t>Existing BIB and BCB behavior is preserved. BAB and BRBs are <strong>in-band</strong> and protect against message deletion or replacement without the need for out-of-band policies.</t>
        <t>```
+=============================+
| Primary Bundle Block        |
+=============================+
| Version                     |
| Bundle Processing Flags     |
| Destination EID             |
| Source EID                  |
| Report-to EID               |
| Creation Timestamp          |
| Lifetime                    |
| (Optional Fragment Offset)  |
| (Optional Total App Data)   |
+=============================+</t>
        <t>+=============================+
| Block Report Block          |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References              |
| Security Source EID         |
| Security Parameters (e.g.,  |
| hash algorithm, keys)       |
| Security Results (e.g.,     |
| Read Receipt HMAC)          |
| Security Targets (block #s) |
+=============================+</t>
        <t>+=============================+
| Generic Extension Block     |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References (if any)     |
| Payload Length              |
| Payload Data                |
+=============================+</t>
        <t>+=============================+
| Block Integrity Block (BIB) |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References              |
| Security Source EID         |
| Security Parameters (e.g.,  |
| hash algorithm, keys)       |
| Security Results (e.g.,     |
| computed HMAC)              |
| Security Targets (block #s) |
+=============================+</t>
        <t>+=============================+
| Block Confidentiality Block |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References              |
| Security Source EID         |
| Security Parameters (e.g.,  |
| cipher suite, IVs)          |
| Security Results (e.g.,     |
| authentication tag)         |
| Security Targets (block #s) |
+=============================+</t>
        <t>+=============================+
| Bundle Audit Block          |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References              |
| Security Source EID         |
| = Source EID                |
| Security Parameters (e.g.,  |
| hash algorithm, keys)       |
| Security Results (e.g.,     |
| Bundle Audit HMAC)          |
| Security Targets (block #s) |
+=============================+</t>
        <t>+=============================+
| Payload Block               |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References (if any)     |
| Payload Length              |
| Payload Data                |
+=============================+</t>
        <t>Figure 1. SBAM protected bundle
```</t>
      </section>
    </section>
    <section anchor="processing-rules">
      <name>Processing Rules</name>
      <ul spacing="normal">
        <li>
          <t><strong>SN</strong>: Adds BAB after security blocks and before Payload.</t>
        </li>
        <li>
          <t><strong>IN</strong>: Processes BIB/BCB, replaces with BRB as needed.</t>
        </li>
        <li>
          <t><strong>DN</strong>: Validates all BRBs and BAB prior to accepting payload. If any validation fails, bundle MUST be discarded.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="trivial-block-removal">
        <name>Trivial Block Removal</name>
        <t>SBAM allows for the detection of unauthorized deletion of SN-added BIB/BCB. This requires that the intended recipient checks for a BAB and rejects bundles without one as to avoid a trivial attack by a malicious IN of simply removing all security blocks.</t>
      </section>
      <section anchor="insider-attack">
        <name>Insider Attack</name>
        <t>SBAM protected bundles are still vulnerable to <strong>privileged insider</strong> attacks unless asymmetric crypto is introduced. Malicious nodes with privileged access to keys associated with protected blocks may be able to modify SBAM block values undected (e.g. forge or overwrite BRB values).</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>New block types:
- BAB – TBD
- BRB – TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9171" target="https://www.rfc-editor.org/info/rfc9171">
          <front>
            <title>Bundle Protocol Version 7</title>
            <author initials="S." surname="Burleigh" fullname="S. Burleigh">
              <organization/>
            </author>
            <author initials="K." surname="Fall" fullname="K. Fall">
              <organization/>
            </author>
            <author initials="E." surname="Birrane" fullname="E. Birrane">
              <organization/>
            </author>
            <date year="2022" month="January"/>
          </front>
          <seriesInfo name="RFC" value="9171"/>
          <seriesInfo name="DOI" value="10.17487/RFC9171"/>
        </reference>
        <reference anchor="RFC9172" target="https://www.rfc-editor.org/info/rfc9172">
          <front>
            <title>Bundle Protocol Security (BPSEC)</title>
            <author initials="E." surname="Birrane" fullname="E. Birrane">
              <organization/>
            </author>
            <author initials="K." surname="Fall" fullname="K. Fall">
              <organization/>
            </author>
            <date year="2022" month="January"/>
          </front>
          <seriesInfo name="RFC" value="9172"/>
          <seriesInfo name="DOI" value="10.17487/RFC9172"/>
        </reference>
        <reference anchor="RFC9173" target="https://www.rfc-editor.org/info/rfc9173">
          <front>
            <title>Bundle Protocol Security (BPSEC) Default Security Contexts</title>
            <author initials="E." surname="Birrane" fullname="E. Birrane">
              <organization/>
            </author>
            <date year="2022" month="January"/>
          </front>
          <seriesInfo name="RFC" value="9173"/>
          <seriesInfo name="DOI" value="10.17487/RFC9173"/>
        </reference>
        <reference anchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author initials="H." surname="Krawczyk" fullname="H. Krawczyk">
              <organization/>
            </author>
            <author initials="M." surname="Bellare" fullname="M. Bellare">
              <organization/>
            </author>
            <author initials="R." surname="Canetti" fullname="R. Canetti">
              <organization/>
            </author>
            <date year="1997" month="February"/>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CryptoRocket" target="https://doi.org/10.62056/a39qudhdj">
          <front>
            <title>Cryptography is Rocket Science</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="draft-ietf-dtn-bpsec-cose" target="https://datatracker.ietf.org/doc/draft-ietf-dtn-bpsec-cose/">
          <front>
            <title>Bundle Protocol Security (BPSec) COSE Context</title>
            <author initials="B." surname="Sipos" fullname="B. Sipos">
              <organization/>
            </author>
            <date year="2025" month="June" day="03"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 440?>

<section anchor="abstract-security-block-representation">
      <name>Abstract Security Block Representation</name>
      <section anchor="bab">
        <name>BAB</name>
        <t>An example of the abstract security block structure based on Fig. 1 of the BAB is as follows. We assume the block numbers are sequential for the sake of illustration.</t>
        <t><tt>
[4, 5, 7],                   / Blocks logged   - BIB, BCB, Payload block number  /
5,                           / Security Context ID      - BAB-HMAC-SHA2          /
1,                           / Security Context Flags   - Parameters Present     /
[2,[2, 1]],                  / Security Source          - ipn:2.1                /
[                            / Security Parameters      - 3 Parameters           /
  [1, 6],                    / SHA Variant              - HMAC 384/384           /
  [5, h'0xf000ba4']          / Key Identifier           - Unique to BAB context  /
],
[                            / Security Results: 1 Result                        /
  [                          / Target 1 Results                                  /
    [1, h'deadbeefdeadbeefdeadbeefdeadbeef                       / MAC           /
          deadbeefdeadbeefdeadbeefdeadbeef
          deadbeefdeadbeefdeadbeefdeadbeef']
  ]
]
</tt></t>
      </section>
      <section anchor="brb">
        <name>BRB</name>
        <t>An example of the abstract security block structure of the BRB is as follows.</t>
        <t><tt>
[5],                         / Discarded Block          - BCB block number       /
5,                           / Security Context ID      - BRB-HMAC-SHA2          /
1,                           / Security Context Flags   - Parameters Present     /
[2,[2, 2]],                  / Security Source          - ipn:2.2                /
[                            / Security Parameters      - 3 Parameters           /
  [1, 6],                    / SHA Variant              - HMAC 384/384           /
  [5, h'0xcafebabe']         / Key Identifier           - Unique to BRB context  /
],
[                            / Security Results: 1 Result                        /
  [                          / Target 1 Results                                  /
    [1, h'deadbeefdeadbeefdeadbeefdeadbeef                       / MAC           /
          deadbeefdeadbeefdeadbeefdeadbeef
          deadbeefdeadbeefdeadbeefdeadbeef']
  ]
]
</tt></t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
+y//X/uDKfnnX6X9/w1tKH8lvmoAAA==

-->

</rfc>
