@tolortslubor @aikensource @Quinnypig
As a former #OfficeManager for a #DialUp #ISP I don't make assumptions about the #Allegiance, #Ethnicity, or #GeoLocation of the particular #CyberCriminals lurking on the other side of that mouseclick.
It's especially galling when it's my team's website is presenting me with this notificaiton.
@Quinnypig I have been beating this drum for years, at browser companies keep making it *worse*, not better.
An expired cert should, at worst, be like, a yellow warning in the address bar for a month or two. There's *zero* justification for treating a barely expired certificate as a reason not to navigate to a page.
Worse yet is the absolute travesty that is HSTS, which then ensures you can't bypass the error for any reason, even if you understand why it happened.
Expired certs *have to* be treated exactly the same as revoked certs for two reasons, imo:
1) No one revokes certs after they expire. If a cert should be revoked (e.g. due to key compromise) shortly after it expires, it just won't be revoked instead. The browser must assume all expired certs may have been revoked, too.
2) If certs are allowed to function after they expire, the WebPKI loses agility. Enforcing expiry is how browsers ensure that BRs changes take effect.
2) WebPKI is mostly complete garbage and an embarrassment to the industry to begin with. Agility is another word for "fragility".
1) Is this a real world scenario, where you have ever experienced a security issue with a certificate which expired in less than a month?
Which is to say, certificate nerds' theories are being used to justify massive real world damage.
@markpx509v3 @asg @Quinnypig Is this a practical concern or a theoretical one? My understanding is CRL checking not exactly ironclad to begin with. But the practical risk of expired certs appears to be still effectively nonexistent.
Can you give me an example of a real world attack that was done involving an expired certificate?
It's practical. The specifics of CRLs vs OCSP vs any other revocation checking mechanism don't matter; what matters is that a cert which *otherwise* would be revoked, in fact won't be, simply because it is already expired.
The easiest attack vector is:
- issue a cert for example.com, let it expire
- sell example.com to someone else. They revoke all extant certs, but don't revoke yours because it's expired.
- intercept their traffic, and use your expired cert for TLS
@ocdtrekkie @markpx509v3 So if you want expired certs to be trusted by browsers, you have to let expired certs be revoked. If you want to let expired certs be revoked, you have to change the Baseline Requirements, every existing CRL and OCSP implementation, and x509 itself. That's impractical.
Fundamentally, browsers have to choose *some* time to start treating an expired cert as equivalent to a revoked cert. The instant it expires is as good as any other time, and better than most.
@asg @markpx509v3 You can already request a valid certificate that's good for a year, and sell a domain to someone immediately thereafter, can you not? There's 364 days of valid certificate.
The instant is expires is absolutely the worst time to start treating an expired cert like a revoked cert, aforementioned 81% of organizations negatively impacted by issue caused solely by theoretical risks not used in practical attacks ever.
@asg @markpx509v3 This has never gotten me to a bad place, so why would I ever stop? (Since this conversation started, I clicked a link on HP's website, which linked to a subdomain where their cert was expired a week ago, and I clicked through, and it in turn redirected me back to an HP site with a valid cert. I literally experience things like this... close to daily?)
I at least know the potential risks, but most people will both bypass these inane warnings while not understanding the risks.
@ocdtrekkie @markpx509v3 I guess I don't know what to say. I've worked in this field for a while now and in tech generally for much longer, and I have *never* clicked through an expired cert warning and refusing to do so has never negatively affected my experience.
Browsers blocking these sites works. Choosing to block them a day, a week, or a month after they expire simply kicks the can down the road.
Convince site operators to automate their issuance, not browsers to reduce user security.
@asg @markpx509v3 The thing is, the PKI structure doesn't actually increase user security. None of this nonsense has come from practical attacks.
And aren't we amongst the process of yet another of those highly vetted CAs getting distrusted for... never having been trustworthy to begin with?
Why do browsers trust a certificate signed for a US company in China more than a certificate that expired yesterday?
@asg @markpx509v3 I absolutely would have regular issues if I was scared to bypass a cert warning: They regularly impede my access to otherwise perfectly functional parts of the web, often to resources I need to do my job.
There's also basically no real world threat in doing so. Even "wrong domain" errors are exclusively misconfigurations in practice.
Automated issuance is great, but we're about a decade from when you can assume that's possible for all things.
@asg @markpx509v3 Also, domain validation isn't drastically good at proving to a human that the destination is trustworthy. Eventually when people figure out that security doesn't scale, we'll need a new flavor of Extended Validation (Verified Mark certificate, I guess is what we're going with for them now?)
And then we'll need a whole pile of new specs to determine if a site that uses DV instead of EV should be believed as secure on a given site or whatever. And it won't be automated. *shrug*
@ocdtrekkie Of course the WebPKI increases user security. Does it increase it *as much as one might hope*? No. But does it increase security over transmitting everything in plaintext, or having absolutely zero basis on which to make key trust decisions? Of course it does.
Since you're throwing around hyperbole instead of having a serious conversation about the pain points and merits of specific aspects of the current WebPKI, I'm muting this thread.
@Quinnypig i still think its kinda silly that browsers lose their shit over self-signed certs for rfc1918 addresses.
as if all the people who work on browsers have never bought a nas, or a router, or anything else thats an embedded device that lives on the lan which will likely never ever see a cert update.
Even better is when Google decided that using self-signed certs and CAs for 802.1x Wifi was insecure, and wouldn't let you use them in the local cert storage for system level things like wifi.
Google's rational was basically - "If you are deploying 802.1x, you can afford to buy a cert"
On a related point: it is *absolutely shameful* that I can't set up a CA locally for devices on my own rfc1918 network (using a .home DNS name) and have https "just work" without having each client trust a CA key that then can MITM *any* https content.
Why can't I say "trust this cert only to sign stuff in 192.168.*.* or with a *.myhomenet.home DNS name"?
My options for local-net https seem to be:
1) don't, http/plaintext only
2) errors that have to be ignored on every client every time
3) install a local CA cert on each client, making them fundamentally insecure and making me able to MitM any SSL traffic (as my phone will remind me every time I look at the settings page: "A certificate authority is installed on this device. Your secure network traffic may be monitored or modified.")
@fizbin @Viss @Quinnypig I think there's actually a restriction you can add these days to do that.
Not sure how widely supported it is though.
Also as always, OpenSSL is a fuck and it's really hard to do anything right with it.
@Viss @Quinnypig This, so much this.
I maintain a piece of server software that endusers install on their own hardware. Endusers who rarely know what a CA is, who rarely own their own domain name, and who are completely out of their water to get SSL going there without scary browser warnings. And I can't do anything for them because the only thing I can do is shipping with a newly generated self signed and that generates catastrophic warnings too.
i love badssl.com for showcasing all the nearly-identical error screens
chrome at least refuses to connect on some (unless u type the cheatcode `thisisunsafe`)
@Quinnypig my favorite is "the certificate for 192.168.1.1 is not valid SOMEONE IS TRYING TO HACK YOU!!!"
I have severe TLS alarm fatigue. A bad cert on an unexpected site still raises an eyebrow, but I can see normal users being trained to just accept bad certs for this reason.
@Quinnypig @mainframed767 how about we make a better process for ensuring certs are renewed? After all these years, why is it so difficult for an app to manage this process ongoing without much user intervention.
Lets Encrypt is good and its certainly easy enough to bake into an app lifecycle process. Surely they don’t have be the only one?