<p><ahref="#RFC8280"class="xref">[RFC8280]</a> has identified and documented important principles in such as Data Minimization, End-to-End and Interoperability in order to enable access to Human Rights. While (partial) implementations of these concepts are already available, today’s applications widely lack Privacy support that ordinary users can easily handle. This document covers analysis of threats and requirements.</p>
<h1id="rfc.status"><ahref="#rfc.status">Status of This Memo</a></h1>
<p>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.</p>
<p>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/.</p>
<p>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."</p>
<p>This Internet-Draft will expire on December 26, 2019.</p>
<p>Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
<p>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 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.</p>
<hrclass="noprint"/>
<h1class="np"id="rfc.toc"><ahref="#rfc.toc">Table of Contents</a></h1>
<p><ahref="#RFC8280"class="xref">[RFC8280]</a> has identified and documented important principles in such as Data Minimization, End-to-End and Interoperability in order to enable access to Human Rights. While (partial) implementations of these concepts are already available, today’s applications widely lack Privacy support that ordinary users can easily handle.</p>
<pid="rfc.section.1.p.2">In MEDUP these issues are addressed based on Opportunistic Security <ahref="#RFC7435"class="xref">[RFC7435]</a> principles.</p>
<pid="rfc.section.1.p.3">This document covers analysis of threats and requirements.</p>
<pid="rfc.section.1.1.p.1">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 <ahref="#RFC2119"class="xref">[RFC2119]</a>.</p>
<pid="rfc.section.1.2.p.1">The following terms are defined for the scope of this document:</p>
<p></p>
<ul>
<li>Trustwords: A scalar-to-word representation of 16-bit numbers (0 to 65535) to natural language words. When doing a Handshake, peers are shown combined Trustwords of both public keys involved to ease the comparison. <ahref="#I-D.birk-pep-trustwords"class="xref">[I-D.birk-pep-trustwords]</a>
</li>
<li>Trust on First Use (TOFU): cf. <ahref="#RFC7435"class="xref">[RFC7435]</a>
<pid="rfc.section.2.2.1.p.1">To achieve privacy of exchanged messages in an opportunistic way <ahref="#RFC7435"class="xref">[RFC7435]</a>, the following model (simplified) is proposed by pEp (pretty Easy Privacy) <ahref="#I-D.birk-pep"class="xref">[I-D.birk-pep]</a>:</p>
<pid="rfc.section.2.2.1.p.3">pEp is supposed to solve three problems :</p>
<p></p>
<ul>
<li>Key management</li>
<li>Trust management</li>
<li>Identity management</li>
</ul>
<pid="rfc.section.2.2.1.p.5">pEp is supposed to provide Privacy by Default at least for message content. In addition, pEp is providing meta data protection. pEp is meant to be used in already existing messaging solutions.</p>
<pid="rfc.section.2.2.1.p.6">And pEp is supposed to provide technical data protection by implementing mix network capabilities.</p>
<pid="rfc.section.2.2.1.p.7">Additionally, there are use cases for enterprise environments, where e.g. some instance at the enterprise may need to look into the messages. Reasons for this include compliance requirements or virus / malware checking</p>
<pid="rfc.section.2.2.1.p.8">[[ TODO: Decide whether enterprise requirements will be covered herein ]]</p>
<pid="rfc.section.2.2.2.p.1">The Autocrypt approach is also a known project following the above mentioned principles, though - compared to pEp (cf. <ahref="#pEp"class="xref">Section 2.2.1</a>) - the goals slightly differ, for example regarding support of legacy PGP <ahref="#RFC4880"class="xref">[RFC4880]</a> implementations.</p>
<pid="rfc.section.2.2.2.p.2">More information on Autocypt can be found on: https://autocrypt.org/background.html</p>
<pid="rfc.section.2.2.2.p.3">[[ TODO: Input from autocrypt group ]]</p>
<pid="rfc.section.3.p.1">This section outlines the functional requirements. We follow the requirements extracted from the literature on private emails and instant messaging <ahref="#Unger"class="xref">[Unger]</a>.</p>
<pid="rfc.section.4.p.1">This section describes a set of possible threats. Note that not all threats can be addressed, due to conflicting requirements.</p>
<li>Users: Sender and receiver(s) <br><br> There are the communicating parties such as the sender and receiver of messages.</li>
<li>Messaging operators and network nodes <br><br> Are the servers and network nodes who are responsible for message delivery and synchronization.</li>
<li>Third parties <br><br> It is any other entity who is interacting with the system.</li>
<ahref="#rfc.section.6.1">6.1.</a><ahref="#security-threats-and-requirements"id="security-threats-and-requirements">Security Threats and Requirements</a>
</h1>
<h1id="rfc.section.6.1.1">
<ahref="#rfc.section.6.1.1">6.1.1.</a><ahref="#spoofing-and-entity-authentication"id="spoofing-and-entity-authentication">Spoofing and Entity Authentication</a>
</h1>
<pid="rfc.section.6.1.1.p.1">An adversary can spoof and impersonate a profile of a user. It may attempt to send or receive a message on behalf of a legitimate user. An adversary can be a user of the system gaining access as an imposter sending or receiving a message. For example, an adversary can impersonate a valid sender of a message and send it on their behalf. The capabilities of an adversary are usually local controlling one entity or a set of entities, in the sense that each spoofed identity will be used to communicate with different end users. To mitigate spoofing threats is essential to have entity authentication mechanisms safeguarding that a user is the legitimate owner of a messaging service account. For example, it can prove that he/she knows something such as passwords, posses something such as public key and have specific features such as biometrics.</p>
<h1id="rfc.section.6.1.2">
<ahref="#rfc.section.6.1.2">6.1.2.</a><ahref="#information-disclosure-and-confidentiality"id="information-disclosure-and-confidentiality">Information Disclosure and Confidentiality</a>
<pid="rfc.section.6.1.2.p.1">An adversary aims to retrieve and disclose information about the content of a message. It can attempt to perform a man-in-the-middle attack (MitM) eavesdropping and forwarding messages as an intermediary between the communicating users. For example, an adversary can try to position itself between two communicating parties such as the messaging server and remain undetectable collecting information transmitted to the intended users. The capabilities of an adversary can be from local controlling one point of the communication channel such as an entity or a communication link of the network. It can also be a global adversary controlling several entities and communication links of the channel, gaining the capability of correlating traffic such as in timing attacks even for end-to-end communication systems <ahref="#Tor"class="xref">[Tor]</a>. Therefore, confidentiality of messages exchanged in the system should be guaranteed with the use of encryption schemes such as symmetric, asymmetric, or homomorphic encryption.</p>
<ahref="#rfc.section.6.1.3">6.1.3.</a><ahref="#tampering-with-data-and-data-authentication"id="tampering-with-data-and-data-authentication">Tampering With Data and Data Authentication</a>
</h1>
<pid="rfc.section.6.1.3.p.1">An adversary can tamper with the messages aiming to modify the information stored or exchanged between the communication entities in the system. For instance, an adversary may attempt to alter an email or an instant message by changing the content of them. It can be anyone but the users who are communicating such as the message operators, the network node, and third parties. The capabilities of an adversary can be local controlling an entity that can alter messages usually performing MitM attack for an encrypted channel. Therefore, no honest party should accept a message that was modified in transit. Data authentication of messages needs to be guaranteed such as with the use of MAC algorithms and digital signatures.</p>
<h1id="rfc.section.6.1.4">
<ahref="#rfc.section.6.1.4">6.1.4.</a><ahref="#repudiation-and-accountability-non-repudiation"id="repudiation-and-accountability-non-repudiation">Repudiation and Accountability (Non-Repudiation)</a>
</h1>
<pid="rfc.section.6.1.4.p.1">An adversary can repudiate an email sent or received by providing falsified information about the status of the message to users of the system. For instance, an adversary may attempt to state inaccurate information about an action performed such as about sending or receiving an email. An adversary can be anyone who is involved in communicating such as the users of the system, the message operators, and the network nodes. To mitigate repudiation threats, accountability and non-repudiation of actions performed must be guaranteed. Non-repudiation of action can be of origin, submission, delivery, and receipt providing proof of actions performed to the intended recipient. It can be achieved with the use of cryptographic schemes such as digital signatures and audit trails such as timestamps.</p>
<h1id="rfc.section.6.2">
<ahref="#rfc.section.6.2">6.2.</a><ahref="#privacy-threats-and-requirements"id="privacy-threats-and-requirements">Privacy Threats and Requirements</a>
<pid="rfc.section.6.2.1.p.1">An adversary can identify a specific user associated with an Items of Interest (IOI), i.e., an ID of a subject, a message sent, and an action performed. Identifiability is the state under which a specific user can be identified from a set of users defined as the identifiability set. For instance, it may identify the sender of a message by examining the headers of an email exchanged within a system. An adversary can be anyone but the users who are communicating such as the message operators, the network node or third parties. To mitigate identifiability threats, the anonymity of users must be guaranteed. It is defined as the “Anonymity of a subject from an attacker’s perspective means that the attacker cannot sufficiently identify the subject within a set of subjects, the anonymity set”<ahref="#Pfitzmann"class="xref">[Pfitzmann]</a>. Essentially, to enable anonymity, there is always need to be a set of possible subjects such that for an adversary the communicating user can be equally likely of any other user in the set <ahref="#Diaz"class="xref">[Diaz]</a>. Thus, an adversary cannot deduce who is the originator of a message. Anonymity can be achieved with the use of pseudonyms and cryptographic schemes such as anonymous remailers (i.e., mixnets), anonymous communications channels (e.g., Tor), and secret sharing.</p>
<pid="rfc.section.6.2.2.p.1">An adversary can sufficiently distinguish within the system, whether two or more Items of Interest (IOI) such as subjects, objects, messages, and actions are linked to the same user. For instance, an adversary can relate pseudonyms from messages exchanged and deduce whether it is the same user who sent the messages. It can be anyone but the users who are communicating such as the message operators, the network node, or third parties. Therefore, unlinkability of IOIs should be guaranteed with the use of pseudonyms and cryptographic schemes such as anonymous credentials.</p>
<h1id="rfc.section.6.2.3">
<ahref="#rfc.section.6.2.3">6.2.3.</a><ahref="#detectability-and-observatility-unditectability"id="detectability-and-observatility-unditectability">Detectability and observatility – Unditectability</a>
<pid="rfc.section.6.2.3.p.1">An adversary can sufficiently detect an IOI such as messages exchanged within the system from random noise. For instance, an adversary can detect a specific IOI when a user is sending a message from a set of communicating users. An adversary can be anyone but the users who are communicating such as the message operators, the network node or third parties. In contrast to anonymity and unlinkability, where the relationship from an IOI to a user is preserved, undetectability is defined as “Undetectability of an item of interest (IOI) from an attacker’s perspective means that the attacker cannot sufficiently distinguish whether it exists or not.”<ahref="#Pfitzmann"class="xref">[Pfitzmann]</a>. Undetectability of IOIs can be guaranteed with the use of cryptographic schemes such as Mix-nets and obfuscation mechanisms such as dummy traffic.</p>
<pid="rfc.section.6.3.p.1">An adversary can disclose information exchanged within the system about users. It can perform a MitM aiming to learn the contents of a message the metadata information such as with whom someone is communicating with and with which frequency. It can be anyone but the users who are communicating such as the messaging server, and the network nodes. The capabilities of an adversary can be local controlling one entity or channel of the network to a global adversary which can control several entities and communication links. Confidentiality of messages, together with security, needs to be guaranteed with the use of cryptographic operations such as secret sharing, symmetric, asymmetric, or homomorphic encryption.</p>
<h1id="rfc.section.6.4">
<ahref="#rfc.section.6.4">6.4.</a><ahref="#non-repudiation-and-deniability"id="non-repudiation-and-deniability">Non-repudiation and deniability</a>
</h1>
<pid="rfc.section.6.4.p.1">In contrast to security, non-repudiation can be a threat to a user’s privacy for messaging systems. An adversary may attempt to collect evidence exchanged in the system aiming to prove to others that a specific user is the originator of a specific message. That can be problematic for users as whistle-blowers in countries where censorship is a daily routine and to countries where human life can be at stake. Therefore plausible deniability, unlike non-repudiation, must be guaranteed where the system guarantees that an adversary cannot confirm either contradict that a specific user has sent a message. Deniability can be guaranteed with the use of cryptographic schemes such as off-the-record messages.</p>
<h1id="rfc.section.7">
<ahref="#rfc.section.7">7.</a><ahref="#specific-security-and-privacy-requirements"id="specific-security-and-privacy-requirements">Specific Security and Privacy Requirements</a>
<li>Send encrypted and signed message to another peer</li>
<li>Send unencrypted and unsigned message to another peer <br><br> Note: Subcases of sending messages are outlined in <ahref="#subcases-for-sending-messages"class="xref">Section 8.2</a>.</li>
<li>Receive encrypted and signed message from another peer</li>
<li>Receive encrypted, but not signed message from another peer</li>
<li>Receive signed, but not encrypted message from another peer</li>
<li>Receive unencrypted and unsigned message from another peer <br><br> Note: Subcases of receiving messages are outlined in <ahref="#subcases-for-receiving-messages"class="xref">Section 8.3</a>.</li>
<li>Trust rating of a peer is updated (locally) when: <ul>
<li>Public Key is received the first time</li>
<li>Trustwords have been compared successfully and confirmed by user (see above)</li>
<li>Trust of a peer is revoked (cf. <ahref="#key-management"class="xref">Section 7.3</a>, Key Reset)</li>
</ul>
</li>
<li>Trust of a public key is synchronized among different devices of the same user <br><br> Note: Synchronization management (such as establish or revoke trust) among a user’s own devices is described in <ahref="#synchronization-management"class="xref">Section 7.4</a>
<li>New Key pair is generated automatically (if none found) at startup</li>
<li>Public Key is sent to peer by attaching it to messages</li>
<li>Public Key received by a peer is stored locally</li>
<li>Key pair is declared invalid and other peers are informed (Key Reset)</li>
<li>Public Key is marked invalid after receiving a key reset message</li>
<li>Public Keys are are of peers are synchronized among different devices of the same user</li>
<li>Private Key is synchronized among different devices of the same user <br><br> Note: Synchronization management (such as establish or revoke trust) among a user’s own devices is described in <ahref="#synchronization-management"class="xref">Section 7.4</a>
<pid="rfc.section.7.4.p.1">A device group is a group of devices of the same user that share the same key pairs in order to synchronize data among them. In a device group devices of the same user mutually grant authentication.</p>
<p></p>
<ul><li>Form a device group of two (yet ungrouped) devices of the same user</li></ul>
<p></p>
<ul>
<li>Join another device of the same user to existing device group</li>
<pid="rfc.section.8.1.p.1">The basic model consists of three different interaction states, i.e.:</p>
<p></p>
<ol>
<li>Both peers have got no public key of each other, no trust possible</li>
<li>Only one peer has got the public key of the other peer, but no trust</li>
<li>Only one peer has got the public key of the other peer and trusts that public key</li>
<li>Both peers have got the public key of each other, but no trust</li>
<li>Both peers have got the public key of each other, but only one peer trusts the other peer’s public key</li>
<li>Both peers have got the public key of each other and both peers trust each others public key</li>
</ol>
<pid="rfc.section.8.1.p.3">The following table shows the different interaction states possible:</p>
<tablecellpadding="3"cellspacing="0"class="tt full center">
<thead><tr>
<thclass="left">state</th>
<thclass="center">Peer’s Public Key available</th>
<thclass="center">My Public Key available to Peer</th>
<thclass="center">Peer Trusted</th>
<thclass="center">Peer trusts me</th>
</tr></thead>
<tbody>
<tr>
<tdclass="left">1.</td>
<tdclass="center">no</td>
<tdclass="center">no</td>
<tdclass="center">N/A</td>
<tdclass="center">N/A</td>
</tr>
<tr>
<tdclass="left">2a.</td>
<tdclass="center">no</td>
<tdclass="center">yes</td>
<tdclass="center">N/A</td>
<tdclass="center">no</td>
</tr>
<tr>
<tdclass="left">2b.</td>
<tdclass="center">yes</td>
<tdclass="center">no</td>
<tdclass="center">no</td>
<tdclass="center">N/A</td>
</tr>
<tr>
<tdclass="left">3a.</td>
<tdclass="center">no</td>
<tdclass="center">yes</td>
<tdclass="center">N/A</td>
<tdclass="center">yes</td>
</tr>
<tr>
<tdclass="left">3b.</td>
<tdclass="center">yes</td>
<tdclass="center">no</td>
<tdclass="center">yes</td>
<tdclass="center">N/A</td>
</tr>
<tr>
<tdclass="left">4.</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
<tdclass="center">no</td>
<tdclass="center">no</td>
</tr>
<tr>
<tdclass="left">5a.</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
<tdclass="center">no</td>
<tdclass="center">yes</td>
</tr>
<tr>
<tdclass="left">5b.</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
<tdclass="center">no</td>
</tr>
<tr>
<tdclass="left">6.</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
<tdclass="center">yes</td>
</tr>
</tbody>
</table>
<pid="rfc.section.8.1.p.4">In the simplified model, only interaction states 1, 2, 4 and 6 are depicted. States 3 and 5 may result from e.g. key mistrust or abnormal user behavior.</p>
<pid="rfc.section.8.1.p.5">Note: As one peer may have several keys or if group conversations are involved, things will get more complex. For the time being, we focus on bilateral interactions, whereas group interactions are split up into several bilateral interactions.</p>
<h1id="rfc.section.8.2">
<ahref="#rfc.section.8.2">8.2.</a><ahref="#subcases-for-sending-messages"id="subcases-for-sending-messages">Subcases for Sending Messages</a>
</h1>
<p></p>
<ul>
<li>If peer’s Public Key not available (Interaction States 1, 2a, and 3a) <ul><li>Send message Unencrypted (and not Signed)</li></ul>
</li>
<li>If peer’s Public Key available (Interaction States 2b, 3b, 4, 5a, 5b, 6) <ul><li>Send message Encrypted and Signed</li></ul>
</li>
</ul>
<h1id="rfc.section.8.3">
<ahref="#rfc.section.8.3">8.3.</a><ahref="#subcases-for-receiving-messages"id="subcases-for-receiving-messages">Subcases for Receiving Messages</a>
</h1>
<p></p>
<ul>
<li>If peer’s Public Key not available (Interaction States 1, 2a, and 3a) <ul>
<li>If message is signed <ul><li>ignore signature</li></ul>
</li>
<li>If message is encrypted <ul><li>decrypt with caution</li></ul>
</li>
<li>If message not encrypted <ul><li>No further processing regarding encryption</li></ul>
</li>
</ul>
</li>
<li>If peer’s Public Key available or can be retrieved from received message (Interaction States 2b, 3b, 4, 5a, 5b, 6) <ul>
<li>If message is signed <ul>
<li>verify signature</li>
<li>If message is encrypted <ul><li>Decrypt</li></ul>
</li>
<li>If message not encrypted <ul><li>No further processing regarding encryption</li></ul>
</li>
</ul>
</li>
<li>If message not signed <ul>
<li>If message is encrypted <ul><li>exception</li></ul>
</li>
<li>If message not encrypted <ul><li>No further processing regarding encryption</li></ul>
<pid="rfc.section.12.p.1">The authors would like to thank the following people who have provided feedback or significant contributions to the development of this document: Volker Birk [[ TODO: Forename Surname, Forename2 Surname2, …]]</p>
<a>Diaz, C.</a>, <a>Seys, St.</a>, <a>Claessens, J.</a> and <a>B. Preneel</a>, "<a>Towards Measuring Anonymity</a>", PET Privacy Enhancing Technologies, Second International Workshop, San Francisco, CA, USA, April 14-15, 2002, Revised Papers, pp. 54-68, 2002.</td>
<a>Pfitzmann, A.</a> and <a>M. Hansen</a>, "<ahref="https://nyuscholars.nyu.edu/en/publications/sok-secure-messaging">A terminology for talking about privacy by data minimization: Anonymity, unlinkability, undetectability, unobservability, pseudonymity, and identity management</a>", 2010.</td>
<a>Bradner, S.</a>, "<ahref="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.</td>
<a>Shirey, R.</a>, "<ahref="https://tools.ietf.org/html/rfc4949">Internet Security Glossary, Version 2</a>", FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007.</td>
<a>Dukhovni, V.</a>, "<ahref="https://tools.ietf.org/html/rfc7435">Opportunistic Security: Some Protection Most of the Time</a>", RFC 7435, DOI 10.17487/RFC7435, December 2014.</td>
<a>Project, T.</a>, "<ahref="https://blog.torproject.org/one-cell-enough-break-tors-anonymity/">One cell is enough to break Tor's anonymity</a>", June 2019.</td>