I would definitely get mail-crypt working on your system before worrying about encrypting existing emails. Iirc dovecot should support both types of files (encrypted, and non-encrypted) concurrently. So BEFORE you try anything, make sure via logs, etc that mail is being written to the fs as an encrypted file and that dovecot is able to decrypt it (i.e. you are able to view that particular mail file from your email client).

My specific use case way back was to encrypt a maildir system using this plugin a year or so ago. I believe there are 2 ways to set mail-crypt up. Using global keys or folder-specific keys. What you will learn going through this process using folder-specific keys is that any time mail is moved (from an IMAP directory to another) the mail becomes effectively re-encrypted using the destination's folder keys. I imagine how this works under global keys is that the mail is encrypted once when it is moved, then never again unless keys change. So all you would need to do to encrypt existing mail using either method would be to create a temp imap folder, move mail from each IMAP folder one at a time into this temp folder, then back to the original IMAP folder.

I had a few questions at the time in implementing this, so I've linked here the dovecot mailing list thread so it might provide some context if needed:

https://dovecot.org/pipermail/dovecot/2021-July/122469.html


On 2/21/23 16:29, Jeremy wrote:
On Tuesday, February 21st, 2023 at 09:54, Aki Tuomi 
<aki.tu...@open-xchange.com> wrote:


On 16/02/2023 07:18 EET mailinglist-subscriptions 
mailinglist-subscripti...@protonmail.com wrote:

Hi,

I am using dovecot 2.3.16, along with postfix and a PostgreSQL database for 
managing virtual accounts.

I'd like to start using the mail-crypt plugin. However, I'm having a bit some 
difficulty understanding the documentation at

https://doc.dovecot.org/configuration_manual/mail_crypt_plugin

to reach my goal. I plan to ask questions about those issues by starting new 
threads in this mailing list. But before I even come to that, I'd like to 
investigate the following:

The above documentation only addresses a clean install and doesn't seem to 
mention encrypting already existent unencrypted mails, like my server has. Is 
it possible to encrypt those before I start using the mail-crypt plugin, such 
that it will be able to decrypt those messages as well?

If it is, I am assuming that how I would go about achieving that will be very 
dependent on the ultimate configuration I have in mind (pub/priv keys, etc.). 
So I don't expect a full-fledged guide. However, if you could perhaps give a 
general overview of what would be needed to achieve this, I would very much 
appreciate that.

Thank you.

It will be easiest to do migration to new server, then the data will get 
encrypted while migrating. It is possible to write a script to do this, but 
will be much more hassle than migration.

You might even be able to do it for one user at a time, by doing migration from 
maildir to maildir and then moving the new maildir over the old one.

Aki
Thanks for the suggestion. However, migrating sounds like quite the hassle as 
well.

Now, I have next to no knowledge about the synchronization workings of IMAP, so 
perhaps this is totally infeasible, but could the following work?

- Preface
I am the only user of the mail server, with one virtual catch-all account for 
each domain I own. I access these accounts with Thunderbird.

- Solution
I make a backup of all mail in my Thunderbird accounts. Then I either delete 
all mails from within Thunderbird, or on the server. Then I configure the 
mail-crypt plugin. And then I import all backup mails and folders into my 
Thunderbird accounts again?

Could that work? Or would that mess up the synchronization history (message IDs 
and what not)? And most importantly, if it actually could work, would the 
messages be properly encrypted then?

Reply via email to