In primo luogo, penso che gli scettici rispondano praticamente a coprirlo: il DRM infastidisce le persone. Alcuni di noi evitano attivamente di acquistare qualcosa con esso.
In termini di software, questo è praticamente impossibile. Uno schema DRM potrebbe essere quello di utilizzare la crittografia a chiave pubblica con contenuto crittografato con chiavi simmetriche (le prestazioni dei codici simmetrici sono di gran lunga superiori alla maggior parte dei pk). Si cripta la chiave del contenuto con la chiave privata e il software può quindi decodificare quella chiave con la chiave pubblica e decrittografare il contenuto.
Funziona, tranne che sto solo andando a far passare il programma tramite un debugger o a smontare il codice finché non trovo la chiave, decrittografare il contenuto e il gioco. Crypto serve per la trasmissione su reti non sicure, non per decrittografare in sicurezza e in isolamento su sistemi ostili.
Quindi, potresti inviare molte chiavi diverse su Internet per parti diverse del contenuto. Bene, è probabile che i tuoi clienti paganti abbiano problemi con questo, ma, posso semplicemente automatizzare il processo di debug o collegare i tuoi eventi di ricezione o qualsiasi altra cosa. Ad ogni modo, posso prendere quelle chiavi. Non è facile, ma può essere fatto.
Quindi il prossimo passo è di impedire che io usi il mio debugger o aggancio le chiamate di sistema in qualche modo, che è dove inizi a scrivere i rootkit. Come accade, posso portare il disco offline e esaminare / disattivare il rootkit, o modificarlo in modo che il tuo software creda che sia sicuro. In effetti, questo mi renderà più facile identificare ciò che stai proteggendo.
C'è un altro caso, uno in cui il sistema operativo è complicato e fornisce una qualche forma di contenitore sicuro. Se è possibile caricare il codice nell'anello 0, questa sicurezza diventa irrilevante. In caso contrario, se posso clonare il tuo microkernel core e modificarlo per consentirmi di caricare il codice nell'anello 0, questa sicurezza diventa di nuovo irrilevante.
A questo punto devi iniziare a usare i controlli hardware. In parole povere, dato che posso modificare il sistema operativo in qualsiasi modo mi piaccia, probabilmente avete bisogno di DRM implementato sull'hardware che non ho alcuna possibilità di modificare o leggere. Avresti bisogno che la tua crittografia avvenga su hardware in modo tale che sia impossibile leggere i dati decrittografati dal sistema operativo. Avresti bisogno della chiave pubblica che ho menzionato sopra per risiedere su quell'hardware, non sul sistema operativo.
A questo punto, probabilmente mi hai sconfitto personalmente, ma sono sicuro che ci sono persone in grado di modificare i loro cavi HDMI (o qualsiasi altra cosa) per dividere i dati sul display e su un altro dispositivo come lo storage.
Inoltre, il modo in cui memorizzi le chiavi in modo sicuro sul tuo dispositivo sarà un problema. Avresti bisogno di crittografarli! Altrimenti, collegherò il tuo dispositivo di archiviazione a un sistema offline. E conserva le chiavi ... aspetta ... vedi il modello?
Una volta ottenuto l'accesso fisico, il gioco è scaduto.
Non penso che il DRM sia tecnicamente possibile. Qualunque sia il metodo da utilizzare, ci sarà sempre qualcuno con le competenze sufficienti per annullarlo, poiché a un certo livello il contenuto protetto deve essere decodificato per la visualizzazione. Se hanno la motivazione è un'altra questione.
Da un punto di vista dell'ingegneria del software, farlo correttamente, senza disturbare gli utenti, consentendo loro di spostare facilmente i loro contenuti su dispositivi autorizzati, supportando nuovi dispositivi ... tutti gli incubi. Chi comprerà i tuoi contenuti, quando non hai il supporto per Windows 8 pronto per il lancio? I tuoi contenuti funzionano anche sul mio Windows XP? Cosa intendi per non supportarlo ?! Se si utilizza l'hardware, si verifica un problema di distribuzione.
Infine, il DRM è solo profondamente impopolare.