具体实施方式
本发明实施例中,服务器生成控制使用数字内容的版权表达式并提供给终端设备,在该版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息,终端设备将消费状态的取值传递给版权表达式中相应的参数变量,执行该版权表达式获得版权的剩余消费状态信息,根据该剩余消费状态信息使用数字内容。由于终端设备与服务器无需针对版权进行事先协商,并且在版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息,因此在终端设备不升级时也可扩展版权描述语言,以及灵活设置不同版权项之间的逻辑关系。
本发明实施例中的一种数字版权管理系统如图1所示,包括:服务器100、终端设备101;其中,服务器100可以是版权中心RI,负责分发与数字内容相对应的版权,包括用于解密数字内容的内容密钥及对应的权限,这里的版权以版权表达式的形式给出,其中,服务器100获得控制数字内容的使用的版权信息,包括版权的许可和约束、版权的消费状态信息,生成控制使用数字内容的版权表达式,在该版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息;以及,将版权表达式提供给终端设备101;终端设备101,用于将记录的消费状态的取值传递给版权表达式并执行该版权表达式,获得版权的剩余消费状态信息,根据该剩余消费状态信息使用数字内容。
服务器100生成版权表达式时,首先根据内容保护的需要制订版权控制策略,定义数字内容的版权信息,其中,版权信息包括版权的许可,如:完全控制(用户可以在约束范围内进行任何操作)、播放(用户可以在约束范围内进行播放操作)、显示(用户可以在约束范围内进行显示操作)、执行(用户可以在约束范围内进行执行操作)、打印(用户可以在约束范围内进行打印操作)、修改(用户可以在约束范围内进行修改,以及与修改相关的复制、粘贴、保存、另存操作,但保存后内容仍然受对应版权表达式的保护)、转发(用户可以在约束范围内进行转发操作)、导出(用户可以在约束范围内进行导出到其他设备操作)等其中之一或任意组合,还可以包括版权的约束,如:次数(count)、有效期(datetime)、相对有效期(interval)、累积时长(accumulated)、基于时长的次数(timed-count)、周期(period)等其中之一或任意组合,还可以包括版权的消费状态信息,如已使用的次数、已使用的时长等。
服务器100根据版权控制策略生成版权表达式的模板,这里可以采用程控方式自动生成,也可以由人工编写后加载到服务器中。其中,版权表达式的句法定义如下:
1、运算符。包括:算术运算符:用于各类实数值的运算,可以分别使用以下符号:加(+)、减(-)、乘(*)、除(/);关系运算符:用于比较运算,可以分别使用以下符号:大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=);逻辑运算符:用于逻辑值的运算可以分别使用以下符号:与(&&)、或(||)、非(!);赋值运算符:用于赋值运算,可以用符号(=)标识。
2、表达式。表达式是由运算符连接常量、变量、函数所组成的式子。每个表达式都有一个值和类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。
3、关系表达式。其结构为:表达式,关系运算符,表达式。
4、分支语句。如If(表达式)语句,其语义是:如果表达式的值为真,则执行其后的语句,否则不执行其后的语句,其执行过程如图2所示。
5、循环语句。如For(表达式1;表达式2;表达式3)语句,其执行过程如图3所示:求解表达式1;求解表达式2,若求解获得的值为真(非0),则执行for语句中指定的内嵌语句,否则执行for语句的下一语句;求解表达式3,并返回求解表达式2。
6、变量类型。包括:整型变量、实型变量、字符变量。
7、常量类型。包括:整型常量、实型常量、字符常量、字符串常量。
8、结构类型。定义一个结构的一般形式为:
struct结构名
{成员表列};
成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也应作类型说明,其形式为:
类型说明符成员名;
其中,成员名的命名应符合标识符的书写规定。
服务器100根据上述版权表达式的句法和版权控制策略生成版权表达式的模板后,在该版权表达式中采用参数常量描述系统配置或用户订购的版权的许可和约束,采用参数变量描述版权的消费状态信息。具体的,可将版权的许可和约束对版权表达式模板中相应的参数变量(variable)进行替换,即在版权表达式中采用参数常量定义版权的许可和约束,而保留采用参数变量描述的版权的消费状态信息,从而生成最终的版权表达式。另外,还可以在版权表达式中增加版权的描述信息(describe),该描述信息与版权唯一对应,对该版权表达式进行文字性描述,将版权表达式的描述信息提供给用户后,用户可根据该描述信息判断版权表达式中版权的许可和约束与系统配置或用户订购的版权的许可和约束是否一致。
服务器100可以将生成的版权表达式直接提供给终端设备101;较佳的,服务器100可以将生成的版权表达式嵌入版权对象后提供给终端设备101。在版权对象中,除了版权表达式这一版权描述部分外,还可以包括用于解密数字内容的内容密钥、版权对象标识ID、内容摘要信息、版权发行商信息等其他信息。
本发明实施例中的一种服务器的结构参阅图4所示,包括:接收单元400、生成单元401、发送单元402;其中,接收单元400,用于接收控制使用数字内容的版权的许可和约束、消费状态信息;生成单元401,用于生成控制使用数字内容的版权表达式的单元,其中,在版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息;发送单元401,用于向终端设备提供版权表达式。
参阅图5所示,本发明实施例中服务器生成并发送版权表达式的处理流程如下:
步骤500、服务器根据内容保护的需要制订版权控制策略,定义数字内容的版权信息,其中,版权信息包括版权的许可和约束、版权的消费状态信息。
步骤501、服务器根据版权表达式的句法和版权控制策略生成版权表达式的模板。
步骤502、服务器生成控制使用数字内容的版权表达式,其中,在版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息。
步骤503、服务器将生成的版权表达式嵌入版权对象并发送给终端设备。
在步骤503中,服务器将版权表达式嵌入版权对象发送给终端设备,这里,服务器也可以向终端设备单独发送版权表达式。其中,版权对象的发送方式可以采用多种现有的终端设备与服务器间交换的方式,这里以“WAP Push”(Wireless Application Protocol Push,无线应用协议推送)方式为例进行说明,终端设备获取版权对象的处理流程参阅图6所示:
步骤600、终端设备登录业务系统(也称为内容系统,提供数字内容),进行业务浏览,订购等操作。
步骤601、终端设备从业务系统下载数字内容到本地。
步骤602、业务系统通知服务器(这里为版权中心)对数字内容进行授权,向版权中心请求下发与终端设备下载的数字内容相对应的版权对象。
步骤603、版权中心根据业务系统的请求,以WAP Push方式向终端下发对应的版权对象,其中包含控制使用数字内容的版权表达式。
步骤604、版权中心向业务系统返回数字内容对应的授权响应消息,其中包含版权对象下发结果。
终端设备在使用数字内容前,先获取控制使用数字内容的版权表达式,根据该版权表达式进行鉴权。当版权表达式嵌入版权对象时,终端设备可根据数字内容和版权对象的关联关系检索出对应的版权对象,从版权对象中提取出对应的版权表达式,执行该版权表达式。其中,终端设备将版权的消费状态的取值传递给版权表达式中相应的参数变量,根据版权表达式的语法、语义定义解释执行该版权表达式,获得版权的剩余消费状态信息,并根据该剩余消费状态信息使用数字内容。
终端设备将版权的消费状态的取值传递给版权表达式中相应的参数变量时,可以传递版权的当前时间(cur-datetime,系统当前安全DRM时间)、开始使用时间(start-used-time,第一次成功使用该内容的时间)、已经使用次数(used-count,用户已经消费的次数)、已经使用时长(used-accumulated、用户已经消费的累积时长)等。这里,版权的消费状态的取值也可以为ServiceID(业务ID,对于复合媒体或者专辑,可以使用同一个ServiceID)、Version(版权描述语言版本号)、CreateDate(生成日期,版权对象生成的日期)、DuplicateProcMode(终端设备存在重复ROID时的处理方式,其取值为放弃Abandon、覆盖Overwrite或忽略Ignore等)。
执行版权表达式获得的版权的剩余消费状态信息可以包括:
鉴权结果(auth-result),其中,auth-result=1表示鉴权通过,用户可以消费;auth-result=0表示鉴权未通过,用户当前不能消费,但版权有效;auth-result=-1表示鉴权未通过,版权失效。
鉴权周期(auth-period),其中,auth-period=0表示不需要周期性鉴权;auth-period>0表示周期性鉴权的时间间隔。
计次/时时延(delay),其中delay=0表示不需要考虑时延;delay>0表示开始计次或者计累积时长的时间间隔。
剩余次数(count),其中,count=-1表示不用关心剩余次数;count>=0表示本次鉴权周期内的剩余次数。
剩余累积时长(accumulated),其中,accumulated=-1表示不用关心剩余累积时长;accumulated>=0表示本次鉴权周期内的剩余累积时长。
有效期(datetime),其中,datetime=-1表示不用关心datetime;datetime>=0表示本次鉴权周期的开始、结束相对时间。
例如,auth-period=0秒,鉴权返回delay=10秒,count=20次,表明当前剩余20次使用次数,在10秒之后开始算消费一次,不需要周期性鉴权。又如,auth-period=60秒,鉴权返回delay=10秒,accumulated=1.5小时,表明当前剩余1.5小时累积时长,在10秒之后开始计算用户累积使用的时间,每隔60秒要进行一次鉴权。
本发明实施例中的一种终端设备的结构如图7所示,包括:获取单元700、执行单元701、应用单元702;其中,获取单元700,用于获取控制使用数字内容的版权表达式,其中,版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息;执行单元701,用于将记录的版权消费状态的取值传递给版权表达式中相应的参数变量并执行该版权表达式,获得版权的剩余消费状态信息;应用单元702,用于根据版权的剩余消费状态信息使用数字内容。其中,执行单元701可以进行鉴权执行操作,相应的,应用单元702可以进行权限控制操作,而无需关心具体的权限;此时,为了保证鉴权的准确性和权限无关性,由应用单元702记录所有的消费状态的取值,以便于执行单元701在每次进行鉴权执行时将消费状态的取值传递给版权表达式中相应的参数变量。
参阅图8所示,终端设备执行版权表达式并根据执行结果使有数字内容的处理流程如下:
步骤800、终端设备读取控制使用数字内容的版权表达式,其中,在版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息。
步骤801、终端设备将版权的消费状态的取值传递给版权表达式中相应的参数变量。
步骤802、终端设备解释执行版权表达式,获得版权的剩余消费状态信息。
步骤803、终端设备根据版权的剩余消费状态信息使用数字内容。
步骤804、终端设备在使用数字内容的过程中记录版权的消费状态的取值。
另一种可能的情况是,服务器生成的版权表达式可以描述多个版权,此时,服务器中的生成单元可以在版权表达式中采用参数变量描述各版权对应的标识信息;终端设备中的执行单元可以在接收到该版权表达式后,将其中某个版权的标识传递给该版权表达式中相应的参数变量,执行该版权表达式,获得该标识对应的版权的剩余消费状态信息。参阅图9所示,终端设备执行版权表达式获取多个版权中的一个版权的剩余消费状态信息的处理流程如下:
步骤900、终端设备读取控制使用数字内容的版权表达式,该版权表达式描述多个版权,其中,在版权表达式中采用参数常量描述各版权的许可和约束,采用参数变量描述各版权的消费状态信息和标识信息。
步骤901、终端设备将版权的消费状态的取值及版权的标识传递给版权表达式中相应的参数变量。
步骤902、终端设备解释执行版权表达式,获得该标识对应的版权的剩余消费状态信息。
由于版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息、标识信息,以及携带版权的描述信息,终端设备与服务器无需针对版权进行事先协商,在终端设备不升级时也可扩展版权描述语言,灵活设置不同版权项之间的逻辑关系;并且,系统向后兼容,可以由运营商统一升级,升级后即使终端不能支持升级后的全部属性,系统仍然可以使用升级以前的版权。
出于安全性上的考虑,版权表达式可以通过签名,以防止篡改;版权鉴权过程中采用的时间可以采用安全时间;鉴权执行运算可以由SIM卡完成,即由SIM卡执行版权表达式,终端设备中的执行单元此时为一SIM卡,这样处理的安全性更高,并且只需通过对SIM卡的升级即可实现算法的升级,在不降低安全级别的基础上,带来算法升级灵活性。
版权表达式中还可以携带描述信息(describe),用于文字描述权限和其他一些说明性信息,提供给消费者版权相关的信息。较佳的,可以在鉴权执行结果中扩展版权描述信息(describe)与版权唯一对应,该版权描述信息与版权唯一对应,随版权表达式一起进行签名以防止篡改,防止内容提供者或服务提供者在版权对象的传输过程中通过减少授权的方式欺骗消费者,如在版权规则里增加digest字段,该字段用16进制表示(如digest=“ABCDEFGH”),表示对消息的签名,具体的签名方案可以有多种,由运营商确定,只要保证终端和服务端双方算法一致即可;其中,签名算法可以为MD5,RSA等算法,可以是对消息内容的摘要,也可以是带双方签名密钥的摘要算法。具体的实现方式可以是:服务器中的生成单元可以在版权表达式中携带版权的描述信息,终端设备中的应用单元可以将该描述信息提供给用户判断版权表达式中版权的许可和约束与系统配置或用户订购的版权的许可和约束是否一致。
版权对象在传输时,还可以与用户进行绑定,这里,可以在版权规则里对版权规则进行自由扩展,如增加userlist字段:userlist=13813812345;action=play;……;用户鉴权时传入的参数变量里也包括userid,此时鉴权的脚本里应增加相应的分支以检查userlis是否与userid。又如增加userlists字段:userlist=13813812345,13913912345,……;action=play;……;用户鉴权时传入的参数变量里也包括userid,此时鉴权的脚本里应增加相应的分支以判断userid是否存在于userlist中。这里可以自定义参数名和格式,其处理过程与前述处理过程类似。
为了防止版权对象被破解,在与用户绑定基础上,还可以对终端设备采用公私钥体系,每个终端设备对应一对公私钥,服务器保留公钥加密消息,终端设备采用私钥解密消息,中途其他终端设备接收到消息时,由于没有对应的密钥而无法解密消息;当然,这里也可以使用对称算法(例如DES,3DES等,具体算法不限),其原理相同;另外,还可以在SIM卡中集成智能卡技术加密保存私钥以进一步提高安全性能;还可以让所有用户使用同一个密钥,或者若干用户分成一个组(其具体分组策略可以为若干种,例如按照手机号码、用户属地、用户终端设备序列号等分组),共享一组密钥或一对密钥来实现。
此外,版权对象在传输时,还可以与内容进行绑定,这里,可以在定义版权规则时定义对应的版权规则应用的内容标识,如增加contentID字段:contentID=http://www.huawei.com/info.mpg;action=play;……;用户鉴权时传入的参数变量里也包括contentID,鉴权的脚本里应增加相应的分支以判断contentID是否存在于contentID中;或者,统一版权可以与多个contentid对应,如增加contentIDs字段,可以罗列多个contentID:contentID=http://www.huawei.com/info.mpg,http://www.huawei.com/info2.mpg;action=play;……;
当存在多个版权对象时,终端设备可选择该多个版权对象中的版权表达式执行的顺序,如可以按照生成日期顺序选择执行,生成时间早的优先执行;或按照版权对象的版本选择执行,或按照生成日期的倒序等选择执行。
本发明实施例中,服务器向终端设备提供其生成的控制使用数字内容的版权表达式,在该版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息,终端设备在接收到版权表达式后,只需将消费状态的取值传递给版权表达式中相应的参数变量,并按版权表达式的句法定义执行该版权表达式获得版权的剩余消费状态信息,根据版权的剩余消费状态信息使用数字内容,在此过程中,终端设备和服务器之间无需事先协商版权描述文件的格式、支持的版权类型,以及具体版权项的含义,有利于版权描述语言的扩展;在版权表达式中采用参数常量描述版权的许可和约束,采用参数变量描述版权的消费状态信息的方式,有利于灵活设置不同版权项之间的逻辑关系,避免了现有技术中由于各模式的元素定义明确和固定不变带来服务器和终端设备升级的问题;另一方面,终端设备的输入/输出参数一旦确定就能够保持持久性,不受具体权限的影响,权限扩展不会带来输入/输出参数的变化,可以保持终端的稳定性。
另外,鉴权执行运算可以由SIM卡完成,使处理的安全性更高,并且只需通过对SIM卡的升级即可实现算法的升级,在不降低安全级别的基础上,带来算法升级的灵活性;并且,系统向后兼容,可以由运营商统一升级,升级后即使终端不能支持升级后的全部属性,系统仍然可以使用升级以前的版权。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。