Submitted by celebratedrecluse in Tech
This is a question that I have been thinking about recently. How do you verify as a user that a website, is really running the main fork of a project, rather than a subtly different fork which includes some secret code?
I presume there must be a way to do this.
southerntofu wrote
TLDR: you can't.
Proving that your own machine is doing computations right is already a complex problem:
Proving someone else is doing it correctly for you is entirely impossible. So that's why you can never trust some one who says:
Every connected service you use will either trust an explicit number of actors (for example, the Browser CA consortium for https) or destroy the entire planet trying to replace human trust with raw computational power ("the majority of world-wide computing power must be right", or the dictatorship of the majority alla Bitcoin). Making trust models explicit is a very important aspect of software and Internet specifications (RFCs). That's why every internet standard that i know of has a "Security" section. That's why Riseup and other militant hosting coops will take time to explain the tradeoffs of their security measures (the threat model) and how you can protect yourself some more.
There's also research on "capabilities" (for example with OCAP) to deal with some of those concerns, but i'm not really familiar with these approaches.