- cross-posted to:
- purianesimo
What is the use case or benefit for the server admin?
as a server admin I wouldn’t want to keep renewing my cert.
can anyone help to explain?
Lets Encrypt certs tend to be renewed by a cronjob, anyway. The advantage is that if someone gets your cert without your knowledge, they have, at most, six days to make use of it.
If they get it without your knowledge, what are the odds they can get the new one too?
If they got it with your knowledge, can’t you just revoke the old one?
If they got it with your knowledge, can’t you just revoke the old one?
Yeah, but unfortunately cert revocation isn’t that great in practice. Lots of devices and services don’t even check the revocation lists on every connection.
I’ve been using the Swiss Cheese Model for my sandwiches and they’ve been a disaster.
You have to scramble the slices, otherwise the holes all line up and your mayonnaise falls out.
6 days to do what you want to do to the page and its visitors. I guess that’s good?
It would be six days at max, assuming they managed to steal the certificate immediately after it was issued, otherwise it’s gonna be even less.
Having the certificate doesn’t automatically mean you can change the site, if you have control of the site hosting you likely wouldn’t need to steal the cert anyway.
Stealing the certificate would allow you to run a man in the middle type attack but that’s inevitably going to be very limited in scope. The shorter time limit on the cert reduces that scope even further, which is great.
Since most Let’s Encrypt certs will have an automated renewal process this doesn’t even really change the overhead of setup so I think this move makes a lot of sense.
There are other things certificates can be used for as well of course but I’m just going off your example.
That makes little sense. If they can get my certificate then I have different problems that ,a 6 day turnaround isn’t going to solve
Presumably, you’ve patched up whatever hole let them in.
… Seriously?
If someone got a hold of your certificate that is the security equivalent of the entire company being on fire. If they got my certs they likely will have my credit cards, my birth certificate, and my youngest daughter.
Thank God though that I can renew my certificates every 6 days, that will definitely help sole the problem.
they likely will have my credit cards, my birth certificate, and my youngest daughter.
that’s… not how SSL works.
I think the implication is the infiltrator would have a lot of access already.
OK. Whatever hypothetical we want to think about here, we still want our cert to be renewed.
Thats an interesting position.
I dont keep my credit card information on the load balancer that holds my certs.
Yeah but it’s just an extra layer. Why not, it’s automated and almost no-cost.
I understand their reasoning behind this, but I am not sure, this is such a good idea. Imagine Letsencrypt having technical issues or getting DDoS’d. If the certificates are valid for 90 days and are typically renewed well in advance, no real problem arises, but with only 6 days in total, you really can’t renew them all that much in advance, so this risk of lots of sites having expired certificates in such a situation appears quite large to me.
I volunteer to help with IT at a makerspace, and I hesitate to go for 6 day expiration times. As volunteers, we can’t always fix problems in a timely way like paid IT staff could. We try to automate the hell out of everything, but certs have gone a day or two without getting updated before.
That’s true, but it would also have to be a serious attack for LE to be down for 3 entire days. There are multiple providers for automated certs, so you could potentially just switch if needed.
Most companies are not really suited for instant switching to a different cert service.
Most companies weren’t suited for automatic certs either, but now they are
The attack would only need to last for a day or two, and then everyone requesting updated certs when it stops could push enough people outside the 6-day window to cause problems. 6 days is probably long enough to not be a huge issue, but it’s getting close to problematic. Maybe change to 15 days, which should avoid the whole issue (people could update once/week and still have a spare week and a day to catch issues).
No one forces you to use let’s encrypt certificates. Can just quickly switch to another one temporarily.
Yeah, if you notice within that 6-day window before it expires. If you don’t catch it, your service could be down while you fix it, and that’s bad.
Yeah you might be on vacation when it happens
Yeah you might be on vacation when it happens
What the fuck is a vacation?
It’s a recent European invention, where you travel to other countries without your army.
But what if my army gets sad without me? What if I bring just some army? Ya know, in a travel carrier.
And then you forget about CAA records and wonder why it’s not working
When I look at the default list of trusted CAs in my browser, I get the feeling that certificate lifetimes isn’t the biggest issue with server certificates.
The sites I have most frequently have had to add expired certificates to use are US government websites. Particularly those affiliated with the military branches. It’s sad.
People who’d abuse trust into centralized PKI system are not real, they can’t hurt you, because if they abuse it, said system’s reputation will fall to zero, right?
Except it’s being regularly abused. LOL. And everybody is using it.
Yes X.509 is broken. If you’re a developer and not pinning certs, you’re doing it wrong.
Yeah, now imagine pinning certs that change weekly.
My first thought is that old school secure software (like claws-mail) treats a cert change as a minor security incident, asking you to confirm every time. Completely different school of thought.
You can pin to your own CA. Then it doesn’t matter if you want to update your certs frequently.
Right
What
What part are you confused about, and are you a developer?
Edit: why was I downvoted for asking this?
I’m a developer and would appreciate you going into more specifics about which certificates you suggest pinning.
I’m saying that if you’re a developer of software that communicates between two nodes across the internet, you shouldn’t rely on X.509 because the common root stores have historically been filled with compromised CAs, which would let someone with that CA decrypt and view the messages you send with TLS.
You should mint your own certs and pin their fingerprints so that your application will only send messages if the fingerprint of the cert on the other end matches your trusted cert.
OK, so cases where you control both ends of the communication. Thanks for the clarification.
And your software stops functioning after X years due to this.
Don’t do this, this is a bad idea.
Technically all certificates are pinned, especially with public CAs, most OS package the latest CA certs which will all go out of style within 10 years or so. You can see this by loading up any old distro or defunct version of windows.
Yeah, fuck the users. We can just slap “100% secure” on the box and who cares if some woman is raped and murdered because we decided not to follow best security practices, right? /s
Don’t certs just create an ephemeral key pair that disappears after the session anyhow? What does cert validity period have to do with “This is a big upgrade for the security of the TLS ecosystem because it minimizes exposure time during a key compromise event.”
I mean, it’s LE so I’m sure they know what their talking about. But…?
compromising a keypair is a huge win. lets you impersonate the domain. shorter validation periods = smaller windows of compromised situations.
basically the smaller you make the window the less manual intervention and the less complicated infrastructure gets. currently TLS systems need a way to invalidate certificates. get them down to a day and suddenly that need just disappears. vastly simplifying the code and the system. 6 days is a huge improvement over 90 days.
Ok, I slid right by the “compromised” word. Makes sense now.
you mean you slid right on by an understanding of how security infrastructure works. since one always assumes credentials will be compromised.
I mean I just missed that part.
I’m far from an expert on PKI, but isn’t the keypair used for the cert used for key exchange? Then in theory, if that key was compromised, it could allow an adversary to be able to capture and decrypt full sessions.
No. Perfect Forward Secrecy (ephemeral keys) prevents this type of replay.
Time for a dive, thanks.
Although this only was added in TLS1.2 I think. I had to switch it on manually for my server.
I think it’s default for TLS1.3.
Im also not an expert but i believe since there Is still an ephemeral DH key exchange happening an attacker needs to actively MITM while having the certificate private key to decrypt the session. Passive capturing wont work
Have you read about perfect forward secrecy?
The key pair you’re thinking of is just a singular key for a block cipher. That key needs to be generated/transmitted in a secure manner. Meaning that its security is dependent on the cert. The expiration time of that cert is what they’re aiming at.
It’s kind of in line with their plan to get rid of OCSP: short certificate lifetimes keep CRLs short, so I get where they’re coming from (I think).
90 days of validity, which was once a short lifetime. Currently, Google is planning to enforce this as the maximum validity duration in their browser, and I’m sure Mozilla will follow, but it wouldn’t matter if they didn’t because no provider can afford to not support chromium based browsers.
I was expecting that they reduce the maximum situation to e.g. 30 days, but I guess they want to make the stricter rules optional first to make sure there are no issues.
Interesting. I use LetsEncrypt largely for internal services, of which I expose a handful externally, and I’ve been thinking of only opening the external port mapping for cert renewals. With this at 90 days, I was planning on doing this once/month or so, but maybe I’ll just go script it and try doing it every 2-3 days (and only leave the external ports open for the duration of the challenge/response).
I’m guessing my use-case is pretty abnormal, but it would be super cool if they had support for this use-case. I basically just want my router to handle static routes and have everything be E2EE even on my LAN. Shortening to 6 days is cool from a security standpoint, but a bit annoying for this use-case.
You can use DNS challenge to renew your certificates without opening ports! Have a look at acme.sh for automation.
certbot has modules for most DNS providers as well.
Oh, awesome! I thought that was a manual process, so I’ve been using the regular method.
Looks like I have a new project for this weekend. My DNS is currently hosted at Cloudflare, so this should be pretty straightforward.
Caddy with the cloudflare module makes TLS with DNS verification insanely simple
Nice! I use Caddy, so this should be a snap.
Digicert, Sectigo, Globalsign: hold my beer, 1 day certificate, even better: on the fly certificate per client 😂
Which of them is free?
Free has zero value in the enterprise world if managing certificates is a nightmare. Certificate prices is insignificant when your average website is a 90.000€ project.
Exactly, enterprise world. Letsencrypt doesn’t aim for that.
I wonder how short this could conceivably go…
Dynamic generation. There is no certificate until user request.
Perfect, let’s also bind the certificate to a user session that is derived from a user fingerprint. That way the CA can track users across all sites
I just want to serve https, not get someone’s dick permanently installed in my ass
deleted by creator
Increase how often the drones call the mothership, excellent.