<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tian-dtn-sbam-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="SBAM">Securing BPSec Against Arbitrary Packet Dropping</title>
    <seriesInfo name="Internet-Draft" value="draft-tian-dtn-sbam-00"/>
    <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>University of Sheffield</organization>
      <address>
        <email>b.m.wimalasiri@sheffield.ac.uk</email>
      </address>
    </author>
    <date year="2025" month="July" day="02"/>
    <area>Internet</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>security</keyword>
    <keyword>integrity</keyword>
    <keyword>read receipts</keyword>
    <abstract>
      <?line 62?>

<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 66?>

<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>
        <section anchor="bundle-protocol-terms">
          <name>Bundle Protocol Terms</name>
          <dl>
            <dt><strong>Bundle Protocol Agent:</strong></dt>
            <dd>
              <t>A node component that offers the Bundle Protocol services and executes its procedures.</t>
            </dd>
            <dt><strong>Bundle Destination:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Bundle Source:</strong></dt>
            <dd>
              <t>The BPA that originates a bundle. Also, any node ID of the node of which the BPA is a component.</t>
            </dd>
            <dt><strong>Source Node:</strong></dt>
            <dd>
              <t>A BPA that creates an initial bundle.</t>
            </dd>
            <dt><strong>Destination Node:</strong></dt>
            <dd>
              <t>A security acceptor BPA that is the bundle destination and processes the bundle payload.</t>
            </dd>
            <dt><strong>Forwarder:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Intermediate Node:</strong></dt>
            <dd>
              <t>A security acceptor BPA that is not the bundle destination.</t>
            </dd>
            <dt><strong>Intermediate Receiver, Waypoint, or Next Hop:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Path:</strong></dt>
            <dd>
              <t>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>
            </dd>
          </dl>
        </section>
        <section anchor="security-terms">
          <name>Security Terms</name>
          <dl>
            <dt><strong>Cipher Suite:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Security Acceptor:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Security Block:</strong></dt>
            <dd>
              <t>A BPSec extension block in a bundle.</t>
            </dd>
            <dt><strong>Security Context:</strong></dt>
            <dd>
              <t>The set of assumptions, algorithms, configurations, and policies used to implement security services.</t>
            </dd>
            <dt><strong>Security Operation:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Security Service:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Security Source:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong>Security Target:</strong></dt>
            <dd>
              <t>The block within a bundle that receives a security service as part of a security operation.</t>
            </dd>
            <dt><strong>Security Verifier:</strong></dt>
            <dd>
              <t>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>
            </dd>
          </dl>
        </section>
        <section anchor="sbam-specific-terms">
          <name>SBAM-Specific Terms</name>
          <dl>
            <dt><strong>BAB:</strong></dt>
            <dd>
              <t>Bundle Audit Block – a ledger block authenticated by the source node.</t>
            </dd>
            <dt><strong>BRB:</strong></dt>
            <dd>
              <t>Bundle Report Block – a signed/verifiable block produced by an intermediate node that processed and discarded source-added blocks.</t>
            </dd>
          </dl>
        </section>
      </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>
          <dl>
            <dt><strong><tt>plaintext</tt>:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong><tt>key</tt>:</strong></dt>
            <dd>
              <t>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>
            </dd>
          </dl>
        </section>
        <section anchor="output">
          <name>Output</name>
          <dl>
            <dt><strong><tt>MAC tag</tt>:</strong></dt>
            <dd>
              <t>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>
            </dd>
          </dl>
        </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 (independent of the BAB key) shared with the DN.</t>
        <section anchor="inputs-1">
          <name>Inputs</name>
          <dl>
            <dt><strong><tt>plaintext</tt>:</strong></dt>
            <dd>
              <t>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>
            </dd>
            <dt><strong><tt>key</tt>:</strong></dt>
            <dd>
              <t>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>
            </dd>
          </dl>
        </section>
        <section anchor="output-1">
          <name>Output</name>
          <dl>
            <dt><strong><tt>MAC tag</tt>:</strong></dt>
            <dd>
              <t>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>
            </dd>
          </dl>
        </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>Bundle 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>
        <artwork><![CDATA[
+=============================+
| Primary Bundle Block        |
+=============================+
| Version                     |
| Bundle Processing Flags     |
| Destination EID             |
| Source EID                  |
| Report-to EID               |
| Creation Timestamp          |
| Lifetime                    |
| (Optional Fragment Offset)  |
| (Optional Total App Data)   |
+=============================+

+=============================+
| 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) |
+=============================+

+=============================+
| Generic Extension Block     |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References (if any)     |
| Payload Length              |
| Payload Data                |
+=============================+

+=============================+
| 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) |
+=============================+

+=============================+
| 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) |
+=============================+

+=============================+
| 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) |
+=============================+

+=============================+
| Payload Block               |
+=============================+
| Block Type Code = xxxx      |
| Block Number = #            |
| Block Processing Flags      |
| EID References (if any)     |
| Payload Length              |
| Payload Data                |
+=============================+
]]></artwork>
        <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">
          <front>
            <title>Bundle Protocol Version 7</title>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <author fullname="K. Fall" initials="K." surname="Fall"/>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document presents a specification for the Bundle Protocol, adapted from the experimental Bundle Protocol specification developed by the Delay-Tolerant Networking Research Group of the Internet Research Task Force and documented in RFC 5050.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9171"/>
          <seriesInfo name="DOI" value="10.17487/RFC9171"/>
        </reference>
        <reference anchor="RFC9172">
          <front>
            <title>Bundle Protocol Security (BPSec)</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="K. McKeever" initials="K." surname="McKeever"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document defines a security protocol providing data integrity and confidentiality services for the Bundle Protocol (BP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9172"/>
          <seriesInfo name="DOI" value="10.17487/RFC9172"/>
        </reference>
        <reference anchor="RFC9173">
          <front>
            <title>Default Security Contexts for Bundle Protocol Security (BPSec)</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="A. White" initials="A." surname="White"/>
            <author fullname="S. Heiner" initials="S." surname="Heiner"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document defines default integrity and confidentiality security contexts that can be used with Bundle Protocol Security (BPSec) implementations. These security contexts are intended to be used both for testing the interoperability of BPSec implementations and for providing basic security operations when no other security contexts are defined or otherwise required for a network.</t>
            </abstract>
          </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 fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </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 445?>

<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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

-->

</rfc>
