在存储卡中安装内容的权限对象的方法

文档序号:6585575阅读:194来源:国知局

专利名称::在存储卡中安装内容的权限对象的方法
技术领域
:本发明涉及数字权限管理(DRM)并且更具体地涉及在DRM环境中直接下载和安装权限对象的方法、设备和系统。
背景技术
:数字权限管理(DRM)是安全地保护和系统地管理数字内容(例如音乐、电影、文献、图像等)的权限对象的技术。DRM防止对数字内容未经授权和/或不合法的复制。DRM还提供DRM内容的权限对象(RO)的获取、DRM内容的制作和分配以及一系列使用过程的保护和管理。图1示出传统DRM系统的一般结构。传统DRM系统控制用户如何根据给予用户的RO接收和处理已接收的数字内容。在这方面,内容提供者是与内容发布器(CI)30和/或权限发布器(RI)40对应的实体。CI30通过使用特定编码密钥发布受保护的内容(在下文中称其为“DRM内容”(或“数字内容”))以保护内容由未经授权的用户浏览或处理,而RI40发布允许DRM内容的使用所需的R0。终端10包括DRM代理。DRM代理通过相应终端从CI30接收DRM内容,从RI40接收关于内容的R0,并截获包含在RO中的许可和/或约束以控制DRM内容的使用。一般来说,RO由特定终端的某个公钥编码,以使除具有私钥的终端以外的终端无法解码或使用关联于该RO的DRM内容。因此,在传统DRM系统中,如果RO及其关联的DRM内容被存储在例如多媒体卡等移动存储卡(即安全可移动存储器(SRM))中,除对其已发布RO的特定终端外的终端无法从存储卡(SRM)中读取DRM内容。即,RO是依赖于特定终端的。另外,在传统DRM系统中,由于RO是针对特定终端发布的,如果存储卡(SRM)存储RO及其DRM内容,则仅具有已发布RO的特定终端能从SRM中读取DRM内容和R0。因此,仅具有已发布RO的特定终端能读取DRM内容。另外,在传统DRM系统中,RI140无法发布关于DRM内容的RO给存储卡,即SRM。因此存储卡,即SRM,可能在名义上无法具有R0。图2示出根据相关技术的问题。如图2所示,CI30对第一终端11发布内容。RI40发布关于第一终端11的内容的R0。在这种情形中,RO以第一终端11的名义发布。第一终端输出RO并将RO复制入存储卡,即SRM15。因此,尽管第一终端11的用户将内容传至第二终端12的存储卡,即SRM15,由于RO被发布给第一终端11,因而第二终端12无法使用该内容。
发明内容因此,为了解决上述问题,已构思出本文描述的各种特征。本发明的一个目的是提供一种通过终端稳定地发布权限对象(RO)至存储卡(即SRM)的方法、设备和系统。另外,当将RO发布给存储卡(即SRM)时,RO可兼容地用于支持该方法的不同终端,从而允许不同的终端稳定地使用R0。本发明的另一目的是将已下载和安装至存储卡(即SRM)的RO直接发布给不同的设备,同时保持RO的兼容性。本发明的又一目的是当将RO发布给存储卡(即SRM)时从所产生的错误中恢复。本发明的又一目的是能够在发布给存储卡(即SRM)的多个RO中的每一个RO之间作出区别。为了达到上述目的,这里提供一种方法、设备和系统,用于取得以存储卡(即SRM)的名义发布的R0,并通过终端的DRM代理将已发布的RO安装在存储卡中。在这种情形中,当RO被安装在存储卡时,例如REK、CEK等重要信息不被暴露于终端或外部。为了实现上述目的,这里还提供一种方法、设备和系统,它们允许终端代表存储卡从权限发布器(RI)接收RO并将所接收的权限对象安装在存储卡中。将RO安装在存储卡中的方法包括通过终端从RI接收包括设备ID、受保护的RO和签名的RO响应消息。该方法还包括确定RO响应消息中的设备ID是否匹配于存储卡的ID。该方法还包括通过终端从受保护的RO提取包装密钥素材和相应信息以产生权限信息,并且如果RO响应消息中的设备ID与存储卡的ID匹配则产生标识该权限信息的标识符。该方法还包括将包含包装密钥素材、标识符和关于权限信息大小的信息的提供设置请求消息从终端发送至存储卡。该方法还包括通过终端从存储卡接收提供设置响应消息。提供设置响应消息包括指示处理提供设置请求消息的结果的状态、通过存储卡从包装密钥素材获得的MAC密钥。权限信息可包括权限元数据、RO容器和状态信息。产生标识符的步骤包括加密准备包含在提供设置请求消息中的标识符。该标识符可以是句柄。该标识符可编码并包含在提供设置请求消息中。包装密钥素材包括Kmac和Kkek,其中Kmac是实现RO完整保护的消息认证码密钥,而Keek是实现RO机密性的权限对象加密密钥。受保护的RO包括权限、包装密钥素材和MAC密钥中的至少一个。该方法还可包括无签名地通过终端产生RO请求消息;将签名请求消息从终端发送至存储卡;通过终端从存储卡接收包含存储卡签名的签名响应消息;并将包含存储卡对RI签名的RO请求消息从终端发至存储卡。为了实现上述目的,这里还提供一种方法、设备和系统,它们通过终端接收关于来自RI的内容的R0。该接收方法可包括从终端接收签名询问请求消息。这里,签名询问请求消息可包括RO请求消息。该接收方法还包括在签名询问请求消息中产生关于RO请求消息的签名;并将其发送给终端以使该终端代表存储卡将RO请求消息发送给RI。接收方法还进一步包括接收提供设置请求消息,该消息包括与通过终端从RI接收的内容有关的权限信息的大小的信息、权限的标识符以及受保护的密钥信息;解码受保护的密钥并将其存储入提供设置请求消息;并使用大小信息分配存储区;将关于提供设置请求消息的响应消息发送给终端;并当权限信息关于来自终端的内容时,将权限安装存储区中。为了达成上述目的,这里还提供一种代表能安装的存储卡从RI接收R0、并将接收的RO安装在存储卡中的终端。该终端可包括发射机/接收机和代表存储卡接收关于来自RI的内容的受保护R0。这里,受保护的RO可包括关于内容的权限、RI的签名以及包装密钥信息。该终端可进一步包括解析受保护RO的处理器。当执行解析运算时,将权限从RO提取出来并将其转换成权限信息,即存入存储卡的格式,并可产生关于权限的标识符。终端可进一步包括连接于存储卡的连接器,该连接器将包含标识符和关于权限信息大小信息的提供设置请求消息发送给存储卡,并将包含权限信息的权限提供请求消息发送给存储卡以将权限信息安装在存储卡内。根据本发明的示例性实施例,RI可稳定地发布RO至存储卡,即SRM。另外,存储在SRM中的RO可由用户所要求的任何终端正当地使用。由于权限提供被安装成与已有SRM1.0兼容,因此DRM内容通过使用传统本地权限消费等与安装有SRM的设备中的权限对应。在权限提供过程中,当将权限从DRM代理安装至SRM代理时,分配用于区别权限的唯一句柄。因此,当权限用作本地权限消费等时,可清楚地区别存储在SRM中的权限。当结合附图阅读本发明下面的详细说明时,本发明前述和其它的目的、特征、方面和优点可变得更为清楚。图1示出一般DRM系统的配置;图2示出根据现有技术的问题;图3示出根据本发明示例性实施例将内容和RO发布给存储卡的理念;图4是示出根据本发明第一示例性实施例的方法过程的流程图;图5是示出根据本发明第二示例性实施例的方法过程的流程图;图6是示出根据本发明第三示例性实施例的方法过程的流程图;图7是详细示出图6中的步骤S210和S214的流程图;图8是示出根据本发明第四示例性实施例的方法过程的流程图;图9是根据本发明示例性实施例的终端100和SRM150的示意性方框图。具体实施例方式本发明适用于数字权限管理(DRM)系统。然而不仅限于此,本发明也可应用于任何其它的通信系统和方法以及与DRM关联的系统和方法。本发明说明书中的技术术语用来解释特定实施例并且应当理解它们不对本发明构成限制。除非另有说明,本文中使用的所有术语具有与本发明相关的本领域内技术人员普遍了解的相同的含义。如字典一般定义的这些术语被解释成具有与相关
技术领域
中的上下文含义等同的含义,并且不解释成具有理想或过分正式的含义,除非在本申请中有清楚的定义。另外,如果用于描述本发明速使用的技术术语是无法清楚地表示本发明理念的错误术语,则应当用能由本领域内技术人员正确理解的科技术语来代替之。另外,本发明的说明书中使用的一般术语应当根据字典中的定义或根据其上下文来解释,并且不应当解释成具有过分约束性含义。术语“一”和“一个”定义为一个或多个,除非在本文中明确声明的。术语“构成由”、“组成由”、“具有”、“带有”、“包括”、“包容”、“包含”、“含有”或其它变例旨在覆盖非排他的包括,以使构成由、具有、包括、包含一个列表的部件的过程、方法、制品或装置不仅包括那些部件还包括未明显列出或这些过程、方法、制品或装置所固有的其它部件。要理解,尽管术语第一、第二等在本文中用来描述各个部件,然而这些部件不应当受这些术语的限制。这些术语仅用来使一个部件区别于另一个。例如,第一部件应可以称为第二部件,同样第二部件可称为第一部件,而不脱离本发明的范围。应当理解,当某个部件被认为“连接于”另一部件时,则该部件可直接连接于其它部件或可以存在中间部件,相反,当一个部件被认为“直接连接于”另一部件时,则不存在中间部件。下面参照附图对本发明的实施例进行详细说明,其中对这些组件给予相同或相应的相同附图标记,不管附图标记为何,并且省去多余的说明。在描述本发明时,如果相关已知的功能或结构的详细解释被认为是不必要地偏离本发明的要旨,这种解释被省去但为本领域内技术人员所熟知。附图用来帮助方便地理解本发明的技术理念并且应当理解本发明的理念不受附图限制。本发明的理念应当解释成扩展至除附图以外任何选择、等效物和代替。下面,图3-7中示出一个设备,并也可将该设备称为用户设备(UE)、终端、移动设备(ME)或移动站(MS)。另外,该设备可以是例如移动电话、个人数字助理(PDA)、智能电话、笔记簿电脑等具有通信功能的移动设备,或者是个人计算机(PC)或车载设备的无法随身携带的设备。应当简单地定义本发明中使用的术语以在参照附图描述本发明前对本发明有所理解。权限对象(RO)权限对象也被称为使用权限,包括对DRM和连接于诸内容的其它特性的许可(或约束)。根据本发明的示例性实施例,RO一般存储在终端或存储器中,例如安全可移动存储器(SRM)。在这种情形下,RO可以RO容器的形式存储。SRM的代理将RO容器作为不透明对象处理。即,SRM代理不对RO容器进行解析。权限权限包括权限元数据、权限对象容器、状态信息和REK(或经加密的REK)。状态信息状态信息指在状态性RO中的每个状态性许可的当前状态(例如平衡计算、间隔开始日期)。如果使用权限是状态性使用权限,则该状态信息包含在权限中。权限信息权限信息包括权限元数据、RO容器。如果RO是状态性R0,则该权限信息还包括状态fe息。REKREK是具有二进制形式的RO加密密钥并且不是以64为底数编码的。术语以64为底数指一种特殊的MIME内容传输编码。术语以64为底数也作为通过数字上处理二进制数据并将该其转换成以64为底数的表达方式而编码二进制数据的类似编码方案的一般术语。底数的特殊选择是由于字符集编码的历史人们能选择对多数编码共有的两部分子集并且可打印的64字符的一个集。这种组合使数据不可能在传输通过系统中被修改,例如传统地不是8比特清零的电子邮件。以64为底数的MIME对最前62个值使用A_Z、a-z和0-9。存在一般源自以64为底数的其它类似系统,这种系统享有这种特性,但在为最后两个值选择的码元方面存在区别,一个示例是UTF-7。REK(Rek)的数据结构描述如下Rek(){for(i=0;i<16;i++){byte8uimsbf(unsignedintegermostsignificantbitfirst)}}句柄句柄是由DRM代理产生的随机数,它由DRM代理使用以标识存储在例如SRM的存储卡中的使用权限(或R0)。句柄由DRM代理使用以使用或移动SRM中的使用权限,或标识使用权限(或R0)。句柄存储在SRM中并存储在终端的工作日志中。当DRM发送消息以使用或移动使用权限(或R0)时,DRM产生句柄并将句柄发送至SRM。MAKEMAKE代表“相互认证和密钥交换”。DRM代理和SRM代理基于各自安全提供的证书通过MAKE(即相互认证)彼此验证。这种相互认证和密钥交换的结果使DRM代理和SRM代理建立一条安全通道以交换和共享秘密部分。权限元数据权限元数据包括RO版本、RO别名、RI标识符、RIURL、RI别名以及RI时间标记。资产M资产ID代表包含在RO中并用来标识DRM内容的“资产标识符”。受保护的RO受保护的RO是一种根据DRM版本2.0的格式,其全部内容援引包含于此。受保护的RO是当将受保护的RO从RI提供给终端时使用的格式。另外,受保护的RO是当受保护的RO从终端的DRM代理传输至存储卡(例如SRM的SRM代理)时使用的格式。受保护的RO包括下面示出的连续R0,即包括<R0>元和包括MAC值的<mac>元。<mac>元用来检查<R0>元的完整性和密钥。表1<table>tableseeoriginaldocumentpage9</column></row><table>如表1所示,<R0>元包括ROPayload项。ROPayload项包括受保护的权限和包装密钥。包装密钥用来解密权限的编码部分。ROPayload项包括下面表2所示的内容表2<table>tableseeoriginaldocumentpage9</column></row><table><riID>元包括用于标识RI的标识符。<timestamp>元值由世界坐标时(UTC)给出并用来防止通过再次发送的骇客入侵或破解。〈Signature〉元包括RI的签名。<encKey>元包括经包装的MAC密钥(Kmag)REK(RO加密密钥)(Krek)。<roPayloadAliases>元示出在下面的表3中。表3〈elementname="roPayIoadAliases"><complexType>〈sequence〉〈elementname="roAlias"type="roap:String80"minOccurs="O"/><elementnamedomainAlias"typeroap:String80"minOccurs="O"/>〈elementnameriAlias"typeroap:String80"/><anyprocessContentslax"minOccursO"maxOccursunbounded"/>〈/sequence〉</complexType>〈/element〉同时,Nonce项在权限对象获取协议(ROAP)协议消息中包括某些值。Nonce项必须只使用一次。即,每当生成ROAP消息时生成Nonce的某些值。<simpleTypename="Nonce">〈restrictionbasebase64Binary"><minLengthvalue14"/>〈/restriction〉</simpleType>在下文中,参见附图对本发明的示例性实施例进行说明。图3示出根据本发明的示例性实施例将内容和RO发布给存储卡的理念。如图3所示,内容发布器(Cl)300通过第一终端100发布内容给存储卡,即发布给SRM150。RI400通过第一终端110将关于内容的RO发布给存储卡,即SRM150。在这种情形下,RO以存储卡(SRM150)的名义发布。第一和第二终端110、120(在下文中以附图标记100表示)各自包括DRM代理。SRMl50包括SRM代理。因此,当第一终端110的用户将存储卡(即SRM150)传给第二终端120时,第二终端120可使用认证的内容。在这种情形下,根据本发明的示例性实施例,在第一终端110的DRM代理和SRM150的SRM代理之间定义新协议。即,在第一终端110的DRM代理和SRM150的SRM代理之间提出以SRM代理的名义发布RO所需的签名协议、将以SRM的名义发布的RO从DRM代理提供给SRM代理的提供设置协议以及权限提供协议。下面参照图4-8对本发明的示例性实施例进行说明。图4是示出根据本发明第一示例性实施例的方法的流程图。如图4所示,为了开始传递存储在存储卡(即SRM150)中的R0,RI400将触发消息(R0AP触发)发送至第一终端11(Sll)。然后,第一终端110将RO请求发送至RI400(S12)。RI400以存储卡(即SRM150)的名义发送RO至第一终端110(S13)。然后,第一终端110将RO安装在存储卡中,即安装在SRM150中(S14)。如上所述的第一实施例示出将RO存储在存储卡中的简单过程。将RO安装入SRM150的详细过程在第二实施例中予以阐述。关于安装在SRM中的RO格式的阐述记载于第二实施例,因此该终端无法正确地使用SRM150中的R0。另外,如果终端支持与存储在SRM150中的RO不同的格式,则RO无法读出。这种问题的解决方案在第二实施例中给出。此外,在第一实施例中,当多个RO安装在SRM150时,需要一种技术在多个RO中区分出特定的R0。关于这种技术的阐述记载于第二实施例。另外,允许第二终端使用存储卡中的RO的技术记载于第二实施例。图5是示出根据本发明第二示例性实施例的方法的流程图。如图5所示,在本发明的第二示例性实施例中,当RI400通过终端100将RO(或用户权限)发布给SRM150时,RI400确认SRM150的签名以认证SRM。另外,在本发明的第二示例性实施例中,当RI400在同一SRM中发布RO时,RI400将受保护的RO提供给终端100,以使RO内例如REK、CEK等重要信息无法泄漏至终端100或外界。然而,如果受保护的RO通过终端100提供给并安装在SRM150中,即使当终端100想要在授权下使用内容,SRM150无法读取R0。因此,在本发明的第二示例性实施例中,SRM150稳定地解码并存储受保护的R0。控制终端100被控制成仅当存在来自终端经授权的要求时才根据RO使用内容。现在结合信号流进行详细说明。首先,DRM代理和SRMl50中的SRM代理交换SRM呼叫请求消息和SRM呼叫响应消息以执行基本协商,以建立逻辑通道(SlOl)。在这种情形下,协商包括关于协议版本的相互协商和关于信任锚的协商。同时,DRM代理和SRM代理执行MAKE过程。如上所述,MAKE规程是相互认证和密钥交换规程。MAKE过程包括发送认证请求消息、接收响应消息、发送密钥交换请求消息并接收相应响应消息。通过MAKE规程,DRM代理和SRM代理执行相互认证,执行关于形成安全通道的加密算法、HMAC(密钥化散列消息认证码)算法等的协商,并根据认证的结果共享会话密钥(SK)和MAC密钥(MK)。SEM呼叫和MAKE规程实际上遵循在OMASRM1.OTS中定义的协议。在加密学中,密钥化散列消息认证码(HMAC或KHMAC)是一种使用涉及加密学散列函数结合秘密密钥的特定算法计算得到的消息认证码(MAC)。如同任何MAC,它可用来同时验证数据完整性和消息的真实性。任何迭代的加密学散列函数,例如MD5或SHA-1,都可用于计算HMAC;所得到的MAC算法被相应地称为HMAC-MD5或HMAC-SHA1。HMAC的加密强度取决于基本散列函数的加密强度、取决于密钥的大小和质量以及以比特为单位的散列输出长度大小。接着,将SRM100的用户(即拥有者)通过例如网页浏览等方法连接于RI,并请求生成关于特定内容的RO(或使用权限)。在请求生成RO中,例如SRMID、IMSI(国际移动订户身份)的关于SRM150的信息以及例如设备ID的关于其中安装SRM150的终端100的信息被传输至RI。随后,RI400发送例如权限对象获取协议(ROAP)消息的触发消息至装有SRM的终端100,从而以SRM的名义生成R0(S102)。此时,RI生成关于特定内容的RO(或使用对象)。RO的生成可在发送ROAP触发消息前实现。或者,RO的生成可在从终端100接收到RO请求消息后实现。当接收到直接向SRM提供权限的ROAP触发消息时,DRM代理检查ROAP触发消息中的<srmID>元的存在。如果ROAP触发消息具有<srmID>元,则DRM代理将ROAP触发消息中的<srmID>元与存储在DRM代理中的<srmID>元比较。这种比较具有两种可能的结果。首先,如果ROAP触发消息的<srmID>元与存储在DRM代理中的<srmID>元匹配,则DRM代理为SRM生成RO请求消息(S103)并将该RO请求消息存储在DRM代理中。由于准备下载RO并将其安装于SRM,RO请求消息不包括DRM代理的签名。然后,DRM代理将签名询问请求消息发送至SRM代理(S104)。签名询问请求消息包括没有任何签名的RO请求消息。相反,RO请求消息包括HMAC值。该HMAC值保证RO请求消息在从DRM代理发送至SRM代理的同时尚未改变。HMAC值是通过使用在DRM代理和SRM代理之间协商的HMAC算法来产生的。HMAC算法使用HMAC-SHA1-128,其全部内容被援引包含于此。在接收到签名询问请求消息后,SRM代理生成签名以使其包含在RO请求消息中。作为代替,如果ROAP触发消息的<srmID>元与存储在DRM代理中的<srmID>元不匹配,则DRM代理忽略ROAP触发消息。通过这种过程,SRM代理执行关于RO请求消息的完整性校验并将该SRM代理的签名并入RO请求消息,就像SRM代理本身从RI400请求RO—样。在这种情形下,SRM代理可仅将SRM代理的签名值发送给DRM代理或将该SRM代理的签名并入RO请求消息的签名部分。SRM代理将关于签名请求的签名响应消息发送给DRM代理。该签名响应消息包括含签名的RO请求消息。或者,签名响应消息可仅包括签名值。包含签名的RO请求消息或签名应当具有完整性。为此,RO请求消息或签名包括HMAC值。HMAC值确保RO请求消息或签名在已发送时尚未改变。HMAC值是使用在DRM代理和SRM代理之间协商的HMAC算法产生的。HMAC算法使用HMAC-SHA1-128,其全部内容援引包含于此。如上所述,DRM代理从SRM代理接收信号签名消息。签名响应消息包括签名或包括已签名的RO请求消息。然后,DRM代理将包括SRM的签名的RO请求消息发送至RI400(S106)。当RI400接收RO请求消息时,RI400以受保护RO的形式将之前生成的RO发送给DRM代理(S107)。或者,当RI400接收RO请求消息时,RI400生成RO并以受保护RO的形式发送R0。在这种情形下,RO可包含在RO响应消息中并发送。RO响应消息包括RI400的签名。RO请求消息和RO响应消息各自遵循DRM2.0协议或DRM2.1协议。当从RI400接收到RO响应消息时,DRM代理校验RO响应消息(S108)。如果DRM代理接收以“成功”作为状态的RO响应消息,DRM代理执行下列规程(a)验证RO响应消息的签名;以及(b)如果签名有效,则检查RO响应消息中的设备ID。如果设备ID与存储卡的SRMID匹配,则DRM代理从RO响应消息中受保护的RO提取权限。通过该规程,DRM代理验证包含在RO响应消息中的签名以由此确认该RO响应消息已由RI400生成并在其传输过程中尚未改变。接着,DRM代理生成新句柄值以区分存储在SRM150中的权限。DRM代理从RO响应消息提取受保护的R0。DRM代理将包含受保护RO和句柄值的另一RO请求消息(例如权限提供请求消息)发送给SRM150的SRM代理(S109)。当受保护的RO是状态性RO时,该RO请求消息包括状态信息。另外,RO请求消息包括安装受保护RO所需的数据。受保护的RO应当具有完整性。为此,RO请求消息包括HMAC值。同时,句柄请求安全,即为了安全而加密句柄。为了加密,使用在DRM代理和SRM代理之间协商的加密算法。一般来说,将高级的加密标准(AES)算法用作加密算法。当SRM代理接收RO请求消息时,该SRM代理转换受保护的RO(SllO)。例如,SRM代理将受保护的RO转换成与SRM1.0版本对应的格式。将受保护的RO转换成与SRM1.0对应的格式的原因是在将SRM150安装于终端100以外的终端时保持兼容性。即,通过使用SRM150中的权限可通过不同的终端顺利地使用内容。现在对这种转换作详细说明。SRM代理从受保护RO中提取<ro>元、<mac>元、<encryptedKey>元。并且SRM代理从<encryptedKey>元中提取MAC密钥(Kmc)和RO加密密钥(Kkek)。本领域内技术人员通过如上所述表1-表3的描述很容易理解这一点,因此省去详细说明。接着,SRM代理安装权限(Slll)。在正当地安装权限时,SRM代理将RO响应消息发送至DRM代理。在这种情形中,RO响应消息包括一状态参数。该状态参数被置为“成功”,通知安装已成功。RO响应消息需要具有完整性。为此,RO响应消息包括HMAC值。图6是示出根据本发明第三示例性实施例的方法的过程的流程图。如图6所示,在本发明的第三示例性实施例中,当RI400在同一个SRM中发布RO时,RI400将受保护的RO提供给终端100并且终端100的DRM代理稳定地解码并存储受保护RO并将受保护RO提供给SRM150。在这种情形中,受保护RO中的例如REK或CEK等重要信息不会泄漏至DRM代理。当成功地将权限安装在SRM150中时,DRM代理删除所存储的权限。现在参照附图进行详细说明。步骤S201和S202与图5所示第二示例性实施例的步骤S102和S103相同。当DRM代理将生成的RO请求消息发送给SRM时,DRM代理请求签名(S203)。通过发送例如签名询问请求消息的签名询问请求消息而实现签名请求。签名询问请求消息可包括没有签名的RO请求消息。签名询问请求消息包括下面表4所示的项表4<table>tableseeoriginaldocumentpage13</column></row><table>同时,RO请求消息需要具有完整性。为此,RO请求消息包括HMAC值。签名方案参数需要具有完整性保护。为此,RO请求消息包括HMAC值。在SRM代理执行关于RO请求消息的完整性验证后,SRM代理生成其数字签名(S204)。SRM代理将其签名并入RO请求消息中,就像SRM代理本身从RI400请求RO那样。在这种情形中,SRM代理可仅将其签名值发送给DRM代理或将SRM代理的签名并入RO请求消息的签名部分中。SRM代理将签名询问响应消息发送给DRM代理(S205)。签名询问响应消息包括含签名的RO请求消息。或者,签名询问响应消息可只包括签名值。签名询问响应消息包括如下表5所示的项表5<table>tableseeoriginaldocumentpage14</column></row><table>请求消息的数字签名同时,状态参数要求具有完整性保护。为此,RO请求消息包括HMAC值。状态字段可包括如下表6所示的值表6状态值Γ^Ι<table>tableseeoriginaldocumentpage14</column></row><table>未知错误其它错误包含签名的RO请求消息或签名要求具有完整性。为此,RO请求消息或签名包括HMAC值。RI400产生RO响应消息(S207)。接着,RI400将RO响应消息发送给DRM代理(S208)。在这种情形中,RI400在RO响应消息中包括以受保护RO的形式在之前生成或当前生成的R0。RO响应消息包括RI400的签名。RO请求消息和RO响应消息遵循OMADRM(开放式移动联盟数字权限管理)2.0协议或OMADRM2.1协议,其内容援引包含于此。如果DRM代理接收以“成功”为状态的RO响应消息,则DRM代理执行下面的规程(a)验证RO响应消息的签名;(b)如果签名有效,则检查RO响应消息中的设备ID。如果RO响应消息中的设备ID与存储在DRM代理中的SRMID匹配,则DRM代理从RO响应消息中受保护的RO中提取权限。因此,DRM代理验证所接收的RO响应消息并解析所接收的RO响应消息(S209)。艮口,通过解析,DRM代理解码受保护的R0。现在对其详细描述如下。首先,DRM代理从RO响应消息中提取安装在SRM150中的权限并将所提取的权限转换成权限信息,即存储在SRM150中的格式。权限信息包括如下面表7所示的权限元数据以及RO容器。另外,如果RO是状态性R0,则权限信息还可包括状态信息。表7权限元数据RightsObjectVersion:〈protectedRO>element:<ro>element<version>element.ROAlias:〈protectedRO>element:<ro>element:<roPayloadAliases><roAlias>element.RIIdentifier:〈protectedRO>element:<ro>element<riID>element.RIURL:<protectedRO>element<ro>element<riURL>element.RIAlias:〈protectedRO>element<ro>element<roPayloadAliases>element<riAlias>element.RITimeStamp:〈protectedRO>element:<ro>element<timeStamp>element.权限对象容器<rights>element:〈protectedRO>element<ro>element<rights>element.<signature>element:〈protectedRO>element<ro>element〈signature〉element.状杰信息如果RO是状态性R0,则DRM代理为SRM代理生成状态信息。在这种情形中,状态信息被填充以使已由RI400发布至SRM的RO保持未使用状态。接着,DRM代理测量所生成的权限信息的大小。而随后,DRM代理从RO响应消息中受保护的RO中提取包装密钥素材。该包装密钥素材可使用SRM代理的公钥加密。由于DRM代理无法对使用SRM代理的公钥加密的包装密钥素材进行解密,因此DRM代理传输包含包装密钥素材(包括Kma。和Kkek)的权限提供设置消息。包装密钥素材包括<protectedR0>元:<ro>jt:<enKey>jt<xencCipherData>元<xenc:Ciphervalue>元。符号“”表示一个或多个子元。换句话说,<protectedR0>元包含<ro>元,而<ro>元包含<encKey>元。此后,DRM代理随机地生成句柄以标识准备安装在SRM中的权限。DRM代理生成提供设置请求消息并将该提供设置请求消息发送给SRM代理(S210)。提供设置请求消息包括句柄、大小、包装密钥素材。详细地说,提供设置请求消息包括如下面表8所示的字段表8句柄句柄用来标识存储在SRM中的权限。句柄具有10字节,它是通过DRM代理随机生成的。可通过句柄从存储在SRM中的权限中选择特殊权限以使用内容。句柄被加密以等待并入。表示权限信息大小的权限大小被存^储在SRM代理中。权限信息包括权限元数据、RO容器和状态信息。包装密钥素材包装密钥素材包括MAC密钥、Kmac>REK和K·。包装密钥素材具有与包含在RO响应消息中的C值相同的值。C值对应于<protectedR0>元<ro>兀<encKey>兀<xencCipherData>JU<xencCiphervalue>兀SRM代理从DRM代理接收提供设置请求消息并执行提供设置规程(S211)。详细地说,SRM代理通过用SRM代理的私钥解码AES-WRAP(KEK,Kmac|Keek)而解码(解密)包装密钥素材并获取值κΜ。IκΚΕΚ。SRM代理将C值分割成C1和C2并通过使用C1值和Octet-String-to-Integer原始0S2IP0的函数获取值Cl。并且SRM代理通过使用SRM的私钥和获得的Z值解码(或解密)C1值。C11C2=CC1=0S2IP(Ci;mLen)Z=RSA.DECRYPT(PrivKeySRM,cl)=cldmodm这里,Kmac和Kkek均为发送方随机生成的128比特长的密钥。Kkek(“权限对象加密密钥”)是权限对象中的内容加密密钥Kcek的包装密钥。Kmac用于对携带Kkek的消息作密钥确认。不对称加密方案RSAES-KEM-KWS应当与AES-WRAP对称密钥包装方案一起使用,以便使用设备的RSA公钥(在这种情形下,SRM代理的RSA公钥)安全地将KM。和Kkek发送给接收设备。应当对每个加密运算选择如DRM2.ITS章节7.1.1中描述的独立随机值Z。对于AES-WRAP方案来说,Kmac和Kkek被连接起来以形成K,即KEK=KDF(I20SP(Z,mLen),NULL,kekLen)C2=AES-WRAP(KEK,Kmac|K燃)C1=I20SP(RSA.ENCRYPT(PubKeyllevice,Z),mLen)C=C11C2其中KEK是通过上面的KDF(如DRM2.ITS章节7.1.2中定义的密钥求导函数)取得的。KEK(密钥加密密钥)用于对KMe和Kkek作AES密钥包装。这里,参数C2是具有KEK的Km。和Kkek的AES包装密钥值。参数C1是具有设备的RSA公钥(在本发明中,是SRM的RSA公钥)的随机值Z的加密值。经加密的值(整数)被转换成Octec字符串。参数C是参数C1和C2的连接。0S2IP0函数用来将Octec字符串转换成非负整数。该函数在2002年6月的RSA库的“PKCS#lv2.1:RSA加密学标准”中有定义,网址为http//www,rsasecurity.com/rsalabs,其全部内容援引包含于此。SRM代理在下面示出的KDFO函数中使用上面计算出的Z值,由此获得KEK。KEK=KDF(120SP(Z,mLen),NULL,kekLen)这里,AES-UNWRAP0的输入是KEK和C2。KmacIK腿=AES-UNWRAP(KEK,C2)其中KDF是在[X9.44]中定义的密钥求导函数KDF2(和[X9.42]、[X9.63]中的KDF)的等效物。它定义为基于散列函数的简单密钥导出函数。对本说明书来说,散列函数应当是SHA-I。KDF采用三种参数共享的秘密值Z(基本)任意长度的octet字符串(可能是空字符串),otherlnfo密钥求导的其它信息,(基本)任意长度的octet字符串JPkLen密钥素材以octet计的打算长度。kLen应当是整数,最多(232_1)hLen,其中hLen是以octet计的散列函数输出的长度。来自KDF的输出是密钥素材K,长kLen的octet字符串。KDF的运算如下(注意下面的“[η]”表示大于或等于η的最小整数)1)使T为空字串2)使计数器从1至:「kLen/hLen1,作下列运算令D=计数器的4字节、不带符号的大端表示(例如如果计数器=946,D就是000003b2)令T=T|Hash(Z|D|otherInfo)。3)将T的第一kLenoctet作为导出密钥K输出。SRM代理存储来自解密的KMe和Kkek的值Kkek(REK)。值REK用来解码通过包含在例如权限提供请求的权限提供请求消息中的RO容器的〈rights〉元传输的经编码CEK,该权限提供请求消息被安排为接收自DRM代理。SRM代理在SRM中为句柄保留一个区域,该句柄包含在已从DRM代理接收的例如提供设置请求的提供设置请求消息中,并将提供设置响应消息发送至DRM代理(S212)。在这种情形中,保留针对句柄和REK的区,并当从后继的DRM代理接收到例如权限提供请求的权限提供请求消息时,将句柄与包含在权限提供请求消息中的权限信息存储在一起。提供设置响应消息包括如下面表9所示的字段表9<table>tableseeoriginaldocumentpage18</column></row><table>在这种情形下,如果SRM代理成功地结束了设置提供的准备,SRM代理在状态字段中包括表示“成功”的值。另外,SRM代理在Kmac字段中包括Kmac值。通过所接收的Kmac,可如下所述地确认受保护RO的完整性。在加密学中,消息认证码(经常为MAC)是用来验证消息的信息的一小段。有时称为密钥化(加密学)散列函数的MAC算法将所要验证的秘密密钥和任意长度的消息作为输入接收,并输出MAC(有时被称为标签)。MAC值通过允许验证器(它也具有密钥)检测消息内容的任何改变而保护消息的数据完整性及其真实性。如果SRM代理无法完成设置提供的准备,则SRM代理在状态字段中包括如下面表10所示的相应差错并传递差错。表10<table>tableseeoriginaldocumentpage18</column></row><table><table>tableseeoriginaldocumentpage19</column></row><table>当DRM代理接收提供设置响应消息时,该DRM代理验证RO(S213)。详细地说,DRM代理通过包含在提供设置响应消息中的Kme验证受保护的RO在从RI400接收DRM代理时尚未改变。通过该验证过程,DRM代理确认包含在受保护RO中的<ro>元中的〈rights〉元、KmacIKeek已被正确地传送。DRM代理代表SRM代理对受保护RO执行验证运算,且如果相应验证结果是正确的,则DRM执行权限提供规程。为了执行权限提供规程,DRM代理将权限提供设置请求消息发送给SRM代理(S214)。权限提供设置请求消息包括通过发送提供设置请求消息已保留在SRM中的句柄。句柄可被加密。另外,权限提供设置请求消息包括一个资源ID(LAID)和权限信息的列表。在这种情形中,DRM代理将已从RI400送来的RO改变成能由SRM代理识别的格式并在该消息中包含LAID和权限信息。能由SRM代理识别的格式可以是SRM1.0格式。权限提供设置请求消息可包括下面如表11所示的字段表11<table>tableseeoriginaldocumentpage19</column></row><table>当接收到权限提供设置请求消息时,SRM代理将权限安装在SRM中。为了安装,SRM代理执行下列规程(a)验证请求字段的完整性;(b)用会话密钥解密句柄;以及(c)将该句柄与提供设置请求消息中的句柄比较。一旦成功验证和比较,SRM代理在SRM中存储该句柄和包含在消息中的权限信息(S215)。并且SRM代理更新句柄列表。通过更新句柄列表,即使当SRM安装在不同终端上时也能识别出句柄。存储在SRM中的信息如下面的表12所不。表12<table>tableseeoriginaldocumentpage20</column></row><table>当安装结束时,SRM代理将权限提供响应消息提供给DRM代理(S216)。权限提供响应消息可包括下面如表13所示的字段表13<table>tableseeoriginaldocumentpage20</column></row><table>状态值记载于下面的表14中[表14]<table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>当接收到权限提供响应消息时,DRM代理确定安装是否成功,并且如果安装成功,DRM代理删除DRM代理已存储的R0(S217)。详细地说,DRM代理检查权限提供响应消息的状态字段值是否为“功能”。图7是详细示出图6中的步骤S210和S214的流程图。假设具有三个句柄A、B和C,并且相关权限存在于SRM代理中。DRM代理AllO将包含句柄“D”的提供设置请求发送给SRM代理以向该SRM代理提供权限(S210)。一旦接收到提供设置请求,SRM代理为从DRM代理A110传来的句柄“D”保留一空间,并通过一起发来的大小值检查是否有将权限存储在SRM的额外空间。如果SRM与DRM代理Al10分开并安装在DRM代理B120中,DRM代理B120不识别句柄列表中的句柄D。艮口,句柄D仅被保留,实际未被存储。DRM代理AllO接收权限提供请求消息(S214)。那么,DRM代理AllO检测包含在权限提供请求消息中的句柄是否与之前接收的提供设置请求消息中的句柄相同。如果两者相同,则SRM代理存储包含在权限提供请求消息中的权限。而SRM代理将句柄存储在之前预留的区域并激活该句柄。并随后,SRM代理更新句柄列表。在这种情形中,当SRM与DRM代理AllO分开并插入DRM代理B120时,DRM代理B120识别句柄列表中的句柄D。图8是示出根据本发明第四示例性实施例的方法过程的流程图。本发明如图8所示的第四示例性实施例与图6所示第三示例性实施例相同,除了步骤S311、S312、S314。因此,在下面的描述中,将重点放在步骤S311、S312、S314并且步骤S301-S313以及S315和S316的描述相应于图6的内容。参见图8,在步骤S311中,SRM代理不存储REK。另外,参照图8的步骤S312。SRM代理将Kme和REK发送给DRM代理。参见图8,在步骤S314,DRM代理在权限提供请求消息中包括句柄、REK、LAID、权限信息,并将它们发送给SRM。然后,SRM代理将句柄连同权限信息一起存储在句柄区域内。至此描述的方法可通过软件、硬件或其组合来实现。例如,根据本发明的方法可存储在存储介质(例如移动终端的内存、闪存、硬盘等),并可由被处理器(例如移动终端的内部微处理器)执行的软件程序中的代码或命令语言实现。这将结合图9予以详细说明。图9是根据本发明示例性实施例的终端100和SRM1150的示意性方框图。如图9所示,终端包括存储单元、控制器、发送/接收单元、连接器、控制器。存储卡(即SRM)包括存储单元、连接器和控制器。连接器连接终端100和存储卡,即SRM。存储单元存储图4-8所示的方法。存储单元存储每条接收的消息的信息。每个控制器控制存储单元和发送/接收单元。详细地说,控制器各自执行存储在存储单元中的方法。每个控制器通过发送/接收单元传输上述信号。由于本发明可以若干形式表现而不脱离其特征,应当理解上述实施例不受前面描述的任何细节限制,除非另有规定,而是在如所附权利要求书定义的范围内作广泛解释,并因此落在权利要求边界和范围内的所有变化和修正或这些边界和范围的等效物内的等效物由所附权利要求所涵盖。权利要求一种由终端代表安装于该终端中的存储卡从权限发布器(RI)接收权限对象(RO)并将接收的RO安装在所述存储卡中的方法,包括由所述终端接收来自所述RI的包含设备ID、受保护的RO和签名的RO响应消息;确定所述RO响应消息中的所述设备ID是否匹配于所述存储卡的ID;如果所述RO响应消息中的所述设备ID与所述存储卡的ID匹配,则由所述终端从所述受保护的RO中提取包装的密钥素材和信息以产生权限信息,并产生标识所述权限信息的标识符;将包含所述包装的密钥素材、所述标识符和关于所述权限信息的大小的信息的提供设置请求消息从所述终端发送至所述存储卡;由所述终端从所述存储卡接收提供设置响应消息,所述提供设置响应消息包括指示处理提供设置请求消息的结果的状态、由所述存储卡从所述包装的密钥素材中获得的验证密钥;使用所述验证密钥验证所述RO;将权限提供请求消息从所述终端发送至所述存储卡以将所述权限信息安装在所述存储卡中,所述权限提供请求消息包括所述标识符和所述权限信息;以及由所述终端从所述存储卡接收包括权限信息安装状态的权限提供响应消息。2.如权利要求1所述的方法,其特征在于,如果确定所述存储卡提供设置的状态表示所述存储卡设置成功,则执行所述验证RO的步骤。3.如权利要求1所述的方法,其特征在于,所述权限信息包括权限元数据、RO容器和状态fe息。4.如权利要求1所述的方法,其特征在于,所述生成标识符的步骤包括加密准备包含在所述提供设置请求消息中的标识符。5.如权利要求1所述的方法,其特征在于,所述包装的密钥素材包括Km。和Kkek;其中Kma。是RO完整性保护的消息认证码密钥,而Kkek是用于RO机密性的权限对象加密密钥。6.如权利要求1所述的方法,其特征在于,所述受保护的RO包括权限和所述包装的密钥素材中的至少一个。7.如权利要求1所述的方法,其特征在于,还包括由所述终端生成没有签名的RO请求消息;将签名请求消息从所述终端发送至所述存储卡;由所述终端从所述存储卡接收包含所述存储卡的签名的签名响应消息;以及将包含所述存储卡的签名的RO请求消息从所述终端发送至所述存储卡至所述RI。8.如权利要求7所述的方法,其特征在于,所述签名请求消息包含所述RO请求消息。9.如权利要求7所述的方法,其特征在于,所述签名响应消息包含签名请求消息处理结果。10.如权利要求7所述的方法,其特征在于,还包括由所述终端从所述RI接收触发消息。11.如权利要求1所述的方法,其特征在于,还包括如果权限信息安装状态指示所述权限信息已由所述存储卡成功安装,则从所述终端中删除所述权限信息。12.如权利要求10所述的方法,其特征在于,所述触发消息包括相应的设备ID,并且所述生成无签名的RO请求消息的步骤包括仅当验证出所述触发消息的设备ID与所述存储卡的ID匹配时才生成所述RO请求消息。13.如权利要求1所述的方法,其特征在于,所述验证密钥是MAC密钥。全文摘要一种通过终端稳定地发布权限对象(RO)至存储器(即SRM)的方法、设备和系统。当RO已通过使用稳定规程发布给存储卡时,即发布给SRM时,RO可与不支持该稳定规程的不同终端兼容,籍此RO可由不同终端完全地使用。文档编号G06F21/10GK101807234SQ20091024617公开日2010年8月18日申请日期2009年12月2日优先权日2009年1月29日发明者秋渊成,金兑炫申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1