<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.3.0) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-tian-dtn-sbam-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SBAM">Securing BPSec Against Arbitrary Packet Dropping</title>

    <author initials="B." surname="Dowling" fullname="Benjamin Dowling">
      <organization>King's 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="May" day="27"/>

    <area>Internet</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>security</keyword> <keyword>audit-pair</keyword> <keyword>report-pair</keyword>

    <abstract>


<?line 133?>

<t>In this document we describe Secure Bundle Protocol Audit Mechanism (SBAM), an authentication protocol designed to provide cryptographic auditing services for the Bundle Security protocol.</t>

<?line 494?>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <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](dtn@ietf.org)"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/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 137?>

<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, Secure Bundle Audit Mechanism (SBAM) is intended to provide additional security guarantees for BPSec communication between a bundle source acting as origin security source, any intermediate security acceptors, and a destination security acceptor also acting as 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 node to simply drop blocks along with any associated security operations attached to them.</t>

<t>SBAM provides in-band cryptographic integrity guarantees between a bundle source and its destination while remaining consistent with the operational requirements of BPSec, which permit intermediate nodes to process and discard security blocks added by the bundle source. At the same time, SBAM enables the destination node to detect adversarial modifications to security operations added to the bundle by the bundle source and to verify whether security service blocks added by the bundle source were maliciously dropped, processed, or modified during transit, while retaining compatibility with existing BPSec deployments.</t>

<section anchor="scope"><name>Scope</name>

<t>This document defines a new security service 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.
Specifically, the Secure Bundle Audit Mechanism (SBAM) enables the cryptographic detection of unauthorized modifications to security operations added by the bundle source, which also acts as the security source for a destination node that accepts the bundle payload.
Explicitly, the end-to-end security guarantee provided by SBAM is limited to security operations inserted by a bundle source acting as the security source for a destination node that accepts the bundle payload.
Any security operations added to a bundle by security sources other than the bundle source are outside the scope of SBAM. In particular, security operations added by security sources along the bundle path between the bundle source and the destination, following bundle creation and the addition of SBAM operations, are legitimate and independent and are not covered by SBAM.</t>

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

<t><list style="symbols">
  <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>
  <t>Bundle Protocol Agent: a node component that offers the Bundle Protocol services and executes its procedures.</t>
  <t>Bundle Source: the BPA that originates a bundle. Also, any node ID of the node of which the BPA is a component.</t>
  <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>
  <t>Destination Node: a security acceptor BPA that is the bundle destination and processes the bundle payload.</t>
  <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>
  <t>Intermediate Node: a security acceptor BPA that is not the bundle destination.</t>
  <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>
  <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>
  <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>
  <t>Security Block: a BPSec extension block in a bundle.</t>
  <t>Security Context: the set of assumptions, algorithms, configurations, and policies used to implement security services.</t>
  <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>
  <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>
  <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>
  <t>Security Target: the block within a bundle that receives a security service as part of a security operation.</t>
  <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>
  <t>Source Node: A BPA that creates an initial bundle.</t>
  <t><strong>Audit Pair</strong>: A logical pairing consisting of a Manifest Block and its corresponding BIB, created by the bundle source acting as the initial security source and verified only by the destination node acting as the final security acceptor. The underlying Manifest Block records identifying data for each security operation added to the bundle by the bundle source.</t>
  <t><strong>Report Pair</strong>: A logical pairing consisting of a Manifest Block and its corresponding BIB, created by an intermediate node that processed and discarded source-added blocks. The underlying Manifest Block duplicates identifying data for each bundle source–added security operation that is processed and discarded by an intermediate security acceptor.</t>
</list></t>

</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 intermediate 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). Under its default security context <xref target="RFC9173"/>, BPSec currently provides no cryptographic auditing mechanism that enables a destination node to detect adversarial modifications to security services added to a bundle by the bundle source.</t>

<t>SBAM addresses this security gap by providing a mechanism that allows a bundle source, acting as the initial security source, to create a verifiable record of all security operations added to the bundle at origin, which is intended to be verified only by the final bundle destination. At the same time, SBAM preserves the default behavior of BPSec, allowing intermediate nodes to process and discard security operations added by the bundle source, provided they attach a verifiable record that duplicates the identifying data for each discarded security operation, which will subsequently be verified by the bundle destination.</t>

</section>
</section>
<section anchor="design-decisions"><name>Design Decisions</name>

<t>In this section we describe the design decisions of BPSec <xref target="RFC9172"/>, and describe how these are impacted through the use of SBAM.</t>

<section anchor="block-level-granularity"><name>Block-Level Granularity</name>

<t>SBAM design does not impact the block-level granularity of BPSec. SBAM provides a verifiable audit trail between source and destination nodes, for all security blocks added by the source node, while also allowing intermediaries to process and discard source-added blocks.</t>

</section>
<section anchor="mixed-security-policy"><name>Mixed Security Policy</name>

<t>SBAM design does not impact the mixed security policy of BPSec. SBAM design provides an additional layer of security between the source and destination nodes, by providing a mechanism for verifying that all security blocks added by the source node have either been processed by an authorized intermediary, or received by the destination node. This functionality does not interfere with the ability of additional security sources (that are not the bundle source) to create/modify/process security blocks within the bundle.</t>

</section>
<section anchor="user-defined-security-contexts"><name>User-Defined Security Contexts</name>

<t>SBAM design does not impact the ability to implement user-defined security contexts within BPSec.
Users may select from registered security contexts and customize those contexts through security context parameters.</t>

</section>
<section anchor="deterministic-processing"><name>Deterministic Processing</name>

<t>SBAM design preserves and adheres to the deterministic processing requirements described in <xref target="RFC9172"/>.</t>

</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="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 <xref target="RFC9173"/>). The value of the Integrity Scope Flag describes 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 <spanx style="verb">audit-pair</spanx> logical block and the <spanx style="verb">report-pair</spanx> logical block, which (when combined) enable security acceptors to verify only honest intermediate security acceptors have processed and discarded  BIB or BCBs added to a bundle at origin.</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 logical blocks; the <spanx style="verb">audit-pair</spanx> and <spanx style="verb">report-pair</spanx> operations.</t>

<t><list style="symbols">
  <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>
  <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>
</list></t>

</section>
</section>
<section anchor="securebpsec-audit-mechanism-protocol-overview"><name>SecureBPSec Audit Mechanism Protocol Overview</name>

<t>The core guarantee provided by SBAM is a guarantee that, after correctly verifying <spanx style="verb">audit-pair</spanx> and <spanx style="verb">report-pair</spanx> security operations, the destination node is assured that either</t>

<t><list style="symbols">
  <t>all security blocks added by the bundle source have arrived without an unprivileged node dropping or modifying them; or</t>
  <t>an honest intermediary has processed and discarded security block/s added by the bundle source.</t>
</list></t>

<t>Thus, for any bundle, its source node also acting as initial security source, will generate security blocks for their destination node exactly as specified in BPSec <xref target="RFC9172"/>. Additionally, the source node will create a logical <spanx style="verb">audit-pair</spanx> block, which provides a cryptographically-authenticated record of all security services it provided for the bundle, as well as all necessary uniquely identifying information for each security operation, such as its key and block identifiers.</t>

<t>SBAM further specifies that any honest intermediary node that processes a security block created by the bundle source also provides a cryptographic proof that it was authorized to perform this operation. This is achieved by replacing the processed and discarded security operation with a <spanx style="verb">report-pair</spanx> logical block that duplicates and authenticates, to the destination node (the final security acceptor), the uniquely identifying information associated with the discarded security service contained in the security block.
The SBAM <spanx style="verb">report-pair</spanx> therefore provides a cryptographically authenticated digest of the uniquely identifying information of the security block it processes, such as key and block identifiers. This allows the relevant identifying information of a bundle source–added security operation to remain verifiable by the final security acceptor even after the original security block has been processed and discarded.</t>

<t>Upon receiving the bundle, the destination node first verifies the <spanx style="verb">audit-pair</spanx> to validate its authenticity. It then verifies each <spanx style="verb">report-pair</spanx> to confirm that it was added by an honest intermediary node. The destination node subsequently collates the identifying information contained in the <spanx style="verb">audit-pair</spanx> and compares it with the identifying information collated from the <spanx style="verb">report-pair</spanx> blocks. Successful verification at each stage enables the destination node to confirm that no unprivileged node modified or removed any bundle source–added security operation during transit between the source and destination nodes.</t>

<section anchor="unique-key-identifiers"><name>Unique Key Identifiers</name>

<t>The Bundle Protocol Security (BPSec) and its defined security contexts, as described in <xref target="RFC9172"/> and <xref target="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, SBAM introduces <spanx style="verb">key-id</spanx> as an explicit security context parameter, enabling BPAs to uniquely identify the correct cryptographic key for each security operation.</t>

<t>Key identifiers are always represented as a CBOR unsigned integer, in accordance with the parameter identification requirements of Section 3.10 of <xref target="RFC9172"/>. Key identifiers MUST be unique across all security operations within a given bundle and MUST distinctly identify a cryptographic key used for a given security operation within its security context.</t>

<t>Within the SBAM design, three independent use cases for <spanx style="verb">key-id</spanx> are identified. When combined, these use cases enable the establishment of a reciprocal trust relationship between the bundle source acting as the initial security source, privileged intermediary nodes, and the bundle destination acting as the final security acceptor. The three distinct but interconnected <spanx style="verb">key-id</spanx> use cases are as follows:</t>

<t><list style="symbols">
  <t><spanx style="verb">key-id</spanx> for BPSec security services: This identifier uniquely identifies the key used by the bundle source to provide a BPSec integrity or confidentiality service (BIB and BCB respectively, as defined in <xref target="RFC9172"/>) when the bundle is created at origin. This identifier MUST be carried as security context parameter TBA1 (see <xref target="iana-considerations">IANA Considerations</xref>) within the Security Context Parameters field of the Abstract Security Block (ASB) structure defined in Section 3.6 of <xref target="RFC9172"/>, for every BIB and BCB within an SBAM bundle. Each BPSec security operation MUST have a corresponding unique <spanx style="verb">key-id</spanx> to facilitate SBAM integration.</t>
  <t><spanx style="verb">key-id</spanx> for auditing: This identifier uniquely identifies the key used by the bundle source to authenticate the <spanx style="verb">audit-pair</spanx> logical block to the bundle destination. The <spanx style="verb">audit-pair</spanx> contains the uniquely identifying information for each security operation added to the bundle at origin, including the corresponding security service <spanx style="verb">key-id</spanx> values. This identifier MUST be carried as security context parameter TBA1 (see <xref target="iana-considerations">IANA Considerations</xref>) within the ASB of the BIB authenticating the <spanx style="verb">audit-pair</spanx> manifest block, and MUST be independent of the security service <spanx style="verb">key-id</spanx> values recorded within the manifest itself.</t>
  <t><spanx style="verb">key-id</spanx> for reporting: This identifier uniquely identifies the key used by a privileged intermediary node to authenticate the <spanx style="verb">report-pair</spanx> logical block to the bundle destination. The <spanx style="verb">report-pair</spanx> duplicates the uniquely identifying information for each bundle source-added security operation (including the corresponding security service <spanx style="verb">key-id</spanx> values) that the intermediary processes and discards. This identifier MUST be carried as security context parameter TBA1 (see <xref target="iana-considerations">IANA Considerations</xref>) within the ASB of the BIB authenticating the <spanx style="verb">report-pair</spanx> manifest block, and MUST be independent of both the security service <spanx style="verb">key-id</spanx> values recorded within the manifest and the <spanx style="verb">key-id</spanx> used for auditing.</t>
</list></t>

<t>In addition to its presence in the ASB of every BIB and BCB, the <spanx style="verb">key-id</spanx> associated with each covered security operation MUST also be recorded as map key <spanx style="verb">-3</spanx> in the corresponding blockdata-map of every SBAM audit-pair and report-pair manifest block. This duplicate record enables the destination node to correlate the identifying information in the manifest against the security operations it received or that were reported as processed by an intermediary.</t>

<t>The use of these distinct <spanx style="verb">key-id</spanx> roles enables SBAM to bind the integrity of each bundle source-added BPSec security operation (via its associated security service <spanx style="verb">key-id</spanx>) to the <spanx style="verb">key-id</spanx> used to authenticate the <spanx style="verb">audit-pair</spanx>. Upon successful verification, the destination node can confirm that the integrity of the BPSec security operations added at the bundle origin has been preserved.</t>

<t>Independently, privileged intermediary nodes bind the <spanx style="verb">report-pair</spanx> <spanx style="verb">key-id</spanx> to the uniquely identifying information of each corresponding security service <spanx style="verb">key-id</spanx> associated with a bundle source-added security block that they process and discard. This enables the destination node to verify that any modification to bundle source-added security operations was performed by a legitimate intermediary node.</t>

<t>The management of <spanx style="verb">key-id</spanx> values, including how trust in them is established, maintained, and escrowed, is determined at the policy level and is outside the scope of this document.</t>

</section>
<section anchor="bundle-protocol-manifest-block"><name>Bundle Protocol Manifest Block</name>

<t>The Bundle Protocol Manifest Block introduced in <xref target="sipos-dtn-manifest-block"/> defines a new structured block type for BPv7 bundles. A primary purpose of the Manifest Block is to provide a structured and auditable mechanism for maintaining a record of bundle security components between the bundle source, acting also as the security source, and the intended destination node. This mechanism allows honest intermediary nodes to act as legitimate security acceptors, enabling them to process, and discard security blocks added by the source node while preserving an auditable record of those security-related components within the proposed manifest structure.
Manifest blocks enable the enumeration and identification of elements within a bundle in a consistent and machine-processable manner. While manifest blocks are not defined as security-specific mechanisms in itself, they provide a structured representation of bundle content that can be used by such security mechanisms as SBAM.</t>

<t>By listing covered components and associated metadata, manifest blocks create an environment in which integrity protection and authentication operations can be applied in a systematic way.
In this sense, manifest blocks do not directly perform security functions, but it enables and supports such functions by supplying a well-defined container for describing and referencing BPSec bundle elements.</t>

<t>Below is a diagram of the proposed Manifest Block structure as defined in <xref target="sipos-dtn-manifest-block"/>.</t>

<figure title="Manifest Block structure" anchor="fig-manifest-blk"><artwork type="cddl" align="left"><![CDATA[
; ---- General Manifest Block structure ----
; From sipos-dtn-manifest-block

; Type aliases
block-id = [
  ; From the IANA Bundle Block Types registry
  block-type: uint,
  block-num:  uint,
]
btsd-len      = uint
btsd-hash     = (
  ; From the IANA COSE Algorithms registry
  alg:   tstr / int,
  value: bstr
)
bpsec-targets = [+ uint]

$$metadata-item //= (
  0: int16
  ; Reason code from the Manifest Reason Codes registry
  2: embed-eid-structure
  3: dtn-time
)

$$blockdata-item //= (
  1:  block-id
  2:  block-control-flags
  5:  btsd-len
  6:  [+ btsd-hash]
  -1: bpsec-targets
  ; keys -1 and -2 apply only to BPSec security blocks (types 11, 12)
  -2: int16
  ; bpsec-security-context
)
]]></artwork></figure>

<t>SBAM leverages and extends the proposed Manifest Block structure to provide a verifiable audit trail between the source node and the destination node.
Manifest blocks enable SBAM functionality in two ways:</t>

<t>(1) they define an object type for the <spanx style="verb">audit-pair</spanx> operation between the bundle source and the final security-acceptor destination node; and</t>

<t>(2) they define an object type for the <spanx style="verb">report-pair</spanx> operation, which supports intermediary processing of source–generated security blocks while preserving the associated original audit information.</t>

<t>Together, these two object types establish a verifiable audit trail between the bundle source and its destination node. This audit trail preserves the BPSec-defined behavior that permits intermediary nodes to process and discard security blocks as required, while also providing a mechanism to detect any unauthorized modification to the security operations of a bundle enforced by its source.</t>

</section>
<section anchor="audit-creation"><name>Audit Creation</name>

<t>The audit creation process is described in detail in the following sections.</t>

<t>At the time of bundle creation, the source node SHALL generate a verifiable <spanx style="verb">audit-pair</spanx> logical block that covers all security operations added by the source node. Structurally, an <spanx style="verb">audit-pair</spanx> consists of a manifest block that records all security operations added to a bundle by its originator, and a BIB that authenticates the manifest contents.</t>

<t>The  <spanx style="verb">audit-pair</spanx> SHALL contain all relevant identifying information for each relevant security block (represented by independent manifest block-data-map), which SHALL include at minimum the identity of the security block <spanx style="verb">block-id</spanx>, information about its security context including a unique <spanx style="verb">key-id</spanx>, a list of target block identifiers <spanx style="verb">security-targets</spanx> to which the security block operation applies, and the <spanx style="verb">payload</spanx> (encoded in <spanx style="verb">btsd-hash</spanx>) of the bundle. This <spanx style="verb">audit-pair</spanx> SHALL then be cryptographically authenticated by a BIB generated by the source node which computes a cryptographic MAC over the <spanx style="verb">audit-pair</spanx> using a unique <spanx style="verb">audit-pair</spanx> operation key shared with the destination node. The <spanx style="verb">key-id</spanx> for the BIB authenticating the <spanx style="verb">audit-pair</spanx> SHALL be included in the BIB security context and SHALL be independent of the security context information contained in the associated manifest block.</t>

<t>The destination node SHALL discard any <spanx style="verb">audit-pair</spanx> (along with any source-generated <spanx style="verb">payload</spanx> intended for it) that is not cryptographically verified by a BIB generated by the source node. A further flag MAY be added to the <spanx style="verb">audit-pair</spanx> and its BIB to indicate that it is expected only to be verified by the intended bundle destination security acceptor.</t>

<t>The uniquely identifying information associated with the BIB that authenticates the <spanx style="verb">audit-pair</spanx> MUST NOT be included in the <spanx style="verb">audit-pair</spanx> record, as this would introduce a circular verification dependency.</t>

<t>See <xref target="sbam-integration-with-manifest-block">SBAM Integration with Manifest Block</xref> for more details on <spanx style="verb">audit-pair</spanx> design specifications.</t>

</section>
<section anchor="reporting"><name>Reporting</name>

<t>The reporting process is described in detail in the following sections.</t>

<t>Any security accepting intermediary that processes an SBAM bundle security operation added by the bundle source SHALL replace the processed operation with a <spanx style="verb">report-pair</spanx> operation. Structurally, a <spanx style="verb">report-pair</spanx> consists of a manifest block, and a BIB that authenticates the manifest contents.</t>

<t>The <spanx style="verb">report-pair</spanx> SHALL contain all relevant identifying information for each security block processed and discarded by the intermediary along the bundle path. Such <spanx style="verb">report-pair</spanx> SHALL include at minimum the identity of the security block (<spanx style="verb">block-id</spanx>) processed, a duplicate record of its security context (including its unique security service <spanx style="verb">key-id</spanx>) and a duplicate record of the security targets to which the security block operation applies. This <spanx style="verb">report-pair</spanx> SHALL then be cryptographically authenticated by a BIB generated over the manifest which computes a cryptographic MAC over the manifest block-data-map using a unique <spanx style="verb">report-pair</spanx> operation key the processing intermediary shares with the destination node. The <spanx style="verb">key-id</spanx> for the BIB authenticating the <spanx style="verb">report-pair</spanx> SHALL be included in the BIB security context and SHALL be independent of the security context information contained in the associated manifest block.</t>

<t>A further flag MAY be added to the <spanx style="verb">report-pair</spanx> to indicate that it is expected only to be verified by the intended destination security acceptor.</t>

<t>The uniquely identifying information associated with the BIB that authenticates the <spanx style="verb">report-pair</spanx> MUST NOT be included in the <spanx style="verb">report-pair</spanx> record, as this would introduce a circular verification dependency.</t>

<t>See <xref target="sbam-integration-with-manifest-block">SBAM Integration with Manifest Block</xref> for more details on the <spanx style="verb">report-pair</spanx> design specifications.</t>

</section>
<section anchor="verification"><name>Verification</name>

<t>The verification process is described in detail in the following sections.</t>

<t>When the destination node receives an SBAM bundle, it SHALL verify that the <spanx style="verb">audit-pair</spanx> and <spanx style="verb">report-pair</spanx>(s) it received can be cryptographically authenticated before accepting the bundle as valid. An SBAM bundle SHALL be considered valid by accepting destination node only if the following conditions are met:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">audit-pair</spanx> is cryptographically verified by the attached BIB generated by the source node. Failure indicates tampering or corruption of the bundle or associated block-type-specific-data.</t>
  <t>Each <spanx style="verb">report-pair</spanx> generated by an intermediary along the bundle path is cryptographically verified by its associated BIB. This enables the destination node to validate that the corresponding discarded bundle source-added security operation, which the <spanx style="verb">report-pair</spanx> replaced, was processed by an authorized intermediary and that the original security configuration of that operation remains cryptographically verifiable.</t>
  <t>The block-type-specific-data of the <spanx style="verb">audit-pair</spanx> manifest block matches a concatenation of blockdata-item(s) for each <spanx style="verb">report-pair</spanx> manifest block.</t>
</list></t>

</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="sbam-integration-with-manifest-block"><name>SBAM Integration with Manifest Block</name>

<t>Instead of defining a separate extension block, the SBAM can be integrated within the proposed Manifest Block structure. This approach leverages the existing manifest framework and would involve minor modifications or extensions to the Manifest Block fields currently defined in <xref target="sipos-dtn-manifest-block"/> to accommodate SBAM audit data.</t>

<t>When a manifest block is used as part of an <spanx style="verb">audit-pair</spanx> (see <xref target="audit-creation">Audit Creation</xref>), the <em>reason</em> item of the meta-data-map SHALL be set to <spanx style="verb">security-sourcing</spanx>. The resulting manifest-block SHALL then act as the security-target of a further BIB block which authenticates its content. This manifest block and its associated BIB block are generated by the initial bundle source and together form the logical unit referred to as an <spanx style="verb">audit-pair</spanx>. A further flag MAY be added to the <spanx style="verb">audit-pair</spanx> to indicate that it is expected only to be verified by the intended destination security acceptor.
The BIB SHALL be generated by the original source node and SHALL contain a cryptographic MAC over its associated manifest block using a unique <spanx style="verb">audit-pair</spanx> operation key shared with the destination node. Furthermore, an additional item that identifies the cryptographic key used for the corresponding cryptographic operation, <spanx style="verb">key-id</spanx>, SHALL be added to the <spanx style="verb">audit-pair</spanx> when used for SBAM auditing.</t>

<figure title="Manifest Block structure adapted to facilitate SBAM auditing" anchor="fig-manifest-audit"><artwork type="cddl" align="left"><![CDATA[
; ---- Audit-pair manifest block structure ----
; Reason: security-sourcing (code 3)
; Created by bundle source, covers all source-added security blocks.

$$metadata-item //= (
0: int16
; reason = 3 (security-sourcing)
2: embed-eid-structure
3: dtn-time
)
; One blockdata-item per source-generated security operation
$$blockdata-item //= (
1:  block-id
2:  block-control-flags
5:  btsd-len
6:  [+ btsd-hash]
-1: bpsec-targets
-2: int16
; bpsec-security-context
-3: key-id
; key-id of the covered security operation, CBOR unsigned integer
)
]]></artwork></figure>

<t>When a manifest block is used as part of a <spanx style="verb">report-pair</spanx>, the <em>reason</em> item of the meta-data-map SHALL be set to <spanx style="verb">security-acceptance</spanx>. This <spanx style="verb">report-pair</spanx> is generated every time an intermediary acceptor processes a bundle source-generated security block. The resulting manifest-block SHALL then act as the security-target of a further BIB block which authenticates its content. This manifest block and its associated BIB block are generated by the SBAM-processing intermediary and together form the logical unit referred to as an <spanx style="verb">report-pair</spanx>. A further flag MAY be added to the <spanx style="verb">report-pair</spanx> to indicate that it is expected only to be verified by the intended destination security acceptor.</t>

<t>Furthermore, an additional item that identifies the cryptographic key used for the corresponding cryptographic operation, <spanx style="verb">key-id</spanx>, SHALL be added to the <spanx style="verb">report-pair</spanx> when used for SBAM reporting. This enables an intermediary security acceptor that processes a source-generated security block to append a verifiable record of the processed security-block-specific-data for use by the intended destination security acceptor.
The btsd-len and btsd-hash fields in the manifest block do not serve a functional purpose within a <spanx style="verb">report-pair</spanx> and as such MAY be excluded without any functional impact.</t>

<t>This hop-by-hop generated <spanx style="verb">report-pair</spanx>  SHALL subsequently be used by the intended destination security acceptor to verify the integrity of the received bundle.</t>

<figure title="Manifest Block structure adapted to facilitate SBAM reporting" anchor="fig-manifest-report"><artwork type="cddl" align="left"><![CDATA[
; ---- Report-pair manifest block structure ----
; Reason: security-acceptance (code 4)
; Created by intermediary acceptor per discarded source-added operation.
; btsd-len (5) and btsd-hash (6) omitted per SBAM Section 3.7.

$$metadata-item //= (
  0: int16
  ; reason = 4 (security-acceptance)
  2: embed-eid-structure
  3: dtn-time
)

$$blockdata-item //= (
  1:  block-id
  2:  block-control-flags
  -1: bpsec-targets
  -2: int16
  ; bpsec-security-context
  -3: key-id
  ; key-id of the discarded security operation
)
]]></artwork></figure>

</section>
</section>
<section anchor="processing-rules"><name>Processing Rules</name>

<t><list style="symbols">
  <t><strong>source-node</strong>: Adds <spanx style="verb">audit-pair</spanx> consisting of a manifest block along with its verifying BIB after other security blocks and before payload.</t>
  <t><strong>intermediate-node</strong>: Processes BIB/BCB, adds <spanx style="verb">report-pair</spanx>consisting of a manifest block along with its verifying BIB.</t>
  <t><strong>destination-node</strong>: Validates all block-data-items within <spanx style="verb">audit-pair</spanx> and all <spanx style="verb">report-pair</spanx>(s), and checks whether the block-type-specific-data of the <spanx style="verb">audit-pair</spanx> manifest matches a concatenation of all block-type-specific-data for each <spanx style="verb">report-pair</spanx> manifest, prior to accepting payload. If any validation fails, the bundle MUST be discarded.</t>
</list></t>

</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 source-added BIB/BCB. This requires that the intended recipient performing the SBAM verifications described in <xref target="verification"></xref> to avoid a trivial attack by a malicious intermediary 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 undetected (e.g. forge or overwrite <spanx style="verb">report-pair</spanx>).</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="new-registry-sbam-security-context-parameters"><name>New Registry: SBAM Security Context Parameters</name>

<t>IANA is requested to create, under the "Bundle Protocol" registry group <xref target="IANA-BUNDLE"/>, a new registry titled "SBAM Security Context
Parameters".</t>

<t>The registration policy for this registry is Specification Required <xref target="RFC8126"/>. The value range is unsigned integer.</t>

<t>This registry defines parameters that MUST be supported by any security context used within an SBAM bundle, in addition to parameters defined by that security context's own specification. Each parameter is identified by an unsigned integer and applies to the Security Context Parameters field of the Abstract Security
Block (ASB) structure defined in Section 3.6 of <xref target="RFC9172"/>, for both Block Integrity Blocks (BIB) and Block Confidentiality Blocks (BCB) within an SBAM bundle.</t>

<t>IANA is requested to initialize this registry with the following entry:</t>

<texttable title="SBAM Security Context Parameters" anchor="tab-sbam-params">
      <ttcol align='left'>Parm Id</ttcol>
      <ttcol align='left'>Parm Name</ttcol>
      <ttcol align='left'>CBOR Encoding Type</ttcol>
      <ttcol align='left'>Block Types</ttcol>
      <ttcol align='left'>References</ttcol>
      <c>TBA1</c>
      <c>BPSec Key ID</c>
      <c>unsigned integer</c>
      <c>11, 12</c>
      <c>This specification</c>
</texttable>
<ul empty="true"><li>
  <t>RFC EDITOR: Replace TBA1 with the value assigned by IANA and
remove this note prior to publication.</t>
</li></ul>

<t>The BPSec Key ID parameter (Parm Id TBA1) uniquely identifies the cryptographic key used for the security operation represented by the enclosing BIB or BCB. Its presence is REQUIRED in every
BIB and BCB within an SBAM bundle, as defined in Section 3.1 of this document. The value MUST be encoded as a CBOR unsigned integer and MUST be unique across all security operations within a given bundle.</t>

<t>Each security context used within an SBAM bundle MUST define how this parameter is encoded and interpreted within its ASB, in accordance with the parameter identification requirements of
Section 3.10 of <xref target="RFC9172"/>. The specific encoding is defined by the security context specification; the semantic meaning is
defined here.</t>

</section>
<section anchor="manifest-data-items-registry"><name>Manifest Data Items Registry</name>

<t>This document requests registration of one new block data item in the "Manifest Data Items" registry under the "Bundle Protocol"
registry group <xref target="IANA-BUNDLE"/>, as defined in <xref target="sipos-dtn-manifest-block"/>:</t>

<texttable title="Manifest Data Items Registry Entry" anchor="tab-manifest-items">
      <ttcol align='left'>Block Type</ttcol>
      <ttcol align='left'>Key</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value Type</ttcol>
      <ttcol align='left'>References</ttcol>
      <c>11, 12</c>
      <c>-3</c>
      <c>BPSec Key ID</c>
      <c>uint</c>
      <c>This specification</c>
</texttable>
<ul empty="true"><li>
  <t>RFC EDITOR: Confirm that key -3 is unassigned in the Manifest
Data Items registry at time of publication and remove this note.</t>
</li></ul>

<t>The Block Type column specifies both 11 (Block Integrity Block) and 12 (Block Confidentiality Block) as defined in <xref target="RFC9172"/>,
since the <spanx style="verb">key-id</spanx> item applies when the covered block provides either an integrity or a confidentiality service.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

<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></organization>
    </author>
    <author initials="K." surname="Fall" fullname="K. Fall">
      <organization></organization>
    </author>
    <author initials="E." surname="Birrane" fullname="E. Birrane">
      <organization></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></organization>
    </author>
    <author initials="K." surname="Fall" fullname="K. Fall">
      <organization></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></organization>
    </author>
    <date year="2022" month="January"/>
  </front>
  <seriesInfo name="RFC" value="9173"/>
  <seriesInfo name="DOI" value="10.17487/RFC9173"/>
</reference>
<reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author initials="M." surname="Cotton" fullname="Michelle Cotton">
      <organization></organization>
    </author>
    <author initials="B." surname="Leiba" fullname="Barry Leiba">
      <organization></organization>
    </author>
    <author initials="D. T." surname="Narten" fullname="Dr. Thomas Narten">
      <organization></organization>
    </author>
    <date year="2017" month="June"/>
  </front>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC2104" >
  <front>
    <title>HMAC: Keyed-Hashing for Message Authentication</title>
    <author initials="H." surname="Krawczyk" fullname="H. Krawczyk">
      <organization></organization>
    </author>
    <author initials="M." surname="Bellare" fullname="M. Bellare">
      <organization></organization>
    </author>
    <author initials="R." surname="Canetti" fullname="R. Canetti">
      <organization></organization>
    </author>
    <date year="1997" month="February"/>
  </front>
  <seriesInfo name="RFC" value="2104"/>
  <seriesInfo name="DOI" value="10.17487/RFC2104"/>
</reference>
<reference anchor="RFC2119" >
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author initials="S. O." surname="Bradner" fullname="Scott O. Bradner">
      <organization></organization>
    </author>
    <date year="1997" month="March"/>
  </front>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="IANA-BUNDLE" target="https://www.iana.org/assignments/bundle/">
  <front>
    <title>IANA, Bundle Protocol</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="CryptoRocket" target="https://doi.org/10.62056/a39qudhdj">
  <front>
    <title>Cryptography is Rocket Science</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </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></organization>
    </author>
    <date year="2025" month="June" day="03"/>
  </front>
</reference>
<reference anchor="sipos-dtn-manifest-block" target="https://datatracker.ietf.org/doc/html/draft-sipos-dtn-manifest-block-00">
  <front>
    <title>Bundle Protocol (BP) Manifest Block</title>
    <author initials="B." surname="Sipos" fullname="Brian Sipos">
      <organization></organization>
    </author>
    <date year="2025" month="December" day="29"/>
  </front>
</reference>


    </references>

</references>


<?line 496?>

<section anchor="example"><name>Example</name>

<t>This appendix is informative.</t>

<t>This appendix presents a series of examples of constructing SBAM logical blocks using manifest blocks defined in
<xref target="sipos-dtn-manifest-block"/> and bundle integrity blocks defined in <xref target="RFC9172"/>.</t>

<figure><sourcecode type="cddl"><![CDATA[
; ---- Shared manifest structure ----
; From sipos-dtn-manifest-block

manifest-structure = { * int16 => any }
int16 = -32768 .. 32767
metadata-map  = {* $$metadata-item  } .within manifest-structure
blockdata-map = {* $$blockdata-item } .within manifest-structure

ext-data-manifest = [
  metadata-map,
  [* blockdata-map]
]

block-id      = [ block-type: uint, block-num: uint ]
btsd-len      = uint
btsd-hash     = ( alg: tstr / int, value: bstr )
bpsec-targets = [+ uint]
bpsec-key-id  = uint
; bpsec-key-id: CBOR unsigned integer, per SBAM Section 3.1

; ---- Audit-pair manifest (reason: security-sourcing, code 3) ----
; Created by bundle source, covers all source-added security blocks.

$$metadata-item //= (
  0: int16
  ; reason = 3 (security-sourcing)
  2: embed-eid-structure
  3: dtn-time
)

$$blockdata-item //= (
  1:  block-id
  2:  block-control-flags
  5:  btsd-len
  6:  [+ btsd-hash]
  -1: bpsec-targets
  -2: int16
  ; bpsec-security-context
  -3: key-id
  ; key-id for the covered security operation
)

; ---- Report-pair manifest (reason: security-acceptance, code 4) ----
; Created by intermediary acceptor per discarded source-added security operation..

$$metadata-item //= (
  0: int16
  ; reason = 4 (security-acceptance)
  2: embed-eid-structure
  3: dtn-time
)

$$blockdata-item //= (
  1:  block-id
  2:  block-control-flags
  -1: bpsec-targets
  -2: int16
  ; bpsec-security-context
  -3: key-id
  ; key-id of the discarded security operation
)

; ---- BIB authenticating either manifest (shared structure) ----
; Per RFC 9172 Section 3.6

abstract-security-block = [
  security-targets:       [+ uint]
  security-context-id:    uint
  security-context-flags: uint
  security-source:        eid-structure
  security-parameters:    [* security-parameter]
  security-results:       [* [* security-result]]
]

security-parameter = [ parm-id: uint, parm-value: any ]
security-result    = [ result-id: uint, result-value: any ]

bib-block = [
  block-type:  11
  block-num:   uint
  block-flags: uint
  crc-type:    0 / 1 / 2
  data:        bstr .cbor abstract-security-block
]
]]></sourcecode></figure>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+196XLbVrrgfz7FKflWtehLUpacdhKl0tVanLYqsa2xlM6d
SrnaIHFIIgYBNgBKZpaueYd5w3mS+bazAqAkO7fv7alJVycilrN859s3jMfj
QZM1uT5We1d6tqmyYqFOL+FPdbJIsqJu1Ek1zZoqqbbqMpm91406r8r1Gp7b
GyTTaaVv8NXTk5d7g7ScFckKhkqrZN6MmywpxmlTjOtpsho/+WwwSxq9KKvt
saqbdDCoN9NVVtdZWTTbNbx18fz6G6UeqSSvSxgzK1K91vCvotkbqT2dZk1Z
ZUmOPy5OTuE/ZQV/vbn+Zm9QbFZTXR0PUpjheDAri1oX9aY+Vk210QNY4dNB
UukERr0oGl0Vutkb3JbV+0VVbtZw9VznyfbgPKurzbqBBanrMtdVUjTqlW7w
Qdrue72Fv9Nj9WNNoGq2I5VsYF3jdZJVI1XpdVnxj7eDwY0uNrCYgVIPm0Up
BsfeD3xF/QVfx+urJMvh+o8A0z9nuplPymrxdt//NcTHkmq2hMeWTbOujw8O
8C28lN3oiXnuAC8cTKvyttYHMMDBHq0za5abKbw6vc1WSXrAx/jhw4dx3VTj
6Rp2jePnAOS68Wbgxyf8+iQru1486MCJybJZ5TBzsmmWJZzeYKwA42Dg04k6
L29zAQfj1N6pLn5KVlnh34KtJEX2c4LQhEe+hct/qNVZmed6odV3ZZGWBT6n
GXRTGWKS8hB/fj/LJ8lssnnvT/0iybU/Lxx0k9ir0ZSvkpskV5dl3SyqJN0A
aNTVbFmWuT8tjTBZwgh/Ltb1RKcbO99/TNQ1wMSb7z8yQF578SOm+4ADTBDS
h63pYHs/wGHlSZ1Vmb/JZbLYJtG9h0KXxpjc2jE88A6KslrBQDdAEUq9+ebs
y8PPD/FPwHZhP6ebIs21uqzKppyVufqrrpA3qM/36DGDJIr+GcvCrybqdFPl
OlssozvfTtQ3SZ5HV5/D81kFNKfpBvELdfTk6Gj85JCu1LrKdJ0V89JMBYs9
Vrhc+X3++uJYHT6ZHH7+2RefH8hWeCdJtdBAGIYubm9vJ9V8NmbWRXSHAx/A
NXrHQuJoNySuhNuofeDMz8+GuwASbbAbHg/Z9tGObR99xLaP3LafPmzb6lzP
k03euBtnIDr0h6Z+AEAesvWnO7b+9CO2zu/w9r84PHoWbv8vmyzVwJV0reYg
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

-->

</rfc>

