Just to put my two cents in...

On 2026-02-24 04:00, Stephen J. Turnbull wrote:
Yassin ElBedwihy via Mailman-Developers writes:

  > I'm curious: What's the plan for implementing forward secrecy?

I have none.  The mailing list needs to know the private key in order
to reencrypt the session key for the subscribers.  It needs to
distribute the public key to senders somehow.  If that is done on a
per-post basis, the distribution mechanism has to be implemented *in
Mailman* with some kind of authentication for senders.  Then that
needs to be integrated with the senders' mail clients, somehow.  There
would need to be at minimum a proof of concept for some MUA.  Key
distribution is a bigger project than the mailing list changes, I
suspect.

The closest concept that has done this in the past is the use of GPG encryption, both to *send* to the list and to *receive from* the list.  Whereas, a list would, upon "secure list" being selected, public archives are disabled, and the system will:

(1) Generate a GPG key for the list itself

(2) Make that GPG key available for list subscribers on the list's info page

(3) Process list messages on whether the message was received as encrypted or not.

  (i) If the message was sent Encrypted, then only resend to individual list members who have specified a GPG key on their profile/account (and admins can set this if they have the user's key). People without keys known to the system will simply never receive the message.

  (ii) If the message was sent Plain Text, then resend to all without encryption.

  (iii) Lists can have an option for "enforce encryption" which would Discard all Plain Text messages.

The closest thing I am aware of that used to do this was a tool called Trident, which was designed to work as a secure enclave tool (https://github.com/tridentli/trident) that had this built in as part of its list functionality (however this was  "home grown" project at the time for the Trident project).  It rolled most of the encryption behind the scenes privately with Perl scripts to handle the encryption control bits, so it was NOT the most elegant system in the world.

It did, however, fundamentally use gpg under the hood to handle message encrypt/decrypt. It also made a keyring of all members' keys available on its portal, though obviously that's a little harder to handle for Mailman.

And what are you going to do about all those clear copies sitting in
recipient systems?  If I were an attacker, I would assume that the
host of a "secret list" would be well-defended, but that's unlikely to
be true of all recipients.

  > I'd also love if the mentors of the project would guide me on what
  > to do next.

The first thing to do is to read the Google Contributor's Guide, then
ours.  That lays out the basic process for applying, which includes
successfully contributing a merge request.  (That request can be
trivial (fix a typo in a comment), the point is to be familiar with
our contribution process.)

Then get signed up for the mailing lists ([email protected]
[email protected]) and the #mailman channel on IRC where
historically realtime conversations have taken place.

One that's done, you can think about what your goals for the project
are.  Encrypted lists are requested or suggested a lot, that's why we
have it listed as a task.  However, none of the crypto people I follow
think they can be useful as a serious security tool, because the email
system is very complex and open at almost every point, while mailing
lists introduce further attack surface.

I would suggest starting with the most basic project, assuming away
the man-in-the-middle nature of Mailman itself and the problems of
forward secrecy, and just get the key distribution and reencryption
features implemented.  You probably also want to deactivate all
features that allow users to subscribe themselves for encrypted lists
as well as the ability to change the status of a list from encrypted
to not so.  Documentation of usage and limitations is going to be very
important.  Do this throughout and make notes to yourself of usage
issues to remediate (have you used GPG recently?) and limitations
you'd like to remove if you have time.

I agree with this as well, start on focusing on the issue of key distribution and reencryption features implemented.

  > What I should read up on, etc. This project looks fun!

There seems to be a lot of work going on in the cryptography/privacy
community.  I found this blog rather interesting, although it's only
peripherally connected to encrypted email (which it deprecates hard).

https://www.soatok.blog/2024/11/15/what-to-use-instead-of-pgp/

I'm actually in favor of suggesting that "encrypted email via mailing lists" be a non-starter feature. On the basis that email is in itself inherently insecure. I saw the 'encrypted lists' request and task a while ago, and though I've implemented ways to do encrypted messaging in Python with a combination of openssl, pgp, etc. depending on the circumstances, the industry has typically considered email "inherently insecure", unfortunately.

Most of the "secure mail" systems I'm also aware of use intermediate tooling to share such 'secure emails' - either central portals shielded by TLS and modern ciphers and all communication must be done via that portal tooling, or through emails that are in fact stored in encrypted PDF files and then to reply encrypted you have to use a TLS protected "reply" button / portal that uses unique access links to handle replies and then sends *those* replies to recipients via encrypted PDF files as well.

However, the general idea of S/MIME or S/PGP-Inline has been more or less frowned upon in quite a few environments because of the way email provider systems are going. Microsoft Outlook, for example, has a timeline to *deprecate* the traditional Outlook component and move to "new Outlook" which is not extendable with PGP encryption, etc. and has only very limited S/MIME support (using more of a 'webapp' than an actual full email client). Thunderbird still supports both, but it's easier for Open Source world to do that (and Thunderbird rolls their own equivalent PGP compatibility to make it work on all systems).

The various 'options' stated by that blog post also don't all apply to email, because some of them are simply "use other tools" or not well implemented / globally available on all systems.

(Just keep this in mind if you pursue "encrypted lists" - the ITSec industry understands how encrypted messages is a Good Thing, but that there's no clear "front-runner" for handling it all out of all the options available or supported by RFCs).


Thomas

_______________________________________________
Mailman-Developers mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9

Reply via email to