En primer lugar, creo que los escépticos responden bastante bien: el DRM molesta a la gente. Algunos de nosotros evitamos activamente comprar cualquier cosa con él.
En términos de software, esto es prácticamente imposible. Un esquema de DRM podría ser utilizar el cifrado de clave pública con contenido cifrado con claves simétricas (el rendimiento de los cifrados simétricos es muy superior al de la mayoría de los pk). Cifras la clave de contenido con la clave privada y el software puede descifrar esa clave con la clave pública y descifrar el contenido.
Lo que funciona, excepto que solo voy a pasar tu programa a través de un depurador o desensamblar tu código hasta que encuentre tu clave, descifre tu contenido y el juego esté listo. Crypto es para la transmisión a través de redes inseguras, no para descifrar de forma segura y aislada en sistemas hostiles.
Por lo tanto, puede enviar muchas claves diferentes a través de Internet para diferentes partes del contenido. Bueno, es probable que sus clientes que pagan tengan problemas con esto, pero yo solo puedo automatizar el proceso de depuración, o conectar sus eventos de recepción, o lo que sea. De cualquier manera, puedo agarrar esas llaves. No es fácil, pero se puede hacer.
Entonces, la siguiente etapa es evitar que use mi depurador o conecte las llamadas de tu sistema de alguna manera, que es donde empiezas a escribir rootkits. A medida que sucede, puedo desconectar el disco y examinar / deshabilitar su rootkit, o modificarlo para que su software crea que es seguro. De hecho, esto me facilitará la identificación de lo que está protegiendo.
Hay otro caso, uno en el que el sistema operativo es cómplice y proporciona algún tipo de contenedor seguro. Si me es posible cargar código en el anillo 0, esta seguridad se vuelve irrelevante. Si no, si puedo clonar el núcleo de su microkernel y modificarlo para que pueda cargar código en el anillo 0, esta seguridad vuelve a ser irrelevante.
En este punto, debe comenzar a utilizar los controles de hardware. En pocas palabras, ya que puedo modificar el sistema operativo de la forma que quiera, probablemente necesite un DRM implementado en el hardware que no tengo oportunidad de modificar o leer. Necesitaría que su criptografía ocurriera en el hardware de modo que sea imposible leer los datos descifrados del sistema operativo. Necesitaría la clave pública que mencioné anteriormente para residir en ese hardware, no en el sistema operativo.
En este punto, es probable que me hayas derrotado personalmente, pero estoy seguro de que hay personas capaces de modificar sus cables HDMI (o lo que sea) para dividir los datos en la pantalla y en otro dispositivo como el almacenamiento.
Además, la forma en que almacene sus claves de forma segura en su dispositivo será un problema. ¡Tendrías que cifrarlos! De lo contrario, solo conectaré su dispositivo de almacenamiento a un sistema fuera de línea. Y guardar las llaves ... esperar ... ver el patrón?
Una vez que tengas acceso físico, el juego está listo.
No creo que el DRM sea técnicamente posible. Independientemente de los métodos que emplee, siempre habrá alguien con la habilidad suficiente para deshacerlo, ya que en algún nivel el contenido protegido debe ser descifrado para su visualización. Si tienen la motivación para hacerlo es otro asunto.
Desde una perspectiva de ingeniería de software, haga lo correcto, sin interrumpir a sus usuarios, permitiéndoles mover fácilmente su contenido a dispositivos autorizados, admitir nuevos dispositivos ... todas las pesadillas. ¿Quién va a comprar su contenido cuando no tiene el soporte de Windows 8 listo para el lanzamiento? ¿Tu contenido funciona en mi caja de Windows XP también? ¿Qué quieres decir con que no lo apoyas? Si utiliza hardware, tiene un problema de implementación.
Finalmente, el DRM es profundamente impopular.