STARTTLS exists as an opportunistic encryption
upgrade, not enforcement. If a MITM strips the advertisement of STARTTLS (very, very simple to do) the client and server will both happily continue plaintext communications.
This is the default for every mail server I've ever seen.
This is the default for every mail client I've ever seen.
How are people not terrified of this?
Mind you, this is literally what a Cisco PIX/ASA firewall does when you enable the "esmtp inspect" feature. It strips the STARTTLS so everyone falls back to plaintext and it can "scan" your email communications for Bad Things^TM.
When Cisco ASA is configured for ESMTP inspection, the ASA is not able to examine
the TLS session because it is encrypted. Therefore the ASA will prevent the
establishment of the STARTTLS session and allow the SMTP endpoints to determine
whether the SMTP session should continue in clear text (that is, with no privacy).
This is very normal. I can't remember the last time I encountered a small business with a Cisco PIX/ASA that didn't have this enabled.
http://www.cisco.com/web/about/security/intelligence/asa_esm...
edit: Oh hey, look at Postfix's documentation
Mandatory TLS encryption: announce STARTTLS support to remote SMTP clients,
and require that clients use TLS encryption. According to RFC 2487 this
MUST NOT be applied in case of a publicly-referenced SMTP server. Instead,
this option should be used only on dedicated servers.
http://www.postfix.org/postconf.5.html#smtpd_tls_security_le...There's literally an RFC that says DO NOT ENFORCE TLS ENCRYPTION WITH STARTTLS TO THE PUBLIC INTERNET
A publicly-referenced SMTP server MUST NOT require use of the
STARTTLS extension in order to deliver mail locally.
Case closed, SMTP security is broken. The deprecation of SMTPS was either a mistake or a carefully crafted NSA move. Who knows?