updating local copy

master
Kelly Bristol 3 years ago
commit 86952a09ed

File diff suppressed because it is too large Load Diff

@ -1,479 +0,0 @@
### This file is only of temporary nature.
### It will be enhanced and renamed later
### to comply with markdown / XML2RFC format
#############################################
# Definitions / Glossary
{::include ../shared/text-blocks/key-words-rfc2119.mkd}
{::include ../shared/text-blocks/terms-intro.mkd}
<!-- {::include ../shared/text-blocks/handshake.mkd} -->
<!-- {::include ../shared/text-blocks/trustwords.mkd} -->
<!-- {::include ../shared/text-blocks/tofu.mkd} -->
{::include ../shared/text-blocks/mitm.mkd}
* S/MIME: Secure/Multipurpose Internet Mail Extensions (cf. {{RFC8551}})
* PGP/MIME: MIME Security with OpenPGP (cf. {{RFC3156}})
* Message: An Email Message that consists of header fields
(collectively called "the Header Section of the message") followed,
optionally, by a Body; cf. {{RFC5322}}.
* Transport: The entity taking care of the transport of a Message
towards the receiver or from the sender. The Transport is
typically implemented in MTA (Mail Transfer Agent).
* 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}}.
* 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.
* 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 payload of a
Message. Typically, the Body consists of a (multipart) MIME
{{RFC2045}} construct.
* MIME Header Section (part): The collection of MIME Header Fields
describing the following MIME structure as defined in {{RFC2045}}.
* Header Protection (HP): cryptographic protection of email Header
Sections (or parts of it) for signatures and/or encryption
* Protection Levels (PL): One of 'signature and encryption',
'signature only' or 'encryption only' (see also below)
* Signature and encryption (protection level): If cryptographic
signing and encryption are applied to a message.
* Signature only (protection level): If cryptographic signing, but no
encryption, is applied to a message.
* Encryption only (protection level): If encryption (but no
cryptographic signing) is applied to a message.
* Original Message: The message to be protected before any protection
related processing has been applied on the sender side.
* Inner Message: The message to be protected, shortly before
protection measures are applied to on the sender side or the message
shortly after unwrapping on the receiver side. Typically the Inner
Message is in clear text and often the Inner Message is the same or
similar as the Original Message. The Inner Message MUST be the same
on the sender and the receiver side.
* Outer Message: The Message as handed over to the Transport or
received from the Transport respectively. The Outer Message
typically differs on the sender and the receiver side.
* User Facing Message: The message used for rendering after the Outer
Message Header Section has been merged with the Inner Message Header
Section.
* Essential Header Fields: The Header Fields an Outer Message Header
Section SHOULD contain at least; cf. {{HF-include-outer}}.
* Protected: Protected refers to the parts of a message where
protection measures of any Protection Levels have been applied to.
* Protected Message: A message that protection measures of any
Protection Levels have been applied to.
* Unprotected: Unprotected refers to the parts of a message where
no protection measures of any Protection Levels have been applied to.
* Unprotected Message: A message that no protection measures of any
Protection Levels have been applied to.
* Data Minimization: Data spareness and hiding all technically
concealable information whenever possible.
# Specification
This section contains the specification for Header Protection in
S/MIME to update and clarify Section 3.1 of {{RFC8551}} (S/MIME
4.0). This specification is likely to be integrated into S/MIME at
some later stage.
Furthermore, it is likely that PGP/MIME {{RFC3156}} will also take
over this specification or parts of it.
The following covers the Interaction if all parties (sending and
receiving side) implement this specification. For backward
compatibility cf. {{backward-compatibility}}.
This specification applies to the protection levels "signature &
encryption" and "signature only". It generally NOT RECOMMENDED to send
message with protection level "encryption only". On the other hand,
messages with protection level "encryption only" may arrive at the
receiving side. While not targeted to protection level "encryption
only", this specification is assumed to also function for "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.
## MIME Format
As per S/MIME version 3.1 and later (cf. {{RFC8551}}), the sending
client wraps a full MIME message in a message/rfc822 wrapper in order
to apply S/MIME security services to these header fields.
To help the receiving side to distinguish between forwarded and
wrapped message, a "forwarded" Content-Type header field parameter is
added as defined in {{I-D.melnikov-iana-reg-forwarded}}.
In the simplest case, a message looks as follows:
~~~
<Outer Message Header Section (unprotected)>
<Outer Message Body (protected)>
<MIME Header Section>
<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 Message Header Section. Lines
prepended by "I: " are the Inner Message Header Section. Lines
prepended by "W: " are the wrapper (MIME Header Section):
~~~
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 Inner Message Body consists of
the MIME header Section and 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. {{HF-include-inner}}). The Inner Message Body is the same as the
Original Message Body (before header protection has been applied).
The original message itself may contain any defined 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 (as "message/rfc822") along with other MIME part(s).
### 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}}.
That option emphasizes backward compatibility challenges to existing Mail
User Agents (MUAs) that do encryption, but are unaware of Header
Protection (see also {{backward-compatibility}}).
That option suggests to use the Media-Type "text/plain" to contain the
Inner Message (as opposed to "message/rfc822",
cf. {{mime-Format}}). That approach may become problematic once the
Content of "text/plain" needs to be parsed.
Regarding MIME type "message/rfc822" {{rfc2046}} specifies:
> Plain text does not provide for or allow formatting commands, font
> attribute specifications, processing instructions, interpretation
> directives, or content markup. Plain text is seen simply as a
> linear sequence of characters, possibly interrupted by line breaks
> or page breaks"
Existing MIME parsers and libraries implemented according to
{{rfc2046}} are likely to be changed to implement the option described
in {{I-D.autocrypt-lamps-protected-headers}}, as that option differs
from the current MIME Standard (cf. {{rfc2046}}).
The impact of using "text/plain", while containing in fact a
"message/rfc822", to the MIME standards and real world deployments is
for further study.
For further information, the reader is encouraged to consult
{{I-D.autocrypt-lamps-protected-headers}}.
## Header Fields to Include to the Inner Message Header Section {#HF-include-inner}
It is RECOMMEND that the Inner Messages contains all the original
Header Fields with the exception of those specified in
{{HF-exclude-inner}}.
## Header Fields to Exclude from the Inner Message Header Section {#HF-exclude-inner}
The following Header Fields MUST NOT be included to the Inner Message
nor to any other protected part of the message:
* Bcc
## Header Fields to Include to the Outer Message Header Section {#HF-include-outer}
The Outer Message Header Section is a subset of the Inner Message
Header Section plus the Header Fields specified in
{{HF-exclude-inner}} plus the MIME Header Section part to describe the
encryption or signature.
To maximize Privacy, it is strongly RECOMMENDED to follow the
principle of Data Minimization, which includes data spareness and
hiding all technically concealable information whenever possible.
However, the Outer Message Header Section SHOULD contain at least the
Essential Header Fields and MUST also contain the Header Fields of the
MIME Header Section part.
The Essential Header Fields are defined as the following Header
Fields:
* From
* To
* Date
* Message-ID
* Subject
Not including those may trigger Spam Detection to flag the message as
Spam and/or lead to User Experience (UX) issues.
For further Data Minimization the values of these Header Fields MAY be
obfuscated, which is discussed further in {{obfuscation-outer-HF}}.
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:
* MIME-Version
* Content-Type
* Content-Transfer-Encoding
* 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, however - as stated above - this is NOT
RECOMMENDED unless justified. Such Header Fields may include
* Cc
* Bcc
* References
* Reply-To
* In-Reply-To
\[\[ Open Issue: Should Cc HF be included anyways, if present and if To HF
is not obfuscated? \]\]
### Obfuscation of Outer Message Header Fields {#obfuscation-outer-HF}
If certain values of the following Outer Message Header Fields are
obfuscated, those SHOULD assume the following values:
~~~
* From: "Obfuscated" anonymous@anonymous.invalid
* To: "Obfuscated" anonymous@anonymous.invalid
* Date: Thu, 01 Jan 1970 00:00:00 +0000 (UTC)
* Subject: ...
* Message-ID: <randomly generated ID>
~~~
Note: Alternative for Date: set to Monday 9am of the same week
In any case, it MUST be ensured that the Transport has access to the
envelope information containing the source and destination(s) of a
message.
\[\[ TODO: Do we need this explanation about the envelope? \]\]
Note: It is for further study to what extent Header Field obfuscation
(adversely) impacts Spam Filtering.
## Header Fields to Exclude from the Outer Message Header Section {#HF-exclude-outer}
The Outer Message Header Section SHOULD NOT contain any non-essential
Header Fields. The essential Header Fields are defined in
{#HF-include-outer}.
## Message Processing
### Sending Side
For a protected message the following steps are applied before a
message can be handed over to the Transport:
#### Step 1: Decide on Protection Level and Information Disclosure {#sender-side-step-1}
The entity applying protection to a message must decide:
* 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.
* Which Header Fields shall be part of the Outer Message Header
Section? This typically depends on local policy. By Default the
Header Fields listed in {{HF-include-outer}} are part of the Outer
Message Header Section.
* Which of these Header Fields are to be obfuscated? This depends on
local policy and/or specific Privacy requirements of the user. By
Default no Header Field is obfuscated. (cf. {{obfuscation-outer-HF}})
#### Step 2: Compose the Outer Message Header Section {#sender-side-step-2}
Depending on the decision in {{sender-side-step-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 Section part, which
depends on the protection level selected in {{sender-side-step-1}}).
#### Step 3: Apply Protection to the Original Message {#sender-side-step-3}
Depending on the protection level in selected in
{{sender-side-step-1}} apply signature and/or encryption to the
original message (as per {{RFC8551}}) and include the result to the
message as Outer Message Body.
The resulting (Outer) Message is then typically handed over to the
Transport.
\[\[ TODO: Example \]\]
### Receiving Side
When a protected message is received the following steps are applied:
#### Step 1: Decrypt message and/or check signature {#received-side-step-1}
Depending on the protection level the received message is decrypted
and/or its signature is checked as per {{RFC8551}}.
#### Step 2: Construct the Receiving User Facing Message {#received-side-step-2}
The receiving User Facing Message is constructed as follows:
* The Header Section of the 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).
* The Body of the User Facing Message Body MUST be the same as the
Inner Message Body.
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.
## Backward Compatibility
{{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
specified in Section 3.1 of {{RFC8551}}, which is wrapping as Media
Type "message/rfc822".)
Should serious Backward Compatibly issues with rendering at the
receiver show up, {{I-D.autocrypt-lamps-protected-headers}} may serve
as a basis to mitigate those.
Another variant of backward compatibility has been implemented by pEp
{{I-D.pep-email}}, i.e. pEp Message Format 1.0. At this time pEp
has only been implementing PGP/MIME, but not yet S/MIME.
## Further Considerations
\[\[ TODO \]\]

@ -14,6 +14,7 @@ $(DRAFT).xml: $(NAME).mkd \
../shared/author_tags/hernani_marques.mkd \
../shared/references/isoc-btn.mkd \
../shared/references/implementation-status.mkd \
../shared/references/pep-mixnet.mkd \
../shared/ascii-arts/basic-msg-flow.mkd \
../shared/text-blocks/key-words-rfc2119.mkd \
../shared/text-blocks/terms-intro.mkd \
@ -32,10 +33,11 @@ $(DRAFT).xml: $(NAME).mkd \
examples/msg-part-decrypted-pef-2-1_compat-2-0.mkd \
examples/msg-part-decrypted-pef-2-1.mkd \
examples/pef-0.mkd \
examples/pef-1-0.mkd \
examples/pef-1-0_old.mkd \
examples/pef-1-0-text-payload.mkd \
examples/pef-2-1.mkd \
examples/pef-2-0.mkd \
examples/pef-2-1.mkd \
# ../shared/author_tags/bernie_hoeneisen.mkd \
# ../shared/author_tags/volker_birk.mkd \
#../shared/author_tags/claudio_luck.mkd \

@ -18,7 +18,7 @@ normative:
RFC3156: # PGP/MIME #
RFC4880: # OpenPGP #
RFC4949:
RFC5322: # STMP #
RFC5322: # SMTP #
RFC7435: # Opportunistic Security #
I-D.melnikov-iana-reg-forwarded:
I-D.birk-pep:
@ -51,7 +51,7 @@ The pretty Easy privacy (pEp) propositions for email are based upon already
existing email and encryption formats (as PGP/MIME) and designed to allow for
easy implementable and interoperable opportunistic encryption: this ranges
from key distribution, secret key synchronization between own devices to
mechanims of metadata and content protection. This is achieved by
mechanisms of metadata and content protection. This is achieved by
moving the whole message (not only the body part) into the PGP/MIME encrypted
part. The proposed pEp Email Formats not only achieve simple forms of metadata
protection (like subject encryption), but also allow for sending email
@ -98,7 +98,7 @@ the following three objectives of pretty Easy privacy (pEp):
1. make email encryption as automatic as possible,
1. protect as much metadata as possible, and
1. provide an easy way to authenticate communicaton partners.
1. provide an easy way to authenticate communication partners.
A reference implementation of pEp for email is available for all major
platforms and it has been ported to many programming languages
@ -150,12 +150,12 @@ Examples:
actors to learn a user's social graph. This is also problematic
security-wise, as centralized cryptographic key subversion at-scale is made
cheaper. Instead, key distribution MUST be handled in-band while communicating with other peers.
* No trust information MUST be attached to the communication partner's public
* Trust information MUST NOT be attached to the communication partners' public
keys. This is metadata which MUST be held locally and seperately from the
keys. Trust is established between the peers directly (peer-to-peer) and no
trust information is held centrally (no support for the Web
of Trust): that is, while pEp MUST be able to work with OpenPGP keys which
carry trust information, this trust information MUST not be used to signal
carry trust information, this trust information MUST NOT be used to signal
any trust level.
* pEp-enabled MUAs MUST either engage in a signed-and-encrypted communication
or in unsigned plaintext communication. While the signatures attached to
@ -195,14 +195,20 @@ fields are transport-relevant and thus might be copied to the wrapper.
## Interoperability
Implementers of pEp SHOULD be liberal in accepting non-pEp formats to encrypt
email contents and metadata, but MUST use the strict and interoperable
pEp format (cf. {{pef-1-0}}) for any outgoing communication to non-pEp users.
email contents and metadata and MUST use the strict and interoperable
pEp Email Format 1.0 (cf. {{pef-1-0}}) for any outgoing communication to
non-pEp users. For communication between pEp users, more privacy-preserving
formats (cf. {{pep-email-formats}}) MUST be used. pEp Email Formats 2.0 and
newer SHOULD NOT be used towards users which were not recognized as
pEp users (cf. {{protocol-negotiation-for-format-selection}}), because for such
non-pEp users those formats are likely to produce unwanted visual artefacts.
## End-to-End {#end-to-end}
An email endpoint in pEp is the MUA on a user's end-device: that is,
encryption and decryption of messages MUST be executed on a user's end-device
and MUST NOT happen on a server infrastructure.
For interpersonal messaging, an email endpoint in pEp is the MUA on a user's
end-device: that is, encryption and decryption of messages MUST be executed on
a user's end-device and MUST NOT depend on any third-party network
infrastructure (i.e., any infrastructure outside a user's direct control).
\[\[ **TODO**: Add enterprise settings with Key Escrow / Extra Keys \]\]
@ -211,11 +217,14 @@ and MUST NOT happen on a server infrastructure.
All relevant pEp mechanisms and state information about other peers MUST be
held locally, on a peer's end-device. There MUST NOT be any reliance
on a email server or even a centralized network component to hold
relevant information for peers to be able to communicatate or to authenticate
relevant information for peers to be able to communicate or to authenticate
themselves. Email servers (like, SMTP or IMAP) are only used as transport
infrastructure for messages, but MUST not be relevant to hold actual state
between peers.
\[\[ TODO: Make clear there is a way to synchronize trust in a peer-to-peer
fashion, by using the Trust Sync mechanism. \]\]
## User Experience (UX) {#ux}
\[\[ **TODO**: Add here what is specific to email \]\]
@ -229,7 +238,7 @@ identity, in which case the same key is attached to it.
All information about communication partners, like identities, keys and
aliases MUST be held on a user's end-device as state information. This SHOULD
be done using a structured format, to faciliate the synchronization of state
be done using a structured format, to facilitate the synchronization of state
information across various devices, taking into account multi-device scenarios,
which are common today.
@ -288,7 +297,7 @@ identity.
The pEp Email Formats 1.0, 2.0 and 2.1 are restricted MIME-based email
formats, which ensure messages to be signed and encrypted. In accordance with
pEp's privacy (and not security) focus, signed-only messages MUST NOT be
supported (cf. {{privacy-by-default}}). pEp-enabled clients MUST be able to
produced (cf. {{privacy-by-default}}). pEp-enabled clients MUST be able to
render all pEp Email Formats properly: for outgoing communications,
the most privacy-preserving format available is to be used, taking
interoperability (cf. {{interoperability}}) into account.
@ -337,6 +346,11 @@ A simple plaintext email looks like the following:
{::include examples/pef-0.mkd}
{::include ../shared/fence-line.mkd}
\[\[ TODO, feedback roker: the size parameter is redundant, useless and can
even be counter-productive: it should not be necessary that the receiver
relies on this parameter; OpenPGP has own mechanisms to ensure a key is
protected against damages \]\]
### pEp Email Format 1.0 {#pef-1-0}
pEp Email Format 1.0 (PEF-1.0) is an encrypted and signed MIME format, which
@ -401,7 +415,7 @@ other MIME entities has
(1) a "text/plain" MIME entity with the PGP-encrypted content, and
(2) the sender's tranferable public key at the very end.
(2) the sender's transferable public key at the very end.
This variant MUST NOT be produced anymore.
@ -475,7 +489,7 @@ Decrypting "msg.asc" results in a multipart/mixed node, with three elements:
(1) a text part indicating this is the encapsulated message
(2) the origninal message encapsulated by a "message/rfc822" MIME
(2) the original message encapsulated by a "message/rfc822" MIME
entity, and
(3) the transferable sender's public key in ASCII-armored format.
@ -487,7 +501,7 @@ An unwrapped example looks like this:
{::include examples/msg-part-decrypted-pef-2-0.mkd}
{::include ../shared/fence-line.mkd}
<!-- HB: Isn't this simply a repetion of PEF-1.0?
<!-- HB: Isn't this simply a repetition of PEF-1.0?
##### Example PEF-2.0: pEp to non-pEp {#pef-2-0-ex1-compat}
@ -504,7 +518,7 @@ but immediately exposes the MIME content part(s), with the transferable
sender's public key at the very end. There's no full email encapsulation,
such that only the Subject header field gets protected by default.
Concretly, that "msg.asc" element, when decrypted, looks like the following:
Concretely, that "msg.asc" element, when decrypted, looks like the following:
#{::include ../shared/fence-line.mkd}
@ -517,16 +531,16 @@ Concretly, that "msg.asc" element, when decrypted, looks like the following:
### pEp Email Format 2.1 {#pef-2-1}
pEp Email Format 2.1 (PEF-2.1) introduces further pEp-specific header
fields to the inner message, which help to determine the behaviour
fields to the inner message, which help to determine the behavior
between pEp users.
<!-- TODO: Explain that behaviour. -->
<!-- TODO: Explain that behavior. -->
In normal interpersonal messaging those additional header fields are:
(1) "X-pEp-Wrapped-Message-Info: INNER" header field stating that the
message carrying this is to be considered the most inner message
containing the original email (this is particulary relevant for mixnet
containing the original email (this is particularly relevant for mixnet
or other scenarios of nested messaging; cf. {{pEp.mixnet}})
(2) "X-pEp-Sender-FPR" header field with the value set to sender's full 160-bit
@ -606,7 +620,7 @@ rely on the plaintext "pEp-Message-Wrapped-Info: OUTER" and
nested message and its encrypted header fields.
On the wire, no difference is visble to example {{pef-2-1-ex1}} above:
On the wire, no difference is visible to example {{pef-2-1-ex1}} above:
#{::include ../shared/fence-line.mkd}
@ -625,7 +639,7 @@ The "msg.asc" part, on the other hand, looks like this:
Please note that this basically is a PEF-2.0 format, but with the additional
pEp-specific headers for the wrapped RFC 822 message.
This ensures interoperablity with clients which are only capable of rendering
This ensures interoperability with clients which are only capable of rendering
PEF-2.0.
##### Example PEF-2.1: pEp to non-pEp
@ -669,7 +683,7 @@ recipients
1. Bcc recipients for which no encryption keys are available
1. Bcc recipients for which encryption keys are avialble
1. Bcc recipients for which encryption keys are available
It's RECOMMENDED that if the original message the user drafted is
saved in the user's sent folder, that all recipient
@ -727,11 +741,15 @@ most end-user scenarios, the servers users work with, are considered
untrusted.
For trusted environments (e.g., in organizations) and to conform to legally
binding archivign regulations, pEp implementations MUST provide a
binding archiving regulations, pEp implementations MUST provide a
"Trusted Server" option. With the user's explicit consent (opt-in),
unencrypted copies of the Messages MUST be held on the mail servers
controlled by the organization.
\[\[ TODO, feedback roker: Discuss the importance of full-disk encryption, also
for the option to save messages locally in unencrypted form; that is even
more important to protect secret keys (mentioned in pEp's general draft). \]\]
# Key Management
## Key Generation
@ -745,7 +763,7 @@ However, the key length MUST be at least 2048 bits. Elliptic curve keys with
at least 256 bits MUST be supported, but SHOULD NOT yet be generated and
announced by default for interoperability reasons.
If for an identity there's an RSA keypair with less than 2048 bits, new keys
If for an identity there's an RSA key pair with less than 2048 bits, new keys
MUST be generated.
## Private Keys
@ -765,7 +783,9 @@ MUST be generated.
## Public Key Distribution
By default, public keys MUST always be attached to any outgoing message
as described in {{pep-email-formats}}.
as described in {{pep-email-formats}}. If this is undesired, e.g., to reduce
display artefacts or (temporary) spam alerts on the receiving side, Passive
Mode (cf. {{passive-mode}}) can be activated.
## Key Reset
@ -773,7 +793,7 @@ as described in {{pep-email-formats}}.
# Trust Management
The following example roughly describes a pEp Email scenario with a
The following example roughly describes a pEp email scenario with a
typical initial message flow to demonstrate key exchange and basic
trust management:
@ -913,7 +933,7 @@ implementation on pEp and the ideas leading to this draft.
The author would like to thank the following people who provided
substantial contributions, helpful comments or suggestions for this
document: Claudio Luck and Bernie Hoeneisen.
document: Claudio Luck, Bernie Hoeneisen and Lars Rohwedder.
This work was initially created by pEp Foundation, and was initially reviewed
and extended with funding by the Internet Society's Beyond the Net Programme on
@ -959,7 +979,7 @@ standardizing pEp. {{ISOC.bnet}}
* Describe / Reference KeySync (and other sync, through IMAP)
* Add keypair revocation strategy
* Add key pair revocation strategy
* Create clearer relations to the pEp rating draft (draft-marques-pep-rating),
as this plays an important role in how Messages are rendered and how they
@ -974,3 +994,16 @@ standardizing pEp. {{ISOC.bnet}}
situations / mirrors and describe operations.
* Explain Key Mapping (between OpenPGP and S/MIME)
<!-- LocalWords: utf docname toc sortrefs symrefs MIMESEC keysync
-->
<!-- LocalWords: interoperable mixnet MUAs plaintext se HB pef IMAP
-->
<!-- LocalWords: ux URI URIs pEpkey asc msg artefacts msc compat
-->
<!-- LocalWords: FPR RSA unsecure Volker Hoeneisen Programme ISOC
-->
<!-- LocalWords: bnet Changelog artefact TODOs KeyImport KeySync
-->
<!-- LocalWords: EncStatus
-->

@ -436,14 +436,14 @@
<link href="#rfc.authors" rel="Chapter">
<meta name="generator" content="xml2rfc version 2.45.3 - https://tools.ietf.org/tools/xml2rfc" />
<meta name="generator" content="xml2rfc version 2.40.0 - https://tools.ietf.org/tools/xml2rfc" />
<link rel="schema.dct" href="http://purl.org/dc/terms/" />
<meta name="dct.creator" content="Marques, H." />
<meta name="dct.identifier" content="urn:ietf:id:draft-pep-email-00" />
<meta name="dct.issued" scheme="ISO8601" content="2020-07-03" />
<meta name="dct.abstract" content="The pretty Easy privacy (pEp) propositions for email are based upon already existing email and encryption formats (as PGP/MIME) and designed to allow for easy implementable and interoperable opportunistic encryption: this ranges from key distribution, secret key synchronization between own devices to mechanims of metadata and content protection. This is achieved by moving the whole message (not only the body part) into the PGP/MIME encrypted part. The proposed pEp Email Formats not only achieve simple forms of metadata protection (like subject encryption), but also allow for sending email messages through a mixnet. Such enhanced forms of metadata protection are explicitly in scope of this document. The goal of pEp for email is to automate operations in order to make email encryption usable by a wider range of Internet users, to achieve wide application of confidentiality and privacy practices in the real world. The proposed operations and formats are targeted to Opportunistic Security scenarios and are already implemented in several applications of pretty Easy privacy (pEp). " />
<meta name="description" content="The pretty Easy privacy (pEp) propositions for email are based upon already existing email and encryption formats (as PGP/MIME) and designed to allow for easy implementable and interoperable opportunistic encryption: this ranges from key distribution, secret key synchronization between own devices to mechanims of metadata and content protection. This is achieved by moving the whole message (not only the body part) into the PGP/MIME encrypted part. The proposed pEp Email Formats not only achieve simple forms of metadata protection (like subject encryption), but also allow for sending email messages through a mixnet. Such enhanced forms of metadata protection are explicitly in scope of this document. The goal of pEp for email is to automate operations in order to make email encryption usable by a wider range of Internet users, to achieve wide application of confidentiality and privacy practices in the real world. The proposed operations and formats are targeted to Opportunistic Security scenarios and are already implemented in several applications of pretty Easy privacy (pEp). " />
<meta name="dct.abstract" content="The pretty Easy privacy (pEp) propositions for email are based upon already existing email and encryption formats (as PGP/MIME) and designed to allow for easy implementable and interoperable opportunistic encryption: this ranges from key distribution, secret key synchronization between own devices to mechanisms of metadata and content protection. This is achieved by moving the whole message (not only the body part) into the PGP/MIME encrypted part. The proposed pEp Email Formats not only achieve simple forms of metadata protection (like subject encryption), but also allow for sending email messages through a mixnet. Such enhanced forms of metadata protection are explicitly in scope of this document. The goal of pEp for email is to automate operations in order to make email encryption usable by a wider range of Internet users, to achieve wide application of confidentiality and privacy practices in the real world. The proposed operations and formats are targeted to Opportunistic Security scenarios and are already implemented in several applications of pretty Easy privacy (pEp). " />
<meta name="description" content="The pretty Easy privacy (pEp) propositions for email are based upon already existing email and encryption formats (as PGP/MIME) and designed to allow for easy implementable and interoperable opportunistic encryption: this ranges from key distribution, secret key synchronization between own devices to mechanisms of metadata and content protection. This is achieved by moving the whole message (not only the body part) into the PGP/MIME encrypted part. The proposed pEp Email Formats not only achieve simple forms of metadata protection (like subject encryption), but also allow for sending email messages through a mixnet. Such enhanced forms of metadata protection are explicitly in scope of this document. The goal of pEp for email is to automate operations in order to make email encryption usable by a wider range of Internet users, to achieve wide application of confidentiality and privacy practices in the real world. The proposed operations and formats are targeted to Opportunistic Security scenarios and are already implemented in several applications of pretty Easy privacy (pEp). " />
</head>
@ -477,7 +477,7 @@
<span class="filename">draft-pep-email-00</span></p>
<h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1>
<p>The pretty Easy privacy (pEp) propositions for email are based upon already existing email and encryption formats (as PGP/MIME) and designed to allow for easy implementable and interoperable opportunistic encryption: this ranges from key distribution, secret key synchronization between own devices to mechanims of metadata and content protection. This is achieved by moving the whole message (not only the body part) into the PGP/MIME encrypted part. The proposed pEp Email Formats not only achieve simple forms of metadata protection (like subject encryption), but also allow for sending email messages through a mixnet. Such enhanced forms of metadata protection are explicitly in scope of this document.</p>
<p>The pretty Easy privacy (pEp) propositions for email are based upon already existing email and encryption formats (as PGP/MIME) and designed to allow for easy implementable and interoperable opportunistic encryption: this ranges from key distribution, secret key synchronization between own devices to mechanisms of metadata and content protection. This is achieved by moving the whole message (not only the body part) into the PGP/MIME encrypted part. The proposed pEp Email Formats not only achieve simple forms of metadata protection (like subject encryption), but also allow for sending email messages through a mixnet. Such enhanced forms of metadata protection are explicitly in scope of this document.</p>
<p>The goal of pEp for email is to automate operations in order to make email encryption usable by a wider range of Internet users, to achieve wide application of confidentiality and privacy practices in the real world.</p>
<p>The proposed operations and formats are targeted to Opportunistic Security scenarios and are already implemented in several applications of pretty Easy privacy (pEp).</p>
<h1 id="rfc.status"><a href="#rfc.status">Status of This Memo</a></h1>
@ -633,7 +633,7 @@
<ol>
<li>make email encryption as automatic as possible,</li>
<li>protect as much metadata as possible, and</li>
<li>provide an easy way to authenticate communicaton partners.</li>
<li>provide an easy way to authenticate communication partners.</li>
</ol>
<p id="rfc.section.1.p.9">A reference implementation of pEp for email is available for all major platforms and it has been ported to many programming languages (cf. <a href="#implementation-status" class="xref">Section 11</a> for an overview).</p>
<h1 id="rfc.section.1.1">
@ -675,7 +675,7 @@
<ul>
<li>pEp implementers MUST NOT make queries to public key servers by default. The reason for this is to make it more expensive for centralized network actors to learn a user&#8217;s social graph. This is also problematic security-wise, as centralized cryptographic key subversion at-scale is made cheaper. Instead, key distribution MUST be handled in-band while communicating with other peers.</li>
<li>No trust information MUST be attached to the communication partner&#8217;s public keys. This is metadata which MUST be held locally and seperately from the keys. Trust is established between the peers directly (peer-to-peer) and no trust information is held centrally (no support for the Web of Trust): that is, while pEp MUST be able to work with OpenPGP keys which carry trust information, this trust information MUST not be used to signal any trust level.</li>
<li>No trust information MUST be attached to the communication partner&#8217;s public keys. This is metadata which MUST be held locally and separately from the keys. Trust is established between the peers directly (peer-to-peer) and no trust information is held centrally (no support for the Web of Trust): that is, while pEp MUST be able to work with OpenPGP keys which carry trust information, this trust information MUST not be used to signal any trust level.</li>
<li>pEp-enabled MUAs MUST either engage in a signed-and-encrypted communication or in unsigned plaintext communication. While the signatures attached to plaintext messages can be verified, signed-only messages per se do not increase security as long as the corresponding public key is not authenticated. Signed-only messages do not improve privacy either.</li>
</ul>
<h1 id="rfc.section.2.2">
@ -703,7 +703,7 @@
<h1 id="rfc.section.2.6">
<a href="#rfc.section.2.6">2.6.</a> <a href="#peer-to-peer" id="peer-to-peer">Peer-to-Peer</a>
</h1>
<p id="rfc.section.2.6.p.1">All relevant pEp mechanisms and state information about other peers MUST be held locally, on a peer&#8217;s end-device. There MUST NOT be any reliance on a email server or even a centralized network component to hold relevant information for peers to be able to communicatate or to authenticate themselves. Email servers (like, SMTP or IMAP) are only used as transport infrastructure for messages, but MUST not be relevant to hold actual state between peers.</p>
<p id="rfc.section.2.6.p.1">All relevant pEp mechanisms and state information about other peers MUST be held locally, on a peer&#8217;s end-device. There MUST NOT be any reliance on a email server or even a centralized network component to hold relevant information for peers to be able to communicate or to authenticate themselves. Email servers (like, SMTP or IMAP) are only used as transport infrastructure for messages, but MUST not be relevant to hold actual state between peers.</p>
<h1 id="rfc.section.2.7">
<a href="#rfc.section.2.7">2.7.</a> <a href="#ux" id="ux">User Experience (UX)</a>
</h1>
@ -712,7 +712,7 @@
<a href="#rfc.section.2.8">2.8.</a> <a href="#identity-system" id="identity-system">Identity System</a>
</h1>
<p id="rfc.section.2.8.p.1">In pEp for email, a user is a person or group which can have one or more identities, each represented by email addresses. Every identity has an own key attached to it. An email address can also be an alias for an already existing identity, in which case the same key is attached to it.</p>
<p id="rfc.section.2.8.p.2">All information about communication partners, like identities, keys and aliases MUST be held on a user&#8217;s end-device as state information. This SHOULD be done using a structured format, to faciliate the synchronization of state information across various devices, taking into account multi-device scenarios, which are common today.</p>
<p id="rfc.section.2.8.p.2">All information about communication partners, like identities, keys and aliases MUST be held on a user&#8217;s end-device as state information. This SHOULD be done using a structured format, to facilitate the synchronization of state information across various devices, taking into account multi-device scenarios, which are common today.</p>
<p id="rfc.section.2.8.p.3">In pEp&#8217;s reference implementation (cf. <a href="#implementation-status" class="xref">Section 11</a>), keys are hold using the key store of the cryptographic library used, while peer-specific state information, including trust information is held in a simple relational database.</p>
<p id="rfc.section.2.8.p.4">[[ <strong>TODO</strong>: Check optimal order the following sections. ]]</p>
<h1 id="rfc.section.2.8.1">
@ -878,7 +878,7 @@ Content-Disposition: attachment; filename="pEpkey.asc"
</h1>
<p id="rfc.section.2.9.2.1.p.1">An earlier variant of PEF-1.0 started with a &#8220;multipart/mixed&#8221; MIME node, which in case of a simple text-only email without attachments and other MIME entities has</p>
<p id="rfc.section.2.9.2.1.p.2">(1) a &#8220;text/plain&#8221; MIME entity with the PGP-encrypted content, and</p>
<p id="rfc.section.2.9.2.1.p.3">(2) the sender&#8217;s tranferable public key at the very end.</p>
<p id="rfc.section.2.9.2.1.p.3">(2) the sender&#8217;s transferable public key at the very end.</p>
<p id="rfc.section.2.9.2.1.p.4">This variant MUST NOT be produced anymore.</p>
<p id="rfc.section.2.9.2.1.p.5">An example of this deprecated variant of PEF-1.0 looks as follows:</p>
<pre>
@ -977,7 +977,7 @@ Content-Disposition: inline; filename="msg.asc"
</pre>
<p id="rfc.section.2.9.3.p.10">Decrypting &#8220;msg.asc&#8221; results in a multipart/mixed node, with three elements:</p>
<p id="rfc.section.2.9.3.p.11">(1) a text part indicating this is the encapsulated message</p>
<p id="rfc.section.2.9.3.p.12">(2) the origninal message encapsulated by a &#8220;message/rfc822&#8221; MIME entity, and</p>
<p id="rfc.section.2.9.3.p.12">(2) the original message encapsulated by a &#8220;message/rfc822&#8221; MIME entity, and</p>
<p id="rfc.section.2.9.3.p.13">(3) the transferable sender&#8217;s public key in ASCII-armored format.</p>
<p id="rfc.section.2.9.3.p.14">An unwrapped example looks like this:</p>
<pre>
@ -1034,9 +1034,9 @@ Content-Disposition: attachment; filename="pEpkey.asc"
<h1 id="rfc.section.2.9.4">
<a href="#rfc.section.2.9.4">2.9.4.</a> <a href="#pef-2-1" id="pef-2-1">pEp Email Format 2.1</a>
</h1>
<p id="rfc.section.2.9.4.p.1">pEp Email Format 2.1 (PEF-2.1) introduces further pEp-specific header fields to the inner message, which help to determine the behaviour between pEp users.</p>
<p id="rfc.section.2.9.4.p.1">pEp Email Format 2.1 (PEF-2.1) introduces further pEp-specific header fields to the inner message, which help to determine the behavior between pEp users.</p>
<p id="rfc.section.2.9.4.p.2">In normal interpersonal messaging those additional header fields are:</p>
<p id="rfc.section.2.9.4.p.3">(1) &#8220;X-pEp-Wrapped-Message-Info: INNER&#8221; header field stating that the message carrying this is to be considered the most inner message containing the original email (this is particulary relevant for mixnet or other scenarios of nested messaging; cf. <a href="#pEp.mixnet" class="xref">[pEp.mixnet]</a>)</p>
<p id="rfc.section.2.9.4.p.3">(1) &#8220;X-pEp-Wrapped-Message-Info: INNER&#8221; header field stating that the message carrying this is to be considered the most inner message containing the original email (this is particularly relevant for mixnet or other scenarios of nested messaging; cf. <a href="#pEp.mixnet" class="xref">[pEp.mixnet]</a>)</p>
<p id="rfc.section.2.9.4.p.4">(2) &#8220;X-pEp-Sender-FPR&#8221; header field with the value set to sender&#8217;s full 160-bit public key fingerprint (e.g., &#8220;1234567890ABCDEF1234567890ABCDEF12345678&#8221;), and</p>
<p id="rfc.section.2.9.4.p.5">(3) the &#8220;X-pEp-Version&#8221; header field set to version &#8220;2.1&#8221;.</p>
<p id="rfc.section.2.9.4.p.6">As with PEF-2.0 <a href="#pef-2-0" class="xref">Section 2.9.3</a>, in PEF-2.1 the actual email (inner message) is encapsulated by a MIME entity (&#8220;Content-Type: message/rfc822&#8221;), which is the second part of a &#8220;multipart/mixed&#8221; MIME node. The first part of this MIME node contains a &#8220;text/plain&#8221; MIME entity, which SHOULD be used to inform about the nature of this format (in case a non-pEp client encounters in the mailbox). It MAY be used to carry the intended subject of the inner message (which is not done in current reference implementations). Like with the PEF-1.0 (cf. <a href="#pef-1-0" class="xref">Section 2.9.2</a>) and PEF 2.0 (cf. <a href="#pef-2-0" class="xref">Section 2.9.3</a>), the third (and last) part of this &#8220;multipart/mixed&#8221; MIME node MUST contain the sender&#8217;s public key.</p>
@ -1140,7 +1140,7 @@ Content-Disposition: attachment; filename="pEpkey.asc"
<p id="rfc.section.2.9.6.p.2">Messages sent or received in unencrypted form, SHOULD NOT be saved in encrypted form on the email server: this reflects the Privacy Status the user encountered when sending or receiving the email and thus meets the user&#8217;s expectations.</p>
<p id="rfc.section.2.9.6.p.3">Instead, message drafts MUST always be saved with the identity&#8217;s public key.</p>
<p id="rfc.section.2.9.6.p.4">Other messages sent and received MUST be saved encrypted by default: for most end-user scenarios, the servers users work with, are considered untrusted.</p>
<p id="rfc.section.2.9.6.p.5">For trusted environments (e.g., in organizations) and to conform to legally binding archivign regulations, pEp implementations MUST provide a &#8220;Trusted Server&#8221; option. With the user&#8217;s explicit consent (opt-in), unencrypted copies of the Messages MUST be held on the mail servers controlled by the organization.</p>
<p id="rfc.section.2.9.6.p.5">For trusted environments (e.g., in organizations) and to conform to legally binding archiving regulations, pEp implementations MUST provide a &#8220;Trusted Server&#8221; option. With the user&#8217;s explicit consent (opt-in), unencrypted copies of the Messages MUST be held on the mail servers controlled by the organization.</p>
<h1 id="rfc.section.3">
<a href="#rfc.section.3">3.</a> <a href="#key-management" id="key-management">Key Management</a>
</h1>
@ -1148,7 +1148,7 @@ Content-Disposition: attachment; filename="pEpkey.asc"
<a href="#rfc.section.3.1">3.1.</a> <a href="#key-generation" id="key-generation">Key Generation</a>
</h1>
<p id="rfc.section.3.1.p.1">A pEp-enabled Mail User Agent MUST consider every email account as an new identity: for each identity, a different key pair MUST be created automatically if no key material with sufficient length is available. By default, RSA-4096 key pairs for OpenPGP encryption <a href="#RFC4880" class="xref">[RFC4880]</a> SHOULD be generated automatically for each email account. However, the key length MUST be at least 2048 bits. Elliptic curve keys with at least 256 bits MUST be supported, but SHOULD NOT yet be generated and announced by default for interoperability reasons.</p>
<p id="rfc.section.3.1.p.2">If for an identity there&#8217;s an RSA keypair with less than 2048 bits, new keys MUST be generated.</p>
<p id="rfc.section.3.1.p.2">If for an identity there&#8217;s an RSA key pair with less than 2048 bits, new keys MUST be generated.</p>
<h1 id="rfc.section.3.2">
<a href="#rfc.section.3.2">3.2.</a> <a href="#private-keys" id="private-keys">Private Keys</a>
</h1>
@ -1490,7 +1490,7 @@ Content-Disposition: attachment; filename="pEpkey.asc"
<li>Eventually move the many TODOs into this Open Issues section.</li>
<li>Describe KeyImport to induce the import from secret keys from other devices</li>
<li>Describe / Reference KeySync (and other sync, through IMAP)</li>
<li>Add keypair revocation strategy</li>
<li>Add key pair revocation strategy</li>
<li>Create clearer relations to the pEp rating draft (draft-marques-pep-rating), as this plays an important role in how Messages are rendered and how they need to be presented (after rating) for a user to have awareness about his privacy status in any given situation.</li>
<li>Make document more coherent: check with pEp&#8217;s general draft pieces to fill on both sides and how to reference them vice-versa (this is now pending on the reworked general draft to be published).</li>
<li>Elaborate more on the X-EncStatus header field and for Trusted Server situations / mirrors and describe operations.</li>

@ -17,7 +17,7 @@ Abstract
already existing email and encryption formats (as PGP/MIME) and
designed to allow for easy implementable and interoperable
opportunistic encryption: this ranges from key distribution, secret
key synchronization between own devices to mechanims of metadata and
key synchronization between own devices to mechanisms of metadata and
content protection. This is achieved by moving the whole message
(not only the body part) into the PGP/MIME encrypted part. The
proposed pEp Email Formats not only achieve simple forms of metadata
@ -189,7 +189,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
2. protect as much metadata as possible, and
3. provide an easy way to authenticate communicaton partners.
3. provide an easy way to authenticate communication partners.
A reference implementation of pEp for email is available for all
major platforms and it has been ported to many programming languages
@ -288,7 +288,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
o No trust information MUST be attached to the communication
partner's public keys. This is metadata which MUST be held
locally and seperately from the keys. Trust is established
locally and separately from the keys. Trust is established
between the peers directly (peer-to-peer) and no trust information
is held centrally (no support for the Web of Trust): that is,
while pEp MUST be able to work with OpenPGP keys which carry trust
@ -358,7 +358,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
All relevant pEp mechanisms and state information about other peers
MUST be held locally, on a peer's end-device. There MUST NOT be any
reliance on a email server or even a centralized network component to
hold relevant information for peers to be able to communicatate or to
hold relevant information for peers to be able to communicate or to
authenticate themselves. Email servers (like, SMTP or IMAP) are only
used as transport infrastructure for messages, but MUST not be
relevant to hold actual state between peers.
@ -377,7 +377,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
All information about communication partners, like identities, keys
and aliases MUST be held on a user's end-device as state information.
This SHOULD be done using a structured format, to faciliate the
This SHOULD be done using a structured format, to facilitate the
synchronization of state information across various devices, taking
into account multi-device scenarios, which are common today.
@ -716,7 +716,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
(1) a "text/plain" MIME entity with the PGP-encrypted content, and
(2) the sender's tranferable public key at the very end.
(2) the sender's transferable public key at the very end.
This variant MUST NOT be produced anymore.
@ -886,7 +886,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
(1) a text part indicating this is the encapsulated message
(2) the origninal message encapsulated by a "message/rfc822" MIME
(2) the original message encapsulated by a "message/rfc822" MIME
entity, and
(3) the transferable sender's public key in ASCII-armored format.
@ -961,14 +961,14 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
2.9.4. pEp Email Format 2.1
pEp Email Format 2.1 (PEF-2.1) introduces further pEp-specific header
fields to the inner message, which help to determine the behaviour
fields to the inner message, which help to determine the behavior
between pEp users.
In normal interpersonal messaging those additional header fields are:
(1) "X-pEp-Wrapped-Message-Info: INNER" header field stating that the
message carrying this is to be considered the most inner message
containing the original email (this is particulary relevant for
containing the original email (this is particularly relevant for
mixnet or other scenarios of nested messaging; cf. [pEp.mixnet])
(2) "X-pEp-Sender-FPR" header field with the value set to sender's
@ -1155,7 +1155,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
considered untrusted.
For trusted environments (e.g., in organizations) and to conform to
legally binding archivign regulations, pEp implementations MUST
legally binding archiving regulations, pEp implementations MUST
provide a "Trusted Server" option. With the user's explicit consent
(opt-in), unencrypted copies of the Messages MUST be held on the mail
servers controlled by the organization.
@ -1181,7 +1181,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
at least 256 bits MUST be supported, but SHOULD NOT yet be generated
and announced by default for interoperability reasons.
If for an identity there's an RSA keypair with less than 2048 bits,
If for an identity there's an RSA key pair with less than 2048 bits,
new keys MUST be generated.
3.2. Private Keys
@ -1743,7 +1743,7 @@ Internet-Draft pretty Easy privacy (pEp) Email July 2020
o Describe / Reference KeySync (and other sync, through IMAP)
o Add keypair revocation strategy
o Add key pair revocation strategy
o Create clearer relations to the pEp rating draft (draft-marques-
pep-rating), as this plays an important role in how Messages are

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save