Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

TC is value neutral so the FSF slurs don't make sense. Consider what happens when the machine in question is a cloud VM. Then you can run workloads on a rented machine without the risk of the cloud vendor spying on or tampering with your server. Likewise if the machine gets hacked. These are highly desirable properties for many people. For example Signal uses TC so the mobile apps can verify the servers before doing contact list intersection, keeping the contacts private from the Signal operators.

Another use case is multiparty computation. Three people wish to compare some values without a risk that anyone will see the combined data. TC can do this with tractable compute overhead, unlike purely cryptographic techniques.

Observe what this means for P2P applications. A major difficulty in building them is that peers can't trust each other, so you have to rely on complex and unintuitive algorithms (e.g. block chains) or duplication of work (e.g. SETI@Home) or benign dictators (e.g. Tor) to try and stop cheating. With TC peers can attest to each other and form a network with known behavior, meaning devs can add features rather than spend all their time designing around complicated attacks.

These uses require you have a computer that you do trust which can audit the remote server before uploading data to it. But you can compile and/or run that program on your laptop or smartphone, the verification process is easy.

But exactly because TC is general it doesn't distinguish based on who owns the machine. It doesn't see your PC as morally superior to a remote server, they're all just computers. So yes, in theory a remote server could demand you run something locally and then do a HW remote attestation for it. In practice though this never happens anymore outside of games consoles (as far as I'm aware), because most consumer devices don't have the right hardware for it, and even if they did you can't do much hardware interaction inside attested code.



Why should anyone trust a remote server providing a signed statement of authenticity when Intel[1], MSI[2], Lenovo[3], NVIDIA[4], Microsoft and others keep losing their keys? Even if they haven't lost their keys recently, technology companies don't have a great track record of producing foolproof hardware designs (e.g. recent case of [5]), if foolproof was ever a reasonable expectation. For starters, it's assuming technology such as ptychographic X-ray computed tomography and focused ion beam machining won't become more commonplace and commercially viable to readily break TPM attestation schemes. Or that with wider use of TPM attestation, more effort will be expended into breaking it whereas for the current state with minimal adoption, few people care.

The issue client-side is that if a single vendor or TPM design is compromised, threat actors have ample motive, resources and ability to exploit this compromised hardware, whilst everyone else has few choices, such as dumping at great expensve some more e-waste. And critically, you as a user are blocked by your acceptance of TPM attestation technology from discovering attacks and auditing your own system security, as you ceded control of your own systems. Instead, your systems are controlled by a few technology companies that have a proven terrible track record of fulfilling their alleged intent of keeping your systems and data secure. And why should they care if it doesn't lead to a higher profit at the end of the year?

[1] https://github.com/binarly-io/SupplyChainAttacks/blob/main/M...

[2] https://github.com/binarly-io/SupplyChainAttacks/blob/main/M...

[3] https://github.com/binarly-io/SupplyChainAttacks/blob/main/L...

[4] https://news.ycombinator.com/item?id=30565985

[5] https://arxiv.org/abs/2304.14717


> TC is value neutral so the FSF slurs don't make sense

Trusted computing is often used such that one might think, it implies the user can trust something (his computer). But it is the other way around. A service provider can trust a machine - that a user bought -- to not do what the user wants. That is misleading at best.


There are really only two ways TC is used in practice in today's economy:

1. Clients verifying cloud VMs. The "user" in this case is not the same person as "his" in "his computer".

2. Games consoles being verified by PS/Xbox online services. In this case the users are in effect verifying each other, because part of why they need such tough security is to stop online gaming being wrecked by cheaters.

At a stretch you could talk about credit card chips and the ATM network as (3) but that's far enough away from general computing that it doesn't really count.

In both cases these are firmly pro-consumer use cases. Unless you want to pirate or cheat in gaming of course, but there's plenty of users who don't want to subsidize your fun with their own suffering, so they're happy to rely on TC to stop that. It's a big part of why console gaming dominates PC gaming. It's wrong for the FSF to imply all those people are brainwashed dupes because they have a different value system to Richard Stallman.


> There are really only two ways TC is used in practice in today's economy:

Isn't that exactly the case, because the idea of using TC in every PC produced a huge backlash?


No, 'fraid not. There was no backlash except amongst a tiny subset of ideologically motivated developers who aren't making the decisions in these companies anyway. See how the big cloud providers all have TC efforts without fuss. Smartphones implement a much less open form of TC too again, devs don't care or welcome it (less piracy), users don't care or welcome it (see how HN threads fill up with praise for Apple's walled garden when it gets discussed). Linux supports all this tech just fine as well.

The reasons it hasn't taken off in desktop PCs are rather complicated and mostly due to patchy hardware support for the use cases that most matter there. It's much harder to implement in a diverse hardware ecosystem because for devs to rely on a new hardware feature that isn't just performance requires a very wide installed base. Intel and AMD never agreed on the right way to do it, and getting device vendors on board was too difficult outside vertically integrated ecosystems like consoles.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: