Since the beginning of this year, Let's Encrypt rolled out a new shortlived profile for certificates that make them valid for only 160 hours. The intention, as they say, is to encourage automation and reduce the window of certificate compromise (because revocation is somewhat a flakey thing).

Yet, I haven't seen a lot of news about it since then. Hence the question: is this shorter cert thingy something you considered and deployed for your homelab?

As for me I've set up lego-acme with profile: "shortlived" on my rig. Lego runs on a bihourly cronjob, but only renews when a cert has >=3 days to expiry. It's been pretty much a set-and-forget experience, although some more monitoring would be nice.

you are viewing a single comment's thread
view the rest of the comments
[–] 13 points 10 hours ago (10 children)

Honest, non-techie question: How is it an advantage? Given modern crypto isnt it more likely that a mitm didn't crack the crypto but instead got somehow else in the middle and just can "ignore" certs renewals?

  • source
  • hideshow 10 child comments
  • [–] 18 points 9 hours ago (6 children)

    Several reasons

    • If a private key leaks, a shorter certificate lifespan limits the fallout
    • Faster upgrades to new cryptographic standards. If some of the crypto methods used get broken, short lived certificates means they get replaced with newer methods faster
    • Short lived certificates force sysadmins to automate the renewal process. This prevents expired certificates due to forgetting the manual renewal.
    • Certificate lifetime and domain ownership mismatch. You could buy a 2 year certificate for somedomain.com and then sell the domain or just let it expire and have it picked up by someone else. You then have a valid certificate for a domain you no longer ow and you could MitM traffic for the new owner’s website.
  • source
  • parent
  • hideshow 6 child comments
  • [–] 1 point 4 hours ago

    You make some good arguments so I’m not attacking you at all, just my thoughts on your points. These short renewal times are getting to the point of ridiculousness and creating another point of failure with little time to do anything about it. I find these super short certs less than useful, create many more possible problems, and not really necessary except for a small set of circumstances. And I have been in IT as a web dev/sys admin/systems architect for over 30 years now.

    • If a private key leaks you’ve likely done something wrong. Practice better key management and don’t be stupid
    • Updating certs to keep up with new crypto standards is useless. For one they don’t change that often and if there is a pressing reason you can’t update earlier.
    • Yes the processes have to be automated which is not a bad idea at all. But you are completely relying on the service to not be down and that something on your end hasn’t also broken. Anybody that hasn’t ever been a sys admin has had several automated process die for no apparent reason.
    • This could actually be an issue but totally out of your control. This is only relevant if you domain hop frequently and if your that worried about security, you aren’t doing that.
  • source
  • parent
  • [–] 7 points 9 hours ago (2 children)

    My last job had an Onlineshop, 4years in a row the colleague dealing with ssl wad on vacation when the cert ran out.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 8 hours ago (1 child)

    Your colleague sucked at automation. Normally, I'd say no one should be bothered on vacation, but in this case you should have called him on his vacation, since he didn't value anyone else's time either.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 7 hours ago (1 child)

    Short lived certificates force sysadmins to automate the renewal process. This prevents expired certificates due to forgetting the manual renewal.

    That was already the case with the 90 day ones. No sane person is going to be manually renewing certificates every 3 months.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 6 points 9 hours ago* (last edited 8 hours ago)

    A private key leaking is bad, since anyone with the private key can decrypt data that was encrypted with it.

    Traditionally, the way that leaked certs were handled was via Certificate Revocation Lists (CRL). CRLs contain lists of revoked certificates - their serial number, revocation date, and the reason why they were revoked.

    However, CRLs are imperfect. Checking for revoked certificates every time you go to a site would slow things down a lot, as the lists are now too large to check and download real-time. Modern browsers and other TLS clients periodically download the lists in the background. Also, it might take a while between when the certificate is compromised and when the company notices the compromise.

    Because of this, the CA/Browser forum (a group with all the major browser and TLS certificate vendors) have started dropping the max lifetime of certificates. The idea is that even if a private key does leak, the time frame that it's usable for will be significantly shorter and any leaks should (in theory) cause less damage.

    • The original maximum duration was 39 months: Three years plus an extra three months leeway for obtaining and deploying new certificates.
    • March 2018: Reduced to 825 days
    • September 2020: Reduced to 398 days
    • March 2026: Reduced to 200 days
    • March 2027: Planned to reduce to 100 days
    • March 2028: Planned to reduce to 47 days

    All modern deployments, regardless of if they're using free or paid certs, should have their renewals fully-automated, so in theory the validity period shouldn't matter as much as it did in the past. All major vendors (Let's Encrypt, DigiCert, Sectigo, GlobalSign, AWS, SSL .com, etc) support ACME now. Reducing the validity is also a forcing function t o ensure automation is actually implemented.

    somehow else in the middle and just can “ignore” certs renewals?

    I'm not sure that's possible, since an attacker in the middle shouldn't be able to obtain a valid certificate for the domain. Certificates have a "not valid after" date encoded into them, after which the certificate is considered invalid and you get an error.

  • source
  • parent
  • [–] 2 points 8 hours ago

    The real value is in the agility needed to update certs every six days.

    Six days is still too long to leave a compromised key in play, but anyone who can rotate their keys every six days can probably also rotate their keys quite quickly if there's a comprise.

  • source
  • parent