Why does DRM consume vast system resources even though we have TPM, Pluton, etc.

SuperSpruce@lemmy.zip to No Stupid Questions@lemmy.world – 59 points –

I've seen many instances of some software having DRM that significantly degrades the performance of the software, or worse, the performance of the entire OS due to heavy background tasks. Prime examples include Denuvo and all those Adobe background processes. Why can't they just simply use the TPM or the other 5 security chips embedded into the CPU so that they don't bloat the system?

9

You are viewing a single comment

In a nutshell, the TPM works great as a trust anchor if it's only needed once during boot-up. But anti-cheat and DRM software run concurrently with the software payload, so it's not a one-time deal but a continual process to reverify. More so, the TPM is not self-enforcing so there would have to be software which issues a challenge to the TPM, and then interprets the response. This uses CPU power, at a minimum.

The crucial challenge -- likely unsolvable in the general case -- is that anti-cheat software has to try to monopolize some portion of the machine, to prevent running other software like hacks or keygens. But this is diametrically opposed to the goal for the past 60 years of multitasking operating systems and context-switching CPUs, which try to divy out the machine so different software appear to run almost simultaneously and independently.

As a result, some anti-cheat software is truly horrible, because they have to employ very strange tricks to coerce the system to either prevent something undesirable from happening, or to act as a canary when something undesirable has happened. The definition of "undesirable" is left to the software package makers to define.

The only plausible way I could see the situation improving is if OS makers integrated anti-cheat and DRM into the scheduler (the very core of an OS) in a uniform manner. But this is: 1) really complicated, and 2) a security nightmare if malware could exploit it. And that's ignoring whether the Unix/Linux/BSD world would ever tolerate such a kernel feature.

So what even is the purpose of Pluton if it's useless for its main use case?

I will admit I had to look up what Pluton is, but I think Microsoft did a decent job of explaining it by themselves:

Microsoft Pluton is a secure crypto-processor built into the CPU for security at the core to ensure code integrity and the latest protection with updates delivered by Microsoft through Windows Update

Microsoft Pluton is designed to provide the functionality of the Trusted Platform Module (TPM) and deliver other security functionality beyond what is possible with the TPM 2.0 specification

In other words, Pluton is an enhanced TPM that's baked directly into newer CPUs, for code integrity of Microsoft's software. Here, integrity means the software was not tampered with, and will do exactly what Microsoft wanted it to do. That no guarantee that their software won't spy on you or expose your data (see Microsoft Recall controversy), though.

Now, Microsoft can extend that integrity guarantee by blessing other software makers's code. That is one of many avenues to use Pluton as DRM and/or anti-cheat, if game makers obtain the necessary blessing.

But this is still years away from fully rolling out, and it necessitates that everyone buys a CPU which has Pluton enabled. I personally wouldn't want to pay money for something that historically would have given me full control. Game consoles have always been locked down, but I draw a line at PCs. Everyone will have to decide what they're comfortable with, as we enter this brave new world.

Unfortunately pretty much everything has Pluton these days, including all non-Dell/non-Lenovo Ryzen 6000+ or Intel 13th? Gen laptops and all Copilot+ PCs. I wouldn't be surprised if Pluton was required to run Windows 12.

3 more...