<?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.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-http-signature-01" 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-01"/>
    <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="January" day="08"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>workload</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 39?>

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

<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>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="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": "JMHQzsQ7wxHfaj5d4fQJ8oDNGh5SJY1CcOD24tuo2ws",
  "kid": "svc-a-key",
  "kty": "OKP",
  "x": "zKORkA6iFB3-dkDJG6kbnhw-57VXOHa-IE9XWVd-GtM"
}
]]></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=:b1kQ7vFYUShd9QS82ojrPAy2hAgiIqSED20bXXjwH6xsnXHF0r\
b2J8OeIdbtSupQUsez8IOqQvoYGPaWKu76Cg==:
Signature-Input: wimse=("@method" "@request-target" "workload-identi\
ty-token");created=1761859807;expires=1761860107;nonce="abcd1111";ta\
g="wimse-workload-to-workload"
Workload-Identity-Token: eyJhbGciOiJFZERTQSIsImtpZCI6Imlzc3Vlci1rZXk\
iLCJ0eXAiOiJ3aXQrand0In0.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J\
2IjoiRWQyNTUxOSIsImtpZCI6InN2Yy1hLWtleSIsImt0eSI6Ik9LUCIsIngiOiJ6S09\
Sa0E2aUZCMy1ka0RKRzZrYm5ody01N1ZYT0hhLUlFOVhXVmQtR3RNIn19LCJleHAiOjE\
3NjE4NjAxMDcsImlhdCI6MTc2MTg1OTgwNywiaXNzIjoiaHR0cHM6Ly9leGFtcGxlLmN\
vbS9pc3N1ZXIiLCJqdGkiOiJ3aXQtMTc2MTg1OTgwNzM0NTQ3ODAwMCIsInN1YiI6Ind\
pbXNlOi8vZXhhbXBsZS5jb20vc3ZjQSJ9.KxXGBK2YWhy8XT1tB9Z9sZscn2fb4OHDNz\
2S8mhP8fGK0mCw6yK4lv9wRqO3hnAXWJEzWuWRHpVQO8_82t_IBA

]]></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": "u1DH-EPbCxpzi1LLJHtsLGZ6_4lvKsUgFHRNYOo5Mx8",
  "kid": "svc-b-key",
  "kty": "OKP",
  "x": "8zj0S94HAaaQ0kKPhts0UdothtSTjZDX7jYC5zdLsX4"
}
]]></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=:cQiWDdhftD/qYu22pMUxvdqHPxo7IjOaTQ54UxZ5nvXq6Yj7Mv\
avAW8sGJjXNlPXwqvBc1vy0wtOvS6Q5zdVDQ==:
Signature-Input: wimse=("@status" "workload-identity-token" "content\
-type" "content-digest" "@method";req "@request-target";req);created\
=1761859807;expires=1761860109;nonce="abcd2222";tag="wimse-workload-\
to-workload"
Workload-Identity-Token: eyJhbGciOiJFZERTQSIsImtpZCI6Imlzc3Vlci1rZXk\
iLCJ0eXAiOiJ3aXQrand0In0.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J\
2IjoiRWQyNTUxOSIsImtpZCI6InN2Yy1iLWtleSIsImt0eSI6Ik9LUCIsIngiOiI4emo\
wUzk0SEFhYVEwa0tQaHRzMFVkb3RodFNUalpEWDdqWUM1emRMc1g0In19LCJleHAiOjE\
3NjE4NjAxMDksImlhdCI6MTc2MTg1OTgwOSwiaXNzIjoiaHR0cHM6Ly9leGFtcGxlLmN\
vbS9pc3N1ZXIiLCJqdGkiOiJ3aXQtMTc2MTg1OTgwNzM0NTcwMjAwMCIsInN1YiI6Ind\
pbXNlOi8vZXhhbXBsZS5jb20vc3ZjQiJ9.1Z10zR2hYWXuVwBeJDx965agbLf_V8o2Ac\
SKiyayqGQMAEZNyRm1wrSvDmm6Ha6EJW3-1rhF0C10R-usSUYtAQ

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 both are not 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 messages 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 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 transactions 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>
      <t>This document does not include any IANA considerations.</t>
    </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="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="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>SPIRL</organization>
            </author>
            <date day="28" month="July" year="2025"/>
            <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
   programmatic 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-06"/>
        </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 410?>

<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-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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
LO0Fu53WUg2f+OmYn6ysrze3+FmAT45ODi++6Yv3k+fDnnxcD9Z6F0ebye7p
wWC9c3TX3PHPdlfWsjxZmWhu9RRSOz3267IO45un2RSfnn065+/P+O3bp7PL
p9ZGuP9xtR487R4dbDx148Gkvv7+8+3Zoay397Zubz4H9YPsZMn7C5fgvYAl
jNU5H5Z2eK3nJiL3CUb6a54KaK0aIhDlCo+hGhoo5x4NtZAHvQ/VP8jwe9vi
b1/+JiiEOUlBbrE9iiHIoNh8v7UiZhp98LyDvSvxrh8Oh6oO9g16eXL4Ry+S
4yT9MAb2jiJJU3jXbDR/8Q4TLPwwTIB1Dr94TlNsC/KSPmx3m08X78f7d9ed
QbB10dlcSR7T89Z0ZdDqh+2vnb3dleXu7e3j5HDjWce3h/vL6Revu3K0eaba
QTfr5KOLa62+bbbPvl6Mk7uDc3nzKX+/sdP/8GG7NBx7b3bQN0smVLUklmaC
VPDEObHsY3/xsikH1Zbe/sPEUz403280N9e3Npff/8O4LPxoY7kJj8hZ+rAk
u37QhD9L/8jkF6//Yen1cMTSL94rcS0g4PRo0D3ww7PwaP9+7/LqotPW7WE2
ut9pb7SH0Td/9XPkh830/vbpixce7xwtq9sWvr0qby9S4JbldrzcgF4eu8O7
8CzWITxL24+j9+3hvr6fQi9Pn58u908/tsNJeLd69MVbaT8m4eXNxfT06vr5
rDxefLpyN20Ojm+Aefn5MvwLPWwdX+/A97iPI290lre+eB25vLcir+93TqbN
J7l8+eny2316N1xPguly87R5f3e1PBgcX0f7Z58Ht5+HF9nl6uVpO25uwRoi
dQhreNz74q2ePu6tnT62nk92fRgvGgQwj5Mrf+Xkqt88u+pPTqeTUN6efsM5
y8PLZf/wZON4uhWpg/3MP3iOjoenX7xxt7M18ldh1Ns20uhrcPBkaZRVevt2
snx6dbF6ttuanNCKTpt3Ia48+OKNuren0Vm4Ob6/HQy6tx/1fWf9sbuyPPZX
7x8vOkdbjU/PtwcfP63c3Qymm7dXzezj1v2Wvtd+vNLrrp0d7p5+A+p2NoeD
883ewafl4c5kY/ppLRpvTS6/nq0O4tbtzdHet5v85vJw9PnibPNfmyvZv9of
W794M7jRYeQ0uIyY0dI6H7LlYpWkTRR0FYVyEVACctWqqPF/Dq95c/ewvnfe
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
mMxN2WTjMm32Pf8XYxTBdvJhAAA=

-->

</rfc>
