本文是对微软DRM 7.0 SDK官方帮助文档的直接翻译,因为时间仓促,难免错漏,仅希望能给大家的开发节约一点时间。
你可以使用微软的 Windows 媒体版权管理 7.0 程序开发包编程管理加密内容和版权许可。下图说明了整个过程的步骤。
上图显示了在内容打包程序、版权许可分发程序、Windows媒体许可服务和请求一个特定的未经授权的Windows媒体文件的用户之间的交互。下面所列的项目与图示中的步骤号一一对应:
  1. 内容打包程序用一个许可密钥种子和一个密钥标识生成一个密钥。许可密钥种子是在内容打包程序和许可证书分发程序之间共享的秘密,它是一个不少于5字节长的随机值。密钥标识是一个全局唯一标识符。
  2. 内容打包程序使用密钥加密内容,并把密钥标识和用于版权许可分发的互联网地址置入内容头。然后内容打包程序把内容头和加密内容一起打包到一个Windows媒体文件中。
  3. 内容打包程序把Windows媒体文件传递给用户。
  4. 用户的播放器请求Windows媒体版权管理服务器确定其所请求的Windows媒体文件是否可以播放。
  5. Windows媒体版权管理服务器搜索版权库以获得播放内容的合法版权许可。
  6. 如果Windows媒体版权管理服务器搜索所需的版权许可失败,它会从版权许可分发程序申请一个版权许可。质询(challenge)用于请求内容头中包含的版权许可及与用户电脑相关的信息。
  7. 版权许可分发程序使用共享版权许可密钥和密钥标识生成与第1步中由内容打包程序生成的相同的密钥。然后版权许可分发程序加密该密钥。
  8. 版权许可分发程序生成了一个版权许可,并将加密的内容密钥添加到版权许可中,再添加一个从Windows媒体版权许可服务中获得的证书,然后使用证书中的公有密钥对版权许可进行签名。
  9. 版权许可分发程序将签名后的版权许可传送到客户电脑的Windows媒体版权管理器上。
  10. Windows媒体版权管理器验证该签名,并将该许可放在许可库中。
  11. Windows媒体版权管理器进行解密,并将所请求的多媒体内容包发送到播放器。
下面的图显示了你打包 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管理系统,请大家密切关注。
 
DRM

0

收藏

上一篇:城市门户:政府网站终极目标 下一篇:“博客”——从入门到精通
noavatar_middle.gif
王喆

9篇文章,1W+人气,0粉丝

noavatar_middle.gif

Ctrl+Enter 发布

发布

取消

推荐专栏更多

网工2.0晋级攻略 ——零基础入门Python/Ansible

网络工程师2.0进阶指南

共30章 | 姜汁啤酒

¥51.00 1557人订阅
订   阅
全局视角看大型园区网

路由交换+安全+无线+优化+运维

共40章 | 51CTO夏杰

¥51.00 1625人订阅
订   阅
基于Python的DevOps实战

自动化运维开发新概念

共20章 | 抚琴煮酒

¥51.00 428人订阅
订   阅
负载均衡高手炼成记

高并发架构之路

共15章 | sery

¥51.00 506人订阅
订   阅
带你玩转高可用

前百度高级工程师的架构高可用实战

共15章 | 曹林华

¥51.00 461人订阅
订   阅

猜你喜欢

我的友情链接 城市门户:政府网站终极目标 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外迁
left-qr.jpg

扫一扫,领取大礼包

0

分享
王喆
noavatar_middle.gif