Hacker News new | ask | show | jobs
by exitzer0 920 days ago
It is just not wise to allow some random application to MiTM your SSL traffic.
4 comments

If you can read the code and asure that the traffic won’t be sent to a malicious third party, why not? What is the concern?
If I can miss subtle and not-so-subtle bugs in my own team's code that I'm working on every single day, what are the chances I'll get it right on somebody else's project?

Being able to MITM any HTTPS request on my system is a privilege I'd not grant lightly. It's up there with browsers, browser extensions (with "all content on all sites" access), and password managers in terms of blast radius in case anything goes wrong.

No one will do this, and those that read source code during installation do not review it for every upgrade. It's one of those 'just do this!' arguments that has little to no basis in reality. There's more of them replying to the parent comment: "Just do this! Just compile a thing! Just verify signatures for every update!". Come on... Meanwhile the negatives immediately implicate anyone with access to the executable.

You don't know this person, and I see no personally identifiable information to make me trust them. They could literally be a state actor right now! We've also seen so many large supply-chain attacks over the last decade which could easily target a tiny project like this.

I agree with the parent - not wise.

But doesn’t that apply to chromium / firefox as well (or any other big application). Web browsers are insanely huge, nobody is reading the entire code. What makes this different?
No, because Google and Mozilla pay loads of people to write and review the code that goes into their browsers and ensure it’s not malicious.
Google pays loads of people to conceive and write code that is malicious to endusers e.g. those not paying it for eyeballs.
Is Google going to hack your bank account?
So I can apply the same logic to Microsoft concerning Windows, Office, etc. and you wouldn't dispute me, right?

Incidentally, no I have no objections against closed source. I find the religious dogma behind FOSS patently stupid.

> So I can apply the same logic to Microsoft concerning Windows, Office, etc. and you wouldn't dispute me, right?

I mean, no, I would dispute you, because everything Microsoft is doing in those products isn't publicly available for the world to see.

Still probably pretty unlikely because those products are hugely popular and widely scrutinized.

To take a different argument, it’s another party that’s less well known that you have to trust. The more parties you trust, the less secure things become. Whether that additional risk is something you want to take on is a personal decision. MITM SSL traffic would make me uncomfortable.
Do you trust Google + Firefox as much as this random developer? Seems pretty different.
If you really wanted/NEEDED this, you could definitely go through all the code. It would take a bit, but it's doable with determination (lol). Also, you don't have to necessarily review all of the code every update. All you have to do is view the changes/new commits every time you want to update.

The hardest part is determining that you want to go through all of this hassle to replicate something browser extensions already do (for the most part).

If you believe you can find even just all unintentional bugs, let alone deliberate security vulnerabilities, you've never looked at the underhanded C contest [1].

> All you have to do is view the changes/new commits every time you want to update.

These can be thousands of lines of code per day in busy projects.

[1] https://en.wikipedia.org/wiki/Underhanded_C_Contest

I'm as paranoid about this as you, but this type of verification seems easier today with AI tools. I'm not aware of any that do this, but if LLMs can give insight about what a piece of code is doing, they can surely be trained to detect possible suspicious behavior. Perhaps even by inspecting a binary, but certainly by processing code.
Maybe for well-intended code (and even there I have my doubts – the halting problem says hi!), but most definitely not for malicious backdoors at this point.
I think that's a great use-case. I'd love a real-time security scanning system covering as many open source projects out there as possible.
Yes, some people will do this. I just read the whole project, it's actually a pretty simple program.

I'm installing it now and the best part is if I don't like something I can change it. OSS FTW.

How would you know if the binary was built from the code verbatim?

How would you know that for future updates?

The build steps are provided as a GitHub action in the repo. You can audit the build pretty easily, or if you're super paranoid you can build it yourself by following the build steps.
Even if the app is trustworthy, it still adds an attack vector to your system. It could have a bug, or the certificate could be exploited by another program.
Equally true of every ad
This would be a reasonable argument if there weren't many alternative ad blocking methods that don't require MITMing your TLS traffic.
How do you know that the downloaded binaries are built by the GitHub action? If I must audit the code and build it myself every release, then how is this a usable product?
Not a product. It's literally free, free as in free speech, and free as in you're free not to use it.

Building the code yourself for every update is also a solved problem on every system with a feature complete package manager, including Windows. Trust is not so easily solvable, but if you trust nobody, you can choose to look at ads.

> Not a product. It's literally free, free as in free speech, and free as in you're free not to use it.

Sorry, I change my question to "how is this a usable free?"

Where is the bar for software you trust? do you trust your OS, router firmware, VPN client, web browser, etc?
In fact, that's what I'm trying to say. The line we draw at "hey we can at least audit open source" is a fully imaginary one. It's a false comfort we create. It's the Kool-Aid we drink.

I don't have any trust in any of those components you mentioned, but I came to terms with the risks associated with using them as part of my threat model. However, I find the notion that open source is somewhat safer because "we can audit it" exaggerating if not misleading. It's not a valid argument, and it should never be used because there's no way to do it in an either practical or consistent way for the users of the said product.

> You can audit the build pretty easily,

Please define "easily"

You could just compile it. For updates you could like pull down the new code, check the diff, and rebuild.
The concern is that it's a huge waste of time for everyone to read the code, and a significant investment of time for anyone to do so, that's why not
Please don't downvote an earnest and important question which should be answered
No but it might be fun to play with in a Qubes environment or similar where you can inspect packets going in and out for anything weird happening.
Looking at packets will only get you so far if they're encrypted.

Software like this has way too many opportunities to exfiltrate information for that approach to work.

That's true, but if it is trying to exfiltrate data you will probably see more packets coming out than going in. If the concern is that the SSL cert they add allows them to decrypt your data, and you see it sending your requests anywhere it shouldn't, you'll get a window into what they are trying to do. It's not perfect, but it is possible to gain information in such a way.
But as developers, we're happy enough to suggest `wget -qO - https://github/url | sudo bash -s`
No, we're not.
Unfortunately many people do like that, but I hate it and I don't do stuff like that (and it seems many other people hate it too; fortunately you can just download the file without immediately executing it, if you want to view (and possibly modify) it).
Why not? We allow Cloudflare to do it every day.