<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rosomakho-wimse-tokentranslation-reqs-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title>Requirements for WIMSE Token Translation</title>
    <seriesInfo name="Internet-Draft" value="draft-rosomakho-wimse-tokentranslation-reqs-00"/>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <author initials="D." surname="Saxe" fullname="Dean H. Saxe">
      <organization>Amazon Web Services</organization>
      <address>
        <email>deansaxe@amazon.com</email>
      </address>
    </author>
    <author initials="D." surname="Izumskiy" fullname="Dmitry Izumskiy">
      <organization>Intuit</organization>
      <address>
        <email>idimaster@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="07"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>Token Translation</keyword>
    <keyword>Requirements</keyword>
    <abstract>
      <?line 42?>

<t>This document outlines the requirements for workload token translation within the context of the Workload Identity in Multi System Environments (WIMSE). Token translation may be required for interoperability between workloads or for complying with security requirements of multi-system environments. This requirement document considers various aspects of token translation, such as changes in token format, content encoding, cryptographic properties, and context embedding. Additionally, this document raises security considerations to be addressed by specific token translation implementations, including replay attacks, access control, and privacy concerns.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rosomakho-wimse-tokentranslation-reqs/"/>.
      </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/yaroslavros/wimse-tokentranslation-reqs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Inter-workload communications rely on tokens for identification, authentication and authorization. These tokens are available in various formats including Oauth 2.0 bearer tokens, X.509 certificates, SPIFFE JWT-SVID and many others. Some of these token formats have encoding variants, offer flexible cryptographic options to address confidentiality and integrity requirements and may embed additional contextual information in various formats. This document outlines the requirements for token translations that can apply within a given token format or across token formats and defines security considerations to be addressed by specific implementations of token translation.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="token-translation-requirements">
      <name>Token Translation Requirements</name>
      <t>Token translation involves transforming a token from one format or set of characteristics to another. The following requirements must be considered for effective token translation:</t>
      <section anchor="token-format-change">
        <name>Token Format Change</name>
        <t>The translation service must support converting tokens from one format to another (e.g., from Oauth 2.0 Bearer Token to X.509 client certificate).</t>
      </section>
      <section anchor="token-encoding-change">
        <name>Token Encoding Change</name>
        <t>Some token formats support multiple encodings of subject and context. Token translation process must support changes to these encodings were relevant.</t>
      </section>
      <section anchor="changes-to-cryptographic-properties-of-the-token">
        <name>Changes to Cryptographic Properties of the Token</name>
        <t>Some token format support various cryptographic algorithms for digital signatures, hashing and encryption. Specific cryptographic requirements can be defined by capabilities of communicating workloads and identity proxies, inherent security of communication channels and relevant regulatory compliance. Token translation process must facilitate changes in the relevant cryptographic algorithms.</t>
      </section>
      <section anchor="embedding-one-token-in-another">
        <name>Embedding One Token in Another</name>
        <t>Certain token formats have flexibility to embed another token in the same or different format. The translation service must enable such embedding to facilitate nested authentication or delegation.</t>
      </section>
      <section anchor="change-of-embedded-context-in-token">
        <name>Change of Embedded Context in Token</name>
        <t>The translation service must support modifications to the embedded context within a token including attestation and assertions.</t>
      </section>
      <section anchor="change-of-validity-constraint-of-the-token">
        <name>Change of Validity Constraint of the Token</name>
        <t>The translation service must allow changes to the validity constraints of a token, such as the expiration time, scope or audience.</t>
      </section>
      <section anchor="changing-or-adding-subjects-of-the-token">
        <name>Changing or Adding Subjects of the Token</name>
        <t>The translation service must support altering or adding subjects within the token to reflect different entities or roles.</t>
      </section>
      <section anchor="adding-sender-constraint-to-the-token">
        <name>Adding Sender Constraint to the Token</name>
        <t>The translation service must enable the addition of sender constraints to restrict who can use or forward the token.</t>
      </section>
    </section>
    <section anchor="token-translation-mechanisms">
      <name>Token Translation Mechanisms</name>
      <t>Token translation can be initiated by either the workload itself or an identity proxy. Multiple aspects of translation processes can occur simultaneously or be chained together to meet the needs of complex scenarios.
Translation can also be a subject of authorization restrictions in context of impersonation or delegation.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The following considerations must be addressed by the token translation process.</t>
      <section anchor="replay-attacks">
        <name>Replay attacks</name>
        <t>Token translation process must address concern of replay attacks to ensure that unauthorised parties cannot steal and reuse workload tokens.</t>
      </section>
      <section anchor="access-control">
        <name>Access control</name>
        <t>Token translation process must have relevant authentication and authorization mechanisms to ensure required level of access control.</t>
      </section>
      <section anchor="privilege-escalation">
        <name>Privilege Escalation</name>
        <t>Token translation process must provide required validation and comply to least privilege principles to prevent unauthorized privilege escalation through token translation.</t>
      </section>
      <section anchor="prevention-of-abuse-of-token-translation-service">
        <name>Prevention of Abuse of Token Translation Service</name>
        <t>Token translation process must consider protection of token translation service against denial of service and other abusing attacks.</t>
      </section>
      <section anchor="auditability">
        <name>Auditability</name>
        <t>Token translation process must support detailed logging options of all token translation activities to support auditing and forensic analysis.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>Token translation process performed for cross-domain use cases needs to consider generalization of identity to limit exposure of internal topology of a given domain. In addition to that, token translation process must consider confidentiality of sensitive information such as identity subject and context included in the token.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 149?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51Z3ZbbthG+51Og8k3Ss9LaqXua7EkTK/tTq8frdVfruG5P
LyByJKFLAgxASiv7+F36LH2yfgMQ/JHkrJsbrwgCMx/m55sZejweJ5WqcjoT
o1v6pVaWCtKVE0tjxbvZ9fxS3Jl70uLOSu1yWSmjR0kqK1oZuzsTSi9NkmQm
1bKAjMzKZTW2xplC3q/NeKsKR+OKJVSdgLGlX9z46dPE1YtCOYelalfi+Ozy
7kqIJ0LmzgCQ0hmVhH90NToRI8pUZaySOT/Mpj/hD0COZrd3V6NE18WC7FmS
AdpZkhrtSLvanYnK1pRszsQfEmlJQuq0LHOVeiBOSJ2JW5L5+E4VNEq2xt6v
rKlL7HuH37mRmZgxAFXtcFlxXeeVEvOdq6gQl3qjrNHeYKPknnY4np0lYnxo
M17s2zfZkK4BVIjfqk6IYDN/UOmV+AsL4vVCqhzr3vYvFFXLibErfiFtusaL
dVWV7uz0lPfxktrQJG475YXThTVbR6dewimfXKlqXS9wdifh3Fxu8O/przh3
lCSyrtbGemvgJnDE6P1E3MbIYKFCLOs8D4HzvpHb7fAbgEhq9cELPhP/cKnM
yfo3FG65a2PtxYfwdpKaoqf0YiLm8oH29V2Q1OJleHdE07SQH4wW72gh5mQ3
KiXX15rhtMPJF9LvO1Q5+1AX7l7tDtQWqrK79vURzTNd1arqK1OZKiQCwL5Y
8YJXlmhjC5zYIIQSzsHuKRmPx0IuHFySVklyt1ZOID9rDhth6ipXmpyo1iTs
fr5vYwh6n4qeU8UWAYB45GPIrYoeIGvpH/+/uBVfeVL5etKkSF9HIXdi0cLK
PCQFXdaUZOVC5Sx8QdWWcDBidcwBvBNmKfMdJwJjFY7S2vKBwS2BuWBoYxeg
UQ8aILGtevs7uzGfqIysExtplalBHK6kNEg8sNaJcHW6xhaRrqVewdxsOr8r
eOokGBGCSacmA2is2F1ZmZWV5VqlovSXrhS5E89R0egElsv4wERM8Ze1yTzf
ncAVfT9bqRzUtkaI+BvWqwwbWmaZJedg6cVO8HXUEpoPfa9gWG+PcPoEt0nz
mkHAWGUOr8mqkuk9Q02RKc6jtSYP0EurNjL1GFKy2k2aGC1UluWUJE845q3J
6tQTZTJjl4/bWIRfi1q3hG0p3wnTmDOErfKBt2y2QCmYh1fCs8cQyKhJMnY0
OYoiUBaE3DAXLnJiT0UXB1+53nVvWI74ZvIU5sMx24g4EX+f/PHpdyJlj3kc
7Lb5m9nV1aX467u78fzn2YXHUUgN9IBnEW5zU1CTRRFNq3MtN9QGh0ckEaIo
eMsl1C5zelCMdhg0pmzd2/iWjb4M9pE+fRgE59TqMDcCvl0IMRbQRFeMvRo/
W6rhsDiwVJNBX8g2B4HG+yRyDcwsUaN3kXQkys+GhhnEWS9TkL/bMxzfIqOl
V/tbwn8v2I/m94SD9tzoDds1dhEXrNSbzDHrkkA/wCwFhhpdv53fcdPCf8Xr
G//79vJvb2e3lxf8e/5y+upV+yNpdsxf3rx9ddH96k6e31xfX76+CIexKgZL
yeh6+n4Ukm908+ZudvN6+mrkOWjgHg78YArPsqWlih3vkoxcahVHAc78dP7m
v/959lx8/Pi726vzb549++7Tp+bh22d/eo6HLbItaDOaveYf4fJdAjciT1gK
SAqOLVWF1u6EmdGtzVYLJALBmr//J1vmX2fi+0VaPnv+Q7PAFx4sRpsNFr3N
DlcODgcjHlk6oqa15mB9z9JDvNP3g+do997i9z9yNojxs29//CHhEDroEoct
YnJYIpXemHzDGcWLHPNMDzLmgDUFfEC9HHHkCzXqELcDZJUDLwaG0J6HPBni
QJ6bbWD0XpoWtas4PmL+NEWZQEIptxuHqYEG5Em82FVAce5rYMiJ/l1caKyC
EleXpbG+0G6YRYEkMvzepTro4iuarCYnYUdHzT8Fam6MZyI358oX8o6iv570
sF5Gqo1oPTkPqSVi9B0EWKLlZ88SmGX+Dav0q/WxJgeF3ZfI4a2bNgFoQzHo
JG9hdS56tEEBCIjPu93nA/5/0zYNsTnz+o9cptUcGXxYSGSO6Q7kWwSmztSK
E1c4tdKyqi1Xt7V0ax97uC7Q8nFfWueRSIcSB2HFDI+oCjTt6RfUEBq8Bnuv
6HND1/Z6vnzFPhOmfPANktLMI/BuS/hDETA7W1hTHiREc+LHqoZfMMmG9hFF
NqVHvbaUKUNFCA36u3Xnp8+aMzjwMjZx4kY3PmIJ0xDWSXIOJ8q9lrFpCULl
D60w/N/U6iYfqiiJsTjJ3QU7j1sGtk4QFBL+s4lI2rdBvoFtm01W1bs1aquv
FMM+i3Xh/qu2RMZIZW+EK+PQedPIAmUTnF/ECwXSYdk2gSFPGnzUdcdtwxAt
ERs3NKjA3OsHUfetl7UP9Gf0SRlbF0B5hlK62kumX8UrmUf38hlJ1shMW5k+
yhuc3bjgL/VQqtCoiEoVhJcpstr3O7gLcYB2kPlueDMNXpoHCtrP/i8ysMy5
OgRxMohzUVxv+Ksiq1pCKILuuvDyWenz1wo0/9SYNmLj7zi2b9XGOF8CsglK
3h77Uk+5QWbfqh4ZnhSgbdfGU03tqBkSt9Jm3TUmx2vwNbH7lCuOVuCGu3yr
J6vAXqRC+kFwO7aoylG+9NbUQ8raTcJ4zBWkP0Ue0g0FqjQpWA3ky3VHagJd
8whkfWFeS0+h4BpqKEAUhJrPWDRRFtkUyh4QSTAk+B6eudu7En9x801xW8c4
PvtTU2tXn4EIh953ADTNmGgwLBwnAji/4eXzQSMevN71Hntteuw+Bo16LwgP
DRYi7nYwlB5z4oDOe6MSz6d8n+FY64lWu5rbZR5Qat0YhiGVMhRcGBEsLECM
KJShyHDcDT+pxJQYTMmPAvTE35aWx6Zb+D/Gbw94+1EFUij3zh2ACMDeYFRX
8ByJS/6YFr5cPgYPDxt4rVPh6a5DFz7MMJacpN8fleCXTjkPPFLMHzxQdeb9
QFlvM7WI4AVr6tX6+GDGt6BmMuN7Thc+/5dHMr35tPfoDWNc8mpFaZR8GIaR
tOQKaYmDSHvM3YGqmjc8JflMlcDVlCYOsiYyQPFV86nrUViRujNCt5Czb80q
VISynV157jrEKbl7D2QNw7clgJXHng5sidDh5kXLfOeU6yKEP+YcJPJnoYIZ
uPFoRgc/so8zU3B/w45JJdNcoCpgaU29Ig3peQxqJplIohxJqlAVl0rjo5vf
8gjLXysqUxoYYhcKbPhyEPRNxEx39cOXH/4U91k22XP+/qeUUICc8oNQ/8NI
rOYt4COjQdObhBF7WJFm09fTI0TZn9zRfAttwk6Zxj7Gf1VbIJhYyjS912aL
qFiFYfLjWfgfEsr+PFqC7Wn0CVJvLm4gIO5EZ/E/Z1P4BRAaAAA=

-->

</rfc>
