Hacker News
points by stingraycharles 1 day ago | 0 comments
To be honest, git deferring to the OS is the right thing to do. It's macOS that's the problem, not git.

"Ten days later, macOS and all applications that rely on it still trust the compromised eMudhra certificates" would have been a better title.

[–] emn13 1 day ago
Yeah, definitely: having lots of separately distributed and likely rarely and unreliably updated trust roots would not inspire a lot of confidence.
[–] gchamonlive 1 day ago
In turn the centralized OS authority needs proper maintenance otherwise it's just as bad if not worse, because of the larger blast radius
[–] brookst 1 day ago
I don't know about worse. Imagine a world where there is no OS authority, each app does their own. Do you think all important apps would be updated in 10 days, including auto-updates?

Apple fucked this up, but I really don't think the situation is "as bad if not worse" than if MacOS just didn't do this.

[–] mikepurvis 1 day ago
Isn't that the world that Docker gives us, basically?
[–] Shish2k 1 day ago
Yes - difficulty in shipping security updates to a hundred different container images, each of which is vulnerable in their own slightly-different way because they all decided to ship an OS alongside their app - is one of the top criticisms of the docker way of doing things
[–] stephbook 1 day ago
Just run it in kubernetes and mount the certificates with trust-manager
[–] paulddraper 1 day ago
> just

> kubernetes

[–] musicale 1 day ago
> docker

If only we could somehow share libraries and configuration files across apps rather than duplicating them and having to update them for every app individually.

We could call it a "shared library" system and an "operating" system. Someone should really invent this.

I mean, even docker could maybe use a shared base image or something right? ;-)

[–] mixedCase 1 day ago
Now make it immutable and layered, like Docker images, and you might be onto something... Ah well, sounds too good to be true. We might have to nix the idea.
[–] xp84 1 day ago
What kind of psychopath ships 100 distinct container images? I mean, maybe if you’re talking about all of Netflix or something, but… I suspect even they have base images that they use as a starting point.

There’s very little actually running in a docker container. ca-certs may actually be an exceptional case though, since it’s not code that’s running but a kind of data.

It’s not like if you use an Ubuntu image for a node.js app that you get PHP too and have the PHP vulnerability present in your web app.

[–] stackskipton 1 day ago
You still have to rebuild each Application Container with new CACert and deploy them. Depending on teams are working, that can be disruptive.
[–] lakeviewterrace 1 day ago
> Imagine a world where there is no OS authority, each app does their own.

That's the world we live in now thanks to Google and Mozilla.

[–] emn13 21 hours ago
Surely there's a nuanced difference between "every app distributes this independently" and "a very small few apps that bear the brunt of hostile exposure support independent mechanisms".

It's also worth remembering that both of these specific organizations were instrumental in major, positive security shifts that eventually hit OS's too, including shorter-lived certs, limiting the point of CAs, adoption of TLS 1.3, and likely other things. If anything, they deserve _more_ trust than the OS distributors on this specific front, perhaps also because they don't share the OS distributor's incentive to prioritize stability for paying customers, which can be at odds at times with harsh, prompt security measures.

[–] musicale 1 day ago
> Apple fucked this up, but I really don't think the situation is "as bad if not worse" than if MacOS just didn't do this.

https://support.apple.com/en-us/149555

[–] gchamonlive 1 day ago
It makes no sense to imagine this hypothetical scenario and compare it to reality, you have to imagine a similar world with a OS authority, but it only gets updated every 6 months. Which is worse in the worse case? I'd say the one with the lower blast radius.

But this abstract exercise is only to highlight the importance of Apple getting its shit together, because such a scenario exists with Windows and the culture of downloading exes and msis and it's honestly way worse than having a central but responsible authority.

[–] sfoley 1 day ago
Remember this is the same company that demands they're the only ones who can possibly decide what software their users get to install.
[–] sebazzz 1 day ago
So many Java trust stores never seeing this update.
[–] whizzter 1 day ago
Yes, but the irony here is that Apple used to (or perhaps still has) forbidden using other HTTP(S) clients in iOS apps (or perhaps Appstore in general) than the built-in out of security concerns like this would address by using 1 central storage instead of multiple ones were one won't get timely updates.
[–] angulardragon03 1 day ago
Wouldn’t be true either. Stuff that uses the OS certificate store (that you can view in the keychain) won’t trust the compromised certs.
[–] throwaway2037 1 day ago
Correct. I Googled to ask about location of certs on disk: /etc/ssl/cert.pem

Is it possible for users to remove the eMudhra certificates themselves? I have no experience with MacOS, so I don't know if certain actions are prohibited. To be clear: I am not suggesting that normies do this! Rather, I am asking if it is possible for highly skilled users.

[–] asveikau 1 day ago
It's pretty trivial to do this. Before the official patches were out on other platforms I did it on a few machines.
[–] bombcar 1 day ago
You can have it "both ways" if you want, but it quickly becomes very muddy - defer to the OS, but override the deferral in some cases.

Certificate management is fifty kinds of all messed up - and in THEORY everything is designed perfectly and properly, in practice it's all bandaids on bandaids that nobody cares about as long as "things mostly work".

[–] vikramkr 1 day ago
This doesn't have the vibes of something that's designed perfectly even in theory. This more has the vibes of "this was the least worst option"
[–] bombcar 1 day ago
If you look at the FULL design, it's actually pretty good - things like https://en.wikipedia.org/wiki/Certificate_revocation_list CLRs have actual thought behind it - but I know of no system that actually IMPLEMENTS everything, for various practical reasons.

So from a spherical cow perspective, it's well-designed; from a "this has to work in the real world with real things and people" it's ... workable by violation of the design all the time.

[–] Perseids 1 day ago
Trust relationships are fundamental even in the most abstract view of the Web PKI and without the band-aids of Certificate Transparency etc. that trust relationship is: Some random commercial entities that are completely independent of the DNS, make fully trusted statements about the validity of DNS record ownership. It's bonkers to the core. If someone would design it from scratch, of course the domain registrars would be the ones issuing the certificates via their established relationship to the customers, and they would only be able to issue them for the domains they are responsible for. And no: DNSSec does not solve the same problem and is a tragedy all of its own.
[–] bombcar 1 day ago
In a roundabout way that’s effectively where we are now since everybody and everybody uses lets encrypt certificates which are just a fancy way of saying I controlled the DNS at some point
[–] thayne 22 hours ago
Even before Let's Encrypt was a thing, that is how most DV (Domain Validated) certs were issued. It was just a more manual, more expensive process to do it. GP's point is since the system depends completely on trusing the DNS chain anyway, why not have the registrar [sic. it should actually probably be the registry] act as the CA as well and cut out the middleman, and the need to verify the domain from multiple paths to prevent MitM.
[–] thayne 22 hours ago
CRLs were a great (ok, maybe just ok) design in the early days when the internet was small and the number of CAs and revoked certificates was small. But it was never going to be scalable. And it has the really big problem of needing to distribute these lists of revocations. OCSP has a different set of tradeoffs.
[–] vikramkr 1 day ago
I would argue for anything security - if there is a difference between how it works in theory vs in practice - then the theory is flawed. Physics gets to have theory/practice distinctions, but engineering doesn't because the bridge can't fall down.
[–] thayne 22 hours ago
In Physics, if a theory doesn't describe reality, the theory is incomplete. Of course all theories are ultimately incomplete, the goal is to find theories that match reality better than the ones before.
[–] bombcar 1 day ago
Exactly, and it's a very real problem with the IETF-way of building things, and why "this is what Chrome does, copy it" becomes the real standard.
[–] stkdump 1 day ago
I guess we are going to learn how important secure communication is based on the stories (or lack of stories) about how it is being exploited in the wild.
[–] tomkarho 1 day ago
I could swear I saw that title here earlier today almost verbatim maybe even referencing the same link.
[–] financetechbro 1 day ago
Can confirm I saw the same thing
[–] Barbing 1 day ago
Exceeds character limit, but admins can modify if there’s a better shorter title.
[–] ToucanLoucan 1 day ago
> To be honest, git deferring to the OS is the right thing to do.

Tangentially related: I fucking hate so much that browsers now all have their own DNS resolvers and caches, it's just Another Fucking Thing to debug when you're working especially on locally hosted stuff. This is not a browser's job, it's a task that should fall to the OS.

[–] bombcar 1 day ago
It is super annoying especially since it's not even "browser has its own DNS and cache but uses your name servers" - more and more "browser bypasses all your shit both on the OS and the network and uses DNS over HTTPS to do God knows what".
[–] xp84 1 day ago
Wait, did I miss this? Can you share details on what browsers started doing this?
[–] ToucanLoucan 1 day ago
Can confirm, Firefox did this forever ago. Become my ritual during a rebuild to turn DNS over HTTPS off because it fucks everything up.

Edit: Found it, February 2020: https://blog.mozilla.org/en/firefox/firefox-continues-push-t...

[–] pelican0 1 day ago
> Become my ritual during a rebuild to turn DNS over HTTPS off because it fucks everything up.

Out of curiosity, what are some of those things it messed up for you? And what kinds of builds is it affecting?

[–] ToucanLoucan 1 day ago
Like I said, internal DNS. I have my own DNS server with a small set of records for my own internal sites, mostly automation tools alongside the websites I've built and maintain for small businesses near me. The latter are the easiest to explain, for example, if I built joescoffee.com I wouldn't work in production obviously, I'd work on a copy hosted on my local server at joescoffee.myhouse.com, make my changes and then push that code live. Because Firefox and Chrome (and likely others) roll their own DNS server though, I have to configure that separately, because while my machines all get their DNS from the DHCP leases I've already configured which point all DNS queries to my internal DNS server, DNS over HTTPS bypasses that and contacts public DNS servers directly.

And like, I don't need that. My DNS server is properly maintained and queries those exact same servers itself when you request something like google.com or apple.com. Putting a separate friggin DNS query AND cache in a browser is just more trying to protect people from themselves IMO, and introduces this weird issue where you can't hit an internal site in Firefox, even though you're running `nslookup` on your freaking computer, and it's giving you the proper IP address. And paradoxically putting the IP address in makes the browser find it when the domain you can see correctly resolving in terminal isn't resolving in the browser is fucking obnoxious.

It also would render a pihole useless because Firefox despite the PC's DNS not resolving ad provider's names, WILL resolve them, ensuring an attack vector for malware remains wide open even if you've tried to close it.

And while I'm bitching about this: STOP DEFAULTING EVERY CONNECTION TO HTTPS. Any properly configured website is going to do this anyway, the browser also doing it, again, just annoys the piss out of anyone trying to host stuff locally because why the fuck would I get certificates for servers that aren't even exposed to the damn Internet!?

[–] Dylan16807 1 day ago
> And while I'm bitching about this: STOP DEFAULTING EVERY CONNECTION TO HTTPS. Any properly configured website is going to do this anyway, the browser also doing it, again, just annoys the piss out of anyone trying to host stuff locally because why the fuck would I get certificates for servers that aren't even exposed to the damn Internet!?

Attackers won't do it. The browser itself has to put barriers in front of http for public domains.

But yeah it shouldn't get so fussy for local IPs or local DNS.

[–] emn13 21 hours ago
While you say many reasonable things and describe a perfectly reasonable setup and desire - surely it's clear that your situation is _extremely_ unusual? Browsers are absolutely _also_ reasonable in prioritizing secure defaults for setups that are not similarly controlled. After all, precisely the thing that makes your situation managageble and reasonable - that being you the knowledgeable admin - is also the thing that allows you better than the average user to change defaults.

Both from a sheer numbers perspective and also from the perspective of qualitative differences between these audiences browsers are doing the right thing - prioritizing security in low-to-no-trust environments assuming low-to-no-competence administration.

[–] solyin 1 day ago
QFT! My http://nas.lan isn't getting a cert, nor public DNS. I know what I'm doing. Firefox, stop fucking things up, it's hard enough to use you instead of Chrome, don't make it harder by copying everything they do!
[–] pelican0 1 day ago
Fair enough, carry on.
[–] bombcar 1 day ago
My browsers shit themselves if I try to go to http://191.168.0.1 and meanwhile https://1.1.1.1 is a thing.
[–] bombcar 1 day ago
"In May 2020, Chrome switched to DNS over HTTPS by default."

Welcome to hell. https://en.wikipedia.org/wiki/DNS_over_HTTPS

(My current chrome reports no at https://one.one.one.one/help/ so maybe I changed it or maybe the default's different now)

[–] senderista 1 day ago
Indeed, it makes it harder to block addictive sites like this one in HOSTS :)
[–] ToucanLoucan 1 day ago
That too lol
[–] pcthrowaway 18 hours ago
Doesn't libcurl do this also?