It's always strange to think that there is encrypted data flowing through my software, through my operating system, into my hardware, that somehow I, the user, I am unable to access, but that the hardware can handle just fine.
With Widevine L3, it does send your OS unencrypted data. You're free to screen record videos or audio record e.g. PulseAudio Monitor channels of your speakers. You just can't easily convert it to a DRM-free format at speeds faster than realtime.
HDCP is one method, as are the “safeguards” built in to the audio and video APIs on macOS (to protect them from losing revenue by recording iTunes Music (before they removed DRM) or screen capturing new movies (thus threatening the contracts with Hollywood).
Right. This is not just Mac OS, same thing can happen on Windows. Modern media DRMing sometimes involves bypassing your OS entirely[0]. Audio/video streams have special hardware paths through the CPU and GPU. HDCP uses encryption to create a safe pipe between the incoming stream and your monitor, so the data can't be snooped on or modified mid-flight. Etc.
--
[0] - Or at least almost entirely, I suspect at least the kernel must get involved somehow. Otherwise Widevine support wouldn't be an issue on Linux the way it is (or was).
One way is x86. Intel’s chips have SGX (software guard extensions) that allows code to run in “enclaves” that outside code can’t access. You can send data into the enclave and read what it spits out, but you can’t inspect (debug) it.
How does this work?