>From my understanding of the way postfix currently operates, there is no
smtpd/stmp TLS setting that can be set that would provide a
configuration that would result in a more 'hardened' configuration,
without causing interoperability problems. If I am wrong, I'm very
interested in knowing where.

A more hardened configuration would be something like promoting
non-broken ciphers/protocols, refusing with meaningful rejections
connections and not reverting to cleartext from MTAs that are either
running software that is so out-of-date as to be guaranteed-compromised,
or they are subject to a downgrade attack by an MITM.

I think the only things that can reasonably be done right now are to
set:

smtp_tls_fingerprint_digest = sha1 
smtpd_tls_eecdh_grade = ultra

neither of those are particularly great improvements.

What are some ways that we could improve the situation?

One obvious one to me is that Postfix should allow for DH parameters
that are larger than 1024bit, 512bit is a joke, and 1024bit is not
strong enough. At the moment, these are the only two options. In my
opinion, the flexibility here is too constrained, merely adding a
2048bit setting means that eventually you need to add a higher
setting. Perhaps it is not possible to have a flexible and configurable
bit length here?

What other changes could we come up with that could improve the state of
things?

* SMTP servers should provide a mechanism for rejecting a cleartext or
poor ciphersuite connections from clients without compromising delivery.

* SMTP clients need a clear and unambiguous signal that they can note
that tells them not to try fallback behaviors when connecting to
[certain hosts|MXes for certain domains] - using a hand-maintained
tls_policy table isn't going to cut it.

* think bigger: out-of-band signalling, global lookup tables, internal
TOFU-style caches of best-transport-status-achieved-per-peer, etc.
figuring out the parameters of what would need to be stored/retained,
how it would be bound to peers (e.g. by IP address, by EHLO name, by MX
name, by delivery zone, etc), how it would be shared/propagated between
servers (if at all), and how it would distinguish intentional key
rollover/expiry from MITM. These would take a lot of work, and a lot of
buy-in, but could really step up the game and pave the way for tougher
blacklist-style hardening in the future

Reply via email to