<?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.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-http-signature-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.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-03"/>
    <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="April" day="07"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>workload</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 40?>

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

<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>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>For requests only, the following signature parameter <bcp14>MUST</bcp14> also be included:</t>
      <ul spacing="normal">
        <li>
          <t><tt>wimse-aud</tt> (<xref target="wimse-aud-param"/>)</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-aud-param">
        <name>The <tt>wimse-aud</tt> Signature Parameter</name>
        <t><xref target="RFC9421"/> defines signature parameters for HTTP message signatures: metadata carried in the <tt>Signature-Input</tt> field
alongside the covered components. That metadata is covered by the signature as the <tt>@signature-params</tt> component value
(Section 2.3 of <xref target="RFC9421"/>), which is always the last line of the signature base.</t>
        <t>This document defines the <tt>wimse-aud</tt> signature metadata parameter for requests. Using a signature parameter carries the audience explicitly in <tt>Signature-Input</tt>.</t>
        <t>The default value for <tt>wimse-aud</tt> is the request's HTTP target URI (<xref section="7.1" sectionFormat="of" target="RFC9110"/>), without query or fragment components.
Senders, recipients, and intermediaries do not always derive the same string for that URI: normalization and rewriting differ by implementation and hop, so the audience that verification should use is a deployment-specific choice.
When the default string is not suitable for verification at the recipient, senders <bcp14>SHOULD</bcp14> set <tt>wimse-aud</tt> to an explicit audience value as appropriate for that deployment.</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": "y1t3DufG7BOgsOO7hl7M3uNvVNjVlZfat-8KPF5nHi8",
  "kid": "svc-a-key",
  "kty": "OKP",
  "x": "CSsepXyWea5m-nNTfjnHaRfLodpY1gPSPtai1xJ-qJ0"
}
]]></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: svcb.example.com
Signature: wimse=:6QjBIpZW1lUZ64dQTOs4oiMBp4wH1Xzjo/iGa1XtrT9BGG2a0p\
MQXddNQ3M2wHE9q+FnxnL86HPtYVQ2fYTTDg==:
Signature-Input: wimse=("@method" "@request-target" "workload-identi\
ty-token");created=1774809014;expires=1774809314;nonce="abcd1111";ta\
g="wimse-workload-to-workload";wimse-aud="https://svcb.example.com/g\
imme-ice-cream"
Workload-Identity-Token: eyJhbGciOiJFZERTQSIsImtpZCI6Imlzc3Vlci1rZXk\
iLCJ0eXAiOiJ3aXQrand0In0.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J\
2IjoiRWQyNTUxOSIsImtpZCI6InN2Yy1hLWtleSIsImt0eSI6Ik9LUCIsIngiOiJDU3N\
lcFh5V2VhNW0tbk5UZmpuSGFSZkxvZHBZMWdQU1B0YWkxeEotcUowIn19LCJleHAiOjE\
3NzQ4MDkzMTQsImlhdCI6MTc3NDgwOTAxNCwiaXNzIjoiaHR0cHM6Ly9leGFtcGxlLmN\
vbS9pc3N1ZXIiLCJqdGkiOiJ3aXQtMTc3NDgwOTAxNDA4OTM3MjAwMCIsInN1YiI6Ind\
pbXNlOi8vZXhhbXBsZS5jb20vc3ZjQSJ9.UwMa_iVUp-0lbNLjWZMItulNEzFlfx_jCC\
sWdd-7Cx8fN87ldxamCiESXSMR2u1H17OInKBULCNLZjkfZdSiBw

]]></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": "FYS8IsAD74dDpTYu88MX5XFQP4JYNYiRDIkEplk4DW0",
  "kid": "svc-b-key",
  "kty": "OKP",
  "x": "oKbIElQedC-yvw01avHZsh2Vg6CnSV5Pw6wnYZEJazM"
}
]]></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=:Zpr07vUQEC8jNyLXUTiIXu2popQiodPBSeejjg6hl+C/0l/iNA\
DbJUMKTbDHs3sFiL/Su2cmPMUg1hWHT262Aw==:
Signature-Input: wimse=("@status" "workload-identity-token" "content\
-type" "content-digest" "@method";req "@request-target";req);created\
=1774809014;expires=1774809316;nonce="abcd2222";tag="wimse-workload-\
to-workload"
Workload-Identity-Token: eyJhbGciOiJFZERTQSIsImtpZCI6Imlzc3Vlci1rZXk\
iLCJ0eXAiOiJ3aXQrand0In0.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J\
2IjoiRWQyNTUxOSIsImtpZCI6InN2Yy1iLWtleSIsImt0eSI6Ik9LUCIsIngiOiJvS2J\
JRWxRZWRDLXl2dzAxYXZIWnNoMlZnNkNuU1Y1UHc2d25ZWkVKYXpNIn19LCJleHAiOjE\
3NzQ4MDkzMTYsImlhdCI6MTc3NDgwOTAxNiwiaXNzIjoiaHR0cHM6Ly9leGFtcGxlLmN\
vbS9pc3N1ZXIiLCJqdGkiOiJ3aXQtMTc3NDgwOTAxNDA4OTQ4MDAwMCIsInN1YiI6Ind\
pbXNlOi8vZXhhbXBsZS5jb20vc3ZjQiJ9.fVgW-ieLNhaY59p9OaTEetDtLzbuwnwRe0\
Uw-yz1xTZAgrj1SzAinGN3QbdfpE72gCTc2aH3D_LavdQuMUMHDg

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 derived components listed in <xref target="http-sig-auth"/>, the signature parameters
(including <tt>wimse-aud</tt> on requests) as covered by <tt>@signature-params</tt> in <xref target="RFC9421"/>, and
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="http-signature-metadata-parameters-registration">
        <name>HTTP Signature Metadata Parameters Registration</name>
        <t>IANA is requested to register the following entry in the "HTTP Signature Metadata Parameters" registry <xref target="IANA.HTTP.MESSAGE.SIGNATURE"/>, per the registration template in Section 6.3.1 of <xref target="RFC9421"/>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>wimse-aud</tt>, per <xref target="iana-wimse-aud-param"/>.</t>
          </li>
        </ul>
        <section anchor="iana-wimse-aud-param">
          <name><tt>wimse-aud</tt></name>
          <ul spacing="normal">
            <li>
              <t>Name: <tt>wimse-aud</tt></t>
            </li>
            <li>
              <t>Description: the WIMSE message audience. Request signatures only; binds the HTTP message signature to the intended recipient.</t>
            </li>
            <li>
              <t>Reference: RFC XXX, <xref target="wimse-aud-param"/>.</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="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="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="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="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="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.MESSAGE.SIGNATURE" target="https://www.iana.org/assignments/http-message-signature/http-message-signature.xhtml#signature-metadata-parameters">
          <front>
            <title>HTTP Message Signature</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </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="2" month="March" year="2026"/>
            <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
   software executing for a specific purpose, potentially comprising one
   or more running instances.  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-07"/>
        </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="2" month="March" year="2026"/>
            <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-01"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>CrowdStrike</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="2" month="March" year="2026"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity, workload identity and authorization context
   throughout the Call Chain within a trusted domain during the
   processing of external requests (e.g. such as API calls) or requests
   initiated internally within the trust domain.  Txn-Tokens ensure that
   this context is preserved throughout the Call Chain thereby enhancing
   security and consistency in complex, multi-service architectures.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-08"/>
        </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 441?>

<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-03">
        <name>draft-ietf-wimse-http-signature-03</name>
        <ul spacing="normal">
          <li>
            <t>Replace <tt>Wimse-Audience</tt> HTTP header with the <tt>wimse-aud</tt> signature metadata parameter (<xref target="RFC9421"/>); register with IANA (HTTP Signature Metadata Parameters). Non-normative request example updated accordingly; the <tt>Signature</tt> value was not regenerated (see issue tracker).</t>
          </li>
        </ul>
      </section>
      <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 (superseded by <tt>wimse-aud</tt> in -03).</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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

-->

</rfc>
