Mail does not support post-quantum key exchanges

The Nethserver Mail module’s SMTP and IMAP services do not support post-quantum key echanges (to protect against Harvest Now, Decrypt Later attacks). (The admin HTTPS interface supports it.)

This is particularly problematic since authentication through SMTP and IMAP are usually done in plaintext, and are only protected by TLS. Therefore, recording authenticated traffic to mail servers is a particular good source for harvesting sensitive credentials (if you can crack the encryption, which might be possible once good enough quantum computers become available).

I guess the main reason for this is chore(deps): update alpine docker tag to v3.22.2 by renovate[bot] · Pull Request #202 · NethServer/ns8-mail · GitHub , which prevents updating the Alpine image used by Mail (the currently used Alpine image will be EOL in November). Maybe it would be possible to use a newer Alpine image, and manually compile the latest Dovecot 2.3 for it as a workaround? (Upgrading to Dovecot 2.4 would be even better, but that’s problematic as mentioned in that PR since the config file format changed.)

Are there any plans regarding on how to fix this situation?

(Similar topic, though not directly related: SSH connection is not using a post-quantum key exchange algorithm)

Hi Felix, welcome to the NethServer community, and thanks for the detailed report.

A base container image upgrade for the Mail module is already planned. Possible options are:

  • continue on Alpine, moving to a newer release
  • switch to Debian

In both cases, an upgrade to Dovecot 2.4 will be considered as part of the same effort, since it’s tied to the same base-image work you referenced in PR #202. We don’t have a firm timeline yet, but it’s on the roadmap rather than an open question of “if.”

On urgency: recording traffic today to decrypt later is a real risk, not just a theoretical one, but we still don’t know how soon it could actually be broken. Either way, the planned upgrade should bring post-quantum support along with it.

Thanks for your reply! I’m looking forward to seeing this implemented :slight_smile: