<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-http-signature-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="WIMSE Workload-to-Workload HTTP-Sig">WIMSE Workload-to-Workload Authentication with HTTP Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-http-signature-02"/>
    <author fullname="Joe Salowey">
      <organization>CyberArk</organization>
      <address>
        <email>joe@salowey.net</email>
      </address>
    </author>
    <author fullname="Yaron Sheffer">
      <organization>Intuit</organization>
      <address>
        <email>yaronf.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="01"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>workload</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 42?>

<t>The WIMSE architecture defines authentication and authorization for software workloads
in a variety of runtime environments, from the most basic ones to complex
multi-service, multi-cloud, multi-tenant deployments.
This document defines one of the mechanisms to provide workload authentication,
using HTTP Signatures. While only applicable to HTTP traffic, the protocol provides end-to-end
protection of requests (and optionally, responses), even when service traffic is not end-to-end
encrypted, that is, when TLS proxies and load balancers are used.
Authentication is based on the Workload Identity Token (WIT).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-wimse.github.io/draft-ietf-wimse-s2s-protocol/draft-ietf-wimse-s2s-protocol.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-wimse-http-signature/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Workload Identity in Multi System Environments Working Group mailing list (<eref target="mailto:wimse@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/wimse/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/wimse/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-wimse/draft-ietf-wimse-s2s-protocol"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines authentication and authorization in the context of interaction between two workloads.
This is the core component of the WIMSE architecture <xref target="I-D.ietf-wimse-arch"/>.
This document focuses on HTTP-based services,
and the workload-to-workload call consists of a single HTTP request and its response.</t>
      <t>One option to protect such traffic is through Mutual TLS, and this usage is defined in <xref target="I-D.ietf-wimse-mutual-tls"/>.
Many deployments prefer application-level approaches, whether for lack of CA infrastructure or because
inter-service communication consists of multiple separate TLS hops. This document defines one of the two WIMSE
approaches for application-level protection.</t>
      <t>We define a profile of the HTTP Signatures protocol <xref target="RFC9421"/> to protect the service traffic.
Service authentication uses the Workload Identity Token (WIT) defined in <xref target="I-D.ietf-wimse-workload-creds"/>,
and the signature uses the private key associated with the WIT and thus proves possession of that key.</t>
      <t>As noted, the WIMSE working group is specifying two alternatives for application-level protection, both using the newly introduced
Workload Identity Token <xref target="I-D.ietf-wimse-workload-creds"/>. The first alternative <xref target="I-D.ietf-wimse-wpt"/> is inspired by the OAuth DPoP specification.
The second is based on the HTTP Message Signatures RFC, and this is the one defined in this document.
<xref target="app-level-comparison"/> includes a comparison of the two alternatives.</t>
      <section anchor="deployment-architecture-and-message-flow">
        <name>Deployment Architecture and Message Flow</name>
        <t>Refer to Sec. 1.2 of <xref target="I-D.ietf-wimse-workload-creds"/> for the deployment architecture which is common to all three
protection options, including the one described here.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>All terminology in this document follows <xref target="I-D.ietf-wimse-arch"/>.</t>
      <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="http-sig-auth">
      <name>The Protocol: Authentication Based on HTTP Message Signatures</name>
      <t>This protocol uses the Workload Identity Token <xref target="I-D.ietf-wimse-workload-creds"/> and the private key associated with its public key,
to sign the request and optionally, the response.
Formally, this is a profile of the Message Signatures specification <xref target="RFC9421"/>.</t>
      <t>The request is signed as per <xref target="RFC9421"/>. The following derived components <bcp14>MUST</bcp14> be signed:</t>
      <ul spacing="normal">
        <li>
          <t><tt>@method</tt></t>
        </li>
        <li>
          <t><tt>@request-target</tt></t>
        </li>
      </ul>
      <t>In addition, the following request headers <bcp14>MUST</bcp14> be signed when they exist:</t>
      <ul spacing="normal">
        <li>
          <t><tt>Wimse-Audience</tt> (<xref target="wimse-audience-header"/>)</t>
        </li>
        <li>
          <t><tt>Content-Type</tt></t>
        </li>
        <li>
          <t><tt>Content-Digest</tt></t>
        </li>
        <li>
          <t><tt>Authorization</tt></t>
        </li>
        <li>
          <t><tt>Txn-Token</tt> <xref target="I-D.ietf-oauth-transaction-tokens"/></t>
        </li>
        <li>
          <t><tt>Workload-Identity-Token</tt></t>
        </li>
      </ul>
      <t>If the response is signed, the following components <bcp14>MUST</bcp14> be signed:</t>
      <ul spacing="normal">
        <li>
          <t><tt>@status</tt></t>
        </li>
        <li>
          <t><tt>@method;req</tt></t>
        </li>
        <li>
          <t><tt>@request-target;req</tt></t>
        </li>
        <li>
          <t><tt>Content-Type</tt> if it exists</t>
        </li>
        <li>
          <t><tt>Content-Digest</tt> if it exists</t>
        </li>
        <li>
          <t><tt>Workload-Identity-Token</tt></t>
        </li>
      </ul>
      <t>To ensure the message is fully integrity-protected, if the request or response includes a message body, the sender <bcp14>MUST</bcp14> include
(and the receiver <bcp14>MUST</bcp14> verify) a Content-Digest header.</t>
      <t>For both requests and responses, the following signature parameters <bcp14>MUST</bcp14> be included:</t>
      <ul spacing="normal">
        <li>
          <t><tt>created</tt></t>
        </li>
        <li>
          <t><tt>expires</tt> - expiration <bcp14>MUST</bcp14> be short, e.g. on the order of minutes. The WIMSE architecture will provide separate
mechanisms in support of long-lived compute processes.</t>
        </li>
        <li>
          <t><tt>nonce</tt></t>
        </li>
        <li>
          <t><tt>tag</tt> - the value for implementations of this specification is <tt>wimse-workload-to-workload</tt></t>
        </li>
      </ul>
      <t>The following signature parameters in the <tt>Signature-Input</tt> header <bcp14>MUST NOT</bcp14> be used:</t>
      <ul spacing="normal">
        <li>
          <t><tt>keyid</tt> - The signing key is sent along with the message in the WIT. Additionally specifying the key identity would add confusion.</t>
        </li>
        <li>
          <t><tt>alg</tt> - The signature algorithm is specified in the <tt>jwk</tt> section of the <tt>cnf</tt> claim in the WIT. See <xref target="I-D.ietf-wimse-workload-creds"/> and Sec. 3.3.7 of <xref target="RFC9421"/> for details.</t>
        </li>
      </ul>
      <t>It is <bcp14>RECOMMENDED</bcp14> to include only one signature with the HTTP message.
If multiple ones are included, then the signature label included in both the <tt>Signature-Input</tt> and <tt>Signature</tt> headers <bcp14>SHOULD</bcp14>
be <tt>wimse</tt>.</t>
      <t>A sender <bcp14>MUST</bcp14> ensure that each nonce it generates is unique, at least among messages sent to the same recipient.
To detect message replays,
a recipient <bcp14>SHOULD</bcp14> reject a message (request or response) if a nonce generated by a certain peer is seen more than once.</t>
      <t>For clarity: the signature's lifetime (the <tt>expires</tt> signature parameter) is different and typically much shorter than the WIT's lifetime, denoted by its <tt>exp</tt> claim.</t>
      <t>Implementors need to be aware that the WIT is extracted from the message before the message signature is validated. Recipients of signed HTTP messages <bcp14>MUST</bcp14> validate the signature and content of the WIT before validating the HTTP message signature. They <bcp14>MUST</bcp14> ensure that the message is not processed further before it has been fully validated.</t>
      <section anchor="wimse-audience-header">
        <name>WIMSE Audience Header</name>
        <t>This document defines a new <tt>Wimse-Audience</tt> HTTP header field. This header <bcp14>MUST</bcp14> be included in
the request and <bcp14>MUST</bcp14> be signed. Its purpose is to prevent reuse of the signed message other
than to the intended audience, while allowing some protocols to rewrite the request's
"authority" (often, the target host).</t>
        <t>The header field contains the HTTP target URI (<xref section="7.1" sectionFormat="of" target="RFC9110"/>) of the request, without query or fragment parts. However, there may be some normalization, rewriting or other processes that require the audience to be set to a deployment-specific value.</t>
        <t>The recipient <bcp14>MUST</bcp14> be able to verify that the audience refers to it. See "Workload Identifiers and Authentication Granularity" in <xref target="I-D.ietf-wimse-workload-creds"/> for more detail.</t>
      </section>
      <section anchor="signing-the-response">
        <name>Signing the Response</name>
        <t>Protecting the response by signing it with the server's WIT is <bcp14>RECOMMENDED</bcp14> but optional. In particular, if the response
may be exceptionally large or is expected to be streamed, signing it may not be practical.</t>
        <t>In practice, we expect response signing to be enabled by local policy. If response signing is enabled for a deployment,
the client (recipient of the response) <bcp14>MUST</bcp14> check that the signature exists and validate it.
The response <bcp14>MUST</bcp14> be rejected if a signature is absent or fails to validate.</t>
        <t>As described in <xref section="5" sectionFormat="of" target="RFC9421"/>, either client or server <bcp14>MAY</bcp14> send an
<tt>Accept-Signature</tt> header,
but is not required to do so. The <tt>Accept-Signature</tt> header indicates a
preference for signed messages but does not mandate that responses be signed.
When a client sends <tt>Accept-Signature</tt> in a request, it <bcp14>SHOULD</bcp14> list the
response components it wishes to have signed (including at least those specified above for signed
responses). When a server sends <tt>Accept-Signature</tt> in a response, it <bcp14>SHOULD</bcp14>
list the request components it wishes to have signed in subsequent requests (minimally those
specified above for signed requests).</t>
      </section>
      <section anchor="error-conditions">
        <name>Error Conditions</name>
        <t>Errors may occur during the processing of the message signature. If the signature verification fails for any reason,
such as an invalid signature, an expired validity time window, or a malformed data structure, an error is returned. Typically,
this will be in response to an API call. An HTTP status code such as 400 (Bad Request) is appropriate. The response could
include more details as per <xref target="RFC9457"/>, such as an indicator that the wrong key material or algorithm was used.  The use of HTTP
status code 401 is <bcp14>NOT RECOMMENDED</bcp14> for this purpose because it requires a WWW-Authenticate with acceptable HTTP auth mechanisms in
the error response and an associated Authorization header in the subsequent request. The use of these headers for the WIT is not compatible
with this specification.</t>
      </section>
      <section anchor="example-requests-and-responses">
        <name>Example Requests and Responses</name>
        <t>Following is a non-normative example of a signed request and a signed response.</t>
        <t>The caller uses this keypair:</t>
        <figure>
          <name>Caller Private Key</name>
          <sourcecode type="jwk"><![CDATA[
{
  "alg": "EdDSA",
  "crv": "Ed25519",
  "d": "Vz-mhKKZG2BmyuEC7-8y0ttwFbjONtf7Q_ABL2Tldxg",
  "kid": "svc-a-key",
  "kty": "OKP",
  "x": "bk3wFVdYjKRBflfa6QS8rZFIKRJEKy4ZGQRIJXAHfog"
}
]]></sourcecode>
        </figure>
        <t>The caller uses its keypair and generates the following HTTP request:</t>
        <figure>
          <name>Signed Request</name>
          <sourcecode type="http"><![CDATA[
=============== NOTE: '\\' line wrapping per RFC 8792 ===============

GET /gimme-ice-cream?flavor=vanilla HTTP/1.1
Host: example.com
Signature: wimse=:e5FJnnSi0waMqPTzsvKR9bGu69UrcoR1Ure09l4b36xYhUqFHj\
\FTRdkKjlkkn0p9dXRqPwNyBxe/1hfSJ15OBQ==:
Signature-Input: wimse=("@method" "@request-target" "wimse-audience"\
\ "workload-identity-token");created=1772386884;expires=1772387184;n\
\once="abcd1111";tag="wimse-workload-to-workload"
Wimse-Audience: https://example.com/gimme-ice-cream
Workload-Identity-Token: eyJhbGciOiJFZERTQSIsImtpZCI6Imlzc3Vlci1rZXk\
\iLCJ0eXAiOiJ3aXQrand0In0.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3\
\J2IjoiRWQyNTUxOSIsImtpZCI6InN2Yy1hLWtleSIsImt0eSI6Ik9LUCIsIngiOiJia\
\zN3RlZkWWpLUkJmbGZhNlFTOHJaRklLUkpFS3k0WkdRUklKWEFIZm9nIn19LCJleHAi\
\OjE3NzIzODcxODQsImlhdCI6MTc3MjM4Njg4NCwiaXNzIjoiaHR0cHM6Ly9leGFtcGx\
\lLmNvbS9pc3N1ZXIiLCJqdGkiOiJ3aXQtMTc3MjM4Njg4NDc5NzAwNzAwMCIsInN1Yi\
\I6IndpbXNlOi8vZXhhbXBsZS5jb20vc3ZjQSJ9.QxgHzB9YZ5Xh7PFBTl_6lsrYfzpj\
\NaWIMxgpA78dMsAOycSYw3TlSV80EDMlOkUsC-3HF0QhczSFLh_2DcY1Dw

]]></sourcecode>
        </figure>
        <t>Assuming that the workload being called has the following keypair:</t>
        <figure>
          <name>Callee Private Key</name>
          <sourcecode type="jwk"><![CDATA[
{
  "alg": "EdDSA",
  "crv": "Ed25519",
  "d": "wfhAN8WoPeGN1ikx3KW9cveIPrno_iB6oxvkIplhRDY",
  "kid": "svc-b-key",
  "kty": "OKP",
  "x": "fuYDsk-ZG_ol-8NyvqKwV3EIymygRtCJcqrRG_1Jvm0"
}
]]></sourcecode>
        </figure>
        <t>A signed response would be:</t>
        <figure>
          <name>Signed Response</name>
          <sourcecode type="http"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

HTTP/1.1 404 Not Found
Connection: close
Content-Digest: sha-256=:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU\
=:
Content-Type: text/plain
Signature: wimse=:MhDGoIfHnZV/0Z7Wu57rleh77FrX2DB4Ezu3dzL9lqiXzmaDcK\
k6Z8i0AszK5UEUZO7RxCTaY9IjToRJS+eIBg==:
Signature-Input: wimse=("@status" "workload-identity-token" "content\
-type" "content-digest" "@method";req "@request-target";req);created\
=1772386884;expires=1772387186;nonce="abcd2222";tag="wimse-workload-\
to-workload"
Workload-Identity-Token: eyJhbGciOiJFZERTQSIsImtpZCI6Imlzc3Vlci1rZXk\
iLCJ0eXAiOiJ3aXQrand0In0.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J\
2IjoiRWQyNTUxOSIsImtpZCI6InN2Yy1iLWtleSIsImt0eSI6Ik9LUCIsIngiOiJmdVl\
Ec2stWkdfb2wtOE55dnFLd1YzRUl5bXlnUnRDSmNxclJHXzFKdm0wIn19LCJleHAiOjE\
3NzIzODcxODYsImlhdCI6MTc3MjM4Njg4NiwiaXNzIjoiaHR0cHM6Ly9leGFtcGxlLmN\
vbS9pc3N1ZXIiLCJqdGkiOiJ3aXQtMTc3MjM4Njg4NDc5NzE2MjAwMCIsInN1YiI6Ind\
pbXNlOi8vZXhhbXBsZS5jb20vc3ZjQiJ9.lqWjoau6GlkwykzHC6M1TdIgziPVlSlVnU\
e9uUzcsEQEAhYdI2tpmeV60szmLW-ignonrI1buZCKJDhW2QdDDQ

No ice cream today.

]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t><cref>Note to RFC Editor: please remove this section, as well as the reference to RFC 7942, before publication.</cref></t>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.  Please note that the listing of any individual implementation here does not imply endorsement by the IETF.  Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features.  Readers are advised to note that other implementations may exist.</t>
      <t>According to RFC 7942, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.  It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="cofide">
        <name>Cofide</name>
        <ul spacing="normal">
          <li>
            <t>Organization: Cofide</t>
          </li>
          <li>
            <t>Implementation: <eref target="https://github.com/cofide/wimse-s2s-httpsig-poc">https://github.com/cofide/wimse-s2s-httpsig-poc</eref></t>
          </li>
          <li>
            <t>Maturity:
            </t>
            <ul spacing="normal">
              <li>
                <t>WIT + HTTP Message Signatures: proof-of-concept</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Coverage: WIT, HTTP Message Signatures</t>
          </li>
          <li>
            <t>License: Apache 2.0</t>
          </li>
          <li>
            <t>Contact: jason@cofide.io</t>
          </li>
          <li>
            <t>Last updated: 13-Nov-2025</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section includes security considerations that are specific to the HTTP Signature protocol defined here. Refer to
<xref target="I-D.ietf-wimse-workload-creds"/> for more generic security considerations associated with the workload identity
and its WIT representation.</t>
      <section anchor="workload-identity-token-and-proof-of-possession">
        <name>Workload Identity Token and Proof of Possession</name>
        <t>The Workload Identity Token (WIT) is bound to a secret cryptographic key and is
always presented with a proof of possession as described in
<xref target="I-D.ietf-wimse-workload-creds"/>. The WIT is a general purpose token that can be presented
in multiple contexts. The WIT and its PoP are only used in the
application-level options, and neither is used in MTLS. The WIT <bcp14>MUST NOT</bcp14> be
used as a bearer token. While this helps reduce the sensitivity of the token it
is still possible that a token and its proof of possession may be captured and
replayed within the PoP's lifetime.</t>
        <t>The HTTP Signature profile presented here binds the proof of possession to the critical parts of the HTTP request (and potentially
response), including the Request URI and the message body. This
eliminates most of the risk associated with active attackers on a middlebox.</t>
        <t>In addition, the following mitigations should be used:</t>
        <ul spacing="normal">
          <li>
            <t>Preventing Eavesdropping and Interception with TLS</t>
          </li>
        </ul>
        <t>An attacker observing or intercepting the communication channel can view the token and its proof of possession and attempt to replay it to gain an advantage. In order to prevent this, the
token and proof of possession <bcp14>MUST</bcp14> be sent over a secure, server authenticated TLS connection unless a secure channel is provided by some other mechanisms. Hostname validation according
to Section 6.3 of <xref target="RFC9525"/> <bcp14>MUST</bcp14> be performed by the client.</t>
        <ul spacing="normal">
          <li>
            <t>Limiting Signature Lifespan</t>
          </li>
        </ul>
        <t>The signature lifespan <bcp14>MUST</bcp14> be limited by using a tight <tt>expires</tt> value, taking into account potential clock skew and
processing latency, but usually within minutes of the message sending time. Signatures received outside their validity time <bcp14>MUST</bcp14> be rejected.</t>
        <ul spacing="normal">
          <li>
            <t>Replay Protection</t>
          </li>
        </ul>
        <t>A signed message includes the <tt>jti</tt> claim that <bcp14>MUST</bcp14> uniquely identify it, within the scope of a particular sender.
This claim <bcp14>SHOULD</bcp14> be used by the receiver to perform basic replay protection against messages it has already seen.
Depending upon the design of the system it may be difficult to synchronize the replay cache across all message validators.
If an attacker can somehow influence the identity of the validator (e.g. which cluster member receives the message) then
replay protection would not be effective.</t>
      </section>
      <section anchor="middleboxes">
        <name>Middle Boxes</name>
        <t>In some deployments the Workload Identity Token and proof of possession
(signature) may pass through multiple systems. The communication between the
systems is over TLS, but the WIT and signature are available in the clear at each
intermediary.  While the intermediary cannot modify the token or the
information within the signature they can attempt to capture and replay the message or modify
unsigned information, such as proprietary HTTP headers that may remain unsigned.</t>
        <t>Mitigations listed in the protocol provide a reasonable level of security in these situations, in particular
if responses are signed in addition to requests.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>WITs and the signatures may contain private information such as user names or other identities. Care must be taken to prevent disclosure of this information. The use of TLS helps protect the privacy of WITs and proofs of possession.</t>
        <t>WITs are typically associated with a workload and not a specific user, however
in some deployments the workload may be associated directly to a user. While
these are exceptional cases a deployment should evaluate if the disclosure of
WITs or signatures can be used to track a user.</t>
      </section>
    </section>
    <section anchor="security-goals">
      <name>Security Goals</name>
      <t>This section defines semiformal security goals for this protocol, when used in conjunction with the WIT credential. Our aim
is to inform developers and for these goals to eventually evolve into formal verification of the protocol.</t>
      <section anchor="prerequisites">
        <name>Prerequisites</name>
        <t>The following are out of scope of the protocol and their security is assumed.</t>
        <ul spacing="normal">
          <li>
            <t>There exists a WIT Issuer which is trusted to issue credentials honestly.</t>
          </li>
          <li>
            <t>Workloads have a way to authenticate themselves to the Issuer and be provisioned with a valid WIT, associated
with their WIMSE identity.</t>
          </li>
          <li>
            <t>All workloads are provisioned with trust anchors that allow them to validate incoming WITs.</t>
          </li>
          <li>
            <t>The entire authorization subsystem is out of scope and trusted. This can potentially include
provisioning and enforcement of an authorization policy, issuance of transaction tokens
and workload attestation.</t>
          </li>
          <li>
            <t>All workload-to-workload traffic is TLS-protected. However TLS may be terminated on one or more middleboxes
and the TLS endpoint identity (or identities) is not associated with a WIMSE identity.</t>
          </li>
          <li>
            <t>As a result, all workload-to-workload traffic is confidential and (assuming honest participants) is only available to sender,
receiver, and any TLS-terminating middleboxes that process the traffic.</t>
          </li>
        </ul>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <ul spacing="normal">
          <li>
            <t>A workload receiving a request can validate that it is signed correctly, and can identify the sender.</t>
          </li>
          <li>
            <t>A workload receiving a response can similarly authenticate its sender, provided that optional response signing has
been activated and likewise, the recipient validates this signature.</t>
          </li>
          <li>
            <t>The above implies that a stolen WIT cannot be used by an entity other than its owner.</t>
          </li>
        </ul>
      </section>
      <section anchor="integrity">
        <name>Integrity</name>
        <ul spacing="normal">
          <li>
            <t>No requests can be modified without detection by the recipient. Integrity of
all present HTTP headers specified in this document is protected, as well as
the message body (when present).</t>
          </li>
          <li>
            <t>No responses can be modified without detection, provided that optional response signing has been activated and
that the recipient validates incoming responses.</t>
          </li>
          <li>
            <t>Note: Headers not specified in this document may remain unsigned and could
potentially be modified or deleted by intermediaries without detection.</t>
          </li>
        </ul>
      </section>
      <section anchor="replay-and-deletion">
        <name>Replay and Deletion</name>
        <ul spacing="normal">
          <li>
            <t>Replay protection is not strictly mandated because of implementation
considerations (e.g., distributed system challenges with synchronizing replay
caches across validators). Therefore it is not claimed as
a goal, though implementations <bcp14>SHOULD</bcp14> attempt to detect replays where feasible.
We note that since most of the message is signed, replay attacks are only possible in a
context where the request would be accepted as valid, and this mitigates the risk to some extent.</t>
          </li>
          <li>
            <t>Unless response signing is mandated by local policy, complete deletion of a request/response pair is possible without detection.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="hypertext-transfer-protocol-http-field-name-registration">
        <name>Hypertext Transfer Protocol (HTTP) Field Name Registration</name>
        <t>IANA is requested to register the following entries to the "Hypertext Transfer Protocol (HTTP) Field Name Registry" <xref target="IANA.HTTP.FIELDS"/>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Wimse-Audience</tt>, per <xref target="iana-wimse-audience-field"/>.</t>
          </li>
        </ul>
        <section anchor="iana-wimse-audience-field">
          <name>Wimse-Audience</name>
          <ul spacing="normal">
            <li>
              <t>Field Name: Wimse-Audience</t>
            </li>
            <li>
              <t>Status: permanent</t>
            </li>
            <li>
              <t>Structured Type: Item (String)</t>
            </li>
            <li>
              <t>Specification Document: RFC XXX, <xref target="wimse-audience-header"/></t>
            </li>
            <li>
              <t>Comments: This header field is used in the WIMSE HTTP Signature protocol to prevent reuse of signed messages by unintended recipients.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-workload-creds">
          <front>
            <title>WIMSE Workload Credentials</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="3" month="November" year="2025"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

   This document defines the credentials that workloads use to represent
   their identity.  They can be used in various protocols to
   authenticate workloads to each other.  To use these credentials,
   workloads must provide proof of possession of the associated private
   key material, which is covered in other documents.  This document
   focuses on the credentials alone, independent of the proof-of-
   possession mechanism.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-00"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <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>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA.HTTP.FIELDS" target="https://www.iana.org/assignments/http-fields">
          <front>
            <title>Hypertext Transfer Protocol (HTTP) Field Name Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="I-D.ietf-wimse-arch">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="30" month="September" year="2025"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as a
   running instance of software executing for a specific purpose.  This
   document discusses an architecture for designing and standardizing
   protocols and payloads for conveying workload identity and security
   context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-06"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-mutual-tls">
          <front>
            <title>Workload Authentication Using Mutual TLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="2" month="November" year="2025"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones to complex multi-service, multi-cloud, multi-tenant
   deployments.  This document profiles a workload authentication based
   on X.509 workload identity certificates using mutual TLS (mTLS).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-mutual-tls-00"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-wpt">
          <front>
            <title>WIMSE Workload Proof Token</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <date day="3" month="November" year="2025"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from basic
   deployments to complex multi-service, multi-cloud, multi-tenant
   systems.  This document specifies the Workload Proof Token (WPT), a
   mechanism for workloads to prove possession of the private key
   associated with a Workload Identity Token (WIT).  The WPT is a signed
   JWT that binds the workload's authentication to a specific HTTP
   request, providing application-level proof of possession for
   workload-to-workload communication.  This specification is designed
   to work alongside the WIT credential format defined in draft-ietf-
   wimse-workload-creds and can be combined with other WIMSE protocols
   in multi-hop call chains.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-wpt-00"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <date day="24" month="January" year="2026"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity and authorization context across workloads
   within a trusted domain during the processing of external requests,
   such as API calls.  They ensure that this context is preserved
   throughout the call chain, even when new transactions are initiated
   internally, thereby enhancing security and consistency in complex,
   multi-service architectures.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-07"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
      </references>
    </references>
    <?line 437?>

<section anchor="document-history">
      <name>Document History</name>
      <t><cref>RFC Editor: please remove before publication.</cref></t>
      <section anchor="draft-ietf-wimse-http-signature-02">
        <name>draft-ietf-wimse-http-signature-02</name>
        <ul spacing="normal">
          <li>
            <t>Add new <tt>Wimse-Audience</tt> HTTP header.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-http-signature-01">
        <name>draft-ietf-wimse-http-signature-01</name>
        <ul spacing="normal">
          <li>
            <t>Clarified response signing.</t>
          </li>
          <li>
            <t>Clarified signature vs. token lifetime.</t>
          </li>
          <li>
            <t>Added security goals.</t>
          </li>
          <li>
            <t>Added an Implementation Status section.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-http-signature-00">
        <name>draft-ietf-wimse-http-signature-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial version, extracted from the -07 draft with minimal edits.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-07">
        <name>draft-ietf-wimse-s2s-protocol-07</name>
        <ul spacing="normal">
          <li>
            <t>Rework the WPT's <tt>oth</tt> claim.</t>
          </li>
          <li>
            <t>Update the media types.</t>
          </li>
          <li>
            <t>Discuss extensibility of WIT and WPT.</t>
          </li>
          <li>
            <t>Clarify error handling, specifically why not HTTP 401.</t>
          </li>
          <li>
            <t>Correct the code examples.</t>
          </li>
          <li>
            <t>Add registration request content for a <tt>wimse</tt> URI scheme.</t>
          </li>
          <li>
            <t>New section on key management.</t>
          </li>
          <li>
            <t>Use of the <tt>Accept-Signature</tt> header.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-06">
        <name>draft-ietf-wimse-s2s-protocol-06</name>
        <ul spacing="normal">
          <li>
            <t>Explicit definition of the Workload Identity Certificate.</t>
          </li>
          <li>
            <t>Definition of the validation of workload identifiers as part of workload authentication. Still work in progress.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-05">
        <name>draft-ietf-wimse-s2s-protocol-05</name>
        <ul spacing="normal">
          <li>
            <t>Removed the entire Workload Identity section which is now covered in the Architecture document.</t>
          </li>
          <li>
            <t>Content-Digest is mandatory with HTTP-Sig.</t>
          </li>
          <li>
            <t>Some wording on extending the protocol beyond HTTP.</t>
          </li>
          <li>
            <t>IANA considerations.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-04">
        <name>draft-ietf-wimse-s2s-protocol-04</name>
        <ul spacing="normal">
          <li>
            <t>Require <tt>cnf.jwk.alg</tt> in WIT which restricts signature algorithm of WPT or HTTP-Sig.</t>
          </li>
          <li>
            <t>Replay protection as a <bcp14>SHOULD</bcp14> for both WPT and HTTP-Sig.</t>
          </li>
          <li>
            <t>Consolidate terminology with the Architecture draft.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-03">
        <name>draft-ietf-wimse-s2s-protocol-03</name>
        <ul spacing="normal">
          <li>
            <t>Consistently use "workload".</t>
          </li>
          <li>
            <t>Implement comments from the SPIFFE community.</t>
          </li>
          <li>
            <t>Make <tt>iss</tt> claim in WIT optional and add wording about its relation to key distribution.</t>
          </li>
          <li>
            <t>Remove <tt>iss</tt> claim from WPT.</t>
          </li>
          <li>
            <t>Make <tt>jti</tt> claim in WIT optional.</t>
          </li>
          <li>
            <t>Error handling for the application level methods.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-02">
        <name>draft-ietf-wimse-s2s-protocol-02</name>
        <ul spacing="normal">
          <li>
            <t>Coexistence with bearer tokens.</t>
          </li>
          <li>
            <t>Improve the architecture diagram.</t>
          </li>
          <li>
            <t>Some more ABNF.</t>
          </li>
          <li>
            <t>Clarified identifiers and URIs.</t>
          </li>
          <li>
            <t>Moved an author to acknowledgments.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-01">
        <name>draft-ietf-wimse-s2s-protocol-01</name>
        <ul spacing="normal">
          <li>
            <t>Addressed multiple comments from Pieter.</t>
          </li>
          <li>
            <t>Clarified WIMSE identity concepts, specifically "trust domain"
and "workload identifier".</t>
          </li>
          <li>
            <t>Much more detail around mTLS, including some normative language.</t>
          </li>
          <li>
            <t>WIT (the identity token) is now included in the WPT proof of possession.</t>
          </li>
          <li>
            <t>Added a section comparing the DPoP-inspired app-level security option to
the Message Signature-based alternative.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-00">
        <name>draft-ietf-wimse-s2s-protocol-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial WG draft, an exact copy of draft-sheffer-wimse-s2s-protocol-00</t>
          </li>
          <li>
            <t>Added this document history section</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="app-level-comparison">
      <name>Comparing the DPoP Inspired Option with Message Signatures</name>
      <t>The two workload protection options have different strengths and weaknesses regarding implementation
complexity, extensibility, and security.
Here is a summary of the main differences between
<xref target="I-D.ietf-wimse-wpt"/> and <xref target="http-sig-auth"/>.</t>
      <ul spacing="normal">
        <li>
          <t>The DPoP-inspired solution is less HTTP-specific, making it easier to adapt for
other protocols beyond HTTP. This flexibility is particularly valuable for
asynchronous communication scenarios, such as event-driven systems.</t>
        </li>
        <li>
          <t>Message Signatures, on the other hand, benefit from an existing HTTP-specific RFC with
some established implementations. This existing groundwork means that this option could
be simpler to deploy, to the extent such implementations are available and easily integrated.</t>
        </li>
        <li>
          <t>Given that the WIT (Workload Identity Token) is a type of JWT, the
DPoP-inspired approach that also uses JWT is less complex and technology-intensive than Message
Signatures. In contrast, Message Signatures introduce an additional layer of
technology, potentially increasing the complexity of the overall system.</t>
        </li>
        <li>
          <t>Message Signatures offer superior integrity protection, particularly by mitigating
message modification by middleboxes. See also <xref target="middleboxes"/>.</t>
        </li>
        <li>
          <t>A key advantage of Message Signatures is that they support response signing.
This opens up the possibility for future decisions about whether to make
response signing mandatory, allowing for flexibility in the specification
and/or in specific deployment scenarios.</t>
        </li>
        <li>
          <t>In general, Message Signatures provide greater flexibility compared to
the DPoP-inspired approach. Future versions of this draft (and subsequent implementations) can decide
whether specific aspects of message signing, such as coverage of particular fields,
should be mandatory or optional. Covering more fields will constrain the proof
so it cannot be easily reused in another context, which is often a security improvement. The DPoP inspired approach could
be designed to include extensibility to sign other fields, but this would make it closer to
trying to reinvent Message Signatures.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Pieter Kasselman for his detailed comments,
as well as Jason Costello, Maartje Eyskens and Radosław Piliszek for implementing this draft and sharing their learnings.</t>
      <t>We thank Daniel Feldman for his contributions to earlier versions of this document. We also thank Arndt Schwenkschuster and Brian Campbell who coauthored
the grand unified WIMSE Workload to Workload protocol draft.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
RXuMabIvq0UM0SMicxKUa5hMqSIF7Fs/wiw9vAQM56s8zcXtaZ0GM3rwjNT/
lTMrESzgF/JvyYQoZBs1UKxaF21KHILDJnFAjofAnqErLHN/tbqqVnZ8LG0h
EpMlS4mucYqBOpawEpeCS+c5z6ekIWwRIPsXyf7mFsp+hUQkixSzF8yapom4
nyMYCut1iCi5Jzj1LaeYFc1CzBtci1dey6vVNZz1XIRV0gOmMJckbYicKkiC
htv19XWjpC/FefNJKEgpE+3QxlGVsAGBNe9QTh7KRMflMGclWlbAEjPbglQ0
y+uEV6zOnTiX7BC1iShFiZjMwBw9Ua/zkYamx/Ly4KMD4fbY1TIJLqAb5Gw+
ip+CQ9XIi06Aiblx4hREIY+83uJhnnbGVSDvwVolkgwdwz6PfZNue96///1v
BQ699+QpVYPtrm2r2n6412nV6vgkSO/5yfrm5tpbfhbik0+PjdHg/fvbw/Wd
0Wyyv7vVeDNbzbLpQffu/CzrbX34o7Vzsn4VhQ99bjU01M7eBw2/AePLUzCD
4On5+wv+/oDfusON6cGn8Obu/eVOL+r5rz903qS3B+33l8f772evbg8/XLaP
P7eOekm/5n3DJXhP4DNiHd272i6v9UJC3e9hpG+LVEC/TohAlCt862oQrZzU
F2phtN57V/0HGX5/W/31y5e/KkoOTFMQXOwA5RCEUL3Zeruu5lp53uH+lXrZ
N6ORboB9gyafP/pXL/Lvk/TdPbB3FPk0hZdrzbVfvKMES7SECbAi6Rcv1xTb
iszHd9t68+A4jjtmdeqf/nlx9Wjv31++7R5OXr/9mAbJ5drHVK++jV51N14/
3Aw+/nlwdPfF+3JwdRkO399Fw2G8On4bfr7882J6Ntt50C/XBr3O8drm+c6H
d++2S+NxoMONulKTqG5N1ebiuTUpcMv9txqMB8+cmetCVByRrr34uwQj361t
ba1vvHn95s2rv4u/L4+21uBRDL1g5OBdze8G4Rr8U/t75vff1Z4P5tV+8apO
4bZy1W4lms5vxy/eM6Fk2InZ8aB7GJhzc3xwu3959aHTtu1RNr7dbb9uj6LH
YONTFJi19PbzEGZrTnaPV/XnFr6+4X/+AI5AuNqOV5vQzV13dGPOY2vgWdq+
G2+1Rwf2dgbdDD8NLw/Odtpmam42oJfj9fZdYi6vP8zOrj4+nJdHjM/Wb2Zr
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

-->

</rfc>
