<?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.24 (Ruby 3.0.2) -->


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

]>

<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="o-*+"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc ipr="trust200902" docName="draft-song-satp-implementation-guide-02" category="info" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SATP Implementation Guide">Secure Asset Transfer Protocol (SATP) Implementation Guide</title>

    <author initials="H." surname="Song" fullname="Hyojin Song">
      <organization>Seoul National Univ.</organization>
      <address>
        <postal>
          <country>South Korea</country>
        </postal>
        <email>fun@snu.ac.kr</email>
      </address>
    </author>
    <author initials="Y.-G." surname="Hong" fullname="Yong-Geun Hong">
      <organization>Daejeon Univ.</organization>
      <address>
        <postal>
          <country>South Korea</country>
        </postal>
        <email>yonggeun.hong@gmail.com</email>
      </address>
    </author>
    <author initials="G." surname="Jeong" fullname="GukSik Jeong">
      <organization>TTA</organization>
      <address>
        <postal>
          <country>South Korea</country>
        </postal>
        <email>jgsigi@tta.or.kr</email>
      </address>
    </author>
    <author initials="T." surname="Hardjono" fullname="Thomas Hardjono">
      <organization>MIT</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>hardjono@mit.edu</email>
      </address>
    </author>

    <date year="2025" month="October" day="20"/>

    <area>Applications and Real-Time</area>
    <workgroup>Secure Asset Transfer Protocol</workgroup>
    <keyword>Gateway</keyword> <keyword>Digital asset network</keyword> <keyword>Asset transfer</keyword>

    <abstract>


<?line 103?>

<t>This memo provides implementation guidelines for the Secure Asset Transfer Protocol (SATP). It is intended for developers of SATP gateway and digital asset networks they represent. This document also clarifies the core SATP processing workflow and offers recommendations to ensure interoperable implementations, particularly in environments where multiple gateways may represent the same network.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://anawhj.github.io/draft-song-satp-implementation-guide/draft-song-satp-implementation-guide.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-song-satp-implementation-guide/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Asset Transfer Protocol  mailing list (<eref target="mailto:sat@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/sat/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/sat/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/anawhj/draft-song-satp-implementation-guide"/>.</t>
    </note>


  </front>

  <middle>


<?line 107?>

<section anchor="introduction"><name>Introduction</name>

<t anchor="introduction-doc">(Note: SATP core and architecture drafts are under progress of RFC publication as of October 2025, so major updates to this guide are expected following their RFC publication and new rechartering.)</t>

<t>The Secure Asset Transfer Protocol (SATP) provides a standardized mechanism for the secure and reliable transfer of digital assets across different asset networks. The protocol's primary scope is to define the messages and protocol flows for communication between peer gateways. In the SATP model, each gateway acts as a trusted representative for its respective network, managing the outbound (locking/burning) and inbound (unlocking/minting) transfer of assets.</t>

<t>A fundamental requirement for any cross-network value transfer is reliability. SATP is explicitly designed to provide transactional guarantees, ensuring that the ACID properties (Atomicity, Consistency, Isolation, and Durability) are maintained. The protocol flow, often leveraging a 2-Phase Commit (2PC) pattern, ensures that a transfer operation either completes successfully on both the origin and destination networks or is safely rolled back. This prevents critical failure states, such as the loss of an asset or its unintentional duplication.</t>

<t>This document, the "SATP Implementation Guide," serves as a non-normative companion to the core protocol specifications. Its purpose is to provide practical implementation guidance for SATP gateway developers and architects. It does not introduce any new normative requirements but instead clarifies the existing ones, outlines best practices, and provides concrete examples to aid in building secure, compliant, and interoperable SATP solutions.</t>

<t>All guidance provided herein is based on the normative definitions found in the "Secure Asset Transfer Protocol (SATP) Core" <xref target="SATcore"></xref> and the "Secure Asset Transfer (SAT) Interoperability Architecture" <xref target="SATarch"></xref> documents. Implementers are encouraged to consult those core specifications for all formal requirements, data models, and protocol state definitions. This guide <bcp14>SHOULD</bcp14> be used as a supplementary resource to understand how those normative requirements may be practically applied.</t>

<t>This guide elaborates on the abstract protocol by detailing common implementation scenarios. It provides concrete examples for core protocol flows, recommendations for payload structures, and best practices for critical areas such as security and privacy. Specific attention is given to topics like key management, payload encryption (JWE) for sensitive compliance data, and mitigating protocol-level attacks.</t>

<t>The target audience for this document includes system architects designing gateway infrastructure, software engineers developing SATP client and server logic, and security professionals responsible for auditing and securing the implementation. This guide may also serve as a technical introduction for parties seeking to understand the practical workflow of the protocol beyond the abstract specification.</t>

<figure><artwork><![CDATA[
          Originator                         Beneficiary
       (Origin network)                 (Destination network)
               |                                   |
  +------------------------+          +------------------------+
  |         Client         |          |         Client         |
  |       Application      |          |       Application      |
  |         (App1)         |          |         (App2)         |
  +------------------------+          +------------------------+
       |              |                    |              |
       V              V                    V              V
  +---------+    +---------+          +---------+    +---------+
  |         |    |         |          |         |    |         |
  |         |    |         |          |         |    |         |
  | Digital |    |         |          |         |    | Digital |
  |  Asset  |    | Gateway |          | Gateway |    |  Asset  |
  | Network |<-->|   GW1   | <------> |   GW2   |    | Network |
  |   NW1   |    |         |          |         |    |   NW2   |
  |         |    |         |          |         |    |         |
  |         |    |         |          |         |    |         |
  +---------+    +---------+          +---------+    +---------+

            Figure 1. Scope of the SATP implementation
]]></artwork></figure>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="terminology"><name>Terminology</name>

<t><list style="symbols">
  <t>SATP (Secure Asset Transfer Protocol): A protocol that defines the communication flow and messages between peer gateways to execute the secure transfer of a digital asset from one network to another.</t>
  <t>Gateway: A software component that acts as a representative for a Digital Asset Network. It implements the SATP and manages the locking, unlocking, burning, or minting of assets on its represented network.</t>
  <t>Originator Gateway: The gateway that initiates an asset transfer request on behalf of the asset sender.</t>
  <t>Beneficiary Gateway: The gateway that receives the asset transfer request on behalf of the asset recipient.</t>
  <t>Intermediary Gateway: An optional gateway that participates in a multi-hop transfer, acting as both a Beneficiary (to the preceding gateway) and an Originator (to the subsequent gateway).</t>
  <t>Digital Asset: A digital representation of value that is being transferred via SATP (e.g., a cryptocurrency, token, stablecoin, or NFT).</t>
  <t>Digital Asset Network (or Asset Network): The underlying system, such as a Distributed Ledger (DLT) or a centralized database, on which a digital asset is recorded and maintained.</t>
  <t>VASP (Virtual Asset Service Provider): The real-world operational entity (e.g., a financial institution, a crypto exchange) that operates a Gateway and is responsible for regulatory compliance.</t>
  <t>2PC (Two-Phase Commit): A protocol pattern used by SATP to coordinate a transaction between two or more distributed systems (Gateways) to ensure Atomicity. It consists of a "Prepare" (or "Vote") phase and a "Commit" (or "Decision") phase.</t>
  <t>ACID (Atomicity, Consistency, Isolation, Durability): A set of properties that guarantee the reliability of transactions. SATP aims to provide these guarantees for the cross-network transfer itself.</t>
  <t>Payload: The application-level data within an SATP message, typically formatted as JSON <xref target="RFC8259"></xref> and secured with JWS <xref target="RFC7515"></xref>, containing details of the transfer, assets, and compliance information.</t>
  <t>PII (Personally Identifiable Information): Sensitive data about the originator or beneficiary of a transfer (e.g., name, address) that is often required for regulatory compliance, such as the FATF Travel Rule.</t>
  <t>Secure Channel: An encrypted communication path between two gateways, typically established using Transport Layer Security (TLS) <xref target="RFC8446"></xref>, which SATP mandates for all communication.</t>
</list></t>

</section>
<section anchor="core-protocol-flows"><name>Core Protocol Flows</name>

<t>This section provides non-normative examples of the message flows between peer gateways for common SATP use cases. These flows illustrate the practical application of the 2-Phase Commit (2PC) model defined in the SATP Core <xref target="SATcore"></xref> specification, which is the foundation for providing ACID guarantees.</t>

<t>The protocol is divided into two primary phases:</t>

<t>Phase 1 (Prepare): The Originator Gateway (OG) proposes a transfer (TransferRequest), and the Beneficiary Gateway (BG) validates it and "votes" by reserving the resources and responding (TransferAcknowledgement or TransferError).</t>

<t>Phase 2 (Commit/Abort): The OG receives the vote. If the vote was "YES" (Ack), the OG commits the transfer on its side and instructs the BG to do the same (TransferCommit). If the vote was "NO" (Error), the OG aborts the transfer and rolls back any changes.</t>

<section anchor="use-case-1-simple-asset-transfer-successful"><name>Use Case 1: Simple Asset Transfer (Successful)</name>
<t>This is the "happy path" scenario for a straightforward asset transfer where compliance checks are minimal or integrated seamlessly.</t>

<t>Message Flow: The flow begins when the Originator Gateway (OG) initiates the Prepare phase by sending a TransferRequest message. This message contains the asset details, amount, and destination. The Beneficiary Gateway (BG) receives this request, validates the address, and confirms it can receive the asset. The BG then sends a TransferAcknowledgement message, signaling its "Vote YES" to proceed. Upon receiving this acknowledgment, the OG enters the Commit phase, sending a TransferCommit message to the BG. The BG receives this final instruction, finalizes the transfer, and replies with a TransferFinalization (or a final simple Ack) to complete the protocol.</t>

<t>Network Roles: On the Originator Network, the OG places a "lock" on the user's assets before sending the TransferRequest or immediately after, but before the Commit phase. This lock ensures the assets cannot be double-spent. Upon receiving the TransferAcknowledgement and sending the TransferCommit, the OG executes the final action (e.g., "burning" the asset or transferring it to a gateway-controlled vault). On the Beneficiary Network, the BG's TransferAcknowledgement signifies it is ready to credit the user. Upon receiving the TransferCommit, the BG executes its final action (e.g., "minting" the new asset or releasing funds to the recipient's account).</t>

</section>
<section anchor="use-case-2-transfer-with-pii-compliance-successful"><name>Use Case 2: Transfer with PII Compliance (Successful)</name>
<t>This flow is common for transfers between VASPs that must adhere to regulations like the FATF Travel Rule, requiring the exchange of PII.</t>

<t>Message Flow: The message flow is identical to the simple transfer (Request -&gt; Ack -&gt; Commit -&gt; Finalization). However, the content of the TransferRequest message is expanded. It now also contains the required originator and beneficiary PII, which is encrypted using JWE <xref target="RFC7516"></xref> as described in the Privacy Considerations section.</t>

<t>Validation and Network Roles: The primary difference lies in the BG's validation logic. Before the BG can send the TransferAcknowledgement ("Vote YES"), it decrypts the PII payload. It then validates this PII against its internal compliance engine (e.g., checking for sanctions lists, AML policies, or data formatting). If the PII is valid and passes all checks, the BG proceeds with the TransferAcknowledgement. The Originator Network's role is unchanged, but the OG is responsible for correctly collecting and encrypting this PII. The Beneficiary Network's action (minting/releasing funds) is now contingent not only on a valid TransferCommit but also on the prior success of this compliance check.</t>

<t>This flow ensures that no asset is moved or committed on the Originator Network until the Beneficiary Gateway has confirmed it can legally accept the transfer and the associated PII.</t>

</section>
<section anchor="use-case-3-transfer-rejection-rollback"><name>Use Case 3: Transfer Rejection (Rollback)</name>
<t>This "unhappy path" scenario demonstrates the 2PC "Abort" phase, which is critical for maintaining atomicity when a transfer cannot be completed.</t>

<t>Message Flow: The OG initiates the transfer by sending a TransferRequest. The BG receives this request and performs its validation (as in Use Case 1 or 2). During this validation, the BG discovers a critical error. This could be a failed compliance check (e.g., a sanctioned recipient), an invalid asset type, a non-existent destination address, or any other business rule violation.</t>

<t>Because it cannot proceed, the BG "Votes NO" by sending a TransferError message instead of an acknowledgment. This TransferError message contain a specific error code and a human-readable description of the problem. Upon receiving the TransferError, the OG immediately enters the Abort phase. The protocol stops here; no TransferCommit message is ever sent.</t>

<t>Network Roles: The Beneficiary Network does nothing; it received a request but rejected it before taking any action on its ledger. The atomicity guarantee is fulfilled by the Originator Network. When the OG receives the TransferError, it executes a rollback. This involves removing the "lock" placed on the user's assets, returning them to the sender's control. The OG then reports the failure (and the reason provided by the BG) to the originating user.</t>

</section>
<section anchor="use-case-4-multi-hop-intermediary-transfer"><name>Use Case 4: Multi-Hop (Intermediary) Transfer</name>
<t>This more complex scenario involves routing a transfer through one or more Intermediary Gateways (IG). This flow (e.g., A -&gt; B -&gt; C) essentially "chains" two separate SATP 2PC flows together.</t>

<t>Message Flow: The flow is initiated by the OG (Gateway A), which sends a TransferRequest to the IG (Gateway B). This request identifies Gateway C as the final beneficiary. Gateway B receives this request and acts as a "Beneficiary" to Gateway A, but also as an "Originator" to Gateway C.</t>

<t>Gateway B (IG) immediately initiates its own TransferRequest (Phase 1) to Gateway C (BG), forwarding the relevant asset and PII data. Gateway B doesn't send its TransferAcknowledgement ("Vote YES") back to Gateway A until it has first received a TransferAcknowledgement from Gateway C.</t>

<t>Network Roles and Atomicity: This nested 2PC flow creates an end-to-end atomic guarantee. The "Vote YES" (TransferAcknowledgement) messages propagate backward from the final destination (C -&gt; B, then B -&gt; A). The TransferCommit messages propagate forward from the origin (A -&gt; B, then B -&gt; C).</t>

<t>If the final BG (Gateway C) sends a TransferError ("Vote NO"), the IG (Gateway B) relays this failure by sending a TransferError back to the OG (Gateway A). This triggers a full, cascading rollback across all participating networks. The Intermediary Network (Network B) never takes custody of the asset; it merely acts as a routing conduit, and the protocol ensures the asset is only ever committed at the final destination.</t>

</section>
</section>
<section anchor="data-model-and-payload"><name>Data Model and Payload</name>

<t>This section provides non-normative examples of the data models used in SATP messages. The core SATP specification <xref target="SATcore"></xref> defines the normative data structures and formats. All SATP messages are required to be encapsulated within a secure envelope, such as a JWS (JSON Web Signature) <xref target="RFC7515"></xref> or COSE (CBOR Object Signing and Encryption) <xref target="RFC9052"></xref>, to ensure data integrity and sender authentication.</t>

<t>The payload of this secure envelope is the SATP message itself (e.g., TransferRequest, TransferAcknowledgement, TransferError). Implementers need to consider to agree on the serialization format, with JSON <xref target="RFC8259"></xref> and CBOR <xref target="RFC8949"></xref> being the recommended formats. The JSON payload is required to use UTF-8 encoding.</t>

<section anchor="gateway-identifiers"><name>Gateway Identifiers</name>
<t>Gateways is identified using unique, routable identifiers. While the core specification may allow various formats, this guide RECOMMENDEDs using either a DID (Decentralized Identifier) <xref target="W3C-DID-CORE"></xref> or a secure HTTPS-based URI. The use of DIDs is particularly beneficial for automated discovery of public keys and service endpoints.</t>

<t>Specific examples of identifiers that can be supported:</t>

<t>DID (vLEI): did:vlei:GLEIF.SF4G.393O.5O9B (Uses a vLEI for VASP identification)</t>

<t>DID (web): did:web:vasp-a.com</t>

<t>URI: httpsa://satp.vasp-b.com/gateway</t>

<t>These identifiers are used in the originatorGateway and beneficiaryGateway fields of SATP messages.</t>

</section>
<section anchor="example-payload-transferrequest-json"><name>Example Payload: TransferRequest (JSON)</name>
<t>The following example shows the decoded payload of a JWS token for a TransferRequest message, corresponding to Use Case 2 (Transfer with PII Compliance). This entire JSON object is what is signed and placed within the payload field of the JWS envelope.</t>

<t>JSON</t>

<t>{
  "messageType": "TransferRequest",
  "jti": "a7d9f8b1-c2e3-4d5f-b6a7-e8f9b0c1d2e3",
  "iat": 1761000000,
  "originatorGateway": "did:vlei:GLEIF.SF4G.393O.5O9B",
  "beneficiaryGateway": "did:vlei:GLEIF.9876.WXYZ.5432",
  "assetTransfer": {
    "assetType": "urn:iso:std:iso:4217:USD",
    "amount": "1500.00",
    "destinationAddress": "0xABC123...[beneficiary_address]"
  },
  "compliancePayload": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiRUNESC1FUytB..."
}</t>

<t>In this example, the jti (JWT ID) and iat (Issued At) claims are used for anti-replay protection, as described in the Security Considerations. The compliancePayload field contains a JWE (JSON Web Encryption) <xref target="RFC7516"></xref> token. This JWE encapsulates the sensitive PII (e.g., originator's name, address) and is encrypted for the Beneficiary Gateway, in line with the Privacy Considerations.</t>

</section>
<section anchor="cbor-representation"><name>CBOR Representation</name>
<t>For implementations prioritizing minimal data size, especially in constrained environments, CBOR <xref target="RFC8949"></xref> is the recommended binary format. The SATP message can then be encapsulated using COSE <xref target="RFC9052"></xref> (e.g., a COSE_Sign1 structure) instead of JWS.</t>

<t>The content of the COSE payload would be the CBOR-encoded representation of the JSON object shown above. The core SATP specification <xref target="SATcore"></xref> is required to define integer mappings for common JSON string keys (e.g., "messageType" might be mapped to the integer 1, "jti" to 2, etc.) to achieve significant payload reduction. Implementers are encouraged to adhere to these official mappings to ensure cross-format interoperability.</t>

</section>
</section>
<section anchor="interoperability-profiles"><name>Interoperability Profiles</name>

<t>The SATP core specification <xref target="SATcore"></xref> provides a robust and flexible framework for secure asset transfers. This flexibility, however, can lead to interoperability challenges if not properly managed. For example, one gateway may implement the protocol using JSON/JWS, while another uses CBOR/COSE. Similarly, one gateway may require mandatory PII compliance payloads for all transfers, while another only supports simple, non-compliance transfers.</t>

<t>To mitigate this and to provide a clear path for interoperability, this guide defines a set of Interoperability Profiles. A profile is a named set of normative features, algorithms, message formats, and protocol flows that an implementation is required to support in full to claim conformance to that profile. This allows gateways to easily discover and verify that they share a compatible set of capabilities before attempting a transfer.</t>

<t>Gateways are required to publicly declare which profiles they support. This can be achieved through a service discovery mechanism, such as a well-known URI (as defined in <xref target="RFC8615"></xref>) hosted at the gateway's domain, which returns a machine-readable JSON object describing the gateway's capabilities and supported profiles.</t>

<t>This section introduces a baseline profile, SATP-Core-v1.0. All gateways claiming to be SATP-compliant are required to implement this profile at a minimum, as it ensures baseline functionality for simple transfers. Additional profiles, such as a SATP-FATF-Compliance-v1.0 profile, may be defined in this document or in separate companion documents to address specific use cases like regulatory compliance.</t>

<t>The following is an example of a machine-readable JSON definition for the baseline SATP-Core-v1.0 profile. This object could be used in a service discovery document.</t>

<t>JSON</t>

<t>{
  "profileName": "SATP-Core-v1.0",
  "version": "1.0",
  "description": "Baseline interoperability for simple asset transfers without PII compliance payloads.",
  "basedOn": [
    "SATcore",
    "SATarch"
  ],
  "supportedFlows": [
    "SimpleAssetTransfer",
    "TransferRejection"
  ],
  "payload": {
    "format": "JSON",
    "encoding": "UTF-8"
  },
  "security": {
    "envelope": "JWS",
    "signatureAlgorithms": [
      "ES256",
      "ES256K"
    ],
    "transport": "mTLS",
    "tlsVersion": [
      "TLSv1.3"
    ]
  },
  "compliance": {
    "supported": false
  },
  "messageTypes": [
    "TransferRequest",
    "TransferAcknowledgement",
    "TransferError",
    "TransferCommit",
    "TransferFinalization"
  ]
}</t>

</section>
<section anchor="open-sources-and-test-tooling"><name>Open Sources and Test Tooling</name>

<t>A robust and diverse ecosystem of implementations is essential for the success and adoption of SATP. This ecosystem includes both public, open-source projects, which serve as reference implementations and testbeds, and non-public (closed-source) commercial implementations, which validate the standard against real-world business requirements. The availability of both types of implementations allows the community to build a common understanding and refine the protocol.</t>

<t>On the open-source front, a key reference implementation is being developed within the Linux Foundation Decentralized Trust (lfdecentralizedtrust) community. The Hyperledger Cacti project, an interoperability framework, provides a modular architecture for connecting heterogeneous DLTs. This project hosts the SATP-Hermes plugin, which implements a fully functional SATP Gateway. This SATP-Hermes module acts as a vital, public reference implementation that other developers can test against and contribute to.</t>

<t>In the non-public and commercial domain, Quant Network's Overledger platform is a prominent example. As a major contributor to the SATP standardization process, Quant utilizes the SATP gateway model as a core component of its Overledger architecture. Overledger is a commercial platform designed to provide interoperability between diverse blockchains and legacy enterprise systems, and its implementation validates the SATP framework's applicability to institutional and enterprise-grade use cases.</t>

<t>The existence of multiple, independent implementations necessitates common test tooling to ensure true interoperability. It is recommended that the SATP community develops a shared Test Suite and a set of comprehensive Test Vectors (examples of which may be found in the Appendix of this guide). This test suite is required to validate not only the "happy path" flows but also all defined error states, security requirements, and protocol edge cases.</t>

<t>Implementers of both open and closed-source solutions are encouraged to participate in community-driven interoperability testing events, such as IETF Hackathons or "Interop Fests". These events provide a crucial venue for testing different implementations against one another, identifying ambiguities in the specification, and collectively strengthening the interoperability of the entire SATP ecosystem.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This section expands on the normative security requirements defined in the SATP core specification <xref target="SATcore"></xref>, offering practical guidance to help implementers avoid common pitfalls and securely configure their gateways.</t>

<t>Transport Security Configuration: The SATP core specification mandates the use of a secure channel. Implementers are encouraged to ensure this channel is properly configured to prevent eavesdropping, man-in-the-middle (MITM) attacks, and replay of the transport session. It is good practice to support TLS 1.3 <xref target="RFC8446"></xref> or a subsequent version. Implementations are encouraged to avoid negotiating or supporting any version of TLS prior to 1.2, and it is recommended to only support TLS 1.3+. Implementations are encouraged to also avoid cipher suites known to be weak (e.g., those using RC4, 3DES, or anonymous Diffie-Hellman). It is recommended to configure servers to only support cipher suites that provide Perfect Forward Secrecy (PFS). To ensure that only authorized gateways can communicate, implementations are encouraged to use Mutual TLS (mTLS). In an mTLS exchange, the Beneficiary Gateway (server) authenticates the Originator Gateway (client) by verifying its client-side X.509 certificate, in addition to the standard server-side certificate validation performed by the client.</t>

<t>Gateway Key Management Lifecycle: SATP messages rely on digital signatures (JWS/COSE) for integrity and non-repudiation. The private keys used for this purpose are a high-value target and require careful protection. Private keys are required to not be stored in plaintext in configuration files or source code. It is strongly recommended that private keys be generated and stored within a Hardware Security Module (HSM) or an equivalent isolated secure environment (e.g., TEE, Secure Enclave) that prevents key exfiltration. Implementers are encouraged to have a defined policy for periodic key rotation (e.g., annually or upon suspected compromise). Implementations are encouraged to also be designed with "crypto-agility" in mind. Hard-coding specific algorithms or curves (e.g., ES256K) is discouraged, and the system is required to be capable of upgrading to new signing algorithms if vulnerabilities are discovered in the currently used ones.</t>

<t>Message Signature and Verification Best Practices: Improper validation of JWS <xref target="RFC7515"></xref> or COSE <xref target="RFC9052"></xref> signatures can lead to severe vulnerabilities. When verifying a signature, the alg (algorithm) header parameter is required to be checked against an explicit allow-list of acceptable algorithms maintained by the verifier. Any message received with an alg value not on this list is rejected. In particular, it is critical that the alg:none value is rejected. This guide recommends that the signature be applied to the canonicalized form of the entire message payload to prevent ambiguity. The implementation guide provides clear test vectors showing exactly which bytes are included in the signature computation. Signers are encouraged to include a Key ID (e.g., kid in JWS) in the protected header to aid the verifier in selecting the correct public key for validation, especially during and after key rotation.</t>

<t>Protocol-Level Attack Mitigation: The stateful nature of the 2-Phase Commit (2PC) protocol can be exploited for denial-of-service (DoS) or replay attacks. All state-changing messages (especially TransferRequest) are required to include a unique identifier (e.g., a jti claim) and a timestamp (e.g., an iat claim). A Beneficiary Gateway maintains a record of recently processed jti values to detect and reject replayed messages. Implementations enforces strict timeouts for 2PC transactions. A Beneficiary Gateway that receives a Phase 1 (Prepare) request releases any locks or reserved resources if the transaction is not finalized (Committed or Aborted) within a predefined, reasonable timeframe (e.g., 5 minutes). This prevents resource exhaustion DoS attacks. Gateway endpoints are encouraged to implement rate limiting based on source IP, client certificate, or other identifiable metrics to mitigate volumetric DoS and brute-force attacks.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>Privacy is a fundamental consideration for SATP gateways, especially since the protocol often carries sensitive Personally Identifiable Information (PII) for regulatory needs (like the FATF Travel Rule). Implementers are encouraged to adopt a "Privacy by Design" approach. This involves protecting data not just from external attackers, but also managing how legitimate participants handle data to prevent misuse or leakage.</t>

<t>Data Minimization: It's good practice for a gateway to avoid sending the complete set of PII it holds about an originator in every request. Instead, the TransferRequest ideally only contains the minimum set of PII fields that are strictly required by the Beneficiary Gateway's jurisdiction or its stated compliance policy. A policy-driven approach is recommended to dynamically determine the appropriate data payload for each transfer, thereby limiting the privacy risk and exposure in every transaction.</t>

<t>Privacy-preserving Logging: Implementations are required to aim to ensure privacy-preserving logging. Sensitive PII (such as customer names, residential addresses, or national identification numbers) is not written in plaintext to any general-purpose application, debug, or INFO level logs. Traceability and debugging can be achieved using non-sensitive correlation identifiers, such as the jti of the TransferRequest. Furthermore, any PII received is subject to purpose binding (used only for the compliance check it was intended for) and storage limitation (securely deleted after the mandated legal retention period has expired).</t>

<t>Transaction Linkability and Metadata Protection: Even when the PII payload is encrypted (e.g., using JWE), the metadata of the SATP flow—such as the identities of the participating gateways, the frequency of transfers, and the timing of the messages—remains visible to the gateways and potentially to network observers. This metadata can be used to infer sensitive patterns about users and institutions. While the mandated use of TLS mitigates passive network observation, implementers are encouraged to avoid placing any unnecessary unique identifiers in unencrypted headers to reduce the risk of linkability.</t>

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

<t>There are no IANA considerations related to this document.</t>

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>




    </references>

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

<reference anchor="SATcore" target="https://datatracker.ietf.org/doc/draft-ietf-satp-core/">
  <front>
    <title>Secure Asset Transfer Protocol (SATP) Core</title>
    <author initials="M." surname="Hargreaves">
      <organization></organization>
    </author>
    <author initials="T." surname="Hardjono">
      <organization></organization>
    </author>
    <author initials="R." surname="Belchior">
      <organization></organization>
    </author>
    <author initials="V." surname="Ramakrishna">
      <organization></organization>
    </author>
    <date year="2025" month="July"/>
  </front>
</reference>
<reference anchor="SATarch" target="https://datatracker.ietf.org/doc/draft-ietf-satp-architecture/">
  <front>
    <title>Secure Asset Transfer (SAT) Interoperability Architecture</title>
    <author initials="T." surname="Hardjono">
      <organization></organization>
    </author>
    <author initials="M." surname="Hargreaves">
      <organization></organization>
    </author>
    <author initials="N." surname="Smith">
      <organization></organization>
    </author>
    <author initials="V." surname="Ramakrishna">
      <organization></organization>
    </author>
    <date year="2025" month="June"/>
  </front>
</reference>


<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>

<reference anchor="RFC7516">
  <front>
    <title>JSON Web Encryption (JWE)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7516"/>
  <seriesInfo name="DOI" value="10.17487/RFC7516"/>
</reference>

<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>

<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>

<reference anchor="RFC8446">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2018"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8446"/>
  <seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>

<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</reference>

<reference anchor="RFC8949">
  <front>
    <title>Concise Binary Object Representation (CBOR)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="94"/>
  <seriesInfo name="RFC" value="8949"/>
  <seriesInfo name="DOI" value="10.17487/RFC8949"/>
</reference>


<reference anchor="W3C-DID-CORE" target="https://www.w3.org/TR/did-1.0/">
  <front>
    <title>Decentralized Identifiers (DIDs) v1.0</title>
    <author initials="M." surname="Sporny">
      <organization></organization>
    </author>
    <author initials="A." surname="Guy">
      <organization></organization>
    </author>
    <author initials="M." surname="Sabadello">
      <organization></organization>
    </author>
    <author initials="D." surname="Reed">
      <organization></organization>
    </author>
    <date year="2022" month="July"/>
  </front>
</reference>


    </references>

</references>


<?line 383?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>TBA</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA81963IbR5bmfzxFLfzDQBuAREqyLU6vx7xJolsSNSJljdeh
6CigEkCKhSpMXUih3Y7Yh9gH2GfZR5knmfOdc/JSACird/vHOhwhsJCVl5Pn
fsN4PO7VTVpkf03zsjBHycbUvbU96iVJNZ+ZrG42uT5NkqacRR9tkZmiiR5k
Zt0sj5LH9FddVk1l5rX7tt6sOn82lZ35V2flakUz+W9tkdsiLGo+NePc1s2Y
JpmWOQ0rx3/6Rt5bp2Gaup36J0XZ6zW2wdavzKytTHJc16ZJrqu0qOemSt5U
Je24zJPB1fH1m2FysVrnBrtIG1sWyfPWZqaXTqeVuaUpaMj+EVk5K9IVrZJV
6Zx2WBaLcZ0267HtjB4vMHqcp42pm96M/lmU1eaITjove3ZdHSVN1dbN4cOH
Tx8e9tLKpEfJ8Xqd2xm/Xid0Qclbk+bja7syvbuyullUZbv+o9P1MlrqKDl8
mFzOGvrn8EmPjnNIN05LrI6Si/PrZ70bs6EJM7rycfKcxt+lG3w8swvbpHmS
8tSFabAqvpC1Gl2rN6P9maJu6V7maV6bXu/WFK0BBuke+5/fZB+XvFnTPvv4
uEptTh8Jij9a08wnZbXA47SaEW71l02zro8ePMAoPLK3ZuKGPcCDB9OqvKvN
A3r/Ad6jQyzbKb2ZFund8uODL7kovCd3Fa0o709kvoktv2imLxo0WTYrgkIv
bZtlWeEeaH2QAYH0xSS5opf5wbzNc8G2F5vyoy3CN3T4tLB/4zmBE2WbJ6/5
L7rAd4W9nfAwI7Cdt8WPddFO0tnkpuIvZmVbNEDIq5L2kPylJPTobOOX8fNJ
8mJ3I7/gYM9NW4Qvu3s5S81HQ+Sys4kNjV/Qi5MlffhxgYcTIt8v2w5t5iez
u5vn7c2VvYm+6u7l+vo43sHHRU0o/mPTpIQ8XwyJa4JDWmUfS2IxeCgrXy/L
VVp3v+ku/uriOl58qSN/XNlmYrK2u/i7q+NeD8yhWtHrt0xMxIRmtJsjHulR
hf4by8Ze8cYWtN9bZof+i+0d6+O3k+TE5ERBZRU//nmSvE1X6U1l62WR8jfC
RH4inGIOgkcNrWSIOhxx0JCUOMLsxlSBHIk5Kv7jkeA/jvBApvhH2PMpvSYw
YD5wHwzuOeq9oHlN1EUXsPxCABT/BAAw02rMrGm/CBA4P0mnojFVuTZVOrW5
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
UrSrKZHG0DH0uwo8vOjao9y9d6P2Yz72ZnFoRzeie5i20jz34vWzy0RaM9L+
EUoj/DfOjSpdqmgsk992SpI4gmCnx79NUaFyTcROqB/otiWE9N3fOmWSPGsr
3DVKZkd8EMDQq9owoVtJDuG0Kjnb1Gq7NzV5pIFkING4Zp/o8y7t/uDc0JvY
UHsZw5R9ep9qZnJpqM1aHFOgOEMlbIQOte7HPsSy5bJLQkdgz9B5XlUcv7TF
TQzhV6ZJGf/feHfEUXIOsvKdy6KuJ92UaBXEvg+MFhOu3JRx33NEOf7zf/6v
+CbkiticdCX4ncK/qN8jUoCYbRWz0EZU8h2dsdtIylW3yWJNS1b4FVCiqVsr
rUjUFPGuOI6flI2vcmY7WMoJy6l6CH2TNT2ZYiNfOauZcxP/SIo2iHV8GAXg
te+1p0G4TjWTv1D1bMOb5/SDmvu4RL+LpttScrJ/IC5ZcKD2wzl620KCdGDB
O1oxx0HaItyx2Ce19E7iX4bi5HEwPdpnHrBJEoOPXx/viWrA+sbWilJGdLQS
9tLx4d2v9kVZVfyDg6gPxezHnZYQde+3I2FKJvvvfU6g6f9Oq50c9/4LPpyB
Bml7AAA=

-->

</rfc>

