Gmail Will Soon Warn Users When Emails Arrive Over Unencrypted Connections
techcrunch.com
techcrunch.com
Let's look at the biggest stakeholders in SMTP:
- Microsoft: Exchange (8% mail servers), Outlook (client), Outlook.com (23% of webmail).
- Google: Gmail & Google Apps (40% of webmail)
- Yahoo (21% of webmail)
- OSS: Sendmail, Postfix
So if Google, Microsoft, and Yahoo! signed up that is the majority of SMTP on the internet today. Then we find some funds to get OSS updated (or summer of code), and boom, we have an SMTP update fit for 2015.
Heck have it downgrade for right now, and we can talk about actually switching over in 2025 or whatever. But at least in 2025 we'll have something ready, the longer we take to kick this off the longer it will take to upgrade.
It is utterly insane that nothing is moving here. It is like SMTP is stuck in a perpetual IE 6 situation, and Microsoft is largely causing it all over again (Exchange + Outlook.com).
Perhaps that's a sign that "it" (smtp) now works well enough with the decades of engineering investment put into spam detection, access, standardization and inter-operability that have been put into it to not justify the massive investment that an "SMTP update fit for 2015" would involve.
Spam detection works on a higher level than transport security, it is independent from transport (although a spam classifier might favor mails from SMTP servers sent with SSL and a client certificate signed by a CA for its domain name).
Access... well, that's IMAP/POP3's job, both support SSL for ages.
Standardization/interop, uh we already have SMTPS. The standard is there, what's lacking is support for inter-server encryption.
388 Zones have deployed TLSA for SMTP with STARTTLS (Port 587)
I don't expect this to catch on, ever.Look at Fastmail. They don't even offer STARTTLS. Why? Because of downgrade attacks!
SSL/TLS Encryption Enabled, but not STARTTLS
https://www.fastmail.com/help/technical/servernamesandports....Whether that happens because it doesn't get the expected response to STARTTLS or because the SMTPS port fails to respond with a proper TLS handshake is the same.
A "downgrade attack" only works if the client decides to keep going after failing to establish encryption. This is a client policy configuration issue, and has nothing to do with whether one uses the bytes "HELO server\r\nSTARTTLS\r\n" or a raw TLS handshake to negotiate the connection after opening the TCP port.
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?All you need is a DNSSEC resolver and two lines of Postfix configuration to get it working:
smtp_dns_support_level = dnssec
smtp_tls_security_level = dane
http://www.postfix.org/postconf.5.html#smtp_tls_security_lev...1: https://googleonlinesecurity.blogspot.com/2015/11/new-resear...
MAAWG meets three times a year to move these things forwards.
Just because the standard dialog here is "SMTP sucks, let's replace it" doesn't make it true. People are working harder than you think on solving these problems.
Opportunistic encryption is nice to have because it stymies passive surveillance, but it's not something that can be relied upon to provide security or privacy. Thus, its presence or absence should never be communicated to users, to avoid suckering them into a false sense of security.
For every incoming ssl smtps connection, google could forge a cert the first time it encounters a connection from a particular ip on a particular day. If the client continues with the ssl negotiation, google would know to mark the message as unsecure, because the sender isn't verifying certs.
You could obviously adjust the frequency with which the recipient (eg google) tests each IP. It wouldn't have to be every 24 hours. You could also use additional heuristics to re-test, even going so far as to disconnect immediately and force the client to retry (giving it a forged cert test) if you trust the client ip but see a different helo than you saw last time. You could even use global bgp feed to invalidate any successful tests from a netblock when there's a visible routing change for it.
I am failing to see what your proposal would help.
> stymies passive surveillance... presence or absence should never be communicated ... to avoid suckering them into a false sense of security.
I think you're not giving enough weight to the first point. This really does provide an advantage for individuals who receive their password/reset url or some other credentials via email. At least it wouldn't be intercepted on that hop. Seems like the benefits outweigh the drawbacks.
It wouldn't be passively intercepted. It could trivially be actively intercepted. Gmail would not display a warning in this case, thus making the user think their password/reset URL was safe when it really wasn't. And trying to inform users about the difference between passive and active interception, and expecting them to make a risk evaluation based on it, is just not realistic for the vast majority of users.
My mail server is set up to know that mail to Google domains (and others, like those hosted by Google or Microsoft) must be encrypted and the certificate must be correct. I occasionally look through my server logs to find more domains I can add to the list.
Don't let the perfect be the enemy of the better.
> Don't let the perfect be the enemy of the better.
Think both/and, not either/or.
Having everything be encrypted by default is strictly more secure. There's no reason to avoid taking the first step in fear of the second one.
Solve the problem with a poor 50% solution which most people can't understand, and you may be stuck with it for another 20 years.
Edit: reading the thread more, I guess it depends if they're actually gonna authenticate the certs: https://news.ycombinator.com/item?id=10556544
[0] https://serverfault.com/questions/579138/is-it-ok-to-use-sel...
The proposal for "Secure SMTP using DNS-Based Authentication of Named Entities (DANE)" applies a similar strategy, though it's only for client authentication of the server certificate, not vice versa [1]. There was a proposal at one point to add client certificate requirements to the DMARC standard, though that work appears to have fizzled out.
There are a number of short term and long term benefits. A few years ago, a significant majority of all email was transmitted in plaintext. Google's Safer Email Transparency Report called attention to this, and provided an incentive for ISPs to enable opportunistic TLS and increase their TLS percentage to 100%. This first step appears to have had a meaningful impact on the amount of TLS employed by large senders and ISPs.
At this point, however, messages appear identically to email receivers, whether sent across TLS or not. This report alone was not enough motivation for all large senders and ISPs to employ TLS. Much like how websites with the "lock icon" have a privileged status in browser UIs, the next step of displaying the TLS status (or lack of TLS) in the UI will provide an incentive for senders to employ it.
Employing more TLS today is a benefit even as things stand. Opportunistic TLS protects against passive eavesdropping, which is still a win, and it allows you to detect active MITM interception with scrutiny: MITM interception will leave a permanent trail in message metadata. Plus, one only needs to employ a basic degree of path validation to deter most casual MITM interception (based on self-signed certificates). Gmail could establish tiers of trust, analogous to the types of HTTPS lock icons, and require senders to use a properly path-validated client certificate from a generally trusted CA in order to achieve the highest degree of trust, analogous to the lock icons in HTTPS. The STARTTLS protocol anticipates this kind of authentication [1], but does not specify it:
> Both the SMTP client and server must check the result of the TLS negotiation to see whether an acceptable degree of authentication and privacy was achieved. Ignoring this step completely invalidates using TLS for security. The decision about whether acceptable authentication or privacy was achieved is made locally, is implementation-dependent, and is beyond the scope of this document.
I would expect Gmail to raise the bar over time. This initial effort creates an incentive to roll out opportunistic TLS, even if poorly implemented such as with self-signed certificates. Simply getting TLS in place universally will be a great starting point for further refinement.
Over time, I'd expect to see additional features such as, perhaps: (1) incentives to use path-validated certificates from a trusted CA, over self-signed certificates (2) mechanisms for sending domains to declare what kind of certificate and TLS they'll use when sending, such that receivers can validate TLS connections and reject invalid client certificates. There was some talk in the past about adding this to the DMARC standard, but that fizzled out. There is another effort toward establishing a convention for this by applying DNS-based Authentication of Named Entities (DANE) to SMTP [2]. Although the existing DANE SMTP protocol only establishes a convention for server authentication and not client authentication, there is still value for senders, and I expect work to progress toward client authentication over time. Protocols aside, Gmail could also establish their own conventions, out-of-band mechanisms, or tiers of authentication, like browsers have for EV certificates. We might also see (3) better support for grappling with identity alignment, i.e., emails from example.com are expected to be sent across TLS using an example.com client certificate (perhaps not necessary given DKIM).
In the interim, Gmail can add metadata to the message that captures the client certificate used to transmit the message. A security-conscious receiver can inspect those details, perhaps using a plugin or with a visual scan. It would not be so hard to build a plugin that pins certificates or expected CAs for popular domains, for example.
To summarize, I think this is useful and is heading in the right direction. It's not a complete solution, but it's difficult to go directly from where email is today to a complete solution.
[1] https://tools.ietf.org/html/rfc3207 [2] https://tools.ietf.org/html/draft-ietf-dane-smtp-01
Let's get things like DANE and pinning deployed first. Once Gmail can make a strong assertion that a message was securely delivered, then it can surface this information.
smtp_tls_security_level = may
smtp_tls_CApath = /etc/ssl/certs
This will use STARTTLS to upgrade the connection. This does not protect you against an active attacker, but it will protect you against passive eavesdropping (~mass surveillance).
smh
Pay a few bucks and get your own email. External email, hosted in Switzerland (high privacy, not EU or US jurisdiction) costs me 15 Euro per year. I can use my own (even external!) domain.