Hacker News new | past | comments | ask | show | jobs | submit login

I do think there ought to be a way to do good cryptography in email. Email is not going away anytime soon, so giving up on it as a legitimate place where cryptography is needed seems too ivory tower for me.

The “dead simple solution” is to just run the Signal protocol over SMTP, although I’m sure it’s possible there is a better design if you were to think about the specifics.




A slightly more realistic "dead simple solution" might be for mail clients to extend their OpenPGP support to include Autocrypt[0] which would allow users to gain some of the advantages of OpenPGP without having to understand any of the details.

[0] https://autocrypt.org/


Interesting. In my opinion, this should also contain provisions for storing the private key password-encrypted on the IMAP server.


I think that's what the Autocrypt Setup Message is for:

https://autocrypt.org/level1.html#autocrypt-setup-message


S/MIME is the closest to dead simple solution, but it requires trusting certificate authorities.

It's a much better user experience, and honestly I'm surprised that no enterprise orgs have adopted it, because it would probably be cheaper than all this phishing training.


Enterprises, at least in the form of the U.S. federal government, have but there are two key drawbacks:

1. At least until recent, Microsoft implemented it as blocking code in the UI thread – open a message and Outlook won't paint until it can verify the cert, access your local key store (hope your token is in a USB port which is 100% reliable), etc. If you thought “Does that mean that revocation checks block the UI until a network process completes?” you're sadly right.

2. Adoption hasn't been enough to be able to ban untrusted senders. This could still be quite useful for, say, a hard requirement that *@example.com must have signatures but it doesn't help with really common phishing tactics like pretending to be a vendor, business partner, etc.

3. You definitely need to get serious about key management because your ability to read your old encrypted email depends on retaining those keys. This is obviously not impossible but it has a cost when you think about the need to store them securely in a manner which can be restored after the inevitable system failures and compromises.


> 2. Adoption hasn't been enough to be able to ban untrusted senders. This could still be quite useful for, say, a hard requirement that *@example.com must have signatures but it doesn't help with really common phishing tactics like pretending to be a vendor, business partner, etc.

Preventing forgery of @example.com is nice, but sadly doesn't matter that much, because a message fro "Your Boss" <totallyfake@superscammy.example.org> is just going to show up as Your Boss in the UI with most clients these days, amd Enterprise oriented clients are worse than the norm. The fastest way to see the actual addresses is to just press reply, which is irritating.


Or even “hey, I’m away from the office and lost my company phone. Can you help me …” attempts using an obvious third-party service. All of these have fooled people in the past and you really need high adoption rates to seriously reduce the odds.


The one that almost got me was

      From: "John Q Boss"
      Subject: "the blog is down"

      Can you check <a href="http://0-dayfuntimes.example.org">http://blog.example.com</a>
Of course, that came in on my phone, as I was leaving for the day, and phone doesn't show email address or link destination. :(


> blocking code in the UI thread – open a message and Outlook won't paint until it can verify the cert

Yikes. I should probably be surprised, but I guess I'm not. This sort of thing goes a long ways towards explaining all sorts of other oddities or using Outlook.


Outlook is _old_ and predates threading being a mature OS primitive. I remember reporting bugs of this class against Office 97.

They seem to be extremely hesitant to change it, which I assume is due to the corporate plugin ecosystem.


S/MIME does not protect from phishing.


Not if you want to interoperate with anything currently in existence. And if you don't, why bother building it on SMTP?


You build it on SMTP because upgrading clients is easier than doing a clean slate redesign of ubiquitous internet protocols.

Presumably we're discussing how an open protocol addition might gain any traction at all over walled garden protocols like Slack -- and in those cases you want to maintain as much compatibility as possible.

"Federated SecureEmail 2.0" would be dead-on-arrival, where "Secure Client on top of bog-standard email" is ever so slightly less DOA. You get to re-use the existing identity/routing system, existing servers, existing authorization, etc.


>You build it on SMTP because upgrading clients is easier than doing a clean slate redesign of ubiquitous internet protocols.

Why not just toss the whole shebang and rebuild it below that layer? Signal Protocol seems to be pretty successful here.

>Presumably we're discussing how an open protocol addition might gain any traction at all over walled garden protocols like Slack

No, I'm asking how a new open protocol can be built on top of email in a way that maintains strong backwards compatibility while offering strong security guarantees, like end-to-end encryption. I don't think it's possible.


> No, I'm asking how a new open protocol can be built on top of email in a way that maintains strong backwards compatibility while offering strong security guarantees, like end-to-end encryption. I don't think it's possible.

That's exactly what Autocrypt is doing. They're still at level 1, ie opportunistic encryption: try to encrypt if possible, default to plain-text if not. That's 100% backwards-compatible.

What we all want is a system where we are sure that messages can't be sent in plaintext. The only way this can happen is if MTAs actually read messages and check if encryption is applied; if not, reject it. That's something that can happen but by definition it can't be backwards-compatible.


> No, I'm asking how a new open protocol can be built on top of email in a way that maintains strong backwards compatibility while offering strong security guarantees, like end-to-end encryption. I don't think it's possible.

You can't have strong security guarantees with backwards compatability, because backwards compatability requires plain text sending.

Unless you're OK with limited guarantees like the UI will tell you when the mail could be sent in plain text. Or if the UI tells you the message will be end to end encrypted, it won't fallback to plain text, etc.


>You can't have strong security guarantees with backwards compatability, because backwards compatability requires plain text sending.

That's right.

>Unless you're OK with limited guarantees like the UI will tell you when the mail could be sent in plain text. Or if the UI tells you the message will be end to end encrypted, it won't fallback to plain text, etc.

This would require changing all the clients.


> This would require changing all the clients.

Not really, the old clients would never send (or receive) end to end encrypted messages, so they don't need new UI to tell you that. That's the cost of unbounded backwards comptability.

If you want to have 100% coverage of email users, changing all clients is part of the deal. But, uhhh, good luck with that. Server based standards are an easier lift --- you could build a standard to require hop to hop encryption on mail and expect that to plausibly gain enough adoption to use over a managable time frame. Of course it would be trivial for a hop in the delivery path to subvert that and remove the request, and all hops in delivery would still have message content access; but if people like it, a large majority of servers might support it in 5-10 years.


>Of course it would be trivial for a hop in the delivery path to subvert that and remove the request, and all hops in delivery would still have message content access; but if people like it, a large majority of servers might support it in 5-10 years.

You're describing TLS, and this is already happening.


Not just TLS, but a way to say, while composing a message, if it's can not be delivered via TLS with a valid certiticate, then don't deliver it. Which apparently already exists as REQUIRETLS https://www.rfc-editor.org/rfc/rfc8689.html

Published November 2019. I didn't see any data on support, and hadn't heard of it before looking just now.


Because there are too many users on SMTP/Email, but not many PGP users to worry about interoperating? I mean, Hey.com shows that people still like SMTP/Email.


Does it? Or does it show that a small number of highly technical users are willing to pay more for a different email experience? It's a bit early to judge their impact on the ecosystem, and I'm skeptical they'll capture a significant user base in the way that Gmail did.

People use email because everyone uses email; you're not going to get people to change how they use email entirely. Nobody cares that it's running on SMTP, they care that they can email everyone they know with an email address.


Aren't there specific legal protections for email in some places, distinct from other online communication?


I wish to try n help with the dead simple solution. Heck, I wrote myself a wiki doc as one of my hobby projects sometime (posted here unedited so pardon me if its not perfect http://txti.es/ax4tq) for a simple, simple, simple app that would do basically signal over a SMTP-like system, if not SMTP itself for v1 bootstrapping when online, and do simple mesh relaying (ok thats probably an oxymoron) up to 7 hops when offline.

I don't feel confident enough to actually try this project yet, but at least I wrote what my ideal chat app would be, oh and came up with the fancy name 'chattaur' for it.


Isn't the "dead simple solution":

1. Write the message.

2. Encrypt the message.

3. Paste the encrypted message into the email client.

Your odds of accidentally sending a message in the clear are zero.


And now to read and reply to it, someone has to copy it from the email client, decrypt it, edit their replies in inline, re-encrypt it, and paste it in.

As the number of people on the email chain approaches 2, the chance of someone accidentally copying+pasting the entire email chain decrypted into a reply reaches shockingly high levels.

A painful manual process where the simpler slightly-less painful path works, but results in insecurity happening, are not a good way to make sure security happens.


> As the number of people on the email chain approaches 2, the chance of someone accidentally copying+pasting the entire email chain decrypted into a reply reaches shockingly high levels.

Heck, people (myself included) regularly mess up Reply and Reply All :-)


Have you ever attempted to get an organization of people to do this reliably?


You could run any encrypted protocol on top of SMTP/IMAP; been there, done that; the main issue is you need specialized software on both ends to make it work.

Still, doing so solves the transport and persistence problems you would otherwise have to deal with.


> The “dead simple solution” is to just run the Signal protocol over SMTP

I'm pretty sure the dead simple solution is to either use SMTP or Signal and not a frankenstein's monster of both.


How do you do key exchange?


Video chat might be good for this?


With the rate that video-based deepfake projects are progressing, video/image-based verification likely won't remain useful for much longer.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: