[personal profile] mjg59
As part of their "Defective by Design" anti-DRM campaign, the FSF recently made the following claim:
Today, most of the major streaming media platforms utilize the TPM to decrypt media streams, forcefully placing the decryption out of the user's control (from here).
This is part of an overall argument that Microsoft's insistence that only hardware with a TPM can run Windows 11 is with the goal of aiding streaming companies in their attempt to ensure media can only be played in tightly constrained environments.

I'm going to be honest here and say that I don't know what Microsoft's actual motivation for requiring a TPM in Windows 11 is. I've been talking about TPM stuff for a long time. My job involves writing a lot of TPM code. I think having a TPM enables a number of worthwhile security features. Given the choice, I'd certainly pick a computer with a TPM. But in terms of whether it's of sufficient value to lock out Windows 11 on hardware with no TPM that would otherwise be able to run it? I'm not sure that's a worthwhile tradeoff.

What I can say is that the FSF's claim is just 100% wrong, and since this seems to be the sole basis of their overall claim about Microsoft's strategy here, the argument is pretty significantly undermined. I'm not aware of any streaming media platforms making use of TPMs in any way whatsoever. There is hardware DRM that the media companies use to restrict users, but it's not in the TPM - it's in the GPU.

Let's back up for a moment. There's multiple different DRM implementations, but the big three are Widevine (owned by Google, used on Android, Chromebooks, and some other embedded devices), Fairplay (Apple implementation, used for Mac and iOS), and Playready (Microsoft's implementation, used in Windows and some other hardware streaming devices and TVs). These generally implement several levels of functionality, depending on the capabilities of the device they're running on - this will range from all the DRM functionality being implemented in software up to the hardware path that will be discussed shortly. Streaming providers can choose what level of functionality and quality to provide based on the level implemented on the client device, and it's common for 4K and HDR content to be tied to hardware DRM. In any scenario, they stream encrypted content to the client and the DRM stack decrypts it before the compressed data can be decoded and played.

The "problem" with software DRM implementations is that the decrypted material is going to exist somewhere the OS can get at it at some point, making it possible for users to simply grab the decrypted stream, somewhat defeating the entire point. Vendors try to make this difficult by obfuscating their code as much as possible (and in some cases putting some of it in-kernel), but pretty much all software DRM is at least somewhat broken and copies of any new streaming media end up being available via Bittorrent pretty quickly after release. This is why higher quality media tends to be restricted to clients that implement hardware-based DRM.

The implementation of hardware-based DRM varies. On devices in the ARM world this is usually handled by performing the cryptography in a Trusted Execution Environment, or TEE. A TEE is an area where code can be executed without the OS having any insight into it at all, with ARM's TrustZone being an example of this. By putting the DRM code in TrustZone, the cryptography can be performed in RAM that the OS has no access to, making the scraping described earlier impossible. x86 has no well-specified TEE (Intel's SGX is an example, but is no longer implemented in consumer parts), so instead this tends to be handed off to the GPU. The exact details of this implementation are somewhat opaque - of the previously mentioned DRM implementations, only Playready does hardware DRM on x86, and I haven't found any public documentation of what drivers need to expose for this to work.

In any case, as part of the DRM handshake between the client and the streaming platform, encryption keys are negotiated with the key material being stored in the GPU or the TEE, inaccessible from the OS. Once decrypted, the material is decoded (again either on the GPU or in the TEE - even in implementations that use the TEE for the cryptography, the actual media decoding may happen on the GPU) and displayed. One key point is that the decoded video material is still stored in RAM that the OS has no access to, and the GPU composites it onto the outbound video stream (which is why if you take a screenshot of a browser playing a stream using hardware-based DRM you'll just see a black window - as far as the OS can see, there is only a black window there).

Now, TPMs are sometimes referred to as a TEE, and in a way they are. However, they're fixed function - you can't run arbitrary code on the TPM, you only have whatever functionality it provides. But TPMs do have the ability to decrypt data using keys that are tied to the TPM, so isn't this sufficient? Well, no. First, the TPM can't communicate with the GPU. The OS could push encrypted material to it, and it would get plaintext material back. But the entire point of this exercise was to avoid the decrypted version of the stream from ever being visible to the OS, so this would be pointless. And rather more fundamentally, TPMs are slow. I don't think there's a TPM on the market that could decrypt a 1080p stream in realtime, let alone a 4K one.

The FSF's focus on TPMs here is not only technically wrong, it's indicative of a failure to understand what's actually happening in the industry. While the FSF has been focusing on TPMs, GPU vendors have quietly deployed all of this technology without the FSF complaining at all. Microsoft has enthusiastically participated in making hardware DRM on Windows possible, and user freedoms have suffered as a result, but Playready hardware-based DRM works just fine on hardware that doesn't have a TPM and will continue to do so.

Hardware DRM is broken too

Date: 2025-01-02 03:46 am (UTC)
From: (Anonymous)
Lest one get the impression that hardware DRM fairs any better than software: Even 4K/HDR versions of streaming media start making the rounds on pirate sites within a day or two of release.

As usual DRM fails to prevent piracy while hurting the experience of paying customers.

Date: 2025-01-02 06:07 am (UTC)
From: (Anonymous)
A GPU could use a TPM to "activate" the "credential" to extract a symmetric session key and then do all the bulk decryption in the GPU. This does not invalidate your argument that the FSF is focusing on the wrong target though because the GPU vendors could just implement the TPM-like protocols in the GPU anyways.

https://news.ycombinator.com/item?id=42572090

TPM definitions

Date: 2025-01-02 12:01 pm (UTC)
From: (Anonymous)
"Playready hardware-based DRM works just fine on hardware that doesn't have a TPM"

Any example?

It would help to clarify what definition of "TPM" is being used. For example, from an EU copyright law perspective, the TEE or GPU funcionality described here is definitely a technological protection measure/technical measure.

Date: 2025-01-02 12:07 pm (UTC)
simont: A picture of me in 2016 (Default)
From: [personal profile] simont
This is surely the world's stupidest question on the subject, but: Windows 11 won't run on hardware without a TPM, but on the other hand, it runs just fine in free virtualisation systems. I've run Win11 VMs myself on stock Ubuntu Virtualbox. (On a host machine that as far as I know doesn't have a TPM.)

Surely Virtualbox can't provide anything that is "trusted" (by anyone at all) in the way that a TPM is supposed to be? Is there a special exception made for VMs on the grounds that it would be just too awkward if there weren't? Or is there some genuinely relevant property shared by TPM-equipped hardware and virtual machines, and not possessed by TPMless hardware?

Microsoft's motivation

Date: 2025-01-02 03:22 pm (UTC)
From: (Anonymous)
Microsofts motivation for TPMs in Windows is probably:
- Windows Hello (aka FIDO2, WebAuthn, Passkey)
- Bitlocker
- AD and cloud device management (Intune)

All of these require secure storage of secret keys. Many features in Windows and Active Directory environments require that the machine can authenticate itself to the domain controller etc. Companies also like to use it for VPN keys.

Android and iOS also make much more use of hardware key storage for all kinds of things than desktop operating systems.

Date: 2025-01-02 07:58 pm (UTC)
From: (Anonymous)
A big problem is that the FSF is living in the 2000s when the TPM was the biggest worry, from Microsoft's ill-fated NGSCB.

While DRM sucks, streaming companies have a reason to use it: you don't own the content and they don't want people to slipstream content. And yes, I know pirate sites slipstream anyways.

The FSF needs to move on to newer problems, like Google Play Integrity API and modding. Or the fact that iPhones/Huawei/Verizon devices don't allow third-party OSes. Or how about preventing addictive ad-ridden feeds, that would be big.

Distracting from FSF's point

Date: 2025-01-02 11:34 pm (UTC)
From: (Anonymous)
Does it really matter how correct the details of the FSF's argument is? Since you seem to understand the reason for their opposition to TPM, etc. What difference does the GPU stuff make? The article bash really only serves to undermine the FSF, which seems to be your intention (hm?). i.e. The lockout of the hardware is the only issue that matters (and it really deserves a lot of attention), not trivia about how it was introduced.

Date: 2025-01-03 04:55 pm (UTC)
From: (Anonymous)
First, DRM is not just for video services.

Second, TPM 1 with SPI/LPC header on the motherboard is not DRM. DRM. It is simply a means of providing privacy in the presence of persistent malware. It doesn't protect against physical access: if a user needs to compromise his system he can always plug in a cheap microcontroller board.

Thirdly, any TEE, including those based on TPM 2.0, which is right in the processor and with remote attestation is primarily for DRM.

Fourth, protected media path is not the whole DRM, but only one of its components.

Date: 2025-01-03 10:55 pm (UTC)
From: (Anonymous)
IMO Microsoft wants a TPM to do their own version of Google Play Integrity to force users to use OEM-provided software and block any app if it runs if the Windows installation was tampered in any way so OEMs can shove malware and bloatware down people's throats, people can't install Linux on their PCs, users are forced to upgrade their OS when Microsoft says so, etc.

Date: 2025-01-08 05:59 pm (UTC)
From: (Anonymous)
Perfect article, sadly FSF are in year 2010 and will be necessary
a renovation of activism projects

Dual-use technologies

Date: 2025-01-10 01:10 pm (UTC)
From: (Anonymous)
A problem I see with the FSF's approach is that the people they need to influence (legislators, CEOs etc) are already deeply comfortable with the idea of dual-use technologies - that is, technology that can be used both for a good purpose, and for an evil purpose - and the FSF's argument is essentially "this tech has evil uses and is in the hands of someone we don't trust, therefore it's bad".

And stripped of emotion, the FSF's argument is essentially "this technology is dual-use, and the people you are choosing to trust with it are people we think are untrustworthy". But the technology is being used to solve problems you already have (TPMs used to back unphishable credentials, for ensuring that log-ins only come from your company's approved devices, and not from a hacker's device), and the problems that the FSF talks about are mostly hypothetical for now, as long as your suppliers that you trust don't turn on you.

For the FSF to convince people, it first needs to get its facts consistently right, so that it's not easy to discredit (which it's failed to do here), and secondly needs to actually try to convince people who currently trust Microsoft, Apple, Google et al but have no position on the FSF yet.

The biggest problem with DRM software

Date: 2025-01-18 05:23 pm (UTC)
From: (Anonymous)
The biggest problem with DRM software such as Widevine, Fairplay and others, is the limited number of devices it is available to, Google and Apple have ultimate control of Widevine, and Fairplay respectively. This means that they have the right to limit it to certain devices (hardware and software combinations.)

GNU/Linux for X86 and ARM devices such as a Laptop and the Raspberry Pi respectively do have support for the Widevine library.

Often you can get it in the "Non-Free" software repository of a Linux distro such as Debian or Ubuntu. But often times it's not a version compatible with the best version of your OS.


There was no WidevineCDM library for 64 bit ARM, so users with a 64 bit raspberry pi had to use the 32 bit version of Debian for streaming.

And these versions in the repository are I believe just for Chrome. Which brings me to the next example of the same problem.

The Widevine library has to be the correct one for a specific browser. If it is made for firefox it has to use GeckoMediaPlugins. WidevineCDM for Chrome uses something different and closed source. So you have to use the correct version of the library for your browser and your OS, and there is no guarentee that it will be available for either. There could have a version for Firefox that only supports X64 Linux or if there is another for ARM it could be a version which only supports 32 bit ARM Linux. Other independently developed browsers could be left out in the cold.



And it has been reported the version in the Linux repositories can have quality problems with streaming, not allowing 4K either. Even on Windows, people have noticed a quality difference when using a browser, compared to a smart TV or streaming device. Content from sailing websites look better apparently.

People are spending 100s or even thousands on Smart TVs, which will probably be obsolete in a few years, just so they can get a good quality stream. And when they're obsolete, the streaming apps will cease to function no doubt, due to software updates being discontinued. Hope the landfills are big enough. Maybe they can make a section next the mountain of old FireTV sticks.

Date: 2025-01-24 01:59 pm (UTC)
From: (Anonymous)
I find FSFs continued bashing of TPMs upsetting. I wish there was a bigger push towards TPM in the Linux and open source communities.

Stuff like D-RTM can replace device lockdown like Intel Boot Guard and AMD PSB, thus allow users the freedom to replace their firmware with an open source alternative. Maybe then we'd see more devices running coreboot.

Intel me is tee and supports DRM

Date: 2025-02-05 08:01 pm (UTC)
From: (Anonymous)
ME firmwares are intel signed arbitrary code. It implements HDCP in intel integrated gpu and is part of protected media part. There are lots of criticism of ME (and I personally think anything except bootguard isn't useful in end user devices) and DRM is a horrible one.

Like anything else streaming services relies on market size. They'll use abusive measures like DRM only when most of consumer base can run it. I don't think most x86 users have discrete gpu and things like ME and trusty widevine app are making hardware DRM viable.

(idk if amd PSP works the same).

OTOH some people are seeing the silverlining that users will switch to linux due to tpm requirement in windows and soon cancel netflix when highest it gives is 720p. IMO the opposite will happen, those who even bother will see netflix doesn't work and switch back to windows and apply the script kiddy level tpm bypass.

We often forget in these discussions that people don't know and care if they're being treated as potential thieves, or that hardware DRM on 'premium quality' content is saving streaming business. At least 1080p is available in pirate sites for almost all contents and even for many pirated contents have higher quality than low bit rate streams. If everyone watching at 1080p cancels subscription tomorrow the charges for others will rise sky high to keep the parasites aka shareholders happy. Similarly music DRM never works but see at spotify.

People. don't. care.

(anon cause openid creds nog synced to this phone).

Profile

Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Aurora. Ex-biologist. [personal profile] mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer. Also on Mastodon.

Page Summary

Expand Cut Tags

No cut tags