<?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-unobtrusive-signatures-00" category="info" submissionType="IETF" updates="3156" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Unobtrusive 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="12"/>

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

    <abstract>


<?line 40?>

<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 "unobtrusive" 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/unobtrusive-signatures/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gallagher-email-unobtrusive-signatures/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/andrewgdotcom/unobtrusive-signatures/"/>.</t>
    </note>


  </front>

  <middle>


<?line 46?>

<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 transparent 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 Unobtrusive 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 Unobtrusive 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 Unobtrusive 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 anchor="reducing-confusion-with-name-parameter"><name>Reducing Confusion with name Parameter</name>

<t>For existing end-to-end multipart signature schemes, one partial mitigation to this problem is to mark the signature part with an explicit filename that a legacy MUA is likely to display to the recipient.
Concretely, some signing MUAs that generate <spanx style="verb">multipart/signed</spanx> messages using PGP/MIME (<xref target="RFC3156"/>) will add a <spanx style="verb">name="openpgp-digital-signature.asc"</spanx> parameter to the <spanx style="verb">Content-Type</spanx> header of the <spanx style="verb">application/pgp-signature</spanx> MIME part.</t>

<t>For recipients who understand what an OpenPGP digital signature is (even if their MUA can't interpret it), this might reduce the amount of pushback they provide to the sender.</t>

<t>The Unobtrusive Signature scheme described in this document intends to offer even less friction to the recipient using a Legacy MUA by hiding the signature entirely.</t>

</section>
</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 Unobtrusively Signed message at all.
And an MUA compatible with this specification that encounters a message with a broken Unobtrusive 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="unobtrusively-signed-message"><name>Unobtrusively Signed Message</name>

<t>An Unobtrusively 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 unobtrusively 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-unobtrusive-signing-cryptographic-layer-multipartmixed"><name>PGP/MIME Unobtrusive 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 Unobtrusively 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>.
Whitespace is ignored in this value and <bcp14>MUST</bcp14> be ignored when reassembling the original signature.
In particular, the signing process can safely insert FWS in this value in arbitrary places to conform to line-length limits.</t>
</list></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 anchor="line-ending-normalization"><name>Line Ending Normalization</name>

<t>Line endings in the message <bcp14>MUST</bcp14> be converted to <spanx style="verb">CRLF</spanx> format before signing or verification.
This ensures that an OpenPGP signature over the message will be invariant for both binary and text mode signatures.</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 unobtrusive 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 Unobtrusive 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>Canonicalize <spanx style="verb">inner</spanx> (see <xref target="message-canonicalization"/>)</t>
  <t>Convert <spanx style="verb">inner</spanx> to bytestring <spanx style="verb">innerbytes</spanx></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-unobtrusive-signature-when-encrypting"><name>Do Not Use Unobtrusive 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 anchor="message-canonicalization"><name>Message Canonicalization</name>

<t>The Protected Part, without any <spanx style="verb">Sig</spanx> header fields, <bcp14>SHOULD</bcp14> be canonicalized following the patterns described in <xref section="3" sectionFormat="of" target="RFC3156"/>:</t>

<t><list style="symbols">
  <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>The canonicalized Protected Part <bcp14>MUST</bcp14> then be line ending normalized as per <xref target="line-ending-normalization"/> before creating the signature.
A signature over a message is more likely to be verifiable if the message is canonicalized into a format robust against MTA modification in transit.</t>

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

<t>The OpenPGP Signature is made over the canonical bytestring, and binary mode (OpenPGP Signature Type 0x00) <bcp14>SHOULD</bcp14> be used.</t>

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

<section anchor="detecting-an-unobtrusive-signature"><name>Detecting an Unobtrusive Signature</name>

<t>A receiving MUA detects the presence of an unobtrusive 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-unobtrusive-signature"><name>Validating an Unobtrusive Signature</name>

<t>When validating an unobtrusive 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="line-ending-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 Unobtrusive 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 Unobtrusive 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> Unobtrusively 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 unobtrusively signed message where all unobtrusive 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 unobtrusive 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 unobtrusive 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-unobtrusive-signatures"><name>Ignore Out-of-place Unobtrusive Signatures</name>

<t>An unobtrusive 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 unobtrusively 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 Unobtrusive 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 Header Section 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 anchor="registration-policies"><name>Registration Policies</name>

<t>IANA is requested to set all registries within this document to use the SPECIFICATION <bcp14>REQUIRED</bcp14> registration policy, see <xref section="4.6" sectionFormat="of" target="RFC8126"/>.
This policy means that review and approval by a designated expert is required, and that the IDs and their meanings must be documented in a permanent and readily available public specification, in sufficient detail so that interoperability between independent implementations is possible.</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="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</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="8" month="May" 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-03"/>
   
</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 383?>

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

<t>These test vectors show different examples of unobtrusive 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 unobtrusive signature.
The signature should be verifiable using the "Alice" v4 certificate found in <xref section="2.1.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/>.</t>

<figure><sourcecode type="message/rfc822" name="uosig-0.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="5d6"
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: <uosig-0@openpgp.example>

--5d6
Sig: t=p; b=wnUEABYKAB0WIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCaBQq
 7wAKCRDyMVUMT0fjjr+3AP4nGDsaptk9I6EePoXftyevyH6luB2aSAzrD8o
 xQVNWDQD/VQ/s85C3v6SAxtFDcBsn2H32Hd/yW5BsDx62gmpL7Aw=
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: <uosig-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--

--5d6--
]]></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 unobtrusive 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="uosig-1.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="a21"
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: <uosig-1@openpgp.example>

--a21
Sig: t=p; b=wpIGABsIAAAAKSIhBkGZ2eqmaCp41aU09iv3YiKlTk3rx4Xb
 5qbFs0WGAm/iBQJoFPpTAAAACgkQQZnZ6qZoKnhDIRA9tgkt50eA1ckzilm
 9KndQt3t4iYlab66bvtP+kP9D7zaNzvC1vE+B6jPY1gUBOQMyF5CK3yC/xZ
 Ol2ww+x8Y3PZ7OpZ1dPUlshDL5gA7ZAw==
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: <uosig-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

--a21--
]]></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 unobtrusive signature.
The signature should be verifiable using the "Alice" v4 certificate found in <xref section="2.1.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/>.</t>

<figure><sourcecode type="message/rfc822" name="uosig-2.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="3e4"
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: <uosig-2@openpgp.example>
In-Reply-To: <uosig-1@openpgp.example>
References: <uosig-1@openpgp.example>

--3e4
Sig: t=p; b=wnUEABYKAB0WIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCaBUz
 JwAKCRDyMVUMT0fjjmnRAQDKnIfyPyvE2lVlVOQl+H99TK+VFCvBaTZyTAV
 xnKgJ1gEAjVDQ3idx4Z4wSN+pLhWS1LdpVbWdH7mW58gS0GBz5AM=
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: <uosig-2@openpgp.example>
In-Reply-To: <uosig-1@openpgp.example>
References: <uosig-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--

--3e4--
]]></sourcecode></figure>

</section>
<section anchor="alice-to-david-followup"><name>Alice to David Followup</name>

<t>The message below is a <spanx style="verb">multipart/alternative</spanx> e-mail that is a self-reply from about a week later.
In the meantime, Alice has gotten a new OpenPGP certificate, so the message is signed with both her old key and her new key.
This message's signatures should be verifiable respectively using either the "Alice" v4 certificate found in <xref section="2.1.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/> or the "Alice" v6 certificate found in <xref section="2.2.1" sectionFormat="of" target="I-D.bre-openpgp-samples"/>.</t>

<figure><sourcecode type="message/rfc822" name="uosig-3.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="0cd"
MIME-Version: 1.0
From: Alice Lovelace <alice@openpgp.example>
To: David Deluxe <david@openpgp.example>
Subject: Re: Checking in
Date: Thu, 08 May 2025 18:41:05 -0400
Message-ID: <uosig-3@openpgp.example>
In-Reply-To: <uosig-2@openpgp.example>
References: <uosig-2@openpgp.example>

--0cd
Sig: t=p; b=wnUEABYKAB0WIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCaB0z
 AQAKCRDyMVUMT0fjjtCJAQCLvEeDH/grJ9szJTEPumRz0lvQm1f3GHNuTnS
 W9+SV/wD/YpPK4oMy2Cbrzo9JagpO4uxXkbCWQIHI9HFlwkz8Hg0=
Sig: t=p; b=wpIGABsIAAAAKSIhBuRqR5oGQqpTb/U1uxxDl7NeiBI/TgFl
 Z9LvdROjBBHyBQJoHTMBAAAACgkQ5GpHmgZCqlOwFhA99dXXagDzmkcTALm
 p1ZYQ0IyBvaqxRgRwNHw7VdYBSZ66F1vAjY44pdc8ynahPGHexB4AdfXFeb
 K1GcqiREQgwF74RoCegJ6ZZkRfWCr3Cw==
MIME-Version: 1.0
From: Alice Lovelace <alice@openpgp.example>
To: David Deluxe <david@openpgp.example>
Subject: Re: Checking in
Date: Thu, 08 May 2025 18:41:05 -0400
Message-ID: <uosig-3@openpgp.example>
In-Reply-To: <uosig-2@openpgp.example>
References: <uosig-2@openpgp.example>
Content-Type: multipart/alternative; boundary="97a"; hp="clear"

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

Hey David,

Also, please spell my name correctly in the
website's acknowledgements section.

Kind regards,
Alice

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

<html><head></head><body><p>Hey David,</p>
<p>Also, please spell my name correctly in the
website's acknowledgements section.</p>
<p>Kind regards,
Alice</p></body></html>
--97a--

--0cd--
]]></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>
<section anchor="document-history"><name>Document History</name>

<t>Note to RFC Editor: this section should be removed before publication.</t>

<section anchor="changes-between-draft-gallagher-email-invisible-signatures-00-and-draft-gallagher-email-unobtrusive-signatures-00"><name>Changes Between draft-gallagher-email-invisible-signatures-00 and draft-gallagher-email-unobtrusive-signatures-00</name>

<t><list style="symbols">
  <t>Updated sender canonicalization guidance from <bcp14>MUST</bcp14> to <bcp14>SHOULD</bcp14>.</t>
  <t>Registries changed to SPECIFICATION <bcp14>REQUIRED</bcp14>.</t>
  <t>Improved test vectors.</t>
  <t>Renamed to "Unobtrusive Signatures".</t>
  <t>Explicitly allow folding whitespace.</t>
  <t>Document existing convention re attachment filenames.</t>
  <t>Fixed references.</t>
  <t>Various clarifications to wording.</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
JSV1AAA=

-->

</rfc>

