p≡p I-Ds (IETF Internet-Drafts)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

986 lines
39 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<title>pretty Easy privacy (pEp): Mapping of Privacy Rating</title>
<style type="text/css" title="Xml2Rfc (sans serif)">
/*<![CDATA[*/
a {
text-decoration: none;
}
/* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
a.info {
/* This is the key. */
position: relative;
z-index: 24;
text-decoration: none;
}
a.info:hover {
z-index: 25;
color: #FFF; background-color: #900;
}
a.info span { display: none; }
a.info:hover span.info {
/* The span will display just on :hover state. */
display: block;
position: absolute;
font-size: smaller;
top: 2em; left: -5em; width: 15em;
padding: 2px; border: 1px solid #333;
color: #900; background-color: #EEE;
text-align: left;
}
a.smpl {
color: black;
}
a:hover {
text-decoration: underline;
}
a:active {
text-decoration: underline;
}
address {
margin-top: 1em;
margin-left: 2em;
font-style: normal;
}
body {
color: black;
font-family: verdana, helvetica, arial, sans-serif;
font-size: 10pt;
max-width: 55em;
}
cite {
font-style: normal;
}
dd {
margin-right: 2em;
}
dl {
margin-left: 2em;
}
ul.empty {
list-style-type: none;
}
ul.empty li {
margin-top: .5em;
}
dl p {
margin-left: 0em;
}
dt {
margin-top: .5em;
}
h1 {
font-size: 14pt;
line-height: 21pt;
page-break-after: avoid;
}
h1.np {
page-break-before: always;
}
h1 a {
color: #333333;
}
h2 {
font-size: 12pt;
line-height: 15pt;
page-break-after: avoid;
}
h3, h4, h5, h6 {
font-size: 10pt;
page-break-after: avoid;
}
h2 a, h3 a, h4 a, h5 a, h6 a {
color: black;
}
img {
margin-left: 3em;
}
li {
margin-left: 2em;
margin-right: 2em;
}
ol {
margin-left: 2em;
margin-right: 2em;
}
ol p {
margin-left: 0em;
}
p {
margin-left: 2em;
margin-right: 2em;
}
pre {
margin-left: 3em;
background-color: lightyellow;
padding: .25em;
}
pre.text2 {
border-style: dotted;
border-width: 1px;
background-color: #f0f0f0;
width: 69em;
}
pre.inline {
background-color: white;
padding: 0em;
}
pre.text {
border-style: dotted;
border-width: 1px;
background-color: #f8f8f8;
width: 69em;
}
pre.drawing {
border-style: solid;
border-width: 1px;
background-color: #f8f8f8;
padding: 2em;
}
table {
margin-left: 2em;
}
table.tt {
vertical-align: top;
}
table.full {
border-style: outset;
border-width: 1px;
}
table.headers {
border-style: outset;
border-width: 1px;
}
table.tt td {
vertical-align: top;
}
table.full td {
border-style: inset;
border-width: 1px;
}
table.tt th {
vertical-align: top;
}
table.full th {
border-style: inset;
border-width: 1px;
}
table.headers th {
border-style: none none inset none;
border-width: 1px;
}
table.left {
margin-right: auto;
}
table.right {
margin-left: auto;
}
table.center {
margin-left: auto;
margin-right: auto;
}
caption {
caption-side: bottom;
font-weight: bold;
font-size: 9pt;
margin-top: .5em;
}
table.header {
border-spacing: 1px;
width: 95%;
font-size: 10pt;
color: white;
}
td.top {
vertical-align: top;
}
td.topnowrap {
vertical-align: top;
white-space: nowrap;
}
table.header td {
background-color: gray;
width: 50%;
}
table.header a {
color: white;
}
td.reference {
vertical-align: top;
white-space: nowrap;
padding-right: 1em;
}
thead {
display:table-header-group;
}
ul.toc, ul.toc ul {
list-style: none;
margin-left: 1.5em;
margin-right: 0em;
padding-left: 0em;
}
ul.toc li {
line-height: 150%;
font-weight: bold;
font-size: 10pt;
margin-left: 0em;
margin-right: 0em;
}
ul.toc li li {
line-height: normal;
font-weight: normal;
font-size: 9pt;
margin-left: 0em;
margin-right: 0em;
}
li.excluded {
font-size: 0pt;
}
ul p {
margin-left: 0em;
}
.comment {
background-color: yellow;
}
.center {
text-align: center;
}
.error {
color: red;
font-style: italic;
font-weight: bold;
}
.figure {
font-weight: bold;
text-align: center;
font-size: 9pt;
}
.filename {
color: #333333;
font-weight: bold;
font-size: 12pt;
line-height: 21pt;
text-align: center;
}
.fn {
font-weight: bold;
}
.hidden {
display: none;
}
.left {
text-align: left;
}
.right {
text-align: right;
}
.title {
color: #990000;
font-size: 18pt;
line-height: 18pt;
font-weight: bold;
text-align: center;
margin-top: 36pt;
}
.vcardline {
display: block;
}
.warning {
font-size: 14pt;
background-color: yellow;
}
@media print {
.noprint {
display: none;
}
a {
color: black;
text-decoration: none;
}
table.header {
width: 90%;
}
td.header {
width: 50%;
color: black;
background-color: white;
vertical-align: top;
font-size: 12pt;
}
ul.toc a::after {
content: leader('.') target-counter(attr(href), page);
}
ul.ind li li a {
content: target-counter(attr(href), page);
}
.print2col {
column-count: 2;
-moz-column-count: 2;
column-fill: auto;
}
}
@page {
@top-left {
content: "Internet-Draft";
}
@top-right {
content: "December 2010";
}
@top-center {
content: "Abbreviated Title";
}
@bottom-left {
content: "Doe";
}
@bottom-center {
content: "Expires June 2011";
}
@bottom-right {
content: "[Page " counter(page) "]";
}
}
@page:first {
@top-left {
content: normal;
}
@top-right {
content: normal;
}
@top-center {
content: normal;
}
}
/*]]>*/
</style>
<link href="#rfc.toc" rel="Contents">
<link href="#rfc.section.1" rel="Chapter" title="1 Introduction">
<link href="#rfc.section.1.1" rel="Chapter" title="1.1 Requirements Language">
<link href="#rfc.section.1.2" rel="Chapter" title="1.2 Terms">
<link href="#rfc.section.2" rel="Chapter" title="2 Per-Message Privacy Rating">
<link href="#rfc.section.2.1" rel="Chapter" title="2.1 Rating Codes">
<link href="#rfc.section.2.2" rel="Chapter" title="2.2 Color Codes">
<link href="#rfc.section.2.3" rel="Chapter" title="2.3 Surjective Mapping of Rating Codes into Color Codes">
<link href="#rfc.section.2.4" rel="Chapter" title="2.4 Semantics of Color and Rating Codes">
<link href="#rfc.section.2.4.1" rel="Chapter" title="2.4.1 Red">
<link href="#rfc.section.2.4.2" rel="Chapter" title="2.4.2 No Color">
<link href="#rfc.section.2.4.3" rel="Chapter" title="2.4.3 Yellow">
<link href="#rfc.section.2.4.4" rel="Chapter" title="2.4.4 Green">
<link href="#rfc.section.3" rel="Chapter" title="3 Per-Identity Privacy Rating">
<link href="#rfc.section.4" rel="Chapter" title="4 Security Considerations">
<link href="#rfc.section.5" rel="Chapter" title="5 Privacy Considerations">
<link href="#rfc.section.6" rel="Chapter" title="6 IANA Considerations">
<link href="#rfc.section.7" rel="Chapter" title="7 Implementation Status">
<link href="#rfc.section.7.1" rel="Chapter" title="7.1 Introduction">
<link href="#rfc.section.7.2" rel="Chapter" title="7.2 Current software implementing pEp">
<link href="#rfc.section.8" rel="Chapter" title="8 Acknowledgements">
<link href="#rfc.references" rel="Chapter" title="9 References">
<link href="#rfc.references.1" rel="Chapter" title="9.1 Normative References">
<link href="#rfc.references.2" rel="Chapter" title="9.2 Informative References">
<link href="#rfc.appendix.A" rel="Chapter" title="A Excerpts from the pEp Reference Implementation">
<link href="#rfc.appendix.A.1" rel="Chapter" title="A.1 pEp rating">
<link href="#rfc.appendix.B" rel="Chapter" title="B Document Changelog">
<link href="#rfc.appendix.C" rel="Chapter" title="C Open Issues">
<link href="#rfc.authors" rel="Chapter">
<meta name="generator" content="xml2rfc version 2.9.6 - https://tools.ietf.org/tools/xml2rfc" />
<link rel="schema.dct" href="http://purl.org/dc/terms/" />
<meta name="dct.creator" content="Marques, H. and B. Hoeneisen" />
<meta name="dct.identifier" content="urn:ietf:id:draft-marques-pep-rating-02" />
<meta name="dct.issued" scheme="ISO8601" content="2019-07-07" />
<meta name="dct.abstract" content="In many Opportunistic Security scenarios end-to-end encryption is automatized for Internet users. In addition, it is often required to provide the users with easy means to carry out authentication." />
<meta name="description" content="In many Opportunistic Security scenarios end-to-end encryption is automatized for Internet users. In addition, it is often required to provide the users with easy means to carry out authentication." />
</head>
<body>
<table class="header">
<tbody>
<tr>
<td class="left">Network Working Group</td>
<td class="right">H. Marques</td>
</tr>
<tr>
<td class="left">Internet-Draft</td>
<td class="right">pEp Foundation</td>
</tr>
<tr>
<td class="left">Intended status: Informational</td>
<td class="right">B. Hoeneisen</td>
</tr>
<tr>
<td class="left">Expires: January 8, 2020</td>
<td class="right">Ucom.ch</td>
</tr>
<tr>
<td class="left"></td>
<td class="right">July 07, 2019</td>
</tr>
</tbody>
</table>
<p class="title">pretty Easy privacy (pEp): Mapping of Privacy Rating<br />
<span class="filename">draft-marques-pep-rating-02</span></p>
<h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1>
<p>In many Opportunistic Security scenarios end-to-end encryption is automatized for Internet users. In addition, it is often required to provide the users with easy means to carry out authentication.</p>
<p>Depending on several factors, each communication channel to different peers may have a different Privacy Status, e.g., unencrypted, encrypted and encrypted as well as authenticated. Even each message from/to a single peer may have a different Privacy Status.</p>
<p>To display the actual Privacy Status to the user, this document defines a Privacy Rating scheme and its mapping to a traffic-light semantics. A Privacy Status is defined on a per-message basis as well as on a per-identity basis. The traffic-light semantics (as color rating) allows for a clear and easily understandable presentation to the user in order to optimize the User Experience (UX).</p>
<p>This rating system is most beneficial to Opportunistic Security scenarios and is 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>
<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 January 8, 2020.</p>
<h1 id="rfc.copyrightnotice"><a href="#rfc.copyrightnotice">Copyright Notice</a></h1>
<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>
<hr class="noprint" />
<h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1>
<ul class="toc">
<li>1. <a href="#rfc.section.1">Introduction</a>
</li>
<ul><li>1.1. <a href="#rfc.section.1.1">Requirements Language</a>
</li>
<li>1.2. <a href="#rfc.section.1.2">Terms</a>
</li>
</ul><li>2. <a href="#rfc.section.2">Per-Message Privacy Rating</a>
</li>
<ul><li>2.1. <a href="#rfc.section.2.1">Rating Codes</a>
</li>
<li>2.2. <a href="#rfc.section.2.2">Color Codes</a>
</li>
<li>2.3. <a href="#rfc.section.2.3">Surjective Mapping of Rating Codes into Color Codes</a>
</li>
<li>2.4. <a href="#rfc.section.2.4">Semantics of Color and Rating Codes</a>
</li>
<ul><li>2.4.1. <a href="#rfc.section.2.4.1">Red</a>
</li>
<li>2.4.2. <a href="#rfc.section.2.4.2">No Color</a>
</li>
<li>2.4.3. <a href="#rfc.section.2.4.3">Yellow</a>
</li>
<li>2.4.4. <a href="#rfc.section.2.4.4">Green</a>
</li>
</ul></ul><li>3. <a href="#rfc.section.3">Per-Identity Privacy Rating</a>
</li>
<li>4. <a href="#rfc.section.4">Security Considerations</a>
</li>
<li>5. <a href="#rfc.section.5">Privacy Considerations</a>
</li>
<li>6. <a href="#rfc.section.6">IANA Considerations</a>
</li>
<li>7. <a href="#rfc.section.7">Implementation Status</a>
</li>
<ul><li>7.1. <a href="#rfc.section.7.1">Introduction</a>
</li>
<li>7.2. <a href="#rfc.section.7.2">Current software implementing pEp</a>
</li>
</ul><li>8. <a href="#rfc.section.8">Acknowledgements</a>
</li>
<li>9. <a href="#rfc.references">References</a>
</li>
<ul><li>9.1. <a href="#rfc.references.1">Normative References</a>
</li>
<li>9.2. <a href="#rfc.references.2">Informative References</a>
</li>
</ul><li>Appendix A. <a href="#rfc.appendix.A">Excerpts from the pEp Reference Implementation</a>
</li>
<ul><li>A.1. <a href="#rfc.appendix.A.1">pEp rating</a>
</li>
</ul><li>Appendix B. <a href="#rfc.appendix.B">Document Changelog</a>
</li>
<li>Appendix C. <a href="#rfc.appendix.C">Open Issues</a>
</li>
<li><a href="#rfc.authors">Authors' Addresses</a>
</li>
</ul>
<h1 id="rfc.section.1">
<a href="#rfc.section.1">1.</a> <a href="#introduction" id="introduction">Introduction</a>
</h1>
<p id="rfc.section.1.p.1">In many Opportunistic Security <a href="#RFC7435" class="xref">[RFC7435]</a> scenarios end-to-end encryption is automatized for Internet users. In addition, it is often required to provide the users with easy means to carry out authentication.</p>
<p id="rfc.section.1.p.2">Depending on several factors, each communication channel to different identities may have a different Privacy Status, e.g.</p>
<p></p>
<ul>
<li>unreliable</li>
<li>encrypted</li>
<li>encrypted and authenticated</li>
<li>mistrusted</li>
</ul>
<p id="rfc.section.1.p.4">Even each message from or to a single peer may have a different Privacy Status.</p>
<p id="rfc.section.1.p.5">To display the actual Privacy Status to the user, this document defines a Privacy Rating scheme and its mapping to a traffic-light semantics, i.e., a mapping to different color codes as used in a traffic-light:</p>
<p></p>
<ul>
<li>red</li>
<li>yellow</li>
<li>green</li>
<li>no color (or gray)</li>
</ul>
<p id="rfc.section.1.p.7">Note: While &#8220;yellow&#8221; color is used in the context of traffic-lights (e.g., in North America), in other parts of the world (e.g., the UK) this is generally referred to as &#8220;orange&#8221; or &#8220;amber&#8221; lights. For the scope of this document, &#8220;yellow&#8221;, &#8220;amber&#8221;, and &#8220;orange&#8221; refer to the same semantics.</p>
<p id="rfc.section.1.p.8">A Privacy Status is defined on a per-message basis as well as on a per-identity basis. The traffic-light semantics (as color rating) allows for a clear and easily understandable presentation to the user in order to optimize the User Experience (UX). To serve also (color-)blind Internet users or those using monochrome displays, the traffic light color semantics may also be presented by simple texts and symbols for signaling the corresponding Privacy Status.</p>
<p id="rfc.section.1.p.9">The proposed definitions are already implemented and used in applications of pretty Easy privacy (pEp) <a href="#I-D.birk-pep" class="xref">[I-D.birk-pep]</a>. This document is targeted to applications based on the pEp framework and Opportunistic Security <a href="#RFC7435" class="xref">[RFC7435]</a>. However, it may be also used in other applications as suitable.</p>
<p id="rfc.section.1.p.10">Note: The pEp <a href="#I-D.birk-pep" class="xref">[I-D.birk-pep]</a> framework proposes to automatize the use of end-to-end encryption for Internet users of email and other messaging applications and introduces methods to easily allow authentication.</p>
<h1 id="rfc.section.1.1">
<a href="#rfc.section.1.1">1.1.</a> <a href="#requirements-language" id="requirements-language">Requirements Language</a>
</h1>
<p id="rfc.section.1.1.p.1">The key words &#8220;MUST&#8221;, &#8220;MUST NOT&#8221;, &#8220;REQUIRED&#8221;, &#8220;SHALL&#8221;, &#8220;SHALL NOT&#8221;, &#8220;SHOULD&#8221;, &#8220;SHOULD NOT&#8221;, &#8220;RECOMMENDED&#8221;, &#8220;MAY&#8221;, and &#8220;OPTIONAL&#8221; in this document are to be interpreted as described in <a href="#RFC2119" class="xref">[RFC2119]</a>.</p>
<h1 id="rfc.section.1.2">
<a href="#rfc.section.1.2">1.2.</a> <a href="#terms" id="terms">Terms</a>
</h1>
<p id="rfc.section.1.2.p.1">The following terms are defined for the scope of this document:</p>
<p></p>
<ul>
<li>pEp Handshake: The process of one user contacting another over an independent channel in order to verify Trustwords (or by fallback: fingerprints). This can be done in-person or through established verbal communication channels, like a phone call. <a href="#I-D.marques-pep-handshake" class="xref">[I-D.marques-pep-handshake]</a>
</li>
<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. <a href="#I-D.birk-pep-trustwords" class="xref">[I-D.birk-pep-trustwords]</a>
</li>
</ul>
<p></p>
<ul><li>Trust On First Use (TOFU): cf. <a href="#RFC7435" class="xref">[RFC7435]</a>, which states: &#8220;In a protocol, TOFU calls for accepting and storing a public key or credential associated with an asserted identity, without authenticating that assertion. Subsequent communication that is authenticated using the cached key or credential is secure against an MiTM attack, if such an attack did not succeed during the vulnerable initial communication.&#8221;</li></ul>
<p></p>
<ul><li>Man-in-the-middle (MITM) attack: cf. <a href="#RFC4949" class="xref">[RFC4949]</a>, which states: &#8220;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.&#8221;</li></ul>
<h1 id="rfc.section.2">
<a href="#rfc.section.2">2.</a> <a href="#per-message-privacy-rating" id="per-message-privacy-rating">Per-Message Privacy Rating</a>
</h1>
<h1 id="rfc.section.2.1">
<a href="#rfc.section.2.1">2.1.</a> <a href="#rating-codes" id="rating-codes">Rating Codes</a>
</h1>
<p id="rfc.section.2.1.p.1">To rate messages (cf. also <a href="#pep-rating" class="xref">Appendix A.1</a>), the following 13 Rating codes are defined as scalar values (decimal):</p>
<table cellpadding="3" cellspacing="0" class="tt full center">
<thead><tr>
<th class="left">Rating code</th>
<th class="right">Rating label</th>
</tr></thead>
<tbody>
<tr>
<td class="left">-3</td>
<td class="right">under attack</td>
</tr>
<tr>
<td class="left">-2</td>
<td class="right">broken</td>
</tr>
<tr>
<td class="left">-1</td>
<td class="right">mistrust</td>
</tr>
<tr>
<td class="left">0</td>
<td class="right">undefined</td>
</tr>
<tr>
<td class="left">1</td>
<td class="right">cannot decrypt</td>
</tr>
<tr>
<td class="left">2</td>
<td class="right">have no key</td>
</tr>
<tr>
<td class="left">3</td>
<td class="right">unencrypted</td>
</tr>
<tr>
<td class="left">4</td>
<td class="right">unencrypted for some</td>
</tr>
<tr>
<td class="left">5</td>
<td class="right">unreliable</td>
</tr>
<tr>
<td class="left">6</td>
<td class="right">reliable</td>
</tr>
<tr>
<td class="left">7</td>
<td class="right">trusted</td>
</tr>
<tr>
<td class="left">8</td>
<td class="right">trusted and anonymized</td>
</tr>
<tr>
<td class="left">9</td>
<td class="right">fully anonymous</td>
</tr>
</tbody>
</table>
<h1 id="rfc.section.2.2">
<a href="#rfc.section.2.2">2.2.</a> <a href="#color-codes" id="color-codes">Color Codes</a>
</h1>
<p id="rfc.section.2.2.p.1">For an Internet user to understand what the available Privacy Status is, the following colors (traffic-light semantics) are defined:</p>
<table cellpadding="3" cellspacing="0" class="tt full center">
<thead><tr>
<th class="left">Color code</th>
<th class="right">Color label</th>
</tr></thead>
<tbody>
<tr>
<td class="left">-1</td>
<td class="right">red</td>
</tr>
<tr>
<td class="left">0</td>
<td class="right">no color</td>
</tr>
<tr>
<td class="left">1</td>
<td class="right">yellow</td>
</tr>
<tr>
<td class="left">2</td>
<td class="right">green</td>
</tr>
</tbody>
</table>
<h1 id="rfc.section.2.3">
<a href="#rfc.section.2.3">2.3.</a> <a href="#surjective-mapping-of-rating-codes-into-color-codes" id="surjective-mapping-of-rating-codes-into-color-codes">Surjective Mapping of Rating Codes into Color Codes</a>
</h1>
<p id="rfc.section.2.3.p.1">Corresponding User Experience (UX) implementations use a surjective mapping of the Rating Codes into the Color Codes (in traffic light semantics) as follows:</p>
<table cellpadding="3" cellspacing="0" class="tt full center">
<thead><tr>
<th class="left">Rating codes</th>
<th class="left">Color code</th>
<th class="right">Color label</th>
</tr></thead>
<tbody>
<tr>
<td class="left">-3 to -1</td>
<td class="left">-1</td>
<td class="right">red</td>
</tr>
<tr>
<td class="left">0 to 5</td>
<td class="left">0</td>
<td class="right">no color</td>
</tr>
<tr>
<td class="left">6</td>
<td class="left">1</td>
<td class="right">yellow</td>
</tr>
<tr>
<td class="left">7 to 9</td>
<td class="left">2</td>
<td class="right">green</td>
</tr>
</tbody>
</table>
<p id="rfc.section.2.3.p.2">This mapping is used in current pEp implementations to signal the Privacy Status (cf. <a href="#current-software-implementing-pep" class="xref">Section 7.2</a>).</p>
<h1 id="rfc.section.2.4">
<a href="#rfc.section.2.4">2.4.</a> <a href="#semantics-of-color-and-rating-codes" id="semantics-of-color-and-rating-codes">Semantics of Color and Rating Codes</a>
</h1>
<h1 id="rfc.section.2.4.1">
<a href="#rfc.section.2.4.1">2.4.1.</a> <a href="#red" id="red">Red</a>
</h1>
<p id="rfc.section.2.4.1.p.1">The red color MUST only be used in three cases:</p>
<p></p>
<ul>
<li>Rating code -3: A man-in-the-middle (MITM) attack could be detected.</li>
<li>Rating code -2: The message was tempered with.</li>
<li>Rating code -1: The user explicitly states he mistrusts a peer, e.g., because a Handshake <a href="#I-D.marques-pep-handshake" class="xref">[I-D.marques-pep-handshake]</a> mismatched or when the user learns the communication partner was attacked and might have gotten the corresponding secret key leaked.</li>
</ul>
<h1 id="rfc.section.2.4.2">
<a href="#rfc.section.2.4.2">2.4.2.</a> <a href="#no-color" id="no-color">No Color</a>
</h1>
<p id="rfc.section.2.4.2.p.1">No specific (or a gray color) MUST be shown in the following cases:</p>
<p></p>
<ul>
<li>Rating code 0: A message can be rendered, but the encryption status is not clear, i.e., undefined</li>
<li>Rating code 1: A message cannot be decrypted (because of an error not covered by rating code 2 below).</li>
<li>Rating code 2: No key is available to decrypt a message (because it was encrypted with a public key for which no secret key could be found).</li>
<li>Rating code 3: A message is received or sent out unencrypted (because it was received unencrypted or there&#8217;s no public key to encrypt a message to a recipient).</li>
<li>Rating code 4: A message is sent out unencrypted for some of the recipients of a group (because there&#8217;s at least one recipient in the group whose public key is not available to the sender).</li>
<li>Rating code 5: A message is encrypted, but cryptographic parameters (e.g., the cryptographic method employed or key length) are insufficient.</li>
</ul>
<h1 id="rfc.section.2.4.3">
<a href="#rfc.section.2.4.3">2.4.3.</a> <a href="#yellow" id="yellow">Yellow</a>
</h1>
<p></p>
<ul><li>Rating code 6: Whenever a message can be encrypted or decrypted with sufficient cryptographic parameters, it&#8217;s considered reliable. It is mapped into the yellow color code.</li></ul>
<h1 id="rfc.section.2.4.4">
<a href="#rfc.section.2.4.4">2.4.4.</a> <a href="#green" id="green">Green</a>
</h1>
<p></p>
<ul><li>Rating code 7: A message is mapped into the green color code only if a pEp handshake <a href="#I-D.marques-pep-handshake" class="xref">[I-D.marques-pep-handshake]</a> was successfully carried out.</li></ul>
<p id="rfc.section.2.4.4.p.2">By consequence that means, that the pEp propositions don&#8217;t strictly follow the TOFU (cf. <a href="#RFC7435" class="xref">[RFC7435]</a>) approach, in order to avoid signaling trust without peers verifying their channel first.</p>
<p id="rfc.section.2.4.4.p.3">In current pEp implementations (cf. <a href="#implementation-status" class="xref">Section 7</a>) only rating code 7 is achieved.</p>
<p id="rfc.section.2.4.4.p.4">The rating codes 8 and 9 are reserved for future use in pEp implementations which also secure meta-data (rating code 8), by using a peer-to-peer framework like GNUnet <a href="#GNUnet" class="xref">[GNUnet]</a>, and/or allow for fully anonymous communications (rating code 9), where sender and receiver don&#8217;t know each other, but trust between the endpoints could be established nevertheless.</p>
<h1 id="rfc.section.3">
<a href="#rfc.section.3">3.</a> <a href="#per-identity-privacy-rating" id="per-identity-privacy-rating">Per-Identity Privacy Rating</a>
</h1>
<p id="rfc.section.3.p.1">The same Color Codes (red, no color, yellow and green) as for messages (cf. <a href="#color-codes" class="xref">Section 2.2</a>) MUST be applied for identities (peers), so that a user can easily understand, which identities private communication is possible with.</p>
<p id="rfc.section.3.p.2">The green color code MUST be applied to an identity whom the pEp handshake <a href="#I-D.marques-pep-handshake" class="xref">[I-D.marques-pep-handshake]</a> was successfully carried out with.</p>
<p id="rfc.section.3.p.3">The yellow color code MUST be set whenever a public key could be obtained to securely encrypt messages to an identity, although a MITM attack cannot be excluded.</p>
<p id="rfc.section.3.p.4">The no color code MUST be used for the case that no public key is available to engage in private communications with an identity.</p>
<p id="rfc.section.3.p.5">The red color code MUST only be used when an identity is marked as mistrusted.</p>
<p id="rfc.section.3.p.6">[[ It&#8217;s not yet clear if there are proper cases where it makes sense to set an identity automatically to the red color code, as it appears to be difficult to detect attacks (e.g., secret key leakage) at the other endpoint with certainty. ]]</p>
<h1 id="rfc.section.4">
<a href="#rfc.section.4">4.</a> <a href="#security-considerations" id="security-considerations">Security Considerations</a>
</h1>
<p id="rfc.section.4.p.1">[[ TODO ]]</p>
<h1 id="rfc.section.5">
<a href="#rfc.section.5">5.</a> <a href="#privacy-considerations" id="privacy-considerations">Privacy Considerations</a>
</h1>
<p id="rfc.section.5.p.1">[[ TODO ]]</p>
<h1 id="rfc.section.6">
<a href="#rfc.section.6">6.</a> <a href="#iana-considerations" id="iana-considerations">IANA Considerations</a>
</h1>
<p id="rfc.section.6.p.1">This document has no actions for IANA.</p>
<h1 id="rfc.section.7">
<a href="#rfc.section.7">7.</a> <a href="#implementation-status" id="implementation-status">Implementation Status</a>
</h1>
<h1 id="rfc.section.7.1">
<a href="#rfc.section.7.1">7.1.</a> <a href="#introduction-1" id="introduction-1">Introduction</a>
</h1>
<p id="rfc.section.7.1.p.1">This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <a href="#RFC7942" class="xref">[RFC7942]</a>. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist.</p>
<p id="rfc.section.7.1.p.2">According to <a href="#RFC7942" class="xref">[RFC7942]</a>, &#8220;[&#8230;] this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit.&#8221;</p>
<h1 id="rfc.section.7.2">
<a href="#rfc.section.7.2">7.2.</a> <a href="#current-software-implementing-pep" id="current-software-implementing-pep">Current software implementing pEp</a>
</h1>
<p id="rfc.section.7.2.p.1">The following software implementing the pEp protocols (to varying degrees) already exists:</p>
<p></p>
<ul>
<li>pEp for Outlook as add-on for Microsoft Outlook, release <a href="#SRC.pepforoutlook" class="xref">[SRC.pepforoutlook]</a>
</li>
<li>pEp for Android (based on a fork of the K9 MUA), release <a href="#SRC.pepforandroid" class="xref">[SRC.pepforandroid]</a>
</li>
<li>Enigmail/pEp as add-on for Mozilla Thunderbird, release <a href="#SRC.enigmailpep" class="xref">[SRC.enigmailpep]</a>
</li>
<li>pEp for iOS (implemented in a new MUA), beta <a href="#SRC.pepforios" class="xref">[SRC.pepforios]</a>
</li>
</ul>
<p id="rfc.section.7.2.p.3">pEp for Android, iOS and Outlook are provided by pEp Security, a commercial entity specializing in end-user software implementing pEp while Enigmail/pEp is pursued as community project, supported by the pEp Foundation.</p>
<p id="rfc.section.7.2.p.4">All software is available as Free Software and published also in source form.</p>
<h1 id="rfc.section.8">
<a href="#rfc.section.8">8.</a> <a href="#acknowledgements" id="acknowledgements">Acknowledgements</a>
</h1>
<p id="rfc.section.8.p.1">The authors would like to thank the following people who have provided feedback or significant contributions to the development of this document: Leon Schumacher and Volker Birk</p>
<p id="rfc.section.8.p.2">This work was initially created by pEp Foundation, and then reviewed and extended with funding by the Internet Society&#8217;s Beyond the Net Programme on standardizing pEp. <a href="#ISOC.bnet" class="xref">[ISOC.bnet]</a></p>
<h1 id="rfc.references">
<a href="#rfc.references">9.</a> References</h1>
<h1 id="rfc.references.1">
<a href="#rfc.references.1">9.1.</a> Normative References</h1>
<table><tbody>
<tr>
<td class="reference"><b id="I-D.birk-pep">[I-D.birk-pep]</b></td>
<td class="top">
<a>Marques, H.</a> and <a>B. Hoeneisen</a>, "<a href="https://tools.ietf.org/html/draft-birk-pep-03">pretty Easy privacy (pEp): Privacy by Default</a>", Internet-Draft draft-birk-pep-03, March 2019.</td>
</tr>
<tr>
<td class="reference"><b id="RFC2119">[RFC2119]</b></td>
<td class="top">
<a>Bradner, S.</a>, "<a href="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>
</tr>
<tr>
<td class="reference"><b id="RFC4949">[RFC4949]</b></td>
<td class="top">
<a>Shirey, R.</a>, "<a href="https://tools.ietf.org/html/rfc4949">Internet Security Glossary, Version 2</a>", FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007.</td>
</tr>
<tr>
<td class="reference"><b id="RFC7435">[RFC7435]</b></td>
<td class="top">
<a>Dukhovni, V.</a>, "<a href="https://tools.ietf.org/html/rfc7435">Opportunistic Security: Some Protection Most of the Time</a>", RFC 7435, DOI 10.17487/RFC7435, December 2014.</td>
</tr>
</tbody></table>
<h1 id="rfc.references.2">
<a href="#rfc.references.2">9.2.</a> Informative References</h1>
<table><tbody>
<tr>
<td class="reference"><b id="GNUnet">[GNUnet]</b></td>
<td class="top">
<a>Grothoff, C.</a>, "<a href="https://grothoff.org/christian/habil.pdf">The GNUnet System</a>", October 2017.</td>
</tr>
<tr>
<td class="reference"><b id="I-D.birk-pep-trustwords">[I-D.birk-pep-trustwords]</b></td>
<td class="top">
<a>Birk, V.</a>, <a>Marques, H.</a> and <a>B. Hoeneisen</a>, "<a href="https://tools.ietf.org/html/draft-birk-pep-trustwords-03">IANA Registration of Trustword Lists: Guide, Template and IANA Considerations</a>", Internet-Draft draft-birk-pep-trustwords-03, March 2019.</td>
</tr>
<tr>
<td class="reference"><b id="I-D.marques-pep-handshake">[I-D.marques-pep-handshake]</b></td>
<td class="top">
<a>Marques, H.</a> and <a>B. Hoeneisen</a>, "<a href="https://tools.ietf.org/html/draft-marques-pep-handshake-02">pretty Easy privacy (pEp): Contact and Channel Authentication through Handshake</a>", Internet-Draft draft-marques-pep-handshake-02, March 2019.</td>
</tr>
<tr>
<td class="reference"><b id="ISOC.bnet">[ISOC.bnet]</b></td>
<td class="top">
<a>Simao, I.</a>, "<a href="https://www.internetsociety.org/blog/2017/06/12-innovative-projects-selected-for-beyond-the-net-funding/">Beyond the Net. 12 Innovative Projects Selected for Beyond the Net Funding. Implementing Privacy via Mass Encryption: Standardizing pretty Easy privacy&#8217;s protocols</a>", June 2017.</td>
</tr>
<tr>
<td class="reference"><b id="RFC7942">[RFC7942]</b></td>
<td class="top">
<a>Sheffer, Y.</a> and <a>A. Farrel</a>, "<a href="https://tools.ietf.org/html/rfc7942">Improving Awareness of Running Code: The Implementation Status Section</a>", BCP 205, RFC 7942, DOI 10.17487/RFC7942, July 2016.</td>
</tr>
<tr>
<td class="reference"><b id="SRC.enigmailpep">[SRC.enigmailpep]</b></td>
<td class="top">"<a href="https://enigmail.net/index.php/en/download/source-code">Source code for Enigmail/pEp</a>", July 2019.</td>
</tr>
<tr>
<td class="reference"><b id="SRC.pepforandroid">[SRC.pepforandroid]</b></td>
<td class="top">"<a href="https://pep-security.lu/gitlab/android/pep">Source code for pEp for Android</a>", July 2019.</td>
</tr>
<tr>
<td class="reference"><b id="SRC.pepforios">[SRC.pepforios]</b></td>
<td class="top">"<a href="https://pep-security.ch/dev/repos/pEp_for_iOS/">Source code for pEp for iOS</a>", July 2019.</td>
</tr>
<tr>
<td class="reference"><b id="SRC.pepforoutlook">[SRC.pepforoutlook]</b></td>
<td class="top">"<a href="https://pep-security.lu/dev/repos/pEp_for_Outlook/">Source code for pEp for Outlook</a>", July 2019.</td>
</tr>
</tbody></table>
<h1 id="rfc.appendix.A">
<a href="#rfc.appendix.A">Appendix A.</a> <a href="#excerpts-from-the-pep-reference-implementation" id="excerpts-from-the-pep-reference-implementation">Excerpts from the pEp Reference Implementation</a>
</h1>
<p id="rfc.section.A.p.1">This section provides excerpts of the running code from the pEp reference implementation pEp engine (C99 programming language).</p>
<h1 id="rfc.appendix.A.1">
<a href="#rfc.appendix.A.1">A.1.</a> <a href="#pep-rating" id="pep-rating">pEp rating</a>
</h1>
<p id="rfc.section.A.1.p.1">From the reference implementation by the pEp foundation, src/message_api.h:</p>
<pre>
typedef enum _PEP_rating {
PEP_rating_undefined = 0,
PEP_rating_cannot_decrypt,
PEP_rating_have_no_key,
PEP_rating_unencrypted,
PEP_rating_unencrypted_for_some,
PEP_rating_unreliable,
PEP_rating_reliable,
PEP_rating_trusted,
PEP_rating_trusted_and_anonymized,
PEP_rating_fully_anonymous,
PEP_rating_mistrust = -1,
PEP_rating_b0rken = -2,
PEP_rating_under_attack = -3
} PEP_rating;
</pre>
<h1 id="rfc.appendix.B">
<a href="#rfc.appendix.B">Appendix B.</a> <a href="#document-changelog" id="document-changelog">Document Changelog</a>
</h1>
<p id="rfc.section.B.p.1">[[ RFC Editor: This section is to be removed before publication ]]</p>
<p></p>
<ul>
<li>draft-marques-pep-rating-02: <ul>
<li>Add Privacy and IANA Considerations sections</li>
<li>Updated Terms</li>
</ul>
</li>
<li>draft-marques-pep-rating-01: <ul>
<li>Update references</li>
<li>Minor edits</li>
</ul>
</li>
<li>draft-marques-pep-rating-00: <ul><li>Initial version</li></ul>
</li>
</ul>
<h1 id="rfc.appendix.C">
<a href="#rfc.appendix.C">Appendix C.</a> <a href="#open-issues" id="open-issues">Open Issues</a>
</h1>
<p id="rfc.section.C.p.1">[[ RFC Editor: This section should be empty and is to be removed before publication ]]</p>
<p></p>
<ul>
<li>Better explain usage of Color Codes in Per-Identity Privacy Rating</li>
<li>Decide whether rating code scalars 6 and 7-9 should be raised to leave space for future extensions</li>
<li>Add Security Considerations</li>
<li>Add more source code excerpts to Appendix</li>
<li>Add rating codes for secure cryptographic methods and parameters and reference them</li>
</ul>
<h1 id="rfc.authors"><a href="#rfc.authors">Authors' Addresses</a></h1>
<div class="avoidbreak">
<address class="vcard">
<span class="vcardline">
<span class="fn">Hernani Marques</span>
<span class="n hidden">
<span class="family-name">Marques</span>
</span>
</span>
<span class="org vcardline">pEp Foundation</span>
<span class="adr">
<span class="vcardline">Oberer Graben 4</span>
<span class="vcardline">
<span class="locality">CH-8400 Winterthur</span>,
<span class="region"></span>
<span class="code"></span>
</span>
<span class="country-name vcardline">Switzerland</span>
</span>
<span class="vcardline">EMail: <a href="mailto:hernani.marques@pep.foundation">hernani.marques@pep.foundation</a></span>
<span class="vcardline">URI: <a href="https://pep.foundation/">https://pep.foundation/</a></span>
</address>
</div><div class="avoidbreak">
<address class="vcard">
<span class="vcardline">
<span class="fn">Bernie Hoeneisen</span>
<span class="n hidden">
<span class="family-name">Hoeneisen</span>
</span>
</span>
<span class="org vcardline">Ucom Standards Track Solutions GmbH</span>
<span class="adr">
<span class="vcardline">
<span class="locality">CH-8046 Zuerich</span>,
<span class="region"></span>
<span class="code"></span>
</span>
<span class="country-name vcardline">Switzerland</span>
</span>
<span class="vcardline">Phone: +41 44 500 52 40</span>
<span class="vcardline">EMail: <a href="mailto:bernie@ietf.hoeneisen.ch%20(bernhard.hoeneisen%20AT%20ucom.ch)">bernie@ietf.hoeneisen.ch (bernhard.hoeneisen AT ucom.ch)</a></span>
<span class="vcardline">URI: <a href="https://ucom.ch/">https://ucom.ch/</a></span>
</address>
</div>
</body>
</html>