unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* Protected headers in notmuch
@ 2018-05-11  5:55 Daniel Kahn Gillmor
  2018-05-11  5:55 ` [PATCH 01/20] test: new test framework to compare json parts Daniel Kahn Gillmor
                   ` (21 more replies)
  0 siblings, 22 replies; 49+ messages in thread
From: Daniel Kahn Gillmor @ 2018-05-11  5:55 UTC (permalink / raw)
  To: Notmuch Mail

Traditionally, encrypted and signed e-mail covers only the body of the
message.  New standards are emerging that are capable of protecting
the headers as well.  In particular, Enigmail and an upcoming version
of K-9 mail both use the "Memory Hole" approach to encrypt the
Subject: header when sending encrypted mail.  It is awkward to receive
encrypted messages from those clients with notmuch, because all
notmuch sees is "Subject: Encrypted Message"

This series solves that problem specifically: it enables viewing (and
indexing and searching, if desired) of the cleartext of the encrypted
Subject:.  It also lays sensible groundwork for handling other
protected headers in the future.

For a discussion of protected headers and the various challenges and
opportunities they present, see my writeup here:

    https://dkg.fifthhorseman.net/blog/e-mail-cryptography.html

What this series does *not* do (yet) is emit any protected headers
from notmuch itself.  I think the series can be applied without that,
because just consuming the protected headers and being able to work
with them is a win on its own terms.  The series is also careful not
to accidentally leak cleartext headers (e.g. in reply), so it should
be safe to adopt even if we don't immediately become capable of
emitting protected headers.

If we can land this series, i think the next steps along this
direction include:

 * emitting a protected Subject: line when sending mail via
   notmuch-emacs

 * restructuring messages that had protected headers so that any weird
   internal structure isn't clumsily visible (either the
   "force-display" part of a Memory Hole-structured message, or the
   wrapped message/rfc822 part encouraged by Melnikov's draft could be
   "skipped")

 * dealing with other protected headers

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2018-07-25  6:01 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-11  5:55 Protected headers in notmuch Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 01/20] test: new test framework to compare json parts Daniel Kahn Gillmor
2018-06-06  1:06   ` David Bremner
2018-06-06 14:49     ` Daniel Kahn Gillmor
2018-06-06 16:21       ` David Bremner
2018-06-06 20:18         ` Daniel Kahn Gillmor
2018-06-07  8:39       ` Tomi Ollila
2018-05-11  5:55 ` [PATCH 02/20] crypto: Avoid pretending to verify signatures on unsigned encrypted mail Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 03/20] cli/show: pass the siglist directly to the sigstatus sprinter Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 04/20] util/crypto: _notmuch_message_crypto: tracks message-wide crypto state Daniel Kahn Gillmor
2018-06-15 10:16   ` David Bremner
2018-06-28 21:15     ` Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 05/20] cli: expose message-wide crypto status from mime-node Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 06/20] mime-node: track whole-message crypto state while walking the tree Daniel Kahn Gillmor
2018-06-15 10:52   ` David Bremner
2018-05-11  5:55 ` [PATCH 07/20] cli/show: emit new whole-message crypto status output Daniel Kahn Gillmor
2018-06-15 23:47   ` David Bremner
2018-06-29 15:41     ` Daniel Kahn Gillmor
2018-06-29 15:46       ` David Bremner
2018-05-11  5:55 ` [PATCH 08/20] cli/show: emit headers after emitting body Daniel Kahn Gillmor
2018-06-16  0:30   ` David Bremner
2018-05-11  5:55 ` [PATCH 09/20] util/crypto: add information about the payload part Daniel Kahn Gillmor
2018-06-25  1:15   ` David Bremner
2018-06-30  2:05     ` Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 10/20] cli/show: add tests for viewing protected headers Daniel Kahn Gillmor
2018-06-25  1:31   ` David Bremner
2018-06-30  2:17     ` Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 11/20] cli/show: emit payload subject instead of outside subject Daniel Kahn Gillmor
2018-06-29  0:40   ` David Bremner
2018-07-13 20:29     ` Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 12/20] cli/show: add information about which headers were protected Daniel Kahn Gillmor
2018-06-29  0:58   ` David Bremner
2018-05-11  5:55 ` [PATCH 13/20] test: add test for missing external subject Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 14/20] test: show cryptographic envelope information for signed mails Daniel Kahn Gillmor
2018-06-29 11:38   ` David Bremner
2018-05-11  5:55 ` [PATCH 15/20] cli/reply: ensure encrypted Subject: line does not leak in the clear Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 16/20] cli: introduce flags for format_headers_sprinter Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 17/20] cli/reply: add --protected-subject boolean flag Daniel Kahn Gillmor
2018-06-29 11:51   ` David Bremner
2018-05-11  5:55 ` [PATCH 18/20] indexing: record protected subject when indexing cleartext Daniel Kahn Gillmor
2018-06-02 17:59   ` Jameson Graef Rollins
2018-05-11  5:55 ` [PATCH 19/20] test: protected headers should work when both encrypted and signed Daniel Kahn Gillmor
2018-05-11  5:55 ` [PATCH 20/20] test: after reindexing, only legitimate protected subjects are searchable Daniel Kahn Gillmor
2018-06-02 18:25 ` Protected headers in notmuch Jameson Graef Rollins
2018-06-02 19:20   ` David Bremner
2018-06-03 13:44     ` Daniel Kahn Gillmor
2018-06-06  1:10     ` David Bremner
2018-06-03 18:14   ` Jameson Graef Rollins
2018-07-25  6:01 ` David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).