<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-clayton-dkim-canmodify-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DKIM2 CanModify">Permitted modifications to DKIM2 messages</title>

    <author initials="R." surname="Clayton" fullname="Richard Clayton">
      <organization>Yahoo</organization>
      <address>
        <email>rclayton@yahooinc.com</email>
      </address>
    </author>

    <date year="2026" month="November" day="02"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 31?>

<t>DomainKeys Identified Mail v2 (DKIM2) requires any modifications made
to email messages by intermediaries to be recorded in "recipes".
Some originators wish to request that only very limited modifications be
made to their messages so that the recipient of the message can have some
assurance that the modifications were benign. This document introduces the
CanModify header field into which originator requests may be placed. It
then sets out a small set of modifications that are commonly applied
by intermediaries and assesses how benign they may actually be.</t>



    </abstract>



  </front>

  <middle>


<?line 42?>

<section anchor="introduction"><name>Introduction</name>

<t>DomainKeys Identified Mail v2 (DKIM2) requires any modifications made
to email messages by intermediaries to be recorded in "recipes"
(see <xref target="DKIM2SPEC"></xref>).
Some originators wish to request that only very limited modifications be
made to their messages so that the recipient of the message can have some
assurance that the modifications were benign.</t>

</section>
<section anchor="terminology-and-definitions"><name>Terminology 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?>

<t>DKIM2 is designed to operate within the Internet Mail service, as
defined in <xref target="RFC5598"></xref>.  Basic email terminology is taken from that
specification.</t>

<t>Syntax descriptions use Augmented BNF (ABNF) <xref target="RFC5234"></xref>, together with
the %s"..." notation for case-sensitive strings defined in <xref target="RFC7405"></xref>.</t>

<section anchor="whitespace"><name>Whitespace</name>

<t>There are two forms of whitespace used in this specification:</t>

<t><list style="symbols">
  <t>WSP represents simple whitespace, i.e. a space or a tab character
(formal definition in <xref target="RFC5234"></xref>).</t>
  <t>FWS is folding whitespace.  It allows multiple lines separated by
CRLF followed by at least one whitespace, to be joined.</t>
</list></t>

<t>The formal ABNF for these are (WSP given for information only):</t>

<figure><artwork><![CDATA[
WSP =   SP / HTAB
FWS =   [*WSP CRLF] 1*WSP
]]></artwork></figure>

<t>The definition of FWS is identical to that in <xref target="RFC5322"></xref> except for
the exclusion of obs-FWS.</t>

<t>Other tokens not defined herein are imported from <xref target="RFC5234"></xref>.  These
are intuitive primitives such as SP, HTAB, WSP, ALPHA, DIGIT, CRLF,
etc.</t>

</section>
</section>
<section anchor="the-canmodify-header-field"><name>The CanModify header field</name>

<t>A CanModify header field holds a comma-separated list of types
of modification that an email originator is content that intermediaries
can do to a message. Types can appear in any order, and <bcp14>SHOULD</bcp14> only
appear once. Unrecognized types are ignored.</t>

<t>The request is not valid if a message contains more than one CanModify
header field or the CanModify header field is not in conformance with this
specification.</t>

<t>The request is not valid if the current CanModify header field in the
message is not identical to any CanModify header field covered by the
i= DKIM2-Signature header field (viz it was not added at origination, or
has been added, removed or modified since). Alterations will be
apparent from inspecting the DKIM2 header recipes in the message.</t>

<t>The request is not valid if a message is not a Fully Verified DKIM2
Message (see <xref target="DKIM2SPEC"></xref> for how this is determined).</t>

<t>An absence of a CanModify header field means that no originator request
is being made. If the request is for no modifications whatsoever then use
"CanModify: none".</t>

<t>It is entirely a matter of local policy whether or not a receiver (or an
intermediary) takes any notice of requests, what it does when it can
determine that another system has modified the message in a way that
an originator has not permitted, and what action is taken
when there is an invalid request in the message.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
cm-field     = "CanModify:" [FWS] cm-request
               *( [FWS] "," [FWS] cm-request )
cm-request   = %s"none" / %s"bodywrap" / %s"subjectprefix" /
               %s"alterfrom" / x-cm-request
x-cm-request = 1*( ALPHA / DIGIT / "-" / "_" ) ; for future additions
]]></artwork></figure>

<section anchor="the-none-modification-request"><name>The "none" modification request</name>

<t>If used, "none" <bcp14>MUST</bcp14> be the only request made. It expresses a request by an
email originator for no modifications to be made to a message.</t>

</section>
<section anchor="the-bodywrap-modification"><name>The "bodywrap" modification</name>

<t>If used, "bodywrap" indicates that the originator is content for the original
message to be delivered as MIME part, optionally preceded or succeeded by
other MIME parts that provide headers or footers.</t>

<t>This is a benign change provided that the "header" and "footer" contain
simple text and URLs. A later version of this document will try and
tie this down more precisely.</t>

</section>
<section anchor="the-subjectprefix-modification"><name>The "subjectprefix" modification</name>

<t>If used, "subjectprefix" indicates that the originator is content for the
Subject header field of the original message to be preceded by up
to 32 ASCII characters (e.g. "<spanx style="verb">[EXTERNAL]</spanx>" or "<spanx style="verb">[MAILINGLISTNAME]</spanx>").</t>

<t>This is a benign change provided that the receiver is viewing enough
characters from the original Subject header field to comprehend
what it originally said, and that important semantic information
does not appear towards the end of the Subject header field.</t>

</section>
<section anchor="the-alterfrom-modification"><name>The "alterfrom" modification</name>

<t>If used, "alterfrom" indicates that the originator is content for the From
header field of the original message to be replaced by a different
From header field.</t>

<t>This is benign if the receiver displays the original From header field,
and because DKIM2 insists that From header fields are Authentic there
are limits as to how inventive an intermediary could be in misleading
a recipient.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>TBA</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>DKIM2 will sign the CanModify header field so it cannot be removed
or modified without leaving evidence of this having occurred.</t>

<t>The CanModify merely specifies a request by a message originator.
Receivers are free to determine what to do if this request cannot
be honored, or it is found that an intermediary has not honored it.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC5234">
  <front>
    <title>Augmented BNF for Syntax Specifications: ABNF</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="P. Overell" initials="P." surname="Overell"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="68"/>
  <seriesInfo name="RFC" value="5234"/>
  <seriesInfo name="DOI" value="10.17487/RFC5234"/>
</reference>
<reference anchor="RFC5322">
  <front>
    <title>Internet Message Format</title>
    <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
    <date month="October" year="2008"/>
    <abstract>
      <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5322"/>
  <seriesInfo name="DOI" value="10.17487/RFC5322"/>
</reference>
<reference anchor="RFC7405">
  <front>
    <title>Case-Sensitive String Support in ABNF</title>
    <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
    <date month="December" year="2014"/>
    <abstract>
      <t>This document extends the base definition of ABNF (Augmented
Backus-Naur Form) to include a way to specify US-ASCII string literals
that are matched in a case-sensitive manner.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="68"/>
  <seriesInfo name="RFC" value="7405"/>
  <seriesInfo name="DOI" value="10.17487/RFC7405"/>
</reference>

<reference anchor="DKIM2SPEC">
   <front>
      <title>DomainKeys Identified Mail Signatures v2 (DKIM2)</title>
      <author fullname="Richard Clayton" initials="R." surname="Clayton">
         <organization>Yahoo</organization>
      </author>
      <author fullname="Wei Chuang" initials="W." surname="Chuang">
         <organization>Google</organization>
      </author>
      <author fullname="Bron Gondwana" initials="B." surname="Gondwana">
         <organization>Fastmail Pty Ltd</organization>
      </author>
      <date day="1" month="November" year="2026"/>
      <abstract>
	 <t>   DomainKeys Identified Mail v2 (DKIM2) permits the owner of a signing
   domain to document that they have handled an email message by
   associating their domain with the message.  This is achieved by
   providing a hash value that has been calculated on the current
   contents of the message and then applying a cryptographic signature
   that covers the hash values and other details about the transmission
   of the message.  Verification is performed by querying an entry
   within the signing domain&#x27;s DNS space to retrieve an appropriate
   public key.  As a message is transferred from author to recipient,
   systems that alter the body or header fields will provide details of
   their changes and calculate new hash values.  Further signatures will
   be added to provide a &quot;chain&quot; that receivers can validate.  This
   permits verifiers to identify the nature of changes made by
   intermediaries and apply a reputation to the systems that made
   changes.  DKIM2 also allows recipients to detect when messages have
   been unexpectedly &quot;replayed&quot; and will ensure that Delivery Status
   Notifications are only sent to entities that were involved in the
   transmission of a message.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dkim-dkim2-spec-09"/>
   
</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>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC5598">
  <front>
    <title>Internet Mail Architecture</title>
    <author fullname="D. Crocker" initials="D." surname="Crocker"/>
    <date month="July" year="2009"/>
    <abstract>
      <t>Over its thirty-five-year history, Internet Mail has changed significantly in scale and complexity, as it has become a global infrastructure service. These changes have been evolutionary, rather than revolutionary, reflecting a strong desire to preserve both its installed base and its usefulness. To collaborate productively on this large and complex system, all participants need to work from a common view of it and use a common language to describe its components and the interactions among them. But the many differences in perspective currently make it difficult to know exactly what another participant means. To serve as the necessary common frame of reference, this document describes the enhanced Internet Mail architecture, reflecting the current service. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5598"/>
  <seriesInfo name="DOI" value="10.17487/RFC5598"/>
</reference>



    </references>

</references>


<?line 192?>

<section numbered="false" anchor="changes-from-earlier-versions"><name>Changes from Earlier Versions</name>

<t>RFC Editor: please remove this section before publication.</t>

<section numbered="false" anchor="draft-clayton-dkim-canmodify-00"><name>draft-clayton-dkim-canmodify-00</name>

<t><list style="symbols">
  <t>Initial version.</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9VZ7XIbtxX9j+lDoPR0RvKQrCU7E4eNk9L6iDmRZFWU42Y0
mgTcBUnEuwtmgSXNZPwufZY+Wc+9wC6XpNTW/1qNx+JiAdyvc+89l+r1esIb
n+mBvNZlbrzXqcxtaqYmUd7Ywklv5en3o8tjmWvn1Ew7oSaTUi8HcflEFZd0
YC1SmxQqx1Vpqaa+l2Rq7W3RSz+YvJeogq9d9549E66a5MY5XH+7XmD/6Oz2
XBRVPtHlQKTK64FYDgQU0DNbrgfS+VSYRTmQvqycP3727Ktnx+KDXq9smeJ0
4XVZaN87JbHCeVWkP6nMFrh5DXUXZiDvvE260tnSl3rq8Gmd04d7IVTl5xZi
ZU9I/JjCDeRNX54E5XktGHVjkrkq0603tpwN5I9qbi0/6lyZbCDLaPlf1/TG
FEk/sbkQhS1z+HQJ62jzzfnJF8fPX2wenh8fNw9fvnj2RXhgJ4+vz05gaO+0
b7SfBo/Sf8c9t9CJEKaY7l/+xVcvB0L0ej2pJs6XKvFCnFqoWHyv106OUl14
xBkBv4TacnksD1jYoSz1r5UptZOqWO+gIVepFoAEm9pAQk7W8BzCkOvUqNJo
hs1E46YEMYIIU8gOHsxCu05fjG2u4TwzM4XytnRyZdycjpBk7bz0c+WlLbK1
XOpyLTMDaO4hc6IFqUPn/FybcqOOs+EGLEuWamCrtFNeiLskICnnaqmxO9dC
OVeVqkj05uS2tJUuNUQWZlb05e3cOAm8VzldDNNLm1YJmT3XoskIOdfQr5Rw
ckYugKKrOWDUMr22mDy7Jo8tMpXotC9HXuCuQjqNd7byUkmXqyyjBbJkJ0lJ
ZwUFgbSc/aYWiwyxFfuRQXpIWKvpn5zbVTSKVF+zFkBKBUmkTj8AKDdpmmkh
nlCysakk9n8ETuLAaS3vmkS5P/z/Bxi5+pYKcmEzO1tzzFI9NYXhvULc4jgq
oKQS6GTn8t34ttMNv+XVW/58c/a3d6Obs1P6PH4zvLhoPoi4Y/zm7buL082n
zcmTt5eXZ1en4TBW5daS6FwOf8Qb0qrz9vp29PZqeNGhoPitvCBAhsBxNBel
Jh8rJ1LtktJMQiBfn1z/8x9HL+Tvv/8RZev46OirT5/iw8ujL1/gYYVECNI4
YuGR4CqAcq1KuoVSI1EL41WG+q4QIkAb/odT4c2nd+SZ+4H8epIsjl58ExfI
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
ms2B9dglcNcfxL8AOXnKnGUaAAA=

-->

</rfc>

