如何解决如何为 ClearKey DRM 生成十六进制字符串
我想使用 clearkeys 对我的内容进行编码。我正在使用 DASH 协议。我知道如何加密和播放加密内容。我的问题是如何生成这些密钥,以便我可以启动自己的清晰密钥许可服务器。
解决方法
值得一提的是,ClearKey 并未真正被视为 DRM - 它缺乏大多数 DRM 所包含的安全密钥交换机制。用 DASH 论坛自己的话来说,ClearKey 是“在 HTTPS 交付的令牌身份验证和 DRM 之间提供一定程度的内容保护”。
如果这对您有好处,那么它很可能是您的用例的合适选择,并且确实为打击盗版提供了障碍。
密钥本身是常规的 16 字节 AES 加密密钥。
您可以创建自己的密钥生成器,但您应该了解一些最佳实践 - 参见例如:https://stackoverflow.com/a/3452620/334402 (Java) 和 https://stackoverflow.com/a/42573924/334402 (.NET - 注意评论中的讨论也重新字符串)。
还有一些网站和服务可以生成密钥(请参见下面的示例),但我认为根据您的问题,您更有可能希望将其构建到您自己的解决方案中,如上所述。
(更新 - 请参阅评论中的讨论)- EME 规范定义了浏览器如何处理加密内容,包括它们如何请求许可证密钥,包含有关返回密钥编码的以下内容:
“kty”(密钥类型) "oct"(八位字节序列)
“k”(键值) 包含对称密钥的八位字节序列的base64url编码
值 “孩子”(钥匙 ID) 包含key ID值的八位字节序列的base64url编码
这是专门针对 ClearKey 的 - DRM 系统的密钥在加密的 DRM 系统许可请求和响应消息中进行安全通信。
这里需要注意的重要一点是“base64url”编码 - 这是 base64 编码的一种变体,它是“url 友好的”并且不包括字符 + 和 /。有关 base64 变体的更多信息,请访问:
这样做的影响是,您必须对符合 EME 的解决方案(即大多数(或所有...)浏览器播放器)的 ClearKey 许可响应使用 base63url 编码。
另一个注意事项 - 一旦您拥有密钥,就可以通过清单中包含的许可服务器 URL 请求它们,对于某些 DRM,或者密钥本身可以直接嵌入到清单中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。