Remix.run Logo
falcor84 3 hours ago

Why? Can't DRM be implemented in open source, and only have private keys kept secret?

elsjaako 2 hours ago | parent [-]

If we have DRM with some private key, then I guess your idea is I download the game files and some private key and that allows me to run the game.

If I can send you the private key and the game and it allows you to run the game with no further inputs, then the DRM is trivially broken (even without open source).

If it does some online check, then if the source is open we can easily make a version that bypasses the online check.

If there is some check on the local PC (e.g. the key only works if some hardware ID is set correctly), we can easily find out what it checks, capture that information, package it, and make a new version of the launcher that uses this packaged data instead of the real machine data.

If you use a private key to go online and retrieve more data, having it be open source makes it trivial to capture that data, package it, and write a new version of the launcher that uses that packaged data.

Basically, DRM requires that there is something that is not easy to copy, and it being open source makes it a lot easier to copy.

Borealid 2 hours ago | parent [-]

How would you define it if:

- the DRM/delivery software is open source

- the game payload is sent to you encrypted using the public key of a secure enclave on your computer

- while the game runs all its memory is symmetrically encrypted (by your own CPU) using a key private to that secure enclave. It is only decrypted in the CPU's cache lines, which are flushed when the core runs anything other than the game (even OS code)

- the secure enclave refuses to switch to the context in which the CPU is allowed to use the decryption key unless a convolution-only (not overwriteable with arbitrary values) register inside itself had the correct value

- the convolution-only register is written with the "wrong" value, by your own computer's firmware, if you use a bootloader that is not trusted by the DRM system to disallow faking the register (ie, you need secure boot and a trusted OS)

That doesn't seem to fit in any of your models. There's no online check, you can't send someone else the key because it's held in hostile-to-you hardware, you can't bypass the local-PC check because it's entirely opaque to you (even the contents of RAM are encrypted). You can crack into a CPU itself I guess?

I don't think the mechanism of the DRM being open source helps with the copying AT ALL in this design.

This design is, by the way, quite realistic: most modern CPUs support MK-TME (encrypted RAM mediated by a TPM) and all Windows 11 PCs have a TPM. Companies just haven't gotten there yet.

fragmede an hour ago | parent [-]

Thank goodness!