微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为 ClearKey DRM 生成十六进制字符串

如何解决如何为 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?