<?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.14 (Ruby 3.3.8) -->


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

]>


<rfc ipr="trust200902" docName="draft-gallagher-email-invisible-signatures-00" category="info" submissionType="IETF" updates="3156" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Invisible End-to-End E-mail Signatures</title>

    <author fullname="Andrew Gallagher" role="editor">
      <organization>PGPKeys.EU</organization>
      <address>
        <email>andrewg@andrewg.com</email>
      </address>
    </author>
    <author initials="D. K." surname="Gillmor" fullname="Daniel Kahn Gillmor">
      <organization>ACLU</organization>
      <address>
        <email>dkg@fifthhorseman.net</email>
      </address>
    </author>
    <author fullname="Kai Engert">
      <organization>Thunderbird</organization>
      <address>
        <email>kaie@thunderbird.net</email>
      </address>
    </author>

    <date year="2025" month="May" day="02"/>

    <area>int</area>
    <workgroup>none</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 39?>

<t>This document deals with end-to-end cryptographically signed e-mail.
It introduces a novel structure for signed e-mail that is designed to avoid creating any disturbance in legacy e-mail clients.
This "invisible" signature structure removes disincentives for signing e-mail.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://andrewgdotcom.gitlab.io/invisible-signatures/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gallagher-email-invisible-signatures/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/andrewgdotcom/invisible-signatures/"/>.</t>
    </note>


  </front>

  <middle>


<?line 45?>

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

<t>Several different standard structures for end-to-end cryptographically signed e-mail exist (see Sections <xref target="I-D.ietf-lamps-e2e-mail-guidance" section="4.1.1.1" sectionFormat="bare"/>, <xref target="I-D.ietf-lamps-e2e-mail-guidance" section="4.1.1.2" sectionFormat="bare"/> and <xref target="I-D.ietf-lamps-e2e-mail-guidance" section="4.1.2.1" sectionFormat="bare"/> of <xref target="I-D.ietf-lamps-e2e-mail-guidance"/>).
But the existing mechanisms have some undesirable properties which can make such mail difficult for the recipient to handle in some instances, particularly when read by legacy e-mail clients that don't understand the signing structure.
This document offers another signed e-mail structure, which is designed to be invisible to legacy e-mail clients.</t>

<t>The goal of this mechanism is to help e-mail clients commit to signing every outbound message, which reduces complexity for the user of the mail client.
The mechanism is capable of working with any signature mechanism, as well as transporting multiple signatures over a single message.
It is specified initially for <xref target="OpenPGP"/>, but can be easily extended to be used with <xref target="CMS"/> or other signature formats.</t>

<t>This mechanism is intended only for signed-only messages.
A message that is encrypted-and-signed <bcp14>MUST NOT</bcp14> use this mechanism, since any existing MUA that can decrypt an encrypted-and-signed message already handles the signatures on such a message correctly.</t>

<t>This document updates <xref target="RFC3156"/> by providing an additional mechanism for producing and consuming OpenPGP-signed MIME e-mail.</t>

</section>
<section anchor="conventions-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?>

<t><list style="symbols">
  <t>"Signed Mail" is used to refer to Internet Mail Messages that are cryptographically signed by the sender of the message, and expected to be validated by the recipient of the message.
This document does not consider any cryptographic signature mechanism that is not end-to-end (such as <xref target="DKIM"/>), and should be agnostic to and non-interfering with any such mechanism.</t>
  <t>"OpenPGP Signature" refers to a single OpenPGP Signature Packet as described by <xref section="5.2" sectionFormat="of" target="OpenPGP"/>.</t>
  <t>"MUA" refers to a Mail User Agent, which is also known as an e-mail client.
For end-to-end signed mail, the sender's MUA performs message composition and injection into the mail system, and the receiver's MUA performs message ingestion from the mail system and rendering to the user.</t>
  <t>"Legacy MUA" refers to a MUA that does not know about this specification.</t>
  <t>"MTA" refers to a Message Transfer Agent, for example an SMTP server that relays Internet mail messages from one point to another.</t>
</list></t>

</section>
<section anchor="problems-with-existing-signature-schemes"><name>Problems With Existing Signature Schemes</name>

<t>Existing end-to-end signature schemes for mail can trigger a set of annoyances for a recipient who uses a MUA that doesn't understand these structures.
These annoyances can cause the recipient to complain to the sender.
The easiest way for the sender to try to accommodate the recipient in this case is to simply not sign mail.</t>

<t>The Invisible Signature scheme defined in this document is intended to minimize or eliminate all of these problems.</t>

<section anchor="unreadable-signed-mail"><name>Unreadable Signed Mail</name>

<t>A signed mail message that uses the S/MIME PKCS #7 <spanx style="verb">signed-data</spanx> Cryptographic Layer described in <xref section="4.1.1.2" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/> is unreadable by a receiving MUA that doesn't understand <xref target="CMS"/>.</t>

<t>By contrast, a mail message signed with an Invisible Signature should render normally by any legacy MUA.</t>

</section>
<section anchor="unknown-attachment"><name>Unknown Attachment</name>

<t>A signed mail message that uses the S/MIME Multipart Signed Cryptographic Layer described in <xref section="4.1.1.1" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/> or the PGP/MIME Signing Cryptographic Layer (multipart/signed) described in <xref section="4.1.2.1" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/> has a separate MIME part that contains the message signature.</t>

<t>A receiving MUA that doesn't understand these structures will often render the signature as an "attachment".
This can cause confusion and anxiety to the user of the MUA, and they will sometimes respond to the sender with the complaint "I can't open your attachment".</t>

<t>By contrast, a mail message signed with an Invisible Signature is merely encapsulated in a <spanx style="verb">multipart/mixed</spanx> outer layer.
Legacy MUAs do not render such an encapsulation as an attachment.</t>

</section>
<section anchor="broken-signature"><name>Broken Signature</name>

<t>In some cases, mail is tampered with in transit, whether deliberately or maliciously.
In this case, for a MUA that does understand these messages, some MUAs will visibly complain to the recipient that there is a failed signature.</t>

<t>If unsigned mail receives no comparable warning, then the act of adding a signature to a message that might traverse a modifiable path is risky.
An MUA compliant with <xref section="6.4" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/> will not create such a warning, but many MUAs do not yet comply with that guidance.</t>

<t>By contrast, a legacy MUA won't render anything about the cryptographic status of an Invisibly Signed message at all.
And an MUA compatible with this specification that encounters a message with a broken Invisible Signtature will never render an error that it wouldn't have rendered on an unsigned message anyway, which removes this disincentive to sign.</t>

</section>
</section>
<section anchor="invisibly-signed-message"><name>Invisibly Signed Message</name>

<t>An Invisibly Signed Message has a specific MIME structure and uses a specific header field.</t>

<section anchor="mime-structure"><name>MIME structure</name>

<t>The top-level <spanx style="verb">Content-Type</spanx> of an invisibly signed message is <spanx style="verb">multipart/mixed</spanx>, and it has a single MIME subpart, which this specification refers to as the "Protected Part".
The Protected Part's header sections' first header field is <spanx style="verb">Sig</spanx>, described in <xref target="sig"/>.</t>

<t>We hereby specify a third PGP/MIME format in addition to the two listed in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/>:</t>

<section anchor="pgpmime-invisible-signing-cryptographic-layer-multipartmixed"><name>PGP/MIME Invisible Signing Cryptographic Layer (multipart/mixed)</name>

<figure><artwork><![CDATA[
└┬╴multipart/mixed
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers authenticity and integrity IFF the Protected Part contains one or more valid Sig: headers.</t>

<t>This format is a Simple Cryptographic Envelope as specified in <xref section="4.4.1" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/>, and the Protected Part (with leading <spanx style="verb">Sig</spanx> Header Fields removed) is the Cryptographic Payload.</t>

<t>This MIME structure <bcp14>MUST NOT</bcp14> be used as part of a Multilayer Cryptographic Envelope.
If it is found anywhere but the outside of the message it <bcp14>MUST NOT</bcp14> be treated as a Cryptographic Layer.</t>

</section>
</section>
<section anchor="sig"><name>Sig Header Field</name>

<t>This specification defines a new header field, named <spanx style="verb">Sig</spanx>.
<spanx style="verb">Sig</spanx> is only meaningful if it appears in the Protected Part of an Invisibly Signed Message, before any non-<spanx style="verb">Sig</spanx> header field.</t>

<t>It contains parameters, only two of which are currently defined.</t>

<t><list style="symbols">
  <t>The <spanx style="verb">t</spanx> parameter indicates the type of the signature with its value, and the only value currently defined is <spanx style="verb">p</spanx>, meaning an OpenPGP signature.
See <xref target="t-param"/>.</t>
  <t>The <spanx style="verb">b</spanx> parameter contains a base64-encoded blob that contains the cryptographic signature object of the type described by <spanx style="verb">t</spanx>.</t>
</list></t>

</section>
<section anchor="message-normalization"><name>Message Normalization</name>

<t>The Protected Part, without any <spanx style="verb">Sig</spanx> header fields, <bcp14>MUST</bcp14> be canonicalized to a bytestring in order to create or verify the signature.
This is done following the patterns described in <xref section="3" sectionFormat="of" target="RFC3156"/>.</t>

<t><list style="symbols">
  <t>Line endings converted to CRLF</t>
  <t>Content-Encoding is used to make the message 7-bit clean</t>
  <t>End of line trailing whitespace is stripped or encoded to non-whitespace</t>
  <t>If "From " starts a line, at least one letter of it should be encoded</t>
</list></t>

<t>This is all done for two reasons:</t>

<t><list style="symbols">
  <t>to make the message unlikely to be modified by existing MTAs, and</t>
  <t>to make the signature invariant no matter whether the OpenPGP signature is text-mode or binary-mode.</t>
</list></t>

<t>FIXME: is all this really necessary in 2025?
What if we said that an Invisibly Signed Message that needs 8BITMIME simply can't be transmitted across an MTA that doesn't support 8BITMIME?
Or what if we decided that it's OK if the signature breaks in that case?</t>

</section>
<section anchor="openpgp-signature-details"><name>OpenPGP Signature Details</name>

<t>The OpenPGP Signature is made over the canonical bytestring, in binary mode (OpenPGP Signature Type 0x00).</t>

<t>Note that if multiple <spanx style="verb">Sig</spanx> header fields appear in a single message, each <spanx style="verb">Sig</spanx> header field represents a signature over the Protected Part without any <spanx style="verb">Sig</spanx> header field.
That is, each <spanx style="verb">Sig</spanx> signs the same content, and the order of the <spanx style="verb">Sig</spanx> header fields among themselves doesn't matter as long as every <spanx style="verb">Sig</spanx> header field precedes all non-<spanx style="verb">Sig</spanx> header fields in the Header Section of the Protected Part.</t>

</section>
</section>
<section anchor="sender-guidance"><name>Sender Guidance</name>

<section anchor="always-use-header-protection"><name>Always Use Header Protection</name>

<t>A message signed with an invisible signature <bcp14>MUST</bcp14> always use <xref target="I-D.ietf-lamps-header-protection"/>, signing every header field known to the sending MUA at message composition time.</t>

</section>
<section anchor="message-composition"><name>Message Composition</name>

<t>This updates the message composition function found in <xref section="5.1" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/>, using the same parameters.</t>

<t><list style="symbols">
  <t><spanx style="verb">origbody</spanx>: the traditional unprotected message body as a well-formed MIME tree (possibly just a single MIME leaf part).
As a well-formed MIME tree, <spanx style="verb">origbody</spanx> already has structural header fields present.</t>
  <t><spanx style="verb">origheaders</spanx>: the intended non-structural header fields for the message, represented here as a list of <spanx style="verb">(h,v)</spanx> pairs, where <spanx style="verb">h</spanx> is a header field name and <spanx style="verb">v</spanx> is the associated value.</t>
  <t><spanx style="verb">crypto</spanx>: an indication that the message is to be signed with one or more Invisible Signatures.
This contains a list of one or more secret keys.
Each key will make one signature.</t>
</list></t>

<t>The algorithm returns a MIME object that is ready to be injected into the mail system:</t>

<t><list style="numbers" type="1">
  <t>Create MIME tree <spanx style="verb">inner</spanx> as a copy of <spanx style="verb">origbody</spanx></t>
  <t>Ensure <spanx style="verb">Content-Type</spanx> Header Field of <spanx style="verb">inner</spanx> has parameter <spanx style="verb">hp</spanx> set to <spanx style="verb">"clear"</spanx>.</t>
  <t>For each header name and value <spanx style="verb">(h,v)</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="numbers" type="a">
      <t>Add header <spanx style="verb">h</spanx> to <spanx style="verb">inner</spanx> with value <spanx style="verb">v</spanx></t>
    </list></t>
  <t>Normalize <spanx style="verb">inner</spanx> to bytestring <spanx style="verb">innerbytes</spanx> (see <xref target="message-normalization"/>)</t>
  <t>For each signing key <spanx style="verb">key</spanx> in <spanx style="verb">crypto</spanx>:
  <list style="numbers" type="a">
      <t>Sign <spanx style="verb">innerbytes</spanx> with <spanx style="verb">key</spanx>, yielding signature <spanx style="verb">sig</spanx></t>
      <t>Prepend a Header Field named <spanx style="verb">Sig</spanx> to <spanx style="verb">inner</spanx> with two parameters, <spanx style="verb">t</spanx> (set to the literal string <spanx style="verb">p</spanx>) and <spanx style="verb">b</spanx> (set to the base64-encoded value of <spanx style="verb">sig</spanx>).</t>
    </list></t>
  <t>Create new MIME tree <spanx style="verb">output</spanx> with <spanx style="verb">Content-Type</spanx> <spanx style="verb">multipart/mixed</spanx>, with a single subpart, set to <spanx style="verb">inner</spanx></t>
  <t>For each header name and value <spanx style="verb">(h,v)</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="numbers" type="a">
      <t>Add header <spanx style="verb">h</spanx> to <spanx style="verb">outer</spanx> with value <spanx style="verb">v</spanx></t>
    </list></t>
  <t>Return <spanx style="verb">output</spanx></t>
</list></t>

</section>
<section anchor="do-not-use-invisible-signature-when-encrypting"><name>Do Not Use Invisible Signature When Encrypting</name>

<t>In accordance with <xref section="5.2" sectionFormat="of" target="I-D.ietf-lamps-e2e-mail-guidance"/>, when sending end-to-end encrypted messages an MUA <bcp14>MUST</bcp14> place end-to-end signatures inside the encrypted data.
This mechanism is therefore not applicable to encrypted messages.</t>

</section>
</section>
<section anchor="recipient-guidance"><name>Recipient Guidance</name>

<section anchor="detecting-an-invisible-signature"><name>Detecting an Invisible Signature</name>

<t>A receiving MUA detects the presence of an invisible signature on a message by verifying that:</t>

<t><list style="symbols">
  <t>the message <spanx style="verb">Content-Type</spanx> is <spanx style="verb">multipart/mixed</spanx>, and</t>
  <t>there is exactly one top-level subpart (though that subpart itself may be multipart), and</t>
  <t>the <spanx style="verb">Content-Type</spanx> of that top-level subpart has parameter <spanx style="verb">hp="clear"</spanx>, and</t>
  <t>the first header field of the top-level subpart is named <spanx style="verb">Sig</spanx>, and</t>
  <t>the top-level subpart has a <spanx style="verb">From</spanx> header field, and its <spanx style="verb">addr-spec</spanx> matches the <spanx style="verb">addr-spec</spanx> in the message's <spanx style="verb">From</spanx> header field.</t>
</list></t>

<t>This last requirement (matching <spanx style="verb">From</spanx> <spanx style="verb">addr-spec</spanx>s) is an anti-spoofing measure, by analogy with <xref section="4.4" sectionFormat="of" target="I-D.ietf-lamps-header-protection"/>.</t>

</section>
<section anchor="validating-an-invisible-signature"><name>Validating an Invisible Signature</name>

<t>When validating an invisible signature, the signature data (i.e. the value of the <spanx style="verb">b</spanx> field) is converted from Base64 to binary format to recover the signature packet.
The signed object is extracted from the <spanx style="verb">multipart/mixed</spanx> part by selecting every octet that comes after the <spanx style="verb">CRLF</spanx> that terminates the last <spanx style="verb">Sig</spanx> header, and before the <spanx style="verb">CRLF</spanx> that immediately precedes the trailing MIME boundary.
The signed object is then normalized as described in <xref target="message-normalization"/>.
The normalized data is then passed to the signature verification routine as a raw bytestream.</t>

</section>
<section anchor="message-rendering-and-the-cryptographic-summary"><name>Message Rendering and the Cryptographic Summary</name>

<t>If the message has at least one Invisible Signature which validates, then the MUA <bcp14>SHOULD</bcp14> render the message as though the top-level subpart is the message itself.
The Cryptographic Summary of the message <bcp14>SHOULD</bcp14> indicate that the message is <spanx style="verb">signed-only</spanx>, and that all header fields present in the top-level subpart share that Cryptographic Status.</t>

<section anchor="example-rendering"><name>Example Rendering</name>

<t>For example, consider a message with this structure:</t>

<figure><artwork><![CDATA[
A └┬╴multipart/mixed
B  └┬╴multipart/alternative; hp="clear" [Cryptographic Payload]
C   ├─╴text/plain
D   └─╴text/html
]]></artwork></figure>

<t>If at least one Invisible Signature is present as a leading <spanx style="verb">Sig</spanx> header field in <spanx style="verb">B</spanx>, and it validates correctly, the message should be rendered the same way as this message:</t>

<figure><artwork><![CDATA[
B └┬╴multipart/alternative
C  ├─╴text/plain
D  └─╴text/html
]]></artwork></figure>

<t>And its Cryptographic Status will be <spanx style="verb">signed-only</spanx>.</t>

</section>
<section anchor="unprotected-header-fields-added-in-transit"><name>Unprotected Header Fields Added In Transit</name>

<t>As noted in <xref section="7" sectionFormat="of" target="I-D.ietf-lamps-header-protection"/>, it's possible that a MUA encounters some Header Fields on the outer message (in the Header Section of <spanx style="verb">A</spanx> in the example above) which could not have been known by the sender.</t>

<t>If any such fields would normally be rendered in some fashion by the MUA on an <spanx style="verb">unsigned</spanx> message, it <bcp14>MAY</bcp14> consider rendering them even on a <spanx style="verb">signed-only</spanx> Invisibly Signed message, but it should take care to indicate that they do not share the <spanx style="verb">signed-only</spanx> Cryptographic Status with the rest of the message.</t>

</section>
</section>
<section anchor="signature-failure-handling"><name>Signature Failure Handling</name>

<t>Sometimes a receiving MUA encounters an invisibly signed message where all invisible signatures fail to validate.
The receiving MUA <bcp14>MUST NOT</bcp14> present the user with a cryptographic status that is different from a message with no signature at all.
That is, the message's Cryptographic Status <bcp14>SHOULD</bcp14> be <spanx style="verb">unprotected</spanx>.</t>

<t>If a message gets tampered with in such a way that all invisible signatures are broken, the recipient should see the message as though it were a normal unsigned message.</t>

</section>
<section anchor="handling-multiple-signatures"><name>Handling Multiple Signatures</name>

<t>If more than one invisible signature is present in a message, the receiving MUA <bcp14>MUST</bcp14> verify each signature against the known certificates associated with the indicated sender.
As long as one of the signatures validates, the message should be treated as correctly signed, even if all the other signatures are invalid.</t>

</section>
<section anchor="ignore-out-of-place-invisible-signatures"><name>Ignore Out-of-place Invisible Signatures</name>

<t>An invisible signature <spanx style="verb">Sig</spanx> header field <bcp14>MUST NOT</bcp14> be evaluated unless it is within the MIME headers of the only subpart of a <spanx style="verb">multipart/mixed</spanx> message.</t>

<t>Evaluating a <spanx style="verb">Sig</spanx> header outside of this location might mean that a modified message could still appear to be successfully verified.
For example, an invisibly signed message might be included as a sub-part of another multipart message, or be transformed into a non-MIME message with different message headers than the original email.
This could conceivably be used by an attacker to make subtle changes to the meaning of a message without altering the content of the Protected Part.</t>

</section>
</section>
<section anchor="mta-guidance"><name>MTA Guidance</name>

<t>An MTA or any other message relay service that observes a message with Content-Type <spanx style="verb">multipart/mixed</spanx> that is a single part <bcp14>MUST NOT</bcp14> alter the content of this message body in any way, including, but not limited to, changing the content transfer encoding of the body part or any of its encapsulated body parts.
This corresponds to the guidance in <xref section="2.1" sectionFormat="of" target="RFC1847"/> about the first section of <spanx style="verb">multipart/signed</spanx> messages.</t>

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

<t>Based on the principle that "a broken signature is the same as no signature", a receiving MUA <bcp14>MUST NOT</bcp14> display any warnings if an Invisible Signature fails to verify, unless the user has requested debugging output.
This is because if an MITM can modify a message in transit, then they can choose whether or not to also remove the (now invalid) signature.
If the receiving MUA displayed a more severe warning for a broken signature than for a missing one (or vice versa), the MITM could choose to modify the message in such a way that would result in the less-severe warning.
The warning message is thus attacker-controlled.</t>

<t>Otherwise, the security properties are equivalent to those of a multipart/signed message.</t>

</section>
<section anchor="performance-considerations"><name>Performance Considerations</name>

<section anchor="rationale-for-signature-in-mime-part"><name>Rationale for Signature in MIME Part</name>

<t><list style="symbols">
  <t>An MTA is more likely to modify, reorder, or enforce limits on header fields associated with the entire message than it is to corrupt header fields in the subpart.</t>
  <t>Any DKIM signature that includes the body of the message will cover the end-to-end signature.
If the end-to-end signature was in the outer message it would not normally be signed by DKIM, and would be vulnerable to inadvertent breakage by naive MTAs.</t>
</list></t>

</section>
<section anchor="no-one-pass-message-generation"><name>No One-pass Message Generation</name>

<t>Because the signature is included first in the message, it is not possible to generate the message in a single pass.</t>

<t>A sending MUA that needs to generate a signed outbound message in a single pass should use another end-to-end signing mechanism, like <spanx style="verb">multipart/signed</spanx>.</t>

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

<section anchor="sig-header"><name>Register the Sig Header Field</name>

<t>IANA is requested to update the Permanent Message Header Field Names registry to add the following entry:</t>

<texttable title="Permanent Message Header Field Names">
      <ttcol align='left'>Header Field Name</ttcol>
      <ttcol align='left'>Template</ttcol>
      <ttcol align='left'>Protocol</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Trace</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>Sig</c>
      <c>&#160;</c>
      <c>MIME</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="sig-header-parameters"><name>Create Registry for Sig Message Header Parameters</name>

<t>IANA is requested to create a registry titled "Sig Message Header Parameters" in the "Message Headers" group of registries, with the following initial contents:</t>

<texttable title="Sig Message Header Parameters">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">t</spanx></c>
      <c>Type of Signature (see <xref target="t-param"/>)</c>
      <c>This document</c>
      <c><spanx style="verb">b</spanx></c>
      <c>Base64-encoded Signature Content (whitespace permitted and ignored)</c>
      <c>This document</c>
</texttable>

<t>(( TODO: do we need a registry for this? Are we expecting any new parameters? ))</t>

</section>
<section anchor="t-param"><name>Create Registry For t Parameter</name>

<t>IANA is requested to create a registry titled "Sig Message Header Signature Types" in the "Message Headers" group of registries, with the following initial contents:</t>

<texttable title="Sig Message Header Signature Types">
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">p</spanx></c>
      <c>A single OpenPGP Signature packet</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="update-multipartmixed-to-refer-here"><name>Update multipart/mixed to Refer Here</name>

<t>IANA is requested to update the "multipart/mixed" entry in the Media Types registry, to add a reference to this document.</t>

</section>
</section>


  </middle>

  <back>


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




<reference anchor="I-D.ietf-lamps-e2e-mail-guidance">
   <front>
      <title>Guidance on End-to-End E-mail Security</title>
      <author fullname="Daniel Kahn Gillmor" initials="D. K." surname="Gillmor">
         <organization>American Civil Liberties Union</organization>
      </author>
      <author fullname="Bernie Hoeneisen" initials="B." surname="Hoeneisen">
         <organization>pEp Project</organization>
      </author>
      <author fullname="Alexey Melnikov" initials="A." surname="Melnikov">
         <organization>Isode Ltd</organization>
      </author>
      <date day="8" month="January" year="2025"/>
      <abstract>
	 <t>   End-to-end cryptographic protections for e-mail messages can provide
   useful security.  However, the standards for providing cryptographic
   protection are extremely flexible.  That flexibility can trap users
   and cause surprising failures.  This document offers guidance for
   mail user agent implementers to help mitigate those risks, and to
   make end-to-end e-mail simple and secure for the end user.  It
   provides a useful set of vocabulary as well as recommendations to
   avoid common failures.  It also identifies a number of currently
   unsolved usability and interoperability problems.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-e2e-mail-guidance-17"/>
   
</reference>
<reference anchor="OpenPGP">
  <front>
    <title>OpenPGP</title>
    <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
    <author fullname="D. Huigens" initials="D." surname="Huigens"/>
    <author fullname="J. Winter" initials="J." surname="Winter"/>
    <author fullname="Y. Niibe" initials="Y." surname="Niibe"/>
    <date month="July" year="2024"/>
    <abstract>
      <t>This document specifies the message formats used in OpenPGP. OpenPGP provides encryption with public key or symmetric cryptographic algorithms, digital signatures, compression, and key management.</t>
      <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format. It is not a step-by-step cookbook for writing an application. It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network. It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
      <t>This document obsoletes RFCs 4880 ("OpenPGP Message Format"), 5581 ("The Camellia Cipher in OpenPGP"), and 6637 ("Elliptic Curve Cryptography (ECC) in OpenPGP").</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9580"/>
  <seriesInfo name="DOI" value="10.17487/RFC9580"/>
</reference>
<reference anchor="RFC3156">
  <front>
    <title>MIME Security with OpenPGP</title>
    <author fullname="M. Elkins" initials="M." surname="Elkins"/>
    <author fullname="D. Del Torto" initials="D." surname="Del Torto"/>
    <author fullname="R. Levien" initials="R." surname="Levien"/>
    <author fullname="T. Roessler" initials="T." surname="Roessler"/>
    <date month="August" year="2001"/>
    <abstract>
      <t>This document describes how the OpenPGP Message Format can be used to provide privacy and authentication using the Multipurpose Internet Mail Extensions (MIME) security content types described in RFC 1847. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3156"/>
  <seriesInfo name="DOI" value="10.17487/RFC3156"/>
</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="I-D.ietf-lamps-header-protection">
   <front>
      <title>Header Protection for Cryptographically Protected E-mail</title>
      <author fullname="Daniel Kahn Gillmor" initials="D. K." surname="Gillmor">
         <organization>American Civil Liberties Union</organization>
      </author>
      <author fullname="Bernie Hoeneisen" initials="B." surname="Hoeneisen">
         <organization>pEp Project</organization>
      </author>
      <author fullname="Alexey Melnikov" initials="A." surname="Melnikov">
         <organization>Isode Ltd</organization>
      </author>
      <date day="6" month="January" year="2025"/>
      <abstract>
	 <t>   S/MIME version 3.1 introduced a mechanism to provide end-to-end
   cryptographic protection of e-mail message headers.  However, few
   implementations generate messages using this mechanism, and several
   legacy implementations have revealed rendering or security issues
   when handling such a message.

   This document updates the S/MIME specification (RFC8551) to offer a
   different mechanism that provides the same cryptographic protections
   but with fewer downsides when handled by legacy clients.
   Furthermore, it offers more explicit usability, privacy, and security
   guidance for clients when generating or handling e-mail messages with
   cryptographic protection of message headers.

   The Header Protection scheme defined here is also applicable to
   messages with PGP/MIME cryptographic protections.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-header-protection-25"/>
   
</reference>



    </references>

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



<reference anchor="RFC1847">
  <front>
    <title>Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted</title>
    <author fullname="J. Galvin" initials="J." surname="Galvin"/>
    <author fullname="S. Murphy" initials="S." surname="Murphy"/>
    <author fullname="S. Crocker" initials="S." surname="Crocker"/>
    <author fullname="N. Freed" initials="N." surname="Freed"/>
    <date month="October" year="1995"/>
    <abstract>
      <t>This document defines a framework within which security services may be applied to MIME body parts. [STANDARDS-TRACK] This memo defines a new Simple Mail Transfer Protocol (SMTP) [1] reply code, 521, which one may use to indicate that an Internet host does not accept incoming mail. This memo defines an Experimental Protocol for the Internet community. This memo defines an extension to the SMTP service whereby an interrupted SMTP transaction can be restarted at a later time without having to repeat all of the commands and message content sent prior to the interruption. This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="1847"/>
  <seriesInfo name="DOI" value="10.17487/RFC1847"/>
</reference>

<reference anchor="I-D.bre-openpgp-samples">
   <front>
      <title>OpenPGP Example Keys and Certificates</title>
      <author fullname="Bjarni Rúnar Einarsson" initials="B. R." surname="Einarsson">
         <organization>Mailpile ehf</organization>
      </author>
      <author fullname="&quot;juga&quot;" initials="" surname="&quot;juga&quot;">
         <organization>Independent</organization>
      </author>
      <author fullname="Daniel Kahn Gillmor" initials="D. K." surname="Gillmor">
         <organization>American Civil Liberties Union</organization>
      </author>
      <date day="16" month="April" year="2025"/>
      <abstract>
	 <t>   The OpenPGP development community benefits from sharing samples of
   signed or encrypted data.  This document facilitates such
   collaboration by defining a small set of OpenPGP certificates and
   keys for use when generating such samples.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-bre-openpgp-samples-02"/>
   
</reference>
<reference anchor="CMS">
  <front>
    <title>Cryptographic Message Syntax (CMS)</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="September" year="2009"/>
    <abstract>
      <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="70"/>
  <seriesInfo name="RFC" value="5652"/>
  <seriesInfo name="DOI" value="10.17487/RFC5652"/>
</reference>
<reference anchor="DKIM">
  <front>
    <title>DomainKeys Identified Mail (DKIM) Signatures</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="T. Hansen" initials="T." role="editor" surname="Hansen"/>
    <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
    <date month="September" year="2011"/>
    <abstract>
      <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
      <t>This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="76"/>
  <seriesInfo name="RFC" value="6376"/>
  <seriesInfo name="DOI" value="10.17487/RFC6376"/>
</reference>



    </references>


<?line 368?>

<section anchor="test-vectors"><name>Test Vectors</name>

<t>These test vectors show different examples of invisible signed messages.</t>

<section anchor="from-alice-to-bob"><name>From Alice to Bob</name>

<t>The message below is a common <spanx style="verb">multipart/alternative</spanx> e-mail, signed with an invisible signature.
The signature should be verifiable using the "Alice" certificate found in <xref section="2.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/>.</t>

<figure><sourcecode type="message/rfc822" name="invisig-0.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="89d"
MIME-Version: 1.0
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Subject: This is a Test
Date: Thu, 01 May 2025 22:16:15 -0400
Message-ID: <invisig-0@openpgp.example>

--89d
Sig: t=p; b=wnUEABYKAB0WIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCaBQq
 7wAKCRDyMVUMT0fjjixaAQCKo/ILDinzplUkebnERgKApWHoytKnP7rITQl
 WT0JNIwEAs7phDDVb1a/Dhy5lHJg2mU4Bu6HH8/VHnU9fqp1sywo=
MIME-Version: 1.0
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Subject: This is a Test
Date: Thu, 01 May 2025 22:16:15 -0400
Message-ID: <invisig-0@openpgp.example>
Content-Type: multipart/alternative; boundary="913"; hp="clear"

--913
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Hi Bob,

This is Alice.  I need you to:

- read this message
- reply to it
- delete it promptly.

Thanks,
Alice
--913
Content-Type: text/html; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

<html><head></head><body><p>Hi Bob,</p>
<p>This is Alice.  I need you to:</p>
<ul>
<li>read this message</li>
<li>reply to it</li>
<li>delete it promptly.</li>
</ul>
<p>Thanks,
Alice</p></body></html>
--913--

--89d--
]]></sourcecode></figure>

</section>
<section anchor="from-david-to-alice"><name>From David to Alice</name>

<t>The message below is a simple <spanx style="verb">text/plain</spanx> e-mail, signed with an invisible signature.
The signature should be verifiable using the "David" certificate found in <xref section="5.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/>.</t>

<figure><sourcecode type="message/rfc822" name="invisig-1.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="593"
MIME-Version: 1.0
From: David Deluxe <david@openpgp.example>
To: Alice Lovelace <alice@openpgp.example>
Subject: Checking in
Date: Fri, 02 May 2025 13:01:07 -0400
Message-ID: <invisig-1@openpgp.example>

--593
Sig: t=p; b=wpIGABsIAAAAKSIhBkGZ2eqmaCp41aU09iv3YiKlTk3rx4Xb
 5qbFs0WGAm/iBQJoFPpTAAAACgkQQZnZ6qZoKniIQxCd+H4MGl/IITzJsjA
 9q4FguPa7PmjhMulQsCT6bO0sXu6PWMJEE621/CnbUnRBwZnisYHwPpIR+S
 bduePAM5e25Xs7d+lsIJl65ffoVUJxAQ==
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: David Deluxe <david@openpgp.example>
To: Alice Lovelace <alice@openpgp.example>
Subject: Checking in
Date: Fri, 02 May 2025 13:01:07 -0400
Message-ID: <invisig-1@openpgp.example>
Content-Type: text/plain; charset="us-ascii"; hp="clear"

Alice!

So good to see you earlier.

I hope you will have a chance to check out
our new website: https://openpgp.example/
and tell me what you think.

All the best,

David

--593--
]]></sourcecode></figure>

</section>
<section anchor="from-alice-to-david"><name>From Alice to David</name>

<t>The message below is a <spanx style="verb">multipart/alternative</spanx> e-mail with an image attached, signed with an invisible signature.
The signature should be verifiable using the "Alice" certificate found in <xref section="2.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/>.</t>

<figure><sourcecode type="message/rfc822" name="invisig-2.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="cf0"
MIME-Version: 1.0
From: Alice Lovelace <alice@openpgp.example>
To: David Deluxe <david@openpgp.example>
Subject: Re: Checking in
Date: Fri, 02 May 2025 17:03:35 -0400
Message-ID: <invisig-2@openpgp.example>
In-Reply-To: <invisig-1@openpgp.example>
References: <invisig-1@openpgp.example>

--cf0
Sig: t=p; b=wnUEABYKAB0WIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCaBUz
 JwAKCRDyMVUMT0fjjlavAP9Id9p5b5H17IBKVqaYq2NSwb4Er+/IWq19MnY
 AKhOlwgEAva0huFRnH4FNQpDG58E6l4o05BlzIa2Y+BTXGLqX/QI=
MIME-Version: 1.0
From: Alice Lovelace <alice@openpgp.example>
To: David Deluxe <david@openpgp.example>
Subject: Re: Checking in
Date: Fri, 02 May 2025 17:03:35 -0400
Message-ID: <invisig-2@openpgp.example>
In-Reply-To: <invisig-1@openpgp.example>
References: <invisig-1@openpgp.example>
Content-Type: multipart/mixed; boundary="d64"; hp="clear"

--d64
Content-Type: multipart/alternative; boundary="f4f"
MIME-Version: 1.0

--f4f
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Hi David,

I think the attached logo might look good
on the website.

Thanks,
Alice

--f4f
Content-Type: text/html; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

<html><head></head><body><p>Hi David,</p>
<p>I think the attached logo might look good
on the website.</p>
<p>Thanks,
Alice</p></body></html>
--f4f--

--d64
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="logo.png"

iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAcElEQVR42uVTOxbA
MAgS739nO3TpRw20dqpbfARQEjOywiwYnCtkDKnbcLk66sqlT+zt9cidkE+6KwkZ
sgrzfcqVMpL2jo0447gYDpeArk+OnJHkIhAfTPRicihAf5YJrw7vjv0ZWRWM/uli
vdPf1QZ2kDD9xppd8wAAAABJRU5ErkJggg==

--d64--

--cf0--
]]></sourcecode></figure>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank the attendees of the 9th OpenPGP Email Summit for feedback and suggestions.</t>

</section>


  </back>

<!-- ##markdown-source:
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
QJkeu9Pw3R8j50Zvwr84gT+Mgj3b/6ah8/qvYBMHw9VfK3R+mJY5zTlTD9Se
7fbq0/bT+wO29ZqTulHzDH11E4G7V89cVqwfYGqBYv9IRH75Dczdu2pEHsrr
zsnzrv882exvvl3b7u4cfvwqP39d/3A+62/spz+sdD99XXt+FH2G1Z3D8XE4
G+13ruXqeHpwFr3dOPhwmuy92Xy2vxVuxKubO+G3rlz//MPOxY9v3n/9ceW0
+2tF5P8LmPxg3fG3NmpCfLj6NycLw41hvRbihnDzPy1nIPY22C2QsSZzZi2l
CONRbIYnwji+Ir8CXoGLLsYp1CYF9+Hxn5wWMIouMfj78SzkFr8c1wPyNq6v
ERBySCtJNLoXQX4tKn9kL9D2LVP8zz3gm/u/E8MgVOwmEIkW7ElyGXzcOT6b
rR6+GcUY0304vxzvX47g084pfr/c7XzGUO9DcLb6AS8M9sP9049nG+vTjxfH
N32I8I46o/Ptp8+j46cXydlsfdX/mvSHnbPT/S/H81kw+xztZld7h1F/8P5q
a0t/DS9++JY9HwT+1f4PW4ezq58eeXqUfhsOvn48St6vf4lXNza2R5/3EtVJ
r344jt69veqOO8OLk7NgEMCHzc/v0tn29Zfr1Z8+nX06giQqeORd+yfDtdOf
1q/29p7fJIn/bIaw7rw7u9zcT6/ejUYjDBQNkS29wWDbcMJ7LDoDnBwLlT/C
ep95l53/Aw92JpQaZFQZlLlg4PSYctNRzyFSsGXPff7vekzpV9GxiD2EzBIr
iPzjtNOR+RFU3fL+A2/pdF4lZAAA

-->

</rfc>

