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


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

]>


<rfc ipr="trust200902" docName="draft-ietf-mailmaint-unobtrusive-signatures-01" category="info" submissionType="IETF" updates="3156, 8551" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Unobtrusive End-to-End Email 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="2026" month="January" day="06"/>

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

    <abstract>


<?line 44?>

<t>This document deals with end-to-end cryptographically signed email.
It introduces a novel structure for signed email
that is designed to avoid creating any disturbance in legacy email clients.
This "unobtrusive" signature structure removes disincentives for signing email.</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-ietf-mailmaint-unobtrusive-signatures/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        MAILMAINT Working Group mailing list (<eref target="mailto:mailmaint@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mailmaint/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mailmaint/"/>.
      </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 51?>

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

<t>Several different standard structures
for end-to-end cryptographically signed email exist
(see Sections <xref target="RFC9787" section="4.1.1.1" sectionFormat="bare"/>, <xref target="RFC9787" section="4.1.1.2" sectionFormat="bare"/> and <xref target="RFC9787" section="4.1.2.1" sectionFormat="bare"/> of <xref target="RFC9787"/>).
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 email clients that don't understand the signing structure.
This document offers another signed email structure,
which is designed to be transparent to legacy email clients.</t>

<t>The goal of this mechanism is to help email 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"/> and <xref target="CMS"/>,
but can be extended to be used with 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 email.
This document also updates <xref target="RFC8551"/> by providing an additional mechanism
for producing and consuming CMS-signed MIME email.</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 an OpenPGP Detached Signature
as described by <xref section="10.4" sectionFormat="of" target="OpenPGP"/>.</t>
  <t>"CMS Signature" refers to an <spanx style="verb">application/pkcs7-signature</spanx> object as described by <xref section="3.5.3.1" sectionFormat="of" target="RFC8551"/>.</t>
  <t>"MUA" refers to a Mail User Agent, which is also known as an email 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>
  <t>"<spanx style="verb">CRLF</spanx>" refers to "Carriage Return followed by Line Feed",
the standard email line-ending sequence of two octets, <spanx style="verb">CR</spanx> (0x0D) and <spanx style="verb">LF</spanx> (0x0A).</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="RFC9787"/> 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="RFC9787"/> or
the PGP/MIME Signing Cryptographic Layer (multipart/signed) described in <xref section="4.1.2.1" sectionFormat="of" target="RFC9787"/>
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="RFC9787"/> 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="RFC9787"/>:</t>

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

<figure><artwork type="ascii-art"><![CDATA[
└┬╴multipart/mixed
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers authenticity and integrity
if and only if the Protected Part contains one or more valid <spanx style="verb">Sig</spanx> headers.</t>

<t>This format is a Simple Cryptographic Envelope as specified in <xref section="4.4.1" sectionFormat="of" target="RFC9787"/>,
and the Protected Part (with all 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 values currently defined are <spanx style="verb">p</spanx> (meaning an OpenPGP signature) and <spanx style="verb">c</spanx> (meaning a CMS 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 Folding White Space (<xref section="3.2.2" sectionFormat="of" target="RFC5322"/>)
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
(with all leading <spanx style="verb">Sig</spanx> Header Fields removed).
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.
<spanx style="verb">Sig</spanx> header fields <bcp14>MUST NOT</bcp14> appear in a non-leading position.</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="RFC9788"/>,
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="RFC9787"/>,
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>If <spanx style="verb">h</spanx> is <spanx style="verb">Sig</spanx>, skip that header, otherwise</t>
      <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>The signing system takes <spanx style="verb">innerbytes</spanx> and the signing key <spanx style="verb">key</spanx>,
yielding a respective signature payload <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="RFC9787"/>,
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 (with all leading <spanx style="verb">Sig</spanx> Header Fields removed)
<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 any line begins with the string "From ",
either the Quoted-Printable or Base64 MIME encoding <bcp14>MUST</bcp14> be applied,
and if Quoted-Printable is used, at least one of the characters in the string "From " <bcp14>MUST</bcp14> 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 anchor="cms-signature-details"><name>CMS Signature Details</name>

<t>The CMS signature is a CMS ContentInfo containing
a single CMS object of type SignedData.
The SignedData encapContentInfo eContent field <bcp14>MUST</bcp14> be absent.
The signerInfos field contains the signatures for the canonical bytestring.</t>

<t>This specification is directly aligned with the specification
of the <spanx style="verb">application/pkcs7-signature</spanx> media type in <xref section="3.5.3.1" sectionFormat="of" target="RFC8551"/>.</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="RFC9788"/>.</t>

</section>
<section anchor="validating-an-unobtrusive-signature"><name>Validating an Unobtrusive Signature</name>

<t>When validating an unobtrusive signature,
the signature data (that is, the value of the <spanx style="verb">b</spanx> field)
is converted from Base64 to binary format.
When <spanx style="verb">t=p</spanx>, this decoding yields a binary-format OpenPGP Detached Signature.
When <spanx style="verb">t=c</spanx>, it yields a CMS signature in PKCS7 format.
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 leading <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 renders 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 type="ascii-art"><![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 type="ascii-art"><![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>
<section anchor="consistency-with-summary-view-for-tampered-messages"><name>Consistency with Summary View for Tampered Messages</name>

<t>Many MUAs have two different views of a given message:</t>

<t><list style="symbols">
  <t>A summary view, when rendering an overview of the contents of a mailbox,
for example showing only <spanx style="verb">From</spanx>, <spanx style="verb">Subject</spanx>, <spanx style="verb">Date</spanx>, and "unread" status
information for any given message, and</t>
  <t>A message view, for displaying the message itself,
with its header context, cryptographic summary, and full contents.</t>
</list></t>

<t>The user reasonably expects that, for any given message,
the information available in the summary view should match the message view.</t>

<t>Some MUAs render the summary view after ingesting the full message,
but other MUAs might render the summary view
without ever accessing anything other than the Outer Header Section.
If the latter style of MUA gains access to a full message that has a valid unobtrusive signature,
it can construct a candidate summary view using the signed header field information.
If the candidate summary view differs from the already displayed summary view,
then the Outer Header Section has most likely been tampered with in transit.</t>

<t>The MUA <bcp14>MUST NOT</bcp14> render the message view in such a way
that its header information does not match the summary view,
as this will lead to user confusion about the message itself.</t>

<t>In such a situation, the MUA has two reasonable choices:</t>

<t><list style="symbols">
  <t>The MUA <bcp14>MAY</bcp14> treat the unobtrusive signature as invalid,
and show a message view that aligns with the already displayed summary view
by rendering only the Outer Header Section.
Such a message would have a cryptographic summary of <spanx style="verb">unprotected</spanx>.</t>
  <t>The MUA <bcp14>MAY</bcp14> accept the unobtrusive signature
(yielding a cryptographic summary of <spanx style="verb">signed-only</spanx>),
and update the summary view to use the candidate summary view instead.
Such an updated summary view may surprise a user who is used to
the summary view only sustaining minor changes
(e.g., from "unread" to "read") upon rendering the message view.</t>
</list></t>

<t>A more complex approach in such a situation would be
for the MUA to alert the user that the message may have been tampered with in transit,
and allow them to choose to view either form of the message.
This is similar to the approach described in <xref section="6.2.1.1" sectionFormat="of" target="RFC9787"/>.</t>

<t>Note that an MUA that renders the summary view only after
evaluating the full message will never encounter this problem,
as the summary view will be fully aligned with the message view from the start.</t>

<t>Note also that this concern applies to all forms of signed-only mail with header protection,
not just to mail protected with an unobtrusive signature.</t>

<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="RFC9788"/>,
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 anchor="multiple-openpgp-signatures"><name>Multiple OpenPGP Signatures</name>

<t>Note that when a message is signed by multiple OpenPGP keys,
the composer <bcp14>MAY</bcp14> structure the message with each OpenPGP signature packet (see <xref section="5.2" sectionFormat="of" target="OpenPGP"/>)
in its own <spanx style="verb">Sig: t=p</spanx> header field,
or it <bcp14>MAY</bcp14> pack the OpenPGP signature packets together
into a single OpenPGP Detached Signature (see <xref section="10.4" sectionFormat="of" target="OpenPGP"/>)
and place them in a single <spanx style="verb">Sig: t=p</spanx> header field.
The verifying implementation <bcp14>MUST</bcp14> consider all appropriately placed <spanx style="verb">Sig: t=p</spanx> header fields,
regardless of how many signature packets are included in each header field.
It <bcp14>MAY</bcp14> coalesce the decoded <spanx style="verb">b=</spanx> data from multiple <spanx style="verb">Sig: t=p</spanx> header fields
into a single OpenPGP Detached Signature
(by simply concatenating the base64-decoded <spanx style="verb">b</spanx> values)
before attempting verification.</t>

<t>Some MIME parsers have a fixed upper bound on the size of any MIME header field.
A composer signing the message with more than one key should consider
the size of the OpenPGP signatures when generating the <spanx style="verb">Sig: t=p</spanx> header fields
to avoid breaking the message for recipients who use those constrained parsers.
If the total size of the cumulative signature packets are very large,
the composer <bcp14>MAY</bcp14> split up the OpenPGP Detached Signature at OpenPGP Signature packet boundaries,
and place each disaggregated OpenPGP Detached Signature into a separate header field.</t>

<t>A good rule of thumb is to ensure each <spanx style="verb">Sig: t=p</spanx> header field is no larger than 50 KiB.</t>

</section>
<section anchor="multiple-cms-signatures"><name>Multiple CMS Signatures</name>

<t>When a message is signed by multiple CMS keys,
each CMS signature <bcp14>SHOULD</bcp14> be placed in its own <spanx style="verb">Sig: t=c</spanx> header field.</t>

</section>
</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:</t>

<t><list style="symbols">
  <t>it is within the MIME headers of the only subpart of a <spanx style="verb">multipart/mixed</spanx> message, and</t>
  <t>it appears before any non-<spanx style="verb">Sig</spanx> header field</t>
</list></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>An alternate design considered for unobtrusive signatures was
to simply place the <spanx style="verb">Sig</spanx> header in the Outer Header Section of the message itself,
without requiring any additional MIME structure.
This was rejected in favor of the MIME structure described in <xref target="mime-structure"/> for the following reasons:</t>

<t><list style="symbols">
  <t>Unobtrusive signatures always offer Header Protection aligned with <xref target="RFC9788"/>,
so the signature needs to be able to cover those Header Fields generated by the sending MUA.
But we know that most received messages contain a mix
of Header Fields generated by the sending MUA and Header Fields injected by MTAs that touch the message in transit.</t>
  <t>Placing the signature as a Header Field in the Outer Header Section raises challenges
in identifying which Header Fields are covered by the signature.</t>
  <t>An MTA is more likely to modify, reorder, or enforce limits on Header Fields
in the message's Outer Header Section 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 it is part of the message body.
If the end-to-end signature was in the message's Outer 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'>Protocol</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Trace</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>Sig</c>
      <c>MIME</c>
      <c>informational</c>
      <c>no</c>
      <c>This document</c>
</texttable>

<t>The registration template called for in <xref section="4.2.1" sectionFormat="of" target="RFC3864"/> is:</t>

<texttable title="Permanent Message Header Field Registration Template for Sig">
      <ttcol align='left'>Template Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Header field name</c>
      <c><spanx style="verb">Sig</spanx></c>
      <c>Applicable protocol</c>
      <c>MIME</c>
      <c>Status</c>
      <c>informational</c>
      <c>Author/Change controller</c>
      <c>IETF</c>
      <c>Specification document(s)</c>
      <c>This document</c>
      <c>Related information</c>
      <c>RFC9580 describes OpenPGP detached signatures, RFC8551 describes <spanx style="verb">application/pkcs7-signature</spanx> objects.</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>An OpenPGP Detached Signature</c>
      <c>This document</c>
      <c><spanx style="verb">c</spanx></c>
      <c>A CMS Signature</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='References' anchor="sec-combined-references">

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



<reference anchor="RFC9787">
  <front>
    <title>Guidance on End-to-End Email Security</title>
    <author fullname="D. K. Gillmor" initials="D. K." role="editor" surname="Gillmor"/>
    <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov"/>
    <author fullname="B. Hoeneisen" initials="B." role="editor" surname="Hoeneisen"/>
    <date month="August" year="2025"/>
    <abstract>
      <t>End-to-end cryptographic protections for email 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 (MUA) implementers to help mitigate those risks and to make end-to-end email 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="RFC" value="9787"/>
  <seriesInfo name="DOI" value="10.17487/RFC9787"/>
</reference>
<reference anchor="RFC9788">
  <front>
    <title>Header Protection for Cryptographically Protected Email</title>
    <author fullname="D. K. Gillmor" initials="D. K." surname="Gillmor"/>
    <author fullname="B. Hoeneisen" initials="B." surname="Hoeneisen"/>
    <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
    <date month="August" year="2025"/>
    <abstract>
      <t>S/MIME version 3.1 introduced a mechanism to provide end-to-end cryptographic protection of email 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.</t>
      <t>This document updates the S/MIME specification (RFC 8551) 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 email messages with cryptographic protection of message headers.</t>
      <t>The Header Protection scheme defined here is also applicable to messages with PGP/MIME (Pretty Good Privacy with MIME) cryptographic protections.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9788"/>
  <seriesInfo name="DOI" value="10.17487/RFC9788"/>
</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="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="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="RFC8551">
  <front>
    <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="April" year="2019"/>
    <abstract>
      <t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8551"/>
  <seriesInfo name="DOI" value="10.17487/RFC8551"/>
</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="RFC5322">
  <front>
    <title>Internet Message Format</title>
    <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
    <date month="October" year="2008"/>
    <abstract>
      <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5322"/>
  <seriesInfo name="DOI" value="10.17487/RFC5322"/>
</reference>



    </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="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>
<reference anchor="RFC3864">
  <front>
    <title>Registration Procedures for Message Header Fields</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="J. Mogul" initials="J." surname="Mogul"/>
    <date month="September" year="2004"/>
    <abstract>
      <t>This specification defines registration procedures for the message header fields used by Internet mail, HTTP, Netnews and other applications. 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="90"/>
  <seriesInfo name="RFC" value="3864"/>
  <seriesInfo name="DOI" value="10.17487/RFC3864"/>
</reference>
<reference anchor="RFC9216">
  <front>
    <title>S/MIME Example Keys and Certificates</title>
    <author fullname="D. K. Gillmor" initials="D. K." role="editor" surname="Gillmor"/>
    <date month="April" year="2022"/>
    <abstract>
      <t>The S/MIME development community benefits from sharing samples of signed or encrypted data. This document facilitates such collaboration by defining a small set of X.509v3 certificates and keys for use when generating such samples.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9216"/>
  <seriesInfo name="DOI" value="10.17487/RFC9216"/>
</reference>
<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>



    </references>

</references>


<?line 639?>

<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> email,
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> email,
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> email 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> email
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 anchor="from-carlos-to-dana"><name>From Carlos to Dana</name>

<t>The message below is a <spanx style="verb">multipart/alternative</spanx> email,
signed with an unobtrusive CMS signature.
The signature should be verifiable using the "Carlos" X.509 certificate from
<xref section="7.1" sectionFormat="of" target="RFC9216"/>.</t>

<figure><sourcecode type="message/rfc822" name="uosig-4.eml"><![CDATA[
Content-Type: multipart/mixed; boundary="b8f"
MIME-Version: 1.0
From: Carlos Turing <carlos@smime.example>
To: Dana Hopper <dana@smime.example>
Subject: Touching base on Project Scoop
Date: Mon, 01 Dec 2025 20:41:05 -0400
Message-ID: <uosig-4@smime.example>

--b8f
Sig: t=c; b=MIIDoAYJKoZIhvcNAQcCoIIDkTCCA40CAQExDTALBglghkgB
 ZQMEAgMwCwYJKoZIhvcNAQcBoIICCzCCAgcwggG5oAMCAQICEz9eH1Qk0bQ
 BQ3gPc8GKF4UedpYwBQYDK2VwMFkxDTALBgNVBAoTBElFVEYxETAPBgNVBA
 sTCExBTVBTIFdHMTUwMwYDVQQDEyxTYW1wbGUgTEFNUFMgRWQyNTUxOSBDZ
 XJ0aWZpY2F0aW9uIEF1dGhvcml0eTAgFw0yMDEyMTUyMTM1NDRaGA8yMDUy
 MTIxNTIxMzU0NFowOjENMAsGA1UEChMESUVURjERMA8GA1UECxMITEFNUFM
 gV0cxFjAUBgNVBAMTDUNhcmxvcyBUdXJpbmcwKjAFBgMrZXADIQDCzoAyLN
 5hyE2ETWDvkZznna6ufx7kB10j8gCmkvfIraOBsDCBrTAMBgNVHRMBAf8EA
 jAAMBcGA1UdIAQQMA4wDAYKYIZIAWUDAgEwATAfBgNVHREEGDAWgRRjYXJs
 b3NAc21pbWUuZXhhbXBsZTATBgNVHSUEDDAKBggrBgEFBQcDBDAOBgNVHQ8
 BAf8EBAMCBsAwHQYDVR0OBBYEFGSF4zucHVrN5gu6Gn8IvsSczIQ/MB8GA1
 UdIwQYMBaAFGuilX26FJvkLQTRB6TRguQua4y1MAUGAytlcANBAMFRkFm3c
 uhUCKUxbGlrxtv1Etn50ugfgc4Aq5BkCll9VoJE4+DBDqi/tHBVy6+2UNg0
 FKNol8kwLufAUem7XAkxggFbMIIBVwIBATBwMFkxDTALBgNVBAoTBElFVEY
 xETAPBgNVBAsTCExBTVBTIFdHMTUwMwYDVQQDEyxTYW1wbGUgTEFNUFMgRW
 QyNTUxOSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQITP14fVCTRtAFDeA9zw
 YoXhR52ljALBglghkgBZQMEAgOggYkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3
 DQEHATAcBgkqhkiG9w0BCQUxDxcNMjUxMjAyMDA0MTA1WjBPBgkqhkiG9w0
 BCQQxQgRAKL1rWpLN627fT1QCjZRf+3Jhvr6SpbQREptLf0wBzIPktKLT4W
 nDO68KCYuZMD07gPaw9o47QxhC9C4CnXT3DDAFBgMrZXAEQOQGMe6IlrFn1
 owFikFVQ18/x9nqJ3FI2nJDOKv87VStnqsDOnMcjTLxSD5uGnKgUY15yD/Z
 p+oXksYt791AmQM=
MIME-Version: 1.0
From: Carlos Turing <carlos@smime.example>
To: Dana Hopper <dana@smime.example>
Subject: Touching base on Project Scoop
Date: Mon, 01 Dec 2025 20:41:05 -0400
Message-ID: <uosig-4@smime.example>
Content-Type: multipart/alternative; boundary="12f"; hp="clear"

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

Ahoy Dana--

Can you take a look at the most recent document on the W: drive
related to Project Scoop?

I am happy to talk with you about it Thursday.

--Carlos

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

<html><head></head><body><p>Ahoy Dana--</p>
<p>Can you take a look at the most recent document on the W: drive
related to Project Scoop?</p>
<p>I am happy to talk with you about it Thursday.</p>
<p>--Carlos</p></body></html>
--12f--

--b8f--
]]></sourcecode></figure>

</section>
</section>
<section removeInRFC="true" anchor="document-history"><name>Document History</name>

<section anchor="changes-between-draft-ietf-mailmaint-unobtrusive-signatures-00-and-draft-ietf-mailmaint-unobtrusive-signatures-01"><name>Changes Between draft-ietf-mailmaint-unobtrusive-signatures-00 and draft-ietf-mailmaint-unobtrusive-signatures-01</name>

<t><list style="symbols">
  <t>Specified CMS signatures</t>
  <t>Added implementation status section</t>
</list></t>

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

<t><list style="symbols">
  <t>Working group adoption.</t>
</list></t>

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

<t><list style="symbols">
  <t>Align IANA registration section with requests from IANA.</t>
  <t>Update references for drafts which are now RFCs.</t>
  <t>Permit multiple OpenPGP signature packets in each <spanx style="verb">Sig</spanx> header,
aligning with OpenPGP "detached signature".</t>
  <t>Clarify signing process.</t>
  <t>Guidance for possible discrepancy between "summary" and "message" views
if headers are not aligned.</t>
</list></t>

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

<t><list style="symbols">
  <t>Made explicit that <spanx style="verb">Sig</spanx> <bcp14>MUST NOT</bcp14> appear in a non-leading position.</t>
  <t>Expanded design rationale section.</t>
  <t>Clarified use of Quoted-Printable encoding.</t>
  <t>Terminology and reference cleanup.</t>
</list></t>

</section>
<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>
<section removeInRFC="true" anchor="implementation-status"><name>Implementation Status</name>

<t>RFC Editor: When this section is removed before publishing,
please also remove the reference to <xref target="RFC7942"/>.</t>

<t>As recommended in <xref target="RFC7942"/>, this section describes
the status of implementations known to the editors at the time of draft publication.</t>

<t>The description of implementations in this section is intended to assist the IETF
in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here
does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.
This is not intended as, and must not be construed to be,
a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>

<section anchor="emacs-mml-mode"><name>emacs mml-mode</name>

<t>The <spanx style="verb">mml</spanx> MUA within <spanx style="verb">emacs</spanx> has a <eref target="https://debbugs.gnu.org/78448">patch set for generating unobtrusive signatures</eref>.
This code is distributed under the General Public License, version 3 or later.</t>

</section>
<section anchor="thunderbird"><name>Thunderbird</name>

<t>The <spanx style="verb">Thunderbird</spanx> MUA has a <eref target="https://bugzilla.mozilla.org/show_bug.cgi?id=1958983">work-in-progress patch set</eref>
for generating and processing unobtrusive signatures.
This code is distributed under the Mozilla Public License, version 2.0
or the General Public License, version 2.</t>

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

<t>The authors would like to thank
the attendees of the 9th OpenPGP Email Summit for feedback and suggestions.
Additionally, Anarcat and Barry Leiba offered useful feedback on the draft.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+1963bbSJLmf5xT74BR/Sh7TFKk7lLbVQ1eJNESJVGiJEt9
+rRAEARhggANgKToKs/Zh5j9tz/2AfbnPsE+yjzJxiUzcSEou7o8vTtzxn2q
RYJAXiIjI76IjAiUy2UtdmPPPtI3bv2gH4ezyJ3bessflOOgDH/01sR0Pf3G
dXwznoV2tKFZZmw7Qbg80l1/GGiDwPLNCbQwCM1hXHbteFjGZ+A/Py7PklbL
kWqkXK1p7jQ80vGneKtaPaxuaWZom9hmrC2CcOyEwWx6pPuBb2tjewmXBkd6
24/t0LfjchP70qJZf+JGkRv4veUURtBu9Y61ue3P7CNN10ULGx2jfQ7/XfQ2
4GJMN27cQw+u7+gneA9exxHDdTXwP+M8KkHo4I9maI3gx1EcT6OjzU28CS/B
nCrytk28sNkPg0Vkb6pWNvHp0J4GqacdoLfZr1jBZNP0B6G9cAZBjN+KSUVN
eEDyKE41knmyIpp0g/VtRDE88jfTA3Ie6Us70qbukf6XOLBKehSEcWgPI/i0
nOCHv2rzI31bG4fmZBAs/L8F0xhIHCFNfRiGPfhb4P0NCRkd6bWSbmqz6QAH
CA/VdvdK+sHubk0zZ/EoCOGZMjym68OZ5zGbGDR0/cT0PNMZ2SH9DBQ0ffez
iR0d6VcnV2f2Mqq0bulHmxdHzPnP4i9SkH4OA+Rfe+DGATRW1oGFYCjNin5W
0U9cz5sE3Ad334R+bE8/M0d+5lcYAYytcZ7pcjB2/jx0h/EIphLBNb8CzEd9
JPM5M13YL44dxkk7vdHMH9hh3w0H6ebGpmv/OU5+o9b8IJzAvOfEs9fHjcP9
g/3k44H4eFDb2jvScMNl764d7NDd7XKz0g/tcjC1/akzLUfmZOrBkmhauVzW
zX4Uh6YVa1pv5EY6bNnZxPZjfWCbXqQv3Hik27zl4Y9uhctpHDihOR25FizT
UkdWsgc8jYrWjnGXhsFgZtmRbsIenQNFoYeZheymwxgzT2jxyIRHoF9bXI4D
3ZwHLnZlw2xgI5r+Uh+4ETzfN33Lhg50z3ZMa8lN6JbnwoCjCk9gI8XnG7pi
9NQYQnsCo4qwTRfa85FkkRoZ9igmQ/SZuIOBZ2vajyhhaGLIiJp2Y8/t0PSg
leHQDpFitI/McJB0FWnY6jeTT7efYZraq8i29V9/vbGpp0jfqdTwfyXxYQu5
nT5vVWp6MJSM8eXL64pWn8V6PLK5JZzKxLZGwNbRJNJHJojvKJjYOnJZ5IZm
37P1aQh8EcYuDHYBgxrplumDyBvDrTP4RuPCObrWzIuJSth+aFvuFMmO6wUd
AIlwXah12GMxLlRU0qYmtAwPmiFMdTGyfXjQHOj9ZeEK6sQMg8D/KaYhhkRR
6k+ujCJtJceuAa4CcJwfwO1ZHkseKokp5vitb4OyMf0IRitmVMxf0KWtOwEs
OlA9xu4VdbFJpITtTXNzAlE0calRxV3AOEs9mMX9AGYJbUSR6aixhTbvHXgO
dumzGy8V0WcRzIy6tvVUHxUaV2YoljmlxYWbF0Kd0U7GrZRsCfVISTNhq9ue
p8NfJgUIfmIfWHQXxpE8FemweULY2rB5HM+Ww+etH+nRFDhj6AJhXd+NXeJx
HP+vv/7TJcgfEN/vkF93D6pfvhAjww+Nzg1e3N3b3frypaT1gYeRCfvIxjFs
G7VKQIABTyRZZVPKFZB9vEb5dQGBxI0EvhgML32Zvovxw6OG/KxLoWT7tGHh
VhhpWTBM5/amp19c9nA0OS4oaSRRiMxqB3ZuDW4Q5zSwqUW4o7hxMQLN9HCj
LMXWitQekEvg8+401ZCtIIQ9GXvLSl6QCw2MhAYioxoGysMOhI0/dwcsYHVz
ADoSpA3wtpoNCa8piTy+C+QXyKPZBL+JxVREaXdaUmxmuwctEuTGgCDge4wB
+KaofxDVjcCfo2BH8YnPNO0hsSN+//VHK/m1PEh++cIbHBAlbpoBqBJc6o0S
/8Ulx8/Xre5t+7rVxM83p8b5ufqgiTtuTi9vz5vJp+TJxmWn07po8sPIQplL
GsDRB/gFB7xxedVrX14Y5xsoVuMsRYHfeT8gZ4fT0AYmgp2rgUyzQrdPe0+v
N67+z/+s7QiSb9Vqh0ByQf/a/g58QXnMvdFG4K/AaEvNnE5tM8RWYP+iMHFj
WMYSSodoBLAP5BxKYO2f/4KU+euR/rZvTWs7P4sLOOHMRUmzzEWi2eqVlYeZ
iAWXCrpR1Mxcz1E6O17jIfNd0j118e0vnuvberl28MvPGoACWFfBdMBuGygn
SC7BkgBCBqkEH6QxQrfoHSFi0MZAQYALuBYJwK6gzY4iK5H2UkfotF72M0jZ
WInFuem5uL/Uw4l2zj5fgedzKC+AXQk6k3aViz2i7MoMrkhhyJm4/HAK4bxi
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
MvmqhPiPvK6/R0fk1QzN45/w003A0UpkeNgk7eAmz7VDEt1tfYSllPEyefhl
ms/IFMaOhRNE1/EPGr5EBK3xhd2PXJypfEN0buybP7BVYFPyBL+mgaQs2Djj
Cg+PA1f7oKRJQdEKKVbOyzyFkem2tTLvRXis5J074eLzbLn+x0bNW99BJm7b
O98LNX/bPlN759r+xv2zf1TdPtp+Ca1tFfTT9svXqKjLOLQX9pnyjURfFbNA
qz8CxG8/g6h7nwfiE//a6DbP/PZwebWct7a8O+/usuu9OT087J29uTtuzOtm
73HZM+4QiPtnzvua0zI+3jW72+7geedxZ3Fz8WZ6Prq/qZ0Ppnf9+8Hp/uR+
98C5qZ7UP+8ane8FxP9TL+8375fB3k4Bqoerv9s+GO4Mi3ceNgg//sPMBFrY
EqsDEtIkxaSI1L3ACURAoRcEY9InoA3YcSaUQaEd8NI8/sGWAE9R2QJ//zxT
5sTXoTxMXkL5AgYhTbQ59Z0XJ8jh7cktTTeSFYShCR+rufxJvVfq3QZOogJt
El+6d/XL60X17MQJEMld3NyOWrcOfKp38fttw3hAgHfhXlcv8ILV8lrdu+ud
rdld7/K5b8BiGM7N/vahf7ndm14vtqqDT9P+0Ljutj5eLhfu4sFvxGOQXX3r
fLy3F33yem8+x4eWOxi33uydLcaA7SIn/Dy0Pt11pudbH4Pqzs6+89Cc2kY4
fnPpvz8dt0fGsHd17VoufNh9eB8u9ucf59XH++v7DthN7g/afHA1rHUft8bN
5uHzdDo4WOBY6++vb3db4fi94zgIDwWRJb1BVKdgRBZBYHV3QA2z6d8HJdIB
m7Y3LLM5yCleFLuIxZDtMVYOwGSgtjzyx+JQE7skBoPhe04QxxTUjbBKOtVT
kAHfgJSNAVBB34RXqO42heRhCWubi2/jd2wPvqsSljKWIhWZVIhhkkKs3lJU
nE5VVSzGNUXlq7+Oa+RrA1Wbe19vc+uPYKXt74CVqtbg/y+sxJ6tg5QyPTja
AVvjJWW6/Y3KtEjpFijTottwAwKt/ghWqiJWMro5rBQ33hvdxvm8ZTdPN53w
/WH0+X2vdTWbXH+uevPupDbcPjm9mPX8G3j6/vDNzd3morn5ML062wk6y61G
P/wcHL43nenlzuz5w7jfuO+2T9uHp8feYvz54NSpvvuKGT27/nS9G5x0P017
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
nHlJc8IEIgFU0f4vgry/rWWkAAA=

-->

</rfc>

