<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-http-signature-00" 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-00"/>
    <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="2025" month="November" day="02"/>
    <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>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>
      <t>Either client or server <bcp14>MAY</bcp14> send an <tt>Accept-Signature</tt> header, but is not required to do so. When this header is sent, it <bcp14>MUST</bcp14> include the header components listed above.</t>
      <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="security-considerations">
      <name>Security Considerations</name>
      <t>This section includes security considerations that are specific to the HTTP Signature protocol defined here. Refer to
<cref>Security Considerations section of</cref> <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="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>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </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="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>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-wimse-wpt">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </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 324?>

<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-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.</t>
      <t>We thank Daniel Feldman for his contributions to earlier versions of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
OA1J77o+yRTruiIip1O/I70DKiCQcF0xjssLCgspdxLbDaDYKeMFwXgQ7oVY
KRUmvTBQZ7BrBTeV93pEkHknFyv44K4xQuuGE6FTz0YUwR7BBXo2MaMnio04
WLbrJoAFSWSZaniCX9MK8AKHTRCTyY1crXUAPcQVXXsIZkAjV1gZpjobRw8L
FBA7s/GY9GjfCFun3xBhqRAOPsILp3TCBPbCfazQw0sgC87SOpgeT3RKLPnB
swC1EQId6VJE7BBLyV+Sr86iDUyEA1a/aFJlERyASRR0fAWsRddq9r5erbJ3
exyPqshe31OMjZUwCOxBO7SjTqd20UU4Vl5knwZ1swj6D0Llja3v31dYgUUe
spOSeqO80yg07mwES+H5GzEl9SxTrnQNmtEu4CNKEGlx8rSsV2u467kUzNQP
MO1JonGohK0rotoZNcWA7ObmppzLr4wz4KTsVNPHVIqqcKwQhjhIgZZQyh6u
TSWXBxWi79QAjNtIugq5HsQ2Wqvk6YRXlEidgq2GGGxDW6NKTSxhj45xYPOR
S8XR9vLEETitjO3ZpIkJMWi0oQslWADQ5fQQCZRYDzZ1aYK/fPKWe5jWpZEK
1D2g1aSaMDHIecxlBIHNP//5TwYBgvPiMFYCcZd2WanhHbTrpRV84kYT/WR1
Y6O2o595+OSkdXz5rC63pk/HPf644a33Lk+2w4Ozo8FG++Sutu+eH6yux0m4
OlV61FDSODVxy7wM65un8Qyfnn++0N+f8Nvz5/OrYX1THu6tlb3hwcnR5rAb
DKblja0vt+fHvNxs7NzefPHKR3Gr5HxHEpyXXUbn4p9K+5rWC5MLf4aVvi9y
AdNhwwTiXOari0F5vupvuIU66Hwq/kGFb+yyv3/9O6PiwTQCu8XxaIZgg2x7
a2eVzQ365DhHjQ772JejkShLV2B8xUd/9Hw+CaNPE1Bv3+e0hY+1Su2Ncxzi
katRAjxhfOOkHmCXUXzyabdbG15uTQ7vrtsDb+eyvb0aPkYX9dnqoN6XzW/t
xsFqtXt7+zg93nxSwe3xYTX66nRXT7bPRdPrxu1kfHmtxPN28/zb5SS8O7rg
N5+Trc39/qdPu7nldNxkF31XMkliiZXm0kN4koaPOrr96kCuRuls6f1vJpP5
VNvarG1v7GxXt34zCY1+tFmtwSMKUz6VeNf1avCn9FvMvzr9T6XXE4HSG+eV
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
qJBpmvufBXEIK+hKAAA=

-->

</rfc>
