数字版权管理(DRM)是如何保证安全的?

DRM 是给源文件加密,通过密钥解密播放。

那么在客户端就会有文件+密钥,既然客户端能解密,那么所有人都能解密,不就不安全了吗?所以他是如何保证安全的。

是不是可以通过转录,比如说 Web mediaSource 之类的东西直接把解密后的就存了?

阅读 1.9k
2 个回答

最早的那种纯应用层实现的 DRM 放到今天确实约等于裸奔了,所以现在的玩法儿是成立联盟、制定标准、然后和基础设施厂商(比如浏览器、操作系统、甚至机顶盒这类硬件厂商)联合。

比如微软的 PlayReady 那套方案,就是有不同安全级别的规格,其中最高级别的就属于软硬件一体化的,解密靠硬件。

而浏览器里的一般是靠内置的 CDM(Content Decryption Module,内容解密模块),这部分都是闭源的,并且涉及到网络通信的部分基本要么是私有协议、要么是双向 SSL。网页跟 CDM 之间通信靠 EME(Encrypted Media Extensions,加密媒体扩展),媒体内容本身对于 JS 层是不暴露的。并且它们都还会不断升级更新。

但无论如何,这些技术手段都只能是增大破解难度,不可能完全防止破解的,毕竟终端怎么着都是在用户手里。这些玩意儿能不能有人可以完美破解掉?我相信肯定是能的,但成本肯定相当之高,而搞破解的除非是单纯为了炫技,否则得不偿失 —— 毕竟对音视频来说直接 HDMI 转录就好了、哪怕是专用硬件那也阻挡不了最古老的“摄屏”这招啊。反正都可以很 easy 地这么干了,谁还会去费力琢磨怎么从软件层面上破解 DRM 了呢?

虽说现在的 DRM 一般都还有数字水印技术,它防不了转录本身,只是可以在外泄后定位到设备甚至用户。但这同样只能威慑住“良民”,而专门搞这玩意儿的那都是光脚的不怕穿鞋的,就算定位了又能怎样呢?

DRM系统用的是强加密算法来加密数字内容。就算内容被下载到客户端,也没那么简单解密。加密算法一般是非对称的,里面有公钥和私钥,只有DRM服务器有私钥,客户端只有公钥,这样就防止了直接解密。还有就是许可证,用许可证来控制访问和用数字内容,许可证一般和用户身份关联,包有效期、设备限制和访问权限,只有合法的用户,有效期内,才能有许可证,DRM客户端一般把许可证和解密密钥存储在安全的存储区域里,硬件安全模块(HSM)或受信任的执行环境(TEE),这些存储区里面一般有硬件级别的安全,不容易被攻击,传输的时候,用SSL/TLS安全协议进行加密传输,以防内容在传输过程里被拦截或者窃取。还有播放限制,限制多个设备上的同时播放、禁止录制或禁止内容截屏,DRM系统会定期更新许可证和密钥,DRM客户端软件可能会用代码混淆和反调试技术,还有数字水印,技术层面肯定不能说天衣无缝,但是层层的技术手段,可以大范围的让普通用户去正规渠道付费

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题