微软DRM数字版权保护开发入门
本文是对微软DRM 7.0 SDK官方帮助文档的直接翻译,因为时间仓促,难免错漏,仅希望能给大家的开发节约一点时间。
你可以使用微软的Windows媒体版权管理7.0 程序开发包编程管理加密内容和版权许可。下图说明了整个过程的步骤。
上图显示了在内容打包程序、版权许可分发程序、Windows媒体许可服务和请求一个特定的未经授权的Windows媒体文件的用户之间的交互。下面所列的项目与图示中的步骤号一一对应:
- 内容打包程序用一个许可**种子和一个**标识生成一个**。许可**种子是在内容打包程序和许可证书分发程序之间共享的秘密,它是一个不少于5字节长的随机值。**标识是一个全局唯一标识符。
- 内容打包程序使用**加密内容,并把**标识和用于版权许可分发的互联网地址置入内容头。然后内容打包程序把内容头和加密内容一起打包到一个Windows媒体文件中。
- 内容打包程序把Windows媒体文件传递给用户。
- 用户的播放器请求Windows媒体版权管理服务器确定其所请求的Windows媒体文件是否可以播放。
- Windows媒体版权管理服务器搜索版权库以获得播放内容的合法版权许可。
- 如果Windows媒体版权管理服务器搜索所需的版权许可失败,它会从版权许可分发程序申请一个版权许可。质询(challenge)用于请求内容头中包含的版权许可及与用户电脑相关的信息。
- 版权许可分发程序使用共享版权许可**和**标识生成与第1步中由内容打包程序生成的相同的**。然后版权许可分发程序加密该**。
- 版权许可分发程序生成了一个版权许可,并将加密的内容**添加到版权许可中,再添加一个从Windows媒体版权许可服务中获得的证书,然后使用证书中的公有**对版权许可进行签名。
- 版权许可分发程序将签名后的版权许可传送到客户电脑的Windows媒体版权管理器上。
- Windows媒体版权管理器验证该签名,并将该许可放在许可库中。
- Windows媒体版权管理器进行解密,并将所请求的多媒体内容包发送到播放器。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />下面的图显示了你打包Windows媒体文件必须要用到的对象。要想把内容打包成能够响应用户的请求,必须创建一个包含版本7的头、版本1的头和加密内容的Windows媒体文件。
当一位客户发送了一个播放内容的请求,你必须创建一个包含以下项目的文件头。黙认是使用数据库存储这些项目。
项目
|
描述
|
获取许可的网络链接
|
网站用来发放许可的链接
|
个别版本号
|
这是一个可选参数,代表在客户电脑上播放内容需要个别客户端版本。
|
内容标识
|
可选字符串,用于唯一标识内容。强烈推荐包含内容标识。
|
**标识
|
内容打包程序和许可发放程序均要用来生成**的字符串。
|
属性
|
可选的一组命名值,可以用于标识内容所有者,作者的名字,内容的类型等等。强烈推荐使用属性。
|
下列项目不包含在头中。
项目
|
描述
|
**
|
用来加密内容的值。
|
许可**种子
|
在内容打包程序和许可分发程序间共享的秘密。种子和**标识是用来生成**的。
|
私有签名**
|
私有签名**被内容打包程序用来签名头。
|
公有签名**
|
公有**是内容打包程序生成并交给许可分发程序用于验证头。
|
可以使用WMRMKeys对象创建**、**标识、许可**种子、内容标识、私有签名**和公有签名**。必须用WMRMHeader对象取得所需项,并创建和签名一个内容头。签名是必需的。
必须用WMRMProtect对象加密原始内容并打包,连同版本1和版本7的头置入Windows媒体文件中。
下图显示了需要用来创建和分发许可的对象。
要获得许可,客户电脑的播放器发送一个质询指令到许可发放程序。一个质询由版本7内容头、用户电脑相关信息、请求行为列表还有一个可选的版本1质询构成。必须使用WMRMChallenge对象取得这些项。
在当前的Windows媒体版权管理版本中,在质询请求的行为列表中仅包含播放加密内容的权限。内容打包程序可以通过WMRMRights对象指定附加的版权。如果内容打包程序和版权许可分发程序不属于同一个人或同一组织,许可发放程序必须告诉内容打包程序随证书发放什么样的权限。
要创建许可,许可发放程序需要向Windows媒体许可服务器请求一个证书。证书中包含一个许可发放程序必须用来签名许可的公有**。
在取得了质询及指定了权限以后,必须使用WMRMLicGen对象创建并签名一个许可。许可包含了用于加密内容的**、特定的权限、客户端电脑的信息、可选属性、可选优先号以及许可发放程序的证书。
必须使用WMRMResponse对象为发送到客户端Windows媒体版权管理器的许可创建响应字符串。
Windows媒体版权管理SDK支持脚本语言。它支持如下对象。
对象
|
描述
|
WMRMChallenge对象
|
处理许可请求。
|
IWMRMCoding接口
|
转换文本和二进制字符串。
|
WMRMHeader对象
|
管理内容头。
|
WMRMKeys对象
|
管理加***和许可**种子。
|
WMRMLicGen对象
|
创建许可。
|
WMRMProtect对象
|
加密文件。
|
WMRMResponse
|
将许可递交给客户端。
|
WMRMRights对象
|
指定加密内容的使用权限。
|
LicenseGenerator对象
|
创建版本1许可。
|
RMGetLicense对象
|
允许客户端获得许可。
|
更详细的资料包括编程指南以及带有详细说明的实例代码会陆续在此发表。
顺便说一句,千龙网[url]http://www.qianlong.com[/url]正在努力开发新一带的宽带平台,完全Flash MX表现页面,XML数据中间层,JSP管理系统,请大家密切关注。
©著作权归作者所有:来自51CTO博客作者王喆的原创作品,如需转载,请注明出处,否则将追究法律责任
0
收藏
推荐专栏更多
猜你喜欢
我的友情链接
城市门户:政府网站终极目标
Windows 10 "升"与"不升"之我见
Windows server 2016 搭建RDS服务
kubernetes 存储卷与数据持久化
Windows 设置 VMware workstation 虚拟机开机启动
漫谈 Windows Server 管理工具
如何在Windows中批量创建VMware的虚拟机
解决asp.net负载均衡时Session共享的问题
中小企业2018-2020年信息化环境运维及安全建议
Windows10搭建标准的WAMP开发环境-httpd2.4+php7.2+mariadb10.3
HP Elitedesk&ProDesk更新win10十月更新蓝屏 WDF VIOLATION
从2008到2019
Windows Server 2019 存储迁移服务
PowerShell 如何让普通用户以管理员权限执行程序
反思一次Exchange服务器运维故障
一套老旧ASP+Access的复活记
通过Powershell调研EWS API删除特定主题邮件操作手册
升级SCCM 2012R2 SP1故障解决
AD域下DNS外迁
扫一扫,领取大礼包
转载于:https://blog.51cto.com/wangzhe/11041
Ctrl+Enter 发布
发布
取消