|
|
-
-
-
-
- Network Working Group B. Hoeneisen
- Internet-Draft pEp Foundation
- Intended status: Informational A. Melnikov
- Expires: December 30, 2020 Isode Ltd
- June 28, 2020
-
-
- Header Protection for S/MIME
- draft-ietf-lamps-header-protection-00
-
- Abstract
-
- Privacy and security issues with email header protection in S/MIME
- have been identified for some time. However, the desire to fix these
- issues has only recently been expressed in the IETF LAMPS Working
- Group. The existing S/MIME specification is to be updated regarding
- header protection.
-
- This document describes the problem statement, generic use cases, and
- the S/MIME specification for header protection.
-
- Status of This Memo
-
- This Internet-Draft is submitted in full conformance with the
- provisions of BCP 78 and BCP 79.
-
- Internet-Drafts are working documents of the Internet Engineering
- Task Force (IETF). Note that other groups may also distribute
- working documents as Internet-Drafts. The list of current Internet-
- Drafts is at https://datatracker.ietf.org/drafts/current/.
-
- Internet-Drafts are draft documents valid for a maximum of six months
- and may be updated, replaced, or obsoleted by other documents at any
- time. It is inappropriate to use Internet-Drafts as reference
- material or to cite them other than as "work in progress."
-
- This Internet-Draft will expire on December 30, 2020.
-
- Copyright Notice
-
- Copyright (c) 2020 IETF Trust and the persons identified as the
- document authors. All rights reserved.
-
- This document is subject to BCP 78 and the IETF Trust's Legal
- Provisions Relating to IETF Documents
- (https://trustee.ietf.org/license-info) in effect on the date of
- publication of this document. Please review these documents
- carefully, as they describe your rights and restrictions with respect
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 1]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- to this document. Code Components extracted from this document must
- include Simplified BSD License text as described in Section 4.e of
- the Trust Legal Provisions and are provided without warranty as
- described in the Simplified BSD License.
-
- Table of Contents
-
- 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4
- 1.2. Terms . . . . . . . . . . . . . . . . . . . . . . . . . . 4
- 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 6
- 2.1. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 6
- 2.2. Security . . . . . . . . . . . . . . . . . . . . . . . . 6
- 2.3. Usability . . . . . . . . . . . . . . . . . . . . . . . . 6
- 2.4. Interoperability . . . . . . . . . . . . . . . . . . . . 6
- 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6
- 3.1. Interactions . . . . . . . . . . . . . . . . . . . . . . 7
- 3.1.1. Main Case for Header Protection . . . . . . . . . . . 7
- 3.1.2. Backward Compatibility . . . . . . . . . . . . . . . 7
- 3.2. Protection Levels . . . . . . . . . . . . . . . . . . . . 7
- 4. Specification . . . . . . . . . . . . . . . . . . . . . . . . 7
- 4.1. Main Use Case . . . . . . . . . . . . . . . . . . . . . . 8
- 4.1.1. MIME Format . . . . . . . . . . . . . . . . . . . . . 8
- 4.1.2. Inner Message Header Fields . . . . . . . . . . . . . 13
- 4.1.3. Wrapper . . . . . . . . . . . . . . . . . . . . . . . 13
- 4.1.4. Outer Message Header Fields . . . . . . . . . . . . . 13
- 4.1.5. Receiving User Facing Message Header Fields . . . . . 15
- 4.1.6. Header Field Flow . . . . . . . . . . . . . . . . . . 15
- 4.1.7. Sending Side Message Processing . . . . . . . . . . . 17
- 4.1.8. Receiving Side Message Processing . . . . . . . . . . 18
- 4.2. Backward Compatibility Use Case . . . . . . . . . . . . . 18
- 5. Security Considerations . . . . . . . . . . . . . . . . . . . 19
- 6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 19
- 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
- 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19
- 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
- 9.1. Normative References . . . . . . . . . . . . . . . . . . 19
- 9.2. Informative References . . . . . . . . . . . . . . . . . 20
- 9.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 21
- Appendix A. Additional information . . . . . . . . . . . . . . . 21
- A.1. Stored Variants of Messages with Bcc . . . . . . . . . . 21
- Appendix B. Document Changelog . . . . . . . . . . . . . . . . . 22
- Appendix C. Open Issues . . . . . . . . . . . . . . . . . . . . 22
- Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23
-
-
-
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 2]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- 1. Introduction
-
- A range of protocols for the protection of electronic mail (email)
- exist, which allow to assess the authenticity and integrity of the
- email headers section or selected header fields (HF) from the domain-
- level perspective, specifically DomainKeys Identified Mail (DKIM)
- [RFC6376] and Sender Policy Framework (SPF) [RFC7208], and Domain-
- based Message Authentication, Reporting, and Conformance (DMARC)
- [RFC7489]. These protocols, while essential to responding to a range
- of attacks on email, do not offer (full) end-to-end protection to the
- header section and are not capable of providing privacy for the
- information contained therein.
-
- The need for means of Data Minimization, which includes data
- spareness and hiding all technically concealable information whenever
- possible, has grown in importance over the past several years.
-
- A standard for end-to-end protection of the email header section
- exists for S/MIME version 3.1 and later. (cf. [RFC8551]):
-
- In order to protect outer, non-content-related message header
- fields (for instance, the "Subject", "To", "From", and "Cc"
- fields), the sending client MAY wrap a full MIME message in a
- message/RFC822 wrapper in order to apply S/MIME security services
- to these header fields.
-
- No mechanism for header protection (HP) has been standardized for
- PGP/MIME (Pretty Good Privacy) [RFC3156] yet.
-
- Several varying implementations of end-to-end protections for email
- header sections exist, though the total number of such
- implementations appears to be rather low.
-
- Some 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 (Section 2), generic
- use cases (Section 3) and the specification for Header Protection
- (Section 4).
-
- [I-D.ietf-lamps-header-protection-requirements] defines the
- requirements that this specification is based on.
-
- This document is in early draft state and contains a proposal to base
- the upcoming discussions on. In any case, the final solution is to
- be determined by the IETF LAMPS WG.
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 3]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- 1.1. Requirements Language
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in [RFC2119].
-
- 1.2. Terms
-
- The following terms are defined for the scope of this document:
-
- o Man-in-the-middle (MITM) attack: cf. [RFC4949], which states: "A
- form of active wiretapping attack in which the attacker intercepts
- and selectively modifies communicated data to masquerade as one or
- more of the entities involved in a communication association."
-
- o S/MIME: Secure/Multipurpose Internet Mail Extensions (cf.
- [RFC8551])
-
- o PGP/MIME: MIME Security with OpenPGP (cf. [RFC3156])
-
- o Message: An Email Message consisting of header fields
- (collectively called "the Header Section of the message")
- followed, optionally, by a Body; cf. [RFC5322].
-
- o Transport: The entity taking care of the transport of a Message
- towards the receiver or from the sender. The Transport on the
- sending side typically determines the destination recipients by
- reading the To, Cc and Bcc Header Fields (of the Outer Message).
- The Transport is typically implemented by an MTA (Mail Transfer
- Agent).
-
- o Header Field (HF): cf. [RFC5322] Header Fields are lines beginning
- with a field name, followed by a colon (":"), followed by a field
- body (value), and terminated by CRLF; cf. [RFC5322].
-
- Note: To avoid ambiguity, this document does not use the terms
- "Header" or "Headers" in isolation, but instead always uses
- "Header Field" to refer to the individual field and "Header
- Section" to refer to the entire collection; cf. [RFC5322].
-
- o Header Section (HS): The Header Section is a sequence of lines of
- characters with special syntax as defined in [RFC5322]. It is the
- (top) section of a message containing the Header Fields.
-
- o Body: The Body is simply a sequence of characters that follows the
- Header Section and is separated from the Header Section by an
- empty line (i.e., a line with nothing preceding the CRLF); cf
- [RFC5322]. It is the (bottom) section of Message containing the
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 4]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- payload of a Message. Typically, the Body consists of a
- (multipart) MIME [RFC2045] construct.
-
- o MIME Header Fields: Header Fields describing the MIME structure of
- its body as defined in [RFC2045].
-
- o MIME Header Section (part): The collection of MIME Header Fields.
- "MIME Header Section" refers to a Header Sections that contains
- only MIME Header Fields, whereas "MIME Header Section part" refers
- to the MIME Header Fields of a Header Section that - in addition
- to MIME Header Fields - also contains non-MIME Header Fields.
-
- o Header Protection (HP): cryptographic protection of email Header
- Sections (or parts of it) for signatures and/or encryption
-
- o Protection Levels (PL): One of 'signature and encryption',
- 'signature only' or 'encryption only' (cf. Section 3.2)
-
- o Original Message (OrigM): The message to be protected before any
- protection related processing has been applied on the sending
- side.
-
- o Inner Message (InnerM): The message to be protected, i.e. which
- wrapping and protection measures are applied to on the sending
- side or the result of decryption and unwrapping on the receiving
- side respectively. Typically, the Inner Message is in clear text.
- The Inner Message is a subset of (or the same as) the Original
- Message (cf. Section 4.1.2). The Inner Message must be the same
- on the sending and the receiving side.
-
- o Outer Message (OuterM): The Message as handed over to the
- Transport or received from the Transport respectively. The Outer
- Message normally differs on the sending and the receiving side
- (e.g. new Header Fields are added by intermediary nodes).
-
- o Receiving User Facing Message (RUFM): The message used for
- rendering at the receiving side after the Outer Message Header
- Section has been merged with the Inner Message Header Section.
-
- o Essential Header Fields (EHF): The minimum set of Header Fields an
- Outer Message Header Section SHOULD contain; cf. Section 4.1.4.
-
- o Protected: Protected refers to the parts of a message where
- protection measures of any Protection Level have been applied to.
-
- o Protected Message: A message that protection measures of any
- Protection Levels have been applied to.
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 5]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- o Unprotected: Unprotected refers to the parts of a message where no
- protection measures of any Protection Levels have been applied to.
-
- o Unprotected Message: A message that no protection measures of any
- Protection Levels have been applied to.
-
- o Data Minimization: Data spareness and hiding of all technically
- concealable information whenever possible.
-
- 2. Problem Statement
-
- The LAMPS charter contains the following Work Item:
-
- Update the specification for the cryptographic protection of email
- headers - both for signatures and encryption - to improve the
- implementation situation with respect to privacy, security,
- usability and interoperability in cryptographically-protected
- electronic mail. Most current implementations of
- cryptographically-protected electronic mail protect only the body
- of the message, which leaves significant room for attacks against
- otherwise-protected messages.
-
- In the following a set of challenges to be addressed:
-
- [[ TODO: enhance this section, add more items to the following ]]
-
- 2.1. Privacy
-
- o Data Minimization, which includes data spareness and hiding all
- technically concealable information whenever possible
-
- 2.2. Security
-
- o MITM attacks (cf. [RFC4949])
-
- 2.3. Usability
-
- o User interaction / User experience
-
- 2.4. Interoperability
-
- o Interoperability with [RFC8551] implementations
-
- 3. Use Cases
-
- In the following, the reader can find a list of the generic use cases
- that need to be addressed for messages with Header Protection (HP).
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 6]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- These use cases apply independently of whether S/MIME, PGP/MIME or
- any other technology is used to achieve HP.
-
- 3.1. Interactions
-
- 3.1.1. Main Case for Header Protection
-
- Both peers (sending and receiving side) fully support Header
- Protection as specified in this document or the receiving side is at
- least compliant with the MIME specification [RFC2045], ff.; cf.
- Section 4.1.
-
- 3.1.2. Backward Compatibility
-
- The sending side fully supports Header protection as specified in
- this document, while the receiving side does not support the MIME
- specification [RFC2045], ff. correctly; see Section 4.2.
-
- Note: The compatibility of legacy HP systems with this new solutions,
- and how to handle issues surrounding future maintenance for these
- legacy systems, will be decided by the LAMPS WG.
-
- 3.2. Protection Levels
-
- The following protection levels need to be considered:
-
- a) Signature and encryption
-
- Messages containing a cryptographic signature, which are also
- encrypted.
-
- b) Signature only
-
- Messages containing a cryptographic signature, but which are not
- encrypted.
-
- c) Encryption only
-
- Messages that are encrypted, but do not contain a cryptographic
- signature.
-
- 4. Specification
-
- This section contains the specification for Header Protection in
- S/MIME to update and clarifies Section 3.1 of [RFC8551] (S/MIME 4.0).
- This specification is likely to be integrated into S/MIME at some
- later stage.
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 7]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- Furthermore, it is likely that PGP/MIME [RFC3156] will also take over
- this specification or parts of it.
-
- This specification applies to the protection levels "signature &
- encryption" and "signature only" (cf. Section 3.2):
-
- Sending and receiving sides SHOULD implement "signature and
- encryption", which is the default to use on the sending side.
-
- Certain implementations MAY decide to send "signature only" messages,
- depending on the circumstances and customer requirements. Sending
- side MAY and receiving sides SHOULD implement "signature only".
-
- It generally is NOT RECOMMENDED to send a message with protection
- level "encryption only". On the other hand, messages with protection
- level "encryption only" might arrive at the receiving side. While
- not targeted to protection level "encryption only", this
- specification is assumed to also function for "encryption only".
- Receiving sides SHOULD implement "encryption only".
-
- Note: It is for further study whether or not more guidance for
- handling messages with protection level "encryption only" at the
- receiving side is needed.
-
- 4.1. Main Use Case
-
- This section applies to the Interaction (cf. Section 3.1), where all
- involved parties (sending and receiving side) implement this
- specification or the receiving side is at least compliant with the
- MIME specification [RFC2045], ff. (For backward compatibility cases
- cf. Section 4.2).
-
- 4.1.1. MIME Format
-
- Currently there are two options in discussion:
-
- 1. The option according to the current S/MIME specification (cf.
- [RFC8551])
-
- 2. An alternative option that is based on the former "memory hole"
- approach (cf. [I-D.autocrypt-lamps-protected-headers])
-
- 4.1.1.1. S/MIME Specification
-
- As per S/MIME version 3.1 and later (cf. [RFC8551]), the sending
- client MAY wrap a full MIME message in a message/RFC822 wrapper in
- order to apply S/MIME security services to these header fields.
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 8]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- To help the receiving side to distinguish between forwarded and
- wrapped message, a Content-Type header field parameter "forwarded" is
- added as defined in [I-D.melnikov-iana-reg-forwarded]. Certain
- mailing applications might display the Inner Message as attachment
- otherwise.
-
- The MIME structure of an Email message looks as follows:
-
- <Outer Message Header Section (unprotected)>
-
- <Outer Message Body (protected)>
-
- <MIME Header Section (wrapper)>
-
- <Inner Message Header Section>
-
- <Inner Message Body>
-
-
- The following example demonstrates how header section and payload of
- a protected body part might look like. For example, this will be the
- first body part of a multipart/signed message or the signed and/or
- encrypted payload of the application/pkcs7-mime body part. Lines
- prepended by "O: " are the Outer Message Header Section. Lines
- prepended by "I: " are the Inner Message Header Section. Lines
- prepended by "W: " are the wrapper (MIME Header Section):
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 9]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- O: Date: Mon, 25 Sep 2017 17:31:42 +0100 (GMT Daylight Time)
- O: Message-ID: <e4a483cb-1dfb-481d-903b-298c92c21f5e@matt.example.net>
- O: Subject: Meeting at my place
- O: From: "Alexey Melnikov" <alexey.melnikov@example.net>
- O: To: somebody@example.net
- O: MIME-Version: 1.0
- O: Content-Type: multipart/signed; charset=us-ascii; micalg=sha1;
- O: protocol="application/pkcs7-signature";
- O: boundary=.cbe16d2a-e1a3-4220-b821-38348fc97237
-
- This is a multipart message in MIME format.
- --.cbe16d2a-e1a3-4220-b821-38348fc97237
- W: Content-Type: message/RFC822; forwarded=no
- W:
- I: Date: Mon, 25 Sep 2017 17:31:42 +0100 (GMT Daylight Time)
- I: From: "Alexey Melnikov" <alexey.melnikov@example.net>
- I: Message-ID: <e4a483cb-1dfb-481d-903b-298c92c21f5e@matt.example.net>
- I: MIME-Version: 1.0
- I: MMHS-Primary-Precedence: 3
- I: Subject: Meeting at my place
- I: To: somebody@example.net
- I: X-Mailer: Isode Harrier Web Server
- I: Content-Type: text/plain; charset=us-ascii
-
- This is an important message that I don't want to be modified.
-
- --.cbe16d2a-e1a3-4220-b821-38348fc97237
- Content-Transfer-Encoding: base64
- Content-Type: application/pkcs7-signature
-
- [[base-64 encoded signature]]
-
- --.cbe16d2a-e1a3-4220-b821-38348fc97237--
-
-
- The Outer Message Header Section is unprotected, while the remainder
- (Outer Message Body) is protected. The Outer Message Body consists
- of the wrapper (MIME Header Section) and the Inner Message (Header
- Section and Body).
-
- The wrapper is a simple MIME Header Section with media type "message/
- RFC822" containing a Content-Type header field parameter
- "forwarded=no" followed by an empty line.
-
- The Inner Message Header Section is the same as (or a subset of) the
- Original Message Header Section (cf. Section 4.1.2).
-
- The Inner Message Body is the same as the Original Message Body.
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 10]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- The Original Message itself may contain any MIME structure.
-
- There may also be an additional MIME layer with media type
- "multipart/mixed" in the Outer Message Body to contain the Inner
- Message (wrapped in a "message/RFC822") along with other MIME
- part(s).
-
- 4.1.1.2. Alternative Option Autocrypt "Protected Headers" (Ex-"Memory
- Hole")
-
- An alternative option (based on the former autocrypt "Memory Hole"
- approach) to be considered, is described in
- [I-D.autocrypt-lamps-protected-headers].
-
- Unlike the option described in Section 4.1.1.1, this option does not
- use a "message/RFC822" wrapper to unambigously delimit the Inner
- Message.
-
- Note: it is for further study, whether or not this option is (fully)
- compliant with the MIME standard, in particuar also [RFC2046],
- Section 5.1. (Multipart Media Type).
-
- The MIME structure of an Email message looks as follows:
-
- <Outer Message Header Section (unprotected)>
-
- <Outer Message Body (protected)>
-
- <Inner Message Header Section>
-
- <Inner Message Body>
-
-
- The following example demonstrates how header section and payload of
- a protect body part might look like. For example, this will be the
- first body part of a multipart/signed message or the signed and/or
- encrypted payload of the application/pkcs7-mime body part. Lines
- prepended by "O: " are the outer header section. Lines prepended by
- "I: " are the inner header section.
-
-
-
-
-
-
-
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 11]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- O: Date: Mon, 25 Sep 2017 17:31:42 +0100 (GMT Daylight Time)
- O: Message-ID: <e4a483cb-1dfb-481d-903b-298c92c21f5e@matt.example.net>
- O: Subject: Meeting at my place
- O: From: "Alexey Melnikov" <alexey.melnikov@example.net>
- O: MIME-Version: 1.0
- O: Content-Type: multipart/signed; charset=us-ascii; micalg=sha1;
- O: protocol="application/pkcs7-signature";
- O: boundary=.cbe16d2a-e1a3-4220-b821-38348fc97237
-
- This is a multipart message in MIME format.
- --.cbe16d2a-e1a3-4220-b821-38348fc97237
- I: Date: Mon, 25 Sep 2017 17:31:42 +0100 (GMT Daylight Time)
- I: From: "Alexey Melnikov" <alexey.melnikov@example.net>
- I: Message-ID: <e4a483cb-1dfb-481d-903b-298c92c21f5e@matt.example.net>
- I: MIME-Version: 1.0
- I: MMHS-Primary-Precedence: 3
- I: Subject: Meeting at my place
- I: To: somebody@example.net
- I: X-Mailer: Isode Harrier Web Server
- I: Content-Type: text/plain; charset=us-ascii
-
- This is an important message that I don't want to be modified.
-
- --.cbe16d2a-e1a3-4220-b821-38348fc97237
- Content-Transfer-Encoding: base64
- Content-Type: application/pkcs7-signature
-
- [[base-64 encoded signature]]
-
- --.cbe16d2a-e1a3-4220-b821-38348fc97237--
-
-
- The Outer Message Header Section is unprotected, while the remainder
- (Outer Message Body) is protected. The Outer Message Body consists
- of the Inner Message (Header Section and Body).
-
- The Inner Message Header Section is the same as (or a subset of) the
- Original Message Header Section (cf. Section 4.1.2).
-
- The Inner Message Body is the same as the Original Message Body.
-
- The Original Message itself may contain any MIME structure.
-
- There may also be an additional MIME layer with media type
- "multipart/mixed" in the Outer Message Body to contain the Inner
- Message along with other MIME part(s).
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 12]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- 4.1.2. Inner Message Header Fields
-
- It is RECOMMEND that the Inner Messages contains all the Header
- Fields of the Original Message with the exception of the following
- Header Field, which MUST NOT be included to the Inner Message nor to
- any other protected part of the message:
-
- o Bcc
-
- [[ TODO: Bcc handling needs to be further specified (see also
- Appendix A.1). Certain MUAs cannot properly decrypt messages with
- Bcc recipients. ]]
-
- 4.1.3. Wrapper
-
- The wrapper is a simple MIME Header Section followed by an empty line
- preceding the Inner Message (inside the Outer Message Body). The
- media type of the wrapper MUST be "message/RFC822" and SHOULD contain
- the Content-Type header field parameter "forwarded=no" as defined in
- [I-D.melnikov-iana-reg-forwarded]. The wrapper delimits unambigously
- the Inner Message from the rest of the message.
-
- 4.1.4. Outer Message Header Fields
-
- To maximize Privacy, it is strongly RECOMMENDED to follow the
- principle of Data Minimization (cf. Section 2.1).
-
- However, the Outer Message Header Section SHOULD contain the
- Essential Header Fields and, in addition, MUST contain the Header
- Fields of the MIME Header Section part to describe the encryption or
- signature as per [RFC8551].
-
- The following Header Fields are defined as the Essential Header
- Fields:
-
- o From
-
- o To (if present in the OrigM)
-
- o Cc (if present in the OrigM)
-
- o Bcc (if present in the OrigM, see also Section 4.1.2 and
- Appendix A.1)
-
- o Date
-
- o Message-ID
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 13]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- o Subject
-
- Some of these Header Fields are needed by the Transport (e.g. to
- determine the destination). Furthermore, not including certain
- Header Fields may trigger spam detection to flag the message as spam
- and/or lead to user experience (UX) issues.
-
- For further Data Minimization the value of the Subject Header Field
- SHOULD be obfuscated. In addition, the value of other Essential
- Header Fields MAY be obfuscated. Further Header Fields MAY be
- obfuscated, though simply not adding those to the Outer Message
- Header SHOULD be prefered over obfuscation. Header Field obfuscation
- is further specified in Section 4.1.4.1. Header Fields not
- obfuscated SHOULD contain the same values as in the Original Message.
-
- The MIME Header Section part is the collection of MIME Header Fields
- describing the following MIME structure as defined in [RFC2045]. A
- MIME Header Section part typically includes the following Header
- Fields:
-
- o MIME-Version
-
- o Content-Type
-
- o Content-Transfer-Encoding
-
- o Content-Disposition
-
- The following example shows the MIME header of an S/MIME signed
- message (using application/pkcs7-mime with SignedData):
-
- MIME-Version: 1.0
- Content-Type: application/pkcs7-mime; smime-type=signed-data;
- name=smime.p7m
- Content-Transfer-Encoding: base64
- Content-Disposition: attachment; filename=smime.p7m
-
-
- Depending on the scenario, further Header Fields MAY be exposed in
- the Outer Message Header Section, which is NOT RECOMMENDED unless
- justified. Such Header Fields may include e.g.:
-
- o References
-
- o Reply-To
-
- o In-Reply-To
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 14]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- 4.1.4.1. Obfuscation of Outer Message Header Fields
-
- If the values of the following Outer Message Header Fields are
- obfuscated, those SHOULD assume the following values:
-
- * Subject: ...
- * Message-ID: <new randomly generated Message-ID>
- * Date: Thu, 01 Jan 1970 00:00:00 +0000 (UTC)
-
- [[ TODO: Consider alternatives for Date e.g. set to Monday 9am of the
- same week. ]]
-
- In certain implementations also the From, To, and/or Cc Header Field
- MAY be obfucated. Those may be replaced by e.g.
-
- o To: Obfuscated anonymous@anonymous.invalid [1]
-
- Such implementations need to ensure that the Transport has access to
- these Header Fields in clear text and is capable of processing those.
-
- A use case for obfuscation of all Outer Message Header Fields is
- mixnet netwerks, i.e. "onion routing" for email (e.g.[pEp.mixnet]).
-
- Note: It is for further study to what extent Header Field obfuscation
- (adversely) impacts spam filtering.
-
- 4.1.5. Receiving User Facing Message Header Fields
-
- The Receiving User Facing Message is constructed as follows:
-
- o The Header Section of the Receiving User Facing Message MUST
- consist of the Outer Message Header Fields that are not contained
- in the Inner Message Header Section, and the Inner Message Header
- Fields (i.e. the Inner Message Header Field MUST always take
- precedence).
-
- o The Body of the Receiving User Facing Message Body MUST be the
- same as the Inner Message Body.
-
- [[ TODO: Do we need to take special care for HFs, which may appear
- multiple times, e.g. Received HF? ]]
-
- 4.1.6. Header Field Flow
-
- The Following figure depicts the different message representations
- (OrigM, InnerM, OuterM, RUFM) and which parts those are constructed
- from:
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 15]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- OrigM InnerM Outer(S) OuterM(R) RUFM
-
- <Trans-HF> > <Trans-HF>
- From (OrigM) = From
- To (OrigM) = To
- Cc (OrigM) = Cc
- Bcc (OrigM) = Bcc* > Bcc
- Date (OrigM) = Date
- Message-ID (OrigM)= Message-ID
- Subject (new) = Subject
- <MIME-HSp> (new) = <MIME-HSp>
-
- PROTECTED: PROTECTED:
- <Wrapper> (new) = <Wrapper>
- From > From > From = From > From
- To > To > To = To > To
- Cc* > Cc > Cc = Cc > Cc
- Bcc*
- Date > Date > Date = Date > Date
- Message-ID > Message-ID > Message-ID = Message-ID > Message-ID
- Subject > Subject > Subject = Subject > Subject
- <More HF> > <More HF> > <More HF> = <More HF> > <More-HF>
- <MIME-HSp> > <MIME-HSp> > <MIME-HSp> = <MIME-HSp> > <MIME-HSp>
- <Body> > <Body> > <Body> = <Body> > <Body>
- <Signature>* (new)= <Signature>
-
-
- Legend:
-
- o OuterM(S): Outer Message (OuterM) at sending side (before
- processing by Transport)
-
- o OuterM(R): Outer Message at receiving side (as received by
- Transport)
-
- o InnerM: Inner Message (that protection is applied to)
-
- o RUFM: Receiving User Facing Message
-
- o More-HF: Additional Header Fields (HF) in the Original Message
- (OrigM)
-
- o Wrapper: MIME Header Section; with media type (message/RFC822) to
- unambigously delimit the inner message from the rest of the
- message.
-
- o MIME-HSp: MIME Header Section part to describe the encryption or
- signature as per [RFC8551]
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 16]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- o Trans-HF: Header Fields added in Transit (between sending and
- receiving side)
-
- o >: taken over / copied from last column
-
- o =: propagates unchanged, unless something unusual (e.g. attack)
- happens
-
- o *: HF that is often not present (also further HF may not be
- present). If a HF is not present, naturally it can neither be
- taken over nor propagated.
-
- o (new) / (OrigM): HF or MIME-HSp is generated depending on the
- decision in Section 4.1.7.1, while '(new)' / '(OrigM)' designate
- the default.
-
- 4.1.7. Sending Side Message Processing
-
- For a protected message the following steps are applied before a
- message is handed over to the Transport:
-
- 4.1.7.1. Step 1: Decide on Protection Level and Information Disclosure
-
- The entity applying protection to a message must decide:
-
- o Which Protection Level (signature and/or encryption) is applied to
- the message? This depends on user request and/or local policy as
- well as availability of cryptographic keys.
-
- o Which Header Fields of the Orignial Message shall be part of the
- Outer Message Header Section? This typically depends on local
- policy. By default the Essential Header Fields are part of the
- Outer Message Header Section; cf. Section 4.1.4.
-
- o Which of these Header Fields are to be obfuscated? This depends
- on local policy and/or specific Privacy requirements of the user.
- By default only the Subject Header Field is obfuscated; cf.
- Section 4.1.4.1.
-
- 4.1.7.2. Step 2: Compose the Outer Message Header Section
-
- Depending on the decision in Section 4.1.7.1, compose the Outer
- Message Header Section. (Note that this also includes the necessary
- MIME Header Section part for the following protection layer.)
-
- Outer Header Fields that are not obfuscated should contain the same
- values as in the Original Message (except for MIME Header
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 17]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- Section part, which depends on the protection level selected in
- Section 4.1.7.1).
-
- 4.1.7.3. Step 3: Apply Protection to the Original Message
-
- Depending on the Protection Level selected in Section 4.1.7.1 apply
- signature and/or encryption to the Original Message including the
- wrapper (as per [RFC8551]) and set the result to the message as Outer
- Message Body.
-
- The resulting (Outer) Message is then typically handed over to the
- Transport.
-
- [[ TODO: Example ]]
-
- 4.1.8. Receiving Side Message Processing
-
- When a protected message is received the following steps are applied:
-
- 4.1.8.1. Step 1: Decrypt message and/or check signature
-
- Depending on the protection level the received message is decrypted
- and/or its signature is checked as per [RFC8551].
-
- 4.1.8.2. Step 2: Construct the Receiving User Facing Message
-
- The Receiving User Facing Message is constructed according to
- Section 4.1.5.
-
- The resulting message is handed over for further processing, which
- typically involves rendering it to the user.
-
- Note: It is for further study whether and, if yes, how the Outer
- Message Header Section (as received from the Transport) is preserved
- for the user.
-
- 4.2. Backward Compatibility Use Case
-
- [I-D.autocrypt-lamps-protected-headers] describes a possibility to
- achieve backward compatibility with existing S/MIME (and PGP/MIME)
- implementations unaware of this specification (Legacy Display). It
- mainly focuses on email clients that do not render emails using
- header protection (nicely) and may confuse the user. While this has
- been observed occasionally in PGP/MIME (cf. [RFC3156]), the extent
- of this problem with S/MIME implementations is still unclear. (Note:
- At this time, none of the samples in
- [I-D.autocrypt-lamps-protected-headers] applies header protection as
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 18]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- specified in Section 3.1 of [RFC8551], which is wrapping as Media
- Type "message/RFC822".)
-
- Should serious backward compatibility issues with rendering at the
- receiver reveal, the Legacy Display format described in
- [I-D.autocrypt-lamps-protected-headers] may serve as a basis to
- mitigate those (backward compatibility use case).
-
- Another variant of backward compatibility has been implemented by pEp
- [I-D.pep-email], i.e. pEp Email Format 1.0. At this time pEp has
- implemented this for PGP/MIME (but not yet S/MIME).
-
- 5. Security Considerations
-
- [[ TODO ]]
-
- 6. Privacy Considerations
-
- [[ TODO ]]
-
- 7. IANA Considerations
-
- This document requests no action from IANA.
-
- [[ RFC Editor: This section may be removed before publication. ]]
-
- 8. Acknowledgments
-
- The authors would like to thank the following people who have
- provided helpful comments and suggestions for this document: Claudio
- Luck, David Wilson, Hernani Marques, Krista Bennett, Kelly Bristol,
- Robert Williams, Sofia Balicka, Steve Kille, Volker Birk, and Wei
- Chuang.
-
- 9. References
-
- 9.1. Normative References
-
- [I-D.ietf-lamps-header-protection-requirements]
- Melnikov, A. and B. Hoeneisen, "Problem Statement and
- Requirements for Header Protection", draft-ietf-lamps-
- header-protection-requirements-01 (work in progress),
- October 2019.
-
- [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
- Extensions (MIME) Part One: Format of Internet Message
- Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
- <https://www.rfc-editor.org/info/rfc2045>.
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 19]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
- Extensions (MIME) Part Two: Media Types", RFC 2046,
- DOI 10.17487/RFC2046, November 1996,
- <https://www.rfc-editor.org/info/rfc2046>.
-
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
- Requirement Levels", BCP 14, RFC 2119,
- DOI 10.17487/RFC2119, March 1997,
- <https://www.rfc-editor.org/info/rfc2119>.
-
- [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
- DOI 10.17487/RFC5322, October 2008,
- <https://www.rfc-editor.org/info/rfc5322>.
-
- [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/
- Multipurpose Internet Mail Extensions (S/MIME) Version 4.0
- Message Specification", RFC 8551, DOI 10.17487/RFC8551,
- April 2019, <https://www.rfc-editor.org/info/rfc8551>.
-
- 9.2. Informative References
-
- [I-D.autocrypt-lamps-protected-headers]
- Einarsson, B., juga, j., and D. Gillmor, "Protected
- Headers for Cryptographic E-mail", draft-autocrypt-lamps-
- protected-headers-02 (work in progress), December 2019.
-
- [I-D.melnikov-iana-reg-forwarded]
- Melnikov, A. and B. Hoeneisen, "IANA Registration of
- Content-Type Header Field Parameter 'forwarded'", draft-
- melnikov-iana-reg-forwarded-00 (work in progress),
- November 2019.
-
- [I-D.pep-email]
- Marques, H., "pretty Easy privacy (pEp): Email Formats and
- Protocols", draft-marques-pep-email-02 (work in progress),
- October 2018.
-
- [pEp.mixnet]
- pEp Foundation, "Mixnet", June 2020,
- <https://dev.pep.foundation/Mixnet>.
-
- [RFC3156] Elkins, M., Del Torto, D., Levien, R., and T. Roessler,
- "MIME Security with OpenPGP", RFC 3156,
- DOI 10.17487/RFC3156, August 2001,
- <https://www.rfc-editor.org/info/rfc3156>.
-
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 20]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- [RFC4949] Shirey, R., "Internet Security Glossary, Version 2",
- FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007,
- <https://www.rfc-editor.org/info/rfc4949>.
-
- [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed.,
- "DomainKeys Identified Mail (DKIM) Signatures", STD 76,
- RFC 6376, DOI 10.17487/RFC6376, September 2011,
- <https://www.rfc-editor.org/info/rfc6376>.
-
- [RFC7208] Kitterman, S., "Sender Policy Framework (SPF) for
- Authorizing Use of Domains in Email, Version 1", RFC 7208,
- DOI 10.17487/RFC7208, April 2014,
- <https://www.rfc-editor.org/info/rfc7208>.
-
- [RFC7489] Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-based
- Message Authentication, Reporting, and Conformance
- (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015,
- <https://www.rfc-editor.org/info/rfc7489>.
-
- 9.3. URIs
-
- [1] mailto:anonymous@anonymous.invalid
-
- Appendix A. Additional information
-
- A.1. Stored Variants of Messages with Bcc
-
- Messages containing at least one recipient address in the Bcc header
- field may appear in up to three different variants:
-
- 1. The message for the recipient addresses listed in To or Cc header
- fields, which must not include the Bcc header field neither for
- signature calculation nor for encryption.
-
- 2. The message(s) sent to the recipient addresses in the Bcc header
- field, which depends on the implementation:
-
- a) One message for each recipient in the Bcc header field
- separately with a Bcc header field containing only the address of
- the recipient it is sent to
-
- b) The same message for each recipient in the Bcc header field
- with a Bcc header field containing an indication such as
- "Undisclosed recipients" (but no addressees)
-
- c) The same message for each recipient in the Bcc header field
- which does not include a Bcc header field (this message is
- identical to 1. / cf. above)
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 21]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- 3. The message stored in the 'Sent'-Folder of the sender, which
- usually contains the Bcc unchanged from the original message,
- i.e. with all recipient addresses.
-
- The most privacy preserving is to standardize 2a, as in the other
- cases (2b and 2c) information about hidden recipients is revealed via
- keys. In any case the message has to be cloned and adjusted
- depending on the recipient.
-
- Appendix B. Document Changelog
-
- [[ RFC Editor: This section is to be removed before publication ]]
-
- o draft-ietf-lamps-header-protection-00
-
- * Initial version (text partialy taken over from
- [I-D.ietf-lamps-header-protection-requirements]
-
- Appendix C. Open Issues
-
- [[ RFC Editor: This section should be empty and is to be removed
- before publication. ]]
-
- o Ensure "protected header" (Ex-Memory-Hole) option is (fully)
- compliant with the MIME standard, in particuar also [RFC2046],
- Section 5.1. (Multipart Media Type) Section 4.1.1.2.
-
- o Decide on format of obfuscated HFs, in particular Date HF
- (Section 4.1.4.1)
-
- o Impact on spam filtering, if HFs are obfuscated (Section 4.1.4.1)
-
- o More examples (e.g. in Section 4.1.7)
-
- o Should Outer Message Header Section (as received) be preserved for
- the user? (Section 4.1.8.2)
-
- o Do we need to take special care of HFs that may appear multiple
- times, e.g. Received HF? (Section 4.1.8.2)
-
- o Change adding Content-Type header field parameter "forwarded" from
- SHOULD to MUST (Section 4.1.3)?
-
- o Decide on whether or not merge requirements from
- [I-D.ietf-lamps-header-protection-requirements] into this
- document.
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 22]
- Internet-Draft Header Protection S/MIME June 2020
-
-
- o Decide what parts of [I-D.autocrypt-lamps-protected-headers] to
- merge into this document.
-
- o Enhance Introduction and Problem Statement sections
-
- o Decide on whether or not specification for more legacy HP
- requirements should be added to this document
-
- o Improve definitions in Section 3.2
-
- o Privacy Considerations Section 6
-
- o Security Considerations Section 5
-
- Authors' Addresses
-
- Bernie Hoeneisen
- pEp Foundation
- Oberer Graben 4
- CH-8400 Winterthur
- Switzerland
-
- Email: bernie.hoeneisen@pep.foundation
- URI: https://pep.foundation/
-
-
- Alexey Melnikov
- Isode Ltd
- 14 Castle Mews
- Hampton, Middlesex TW12 2NP
- UK
-
- Email: alexey.melnikov@isode.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Hoeneisen & Melnikov Expires December 30, 2020 [Page 23]
|