DRM系统工作原理
一、系统工作原理
DRM技术是一项加强对音频、视频数字化产品内容版权保护的技术,其基本的工作原理是将音频、视频等文件进行加密编码处理,再建立一个证书授权服务中心;当用户使用这些加密文件时,应用软件会根据其包含在头文件中的有关属性自动链接到相应的站点(证书授权服务中心)获取相应的证书;只有通过授权中心的验证并获得授权,才能使用这些音、视频等文件,从而严密有效的保护了这些数字多媒体产品的版权和使用权限。基于Internet认证的视频版权保护系统是基于微软的DRM7.0技术开发的,下面具体介绍本系统加密解密的运行过程及原理。
(原理图)
1.文件加密与内容打包
先用加密软件对欲加密的媒体文件进行加密。
此过程的原理为:由WMRMKeys对象创建私有签名密钥(Privkey)、公有签名密钥(Pubkey)、许可密钥种子(Seek)和密钥标识(KeyID),并由许可密钥种子(Seek)和密钥标识(KeyID)生成一个密钥(Key),此密钥是用来加密保护媒体文件内容的;把密钥标识(KeyID)、证书颁发中心的网站地址、版本号等信息存放于加密媒体文件头部(即WMRMHeader对象中),并由WMRMHeader对象根据私有签名密钥(Privkey)签名其头部;然后由WMRMProtect对象加密内容并和头部打包成一个扩展名为.asf、.wma、.wmv形式存在的媒体文件。
2.发布内容
经加密打包的文件放在网上供用户下载、点播,也可刻录成光盘发售等途径发布内容,但在使用时必须确保能通过授权中心的验证并获得授权。
3.获取证书
用户使用加密文件时,客户端Windows媒体版权管理器首先在本地计算机上检索是否存在有效证书,如果失败,则链接到证书颁发中心;证书颁发中心的证书颁发页面通过WMRMChallenge对象接受客户端发送的加密文件内容头部和用户电脑的有关信息后,将许可密钥种子(Seek)和接收的密钥标识(KeyID)通过WMRMKeys对象生成一个与内容打包时相同的密钥(Key),用于解密,再用WMRMHeader对象根据公有签名密钥(Pubkey)验证其头部;证书颁发中心再通过WMRMRights对象定义许可证的权限,如播放次数、起止时间等;接着用WMRMLicGen对象创建一个证书,包含着解密内容的密钥和权限等内容;最后就是通过WMRMResponse对象把证书传送到客户电脑的Windows媒体版权管理器上。
4.文件播放
获取证书后,客户端Windows媒体版权管理器验证该签名,并将该许可证放在许可证库中;接着客户端Windows媒体版权管理器对内容进行解密,并根据权限播放流媒体文件。
二、系统设计环境与功能
基于Internet认证的视频版权保护系统需在windows2000或更高版本的操作系统上运行。开发语言为ASP、VisualBasic6.0,数据库为Access2000。
系统分为加密软件和许可证权限管理颁发两部分。加密软件采用单机版形式,主要用于加密媒体文件;为方便管理,许可证权限管理颁发采用B/S结构。许可证权限管理颁发包含用户注册、用户权限管理、证书颁发等模块。系统只能为注册用户发证书,而且可为每一位用户颁发含不同权限(如播放次数、起止时间)的证书,这样就能很有效的控制用户对点播系统的使用并对媒体文件进行版权保护。本系统可方便的套接在现有点播系统外使用,系统的功能与流程如图1所示。
三、系统具体实现
1.运行要求
运行本系统需安装Windows媒体版权管理7.0程序开发包,其目的是注册enrollobj.dll、licenseserver.dll和wmrmobjs.dll三个组件,同时为了运行WindowsMediaLicenseService,还需到http://licenseserver.windowsmedia.com/站点获取证书。此外还要安装IIS4.0或更高版本的Internet服务管理器。
客户端可用带有Windows媒体版权管理器的WindowsMediaPlay7.0或更高版本播放器播放加密文件。
2.数据库设计
本系统的数据量不大,对数据库的要求不高,用Access2000即可。数据库中只需创建两张表,如表1、表2所示。
表1用于储存用户的注册信息,如姓名、密码等,主要完成用户登录时进行身份验证任务。
表1用户注册信息表
字段名用户信息ID姓名密码邮件
类型自增型文本型文本型文本型
表2用于储存注册用户所获取证书的权限的信息,即WMRMRights对象的属性,如播放次数、起止日期、是否允许刻盘、安全级别等,主要完成在为用户颁发证书时,定义其权限任务。
表2证书权限信息表
字段名用户信息ID备份与恢复拷贝至CDPC上播放播放次数…
类型数字型是/否型是/否型是/否型数字型…
3.加密软件设计
加密软件完成对ASF/WMV/WMA格式文件加密打包处理。此软件用VisualBasic6.0开发,窗体上主要包含五个文本框按钮控件、三个按钮控件、一个对话框控件等,用于源、目的文件路径、证书颁发站点、许可密钥种子、私有签名密钥信息的录入等,其界面如图2所示。
图2加密窗口图
加密打包的函数如“源代码1”。
源代码1:
SubEncoerFile(Str_FInputFileAsString,Str_FOutPutFileAsString,Str_FLicenseURLAsString,Str_FSeedAsString,Str_FPriKeyAsString)
DimObj_Key As New WMRMKeys
DimObj_Header As New WMRMHeader
DimObj_Protect As New WMRMProtect
Int_KeyID=Obj_Key.GenerateKeyID()
Obj_Key.Seed=Str_FSeed
Obj_Key.KeyID=Int_KeyID
Int_Key=Obj_Key.GenerateKey()
Obj_Header.KeyID=Int_KeyID
Obj_Header.LicenseAcqURL=Str_FLicenseURL
Obj_Header.ContentID=Int_KeyID
CallObj_Header.SetCheckSum(Int_Key)
CallObj_Header.Sign(Str_FPriKey)
Str_Header=Obj_Header.Header
If(Str_FInputFile<>"")Then
Obj_Protect.InputFile=Str_FInputFile
Obj_Protect.Key=Int_Key
Obj_Protect.Header=Str_Header
Obj_Protect.V1KeyID=Int_KeyID
CallObj_Protect.ProtectFile(Str_FOutPutFile)
EndIf
SetObj_Key=Nothing
SetObj_Header=Nothing
SetObj_Protect=Nothing
EndSub
4.用户注册、证书权限及证书颁发模块的实现
用户注册模块、证书权限模块和证书颁发模块均用ASP动态网页编程脚本语言编写,故需配置IIS,建立WEB站点。用户注册模块、证书权限模块实现比较简单,在此不作介绍。证书颁发页面制作可在windowsmediarightsmanager7sdk中的simple.asp页面上进行二次开发,即添加根据用户定义权限的功能,见“源代码2”。该页面中用到了wmrmchallenge、wmrmheader、wmrmkeys、wmrmRights、wmrmlicgen、wmrmresponse等对象,可实现从验证、定义权限、创建证书到证书颁发的功能。
源代码2:
ASP_SQL="SELECT*FROMTab_RightWHEREStr_Name='cdy'"
setRst_Recordset=FUN_GetRecordset(ASP_SQL)
ifRst_Recordset("Bln_AllowBackupRestore")=truethen
.AllowBackupRestore=true
else
.AllowBackupRestore=false
endif
ifRst_Recordset("Bln_AllowPlayOnPC")=truethen
.AllowPlayOnPC=true
else
.AllowPlayOnPC=false
endif
……
Rst_Recordset.close
setRst_Recordset=nothing
系统设计完成后经测试能正常运行,达到设计目的。
五、结论
本系统结构、功能并不复杂,但它能有效的杜绝视频文件在网上非法传播,并强化了点播系统的使用权限控制功能。
参考文献:
(美)MicrosoftWindowsMediaSoftwareDevelopmentKitHelpDocument]]>http://www.week2.com/duke/blogview.asp?logID=177