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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-autocrypt-lamps-protected-headers-00" category="info">

  <front>
    <title>Protected Headers for Cryptographic E-mail</title>

    <author initials="B.R." surname="Einarsson" fullname="Bjarni Rúnar Einarsson">
      <organization>Mailpile ehf</organization>
      <address>
        <postal>
          <street>Baronsstigur</street>
          <country>Iceland</country>
        </postal>
        <email>bre@mailpile.is</email>
      </address>
    </author>
    <author initials="." surname="juga" fullname="juga">
      <organization>Independent</organization>
      <address>
        <email>juga@riseup.net</email>
      </address>
    </author>
    <author initials="D.K." surname="Gillmor" fullname="Daniel Kahn Gillmor">
      <organization abbrev="ACLU">American Civil Liberties Union</organization>
      <address>
        <postal>
          <street>125 Broad St.</street>
          <city>New York, NY</city>
          <code>10004</code>
          <country>USA</country>
        </postal>
        <email>dkg@fifthhorseman.net</email>
      </address>
    </author>

    <date year="2019" month="November" day="04"/>

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

    <abstract>


<t>This document describes a common strategy to extend the end-to-end cryptographic protections provided by PGP/MIME, etc. to protect message headers in addition to message bodies.
In addition to protecting the authenticity and integrity of headers via signatures, it also describes how to preserve the confidentiality of the Subject header.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>E-mail end-to-end security with OpenPGP and S/MIME standards can provide integrity, authentication, non-repudiation and confidentiality to the body of a MIME e-mail message.
However, PGP/MIME (<xref target="RFC3156"/>) alone does not protect message headers.
And the structure to protect headers defined in S/MIME 3.1 (<xref target="RFC3851"/>) has not seen widespread adoption.</t>

<t>This document defines a scheme, “Protected Headers for Cryptographic E-mail”, which has been adopted by multiple existing e-mail clients in order to extend the cryptographic protections provided by PGP/MIME to also protect the message headers.</t>

<t>This document describes how these protections can be applied to cryptographically signed messages, and also discusses some of the challenges of encrypting many transit-oriented headers.</t>

<t>It offers guidance for protecting the confidentiality of non-transit-oriented headers like Subject, and also offers a means to preserve backwards compatibility so that an encrypted Subject remains available to recipients using software that does not implement support for the Protected Headers scheme.</t>

<t>The document also discusses some of the compatibility constraints and usability concerns which motivated the design of the scheme, as well as limitations and a comparison with other proposals.</t>

<t>While the document (and the authors’) focus is primarily PGP/MIME, we believe the technique is broadly applicable and would also apply to other MIME-compatible cryptographic e-mail systems, including S/MIME (<xref target="RFC8551"/>).  Furthermore, this technique has already proven itself as a useful building block for other improvements to cryptographic e-mail, such as the Autocrypt Level 1.1 (<xref target="Autocrypt"/>) “Gossip” mechanism.</t>

<section anchor="requirements-language" title="Requirements Language">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” 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>

</section>
<section anchor="terminology" title="Terminology">

<t>For the purposes of this document, we define the following concepts:</t>

<t><list style="symbols">
  <t><spanx style="emph">MUA</spanx> is short for Mail User Agent; an e-mail client.</t>
  <t><spanx style="emph">Protection</spanx> of message data refers to cryptographic encryption and/or signatures, providing confidentiality, authenticity or both.</t>
  <t><spanx style="emph">Cryptographic Layer</spanx>, <spanx style="emph">Cryptographic Envelope</spanx> and <spanx style="emph">Cryptographic Payload</spanx> are defined in <xref target="cryptographic-structure"/></t>
  <t><spanx style="emph">Original Headers</spanx> are the <xref target="RFC2822"/> message headers as known to the sending MUA at the time of message composition.</t>
  <t><spanx style="emph">Protected Headers</spanx> are any headers protected by the scheme described in this document.</t>
  <t><spanx style="emph">Exposed Headers</spanx> are any headers outside the Cryptographic Payload (protected or not).</t>
  <t><spanx style="emph">Obscured Headers</spanx> are any Protected Headers which have been modified or removed from the set of Exposed Headers.</t>
  <t><spanx style="emph">Legacy Display Part</spanx> is a MIME construct which provides visibility for users of legacy clients of data from the Original Headers which may have been removed or obscured from the Exposed Headers. It is defined in <xref target="legacy-display"/>.</t>
  <t><spanx style="emph">User-Facing Headers</spanx> are explained and enumerated in <xref target="user-facing-headers"/>.</t>
  <t><spanx style="emph">Structural Headers</spanx> are documented in <xref target="structural-headers"/>.</t>
</list></t>

<section anchor="user-facing-headers" title="User-Facing Headers">

<t>Of all the headers that an e-mail message may contain, only a handful are typically presented directly to the user.
The user-facing headers are:</t>

<t><list style="symbols">
  <t><spanx style="verb">Subject</spanx></t>
  <t><spanx style="verb">From</spanx></t>
  <t><spanx style="verb">To</spanx></t>
  <t><spanx style="verb">Cc</spanx></t>
  <t><spanx style="verb">Date</spanx></t>
  <t><spanx style="verb">Reply-To</spanx></t>
  <t><spanx style="verb">Followup-To</spanx></t>
</list></t>

<t>The above is a complete list.  No other headers are considered “user-facing”.</t>

<t>Other headers may affect the visible rendering of the message (e.g., <spanx style="verb">References</spanx> and <spanx style="verb">In-Reply-To</spanx> may affect the placement of a message in a threaded discussion), but they are not directly displayed to the user and so are not considered “user-facing” for the purposes of this document.</t>

</section>
<section anchor="structural-headers" title="Structural Headers">

<t>A message header whose name begins with <spanx style="verb">Content-</spanx> is referred to in this document as a “structural” header.</t>

<t>These headers indicate something about the specific MIME part they are attached to, and cannot be transferred or copied to other parts without endangering the readability of the message.</t>

<t>This includes (but is not limited to):</t>

<t><list style="symbols">
  <t><spanx style="verb">Content-Type</spanx></t>
  <t><spanx style="verb">Content-Transfer-Encoding</spanx></t>
  <t><spanx style="verb">Content-Disposition</spanx></t>
</list></t>

<t>Note that no “user-facing” headers (<xref target="user-facing-headers"/>) are also “structural” headers.  Of course, many headers are neither “user-facing” nor “structural”.</t>

<t>FIXME: are there any non-<spanx style="verb">Content-*</spanx> headers we should consider as structural?</t>

</section>
</section>
</section>
<section anchor="protected-headers-summary" title="Protected Headers Summary">

<t>The Protected Headers scheme relies on three backward-compatible changes to a cryptographically-protected e-mail message:</t>

<t><list style="symbols">
  <t>Headers known to the composing MUA at message composition time are (in addition to their typical placement as Exposed Headers on the outside of the message) also present in the MIME header of the root of the Cryptographic Payload.
These Protected Headers share cryptographic properties with the rest of the Cryptographic Payload.</t>
  <t>When the Cryptographic Envelope includes encryption, any Exposed Header MAY be <spanx style="emph">obscured</spanx> by a transformation (including deletion).</t>
  <t>If the composing MUA intends to obscure any user-facing headers, it MAY add a decorative “Legacy Display” MIME part to the Cryptographic Payload which additionally duplicates the original values of the obscured user-facing headers.</t>
</list></t>

<t>When a composing MUA encrypts a message, it SHOULD obscure the <spanx style="verb">Subject:</spanx> header, by using the literal string <spanx style="verb">...</spanx> (three U+002E FULL STOP characters) as the value of the exposed <spanx style="verb">Subject:</spanx> header.</t>

<t>When a receiving MUA encounters a message with a Cryptographic Envelope, it treats the headers of the Cryptographic Payload as belonging to the message itself, not just the subpart.
In particular, when rendering a header for any such message, the renderer SHOULD prefer the header’s Protected value over its Exposed value.</t>

<t>A receiving MUA that understands Protected Headers and discovers a Legacy Display part SHOULD hide the Legacy Display part when rendering the message.</t>

<t>The following sections contain more detailed discussion.</t>

</section>
<section anchor="cryptographic-structure" title="Cryptographic MIME Message Structure">

<t>Implementations use the structure of an e-mail message to protect the headers.
This section establishes some conventions about how to think about message structure.</t>

<section anchor="cryptographic-layer" title="Cryptographic Layers">

<t>“Cryptographic Layer” refers to a MIME substructure that supplies some cryptographic protections to an internal MIME subtree.
The internal subtree is known as the “protected part” though of course it may itself be a multipart object.</t>

<t>For PGP/MIME <xref target="RFC3156"/> there are two forms of Cryptographic Layers, signing and encryption.</t>

<t>In the diagrams below, <u>↧</u> is used to indicate “decrypts to”.</t>

<section anchor="multipart-signed" title="PGP/MIME Signing Cryptographic Layer (multipart/signed)">

<figure><artwork><![CDATA[
└┬╴multipart/signed
 ├─╴[protected part]
 └─╴application/pgp-signature
]]></artwork></figure>

</section>
<section anchor="multipart-encrypted" title="PGP/MIME Encryption Cryptographic Layer (multipart/encrypted)">

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └─╴[protected part]
]]></artwork></figure>

</section>
</section>
<section anchor="cryptographic-envelope" title="Cryptographic Envelope">

<t>The Cryptographic Envelope is the largest contiguous set of Cryptographic Layers of an e-mail message starting with the outermost MIME type (that is, with the Content-Type of the message itself).</t>

<t>If the Content-Type of the message itself is not a Cryptographic Layer, then the message has no cryptographic envelope.</t>

<t>“Contiguous” in the definition above indicates that if a Cryptographic Layer is the protected part of another Cryptographic Layer, the layers together comprise a single Cryptographic Envelope.</t>

<t>Note that if a non-Cryptographic Layer intervenes, all Cryptographic Layers within the non-Cryptographic Layer <spanx style="emph">are not</spanx> part of the Cryptographic Envelope (see the example in <xref target="baroque-example"/>).</t>

<t>Note also that the ordering of the Cryptographic Layers implies different cryptographic properties.
A signed-then-encrypted message is different than an encrypted-then-signed message.</t>

</section>
<section anchor="cryptographic-payload" title="Cryptographic Payload">

<t>The Cryptographic Payload of a message is the first non-Cryptographic Layer – the “protected part” – within the Cryptographic Envelope.
Since the Cryptographic Payload itself is a MIME part, it has its own set of headers.</t>

<t>Protected headers are placed on (and read from) the Cryptographic Payload, and should be considered to have the same cryptographic properties as the message itself.</t>

<section anchor="simple-cryptographic-payloads" title="Simple Cryptographic Payloads">

<t>As described above, if the “protected part” identified in <xref target="multipart-signed"/> or <xref target="multipart-encrypted"/> is not itself a Cryptographic Layer, that part <spanx style="emph">is</spanx> the Cryptographic Payload.</t>

<t>If the application wants to generate a message that is both encrypted and signed, it MAY use the simple MIME structure from <xref target="multipart-encrypted"/> by ensuring that the <xref target="RFC4880"/> Encrypted Message within the <spanx style="verb">application/octet-stream</spanx> part contains an <xref target="RFC4880"/> Signed Message.</t>

</section>
<section anchor="multilayer-cryptographic-envelopes" title="Multilayer Cryptographic Envelopes">

<t>It is possible to construct a Cryptographic Envelope consisting of multiple layers for PGP/MIME, typically of the following structure:</t>

<figure><artwork><![CDATA[
A └┬╴multipart/encrypted
B  ├─╴application/pgp-encrypted
C  └─╴application/octet-stream
D   ↧ (decrypts to)
E   └┬╴multipart/signed
F    ├─╴[Cryptographic Payload]
G    └─╴application/pgp-signature
]]></artwork></figure>

<t>When handling such a message, the properties of the Cryptographic Envelope are derived from the series <spanx style="verb">A</spanx>, <spanx style="verb">E</spanx>.</t>

<t>As noted in <xref target="simple-cryptographic-payloads"/>, PGP/MIME applications also have a simpler MIME construction available with the same cryptographic properties.</t>

</section>
<section anchor="baroque-example" title="A Baroque Example">

<t>Consider a message with the following overcomplicated structure:</t>

<figure><artwork><![CDATA[
H └┬╴multipart/encrypted
I  ├─╴application/pgp-encrypted
J  └─╴application/octet-stream
K   ↧ (decrypts to)
L   └┬╴multipart/signed
M    ├┬╴multipart/mixed
N    │├┬╴multipart/signed
O    ││├─╴text/plain
P    ││└─╴application/pgp-signature
Q    │└─╴text/plain
R    └─╴application/pgp-signature
]]></artwork></figure>

<t>The 3 Cryptographic Layers in such a message are rooted in parts <spanx style="verb">H</spanx>, <spanx style="verb">L</spanx>, and <spanx style="verb">N</spanx>.
But the Cryptographic Envelope of the message consists only of the properties derived from the series <spanx style="verb">H</spanx>, <spanx style="verb">L</spanx>.
The Cryptographic Payload of the message is part <spanx style="verb">M</spanx>.</t>

<t>It is NOT RECOMMENDED to generate messages with such complicated structures.
Even if a receiving MUA can parse this structure properly, it is nearly impossible to render in a way that the user can reason about the cryptographic properties of part <spanx style="verb">O</spanx> compared to part <spanx style="verb">Q</spanx>.</t>

</section>
</section>
<section anchor="exposed-headers-are-outside" title="Exposed Headers are Outside">

<t>The Cryptographic Envelope fully encloses the Cryptographic Payload, whether the message is signed or encrypted or both.
The Exposed Headers are considered to be outside of both.</t>

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

<t>This section describes the composition of a cryptographically-protected message with Protected Headers.</t>

<t>We document legacy composition of cryptographically-protected messages (without protected headers) in <xref target="legacy-composition"/>, and then describe a revised version of that algorithm in <xref target="protected-header-composition"/> that produces conformant Protected Headers.</t>

<section anchor="copying-all-headers" title="Copying All Headers">

<t>All non-structural headers known to the composing MUA are copied to the MIME header of the Cryptographic Payload.
The composing MUA SHOULD protect all known non-structural headers in this way.</t>

<t>If the composing MUA omits protection for some of the headers, the receiving MUA will have difficulty reasoning about the integrity of the headers (see <xref target="signature-replay"/>).</t>

</section>
<section anchor="confidential-subject" title="Confidential Subject">

<t>When a message is encrypted, the Subject should be obscured by replacing the Exposed Subject with three periods: <spanx style="verb">...</spanx></t>

<t>This value (<spanx style="verb">...</spanx>) was chosen because it is believed to be language agnostic and avoids communicating any potentially misleading information to the recipient (see <xref target="misunderstood-obscured-subjects"/> for a more detailed discussion).</t>

</section>
<section anchor="obscured-headers" title="Obscured Headers">

<t>Due to compatibility and usability concerns, a Mail User Agent SHOULD NOT obscure any of: <spanx style="verb">From</spanx>, <spanx style="verb">To</spanx>, <spanx style="verb">Cc</spanx>, <spanx style="verb">Message-ID</spanx>, <spanx style="verb">References</spanx>, <spanx style="verb">Reply-To</spanx>, <spanx style="verb">In-Reply-To</spanx>, (FIXME: MORE?) unless the user has indicated they have security constraints which justify the potential downsides (see <xref target="common-pitfalls"/> for a more detailed discussion).</t>

<t>Aside from that limitation, this specification does not at this time define or limit the methods a MUA may use to convert Exposed Headers into Obscured Headers.</t>

</section>
<section anchor="legacy-composition" title="Message Composition without Protected Headers">

<t>This section roughly describes the steps that a legacy MUA might use to compose a cryptographically-protected message <spanx style="emph">without</spanx> Protected Headers.</t>

<t>The message composition algorithm takes three 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 headers present (see <xref target="structural-headers"/>).</t>
  <t><spanx style="verb">origheaders</spanx>: the intended non-structural headers for the message, represented here as a table mapping from header names to header values..
For example, <spanx style="verb">origheaders['From']</spanx> refers to the value of the <spanx style="verb">From</spanx> header that the composing MUA would typically place on the message before sending it.</t>
  <t><spanx style="verb">crypto</spanx>: The series of cryptographic protections to apply (for example, “sign with the secret key corresponding to OpenPGP certificate X, then encrypt to OpenPGP certificates X and Y”).
This is a routine that accepts a MIME tree as input (the Cryptographic Payload), wraps the input in the appropriate Cryptographic Envelope, and returns the resultant MIME tree as output,</t>
</list></t>

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

<t><list style="symbols">
  <t>Apply <spanx style="verb">crypto</spanx> to <spanx style="verb">origbody</spanx>, yielding MIME tree <spanx style="verb">output</spanx></t>
  <t>For header name <spanx style="verb">h</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="symbols">
      <t>Set header <spanx style="verb">h</spanx> of <spanx style="verb">output</spanx> to <spanx style="verb">origheaders[h]</spanx></t>
    </list></t>
  <t>Return <spanx style="verb">output</spanx></t>
</list></t>

</section>
<section anchor="protected-header-composition" title="Message Composition with Protected Headers">

<t>A reasonable sequential algorithm for composing a message <spanx style="emph">with</spanx> protected headers takes two more parameters in addition to <spanx style="verb">origbody</spanx>, <spanx style="verb">origheaders</spanx>, and <spanx style="verb">crypto</spanx>:</t>

<t><list style="symbols">
  <t><spanx style="verb">obscures</spanx>: a table of headers to be obscured during encryption, mapping header names to their obscuring values.
For example, this document recommends only obscuring the subject, so that would be represented by the single-entry table <spanx style="verb">obscures = {'Subject': '...'}</spanx>.
If header <spanx style="verb">Foo</spanx> is to be deleted entirely, <spanx style="verb">obscures['Foo']</spanx> should be set to the special value <spanx style="verb">null</spanx>.</t>
  <t><spanx style="verb">legacy</spanx>: a boolean value, indicating whether any recipient of the message is believed to have a legacy client (that is, a MUA that is capable of decryption, but does not understand protected headers).</t>
</list></t>

<t>The revised algorithm for applying cryptographic protection to a message is as follows:</t>

<t><list style="symbols">
  <t>if <spanx style="verb">crypto</spanx> contains encryption, and <spanx style="verb">legacy</spanx> is <spanx style="verb">true</spanx>, and <spanx style="verb">obscures</spanx> contains any user-facing headers (see <xref target="user-facing-headers"/>), wrap <spanx style="verb">orig</spanx> in a structure that carries a Legacy Display part:
  <list style="symbols">
      <t>Create a new MIME leaf part <spanx style="verb">legacydisplay</spanx> with header <spanx style="verb">Content-Type: text/rfc822-headers; protected-headers="v1"</spanx></t>
      <t>For each obscured header name <spanx style="verb">obh</spanx> in <spanx style="verb">obscures</spanx>:
      <list style="symbols">
          <t>If <spanx style="verb">obh</spanx> is user-facing:
          <list style="symbols">
              <t>Add <spanx style="verb">obh: origheaders[ob]</spanx> to the body of <spanx style="verb">legacydisplay</spanx>.  For example, if <spanx style="verb">origheaders['Subject']</spanx> is <spanx style="verb">lunch plans?</spanx>, then add the line <spanx style="verb">Subject: lunch plans?</spanx> to the body of <spanx style="verb">legacydisplay</spanx></t>
            </list></t>
        </list></t>
      <t>Construct a new MIME part <spanx style="verb">wrapper</spanx> with <spanx style="verb">Content-Type: multipart/mixed</spanx></t>
      <t>Give <spanx style="verb">wrapper</spanx> exactly two subarts: <spanx style="verb">legacydisplay</spanx> and <spanx style="verb">origbody</spanx>, in that order.</t>
      <t>Let <spanx style="verb">payload</spanx> be MIME part <spanx style="verb">wrapper</spanx></t>
    </list></t>
  <t>Otherwise:
  <list style="symbols">
      <t>Let <spanx style="verb">payload</spanx> be MIME part <spanx style="verb">origbody</spanx></t>
    </list></t>
  <t>For each header name <spanx style="verb">h</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="symbols">
      <t>Set header <spanx style="verb">h</spanx> of MIME part <spanx style="verb">payload</spanx> to <spanx style="verb">origheaders[h]</spanx></t>
    </list></t>
  <t>FIXME: Enigmail adds <spanx style="verb">protected-headers="v1"</spanx> parameter to <spanx style="verb">payload</spanx> here.  Is this necessary?</t>
  <t>Apply <spanx style="verb">crypto</spanx> to <spanx style="verb">payload</spanx>, producing MIME tree <spanx style="verb">output</spanx></t>
  <t>If <spanx style="verb">crypto</spanx> contains encryption:
  <list style="symbols">
      <t>For each obscured header name <spanx style="verb">obh</spanx> in <spanx style="verb">obscures</spanx>:
      <list style="symbols">
          <t>If <spanx style="verb">obscures[obh]</spanx> is <spanx style="verb">null</spanx>:
          <list style="symbols">
              <t>Drop <spanx style="verb">obh</spanx> from <spanx style="verb">origheaders</spanx></t>
            </list></t>
          <t>Else:
          <list style="symbols">
              <t>Set <spanx style="verb">origheaders[obh]</spanx> to <spanx style="verb">obscures[obh]</spanx></t>
            </list></t>
        </list></t>
    </list></t>
  <t>For each header name <spanx style="verb">h</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="symbols">
      <t>Set header <spanx style="verb">h</spanx> of <spanx style="verb">output</spanx> to <spanx style="verb">origheaders[h]</spanx></t>
    </list></t>
  <t>return <spanx style="verb">output</spanx></t>
</list></t>

<t>Note that both new parameters, <spanx style="verb">obscured</spanx> and <spanx style="verb">legacy</spanx>, are effectively ignored if <spanx style="verb">crypto</spanx> does not contain encryption.
This is by design, because they are irrelevant for signed-only cryptographic protections.</t>

</section>
</section>
<section anchor="legacy-display" title="Legacy Display">

<t>MUAs typically display user-facing headers (<xref target="user-facing-headers"/>) directly to the user.
An encrypted message may be read by a decryption-capable legacy MUA that is unaware of this standard.
The user of such a legacy client risks losing access to any obscured headers.</t>

<t>This section presents a workaround to mitigate this risk by restructuring the Cryptographic Payload before encrypting to include a “Legacy Display” part.</t>

<section anchor="message-generation-including-a-legacy-display-part" title="Message Generation: Including a Legacy Display Part">

<t>A generating MUA that wants to make an Obscured Subject (or any other user-facing header) visible to a recipient using a legacy MUA SHOULD modify the Cryptographic Payload by wrapping the intended body of the message in a <spanx style="verb">multipart/mixed</spanx> MIME part that prefixes the intended body with a Legacy Display part.</t>

<t>The Legacy Display part MUST be of Content-Type <spanx style="verb">text/rfc822-headers</spanx>, and MUST contain a <spanx style="verb">protected-headers</spanx> parameter whose value is <spanx style="verb">v1</spanx>.
It SHOULD be marked with <spanx style="verb">Content-Disposition: inline</spanx> to encourage recipients to render it.</t>

<t>The contents of the Legacy Display part MUST be only the user-facing headers that the sending MUA intends to obscure after encryption.</t>

<t>The original body (now a subpart) SHOULD also be marked with <spanx style="verb">Content-Disposition: inline</spanx> to discourage legacy clients from presenting it as an attachment.</t>

<section anchor="legacy-display-transformation" title="Legacy Display Transformation">

<t>Consider a message whose Cryptographic Payload, before encrypting, that would have a traditional <spanx style="verb">multipart/alternative</spanx> structure:</t>

<figure><artwork><![CDATA[
X └┬╴multipart/alternative
Y  ├─╴text/plain
Z  └─╴text/html
]]></artwork></figure>

<t>When adding a Legacy Display part, this structure becomes:</t>

<figure><artwork><![CDATA[
V └┬╴multipart/mixed
W  ├─╴text/rfc822-headers ("Legacy Display" part)
X  └┬╴multipart/alternative ("original body")
Y   ├─╴text/plain
Z   └─╴text/html
]]></artwork></figure>

<t>Note that with the inclusion of the Legacy Display part, the Cryptographic Payload is the <spanx style="verb">multipart/mixed</spanx> part (part <spanx style="verb">V</spanx> in the example above), so Protected Headers should be placed at that part.</t>

</section>
<section anchor="when-to-generate-legacy-display" title="When to Generate Legacy Display">

<t>A MUA SHOULD transform a Cryptographic Payload to include a Legacy Display part only when:</t>

<t><list style="symbols">
  <t>The message is going to be encrypted, and</t>
  <t>At least one user-facing header (see <xref target="user-facing-headers"/>) is going to be obscured</t>
</list></t>

<t>Additionally, if the sender knows that the recipient’s MUA is capable of interpreting Protected Headers, it SHOULD NOT attempt to include a Legacy Display part.
(Signalling such a capability is out of scope for this document)</t>

</section>
</section>
<section anchor="no-render-legacy-display" title="Message Rendering: Omitting a Legacy Display Part">

<t>A MUA that understands Protected Headers may receive an encrypted message that contains a Legacy Display part.
Such an MUA SHOULD avoid rendering the Legacy Display part to the user at all, since it is aware of and can render the actual Protected Headers.</t>

<t>If a Legacy Display part is detected, the Protected Headers should still be pulled from the Cryptographic Payload (part <spanx style="verb">V</spanx> in the example above), but the body of message SHOULD be rendered as though it were only the original body (part <spanx style="verb">X</spanx> in the example above).</t>

<section anchor="legacy-display-detection-algorithm" title="Legacy Display Detection Algorithm">

<t>A receiving MUA acting on a message SHOULD detect the presence of a Legacy Display part and the corresponding “original body” with the following simple algorithm:</t>

<t><list style="symbols">
  <t>Check that all of the following are true for the message:</t>
  <t>The Cryptographic Envelope must contain an encrypting Cryptographic Layer</t>
  <t>The Cryptographic Payload must have a <spanx style="verb">Content-Type</spanx> of <spanx style="verb">multipart/mixed</spanx></t>
  <t>The Cryptographic Payload must have exactly two subparts</t>
  <t>The first subpart of the Cryptographic Payload must have a <spanx style="verb">Content-Type</spanx> of <spanx style="verb">text/rfc822-headers</spanx></t>
  <t>The first subpart of the Cryptographic Payload’s <spanx style="verb">Content-Type</spanx> must contain a property of <spanx style="verb">protected-headers</spanx>, and its value must be <spanx style="verb">v1</spanx>.</t>
  <t>If all of the above are true, then the first subpart is the Legacy Display part, and the second subpart is the “original body”.  Otherwise, the message does not have a Legacy Display part.</t>
</list></t>

</section>
</section>
<section anchor="legacy-display-is-decorative-and-transitional" title="Legacy Display is Decorative and Transitional">

<t>As the above makes clear, the Legacy Display part is strictly decorative, for the benefit of legacy decryption-capable MUAs that may handle the message.
As such, the existence of the Legacy Display part and its <spanx style="verb">multipart/mixed</spanx> wrapper are part of a transition plan.</t>

<t>As the number of decryption-capable clients that understand Protected Headers grows in comparison to the number of legacy decryption-capable clients, it is expected that some senders will decide to stop generating Legacy Display parts entirely.</t>

<t>A MUA developer concerned about accessiblity of the Subject header for their users of encrypted mail when Legacy Display parts are omitted SHOULD implement the Protected Headers scheme described in this document.</t>

</section>
</section>
<section anchor="message-interpretation" title="Message Interpretation">

<t>This document does not currently provide comprehensive recommendations on how to interpret Protected Headers. This is deliberate; research and development is still ongoing. We also recognize that the tolerance of different user groups for false positives (benign conditions misidentified as security risks), vs. their need for strong protections varies a great deal and different MUAs will take different approaches as a result.</t>

<t>Some common approaches are discussed below.</t>

<section anchor="reverse-copying" title="Reverse-Copying">

<t>One strategy for interpreting Protected Headers on an incoming message is to simply ignore any Exposed Header for which a Protected counterpart is available.
This is often implemented as a copy operation (copying header back out of the Cryptographic Payload into the main message header) within the code which takes care of parsing the message.</t>

<t>A MUA implementing this strategy should pay special attention to any user facing headers (<xref target="user-facing-headers"/>).
If a message has Protected Headers, and a user-facing header is among the Exposed Headers but missing from the Protected Headers, then an MUA implementing this strategy SHOULD delete the identified Exposed Header before presenting the message to the user.</t>

<t>This strategy does not risk raising a false alarm about harmless deviations, but conversely it does nothing to inform the user if they are under attack.
This strategy does successfully mitigate and thwart some attacks, including signature replay attacks (<xref target="signature-replay"/>) and participant modification attacks (<xref target="participant-modification"/>).</t>

</section>
<section anchor="signature-invalidation" title="Signature Invalidation">

<t>An alternate strategy for interpreting Protected Headers is to consider the cryptographic signature on a message to be invalid if the Exposed Headers deviate from their Protected counterparts.</t>

<t>This state should be presented to the user using the same interface as other signature verification failures.</t>

<t>A MUA implementing this strategy MAY want to make a special exception for the <spanx style="verb">Subject:</spanx> header, to avoid invalidating the signature on any signed and encrypted message with a confidential subject.</t>

<t>Note that simple signature invalidation may be insufficient to defend against a participant modification attack (<xref target="participant-modification"/>).</t>

</section>
<section anchor="the-legacy-display-part" title="The Legacy Display Part">

<t>This part is purely decorative, for the benefit of any recipient using a legacy decryption-capable MUA.
See <xref target="no-render-legacy-display"/> for details and recommendations on how to handle the Legacy Display part.</t>

</section>
<section anchor="replying-to-a-message-with-obscured-headers" title="Replying to a Message with Obscured Headers">

<t>When replying to a message, many MUAs copy headers from the original message into their reply.</t>

<t>When replying to an encrypted message, users expect the replying MUA to generate an encrypted message if possible.
If encryption is not possible, and the reply will be cleartext, users typically want the MUA to avoid leaking previously-encrypted content into the cleartext of the reply.</t>

<t>For this reason, an MUA replying to an encrypted message with Obscured Headers SHOULD NOT leak the cleartext of any Obscured Headers into the cleartext of the reply, whether encrypted or not.</t>

<t>In particular, the contents of any Obscured Protected Header from the original message SHOULD NOT be placed in the Exposed Headers of the reply message.</t>

</section>
</section>
<section anchor="common-pitfalls" title="Common Pitfalls and Guidelines">

<t>Among the MUA authors who already implemented most of this specification,
several alternative or more encompasing specifications were discussed and
sometimes tried out in practice. This section highlights a few “pitfalls” and
guidelines based on these discussions and lessons learned.</t>

<section anchor="misunderstood-obscured-subjects" title="Misunderstood Obscured Subjects">

<t>There were many discussions around what text phrase to use to obscure the <spanx style="verb">Subject:</spanx>.
Text phrases such as <spanx style="verb">Encrypted Message</spanx> were tried but resulted in both localization problems and user confusion.</t>

<t>If the natural language phrase for the obscured <spanx style="verb">Subject:</spanx> is not localized (e.g. just English <spanx style="verb">Encrypted Message</spanx>), then it may be incomprehensible to a non-English-speaking recipient who uses a legacy MUA that renders the obscured <spanx style="verb">Subject:</spanx> directly.</t>

<t>On the other hand, if it is localized based on the sender’s MUA language settings, there is no guarantee that the recipient prefers the same language as the sender (consider a German speaker sending English text to an Anglophone).
There is no standard way for a sending MUA to infer the language preferred by the recipient (aside from statistical inference of language based on the composed message, which would in turn leak information about the supposedly-confidential message body).</t>

<t>Furthermore, implementors found that the phrase <spanx style="verb">Encrypted Message</spanx> in the subject line was sometimes understood by users to be an indication from the MUA that the message was actually encrypted.
In practice, when some MUA failed to encrypt a message in a thread that started off with an obscured <spanx style="verb">Subject:</spanx>, the value <spanx style="verb">Re: Encrypted Message</spanx> was retained even on those cleartext replies, resulting in user confusion.</t>

<t>In contrast, using <spanx style="verb">...</spanx> as the obscured <spanx style="verb">Subject:</spanx> was less likely to be seen as an indicator from the MUA of message encryption, and it also neatly sidesteps the localization problems.</t>

</section>
<section anchor="replyforward-losing-subjects" title="Reply/Forward Losing Subjects">

<t>When the user of a legacy MUA replies to or forwards a message where the Subject has been obscured, it is likely that the new subject will be <spanx style="verb">Fwd: ...</spanx> or <spanx style="verb">Re: ...</spanx> (or the localized equivalent).
This breaks an important feature: people are used to continuity of subject within a thread.  It is especially unfortunate when a new participant is added to a conversation who never saw the original subject.</t>

<t>At this time, there is no known workaround for this problem. The only solution is to upgrade the MUA to support Protected Headers.</t>

<t>The authors consider this to be only a minor concern in cases where encryption is being used because confidentiality is important.
However, in more opportunistic cases, where encryption is being used routinely regardless of the sensitivity of message contents, this cost becomes higher.</t>

</section>
<section anchor="usability-impact-of-reduced-metadata" title="Usability Impact of Reduced Metadata">

<t>Many mail user agents maintain an index of message metadata (including header data), which is used to rapidly construct mailbox overviews and search result listings.
If the process which generates this index does not have access to the encrypted payload of a message, or does not implement Protected Headers, then the index will only contain the obscured versions Exposed Headers, in particular an obscured Subject of <spanx style="verb">...</spanx>.</t>

<t>For sensitive message content, especially in a hosted MUA-as-a-service situation (“webmail”) where the metadata index is maintained and stored by a third party, this may be considered a feature as the subject is protected from the third-party.
However, for more routine communications, this harms usability and goes against user expectations.</t>

<t>Two simple workarounds exist for this use case:</t>

<t><list style="numbers">
  <t>If the metadata index is considered secure enough to handle confidential data,
the protected content may be stored directly in the index once it has been decrypted.</t>
  <t>If the metadata index is not trusted, the protected content could be re-encrypted
and encrypted versions stored in the index instead, which are then decrypted by
the client at display time.</t>
</list></t>

<t>In both cases, the process which decrypts the message and processes the Protected Headers must be able to update the metadata index.</t>

<t>FIXME: add notes about research topics and other non-simple workarounds, like oblivious server-side indexing, or searching on encrypted data.</t>

</section>
<section anchor="obscured-message-id" title="Usability Impact of Obscured Message-ID">

<t>Current MUA implementations rely on the outermost Message-ID 
for message processing and indexing purposes. This processing
often happens before any decryption is even attempted. 
Attempting to send a message with an obscured Message-ID header
would result in several MUAs not correctly processing the message,
and would likely be seen as a degradation by users.</t>

<t>Furthermore, a legacy MUA replying to a message with an obscured <spanx style="verb">Message-ID:</spanx> would be likely to produce threading information (<spanx style="verb">References:</spanx>, <spanx style="verb">In-Reply-To:</spanx>) that would be misunderstood by the original sender.
Implementors generally disapprove of breaking threads.</t>

</section>
<section anchor="usability-impact-of-obscured-fromtocc" title="Usability Impact of Obscured From/To/Cc">

<t>The impact of obscuring <spanx style="verb">From:</spanx>, <spanx style="verb">To:</spanx>, and <spanx style="verb">Cc:</spanx> headers has similar issues as discussed with obscuring the <spanx style="verb">Message-ID:</spanx> header in <xref target="obscured-message-id"/>.</t>

<t>In addition, obscuring these headers is likely to cause difficulties for a legacy client attempting formulate a correct reply (or “reply all”) to a given message.</t>

</section>
<section anchor="mailing-list-header-modifications" title="Mailing List Header Modifications">

<t>Some popular mailing-list implementations will modify the Exposed Headers of a message in specific, benign ways. In particular, it is common to add markers to the <spanx style="verb">Subject</spanx> line, and it is also common to modify either <spanx style="verb">From</spanx> or <spanx style="verb">Reply-To</spanx> in order to make sure replies go to the list instead of directly to the author of an individual post.</t>

<t>Depending on how the MUA resolves discrepancies between the Protected Headers and the Exposed Headers of a received message, these mailing list “features” may either break or the MUA may incorrectly interpret them as a security breach.</t>

<t>Implementors may for this reason choose to implement slightly different strategies for resolving discrepancies, if a message is known to come from such a mailing list. MUAs should at the very least avoid presenting false alarms in such cases.</t>

</section>
</section>
<section anchor="comparison-with-other-header-protection-schemes" title="Comparison with Other Header Protection Schemes">

<t>Other header protection schemes have been proposed (in the IETF and elsewhere) that are distinct from this mechanism.
This section documents the differences between those earlier mechanisms and this one, and hypothesizes why it has seen greater interoperable adoption.</t>

<t>The distinctions include:</t>

<t><list style="symbols">
  <t>backward compatibility with legacy clients</t>
  <t>compatibility across PGP/MIME and S/MIME</t>
  <t>protection for both confidentiality and signing</t>
</list></t>

<section anchor="smime-31" title="S/MIME 3.1 Header Protection">

<t>S/MIME 3.1 (<xref target="RFC3851"/>) introduces header protection via <spanx style="verb">message/rfc822</spanx> header parts.</t>

<t>The problem with this mechanism is that many legacy clients encountering such a message were likely to interpret it as either a forwarded message, or as an unreadable substructure.</t>

<t>For signed messages, this is particularly problematic – a message that would otherwise have been easily readable by a client that knows nothing about signed messages suddenly shows up as a message-within-a-message, just by virtue of signing.  This has an impact on <spanx style="emph">all</spanx> clients, whether they are cryptographically-capable or not.</t>

<t>For encrypted messages, whose interpretation only matters on the smaller set of cryptographically-capable legacy clients, the resulting message rendering is awkward at best.</t>

<t>Furthermore, Formulating a reply to such a message on a legacy client can also leave the user with badly-structured quoted and attributed content.</t>

<t>Additionally, a message deliberately forwarded in its own right (without preamble or adjacent explanatory notes) could potentially be confused with a message using the declared structure.</t>

<t>The mechanism described here allows cryptographically-incapable legacy MUAs to read and handle cleartext signed messages without any modifications, and permits cryptographically-capable legacy MUAs to handle encrypted messages without any modifications.</t>

<t>In particular, the Legacy Display part described in {#legacy-display} makes it feasible for a conformant MUA to generate messages with obscured Subject lines that nonetheless give access to the obscured Subject header for recipients with legacy MUAs.</t>

</section>
<section anchor="the-content-type-property-forwardedno-forwardedno" title="The Content-Type Property “forwarded=no” {forwarded=no}">

<t><xref target="I-D.draft-ietf-lamps-header-protection-requirements-00"/> contains a proposal that attempts to mitigate one of the drawbacks of the scheme described in S/MIME 3.1 (<xref target="smime-31"/>).</t>

<t>In particular, it allows <spanx style="emph">non-legacy</spanx> clients to distinguish between deliberately forwarded messages and those intended to use the defined structure for header protection.</t>

<t>However, this fix has no impact on the confusion experienced by legacy clients.</t>

</section>
<section anchor="pep-header-protection" title="pEp Header Protection">

<t><xref target="I-D.draft-luck-lamps-pep-header-protection-03"/> is applicable only to signed+encrypted mail, and does not contemplate protection of signed-only mail.</t>

<t>In addition, the pEp header protection involved for “pEp message format 2” has an additional <spanx style="verb">multipart/mixed</spanx>  layer designed to facilitate transfer of OpenPGP Transferable Public Keys, which seems orthogonal to the effort to protect headers.</t>

<t>Finally, that draft suggests that the exposed Subject header be one of “=?utf-8?Q?p=E2=89=A1p?=”, “pEp”, or “Encrypted message”.
“pEp” is a mysterious choice for most users, and see <xref target="misunderstood-obscured-subjects"/> for more commentary on why “Encrypted message” is likely to be problematic.</t>

</section>
<section anchor="dkim" title="DKIM">

<t><xref target="RFC6736"/> offers DKIM, which is often used to sign headers associated with a message.</t>

<t>DKIM is orthogonal to the work described in this document, since it is typically done by the domain operator and not the end user generating the original message.
That is, DKIM is not “end-to-end” and does not represent the intent of the entity generating the message.</t>

<t>Furthermore, a DKIM signer does not have access to headers inside an encrypted Cryptographic Layer, and a DKIM verifier cannot effectively use DKIM to verify such confidential headers.</t>

</section>
<section anchor="smime-secure-headers" title="S/MIME “Secure Headers”">

<t><xref target="RFC7508"/> describes a mechanism that embeds message header fields in the S/MIME signature using ASN.1.</t>

<t>The mechanism proposed in that draft is undefined for use with PGP/MIME.
While all S/MIME clients must be able to handle CMS and ASN.1 as well as MIME, a standard that works at the MIME layer itself should be applicable to any MUA that can work with MIME, regardess of whether end-to-end security layers are provided by S/MIME or PGP/MIME.</t>

<t>That mechanism also does not propose a means to provide confidentiality protection for headers within an encrypted-but-not-signed message.</t>

<t>Finally, that mechanism offers no equivalent to the Legacy Display described in <xref target="legacy-display"/>.
Instead, sender and receiver are expected to negotiate in some unspecified way to ensure that it is safe to remove or modify Exposed Headers in an encrypted message.</t>

</section>
<section anchor="triple-wrapping" title="Triple-Wrapping">

<t><xref target="RFC2634"/> defines “Triple Wrapping” as a means of providing cleartext signatures over signed and encrypted material.
This can be used in combination with the mechanism described in <xref target="RFC7508"/> to authenticate some headers for transport using S/MIME.</t>

<t>But it does not offer confidentiality protection for the protected headers, and the signer of the outer layer of a triple-wrapped message may not be the originator of the message either.</t>

<t>In practice on today’s Internet, DKIM (<xref target="RFC6736"/> provides a more widely-accepted cryptographic header-verification-for-transport mechanism  than triple-wrapped messages.</t>

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

<t>The subsections below provide example messages that implement the Protected Header scheme.</t>

<t>The secret keys and OpenPGP certificates from <xref target="I-D.draft-bre-openpgp-samples-00"/> can be used to decrypt and verify them.</t>

<t>They are provided in textual source form as <xref target="RFC2822"/> messages.</t>

<section anchor="test-vector-signed-only" title="Signed Message with Protected Headers">

<t>This shows a clearsigned message.  Its MIME message structure is:</t>

<figure><artwork><![CDATA[
└┬╴multipart/signed
 ├─╴text/plain ← Cryptographic Payload
 └─╴application/pgp-signature
]]></artwork></figure>

<t>Note that if this message had been generated without Protected Headers, then an attacker with access to it could modify the Subject without invalidating the signature.
Such an attacker could cause Bob to think that Alice wanted to cancel the contract with BarCorp instead of FooCorp.</t>

<figure><artwork><![CDATA[
Received: from localhost (localhost [127.0.0.1]);
 Sun, 20 Oct 2019 09:18:28 -0400 (UTC-04:00)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="904b809781";
 protocol="application/pgp-signature"; micalg="pgp-sha512"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Sun, 20 Oct 2019 09:18:11 -0400
Subject: The FooCorp contract
Message-ID: <signed-only@protected-headers.example>

--904b809781
Content-Type: text/plain; charset="us-ascii"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Sun, 20 Oct 2019 09:18:11 -0400
Subject: The FooCorp contract
Message-ID: <signed-only@protected-headers.example>

Bob, we need to cancel this contract.

Please start the necessary processes to make that happen today.

Thanks, Alice
-- 
Alice Lovelace
President
OpenPGP Example Corp

--904b809781
content-type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----

wnUEARYKAB0FAl2sXpMWIQTrhbtfozp14V6UTmPyMVUMT0fjjgAKCRDyMVUMT0fj
jjvKAPwOVIBTcSVKcji7kBw0ljyBwpOgoQ7UGaY6cINfhGg5HAEA4jjbHaEuGZ29
WDTKxW/exLlcW1WqY0fva3t6jbniyQI=
=IsHn
-----END PGP SIGNATURE-----

--904b809781--
]]></artwork></figure>

</section>
<section anchor="encryptedsigned" title="Signed and Encrypted Message with Protected Headers">

<t>This shows a simple encrypted message with protected headers.
The encryption also contains an signature in the OpenPGP Message structure.
Its MIME message structure is:</t>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
   ↧ (decrypts to)
   └─╴text/plain ← Cryptographic Payload
]]></artwork></figure>

<t>The <spanx style="verb">Subject:</spanx> header is successfully obscured.</t>

<t>Note that if this message had been generated without Protected Headers, then an attacker with access to it could have read the Subject.
Such an attacker would know details about Alice and Bob’s business that they wanted to keep confidential.</t>

<t>The protected headers also protect the authenticity of subject line as well.</t>

<t>The session key for this message’s crypto layer is an AES-256 key with value <spanx style="verb">8df4b2d27d5637138ac6de46415661be0bd01ed12ecf8c1db22a33cf3ede82f2</spanx> (in hex).</t>

<t>If Bob’s MUA is capable of interpreting these protected headers, it should render the <spanx style="verb">Subject:</spanx> of this message as <spanx style="verb">BarCorp contract signed, let's go!</spanx>.</t>

<figure><artwork><![CDATA[
Received: from localhost (localhost [127.0.0.1]);
 Mon, 21 Oct 2019 07:18:39 -0700 (UTC-07:00)
MIME-Version: 1.0
Content-Type: multipart/encrypted; boundary="bcde3ce988";
 protocol="application/pgp-encrypted"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Message-ID: <signed+encrypted@protected-headers.example>
Subject: ...

--bcde3ce988
content-type: application/pgp-encrypted

Version: 1

--bcde3ce988
content-type: application/octet-stream

-----BEGIN PGP MESSAGE-----

wV4DR2b2udXyHrYSAQdAk4rw/q9TK6dtIBm42jF6Z7z34KmNIDAKF4v4f09n5l0w
OAgtdmIHyUu3ZOHSb8cFRbjAGQ3RcgIAe4DdsZIy/m9eLEDXEzf9yMSufBtap6xb
wcDMA3wvqk35PDeyAQwAgFIzERxgt1aZlcA29Ds10pv0Y3oZ5yKvMNxd+WEEZNcT
rJBOFNlhek5/9/nkATGiDBaKOsu5o9VyDfKMAV0TYwZxuMgUNtvVpf0XL21dghYt
KVqEHeOTXzprUBdztG4Lp4e0vsG0jPZS+CvTLjbcvO+/lzb314mwN8s8vZiQ7Vlj
DxubIqKypY3jL66U0Acwk85IsXdK4CB4nousr2JFK3Y3zv7cQBtPKHEG8HkmvT0R
tl0QoAkdHfw0q4rpc6183FA9e8EUV88XRJrKIYn86IaTPuMkp8ULWSsboalkJH3J
rSq8kzAFFd/A6G8wSj/hVpH6U+NBGW3Z/DQnRmwHqSJfu/Tnue6TFLdDN1EYzk/L
Nlr4YsH6eIB8v3H4u6kY/SwhHCv/F0jItHYVSsIeJz81L0vh28H6hLIMvSDFofJP
fBgIJfZIJ8nzgFpLphVpk0mcI7jHElxEPRg/M5Lmlav9srYHbKbJ0LT67Z9AFnZB
LHRa/p1eZnjpTxrYU2qZ0sHaAS0MB1TwpiucDRH2VN1z8vSKb1qizJ6ZH3qT3zQ8
EAf6Lar5B6l3v/WwhjMPgu/pLlvZgDAo0cWkBYqzWpOcwviAeC7OwqnZY9/BFm/F
RefFysUIu7fWpvBbKtdch9lhb3baetWKI9uAwsaublwgSGZ4dBR2hfVaX72/8oDW
3oJoUvlw59J1r5Ai1l1YtyU8ctNGT2CqbKp6OgVzqm8BOhyQS1ayjMNU0VJs0s3N
BJ0B1rctk5QykDAu3rVf+sgyqzQ7ohFqlG0W/7haocAQqW++Wy9PW/n0oNAuwugv
W4zisCSB916z7whso00e1Ee3Fl7xgubzrGCHU3JNO5X73+gQHZ+jzuyGdBM5NTxd
UcT89ekkd9XqfR2kJrhgiUOe15znWks5JB6VGKWfz2kp2wu1AVxSkbii1Qk/tRhX
PUpHGwkin41WCPlUFA6xMLk9RmLjer2Wkg9zYosnzEIHdPj+WisWY86NRSZ/tJiw
qZvzNwIgkzvqs1T/8aU5Z5rUOqI1l0Kd+tVjlkPyLrZOrvEeYwOwbAzlCdLxsCdq
pY4ckpU/kMbfXXk21YWYFKDCopT7iRkuzDYlyGN4w/LPKQCMZrQxSms9uPNU5XG7
Au4yYdZVMkCLuLQ0kktuLe/CCX4bX82eF/AJ5DEFxWB3CT8FbVhdKrQ2RrLKwE7b
0jBdmT3NoJMtCbq68TBJO3MmOu6AaW7cD4INREbiD+Vr8ukqsnWkFiJ3NigQiT/4
PppJ2bAABRy9Gloa434PN3zgoWzmv80EfyNbZNfY7nGAOhAzBs8FqhrOY2WIBTp+
YEkvEjS5YOwgEj1/zcHts1pOWczY/AfVi2sLkCT8FqsNlfPPebdR4Oq+CEav/M52
A+CS0s7j1gklNfNd
=87qA
-----END PGP MESSAGE-----

--bcde3ce988--
]]></artwork></figure>

<t>Unwrapping the Cryptographic Layer yields the following content:</t>

<figure><artwork><![CDATA[
Content-Type: text/plain; charset="us-ascii"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Subject: BarCorp contract signed, let's go!
Message-ID: <signed+encrypted@protected-headers.example>

Hi Bob!

I just signed the contract with BarCorp and they've set us up with an account
on their system for testing.

The account information is:

        Site: https://barcorp.example/
    Username: examplecorptest
    Password: correct-horse-battery-staple

Please get the account set up and apply the test harness.

Let me know when you've got some results.

Thanks, Alice
-- 
Alice Lovelace
President
OpenPGP Example Corp
]]></artwork></figure>

</section>
<section anchor="signed-and-encrypted-message-with-protected-headers-and-legacy-display-part" title="Signed and Encrypted Message with Protected Headers and Legacy Display Part">

<t>If Alice’s MUA wasn’t sure whether Bob’s MUA would know to render the obscured <spanx style="verb">Subject:</spanx> header correctly, it might include a legacy display part in the cryptographic payload.</t>

<t>This message is structured in the following way:</t>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
   ↧ (decrypts to)
   └┬╴multipart/mixed ← Cryptographic Payload
    ├─╴text/rfc822-headers ← Legacy Display Part
    └─╴text/plain
]]></artwork></figure>

<t>The example below shows the same message as <xref target="encryptedsigned"/>.</t>

<t>If Bob’s MUA is capable of handling protected headers, the two messages should render in the same way as the message in <xref target="encryptedsigned"/>, because it will know to omit the Legacy Display part as documented in <xref target="no-render-legacy-display"/>.</t>

<t>But if Bob’s MUA is capable of decryption but is unaware of protected headers, it will likely render the Legacy Display part for him so that he can at least see the originally-intended <spanx style="verb">Subject:</spanx> line.</t>

<t>For this message, the session key is an AES-256 key with value <spanx style="verb">95a71b0e344cce43a4dd52c5fd01deec5118290bfd0792a8a733c653a12d223e</spanx> (in hex).</t>

<figure><artwork><![CDATA[
Received: from localhost (localhost [127.0.0.1]);
 Mon, 21 Oct 2019 07:18:39 -0700 (UTC-07:00)
MIME-Version: 1.0
Content-Type: multipart/encrypted; boundary="73c8655345";
 protocol="application/pgp-encrypted"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Message-ID: <signed+encrypted+legacy-display@protected-headers.example>
Subject: ...

--73c8655345
content-type: application/pgp-encrypted

Version: 1

--73c8655345
content-type: application/octet-stream

-----BEGIN PGP MESSAGE-----

wV4DR2b2udXyHrYSAQdAS0G0tRGi0cGe2INISDT7xS8b5e1iezXzXuFOrAa1fWgw
JK32KLaTpnHegkEVB/cdMLMEEq56BkktxtC94YNSoeKJOTmNPhR+YWLruWRmZoAk
wcDMA3wvqk35PDeyAQv6Ag30fne2jVFaH+oStUEoX/BEaclWJfpIgu9Ex5SYLmEg
tNHJtLMbKWYKQHhpMiyONeVvfgkus8cPZMtpc+eZEP9FaEdQ69CqkB9Cmqt4Hs2q
yNk14ec0KtL9/b5IPx4rVBrBuFSqxxiS0r0bMsTvKss1p4UGgPN9UPhJSj4dsmDP
w+gLkxsUKL6i37QJIOmarMawS4iK7/MN+GbjzlMduw/VuLV80DYgIt4l96E9xJ+1
u7S6/TKXyUSuxG1Wo+3tCEpy+hTKeS8mYnjD8OYVF5To+TCMnznCiEEwebd44ild
54Bt4QS/G+x/s/aSFRM8pN2O8qz5D5sy+Mzp4dG6w/9fAhIt9mp8W/6Vn+Cgy8kD
0dHy3pN5dVavmsBqzy0uaf4xAoLLJZQBzyR+0UWygUyfc2N6VHkXo+S30LhSfkJO
BMNKqkCaUoLFlHQLstZXETfXMJzpuUySH99ZTeyVnfB/eiEr9CByQqTeN9Uqtu0R
QYWEpTvvYei/vJCNDBqT0sIxAftxmF/H2K4hCW2qD3eE/zSe2PpabgStHmfdZrcx
X1sdOYZ7nOE0L3J/zE3jASEyQUZHr5rdt/RI5qwD2a7zirp8RNAyvk93InQuseX7
mgHADtk9LdNTWumiUd8pvm/ChXoRKvqjSV7mHpdBil0D4JKpZTGAQieP4fF71IYw
4E+VwiZZKIDSiYMUEljA3U7+M9siELlvKRACrrPZKr6OE58JywlIgRdewzroMWIO
HoNJ4EOzij5rJfd6fAF4A3lH3wRu8dcuqrKwK2DhL+as1Zc/AABZD9Ov8t97/A/t
b6jWJqVAVWilgarv9wwI4icN6q9hdwPZF5OaLgvpskGAtG3z51vkJuAiMogWP2Iv
T0GuamZb5177yH5ShtowlTZN6D5WR7ShYbdHAPKRWFcYz4S9b7UZiWH1Ts2lHglJ
5mUbpTI1EvJFO1nwUcVLTuqB2N7lwVvD0oM9lSDcgUmrS04lqBDEax1V+PoKXYAi
Q0z3eH6EDzw0xYWZhiBjgvor2qmGuIEqjBa+5qIOMrzBZK+7y0KOlkgaPik0BeYB
jC/107Us+5i7c3EfQXj4K5XP72/SR0KC9cr//q9tRBOGki8yVicyOGbtSGsNgul/
5T0VlrTecw+3ZOH4mQRGCJmxkes1amdDeklISfBeOe+LBx/tjkyixeXeh05i1doy
n9VY/utOqu3Oo6XnTWktxajuhfvwSA2wNB/JnRFqu8QEVmqVzD/jwNvsvETQC83j
GPKYo+P1PpAHeqRs4tMq18JQzzytXzr5llLp26qT4Sgul+8tqafkfS6zGL1xShMQ
V1uMtoAt5KBfO4nfiGUAiZeR2RqRrT4YLHEZvpblIE8y7l3y8WV8gdiFfOXZ21mg
gGntqnxU0hrC0IggGVBBY7zHVrcQxJOGsnAsqhQJpVBSnP0YgyrKCEVgDF4ibPBz
y2bRxKP4es0advuEVKGAHULhzoV26Siz8h9MkeI6o+d28vestHng++2DsmCrdpSv
EatA
=MxXQ
-----END PGP MESSAGE-----

--73c8655345--
]]></artwork></figure>

<t>Unwrapping the Cryptographic Layer yields the following content:</t>

<figure><artwork><![CDATA[
Content-Type: multipart/mixed; boundary="6ae0cc9247"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Subject: BarCorp contract signed, let's go!
Message-ID: <signed+encrypted+legacy-display@protected-headers.example>

--6ae0cc9247
Content-Type: text/rfc822-headers; charset="us-ascii"; protected-headers="v1"
Content-Disposition: inline

Subject: BarCorp contract signed, let's go!

--6ae0cc9247
Content-Type: text/plain; charset="us-ascii"

Hi Bob!

I just signed the contract with BarCorp and they've set us up with an account
on their system for testing.

The account information is:

        Site: https://barcorp.example/
    Username: examplecorptest
    Password: correct-horse-battery-staple

Please get the account set up and apply the test harness.

Let me know when you've got some results.

Thanks, Alice
-- 
Alice Lovelace
President
OpenPGP Example Corp

--6ae0cc9247--
]]></artwork></figure>

</section>
<section anchor="multilayer-message-with-protected-headers" title="Multilayer Message with Protected Headers">

<t>Some mailers may generate signed and encrypted messages with a multilayer cryptographic envelope.
We show here how such a mailer might generate the same message as <xref target="encryptedsigned"/>.</t>

<t>A typical message like this has the following structure:</t>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └┬╴multipart/signed
   ├─╴text/plain ← Cryptographic Payload
   └─╴application/pgp-signature
]]></artwork></figure>

<t>For this message, the session key is an AES-256 key with value <spanx style="verb">5e67165ed1516333daeba32044f88fd75d4a9485a563d14705e41d31fb61a9e9</spanx> (in hex).</t>

<figure><artwork><![CDATA[
Received: from localhost (localhost [127.0.0.1]);
 Mon, 21 Oct 2019 07:18:39 -0700 (UTC-07:00)
MIME-Version: 1.0
Content-Type: multipart/encrypted; boundary="15d01ebd43";
 protocol="application/pgp-encrypted"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Message-ID: <multilayer@protected-headers.example>
Subject: ...

--15d01ebd43
content-type: application/pgp-encrypted

Version: 1

--15d01ebd43
content-type: application/octet-stream

-----BEGIN PGP MESSAGE-----

wV4DR2b2udXyHrYSAQdArQ8apKY0ciE47ZyBKgbOditGO6OBizW/VeQItRdCxA0w
KaoRJewLgRnuvwaEisHWjiA0IHB9+0BSja+GFIh6gBWCFqzAfJQxoywAZMHznn6k
wcDMA3wvqk35PDeyAQv/X3CYHUgNH81gAKZK/Cb7+WDbjmHcgskkvtceANQbEBEr
/yVoou5BSlXsEni2wn1dtrIsrkhj6OF+B1mwGELw/3qcXdhT46iIrjn547b8Wycp
saey8JqqX8FdfrxEYyOeBJn9CMDm0Dawfv+kNEdbfZtZ2IUONRgigKfcs+Pvrv3e
hoY3KUe47cbiqKvw11VFTu2e4+rIPXW4sB3/95Epvo+RSo58p62kbvJDmBPt5E06
mEykcvyd6GP0eyTTbtaHNcNWd8jvGUobfikwibADcmjXmbPwTJefMCBbsYov86bK
72QOWbp39JcmwUWdo850+sU0XoCHmqditFfZqEdcKRFJOl+Rt+pMSrDixHb8Thdi
WcxUXetpDvACrmjsipKHbxBZAgEU0K71zvbUPk930jOqJgsyXKX0WI8u32gNZDfc
enHAAnALKvwoTGU3EM6do0XRMUKYL6+ON1F1L9S1Rm9Fa+WQKcO04ZvdeHbQXkt3
Fx6ZvZT/Bn3fcIWBpHfs0sI0AfeSpGjSejaZvZQ8qoOTQkOqrjuRnpU8232/ngsC
46mObydGJZ5qEMnmdDOfQB6L1LR9dQTCzA6swlG4U62MoO0n6yILCxLZTPVKYm7c
6r4KnQcvrGk1pgozdW1QjFBOjiDXbitHnqGorxKUcVVorXSEU919wKm11tGGyZ7/
2sta4WQq9ILVvPqB2I1hLfbteBUYWgB/rJcc6JsZyRItEKjSSXZoanYyuCPf0m5r
rpzf18kz8gYk92RTLzefALgMiIuU9CXFtd673/MalsZ2DRYjnI3tC9AXEdV9yVVa
KYX/ECbFPHNxxulu/HU7hL7QQbgxA1E41RM2KjEzmwUEA8EomuNN7eQ5AJjDP0qk
EIjIxIsW8at8FB4vB4sxh95OiF3hHFZj8q6/VZW8K8LspERCdrKmtu46xt2g7uKx
8ifdwqMT5OPu4VD5EPuOZLJRnSnYskTBwjZnX+ZqRdz/7z7XdUhvn4CjjiFt804a
4uunVgTeVXQay97a7oz+SCrNc+Gvv7K0dt7oUt512+0hQAJ3W9J3Chlht4UKs759
QymPx4smS8kY7c57OWpab481cqeQZLMIftBconhzSzAGl1LZhc5MVoc7l3dEABcx
G+zcTIiRT+io8PwaBvnUg3nE0xP201s5vpK2vbBBMDh3O3titYMBDJp3riyp81AR
Rm6tymUZaRMxq17T6BJ0b0fXyQ2fiz5vuudK5L/zDBvkOSIlhvaV2zxJqMhlSS54
W2RrwNjxkgBCiz1u1Yzi/HQ+jUwO/p8uGn0hyyIEEDIX50gPe2IQjgEjGteIBrDF
sfi9jCEhK/Y0xANG4Mt01Ukt6cgGQhrKuBnyy9KRG+US7aaPdMQuPLfOlhPZOjIQ
Bytek3JyT/QCsKPSjcGiNinllYk+Za8gL6SCNfZam1y/E802xX4z30t7Z6EBSRLi
+qwzOCu7wTkJkoOPLfZFLY41OrVaR8lyBG1eZmtJXbER1GuuRv/7IC2xcDZv/2VO
ahdnPLy7
=rOD1
-----END PGP MESSAGE-----

--15d01ebd43--
]]></artwork></figure>

<t>Unwrapping the encryption Cryptographic Layer yields the following content:</t>

<figure><artwork><![CDATA[
Content-Type: multipart/signed; boundary="a6b911f1d1";
 protocol="application/pgp-signature"; micalg="pgp-sha512"

--a6b911f1d1
Content-Type: text/plain; charset="us-ascii"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Subject: BarCorp contract signed, let's go!
Message-ID: <multilayer@protected-headers.example>

Hi Bob!

I just signed the contract with BarCorp and they've set us up with an account
on their system for testing.

The account information is:

        Site: https://barcorp.example/
    Username: examplecorptest
    Password: correct-horse-battery-staple

Please get the account set up and apply the test harness.

Let me know when you've got some results.

Thanks, Alice
-- 
Alice Lovelace
President
OpenPGP Example Corp

--a6b911f1d1
content-type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----

wnUEARYKAB0FAl2tviMWIQTrhbtfozp14V6UTmPyMVUMT0fjjgAKCRDyMVUMT0fj
jk5oAQCUL+lTDVp2pMOgcDuwnYtYCU9XMRxLgG4bZERZaYf1jQEAj85xO9Cjd7dZ
jBU3m8KYcHe5P5QtOYMw8snpliWXXgA=
=Vh3K
-----END PGP SIGNATURE-----

--a6b911f1d1--
]]></artwork></figure>

<t>Note the placement of the Protected Headers on the Cryptographic Payload specifically, which is not the immediate child of the encryption Cryptographic Layer.</t>

</section>
<section anchor="multilayer-legacy-display" title="Multilayer Message with Protected Headers and Legacy Display Part">

<t>And, a mailer that generates a multilayer cryptographic envelope might want to provide a Legacy Display part, if it is unsure of the capabilities of the recipient’s MUA.
We show here how sucha mailer might generate the same message as <xref target="encryptedsigned"/>.</t>

<t>Such a message might have the following structure:</t>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └┬╴multipart/signed
   ├┬╴multipart/mixed ← Cryptographic Payload
   │├─╴text/rfc822-headers ← Legacy Display Part
   │└─╴text/plain
   └─╴application/pgp-signature
]]></artwork></figure>

<t>For this message, the session key is an AES-256 key with value <spanx style="verb">b346a2a50fa0cf62895b74e8c0d2ad9e3ee1f02b5d564c77d879caaee7a0aa70</spanx> (in hex).</t>

<figure><artwork><![CDATA[
Received: from localhost (localhost [127.0.0.1]);
 Mon, 21 Oct 2019 07:18:39 -0700 (UTC-07:00)
MIME-Version: 1.0
Content-Type: multipart/encrypted; boundary="750bb87f7c";
 protocol="application/pgp-encrypted"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Message-ID: <multilayer+legacy-display@protected-headers.example>
Subject: ...

--750bb87f7c
content-type: application/pgp-encrypted

Version: 1

--750bb87f7c
content-type: application/octet-stream

-----BEGIN PGP MESSAGE-----

wV4DR2b2udXyHrYSAQdAQL6ivBlSduqtPTk/Y3+ijcQ+N5NYfDl+o474FT/BUBIw
iZzmY+CQgrHf2iRPm2GuOoN+XuZtFYk4cIhwe0gAK7+p/44osZGipnzcw0NDbMC3
wcDMA3wvqk35PDeyAQwAtPLguH2X/uqQupJWoF5bnpcxogM2hr+7W5FSFNCiTh6L
ZWYY9B1M+qQqOsTSqpA9mhOoqlnUGiRWYFU164mla3KmMu4rDKSrP761E9ozQl4k
o7+xjvWEBsVeU6KZLPpi9r5KDxwiGO8PT7qsNHv+OTSvJbOv1azLcSo4g67J03uU
rSbMDjPD1BAZDyf7TwKpg4MXVmJtnuHURjzIQ/VtS6eZ0FYzvPZX0rMo00G4bNkR
t1w06hEUemFRtEI/JhD8H3hDkx4Xo/XBWuiVD/UWrlXh1rGjTCfezd4p7F74/+t+
VHxLWWkyeNXnQqFZX6nIclvoW/ZQr2RycA8j7L/BSYEeINxE4gau+Mh/9IN460G5
Aabjok1FIv8D3inMDI9MgxHYOkAReCMJ4btObtLlzQy+f6aE3BPihIvAYlRzCBel
9Cl604BDGmVug+UeYJ7+1S55HB5vbWzx88IwELw4FCFaYwiK2FOB53tXSc/sGkBQ
Eh7hf2RLSq0c17fMBuNa0sKDAY5PKwukRG+RDz/TeM0e2Y42hPsVm6rOPKNIjygd
oGHLfXw/vYtpxVcdipa9LRAnoJ4JNSaB3vOLz54yxeXuOJrg6nT9JvSRuQ1AlZHq
7Sf2i0kbYkNYZOig54PVJ1/ESkzyrNlmxlRrmo/I9tCr7Wa5bMlgh0S7wm5wPUm4
sEEf+WeqU9cAQKGz4gmY87/ErvPUnudcl21SKyFZ6SlgXdo1GEAUagf3YPL/eOaW
KSG/c69L3K2nBr8NnsTH054AokKOEJKM0+Tu+z8dSRFfa8vJt+fbaV/wL3xK9yEQ
KxJurGTCQ3uKyaeVEyyc5oscv005iaaS9cskkU2eArjAoXNcS7dFMuNXJBbn9WZc
vDmlUSnpob6ZEVySNiQLKyVPsd50VQALv9ySsVT/LNx1N+QR4PSg7uX029itcXbp
zuJgBg8hnpZxKD1vWPzWslmyaC6iS4Q0qiD4XL669NEmtrSpXjX1xFv5SGLWO7IE
TQttUOUgH2tarrFESGOV+354h8kW/CewMO3yR/rTV19HsZfBbuzCLMiURPmK51gb
diZCD9mxd+LPuMPKo0nnoKgloFMgiono9bimJonGNKdfwhoRFFP8tIHZhkue9zqb
AnjZazfsI6YyfGsshfjQ2xHUuT8tTXtNCA/yhhld3yp1b2LfWdWdGxcGrVugFhy3
fUBgeiL2cIf09cn10Y19cIISwa++LpkVWLWuINORu+d2z5Yi9E2I3Tqoi7kt3PvA
GVfKK+Vpytf5f19vm53gfYPGHeF+V9fLZq2JrD4ewSzHSzbSf0Lo2uIUCRv9gTXV
scKiRvA7O0tjQHKFQKcrZLcUd1YE3uRcLqL4GMlHZMdRIQ2SfEvZe8Ad5ZxoacTW
nthYxDipYMheaLmXmePyTGXV0yo/btUe9q0vErhxIrWxnonhQxronVR2go9695Ia
w/b1FdihjhBvVmymHdYXxCsbIKIPsE7MeAt0YXEmOly2MsqlbYv+XVwFpw9gYa6E
QwMRS3Kd1bJgpuqZ4nOnHgZ1Qewhi1WbF9M3Kz6EryAgQJ6Sgy7syHqdYh4MzVOE
+VMThZ5Q92DIQcJsPpEKpDIfnbEYm7N6Icfmz6fj1L9s7X1oew==
=KH2Q
-----END PGP MESSAGE-----

--750bb87f7c--
]]></artwork></figure>

<t>Unwrapping the encryption Cryptographic Layer yields the following content:</t>

<figure><artwork><![CDATA[
Content-Type: multipart/signed; boundary="4e3b9ccaba";
 protocol="application/pgp-signature"; micalg="pgp-sha512"

--4e3b9ccaba
Content-Type: multipart/mixed; boundary="6ae0cc9247"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Subject: BarCorp contract signed, let's go!
Message-ID: <multilayer+legacy-display@protected-headers.example>

--6ae0cc9247
Content-Type: text/rfc822-headers; charset="us-ascii"; protected-headers="v1"
Content-Disposition: inline

Subject: BarCorp contract signed, let's go!

--6ae0cc9247
Content-Type: text/plain; charset="us-ascii"

Hi Bob!

I just signed the contract with BarCorp and they've set us up with an account
on their system for testing.

The account information is:

        Site: https://barcorp.example/
    Username: examplecorptest
    Password: correct-horse-battery-staple

Please get the account set up and apply the test harness.

Let me know when you've got some results.

Thanks, Alice
-- 
Alice Lovelace
President
OpenPGP Example Corp

--6ae0cc9247--

--4e3b9ccaba
content-type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----

wnUEARYKAB0FAl2tviMWIQTrhbtfozp14V6UTmPyMVUMT0fjjgAKCRDyMVUMT0fj
jgzVAQCXwrEyApDaRBeUX1kQOCbb3RVpXcSO+BdROF1T5K3FxAEAs4hYWZXJD1lp
UBe7D64qKa+fyQE1akkIWgoqoaTSlgk=
=zdtG
-----END PGP SIGNATURE-----

--4e3b9ccaba--
]]></artwork></figure>

</section>
<section anchor="an-unfortunately-complex-example" title="An Unfortunately Complex Example">

<t>For all of the potential complexity of the Cryptographic Envelope, the Cryptographic Payload itself can be complex.
The Cryptographic Envelope in this example is the same as the previous example (<xref target="multilayer-legacy-display"/>).
The Cryptographic Payload has protected headers and a legacy display part (also the same as <xref target="multilayer-legacy-display"/>), but in addition Alice’s MUA composes a message with both plaintext and HTML variants, and Alice includes a single attachment as well.</t>

<t>While this message is complex, a modern MUA could also plausibly generate such a structure based on reasonable commands from the user composing the message (e.g., Alice composes the message with a rich text editor, and attaches a file to the message).</t>

<t>The key takeaway of this example is that the complexity of the Cryptographic Payload (which may contain a Legacy Display part) is independent of and distinct from the complexity of the Cryptographic Envelope.</t>

<t>This message has the following structure:</t>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └┬╴multipart/signed
   ├┬╴multipart/mixed ← Cryptographic Payload
   │├─╴text/rfc822-headers ← Legacy Display Part
   │└┬╴multipart/mixed
   │ ├┬╴multipart/alternative
   │ │├─╴text/plain
   │ │└─╴text/html
   │ └─╴text/x-diff ← attachment
   └─╴application/pgp-signature
]]></artwork></figure>

<t>For this message, the session key is an AES-256 key with value <spanx style="verb">1c489cfad9f3c0bf3214bf34e6da42b7f64005e59726baa1b17ffdefe6ecbb52</spanx> (in hex).</t>

<figure><artwork><![CDATA[
Received: from localhost (localhost [127.0.0.1]);
 Mon, 21 Oct 2019 07:18:39 -0700 (UTC-07:00)
MIME-Version: 1.0
Content-Type: multipart/encrypted; boundary="241c1d8182";
 protocol="application/pgp-encrypted"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Message-ID: <unfortunately-complex@protected-headers.example>
Subject: ...

--241c1d8182
content-type: application/pgp-encrypted

Version: 1

--241c1d8182
content-type: application/octet-stream

-----BEGIN PGP MESSAGE-----

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
=XtUM
-----END PGP MESSAGE-----

--241c1d8182--
]]></artwork></figure>

<t>Unwrapping the encryption Cryptographic Layer yields the following content:</t>

<figure><artwork><![CDATA[
Content-Type: multipart/signed; boundary="c72d4fa142";
 protocol="application/pgp-signature"; micalg="pgp-sha512"

--c72d4fa142
Content-Type: multipart/mixed; boundary="6ae0cc9247"
From: Alice Lovelace <alice@openpgp.example>
To: Bob Babbage <bob@openpgp.example>
Date: Mon, 21 Oct 2019 07:18:11 -0700
Subject: BarCorp contract signed, let's go!
Message-ID: <unfortunately-complex@protected-headers.example>

--6ae0cc9247
Content-Type: text/rfc822-headers; charset="us-ascii"; protected-headers="v1"
Content-Disposition: inline

Subject: BarCorp contract signed, let's go!

--6ae0cc9247
Content-Type: multipart/mixed; boundary="8dfc0e9ecf"

--8dfc0e9ecf
Content-Type: multipart/alternative; boundary="32c4d5a901"

--32c4d5a901
Content-Type: text/plain; charset="us-ascii"

Hi Bob!

I just signed the contract with BarCorp and they've set us up with an account
on their system for testing.

The account information is:

        Site: https://barcorp.example/
    Username: examplecorptest
    Password: correct-horse-battery-staple

Please get the account set up and apply the test harness.

Let me know when you've got some results.

Thanks, Alice
-- 
Alice Lovelace
President
OpenPGP Example Corp

--32c4d5a901
Content-Type: text/html; charset="us-ascii"

<html><head></head><body><p>Hi Bob!
</p><p>
I just signed the contract with BarCorp and they've set us up with an account on their system for testing.
</p><p>
The account information is:
</p><dl>
<dt>Site</dt><dd><a href="https://barcorp.example/">https://barcorp.example/</a></dd>
<dt>Username</dt><dd><tt>examplecorptest</tt></dd>
<dt>Password</dt><dd>correct-horse-battery-staple</dd>
</dl><p>
Please get the account set up and apply the test harness.
</p><p>
Let me know when you've got some results.
</p><p>
Thanks, Alice<br/>
-- <br/>
Alice Lovelace<br/>
President<br/>
OpenPGP Example Corp<br/>
</p></body></html>

--32c4d5a901--

--8dfc0e9ecf
Content-Type: text/x-diff; charset="us-ascii"
Content-Disposition: inline; filename="testharness-config.diff"

diff -ruN a/testharness.cfg b/testharness.cfg
--- a/testharness.cfg
+++ b/testharness.cfg
@@ -13,3 +13,8 @@
 endpoint = https://openpgp.example/test/
 username = testuser
 password = MJVMZlHR75mILg
+
+[barcorp]
+endpoint = https://barcorp.example/
+username = examplecorptest
+password = correct-horse-battery-staple

--8dfc0e9ecf--

--6ae0cc9247--

--c72d4fa142
content-type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----

wnUEARYKAB0FAl2tviMWIQTrhbtfozp14V6UTmPyMVUMT0fjjgAKCRDyMVUMT0fj
juFdAQDjMySpe88yowVduslDi/IGFTGNn1d0ZxpA3IGW5Ss8ZQD9H2zbBtiKXtc7
axmvtiKF4z1DdY/IgOKFfmyGX2WZrws=
=Sv5w
-----END PGP SIGNATURE-----

--c72d4fa142--
]]></artwork></figure>

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

<t>FIXME: register content-type parameter for legacy-display part</t>

<t>MAYBE: provide a list of user-facing headers, or a new “user-facing” column in some table of known RFC5322 headers?</t>

<t>MAYBE: provide a comparable indicator for which headers are “structural” ?</t>

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

<t>This document describes a technique that can be used to defend against two security vulnerabilities in traditional end-to-end encrypted e-mail.</t>

<section anchor="subject-leak" title="Subject Leak">

<t>While e-mail structure considers the Subject header to be part of the message metadata, nearly all users consider the Subject header to be part of the message content.</t>

<t>As such, a user sending end-to-end encrypted e-mail may inadvertently leak sensitive material in the Subject line.</t>

<t>If the user’s MUA uses Protected Headers and obscures the Subject header as described in <xref target="confidential-subject"/> then they can avoid this breach of confidentiality.</t>

</section>
<section anchor="signature-replay" title="Signature Replay">

<t>A message without Protected Headers may be subject to a signature replay attack, which attempts to violate the recipient’s expectations about message authenticity and integrity.
Such an attack works by taking a message delivered in one context (e.g., to someone else, at a different time, with a different subject, in reply to a different message), and replaying it with different message headers.</t>

<t>A MUA that generates all its signed messages with Protected Headers gives recipients the opportunity to avoid falling victim to this attack.</t>

<t>Guidance for how a message recipient can use Protected Headers to defend against a signature replay attack are out of scope for this document.</t>

</section>
<section anchor="participant-modification" title="Participant Modification">

<t>A trivial (if detectable) attack by an active network adversary is to insert an additional e-mail address in a <spanx style="verb">To</spanx> or <spanx style="verb">Cc</spanx> or <spanx style="verb">Reply-To</spanx> or <spanx style="verb">From</spanx> header.
This is a staging attack against message confidentiality – it relies on followup action by the recipient.</t>

<t>For an encrypted message that is part of an ongoing discussion where users are accustomed to doing “reply all”, such an insertion would cause the replying MUA to encrypt the replying message to the additional party, giving them access to the conversation.
If the replying MUA quotes and attributes cleartext from the original message within the reply, then the attacker learns the contents of the encrypted message.</t>

<t>As certificate discovery becomes more automated and less noticeable to the end user, this is an increasing risk.</t>

<t>An MUA that rejects Exposed Headers in favor of Protected Headers should be able to avoid this attack when replying to a signed message.</t>

</section>
</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>This document only explicitly contemplates confidentiality protection for the Subject header, but not for other headers which may leak associational metadata.
For example, <spanx style="verb">From</spanx> and <spanx style="verb">To</spanx> and <spanx style="verb">Cc</spanx> and <spanx style="verb">Reply-To</spanx> and <spanx style="verb">Date</spanx> and <spanx style="verb">Message-Id</spanx> and <spanx style="verb">References</spanx> and <spanx style="verb">In-Reply-To</spanx> are not explicitly necessary for messages in transit, since the SMTP envelope carries all necessary routing information, but an encrypted <xref target="RFC2822"/> message as described in this document will contain all this associational metadata in the clear.</t>

<t>Although this document does not provide guidance for protecting the privacy of this metadata directly, it offers a platform upon which thoughtful implementations may experiment with obscuring additional e-mail headers.</t>

</section>
<section anchor="document-considerations" title="Document Considerations">

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

<t>This document is currently edited as markdown.  Minor editorial changes can be suggested via merge requests at https://github.com/autocrypt/protected-headers or by e-mail to the authors.  Please direct all significant commentary to the public IETF LAMPS mailing list: spasm@ietf.org</t>

<section anchor="document-history" title="Document History">

</section>
</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>The set of constructs and algorithms in this document has a previous working title of “Memory Hole”, but that title is no longer used as different implementations gained experience in working with it.</t>

<t>These ideas were tested and fine-tuned in part by the loose collaboration of MUA developers known as <xref target="Autocrypt"/>.</t>

<t>Additional feedback and useful guidance was contributed by attendees of the OpenPGP e-mail summit (<xref target="OpenPGP-Email-Summit-2019"/>).</t>

<t>The following people have contributed implementation experience, documentation, critique, and other feedback:</t>

<t><list style="symbols">
  <t>Holger Krekel</t>
  <t>Patrick Brunschwig</t>
  <t>Vincent Breitmoser</t>
</list></t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC2822" target='https://www.rfc-editor.org/info/rfc2822'>
<front>
<title>Internet Message Format</title>
<author initials='P.' surname='Resnick' fullname='P. Resnick' role='editor'><organization /></author>
<date year='2001' month='April' />
<abstract><t>This document specifies a syntax for text messages that are sent between computer users, within the framework of &quot;electronic mail&quot; messages. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2822'/>
<seriesInfo name='DOI' value='10.17487/RFC2822'/>
</reference>



<reference  anchor="RFC3156" target='https://www.rfc-editor.org/info/rfc3156'>
<front>
<title>MIME Security with OpenPGP</title>
<author initials='M.' surname='Elkins' fullname='M. Elkins'><organization /></author>
<author initials='D.' surname='Del Torto' fullname='D. Del Torto'><organization /></author>
<author initials='R.' surname='Levien' fullname='R. Levien'><organization /></author>
<author initials='T.' surname='Roessler' fullname='T. Roessler'><organization /></author>
<date year='2001' month='August' />
<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="RFC4880" target='https://www.rfc-editor.org/info/rfc4880'>
<front>
<title>OpenPGP Message Format</title>
<author initials='J.' surname='Callas' fullname='J. Callas'><organization /></author>
<author initials='L.' surname='Donnerhacke' fullname='L. Donnerhacke'><organization /></author>
<author initials='H.' surname='Finney' fullname='H. Finney'><organization /></author>
<author initials='D.' surname='Shaw' fullname='D. Shaw'><organization /></author>
<author initials='R.' surname='Thayer' fullname='R. Thayer'><organization /></author>
<date year='2007' month='November' />
<abstract><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>OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage.  These services include confidentiality, key management, authentication, and digital signatures.  This document specifies the message formats used in OpenPGP.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4880'/>
<seriesInfo name='DOI' value='10.17487/RFC4880'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="OpenPGP-Email-Summit-2019" target="https://wiki.gnupg.org/OpenPGPEmailSummit201910">
  <front>
    <title>OpenPGP Email Summit 2019</title>
    <author >
      <organization></organization>
    </author>
    <date year="2019" month="October" day="13"/>
  </front>
</reference>
<reference anchor="Autocrypt" target="https://autocrypt.org/level1.html">
  <front>
    <title>Autocrypt Specification 1.1</title>
    <author >
      <organization></organization>
    </author>
    <date year="2019" month="October" day="13"/>
  </front>
</reference>




<reference anchor="I-D.draft-bre-openpgp-samples-00">
<front>
<title>OpenPGP Example Keys and Certificates</title>

<author initials='B' surname='Einarsson' fullname='Bjarni Einarsson'>
    <organization />
</author>

<author initials='j' surname='juga' fullname='juga'>
    <organization />
</author>

<author initials='D' surname='Gillmor' fullname='Daniel Gillmor'>
    <organization />
</author>

<date month='October' day='15' year='2019' />

<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-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-bre-openpgp-samples-00.txt' />
</reference>



<reference anchor="I-D.draft-luck-lamps-pep-header-protection-03">
<front>
<title>pretty Easy privacy (pEp): Progressive Header Disclosure</title>

<author initials='C' surname='Luck' fullname='Claudio Luck'>
    <organization />
</author>

<date month='July' day='5' year='2019' />

<abstract><t>Issues with email header protection in S/MIME have been recently raised in the IETF LAMPS Working Group.  The need for amendments to the existing specification regarding header protection was expressed.  The pretty Easy privacy (pEp) implementations currently use a mechanism quite similar to the currently standardized message wrapping for S/MIME.  The main difference is that pEp is using PGP/ MIME instead, and adds space for carrying public keys next to the protected message.  In LAMPS, it has been expressed that whatever mechanism will be chosen, it should not be limited to S/MIME, but also applicable to PGP/MIME.  This document aims to contribute to this discussion and share the pEp implementation experience with email header protection.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-luck-lamps-pep-header-protection-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-luck-lamps-pep-header-protection-03.txt' />
</reference>



<reference anchor="I-D.draft-ietf-lamps-header-protection-requirements-00">
<front>
<title>Problem Statement and Requirements for Header Protection</title>

<author initials='A' surname='Melnikov' fullname='Alexey Melnikov'>
    <organization />
</author>

<author initials='B' surname='Hoeneisen' fullname='Bernie Hoeneisen'>
    <organization />
</author>

<date month='July' day='8' year='2019' />

<abstract><t>Privacy and security issues with email header protection in S/MIME have been identified for some time.  However, the desire to fix these issue has been expressed in the IETF LAMPS Working Group only recently.  The existing S/MIME specification is likely to be updated regarding header protection.  Several LAMPS WG participants expressed the opinion that whatever mechanism will be chosen, it should not be limited to S/MIME, but also applicable to PGP/MIME.  This document describes the problem statement, generic use cases, and requirements.  Additionally it drafts possible solutions to address the challenge.  Finally some best practices are collected.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-lamps-header-protection-requirements-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-lamps-header-protection-requirements-00.txt' />
</reference>



<reference  anchor="RFC2634" target='https://www.rfc-editor.org/info/rfc2634'>
<front>
<title>Enhanced Security Services for S/MIME</title>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman' role='editor'><organization /></author>
<date year='1999' month='June' />
<abstract><t>This document describes four optional security service extensions for S/MIME.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2634'/>
<seriesInfo name='DOI' value='10.17487/RFC2634'/>
</reference>



<reference  anchor="RFC3851" target='https://www.rfc-editor.org/info/rfc3851'>
<front>
<title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification</title>
<author initials='B.' surname='Ramsdell' fullname='B. Ramsdell' role='editor'><organization /></author>
<date year='2004' month='July' />
<abstract><t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 3.1.  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 2633.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3851'/>
<seriesInfo name='DOI' value='10.17487/RFC3851'/>
</reference>



<reference  anchor="RFC6736" target='https://www.rfc-editor.org/info/rfc6736'>
<front>
<title>Diameter Network Address and Port Translation Control Application</title>
<author initials='F.' surname='Brockners' fullname='F. Brockners'><organization /></author>
<author initials='S.' surname='Bhandari' fullname='S. Bhandari'><organization /></author>
<author initials='V.' surname='Singh' fullname='V. Singh'><organization /></author>
<author initials='V.' surname='Fajardo' fullname='V. Fajardo'><organization /></author>
<date year='2012' month='October' />
<abstract><t>This document describes the framework, messages, and procedures for the Diameter Network address and port translation Control Application.  This Diameter application allows per-endpoint control of Network Address Translators and Network Address and Port Translators, which are added to networks to cope with IPv4 address space depletion.  This Diameter application allows external devices to configure and manage a Network Address Translator device -- expanding the existing Diameter-based Authentication, Authorization, and Accounting (AAA) and policy control capabilities with a Network Address Translator and Network Address and Port Translator control component.  These external devices can be network elements in the data plane such as a Network Access Server, or can be more centralized control plane devices such as AAA-servers.  This Diameter application establishes a context to commonly identify and manage endpoints on a gateway or server and a Network Address Translator and Network Address and Port Translator device.  This includes, for example, the control of the total number of Network Address Translator bindings allowed or the allocation of a specific Network Address Translator binding for a particular endpoint.  In addition, it allows Network Address Translator devices to provide information relevant to accounting purposes.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6736'/>
<seriesInfo name='DOI' value='10.17487/RFC6736'/>
</reference>



<reference  anchor="RFC7508" target='https://www.rfc-editor.org/info/rfc7508'>
<front>
<title>Securing Header Fields with S/MIME</title>
<author initials='L.' surname='Cailleux' fullname='L. Cailleux'><organization /></author>
<author initials='C.' surname='Bonatti' fullname='C. Bonatti'><organization /></author>
<date year='2015' month='April' />
<abstract><t>This document describes how the S/MIME protocol can be extended in order to secure message header fields defined in RFC 5322.  This technology provides security services such as data integrity, non-repudiation, and confidentiality.  This extension is referred to as 'Secure Headers'.</t></abstract>
</front>
<seriesInfo name='RFC' value='7508'/>
<seriesInfo name='DOI' value='10.17487/RFC7508'/>
</reference>



<reference  anchor="RFC8551" target='https://www.rfc-editor.org/info/rfc8551'>
<front>
<title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
<author initials='J.' surname='Schaad' fullname='J. Schaad'><organization /></author>
<author initials='B.' surname='Ramsdell' fullname='B. Ramsdell'><organization /></author>
<author initials='S.' surname='Turner' fullname='S. Turner'><organization /></author>
<date year='2019' month='April' />
<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>




    </references>



  </back>

<!-- ##markdown-source:
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
zwzEiMQc58t8jbFvKeZZL2GMCH+MCTBhBFgh315KqaxQTJUKRfYFzAo5qima
+reXp0f+8sfYHir16rcX9P2Gz7HpFwZFugnIukD2oPsb/oGHf/8ToeA3wkX+
kZmaXxG8K7wgQDT5B8EU7p+qAXz5+gwQLIsBwfitmSGXIWD3z4f2YYCx8tg/
hIjyn+4auQTzAnoNoHIDyoBw/ggMQ3ixnPvtxXMSvCNq2n8uKIClAUNSxt0V
wuiPU9PQyPDeYRhxJNeUk7Ro0jA5nCNFAtSIrnDWDZaVWGc1YHU1ghqAfYyJ
wo8ZAnUGaQIMFRr0vky4y5vjIm7thIuO64ObFxHTrXCNVh8q0LFJq9EvT2dj
jjDjkzHjyuNVp1xJ1ct62llavUVrNLU3gquYV4vNzvOz6X546c1nvWlK2W7V
cqc6rvl/M9vtsVMengbzVmUqTuYdcasVdpVTSt9eKidroJqjwqzBr/Jiq69s
GmquWebK2e1WaPKc11inS8yiNu2cF0n53NXFBbs4rFLKkc+4+a1gaJdR6xvz
reU0iWuL69ce7iIMGvA34taTQCd8fLXvQ+Hmq4/k3uTf1pc2IuJIBtuTwsg7
5Q43Cg5lSZOEieCC4XCdM0JFii+9W2kJu6v+Jkkayln8kctSf+ia1Ic3pD64
WfQDUY0Odvqo6BxZMOE2B9Q/dXuB/X+E3EZOElJL44vuB3IZRzZhkDKovkYx
SswZIOoC7vQT7InhQFspcA9eQvJ6J8tWxIwIIsa3N6VDTKIOSZoRgyyZm+IK
VLZEXAa+YotKF9FFQX6uCIHjTzT+Q30GCE3L3CSRzuXRGwhSpEyoKClZIS2l
C1IunymwmSIv5iU5m8+yuXyeFeSUIKVYWWLTsqgURVYS0mk+kxGVjCzJxbSS
fkdJExv5/Bm3FsQg+k5HSpxf88CS0vwrAEO9DEPoZd6gDKy2pIqQrx7Ra8p1
GTbHVM3/9v7bNaIe9IWn2ZAILEARmCkBEVjwNaLCr9SIfGINK0WCKMkZUS4V
ix8rRf7L/46S/8m2keQH234k24NAxEcC3lcZ3t7eoKQINv0dIRrwNyYA8Q+P
EOF+t1K4x00m5YYvg+fZ2jgtpD1peWnaq0l5JJV3WfuUPJSmnbzktir7bHpb
z68L10y2s++3auVOPXvMKqmSkdNTJ2ZQVl1p32peZl5mPWhOhKJYHwvbcmOU
GYtqqyxna5Kzbl2S+5Lc5WpL7qqULr2Jp1Rc3sqfBeYk1nrlzOl42GVyw5p8
KY9OZbXeunLjs+qy/FoXy+lSzWFT1jG1ypjr3KVz7PXPUnzBceu+OGXsdmVQ
7+sbeZdLlpLGrjxtaLUK3xk4Xs4szS81pdMrz1PT1Wl99nrqrO8e55aSWnbT
rKRuVi7TmR+4pjyYLq+WPatIV7eR7VpZOXV0GqntcD2JV4/T7lYQj4N4Ur8K
GTa7P/WLTvG41kaFub5lamdPaB06F2uV2Xbz+VmqLJ52xVzLWUqdbLWSNUzP
sdPteiezylyPBXFUcYedJtcoNnf74zQ1Zlw9NTLLO6mpnFKHrG2JebaYqZdL
cpGbzYvF5bhtd1oro5hv8dOh19tZxVl3MXEEk9d37WamzdiTQ3F3LdfrUrKc
bxRPk21yM7ea+Vm8X2ksMutkbWSM96fmYdJWvOTU8OT8tN6Van2WW113yS7T
1+3symnm5ValeMw0s15+t0pOTptm9Zisp7Ytt7maT5yW3L4W2W7quEkXm/lN
t9U7Tmp1U2kPGaWittrKutUuGle1bnUtMP8utRdbhW2T08/ccKwme7nuXueP
JcdeNYWO0E51p/nCulSuG+sK022O+aTFymtja03P9mqWPqxTTpMvT1K9Cjs9
WZon1sbN9LzPXovHSUdgD9q1nV83M4dp5joqMlxZyXd5O1fJ65ljcnHabHtD
1UtaXf24VmtlMyUudpXV4bqwBuLpqJXlamFwOhjrVSlZqe+TdcAwlfrFmbW8
grKwjhWh40ripqRvhIzAy+6i0yp55ZPDe4J+UieNdVaqjNMbZc4vC+lk0awt
mIzZNmdH/ZQrtVk7V9ZYnV25l1lRdPuNabp6EDpWfqDOr4d9sTLYXEYTlr9s
e/1Zat52Uk6mz1TaqQpri+4uN7rsamUvY8+VuKNeDtdRwdzUD3ojtUgWNrwp
lkeHRTy+uJSGi6SRMvtl7+SpR2aRvWpOdVIpsflr4bRxzFRKZjk5U9cLZ9UT
rnaj2pxl2v1BblnIxNVRcx3fXr1LQ6r0cv3pWWJm4rRYknc7qbQ8KOP0rm1v
VG02kNnc1VjsnFy7kp83Ogvlmt5Z6ZPHlufnyU7QNHa0S7rjzZIZzqxm47TT
jCy7qA71Wb2cP/e6u9J4393KdnqxU0vXlekYV67VlIbb+EJzFqtivj+erJNu
Wzsxh/Xx2j+11N31eHDYabLIz3LrnD0bHFqsnupIcXe+1XfDS9deD+wjJ69O
g5NQvupVqXt2qtKBsVZZcWfNkrueoCyXuzS7WqzqnVrVtKYFbbzzrrWVfmn0
s6dkd9gZVXtre3Se7J2SN+zPcstGgSl72ctKWs97u2rX645Su53rdeVktbrM
CstiWq4ny+1cjaufF5VMdVqsC/ON1LFH6bHd7Zy4gsCkthVpP830zXbPrQqH
fHFaaQ8yvf3Ay5f5RUGsZVv9MSdotfjcLnq7gwNAW9famb6mjrRpMssMLaud
FsrlyvhSagDtM5vJDvuZq2ourvtjMcUpl76w7iurgtEoDzbla8Up1g8be7BK
L4ApZMWZFbc7cttJbjU4qdyWTV7Fpuuw1mAhXlfJsjLX0k53B9d+cPq6MhzK
gjTODg7xKscfAZmmmXK8Okk5hS2r7vS+0peYb8XCoRy1hKKSJCybqB00MyLX
TjyIyuGbBnHGaNC8l4g2YiP8fbgHvqck+LL++xrab1comKYGF/zfgPKJcwFp
NsFThxnx1l9+OuJr7TyUZkhLT4ABATM0GZwDotnkhkisZcsoZ4VW+eInIwUn
Gr1fAP430SCUNq5rOV+TSYG3ReicIytPosfgBcvwwqKv1NkNH4HToF+HvOOc
TBvoqyShPAHLiuWEgJIJYbodD17xvSGqTOwIsjC0ObxffPUoKlCUUX9jGxow
qNMu9OVjqwdVZV9MDwJGNUkfOpxs6PwbuEx+sx8APvxvdEnNcycBMF3Qdojx
cuId4ycX1zbQOGlg2oRMxeCGk0he2b1J7NcEICsH33UcdNunPcMibYdJGlL0
3iZ6LT12a4SS+EPJl+TNgH2c+Mvfi3vhwZUbH4UD7i7FuLmJA776CDlij90Z
gdOCRpdwzAm7h1za1iVkX/78860X6pePLV0U8deCjrBh+xZRILzv1M93jli7
tF8JXAIMDfPRElAU/LxbTXALmEZaQlDENOmF4g97Rwf5MzSu+rwnHQ2YPt91
qIQRNjiK3r312NJHayU5RyEaerRYlA+g7f17UiFZIN8NKT1x5EjwFGfbkhTB
EClCT0q4eVq44CfiU/nYZ1LK8QVWSMmZbFYU5WyGz0pSLi3mFCnFSrIs5li2
mC6lBPB3oZTmi3whkxHzuQzPpqV0OiNHfCZ//46JQkYs5nO5TDb3O3dMxKNo
/Wv8FAEMfquf4odG+Bv9FJNUI+WOG1pKbMjpVr81qU0L50lRyMmsJl+X16VX
H9hlnlUW6olpdzLpTpefWkZTVnfcvJIUpV63x3GHXL4CNPyzWy1lV/2JKXfa
g+m+P9yM46tF1/YW4/0a2OYP/BTHfFnNpBRDTm/ndb4ZNyfujDOXyQrHi/qi
rVgt1Stx59xk1d1zKuP2m2232xM6i1Vn1NxYPe0y6Mvzo6LuPKcoDtc91xLj
8pobluo8J43ypephVylV9wc323TSB+bS37FZWUx13G4pKeRaw3PWnlfsilef
HM5nbZKyU0LPmR47DlD1s7OGOuyXZsNNe7LNSs6+NmROcbW7OzuzTjevZQqj
dmuw5+0ef5pktU4h2evHG8L2qvck75Sce915MVVbqS03q5fyXOncjrOMV5jk
k9PO8jKbeOcGuzDjGbfKWZf4ZtqRJ8X9ytjWioPVvJ6bmvFptWdcjarGcSdg
XmSzmi4xuWzFzY4myUb8nHSS/KQ+7hWtfnpQPFxztZxzifeuVlZq5E/JklLe
tNzS3ioukvm5Ea+ql+KuxqSk5iVj9XPSnD/uncrhekl5vJI9l81ut70eVa6X
cTw1W1zU2UUR0/38vLlbmvFJJtXdTJRde8BUev3OYVflZ2a3rjdHXcddL7mp
suy1r5Y3u0yapdJ6Kl/mhlJJyhpnl6qVy+gwlQEoD66XGjOj1YKzpsfjStaS
x3a1X6scpimndS4r7nlfTzbTneymukgfahmZS14ncnoIpIY6cZt7RVrb4plZ
so40WK0LxoBLdTPt5JXLbMsT7jKarZt2zpbc5LiVO5xqab5w1WyrOO6XL8dd
KdMyRkDsLQvMXm2Wa+6u1JX604W312ZS0Truk9XN0hx3joftZF7YNy2poump
WrbdsdbTRnmkycOsUi+wrdWJyXLx+Ulbrzut2kRb9Wacvi1nZoV4r+RoXFc/
dsblqm0P1x07P+ByxfblpLfUsSSfrrbZW7QGTNPst7Pc4Kptc3ZbkfJKuZ4t
Z/Rm5jT2ipLoHezOqZOubbpx3mHXYhJYsutaaXAsuqVCspx0GSG/XbQP8/J8
oekqbx9Lp1Mrq4n9/KG0kU7DdT034Lvq0XJ2jbLbyFxz7HHX9spaz1QXw3Tr
yExTDY/fr4UcWyhcmrnJxjVP+nTdz9dyi3FhslkJUrM87IwXdXF1zU5KQmG2
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
Kpf2m4F50I1ZQxsvVvUZm8/udT7T2fe8rF3rTOxhIc9yJfM60rM7xizEz9vj
gqs4c3mW76y7Q0sr2blO7XzSGoPicFo4OP3mMT6YTo5tYXBk+WtXnJhZNV9o
pzLejLEnQq+2HdbYSnlduyiF6aljqdnecr5vu4bXnI2319YoOXcneXmdqq+u
x+F6mbJ7ZioF1I7+bsy47CmV33AzeV8fu1wr2d7Uis3MprY7Z5dmcllZeNq8
lpwtbH25Ye3GdlpV5KuUtQr1QjYZd+PMvHnuLha7i9xfGqNDfb3MGy1RP5qL
5Hpkp8cXsVzcFrrJymTFya3+mcuqvBfvbZKlVj+bTzVyTJkXtuaOrbeOxVpG
M3q1Vqmnnpurwa48lqu9dlZwB4Lb1a+jS1zJ81ymMtQ2rWN5pY+v1YqsM6Wq
nk9lK7XGfu6p8Zm8ahfi7CSXa1ZyR2FxPReLrRPXPWXr1Tq/OmmddH1QyWXc
5URMOo1dZcRwm8JGSY+7k0NKZAtKr+L1+ZTTqZVXuWHn5O2A3TquXZNTuZeS
06tsejN05vu8PRh2+q3tRZUYs9HsKstT8rhyrfNclAAXKnXHZcNsZ9v9CV/J
HAfday57OctLb9C21bwxLbWPk7E3Ysv6unlgChOAwamdsNr1V+uBpuayw3mb
TXKT3fVi9/X9WR/bezPZKrlVu7Dgc0JPVzepSeG0z52Gs32WcThOiS/kw6wk
lkedxjWr7lfFQpKzj8OZ4UminmYnnUt9nZ/o6lIy2QZXnvGqklkNu0l5wC+Y
zqSRFPOlbqaTNip2sW8402Yqly2bu86Aa3d6qfjUi1+L0mRcV/jise3GFYGf
J0/dzLlTunAjpnNue3ZjWh1lvM6Fl+fc5SLmTEc8plI5jecnJdHZ7WZpuWxv
y+ayL04KUr3n9ZftimCUFmuROdb2+mxiWKaQX3Pzy6Svjbqdy3zoSLnUfFTu
HkuXiTOfJrv9M9uPj8bZ4UQteMtUuqS54lKwmKvXVitqcWNY63Onxh4Xw+vC
0fcXvprXJtlR6qDVsstuPl/qc3vXnljL7ZI914+5SaO7GBRaHDMdue5sMFOb
aZe37To3aQzm8UwuuynuFsmqfOoNMpdx0p7O2VLTWSsVwbtWuz1tBlhPJ8eq
AiNp62qttD9L8e7Q6w07ZsowzI6qm/WeCrijWRK0fds0Gv2OpJw25rheHxbd
VnO92Xly6XoQgFa5XfNXxWnlVxel4TgbZTtKn5szb1p0p0u3Xy0nL5uNLmUu
Fiuku8pCWkiNs9iwAebXN5cMo8wqqqx102JLSZVEg02t2JLYak1OfDzetXbz
RXfhtfqDsReX0tfcSitx6VZmejC1ws7NDI9lpjFXOp343Lq4Sk5hS8d9LqMq
q2GjKdfj85LSXR/SbbuWlU+Ta3NyFSZKqmumvdasOj6W1OlyzjhiRxsfy4VB
yt2Omp36qCPa6644k9gVl/HGYvfQzTZ6enPdk8atUXqicMe1XCxLufXZ5MXp
gjHczepc06xVDwi17n65l4eXaWM5T13MpODO5NIhdeTszbllL86GaWxGZ9s0
5uO0apbypVyLZ05Jga1L2ma7qRzn+8u+Ka2W56ojtDqtocMVenLZTa2W3H6g
X9I956ALq2N8OT/VrVNJXfF5jhmdeuNJpiOxQlu1vMM6awyMprpmRzIwcNiF
UC/1Mp1rnrMvZXXUzk/US8G5NA/SapPtXecDjonPe9PNOjcqpWutkdh2hhbX
sWotxRC41b7Qz7dEZX/NK1u2W3IKS9aUT9+AKddppr+XROKL4L8Dx1NWzggl
UeQF/m92PAVD/f8ln+U36XT/lcnyX/62vxt/WySTJUrDfz/+N/U6L4+qy5PN
XcpWjR9X5NmS3Y0GVUHIjOfWUpwM4hVpPKiz01wnUz+XubKT3awW62W7xuoW
M6vIhVo+e+jwceUy4lh+t2stVPNg8lOgSO0A075KbuN7/rcANJRtl43YLLgi
FBwnvCBEl88Uyt/1UGHrH7bkJG4fv9c7urACDEX6aty77jjigXr9wK1HWm+S
HnBkRNwe5vFgfptaWmmkhQqMSNqOZcv41jT6zKeff37upPvl86P56AJhKtCD
LiOoxeuj8rJPqAFJeEUfz/2KC3uCrs6RgjlyL3Tkllt0MQC88APxN9QrEi6n
Oe11Y0fe1nh0pQFqi4pIjZTD4TY9hgobrMLmLBvkjA0aoODeq+5N+Rs5EeSB
NCV4qypeFrqrBrVa0XkP9pkPZ35hh13Qhce/6hrfu4OKm2D7ZB7eqehf8kgu
QoYbvunbi+9TJ0wkgEn4CZJPZkO3MAKJDKBp0ma8aL8IAoqGe7qG3v1MWDP0
Wrn8TuZhjRhtiRLBMtI59nt4T1HnE/ZSw6w4egfoQ6/r5xi5qRTezUQ85Kjh
8c2VON+fmfOz5qJ1jL/vfLb/Fc7SB3OSnx+tiddhj1AeNnYOnvrXB8l4kV/D
PtmNu9eDH8O/nBPwhiO05oBu/yO9t6yYLZZEhZdKSkZMCUomzWbB/2flvMRn
00JByWeB5S3nSoV0XuB5VmALiiLJipyXRUHIpX9n3tt0lhVZqcgW078z760X
lvMJwip+jec22Plv9dz+0Ah/o+c237TtfH2cbc85ryC3h0l33Fsmdzxvq8t6
Us6d7NkizbmZ6aV4YprCeiO0Fovs0S3Zsrk9yXuluiyVtiUnf913qhxfXs1P
l9p6upbi6WK53W9NxJo6m9dKmWxeLD/03OpVY+zN65tCY3s9X7uWl9/I+Uyv
73T6nXq91rkm90srp6UGhbbMcLPrTGKbgr03soNhUrkaS1sdmlo+XWvo7V0z
WdYzLFfPTQ6787jAlkvH0iRTM9qZIbftl3slRrcHKrdvG51uo2fWL5nTrlZz
8mLyMDpsu+upK01txZVHbrNk692DPewe5vGToJwbWv5Q2aQKzH5WOQiSJh0G
VqUzdjK73HG6rNlOedPwOp3UEWw9d1m1U/K+0nU5o7PP96y2xDcW6qBQnRsH
ppjUsjOzN2f1Djca9Spp1bDX6VNjWamls9sdP5QVa7jprvj8YjI4dUtctqR4
/19719XcOnKl3/ErWPKLtyBd5jTWyJdgAkgwJxBeVw0yQSIRkeT8efdpBIKS
rubatQ/eXb9IROpw+sQ+3f3Ztc7oWu72LmaLEKaV+UIgW1uPskNPCA8ValAv
dYJrSR6aR9kNyrOS3zr0yuMrEiVNGY6KI60/Gpy4+mlcmjSQe70jN3wv8krK
pSo29dNlUhmK9rmyU2b2DnW6uSi1w/nGbqqCuGzWLO1Y3jrHjmzt6yEpzQh6
OyQPcoeqy9qF425M67Jn5s1bVTQrrqIuyrJom4bUkjixuRlF44Oz1dZzOToi
r4HvKf02sdyykSvIS25urs9DdbferVYlby51uE29d5ptLnpzri9n4ljpdsyo
4m2s6ND2G+H6TPID5rwgRmboMSS5Vf2xVj/oZ2u+bbWcQV0Njz1RlNYhPe13
Jv5kwLGD45D2pVtZXk6jjtXqzbhjfUCMHCoaDv19uT3iXXo+b7e0gW6fo/Xi
KJDNSUNsjtfBbnxpkyJfGh29DntZDXZk2Rf4aYlcUcTs0ij5aq90WjvV3Znc
lavMnjqvLH1wGpx2SzsQ6r7QZjfudk53rCGS48C/SkPPtblxse0ZRFH2DrbI
dqtn02Us9tBAwn/d8tSAmkmzXTOqD24XXuz4jUvQDzdF214qqM2MuD+pUqMx
6xHVa587NGYjc8I1umevSDvTRsPoLQ2zxtC9xrXVOpIzvz2PLrpcHkp9urFv
tV1reu5K9nrZU4l2zWc4nxWbQnnEGzNqxkqTOlUsLYxTde8Hq6hdqx+v1nm/
G7W92ZA8ciWPL/FRtNwXNaZzI8L5bXib1Te9jR54bH1oly/66MiFIrcj2fHq
pt2OM/a0MW7l1bw+659QoKNNFqE38MZLv98YE95codWWWGemTsufCbS+59q+
Ja5as5t9IilqsQ5RQFj29ytjcRqyasj2BlfBL6vN7kFeOzbh89SYI7fUVRIN
7iYydoukjO2SWZe6+pTho+A4rZcYSuWGIuVeRmdxKnVKw0Xks4zGr+ghQZZP
DWvIzgV6dNSmtVpHpdujZZ/vVZ3JWj+0b0e1Z806RVk/trjZiomCxWlVirbu
SQqtdTskqOvEqi/2m8nmIhwRyx3mzT0rVwPqGB6cs7+fH/SWw1GNebD22FPF
oifMzh4firuzdOKl44VwJOnI6kKzdiVnpQZHM5XVfFik/OOguWp7zfJW4mRz
Ed2cUZOaNw5delTsMGJ7VyY3cre74ohmj9asZkSfTXFBsttFbxJVziHFdji2
0qscrHrASdvJLWTbXLAqlTaWMN7Ye4Y1D+aJkjWD6G/PuyKvjPdhXXH5zWlN
ldVysy1wrm8vatJkafNqv7ZqksfKtasrSssfLcPZgloctdbYk3lCLGnLcthy
T3262x4fNkuvZ3aHAh8M9lejrtQc2GxN96LTtW+uO1dNlkbOBGlRViTHw6i0
JRxBCpvObHEsbUq20Lcao0Wg872yuj561+l5tV1VowOtFCO1zo4VZjB11+ct
p5eG0VjnKdchnNBza0yNLhrB9rzSmovxaOj4Rd/k9uRyjobFI1sDi6ampZU7
m1auwZY/VG0uLB5bbPlMbQlK2QytTmWwn6hdZ+Tr9Q1ivgN/HOjKdLmuXrY3
5TZcWYcFrbAdqtSKlM65P1O5eZumpKWlEdfpejled9VOc9rd0875uG6Snbbc
QpbHFLm23FFGl63IaNHpvN2ayq7EmuxIr7KH9lk3ZiOSaDQu68UC2fFzZbih
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
Il1DN7egydFoUq6i+6aN5/aIfwDtIN17ABcBAA==

-->

</rfc>

