Re: [lamps] Paul Wouters' Discuss on draft-ietf-lamps-e2e-mail-guidance-15: (with DISCUSS and COMMENT)

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Wed, 13 March 2024 20:48 UTC

Return-Path: <dkg@fifthhorseman.net>
X-Original-To: spasm@ietfa.amsl.com
Delivered-To: spasm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EB612C14F619; Wed, 13 Mar 2024 13:48:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.313
X-Spam-Level:
X-Spam-Status: No, score=-1.313 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=fifthhorseman.net header.b="ACg0m7lC"; dkim=pass (2048-bit key) header.d=fifthhorseman.net header.b="O9NepbpH"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id POf6bvXKpDIm; Wed, 13 Mar 2024 13:48:16 -0700 (PDT)
Received: from che.mayfirst.org (unknown [162.247.75.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 04E41C14F60E; Wed, 13 Mar 2024 13:48:12 -0700 (PDT)
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019; t=1710362891; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=ReOSdgjrSUf5Jjg1OIrQRG29oxe4EftlBnkUaO1XJmE=; b=ACg0m7lCfj5FGVXJLvNcc6ZFnAZbZs6fB2QF91xQZSI4CzX4wO6rHKa3ZQ5xxey0+FnrR KLTRuFAnhfNUWCxCw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019rsa; t=1710362891; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=ReOSdgjrSUf5Jjg1OIrQRG29oxe4EftlBnkUaO1XJmE=; b=O9NepbpHqUVryMeRCt3z5uxQkanyEGMhGonvks2gAvEQshPplausqPgrVxVT7QWZXstkt BF2aM724aGv5wAHBwn7qR3g4UJ6XMdoPvohSInUXMMpmS83VtUrkK5iw78danIGhsUB47sf Q2+E+sMhvoe4OVLvUMCAjnLj2mg6Wp1/rcIyUO8K5q1oCshGlX64AdDjV6Va6DHa4UAAXyg X4p0mItmbBjwUZuZiSdmJrKVtAd99FlO66kHybwjxhux580J5+VoD+LUMmw6c/0i1nJkvhC +vPUc29VPeAVKGSI4HINDCQ3e4Xc7Wb9Vv6LBw9QdnIrPnIJUf7B/Kumih4A==
Received: from fifthhorseman.net (lair.fifthhorseman.net [108.58.6.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id C36C6F9D8; Wed, 13 Mar 2024 16:48:11 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 5C0102054D; Wed, 13 Mar 2024 15:27:54 -0400 (EDT)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Paul Wouters <paul.wouters@aiven.io>, The IESG <iesg@ietf.org>
Cc: draft-ietf-lamps-e2e-mail-guidance@ietf.org, lamps-chairs@ietf.org, spasm@ietf.org, housley@vigilsec.com, housley@vigilsec.com
In-Reply-To: <170969517060.45916.11010011783885804824@ietfa.amsl.com>
References: <170969517060.45916.11010011783885804824@ietfa.amsl.com>
Autocrypt: addr=Daniel Kahn Gillmor; prefer-encrypt=mutual; keydata= xjMEZXEJyxYJKwYBBAHaRw8BAQdA5BpbW0bpl5qCng/RiqwhQINrplDMSS5JsO/YO+5Zi7HCi QQfFgoAMQWCZadnIAUJBdtHCwMLCQcDFQoIApsBAh4BFiEE1HcEDHDCFWpcKYVJu36RAUlea/ cACgkQu36RAUlea/edDQD+M2QjnoEyu/TjI+gRXBpXQ5jCsnnp9FdYhaSSUW/vZ8kBAJByWlj A9aMfVaVrmvgcYw7jzJz+gmZspBRB++5LZ20NzRc8ZGtnQGZpZnRoaG9yc2VtYW4ubmV0PsLA EQQTFgoAeQMLCQdHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnEu/CS CeyWwC6j4ihJr2u/z6delsF1pvYW3ufgf1L538DFQoIApsBAh4BFiEE1HcEDHDCFWpcKYVJu3 6RAUlea/cFAmWnX5AFCQXZ8EUACgkQu36RAUlea/cjVwD+ONjdHM74rAa6EEiiqaPjlptiaZx CVqFYXnib6EbZARkBAPnnR8pW8vCBnDXHKu65jNqwF3aH761NaOqqMFfppg8GzjMEZXEJyxYJ KwYBBAHaRw8BAQdAjX25Fq2Q9IUFeHy6yByIQPBnFOedFliuEiCIUzJsENDCwMUEGBYKAS1HF AAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnwqKWsw56uoWVLIFcs7ZecJ gwpsSNevWCzbviKQ8yRLUCmwK+oAQZFgoAbwWCZXEJywkQdy0WHjXNS4FHFAAAAAAAHgAgc2F sdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnEIJSOxuw2y/UJmg5M3BLpN0JYjODZpXiEVFu 1byARzMWIQR0vATEPYYIS+hnLAZ3LRYeNc1LgQAAsH8BAKg1C5LK/D7pSkXCD+jfTSP+CqM58 iHLjh4vKhpOKsTJAQCHldtEjxJ1ksPTFgG9HihHH7qc6/wvvLw77ETMpwlrAxYhBNR3BAxwwh VqXCmFSbt+kQFJXmv3BQJlp1+rBQkCF4lgAAoJELt+kQFJXmv3ydsA/2roQZ2Jm/7iUrg/2C5 ClWA/xbvPC31LyMkGGH2/rq8tAP9BgqLuCPnNTVPqeX9+9qqMmaFq7wmvjq5I+yycAw9CDc44 BGVxCcsSCisGAQQBl1UBBQEBB0BZMsRrRaaeFSYMF1ZdfRmVgBriDUIr99eDQ085BK14DgMBC AfCwAYEGBYKAG5HFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnsazAWX tEHUPmSTmcRZAIsAsNiO8k0hdjsfRlRVipgJgCmwwWIQTUdwQMcMIValwphUm7fpEBSV5r9wU CZadfqwUJAheJYAAKCRC7fpEBSV5r90AjAPwLgY1iKiFJEj32SVD5f721929l79VxQB5FlQss x1n5kQEA6Uct2tPvbB6T7p5KG3Gl+tbi7oJAuxFmpkpW5/N2Owg=
Date: Wed, 13 Mar 2024 15:27:52 -0400
Message-ID: <87a5n29bk7.fsf@fifthhorseman.net>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha512"; protocol="application/pgp-signature"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/BXLG7-OMoythjocOn58fq_prafc>
Subject: Re: [lamps] Paul Wouters' Discuss on draft-ietf-lamps-e2e-mail-guidance-15: (with DISCUSS and COMMENT)
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: This is the mail list for the LAMPS Working Group <spasm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spasm>, <mailto:spasm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm/>
List-Post: <mailto:spasm@ietf.org>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spasm>, <mailto:spasm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Mar 2024 20:48:21 -0000

Hi Paul--

Thanks for this detailed review of
draft-ietf-lamps-e2e-mail-guidance-15.  Comments and feedback inline
below.  I've also proposed a handful of edits offering
improvements/clarifications/future work to the draft in git at
https://gitlab.com/dkg/e2e-mail-guidance/

Paul Wouters wrote:
> The document suggests that encrypted but unsigned messages should be
> considered a bug and prevented. However, at times I purposefully send
> encrypted but unsigned mesages as a way to not give someone mathemathical
> proof that I said something. Sort of a "gossip message" or within
> proprietry clients this could be a "auto-destructing message". By
> blocking this usage, I would in the future have to opt for sending
> a non-encrypted message if I am unwilling to sign a message.

I think what you want here are also known as "deniable" messages.  On
more sophisticated platforms (e.g., OTR), those messages are still
authenticatable by the recipient (because they are authenticated with an
established shared secret between the pair of communicants), but they
are repudiable by both parties involved because either party can claim
the other party generated the message.

The fact that the messages are authenticatable is critical for many of
the systems that use e2ee mail, including things like verification of
protected headers.

However, there are no standardized mechanisms for producing
authenticatable-yet-repudiable e-mail messages in 2024 that i'm aware
of.  Encrypted-only messages do not meet this requirement, because they
are not authenticatable by the recipient.  Rather, they are trivially
forgeable by someone outside the conversation.

Even if we did have a standardized mechanism for providing
authenticatable-but-repudiable e-mail messages, it's not clear what the
actual use case for this is.  If the concern is repudiation in front of
a third-party arbiter that is bound by law, most of those arbiters are
just fine accepting "cryptographically deniable" evidence as evidence
(e-mail messages with no e2e cryptographic protections have been
introduced in court cases in every jurisdiction i'm aware of).  If your
concern is a third-party arbiter who is not bound by law, then i'm not
sure why they would care about cryptographic claims of repudiation.

At any rate, this document tries to offer guidance on strong, usable
end-to-end cryptographic protections of e-mail messages.  Offering the
user the opportunity to generate non-authenticatable messages requires
(a) presenting another choice that most users are not prepared to make
or understand, and (b) makes it harder for the recipient MUA to reason
about messages.  That's why the document strongly discourages this
choice.

> Section 6:
>
>         the certificate used to verify the signature does not
>         correspond to the author of the message. (for X.509, there is no
>         subjectAltName of type rfc822Name whose value matches an e-mail
>         address found in From: or Sender:)
>
> So how about:    From: "Daniel Kahn Gillmor <paul@nohats.ca>"   ?

The document currently treats the e-mail address as the sender identity,
and doesn't grapple with the human-readable name at all.

I've opened https://gitlab.com/dkg/e2e-mail-guidance/-/issues/14

> Section 9.1 talks about storing Sent Mail encrypted, but does not
> talk about how one would "search" their email content. Perhaps it
> can also mention keeping a Sent Mail folder on the user's own device,
> such as a laptop with whole disk encryption. But I feel not mentioning
> this issue at all is missing an important point of why people want
> decrypted Sent Mail or why they don't want encrypted Sent Mail.

You're right that this is a serious issue, but the document does touch
on these concerns (albeit without trying to mandate a particular path
forward), in the "future work" appendix:

https://www.ietf.org/archive/id/draft-ietf-lamps-e2e-mail-guidance-15.html#name-indexing-and-search-of-encr

If you want to propose more text to add to that section, I'm happy to
review.

> Section 9.4 asks:
>
>         When a message is encrypted, if there is a mechanism to include
>         the certificates of the recipients, whose certificates should
>         be included?
>
> I think that answer is always "not the BCC'ed recipients", so I wonder
> why this is a question and not a requirement. Also the last bullet in
> 9.4.1 states that too. Maybe restate it as a description to solve in
> 9.4.1 by saying it more like "When a message is encrypted and recipient
> certificates are included, the Bcc:ed recipients need to be carefully
> considered".

Section 9.4 starts with a list of questions that need answering.
Section 9.4.1 provides one straightforward and internally coherent set
of answers for all of those questions, and 9.4.1.1 provides a rationale
for that approach.

There could be other approaches which provide an internally coherent and
satisfying response to these open questions, but this document doesn't
try to weigh in on them.

> Section 9.4.1:
>
>         * No cryptographic payload contains any Bcc header field.
>
> Since headers are not encrypted, isn't this always the case?

Headers are included in the cryptographic payload, because section 9.3
mandates the use of draft-ietf-lamps-header-protection.

>         * The main copy of the message is signed and encrypted to all
>         named recipients and to the sender. A copy of this message is
>         also stored in the sender's Sent folder.
>
> Maybe this should more clearly state that it includes the BcC: header?

What includes the Bcc header?  As i read it, the main copy described
here does *not* include the `Bcc` header field, as the Bcc'ed parties
are neither named recipients nor the sender.

>         * To the extent that spare certificates are included in
>         the message, each generated copy of the message should
>         include certificates for the sender and for each named
>         recipient. Certificates for Bcc'ed recipients are not included
>         in any message.
>
> So here is another possible leak. Earlier text said certificates could
> be omited if one knew for sure the parties already knew each other's
> certificate. So if the sender and recipient know each other's certificate,
> but the sender doesn't know if the Bcc:ed recipient knows the (openly)
> recipients certificate, it must not add the certificate or else the Bcc:
> to "someone" becomes exposed to the recipient. I think the bullet point
> is better reframed as "Any Bcc:ed recipient MUST NOT be taken into
> consideration when determining which certificates to include along the
> message.".

Good catch, thanks.  I've opened https://gitlab.com/dkg/e2e-mail-guidance/-/issues/15

> Section 9.6 it seems option 1 and 2 are really not worth considering
> or mentioning. It also seems a 5th option is missing - compose two
> seperate emails with only the seperated recipients in each of the emails.

I think option 2 is definitely worth considering.  In the situation
where a message must be encrypted, and one of the recipients' keys have
been revoked, for example, it may be critical to exclude that recipient.

I'm unconvinced by your proposed 5th option, which I think opens a large
can of worms that i don't know how to close.  Would the two messages
have different Message-IDs or would they share a message ID?  If any
recipient replies-all, would they know that they are replying only to a
subset of the conversation?  Would the sender be the only one with
full visibility into the range of participants?  Is there any precedent
for an MUA that facilitates this sort of approach?

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Section 2:
>
>         so interface elements that get in the way of communication should
>         be avoided where possible.
>
> That "in the way" carries a lot of weight :P

changed to "interferes with", but… yeah, that is definitely a
challenging metric either way.

>         on every alternate messaging service
>
> Maybe remove "alternate"? or so "on all of the many" ?

I think we can change that to "on the various non-e-mail messaging services".

>
>         For comprehensibility, a conformant MUA SHOULD NOT create multiple
>         copies of a given message that differ in the types of end-to-end
>         cryptographic protections afforded
>
> Can it be clarified whether this is meant "to the same email user" ?
> A message send to multiple people, of whom only a subset support
> encryption, should still send "multiple copies of a given message
> that differ in the types of end-to-end cryptographic protections

The text does not mean "to the same user" -- it deliberately means (and
i think says clearly) "per message" in order to provide a coherent view
to all participants of what kinds of cryptographic properties to
associate with a given message.

Do you want to propose text that would make that even clearer?

The user's typical mental model is that there is a single e-mail message
that is potentially available to multiple parties.  the question "did
Juliana get this e-mail?" is a reasonable, understandable, and
answerable question for normal users; yet it relies on this unstated
assumption.  If we want users to understand the protections they are
getting (which i think is critical if you really want robust end-to-end
cryptographic protections), we should be discouraging behavior in the
underlying system that breaks the users' assumptions about what is
happening.

>         For example, the sender cannot indicate via SMTP whether or not a
>         given message should be encrypted (some messages, like those sent
>         to a publicly archived mailing list, are pointless to encrypt)
>
> Clearly, the mailing list would not have a valid certificate to use to
> encrypt, so how could it ever encrypt? Also a mailinglist could have
> given all members the list private key so members can decrypt all messages
> sent encrypted to the list. This might not be super secure, but a reasonable
> approach for "somewhat secret" list traffic, eg a vendor security vulnerability
> mailing list.

There are mailing lists which do have valid certificates (though they
typically are not publicly archived).  The document doesn't get into
details about mailing lists with cryptographic protections, but we could
add something to the Future Work appendix if folks are interested.  I've
opened https://gitlab.com/dkg/e2e-mail-guidance/-/issues/16 to track that.

> NITS:
>
> Petpeeve: the use of the word "novel".

I'm fine with changing that word to avoid a pet peeve :)  I hope you'll
avoid "utilize" in any future documents on my behalf in exchange!

> non-comment:
>
> It seems the authors do not like my openpgpkey-milter solution :)

Your milter is not the only software i've seen that takes this tempting
shortcut!  ☺ Do you think that any of these implementations can
effectively avoid the pitfalls described in that section?

         --dkg