<?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-02" 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-02"/>
    <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.hale@nps.edu</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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
0v7/BhPcPmO3agAA

-->

</rfc>
