Remix.run Logo
▲ Tepix a day ago

It's a shame that now, where S/MIME is a feature of pretty much every mail app, noone uses it outside of businesses. Opportunistic encryption between mail servers isn't good enough.

We really need a CA that does for mail what Let's encrypt has done for HTTP:

The CA needs to provider proper S/MIME certificates:

- free like Let's Encrypt

- duration of 1 year or longer and

- users generate their own keys

▲betterunix2 a day ago | parent | next [-]

The problem with email encryption is not about CAs or verification of keys at all. The problem is key management and how encryption interferes with the common expectations that users have about email. In a corporate environment it is easier because the corporation itself can manage user keys and issue yubikeys etc., but for individual users there is no such support. It is also clunky to have to first receive someone's public key before you can send an encrypted message; for chat apps that is not a problem because chat is interactive and typically real-time, but with email there is no guarantee about interaction.

Those issues are partially addressed with "identity based encryption," but IBE always has a "backdoor" because there is a party that issues the users' private keys (and hence can always read a users' messages). On the other hand IBE does allow you to "just send" an email to someone because the public keys are just the "identities" (e.g. email addresses) combined with a single master public key. Key management is not as much of a problem because of how keys are generated. IBE does have some users, but as you said it is mostly business/organizational use.

▲Tepix 5 hours ago | parent [-]

But with S/MIME you can just add your certificate in a mail header, it's pretty painless.

▲ 4 hours ago | parent | next [-]
[deleted]
▲kbolino 4 hours ago | parent | prev | next [-]

That only applies when you're replying to someone. It doesn't apply to new conversations or adding someone new to an existing conversation.

▲ 4 hours ago | parent | prev [-]
[deleted]
▲nottorp a day ago | parent | prev | next [-]

> duration of 1 year or longer

Let's Encrypt is bringing the duration of certs down not up. I believe their goal is 30 minutes validity.

▲throw0101c a day ago | parent | next [-]

> Let's Encrypt is bringing the duration of certs down not up. I believe their goal is 30 minutes validity.

This is mandated by the CA/Browser Forum, which, as the name implies, is related to browsers. It says nothing about e-mail clients. In its Extended Key Usage filed (RFC 5280 § 4.2.1.12) a certificate could not have server or client authentication, but have email protection as an allowed use.

Edit: there is an RFC for "Extensions to Automatic Certificate Management Environment for End-User S/MIME Certificates"

* https://datatracker.ietf.org/doc/html/rfc8823

▲mixdup a day ago | parent [-]

Let's Encrypt has always had short-lived certificates, long before they were mandated by the CAB. They've been pushing the cutting edge here

▲FiloSottile a day ago | parent | prev | next [-]

As far as I know 30 minutes validity is no one's goal, even long term.

The most aggressive plans (not Let's Encrypt's specifically) target 7 day validities.

▲nottorp 8 hours ago | parent [-]

And at how many days or minutes does it turn from security into security theater?

If we follow this line of thought it would be more secure to only serve sites to consumers through a few "trusted" third parties right?

▲FiloSottile 8 hours ago | parent [-]

> If we follow this line of thought it would be more secure to only serve sites to consumers through a few "trusted" third parties right?

No.

▲Tepix 5 hours ago | parent | prev | next [-]

This only applies to browsers. In mail programs you don't want to force the users to deal with their keychains constantly. Also you will potentially have a ton of keys after a couple of years that you have to keep in order to decrypt old mails (if you don't want to reuse the key every year).

▲kbolino 4 hours ago | parent [-]

Certificate revocation applies to all uses of PKI, not just web browsers. In fact, it is an even bigger problem with email, because there are so many more email addresses than web sites.

▲doublepg23 a day ago | parent | prev [-]

I say we go for one Planck time of validity.

▲kbolino a day ago | parent | prev | next [-]

Why such a long lifetime?

If you could actually solve the deeper problem of the sender being able to find the correct certificate to use for the recipient(s), then the lifetime could and should be as short as possible, as in days not years. The recipient can decrypt the message forever, as long as they continue to possess the private key, even if the associated certificate expires. Short-lived certificates are the only effective mechanism for dealing with key theft and mis-issuance that works at scale.

▲Tepix 5 hours ago | parent [-]

If they rotate the private key frequently, they need to keep all old keys in order to decrypt the messages. If they keep reusing the private key, why make new certificates all the time?

▲kbolino 4 hours ago | parent [-]

But you can't re-use the private key, and you can't keep the same one around for very long. In a thread about "why can't we do Let's Encrypt but for email", surely we must start by accepting one of the most important lessons of the modern WebPKI era, which is that CRLs and OCSP do not work at the scale involved here, which has led to keys and thus certificates being constantly rotated.

Somebody else already said "key management is the hardest problem" and I wholeheartedly agree.

▲nazcan a day ago | parent | prev [-]

Thoughts on why it hasn't been solved?

▲autoboy a day ago | parent | next [-]

Just look above here, people still want to do cert reneval manually with long timespans. The most radical thing LE did was not to provide free certs, or even automated certs, but short-lived certs.

▲tialaramex a day ago | parent [-]

The short lifespans are to encourage people to actually automate, not just say they want to.

If the cert lifetime is 5 years, Bill installs "just the first one" manually, solemnly swearing they will automate next time, and in five years nobody even knows who Bill was, Bill left three years ago. How do we replace the certificate?

If the cert lifetime is 2 years. Bill is still there or maybe somebody on the team still knows Bill's email address, but most likely the decision is taken to "just do it manually once because it's urgent" and we just recurse. This would have been the "obvious" choice when ISRG lit up Let's Encrypt.

But because the cert lifetime was 90 days, Bill gets told it's expiring at about the same time he's about to shove that "Actually automate certificates" work onto the back burner. Oh yeah, right, we should actually do that.

Now, it may be that at a startup that "Automation" is initially "Put it on Natalie the intern's TODO list every Monday" but by week six Natalie has learned about cron, or Windows event scheduling, or a dozen other ways to make stuff you always do regularly happen without actual work. Today I expect her LLM will tell her how to do it.

And Natalie is going to discover that some "permanent" solutions are more permanent than others, that you want monitoring and so on. But because Let's Encrypt is so popular unless you're doing something pretty esoteric you won't even be the first person to ask about it this month.

▲Tepix 5 hours ago | parent | prev | next [-]

I think many people have given up on email security and want users to use instant messaging instead for secure message exchange.

▲shim__ a day ago | parent | prev [-]

How would you verify the users real name ?

▲kbolino a day ago | parent | next [-]

You wouldn't. Let's Encrypt doesn't verify anything more than that the requestor of the HTTPS certificate currently has control over the domain. The equivalent would verify nothing more than that the requestor of the S/MIME certificate currently has control over the email address. This part is actually a fairly standard procedure already, as a lot of websites will send verification emails to fully activate new account signups.

▲cowlevel 8 hours ago | parent | prev [-]

Persona?