具体实施方式
由图1的方框图说明其中可实施本发明各方面的实例性存储器系统。如图1所示,存储器系统或装置10包括中央处理单元(CPU)12、缓冲管理单元(BMU)14、主机接口模块(HIM)16和快闪接口模块(FIM)18、快闪存储器20和外围存取模块(PAM)22。存储器系统10通过主机接口总线26和端口26a与主机装置24通信。可能为与非类型的快闪存储器20为主机装置24提供数据存储。用于CPU 12的软件代码也可存储在快闪存储器20中。FIM 18通过快闪接口总线28和端口28a连接到快闪存储器20。HIM 16适于连接到如数码相机、个人计算机、个人数字助理(PDA)、数字媒体播放器、MP-3播放器、蜂窝式电话或其它数字装置等主机系统。外围存取模块22选择例如FIM、HIM和BMU等适当控制器模块来与CPU 12进行通信。在一个实施例中,系统10的位于虚线框内的所有组件可封闭在单个单元中(例如封闭在存储卡或棒10′中),且优选地被封装。
尽管本文参看具有卡形式的快闪存储器来说明本发明,但本发明还可应用于其它类型的存储器,而不管这些存储器是否具有卡形式,例如磁盘、光学CD以及所有其它类型的可重写非易失性存储器系统。
缓冲管理单元14包括主机直接存储器存取(HDMA)32、快闪直接存储器存取(FDMA)34、仲裁器36、缓冲器随机存取存储器(BRAM)38和密码引擎40。仲裁器36是共享的总线仲裁器,使得在任何时候只有一个主装置或起始器(其可以是HDMA 32、FDMA 34或CPU 12)可以是活动的,且从装置或目标装置是BRAM 38。仲裁器负责将适当的起始器请求引导到BRAM 38。HDMA 32和FDMA 34负责在HIM 16、FIM 18与BRAM 38或CPU随机存取存储器(CPU RAM)12a之间输送的数据。HDMA 32和FDMA34的操作是常规的,且不需要在此处详细描述。BRAM 38用于存储在主机装置24与快闪存储器20之间传递的数据。HDMA 32和FDMA 34负责在HIM 16/FIM 18与BRAM 38或CPU RAM 12a之间传送数据和指示扇区完成。
为了改进存储在存储器20中的内容的安全性,存储器系统10产生用于加密和/或解 密的密钥值。然而,通常逐个文件进行加密和解密,因为主机装置以文件形式读取数据和将数据写入到存储器系统10。类似于许多其它类型的存储装置,存储器装置10不知道文件或文件系统。尽管存储器20确实存储文件分配表(FAT),其中识别文件的逻辑地址,但FAT通常由主机装置24而不是由控制器12存取和管理。因此,为了加密特定文件中的数据,控制器12将必须依赖于主机装置来发送文件数据在存储器20中的逻辑地址,使得可由系统10使用只有系统10可用的密钥值来找到特定文件的数据并对其进行加密和/或解密。
为了向主机装置24和存储器系统10两者提供用以查阅用于对文件中的数据进行密码处理的相同密钥的句柄,主机装置提供针对系统10所产生的每一密钥值的参考,其中此类参考可仅仅是密钥ID。因此,主机24将由系统10密码处理的每一文件与密钥ID关联,且系统10将用于密码处理数据的每一密钥值与主机所提供的密钥ID关联。因此,当主机请求对文件进行密码处理时,其将把所述请求连同密钥ID连同待从存储器20取出或存储在存储器20中的数据的逻辑地址发送到系统10。系统10产生密钥值,并将由主机24提供的密钥ID与此类值关联,且执行密码处理。以此方式,在允许存储器系统10使用所述密钥控制密码处理时,不需要在存储器系统10的操作方式上作出任何变化。换句话说,系统10继续允许主机24通过具有对FAT的专有控制来管理文件,而其维持对用于密码处理的密钥值的产生和管理进行控制。
主机24所提供的密钥ID和存储器系统所产生的密钥值形成下文称为“内容加密密钥”或CEK的量的两个属性。尽管主机24可将每一密钥ID与一个或一个以上文件关联,但主机24也可将每一密钥ID与未经组织的数据或以任何方式组织的数据(且不限于组织成完整文件的数据)关联。
为了使用户或应用程序能够存取系统10中的受保护内容或区域,将需要使用预先向系统10注册的凭证来对所述用户或应用程序进行验证。凭证关系到授予具有此凭证的特定用户或应用程序的存取权利。在预先注册过程中,系统10存储用户或应用程序的身份和凭证以及由用户或应用程序确定且通过主机24提供的与此身份和凭证相关联的存取权利的记录。在已经完成预先注册之后,当用户或应用程序请求将数据写入到存储器20时,其将需要通过主机装置提供其身份和凭证、用于加密所述数据的密钥ID和其中将存储所述加密数据的逻辑地址。系统10产生密钥值,并将此值与主机装置提供的密钥ID关联,且在其针对此用户或应用程序的记录或表中存储用于加密待写入数据的密钥值的密钥ID。其接着加密所述数据,并将所述加密数据存储在主机所指定的地址处,以及存 储其所产生的密钥值。
当用户或应用程序请求从存储器20读取加密数据时,其将需要通过提供凭证来证明其身份,提供先前用于加密所请求数据的密钥的密钥ID,和其中存储加密数据的逻辑地址。系统10接着将把主机提供的用户或应用程序身份和凭证与存储在其记录中的那些进行匹配。如果它们匹配,那么系统10接着将从其存储器中取出与用户或应用程序提供的密钥ID相关联的密钥值,使用所述密钥值解密存储在由主机装置指定的地址处的数据,并将所述解密数据发送到用户或应用程序。
通过将验证凭证与用于密码处理的密钥的管理分离,于是能够在不共享凭证的情况下共享存取数据的权利。因此,一群组具有不同凭证的用户或应用程序可以存取用于存取相同数据的相同密钥,而此群组以外的用户不能存取。尽管一群组内的所有用户或应用程序可能能够存取相同数据,但其仍然可能具有不同权利。因此,一些可能具有只读存取,而其它可能具有只写存取,而另外的可能具有所述两者。由于系统10维持用户或应用程序身份和凭证、其能够存取的密钥ID和对每一密钥ID的相关联存取权利的记录,因而能够使系统10针对特定用户或应用程序添加或删除密钥ID并改变与此类密钥ID相关联的存取权利,从一个用户或应用程序向另一个用户或应用程序授予存取权利,乃至删除或添加用户或应用程序的记录或表,所有这些均由经恰当验证的主机装置控制。所存储的记录可规定需要安全通道来存取特定密钥。可使用对称或非对称算法以及口令来进行验证。
尤其重要的是存储器系统10中的安全内容的可携带性。由于密钥值是由存储器系统产生的且大致上不能由外部系统得到,因而当存储器系统或并入有所述系统的存储装置从一个外部系统转移到另一个外部系统时,存储于其中的内容的安全性得以维持,且外部系统不能够存取此内容,除非其已经以完全受存储器系统控制的方式得到验证。即使在受到如此验证之后,存取仍受存储器系统控制,且外部系统可仅以根据存储器系统中的预设记录来控制的方式进行存取。如果请求不符合此类记录,那么将否决所述请求。
为了在保护内容的过程中提供较大灵活性,设想存储器的特定区域(下文称为分区)可仅由经恰当验证的用户或应用程序存取。当与上述基于密钥的数据加密的特征组合时,系统10提供较大数据保护能力。如图2所示,快闪存储器20可将其存储容量划分为许多分区:一个用户区域或分区和多个自定义分区。用户区域或分区P0可在没有验证的情况下由所有用户和应用程序存取。尽管存储在用户区域中的所有数据位值可由任何应用程序或用户读取或写入,但如果所读取的数据被加密,那么没有解密权限的用户或应用 程序将不能够存取由存储在用户区域中的位值表示的信息。这例如通过存储在用户区域P0中的文件102和104来说明。用户区域中还存储有例如106的未加密文件,其可由所有应用程序和用户读取和理解。因此,象征性地将被加密的文件展示为具有与其相关联的锁,例如对于文件102和104来说。
尽管未授权应用程序或用户不能理解用户区域P0中的加密文件,但此类应用程序或用户可能仍然能够删除或破坏所述文件,这对于一些应用来说可能是不合需要的。为此目的,存储器20还包括受保护的自定义分区(例如分区P1和P2),其不能在没有先前验证的情况下存取。下文解释本申请案中的实施例中所准许的验证过程。
如图2中还说明的,各种用户或应用程序可存取存储器20中的文件。因此,图2中展示用户1和2以及应用程序1到4(在装置上运行)。在允许这些实体存取存储器20中的受保护内容之前,首先以下文解释的方式通过验证过程来对其进行验证。在此过程中,需要在主机侧处识别请求存取的实体以进行基于任务的存取控制。因此,请求存取的实体首先通过供应例如“我是应用程序2,我希望读取文件1”等信息来识别其自身。控制器12接着将所述身份、验证信息和请求与存储在存储器20或控制器12中的记录进行匹配。如果满足所有要求,那么对此实体准予存取。如图2中说明,允许用户1读取和写入分区P1中的文件101,但除了用户1具有用以读取和写入P0中的文件106的无限制权利外,可仅读取文件102和104。另一方面,不允许用户2存取文件101和104,但其具有对文件102的读取和写入存取权。如图2指示,用户1和2具有相同的登录算法(AES),而应用程序1和3具有不同的登录算法(例如,RSA和001001),其也不同于用户1和2的登录算法。用户1和2两者可在没有出示任何凭证且没有任何限制的情况下存取文件106。
安全存储应用程序(SSA)是存储器系统10的固件中的安全性应用程序,且说明本发明的实施例,所述实施例可用于实施上文指出的特征中的许多特征。SSA可实施为软件或计算机代码,其中数据库存储在存储器20或CPU 12中的非易失性存储器(未图示)中,且将SSA读取到RAM 12a中并由CPU 12执行。下表中陈述参考SSA而使用的首字母缩写。
定义、首字母缩写和简写
ACR |
存取控制记录 |
AGP |
ACR群组 |
CBC |
链块密码 |
CEK |
内容加密密钥 |
ECB |
电子代码本 |
ACAM |
ACR属性管理 |
PCR |
许可控制记录 |
SSA |
安全存取应用程序 |
实体 |
具有记录在SSA中并因此利用其功能性的具有真实且单独的存在(主机 侧)的任何事物。 |
SSA系统描述
数据安全性、完整性和存取控制是SSA的主要任务。数据是原本将直接存储在某种类的大容量存储装置上的文件。SSA系统位于存储系统的顶上,且为所存储的主机文件添加安全性层。
SSA的主要任务是管理与存储器中所存储(并保护)的内容相关联的不同权利。存储器应用程序需要管理多个用户和对多个存储内容的内容权利。来自其侧的主机应用程序看见此类应用程序可见的驱动器和分区以及管理并描绘所存储文件在存储装置上的位置的文件分配表(FAT)。
在此情况下,存储装置使用划分成若干分区的与非快闪芯片,但其它移动存储装置也可使用且属于本发明的范围内。这些分区是逻辑地址的连续线程,其中开始地址与结束地址界定其边界。因此,如果需要的话,可借助于将限制与此类边界内的地址关联的软件(例如存储在存储器20中的软件)来对隐藏分区存取强加此类限制。分区通过其逻辑地址边界而对于SSA来说是完全可辨认的,其逻辑地址边界由SSA管理。SSA系统使用分区来在物理上保护数据免受未授权主机应用程序使用。对于主机,所述分区是界定将在其中存储数据文件的专有空间的机制。这些分区可以是公用的,其中存取存储装置的任何一者可看见并知道所述分区存在于装置上,或者这些分区可以是私用的或隐藏的,其中只有选定主机应用程序能够存取或知道它们存在于存储装置中。
图3是存储器的示意图,其说明存储器的分区:P0、P1、P2和P3(显然,可采用四个以下或四个以上分区),其中P0是公用分区,其可由任何实体在没有验证的情况下存取。
私用分区(例如P1、P2或P3)隐藏对其内的文件的存取。通过防止主机存取所述分区,快闪装置(例如,快闪卡)保护所述分区内部的数据文件。然而,这种保护通过对存储在隐藏分区内的逻辑地址处的数据的存取强加限制而涉及驻存在所述分区中的所 有文件。换句话说,所述限制与一系列逻辑地址相关联。能够存取所述分区的所有用户/主机均将能够无限制地存取内部所有文件。为了将不同文件(或文件群组)彼此隔离,SSA系统使用密钥和密钥参考或密钥ID来对每个文件(或文件群组)提供另一等级的安全性和完整性。用于加密位于不同存储器地址处的数据的特定密钥值的密钥参考或密钥ID可比作含有加密数据的容器或领域。由于这个原因,在图4中,密钥参考或密钥ID(例如,“密钥1”和“密钥2”)在图形上展示为围绕使用与密钥ID相关联的密钥值加密的文件的区域。
参看图4,举例来说,文件A可由所有实体在没有任何验证的情况下存取,因为其展示为没有被任何密钥ID包围。即使公用分区中的文件B可由所有实体读取或重写,其也含有用具有ID“密钥1”的密钥加密的数据,使得文件B中所含有的信息不能由实体存取,除非此实体能够存取此密钥。以此方式,使用密钥值和密钥参考或密钥ID仅提供逻辑保护,这与上述由分区提供的保护类型相反。因此,可存取分区(公用的或私用的)的任何主机能够读取或写入整个分区中的数据,包括加密数据。然而,由于数据被加密,因而未授权用户只能对其进行破坏。优选地,他们不能在没有检测的情况下改变所述数据或使用所述数据。通过限制对加密和/或解密密钥的存取,此特征可仅允许授权实体使用所述数据。文件B和C也使用P0中的具有密钥ID“密钥2”的密钥加密。
可通过使用内容加密密钥(CEK)的对称加密方法来提供数据机密性和完整性(每个CEK一个)。在SSA实施例中,CEK由快闪装置(例如,快闪卡)产生,仅在内部使用,且保持为秘密。经加密或上密的数据也可散列,或者密码是链块,以确保数据完整性。优选地,CEK存储在存储器的不能在正常操作期间由卡外部的实体存取的安全部分中。
并非分区中的所有数据均由不同密钥加密并与不同密钥ID相关联。公用或用户文件中或操作系统区域(即,FAT)中的特定逻辑地址可能不与任何密钥或密钥参考相关联,且因此可由能存取所述分区本身的任何实体得到。
需要创建密钥和分区以及从其写入和读取数据或使用所述密钥的能力的实体需要通过存取控制记录(ACR)登录到SSA系统。ACR在SSA系统中的特权称为动作。每个ACR可具有用以执行以下三个种类的动作的许可:创建分区和密钥/密钥ID、存取分区和密钥以及创建/更新其他ACR。
ACR被组织成称为ACR群组或AGP的群组。一旦ACR已经成功验证,SSA系统便打开通过其可执行任何ACR动作的会话。
用户分区
SSA系统管理一个或一个以上公用分区(也称为用户分区)。此分区存在于存储装置上,且是可通过存储装置的标准读取写入命令存取的分区。获得关于分区大小以及其存在于装置上的信息优选地不能向主机系统隐瞒。
SSA系统使得能够通过标准读取写入命令或SSA命令存取此分区。因此,存取所述分区优选地不能限制于具体ACR。然而,SSA系统可使得主机装置能够限制对用户分区的存取。可单独启用/停用读取和写入存取权。允许所有四个组合(例如,只写、只读(写保护)、读取与写入以及没有存取权)。
SSA系统使得ACR能够将密钥ID与用户分区内的文件关联,且使用与此类密钥ID相关联的密钥来加密各个文件。存取用户分区内的加密文件以及设置对所述分区的存取权利将使用SSA命令集来进行(对SSA命令的详细描述参见附录A——在所述附录中,密钥ID被称为“领域”)。
以上特征也适用于未组织成文件的数据。
SSA分区
这些是隐藏(向主机操作系统或OS隐藏)分区,其仅可通过SSA命令来存取。除了通过由登录到ACR上建立的会话(下文描述)外,SSA系统将优选地不允许主机装置存取SSA分区。类似地,优选地SSA将不提供关于SSA分区的存在、大小和存取许可的信息,除非此请求是通过所建立的会话传来的。
从ACR许可导出对分区的存取权利。一旦ACR登录到SSA系统中,其便可与其它ACR共享所述分区(下文描述)。当创建分区时,主机为所述分区提供参考名称或ID(例如,图3和4中的P0到P3)。此参考用于对所述分区的另外读取和写入命令。
存储装置的划分
优选地将装置的所有可用存储容量分配到用户分区和当前配置的SSA分区。因此,任何重新划分操作可涉及对现有分区的重新配置。装置容量(所有分区的大小总和)的净变化将为零。装置存储器空间中的分区的ID由主机系统界定。
主机系统可将一个现有分区重新划分成两个较小分区,或将两个现有分区(其可以是相邻或不相邻的)合并成一个。经划分或合并的分区中的数据可在主机判断下被擦除或保持不变。
由于重新划分存储装置可能造成数据损失(因为其被擦除或在存储装置的逻辑地址空间中到处移动),因而对重新划分的严格限制由SSA系统管理。只允许驻留在根AGP 中的ACR(下文解释)发出重新划分命令,且其仅可提及其所拥有的分区。由于SSA系统不知道在所述分区中如何组织数据(FAT或其它文件系统结构),因而主机的职责是每当重新划分装置时重新构造这些结构。
重新划分用户分区将改变主机OS可见的此分区的大小和其它属性。
在重新划分之后,主机系统的职责是确保SSA系统中的任何ACR不提及非现有分区。如果这些ACR没有被删除或适当更新,那么系统将检测到代表这些ACR存取非现有分区的将来试图并将其拒绝。关于被删除的密钥和密钥ID,优选地采取类似处理。
密钥、密钥ID和逻辑保护
当将文件写入到特定隐藏分区时,所述文件在物理上对一般公众隐藏。但是,一旦实体(敌意的或非敌意的)得知并存取此分区,那么所述文件成为可用的且清晰可见。为了进一步保护文件,SSA可在隐藏分区中对其进行加密,其中用于存取用于解密所述文件的密钥的凭证优选地不同于用于存取所述分区的凭证。由于文件是SSA不知道的事物(完全由主机控制和管理)的事实,将CEK与文件关联是个问题。将文件链接到SSA知道的某事物(密钥ID)改正了这点。因此,当由SSA创建密钥时,主机将用于此密钥的密钥ID与使用由SSA创建的密钥加密的数据关联。
密钥值和密钥ID提供逻辑安全性。用相同内容加密密钥(CEK)来对与给定密钥ID相关联的所有数据上密,而不管所述数据的位置如何,所述CEK的参考名称或密钥ID是在由主机应用程序创建时唯一提供的。如果实体获得对隐藏分区的存取权(通过ACR进行验证)且希望读取或写入此分区内的加密文件,那么其需要能够存取与所述文件相关联的密钥ID。当准予存取针对此密钥ID的密钥时,SSA加载与此密钥ID相关联的CEK中的密钥值,并在将数据发送到主机之前对其进行解密或在将数据写入到快闪存储器20之前对其进行加密。与密钥ID相关联的CEK中的密钥值由SSA系统随机创建一次,并由SSA系统维持。密钥值完全由SSA管理。
SSA系统使用以下密码模式中的任何一者(用户定义)来保护与密钥ID相关联的数据(所使用的实际密码算法以及CEK中的密钥值是系统控制的,且不会泄露到外界):
块模式——将数据划分成多个块,其每一者被单独加密。此模式通常被认为是较不安全的且易于受到字典式攻击。然而,其将允许用户随机存取所述数据块中的任一者。
链接模式——将数据划分成多个块,其在加密过程期间进行链接。每个块用作对下一块的加密过程的一个输入。此模式虽然被认为是较为安全的,但需要始终从头到尾依次写入和读取数据,从而造成用户未必可接受的额外开销。
散列——额外创建可用于检验数据完整性的数据摘要的链模式。
ACR和存取控制
SSA经设计以处理多个应用程序,其中所述应用程序的每一者表示为系统数据库中的节点树。通过确保树分支之间没有串扰来实现所述应用程序之间的相互排斥。
为了获得对SSA系统的存取权,实体需要经由一个系统ACR建立连接。登录程序由SSA系统根据用户选择与之连接的ACR中所嵌入的定义进行管理。
ACR是通往SSA系统的单独登录点。ACR保持登录凭证和验证方法。所述记录中还驻存有SSA系统内的登录许可,尤其是读取和写入特权。这在图5中说明,图5说明同一AGP中的n个ACR。这意味着所述n个ACR中的至少一些可共享对同一密钥的存取权。因此,ACR#1和ACR#n共享对具有密钥ID“密钥3”的密钥的存取权,其中ACR#1和ACR#n是ACR ID,且“密钥3”是用于加密与“密钥3”相关联的数据的密钥的密钥ID。同一密钥还可用于加密和/或解密多个文件或多组数据。
SSA系统支持若干类型的系统登录,其中验证算法和用户凭证可以变化,且一旦用户成功登录,其在系统中的特权也可变化。图5再次说明不同的登录算法和凭证。ACR#1需要口令登录算法和口令作为凭证,而ACR#2需要PKI(公用密钥基础设施)登录算法和公用密钥作为凭证。因此,为了登录,实体将需要出示有效ACR ID,以及正确的登录算法和凭证。
一旦实体登录到SSA系统的ACR中,便在与所述ACR相关联的许可控制记录(PCR)中定义其许可(其使用SSA命令的权利)。在图5中,根据所示PCR,ACR#1向与“密钥3”相关联的数据授予只读许可,且ACR#2授予读取和写入与“密钥5”相关联的数据的许可。
不同ACR可在系统中(例如在用以读取和写入的密钥中)共享共同利益和特权。为了完成此,将具有某些共同点的ACR分组成AGP(ACR群组)。因此,ACR#1和ACR#3共享对具有密钥ID“密钥3”的密钥的存取权。
AGP和其中的ACR被组织成分层树,且因此不包括创建保持敏感数据安全的安全密钥;ACR还可优选地创建对应于其密钥ID/分区的其它ACR条目。这些ACR子代将具有与其父代(创建者)相同或较少的许可,且可给予针对父代ACR本身创建的密钥的许可。不必说,子代ACR获得对其所创建的任何密钥的存取许可。这在图6中说明。因此,AGP 120中的所有ACR均由ACR 122创建,且此类ACR中的两者均由用以存取与“密钥3”相关联的数据的ACR 122许可演变而来。
AGP
通过指定AGP和所述AGP内的ACR来登录SSA系统。
每个AGP具有唯一ID(参考名称),其用作对其在SSA数据库中的条目的索引。当创建AGP时,向SSA系统提供AGP名称。如果所提供的AGP名称已经存在于所述系统中,那么SSA将拒绝所述创建操作。
AGP用于管理对授予存取和管理许可的限制,如将在以下部分中描述。图6中所述两棵树提供的功能之一是管理完全分离的实体(例如两个不同应用程序或两个不同计算机用户)的存取。为此目的,可能重要的是,所述两个存取过程大致上彼此独立(即,大致上没有串扰),即使所述两者同时发生也是如此。这意味着每一树中的验证、许可以及额外ACR和AGP的创建不连接到且不依赖于另一树的中的验证、许可以及额外ACR和AGP的创建。因此,当SSA系统用于存储器10中时,这允许存储器系统10同时服务于多个应用程序。其还允许所述两个应用程序彼此独立地存取两组单独数据(例如,一组照片和一组歌曲)。这在图6中说明。因此,用于应用程序或用户经由图6顶端部分的树中的节点(ACR)存取的与“密钥3”、“密钥X”和“密钥Z”相关联的数据可包含照片。用于应用程序或用户经由图6底端部分的树中的节点(ACR)存取的与“密钥5”和“密钥Y”相关联的数据可包含歌曲。创建所述AGP的ACR具有用以优选地仅在所述AGP没有ACR条目时将其删除的许可。
实体的SSA入口点:存取控制记录(ACR)
SSA系统中的ACR描述准许实体登录到系统中的方式。当实体登录到SSA系统中时,其需要指定对应于其打算执行的验证过程的ACR。ACR包括准许控制记录(PCR),所述PCR说明用户在得以验证时可执行的准予动作,如在图5说明的ACR中定义。主机侧实体提供所有ACR数据字段。
当实体已经成功登录到ACR上时,实体将能够询问所有的ACR分区和密钥存取许可及ACAM许可(下文解释)。
ACR ID
当SSA系统实体起始登录过程时,其需要指定对应于所述登录方法的ACR ID(其在创建ACR时由主机提供),使得当已经满足所有登录要求时,SSA将设定正确的算法并选择正确的PCR。当创建ACR时,向SSA系统提供ACR ID。
登录/验证算法
验证算法指定实体将使用什么类别的登录程序,且需要什么种类的凭证来提供用户身份的证明。SSA系统支持若干标准登录算法,从没有程序(且没有凭证)和基于口令的程序到基于对称或不对称密码术的双向验证协议。
凭证
实体的凭证对应于登录算法,且由SSA用于检验和验证用户。凭证的实例可以是用于口令验证的口令/PIN编号、用于AES验证的AES密钥等。预先定义并根据验证模式导出凭证的类型/格式(即,PIN、对称密钥等);当创建ACR时,将所述凭证提供到SSA系统。除了基于PKI的验证之外,SSA系统不参与定义、分发和管理这些凭证,在基于PKI的验证中,装置(例如,快闪卡)可用于产生RSA密钥对,且可输出公用密钥以用于产生证书。
许可控制记录(PCR)
PCR展示在登录到SSA系统中且成功通过ACR的验证过程之后授予实体什么许可。存在三种类型的许可类别:针对分区和密钥的创建许可、针对分区和密钥的存取许可以及针对实体ACR属性的管理许可。
存取分区
PCR的此部分含有实体在成功完成ACR阶段后可存取的分区(使用提供给SSA系统的其ID)的列表。对于每一分区,存取类型可限于只写或只读,或者可规定完全写入/读取存取权利。因此,图5中的ACR#1能够存取分区#2而不能存取分区#1。PCR中规定的限制适用于SSA分区和公用分区。
可通过对主控SSA系统的装置(例如,快闪卡)的常规读取和写入命令或通过SSA命令存取公用分区。当根ACR(下文解释)经创建为具有用以限制公用分区的许可时,其可将所述许可传递给其子代。ACR可优选地仅限制常规读取和写入命令不存取公用分区。可优选地仅在创建时限制SSA系统中的ACR。一旦ACR具有用以从公用分区读取或向公用分区写入的许可,便优选地不能解除所述许可。
存取密钥ID
PCR的此部分含有与当实体登录过程已经满足ACR政策时实体可存取的密钥ID的列表(由主机提供到SSA系统)相关联的数据。所规定的密钥ID与驻存在出现于PCR中的分区中的文件相关联。由于密钥ID不与装置(例如,快闪卡)中的逻辑地址相关联,因而当一个以上分区与具体ACR相关联时,文件可位于所述分区的任一者中。PCR中规定的密钥ID可每一者具有不同组存取权利。由密钥ID指向的存取数据可限于只写或只读,或者可规定全部写入/读取存取权利。
ACR属性管理(ACAM)
此部分描述在特定情况下可如何改变ACR的系统属性。
在SSA系统中可能准予的ACAM动作是:
创建/删除/更新AGP和ACR。
创建/删除分区和密钥。
授予针对密钥和分区的存取权利。
父代ACR优选地不能编辑ACAM许可。这将优选地需要删除和重新创建ACR。而且,优选地不能解除由ACR创建的针对密钥ID的存取许可。
创建/删除/更新AGP和ACR
ACR可能具有用以创建其它ACR和AGP的能力。创建ACR还可能意味着授予它们其创建者所拥有的某些或全部ACAM许可。具有用以创建ACR的许可意味着具有用于以下动作的许可:
1.定义和编辑子代的凭证——验证方法优选地一旦由创建ACR设置便不能被编辑。可在已经为子代定义的验证算法的边界内改变凭证。
2.删除ACR。
3.向子代ACR授予创建许可(因而具有孙代)。
具有用以创建其它ACR的许可的ACR具有用以向其创建的ACR授予解阻准许的许可(但其可能不具有用以将ACR解阻的许可)。父代ACR将在子代ACR中放置对其解阻者的参考。
父代ACR是具有用以删除其子代ACR的许可的仅有ACR。当ACR删除其创建的较低层级ACR时,那么此较低层级ACR所产生的所有ACR均同样被自动删除。当ACR被删除时,那么其创建的所有密钥ID和分区均被删除。
存在两种ACR可借以更新其自身记录的例外情况:
口令/PIN虽然由创建者ACR设置,但仅可由包括它们的ACR更新。
根ACR可删除其自身和其所驻存的AGP。
授予针对密钥和分区的存取权利
ACR和其AGP组合在分层树中,其中根AGP和其中的ACR处于所述树的顶部(例如,图6中的根AGP 130和132)。SSA系统中可存在若干AGP树,但它们完全彼此分离。AGP内的ACR可向其所在的同一AGP内的所有ACR和由它们创建的所有ACR授予针对其密钥的存取许可。用以创建密钥的许可优选地包括用以授予用以使用所述密钥的存取许可的许可。用以授予存取权利的许可可存储作为相应ACR的许可控制记录中的属性。
针对密钥的许可划分成三个类别:
1.存取——这定义针对所述密钥的存取许可,即读取、写入。
2.所有权——根据定义,创建密钥的ACR是所述密钥的所有者。此所有权可从一个ACR授予另一ACR(只要它们处于同一AGP中或处于子代AGP中)。密钥的所有权提供用以将其删除以及向其授予许可的许可。
3.存取权利授予——此许可使得ACR能够授予其持有的权利。
ACR可授予针对其创建的分区以及其对之具有存取许可的其它分区的存取许可。
所述许可授予是通过将分区名称和密钥ID添加到指定ACR的PCR来进行的。授予密钥存取许可可以通过密钥ID或通过声明存取许可是针对授予ACR的所有创建密钥的来进行。
ACR的阻断和解阻
ACR可具有阻断计数器,其所述系统对实体的ACR验证过程不成功时递增。当达到不成功验证的特定最大数目(MAX)时,ACR将由SSA系统阻断。
阻断ACR可由另一ACR(由所述阻断ACR提及)解阻。对解阻ACR的提及由其创建者设置。解阻ACR优选地处于与阻断ACR的创建者相同的AGP中,且具有“解阻”许可。
所述系统中没有其它ACR能将阻断ACR解阻。ACR可经配置有阻断计数器但没有解阻者ACR。在此情况下,如果此ACR被阻断,那么其不能被解阻。
根AGP——创建应用程序数据库
SSA系统经设计以处理多个应用程序,且将其每一者的数据隔离。AGP系统的树结构是用于识别和隔离应用程序特定数据的主要工具。根AGP处于应用程序SSA数据库树的尖端处,且遵守稍微不同的行为规则。可在SSA系统中配置若干根AGP。图6中展示两个根AGP 130和132。显然,可使用更少或更多的AGP,且其属于本发明范围内。
将装置(例如,快闪卡)注册用于新的应用程序和/或为装置发行新应用程序的凭证是通过将新AGP/ACR树添加到装置的过程来进行的。
SSA系统支持三种不同的根AGP创建模式(以及根AGP的所有ACR和其许可):
1.开放:不需要任何类别的验证的任何用户或实体或者通过系统ACR验证(下文解释)的用户/实体可创建新的根AGP。所述开放模式使得能够在没有任何安全性措施的情况下且同时所有数据传送均在开放通道上进行(即,在发行代理的安全环境中)或经由通过系统ACR验证建立的安全通道(即,空中(OTA)和后发行程序)来创建根AGP。
如果系统ACR没有被配置(这是可选特征),且根AGP创建模式被设置为开放,那么只有开放通道选项是可用的。
2.受控:只有通过系统ACR验证的实体才能创建新的根AGP。如果没有配置系统ACR,那么不能将SSA系统设置成此模式。
3.锁定:停用根AGP的创建,且不能向所述系统添加额外的根AGP。
两个SSA命令控制此特征(这些命令可在没有验证的情况下供任何用户/实体使用):
1.方法配置命令——用于将SSA系统配置成使用所述三种根AGP创建模式中的任一种。只允许以下模式变化:开放->受控,受控->锁定(即,如果SSA系统当前被配置成受控,那么其仅可变化为锁定)。
2.方法配置锁定命令——用于停用方法配置命令,并永久锁定当前选定的方法。
当创建根AGP时,其处于特殊起始模式,所述模式启用其ACR的创建和配置(使用与应用于根AGP创建的相同的存取限制)。在根AGP配置过程的结尾,当实体明确将其切换到操作模式时,不再能更新现有ACR且不再能创建额外的ACR。
一旦将根AGP置于标准模式中,便仅可通过经由其ACR中分派有用以删除根AGP的许可的一个ACR登录到系统中来将所述根AGP删除。除了特殊起始模式之外,这是根AGP的另一种例外情况;其优选地是可含有具有用以删除其自身AGP的许可的ACR的仅有AGP,而不是处于下一树层级中的AGP。
根ACR与标准ACR之间的第三且最后的差异在于,其是所述系统中可具有用以创建和删除分区的许可的仅有ACR。
SSA系统ACR
系统ACR可用于以下两个SSA操作:
1.在敌意环境内在安全通道的保护下创建ACR/AGP树。
2.识别并验证主控SSA系统的装置。
优选地可在SSA中仅存在一个系统ACR,且一旦被定义,就优选地不能将其改变。当创建系统ACR时,不需要系统验证;只需要SSA命令。可停用创建系统ACR特征(类似于创建根AGP特征)。在创建系统ACR之后,创建系统ACR命令没有作用,因为优选地只允许一个系统ACR。
在处于创建过程中时,系统ACR是不操作的。在完成之后,需要发布特殊命令,从而指示系统ACR已被创建且准备实行。此后,优选地不能更新或替换系统ACR。
系统ACR在SSA中创建根ACR/AGP。其具有用以添加/改变根层级直到主机对其感 到满意并将其阻断时为止的许可。阻断根AGP在本质上切断其与系统ACR的连接且致使其成为防窜改的。此时,没有一者能够改变/编辑根AGP和其中的ACR。这是通过SSA命令来进行的。停用根AGP创建具有永久作用,且不能撤销。以上涉及系统ACR的特征在图7中说明。系统ACR用于创建三个不同的根AGP。在创建这些AGP之后的特定时间处,从主机发送SSA命令以将根AGP与系统ACR阻断,进而停用创建根AGP特征,如图7中将系统ACR连接到根AGP的虚线指示。这致使所述三个根AGP成为防窜改的。在阻断所述根AGP之前或之后,所述三个根AGP可用于创建子代AGP以形成三颗单独的树。
上述特征在用内容配置安全产品的过程中向内容所有者提供较大灵活性。安全产品需要“发行”。发行是放置识别密钥的过程,装置可通过所述识别密钥来识别主机且反之亦然。识别装置(例如,快闪卡)使得主机能够决定其是否可将其秘密委托给所述装置。另一方面,识别主机只有在主机得到允许时才使得装置能够执行安全性政策(授予并执行具体主机命令)。
经设计以服务于多个应用程序的产品将具有若干识别密钥。所述产品可“预发行”——在发货之前在制造期间存储密钥,或“后发行”——在发货之后添加新的密钥。对于后发行来说,存储器装置(例如,存储卡)需要含有某种主或装置层级密钥,其用于识别允许向装置添加应用程序的实体。
上述特征使得能够将产品配置为启用/停用后发行。另外,可在发货之后安全地进行后发行配置。可作为上面除了上述主或装置层级密钥之外没有任何密钥的零售产品来购买所述装置,且接着由新的所有者对其进行配置以启用另外的后发行应用程序或将其停用。
因此,系统ACR特征提供用以完成上述目标的能力:
——没有系统ACR的存储器装置将允许无限制且不受控制地添加应用程序。
——没有系统ACR的存储器装置可经配置以停用系统ACR创建,这意味着没有办法控制添加新的应用程序(除非同样停用创建新根AGP的特征)。
——具有系统ACR的存储器装置将只允许经由使用系统ACR凭证通过验证程序建立的安全通道来受控地添加应用程序。
——具有系统ACR的存储器装置可经配置以在已经添加了应用程序之前或之后停用应用程序添加特征。
密钥ID列表
根据具体ACR请求创建密钥ID;然而,在存储器系统10中,只有SSA系统使用所述密钥ID。当创建密钥ID时,由创建ACR提供或向创建ACR提供以下数据:
1.密钥ID。所述ID由实体通过主机提供,且用于在所有另外读取或写入存取中参考密钥或使用所述密钥加密或解密的数据。
2.密钥密码和数据完整性模式(上述且如下文解释的分块、链接和散列模式)。
除了主机提供的属性之外,SSA系统还维持以下数据:
1.密钥ID所有者。作为所有者的ACR的ID。当创建密钥ID时,创建者ACR是其所有者。然而,密钥ID所有权可转移到另一ACR。优选地,只允许密钥ID所有者转移密钥ID的所有权和授予密钥ID。授予针对相关联密钥的存取许可和撤销这些权利可由密钥ID所有者或分派有授予许可的任何其它ACR来管理。每当试图实行这些操作中的任一者时,SSA系统将只有在请求ACR被授权时才准予所述试图。
2.CEK。这是用于对与密钥ID相关联或由密钥ID指向的内容上密的CEK。CEK可以是由SSA系统产生的128位AES随机密钥。
3.MAC和IV值。链块密码(CBC)加密算法中使用的动态信息(消息验证代码和起始向量)。
还参看图8A到16的流程图来说明SSA的各种特征,其中步骤左边的“H”意味着所述操作由主机执行,且“C”意味着所述操作由卡执行。为了创建系统ACR,主机向存储器装置10中的SSA发布用以创建系统ACR的命令(方框202)。装置10通过检查是否已经存在系统ACR来作出响应(方框204,菱形206)。如果其已经存在,那么装置10返回失败并停止(椭圆形208)。如果其不存在,那么存储器10检查以查看是否允许系统ACR创建(菱形210),且如果不允许的话,返回失败状态(方框212)。因此,可能存在其中装置发行者不允许创建系统ACR的情况,例如在其中已经预定了所需要的安全性特征,使得不需要系统ACR的情况下。如果允许这种情况,那么装置10返回OK状态并等待来自主机的系统ACR凭证(方框214)。主机检查SSA状态并检查装置10是否已经指示允许创建系统ACR(方框216和菱形218)。如果不允许创建或者如果系统ACR已经存在,那么主机停止(椭圆形220)。如果装置10已经指示允许创建系统ACR,那么主机发布SSA命令以定义其登录凭证并将其发送到装置10(方框222)。装置10用所接收的凭证来更新系统ACR记录,并返回OK状态(方框224)。响应于此状态信号,主机发布SSA命令,其指示系统ACR准备就绪(方框226)。装置10通过锁定系统ACR使得不能对其进行更新或替换来作出响应(方框228)。这锁定系统ACR的特征和其用 于向主机识别装置10的身份。
通过在装置中配置这些功能的方式确定用于创建新树(新根AGP和ACR)的程序。图9解释所述程序。主机24和存储器系统10两者均遵守所述程序。如果完全停用添加新的根AGP,那么不能添加新的根AGP(菱形246)。如果启用添加且其需要系统ACR,那么在发布创建根_AGP命令(方框254)之前,主机通过系统ACR进行验证且建立安全通道(菱形250,方框252)。如果不需要系统ACR(菱形248),那么主机24可在没有验证的情况下发布创建根AGP命令并前进到方框254。如果系统ACR确实存在,那么即使不需要系统ACR,主机也可使用系统ACR(流程图中未展示)。如果所述功能停用,那么装置(例如,快闪卡)将拒绝对创建新根AGP的任何试图,且如果需要系统ACR,那么其将拒绝对在没有验证的情况下创建新根AGP的试图(菱形246和250)。现在将方框254中新近创建的AGP和ACR切换到操作模式,使得不能更新或以另外方式改变此类AGP中的ACR,且不能向其添加任何ACR(方框256)。接着视情况锁定系统,使得不能创建额外的根AGP(方框258)。虚线框258是指示此步骤是可选步骤的惯例。此应用程序的图式的流程图中以虚线表示的所有框均是可选步骤。这允许内容所有者阻止将装置10用于可能模仿具有合法内容的真实存储器装置的其它非法用途。
为了创建ACR(不同于上文描述的位于根AGP中的ACR),可以用任何有权利创建ACR的ACR来开始(方框270),如图10所示。实体可能试图通过提供入口点ACR身份来进入主机24,且ACR具有其希望创建的所有必要属性(方框272)。SSA检查与ACR身份的匹配,并检查具有此类身份的ACR是否具有用以创建ACR的许可(菱形274)。如果所述请求经检验为被授权的,那么装置10中的SSA创建ACR(方框276)。
图11展示两个AGP,其说明可用于使用图10的方法的安全性应用程序的树。因此,营销AGP中具有身份m1的ACR具有用以创建ACR的许可。ACR m1还具有用以使用用于读取和写入与密钥ID“营销信息”相关联的数据和与密钥ID“价格列表”相关联的数据的密钥的许可。通过使用图10的方法,其创建具有两个ACR(s1和s2)的销售AGP,所述ACR仅具有针对用于存取与密钥ID“价格列表”相关联的定价数据的密钥但不是针对用于存取与密钥ID“营销信息”相关联的数据所必要的密钥的读取许可。以此方式,具有ACR s1和s2的实体只能读取而不能改变定价数据,且将不能存取营销数据。另一方面,ACR m2没有用以创建ACR的许可,且仅具有针对用于存取与密钥ID“价格列表”相关联和与密钥ID“营销信息”相关联的数据的密钥的读取许可。
因此,可以上文解释的方式授予存取权利,其中m1向s1和s2授予用以读取定价数 据的权利。这在涉及较大营销和销售群组的情况下特别有用。在存在仅一个销售人员或一些销售人员的情况下,可能不需要使用图10的方法。而是,可由ACR向处于同一AGP内较低或同一层级处的ACR授予存取权利,如图12所说明的。首先,实体通过以上文描述的方式经由主机在用于此AGP的树中指定ACR来进入所述树(方框280)。接下来,主机将指定ACR和待授予的权利。SSA检查用于此ACR的树,并检查ACR是否具有用以向所指定的另一ACR授予权利的许可(菱形282)。如果是的话,那么授予所述权利(方框284);如果不是的话,那么停止。图13中说明所述结果。此情况下,ACR m1具有用以向ACR s1授予读取许可的许可,使得s1将能够在授予之后使用用以存取定价数据的密钥。如果m1具有相同或较大的用以存取定价数据的权利和用以如此授予的许可,那么可执行这个操作。在一个实施例中,m1在授予之后保持其存取权利。优选地,可在限制条件下(并非永久地)(例如持续有限时间、有限存取数目等)授予存取权利。
图14中说明用于创建密钥和密钥ID的过程。实体通过ACR进行验证(方框302)。实体请求创建具有主机指定的ID的密钥(方框304)。SSA检查并查看所指定的ACR是否具有这样做的许可(菱形306)。举例来说,如果所述密钥将用于存取特定分区中的数据,那么SSA将检查并查看ACR是否可存取此分区。如果ACR经过授权,那么存储器装置10创建与主机所提供的密钥ID相关联的密钥值(方框308),并将所述密钥ID存储在ACR中且将密钥值存储在其存储器中(在与控制器相关联的存储器或存储器20中),并且根据实体所供应的信息来分派权利和许可(方框310),并用此类分派的权利和许可来修改此ACR的PCR(方框312)。因此,所述密钥的创建者具有所有可用权利,例如读取和写入许可、用以授予和与同一AGP中的其它ACR或位于较低层级处的ACR共享的权利以及用以转移密钥所有权的权利。
ACR可改变SSA系统中另一ACR的许可(或连同所述另一ACR的存在),如图15说明。实体可像之前那样通过ACR进入树;在一种情况下,实体得以验证且接着其指定ACR(方框330、332)。其请求删除目标ACR或目标ACR中的许可(方框334)。如果所指定的ACR或此时活动的ACR具有这样做的权利(菱形336),那么删除目标ACR,或改变目标ACR的PCR来删除此许可(方框338)。如果这不被授权,那么系统停止。
在上述过程之后,目标将不再能够存取其在所述过程之前能够存取的数据。如图16所示,实体可能试图在目标ACR处进入(方框350),且发现验证过程失败,因为先前存在的ACR ID不再存在于SSA中,使得存取权利被否决(菱形352)。假定尚未删除ACR ID,那么实体指定ACR(方框354)和特定分区中的密钥ID和/或数据(方框356), 且SSA接着检查以查看是否根据此ACR的PCR准许密钥ID或分区存取请求(菱形358)。如果许可已经被删除或已经过期,那么再次否决所述请求。否则,准予所述请求(方框360)。
以上过程描述针对受保护数据的存取是如何由装置(例如,快闪卡)管理的,而不管ACR和其PCR是否刚由另一ACR改变或经如此配置以开始。
会话
SSA系统经设计以处理同时登录的多个用户。此特征要求SSA接收的每个命令与具体实体相关联,且只有在用于验证此实体的ACR具有用于所请求动作的许可时才执行。
通过会话概念支持多个实体。在验证过程期间建立会话,且由SSA系统向所述会话分派会话id。会话id在内部与用于登录到系统中的ACR相关联,且输出给所述实体以用于所有另外的SSA命令。
SSA系统支持两种类型的会话:开放会话和安全会话。在ACR中定义与具体验证过程相关联的会话类型。SSA系统将以与其实行验证本身的方式类似的方式来实行会话建立。由于ACR定义实体许可,因而此机制使得系统设计者能够将安全穿隧与存取具体密钥ID或调用具体ACR管理操作(即,创建新的ACR和设置凭证)关联。
开放会话
开放会话是用会话id识别的会话,且在没有总线加密的情况下,不受阻碍地传递所有命令和数据。此操作模式优选地用于多用户或多实体环境中,其中所述实体既不是威胁模型的一部分,也不在总线上偷听。
虽然既没有保护数据的传输,也没有在主机侧处在应用程序之间实现有效的防火墙保护,但开放会话模式使得SSA系统能够仅允许存取允许用于当前经验证的ACR的信息。
开放会话还可用于其中需要保护分区或密钥的情况。然而,在有效的验证过程之后,准予主机上的所有实体存取。各种主机应用程序需要共享以便获得经验证ACR的许可的仅有事物是会话id。这在图17A中说明。位于线400上方的步骤是主机24采取的步骤。在针对ACR 1验证实体(方框402)之后,所述实体请求存取存储器装置10中与密钥IDX相关联的文件(方框404、406和408)。如果ACR1的PCR允许此类存取,那么装置10准予所述请求(菱形410)。如果不允许,那么系统返回到方框402。在验证完成之后,存储器系统10仅通过所分派的会话id(而不是ACR凭证)来识别发布命令的实体。一旦ACR 1在开放会话中获得对与其PCR中的密钥ID相关联的数据的存取权,任何其它 应用程序或用户便可通过指定在主机24上的不同应用程序之间共享的正确会话ID来存取相同数据。此特征在以下应用程序中是有利的:其中较方便的是使用户能够仅登录一次,且能够存取连接到用以针对不同应用程序执行登录的帐户的所有数据。因此,蜂窝式电话用户可能能够在不必登录多次的情况下存取所存储的电子邮件且收听存储在存储器20中的音乐。另一方面,将不能存取不是ACR1包含的数据。因此,同一蜂窝式电话用户可能具有可通过单独帐户ACR2存取的有价值内容,例如游戏和照片。这是其不希望借用其电话的其他人存取的数据,即使其可能并不介意其他人存取可通过其第一帐户ACR1获得的数据。将对所述数据的存取分成两个单独帐户且同时允许在开放会话中存取ACR1提供使用方便性并且给予对有价值数据的保护。
为了更进一步方便在主机应用程序之间共享会话id的过程,当ACR正请求开放会话时,其可特别请求将向所述会话分派“0(零)”id。以此方式,应用程序可经设计以使用预定的会话id。由于明显的原因,仅有限制在于只有一个请求会话的ACR希望购买用以存取所述标题的全长或高质量版本的权利。如果预览内容是其中最终用户可存取全长标题的情况,那么可在特定时间处验证有限的n个0。将拒绝用以验证请求会话0的另一ACR的试图。
安全会话
为了添加安全性层,可如图17B所示那样使用会话id。存储器10接着还存储活动会话的会话id。在图17B中,举例来说,为了能够存取与密钥ID X相关联的文件,实体将需要还提供会话id(例如会话id“A”),然后其才被允许存取所述文件(方框404、406、412和414)。以此方式,除非请求实体知道正确的会话id,否则其不能存取存储器10。由于会话id在会话结束之后被删除且将对于每一会话来说是不同的,因而实体只有在其已经能够提供会话编号时才能获得存取权。
除了通过使用会话编号之外,SSA系统无法确保命令确实是来自正确的经验证实体。对于其中存在攻击者将设法使用开放通道来发送恶意命令的威胁的应用程序和使用情况来说,主机应用程序使用安全会话(安全通道)。
当使用安全通道时,用安全通道加密(会话)密钥来加密会话id以及整个命令,且安全性层级与主机侧实施方案一样高。
终止会话
在以下情形的任一者中,终止会话并退出ACR。
1.实体发布明确的结束会话命令。
2.通信超时。在定义为一个ACR参数的时间周期内,特定实体没有发布命令。
3.在装置(例如,快闪卡)复位和/或功率循环之后终止所有打开的会话。
数据完整性服务
SSA系统检验SSA数据库(其含有所有ACR、PCR等)的完整性。另外,通过密钥ID机制向实体数据提供数据完整性服务。
如果用散列作为其加密算法来配置密钥ID,那么散列值连同CEK和IV存储在CEK记录中。在写入操作期间计算和存储散列值。在读取操作期间再次计算散列值,且将其与在先前写入操作期间存储的值进行比较。每当实体正在存取密钥ID时,将额外数据连接(以密码形式)到旧数据,并更新适当的散列值(用于读取或用于写入)。
由于只有主机知道与密钥ID相关联或由密钥ID指向的数据文件,因而主机明确地通过以下方式管理数据完整性功能的若干方面:
1.从头至尾地写入或读取与密钥ID相关联或由密钥ID指向的数据文件。对存取所述文件的若干部分的任何试图将使文件混乱,因为SSA系统正使用CBC加密方法,并产生全部数据的散列消息摘要。
2.不需要以连续流处理所述数据(所述数据流可与其它密钥Id的数据流交错且可分裂到多个会话上),因为中间散列值是由SSA系统维持的。然而,如果数据流重新开始,那么实体将需要明确地指令SSA系统复位散列值。
3.当读取操作完成时,主机必须明确地请求SSA系统通过将所读取的散列与在写入操作期间计算的散列值进行比较来检验所读取的散列。
4.SSA系统同样提供“虚拟读取”操作。此特征将使数据串流通过加密引擎,但不会将数据向外发送到主机。此特征可用于在实际上从装置(例如,快闪卡)读出数据之前检验数据完整性。
随机数产生
SSA系统将使得外部实体能够利用内部随机数产生器,并请求在SSA系统外部使用随机数。此服务可用于任何主机,且不需要验证。
RSA密钥对产生
SSA系统将使得外部用户能够利用内部RSA密钥对产生特征,并请求在SSA系统外部使用RSA密钥对。此服务可用于任何主机,且不需要验证。
以上对SSA系统和相关联特征的详细描述基本上选自2004年12月21日申请的第60/638,804号美国临时专利申请案。
用于分发媒体内容的途径
环境和不同的分发模型
图18说明其中可使用上述存储器装置10来安全地存储媒体内容和以受控方式传递存储在其中的媒体内容的环境。如图18所示,装置10中的媒体内容可由各种不同最终用户终端或主机再现,其中包括个人数字助理、视频游戏机、蜂窝式电话手持机502、媒体播放器(例如MP3播放器506)和计算器508(例如台式、笔记本或膝上型计算机)。用于媒体内容分发的新途径可通过例如MNO 504等服务提供商使用装置10实现。MNO504可通过手持机502将媒体内容供应到装置10。或者,在对存储在装置10中的媒体内容的存取受到限制的情况下,可从运营商504向手持机502下载权利和/或规则,以便存取存储在装置10中的媒体内容。即使当不是由手持机502存取而是由例如媒体播放器506和计算机508等其它类型的终端存取装置10中的媒体内容时,也可应用管理对装置10中的经加密的媒体内容的存取的权利和/或规则。代替从运营商504接收媒体内容和权利和/或规则,装置10可改为经由因特网通过例如帐户管理服务器510和计算机508等其它服务器来接收此内容和权利和/或规则。此内容和权利及/或规则可由运营商504提供给计算机508和服务器510。
在图18的环境中,使用存储器系统或装置10作为用于存储和分发媒体内容的载体的许多新途径成为可能的。这在图19A到19D中说明。图19A中说明用于使用预先加载有所购买内容的存储器装置来分发媒体内容的途径。尽管在图19A到19D中使用快闪存储卡作为实例,但将了解到,将同样考虑使用除卡以外的格式和其它类型的非易失性可重写存储器。因此,快闪存储卡制造商CM向内容发行商CI出售卡,所述内容发行商CI还从内容提供商CP处购买媒体内容,并从权利对象(RO)服务器处接收用于控制此内容的权利对象。在将此内容和权利对象加载到卡上之前,CI首先通过连接到验证服务器来检验所述卡是否是真实的。在已经检验到所述卡是真实的之后,加载内容和权利对象。
如将从图19A注意到,从内容发行商(CI)指出的箭头具有两个分支:一个向上指向服务提供商SP,且下方箭头指向最终用户EU。CI沿着图19A中位于CI与EU之间的下方箭头将具有内容的卡直接出售给最终用户EU,或者沿着位于CI与SP之间的上方箭头将其出售给服务提供商SP。现将描述沿着上方箭头的交易。
因此,内容发行商(其可能也是卡制造商CM)将卡出售给服务提供商,例如MNO。服务提供商接着将卡连同由原始设备制造商(下文称为“OEM”)提供的最终用户终端(例 如蜂窝式电话手持机)一起出售给最终用户。在图19A到19D中,旁边具有美元符号的箭头指示沿着所述图式中展示的箭头方向在各方之间的可能收入流动。在内容发行商将卡出售给服务提供商之前,内容发行商可安装本文描述的类型的控制结构。然而,优选地,由服务提供商安装此类控制结构(如下文描述),以使得服务提供商能够创建其自身的安全环境,使得其可以其认为合适的方式控制内容分发。在发生这个操作之前,再次检验卡是真实的。因此,在服务提供商的设施处,通过连接到验证服务器来再次验证卡。卡还经由终端连接到验证服务器,以启用或激活所述卡中的任何特定特征或应用程序(例如,比如媒体播放器等媒体内容再现应用程序)。服务提供商接着安装下文描述的类型的控制结构来控制对卡中内容的存取。控制结构将确保只有经授权用户才能够存取所述内容,且此存取将遵守控制结构中的特定许可或遵守特定权利和/或规则。
或者,如由从内容发行商指向最终用户的下方箭头指示,内容发行商可将卡直接出售给最终用户。最终用户从OEM获得例如蜂窝式电话手持机的终端。只要此终端和卡可相互验证(例如以下文描述的方式),那么最终用户将接着能够使用所述终端存取卡中的内容。下文解释一个相互验证的过程。
以上用于媒体分发的途径是其中卡仅含有已经由最终用户购买的内容的情况。在此配置中,最终用户具备例如用于存取所述内容的凭证等所需验证信息。这将防止不具备此类验证构件的其它人以非授权方式存取所述内容。
图19B是说明另一种用于媒体内容分发的途径的流程图,其用以说明本发明的另一实施例。借以在卡中安装内容和卡借以到达最终用户的步骤类似于图19A中的步骤。图19B中的方案与图19A的方案的不同之处在于,加载到卡中的内容只能在具有特定限制下出于预览用途再现(例如,进行存取以用于再现所述内容的一部分或较低质量版本,或仅再现有限次数或持续时间),而并非能够如在19A的方案中那样无限制再现。换句话说,如果最终用户希望完整地欣赏媒体内容,他或她将必须首先购买用以无限制存取并再现此媒体内容的未删节版本而不是满足于所述媒体内容的预览的权利。因此,在购买之后,最终用户可接着在没有限制的情况下从服务提供商处存取媒体内容的整个未删节版本并将其再现。然而,在允许最终用户下载用于此用途的适当权利之前,再次借助于验证服务器来检验卡是否是真实的。在此类验证之后,权利发行商接着向服务提供商提供例如权利对象的控制结构,服务提供商又向最终用户提供相同的权利对象以进行下载。在一个实施例中,权利对象可包含用于最终用户(或例如主机上的应用程序等其它实体)存取经加密的媒体内容的凭证,以及管理此存取的权利和/或规则。在不同实施例中,权 利对象可能含有可用于解密所述经加密的媒体内容的实际内容加密密钥。在权利对象含有实际内容加密密钥的情况下,权利对象中的凭证可以是借助于例如散列函数等函数使用秘密代码和存储器装置ID作为种子值即时产生的凭证。即使在权利对象不含有实际内容加密密钥的情况下,也可应用此方案。最终用户还可具有用以在购买期间升级预先加载内容的选项,例如通过下载预览内容的高质量未删节版本。
或者,在由内容发行商以图19中说明的方式将预览内容加载到卡上的情况下,此内容还可包括媒体内容的加密未删节版本。因此,当最终用户购买此类卡时,所述卡将已经存储有他或她希望购买的媒体内容的加密版本。所述卡还将已经在其中存储有限制最终用户的用以仅存取卡中内容的删节版本或一部分的权利的权利和/或规则。在此类情况下,不需要再次将此内容下载到卡上。而是,最终用户将只需要用于解密媒体内容的内容加密密钥和对管理此存取的权利和/或规则的更新,以准许无限制或更宽松的存取。此信息将在验证之后通过服务提供商从权利发行商处下载。
图19C是说明又一种用于媒体内容分发的途径的流程图。图19A与19C的比较将揭示所述两种方案是大致相同的,只是在图19C的方案中,卡中的内容可仅在最终用户预订服务(例如服务提供商提供的服务)之后才能由最终用户存取。因此,最终用户所购买的卡将含有在最终用户已经预订后才允许最终用户存取所述内容的控制信息。如图19C所示,最终用户可首先从内容发行商处购买卡,但将在他或她已经从服务提供商处购买预订后才能够存取其中的媒体内容。与之前一样,在确认预订之前,由验证服务器检验最终用户所拥有的卡是否是真实的,且视情况由验证服务器启用或激活其中的应用程序(例如,比如媒体播放器等媒体内容再现应用程序)。在预订过程中,接着由服务提供商向最终用户传输由权利发行商提供的权利对象以用于下载到卡上。由于交易是基于预订的,因而最终用户将需要周期性地对所述预订进行支付,使得将重复出现从最终用户通过服务提供商到权利发行商的收入流动。
图19D是说明另一种用于媒体内容分发的途径的流程图。在此方案中,最终用户所购买的卡将没有预先下载的媒体内容。因此,最终用户将必须从服务提供商处购买内容,服务提供商又从内容提供商服务器处获得内容。与之前一样,在将内容加载到卡上之前,由验证服务器对卡进行验证。视情况由验证服务器启用多个特征和应用程序(例如,比如媒体播放器等媒体内容再现应用程序)。作为交易的一部分,通过服务提供商将起源于权利发行商的权利对象传输到最终用户以供下载到卡上。此交易可以是基于预订的,使得最终用户将必须周期性向权利发行商和服务提供商进行支付。尽管最终用户所购买的 卡可能没有预先加载的媒体内容,但所述卡可能在其中存储有权利对象,其赋予最终用户下载此内容的权利。那么这是预付费媒体内容卡,其使得最终用户能够重复下载所购买的内容。
装置10的不同模块和功能
图20是存储器装置10的一个实施例的方框图,其中不同功能存储在装置的不同区域中。如图20所示,装置10具有内容区域,其存储经保护的运营商内容,例如与MNO相关联或MNO所拥有的经加密内容(所述MNO例如为图18的运营商504)。内容区域中还存储有下文中更详细描述的加密和/或未加密的预先加载的内容。内容区域中还可存储有不受限制的用户内容以及例如借助于加密来限制并锁定的用户内容。
装置10的安全性区域可含有由软件代码(例如下文中更详细描述的DRM代理)实施的许多不同功能。装置10的安全性区域可使用上述隐藏分区来实施。内容加密密钥、证书和验证管理器也可存储在所述安全性区域中。例如上述AGP/ACR等控制结构可形成验证管理器的一部分。安全性区域中还存储有用于MNO运营商的应用程序和管理结构。在通信区域中,装置10存储手持机抽象和服务器代理。这些可能在装置10由手持机操作的情况下是有用的。
图21是用于实施图19A到19D的不同媒体内容分发方案的系统构造的方框图。如图21所示,存储器装置10包含安全存储,其优选地利用上述隐藏分区和使用以存取控制记录(ACR)或权利对象(“RO”)作为可能实施例的内容加密密钥的加密的特征。装置10还包括存取管理器(其可包括存储在装置的安全性区域中的DRM代理或作为所述DRM代理的一部分),所述存取管理器可与现在商业上使用的不同数字权利管理(DRM)代理介接。这些包括(例如)蜂窝式电话的手持机中通常使用的移动DRM代理和现在个人计算机上常用的Windows 32 DRM代理。以此方式,装置10的存取管理器可出于下载内容和权利对象(或更新权利对象)以及改变装置10中的存取控制记录或权利对象中的许可的目的而与最终用户终端中的不同类型的DRM代理介接。
因此,当将从图19A到19D的SP服务器将媒体内容下载到装置10时,图21的构造通过首先将媒体内容从内容服务器522传递到DRM服务器524来实施此下载。内容服务器522可位于服务提供商处,所述服务提供商从内容提供商服务器处接收内容。或者,如果在不经过服务提供商的情况下直接从内容提供商下载媒体内容,那么内容服务器522可位于内容提供商的设施处。DRM服务器524与支付服务器526通信,所述支付服务器526管理针对通过手持机、个人计算机和其它终端下载媒体内容来向MNO和其它实体进 行支付,如上文参看图18和图19A到19D描述。因此,在由所述多个支付服务器526中的一者提供支付证明之后,DRM服务器524从内容服务器522向终端(图21中的手持机528或个人计算机530)传输权利对象和媒体内容。DRM代理528a或530a接着将媒体内容和权利对象传输到装置10的存取管理器,其中所述存取管理器接着将此媒体内容存储在装置10的分区中。所述权利对象可由服务器524从权利发行商(图21中未展示)处获得。代替如上文描述那样传输权利对象,DRM代理和存取管理器可改变或更新已经存储在装置10中的权利对象(例如,在购买新的或额外的权利之后)。可以类似方式执行例如ACR、AGP和RO等控制结构的安装和改变。本文描述的其中传输或改变媒体内容和权利对象的过程优选地使用会话密钥经由上述类型的安全会话来执行。因此,凭证或其它验证信息以及解密的媒体文件可在传输之前用会话密钥进行加密。在通过与服务器通信的终端在存储器装置中创建或改变例如ACR、AGP和分层树等其它类型的控制结构的情况下,也是这样的情况。
如图20中更清楚说明,装置10中的存取管理器包括DRM代理,其能够介接DRM服务器524并直接处理来自DRM服务器524的命令,使得即使最终用户终端(例如手持机528和计算机530)不包括DRM代理,装置10的存取管理器将仍能够实施上述功能,例如安装或改变控制结构和下载媒体内容和权利对象。
具有预览内容的存储器装置
图22是说明含有已付费媒体内容和未付费目录媒体内容的存储器装置的方框图,其用以说明一种用于分发媒体内容的可能途径。如上文参看图19A说明,可将包括已付费媒体内容和未付费目录媒体内容的内容加载到存储器装置10中,使得在图22中将含有此内容的存储器装置标记为10″。加载到存储器装置中的还有用于控制对已付费内容的存取的相应权利对象。如图22中说明,在一个实施方案中,权利对象准许经由例如蜂窝式电话手持机或个人计算机等终端无限制存取已付费内容,但仅准许将内容移动到个人计算机库三次,这可以是可选特征。或者,可选特征可以是任何具有适当凭证的人将能够借助于在终端中操作的软件应用程序将已付费媒体内容输出到其它终端以进行存储最多只有三次。
然而,对于目录媒体内容,装置10″的购买不准许购买者具有针对目录媒体内容的全部权利。而是,可以许多不同方式来对购买者的权利进行限制或删节。举例来说,如图22中指示,用以预览目录媒体内容的权利可通过持续时间或通过次数或计数来限制。或者,只有媒体标题的选定部分(例如,歌曲或视频的15秒)才能无限制存取,或者可被 存取的只是较低质量版本。因此,为了获得对目录列举的未删节完整质量媒体标题的无限制存取,购买者将需要首先购买此类权利。所购买的权利可以针对单个媒体内容文件或内容文件的选集。在图22中说明的实施例中,目录列举的媒体标题的完整未删节版本可实际上存储在装置10″中但被加密,使得购买者将不能够存取所述媒体标题的完整未删节版本。在购买之后,接着将所购买的媒体内容文件解锁,以准许由购买者存取。
在替代性实施例中,装置10″中目录列举的媒体标题的完整未删节版本还没有存储在装置10″中。因此,在购买者购买用于完整存取的权利之后,接着将必须例如以上文描述的方式下载此类媒体标题连同用于控制对此类标题的存取的权利对象。涉及装置10″的内容解锁过程在图23A到23C的流程图中说明。尽管在图23A到23C中使用快闪存储卡作为实例,但将了解,将同样考虑除卡以外的格式和其它类型的非易失性可重写存储器。
例如终端等再现装置对最终用户的存取受限媒体内容的样本(例如装置10″中目录列举的经加密的媒体内容)的请求作出响应(方框552)。例如快闪存储卡等装置10″对此请求作出响应,且向再现装置或终端提供所请求的媒体样本(方框554)。媒体样本文件优选地含有关于从中可购买解锁权利的服务器的因特网地址(例如参看图19A到19D说明的服务提供商的服务器或图21中的DRM服务器的地址)的信息。再现装置借助于在装置中操作的软件应用程序来播放或再现来自快闪卡10″的媒体样本,提示用户购买对所取样的媒体标题的无限制权利,且提供服务器的因特网地址信息以用于为用户处理购买。借助于此软件,再现装置或终端接着询问用户用户是否希望购买用以解锁已被取样的完整未删节媒体标题的权利(方框556)。如果用户回应他或她不希望购买,那么过程结束。然而,如果用户指示想要购买,那么再现装置或终端接着响应于用户命令而连接到服务器以处理购买(方框558)。再现装置或终端接着将由用户输入的用户购买授权和其它用户信息发送到服务器(SP服务器或DRM服务器)(方框560)。
如上文提到的,权利对象可含有内容加密密钥和验证信息(其要求在可准予存取此类密钥之前出示适当的凭证),以及关于可如何使用解密的媒体文件或标题的权利和/或规则。在一个实施例中,没有针对装置10″中的任何一个目录媒体标题存储权利对象。在此类情况下,将必须例如从SP服务器或DRM服务器下载用于解密和控制目录媒体标题的权利对象。
或者,装置10″可能已经含有将仅准许受限制预览目录媒体标题的权利对象。可被预览的目录删节媒体标题可存储为与锁定目录未删节经加密的媒体标题分开的文件。因此,预览媒体标题可由完整媒体标题的多个部分(例如,占15秒)或此标题的低质量版本组 成。或者,预览媒体标题不存储在单独文件中,其中只有锁定目录经加密的媒体标题的一部分或降级版本才可无限制用于预览。预览媒体标题还可包含全长目录媒体标题,但其中预览受持续时间或计数限制。上述限制由已经存储在装置10″中的权利对象施加。因此,在目录媒体标题的权利对象已经存储在装置10″的情况下,那么将需要在由购买者购买之后用解锁权利更新此权利对象,使得更新之后的权利对象将准许完整存取装置10″中的加密未删节目录媒体标题。因此,在方框560中已经将用户购买授权和其它用户信息发送到SP/DRM服务器之后,再现装置或终端将在装置10″还没有权利对象的情况下致使(例如,借助于DRM代理)将下载的权利对象存储在装置10″的安全性区域中,或将致使更新已经在装置10″中的权利对象,进而准许根据当前更新的权利对象来存取所购买的媒体标题(方框562和564)。
响应于在方框560中来自再现装置或终端的用户请求,服务器(例如,SP或DRM服务器)通过向图21的计费服务器526发送用户信息以从最终用户获得支付来作出响应(方框566)。服务器(例如,SP/DRM)向再现装置或终端提供权利对象信息以供存储在卡上或用于更新卡上的权利对象。权利对象包括密钥,且优选地包括用于产生用于存取对所购买的锁定(加密)媒体标题进行解密的密钥的凭证的信息(方框568)。
在以上过程中,权利对象可含有用于解密目录媒体标题的内容加密密钥。在此情况下,接着将所述密钥存储在装置10″中以用于解密标题。然而,为了减少未授权使用的可能性,对此类密钥的存取限于具有正确的用于存取此类密钥的凭证的最终用户。此类凭证可由终端和装置10″使用终端的唯一ID作为种子值借助于装置10″和终端两者中例如散列函数等函数即时产生。因此,如果终端已经由装置10″验证,那么装置10″将也能够产生此类凭证,且只有在所述两组凭证(由装置10″和终端产生的)匹配时,才准予存取所述密钥。类似过程可用于使用装置10″的唯一ID验证装置10″。如果执行所述两个过程,那么所述方案成为相互验证方案。
作为更安全的替代方案,权利对象不含有用于解密目录媒体标题的内容加密密钥本身,而是仅含有用于存取此类密钥的特定凭证。举例来说,所述凭证可以是将实现由上述ACR结构管理的存取的凭证。因此,在每一目录媒体标题具有带有可用于解密标题的相应内容加密密钥的相应ACR的情况下,从权利对象将所述凭证供应到此ACR将使得能够解密所述标题。在此情况下,最终用户接着将需要在可解密并再现此类标题之前在所有目录标题的每一ACR中输入所述凭证(如果已付费内容类似地由ACR结构保护的话,还有用于存取已付费内容的ACR的凭证)。最终用户接着可能需要记住大量凭证。 下文参看图24描述更加用户友好的机制。
图24是说明用于使用上述存取控制记录(ACR)和授予属性来解锁装置10″中的锁定目录媒体内容的又一实施例的方框图。因此,装置10″中的控制结构含有两个AGP 572和574。AGP 572含有DRM_ACR。DRM_ACR控制三个不同已付费内容媒体文件的权利对象。这些权利对象控制(例如)用于将内容移动到个人计算机库或将内容输出到另一终端的有限权利。
AGP 574含有7个存取控制记录,其中包括一个重放_ACR 576、三个用于控制对所述三个已付费媒体内容标题的内容加密密钥的存取的已付费_ACR 578以及三个用于控制对三个尚未付费的相应目录媒体标题的内容加密密钥的存取的目录_ACR 580。如图24所示,从重放_ACR 576指向三个已付费_ACR 578的箭头582指示所述三个已付费_ACR 578已经向重放_ACR 576授予其对内容加密密钥的权利,使得不需要向三个已付费_ACR 578出示凭证以便存取由三个已付费_ACR 578控制的用于解密所述三个已付费媒体标题的内容加密密钥。而是,通过向重放_ACR 576出示恰当的凭证,可存取用于解密所述三个已付费媒体标题的内容加密密钥,使得最终用户可更为方便地只须记住一组凭证而不是三组或三组以上。
在以上实施例中,经下载或更新的权利对象含有ACR中用于存取用于解密各个目录或已付费媒体标题的密钥的凭证。作为替代性实施例,经下载或更新的权利对象改为含有针对DRM_ACR的凭证。DRM_ACR具有用以致使目录_ACR 580还向重放_ACR 576授予其用以存取用于解密所述三个未付费目录媒体标题的内容加密密钥的权利的许可。因此,在已经下载或更新权利对象之后,终端或装置10″中的DRM代理将通过出示来自权利对象的凭证来存取DRM_ACR,并致使DRM_ACR实行其权利以造成授予。在图24中说明的实施例中,在图23C中的方框566中计费服务器确认已经从最终用户接收到付费之后,目录_ACR 580接着还向重放_ACR 576授予其用以存取用于解密所述三个未付费目录媒体标题的内容加密密钥的权利。这在图24中由虚线584说明。因此,在授予之后,通过仅向重放_ACR 576出示单组恰当的凭证,可存取由目录_ACR 580控制的用于解密媒体标题的内容加密密钥,以及由ACR 578控制的用于解密已付费媒体标题的内容加密密钥。
如图24中说明且作为附加安全性,权利对象含有秘密代码,而不是DRM_ACR的凭证。DRM_ACR的凭证可根据所述秘密代码和装置10″的ID使用函数来即时产生。重放_ACR的凭证可以类似方式根据秘密代码和装置10″的ID使用函数产生。最终用户只 需要输入用于产生重放_ACR 576的凭证的秘密代码。代替ACR,还可使用权利对象来实现以上方案,其中控制对媒体文件的存取的不同权利对象可含有用以向重放权利对象授予用以存取此类文件的许可的权利。
在图25A和25B的流程图中说明内容再现过程。再现装置或终端上的可信应用程序向装置10″出示用户请求和用于存取媒体标题的凭证或秘密代码(方框590)。装置10″接着确定是否已经由再现装置向其出示了恰当的凭证或秘密代码(菱形592)。如果尚未出示恰当的凭证或秘密代码,那么装置10″只是进行等待,直到已经出示此类凭证为止。如果已经出示了恰当的凭证或秘密代码,那么接着准予存取存储在装置10″中的内容加密密钥。接着使用所述密钥来对所请求的上密媒体标题进行解密。接着将经解密的媒体标题发送到所述可信应用程序(方框594)。再现装置或终端接着再现经解密的媒体标题(方框596)。
使得服务提供商能够创建安全环境
图26是非易失性可重写存储器装置中的安全性构造或控制结构的方框图,其用以说明本发明的额外特征。图26的安全性构造600包括存储在例如图20所示的安全性区域中的服务提供商(SP)的凭证。SP凭证602通过箭头604指向预先加载的媒体内容606,内容606包括图片606a、音乐606b、游戏606c和视频606d。在服务提供商(SP)是MNO的情况下,预先加载的内容606还包括手持机特定的媒体内容606e,例如铃声。箭头604指示如果终端中操作的应用程序具有SP凭证602,那么所述应用程序将能够存取所述预先加载的内容606a到606e。因此,在服务提供商SP是例如Sprint或Verizon等移动网络运营商时,所述运营商可将其凭证加载到其发行的蜂窝式电话手持机中。于是,所有此类手持机均可用于通过将此运营商的凭证供应到具有此预先加载内容的存储器装置来存取预先加载的内容606a到606e。
除了可由具有服务提供商的凭证的所有应用程序存取的媒体内容之外,存储器装置还可存储仅可由特定订户存取的媒体内容。因此,如图26中说明,图片610a、音乐610b、游戏610c、视频610d、手持机特定信息610e和个人媒体内容610f可仅由订户1或具有订户1的凭证的一者得到。因此,只有可供应订户1的凭证的应用程序才将能够存取媒体内容610a到610f。因此,如果订户1希望存取文件610a到610f中的任一者,那么他或她将借助于例如手持机等终端中的应用程序来输入其凭证,且接着可存取此类文件中的任一者。订户1的帐户608可以是独立帐户,或可以是群组内的共享帐户,例如家族帐户的成员帐户。在此情况下,可存在可用于存取文件610a到610f的一组以上凭证。 当将所述组凭证中的任一组传输到具有构造600的存储器装置时,可存取文件610a到610f。
将注意到,构造600实行这样的政策:在订户1确实达到其中请求订户1的凭证的阶段之前,应当首先出示SP凭证。在已经向存储器装置出示SP凭证之后,如果订户希望存取受限制文件610a到610f中的任一者,那么接着要求订户输入用于订户1的凭证。
订户1的帐户608通过箭头612指向文件610a到610f。箭头612象征上述类型之一的控制结构,例如借助于可包括用于使用文件610a到610f中的内容的权利和/或规则的权利对象。权利对象还可包括用于对加密文件610a到610f进行解密的密钥。然而,优选地,权利对象将包括用于存取存取控制记录的凭证,通过所述凭证可获得用于解密文件610a到610f的内容加密密钥。
构造600可用于存储可由多个订户存取的经加密的媒体内容,其中可由一个订户存取的媒体内容可能可由不同订户存取或不可由不同订户存取。因此,构造600还包括用于订户X的帐户。虽然图26中未展示,但只有当向含有构造600的媒体装置出示用于订户X的恰当凭证时,才可存取与订户X相关联的媒体内容文件。以此方式,存储器装置10可由多个订户使用。所述订户中的每一者能够独立存取与其帐户相关联的媒体内容,而不必担心不同订户获得对此内容的未授权存取。同时,可存在所有订户只要具有SP凭证就均可经由构造600存取的共享内容,例如文件606a到606e。还可能在两个或两个以上订户可存取的媒体内容文件之间存在部分重叠。举例来说,某些媒体内容文件可与一个以上订户帐户相关联,使得在向存储器装置出示所述订户中任一者的凭证时能够存取并解密此媒体内容文件。这可在订户不必共享其凭证或任何密钥的情况下进行。
如上文提到的,一种用于图26中的安全性构造600的可能控制结构是上文描述的存取控制记录(ACR)。通常,当创建存储器装置时,创建用于控制用于对经加密的媒体内容进行解密的CEK的ACR,例如图24所示的ACR。接着当创建订户帐户时,将适当ACR中的凭证供应到所述订户以允许订户存取CEK。
如上文描述,系统ACR具有用以创建AGP和ACR的能力。一般来说,具有用以创建ACR的权限的任何ACR或AGP均可用于创建订户ACR。可能已经在制造时在装置10中创建了此ACR或AGP。在已经将任何媒体内容加载到装置中之前或之后,可在存储器装置10中将ACR创建为控制结构。加载到装置中的内容可使用由装置产生或供应到装置的内容加密密钥来加密,其中内容和加密密钥成为相关联的且由订户ACR控制。以此方式,与订户相关联的控制结构可用于控制对此经加密的媒体内容的存取。
图26中的安全性构造说明一种用于媒体内容分发的途径,其中存储器装置绑定到特定的服务提供商,使得其不能由不同的服务提供商用来存储和控制装置中的媒体内容。作为对图26中的安全性结构的替代性安全性结构,存储器10中的安全性构造可能不含有SP凭证602,使得此类凭证对于存取装置中的内容来说是不必要的。在此类替代性实施例中,多个不同服务提供商中的每一者可能能够独立于其它服务提供商在同一存储器装置中创建其自身的控制结构。所述服务提供商中的每一者可在没有另一服务提供商的串扰或干扰的情况下与存储器装置交互。预先加载在装置10中的上述SSA系统的系统ACR将辅助所述不同服务提供商的每一者以上述方式创建其自身的具有AGP-ACR结构形式的分层树。
因此,上述控制结构包括权利对象和ACR以及相关联的分层树。如上文提到的,权利对象通常在存储器装置外部创建,并下载到所述装置。在一个实施例中,此类对象由DRM服务器或终端中的DRM代理管理,或由存储器装置中例如DRM ACR等结构管理。另一方面,ACR和相关联的分层树可以是在存储器装置中创建的结构,且不是存在于其外部。通常,不需要将其内容或特征输出到装置外部的实体。ACR可包括关于将如何使用CEK的许可,例如针对读取、写入或授予功能。另一方面,权利对象可更精确地规定可如何使用CEK和借此加密的内容,例如通过限制允许存取的持续时间或存取数目等等。
作为另一特征,存储在存储器装置中(例如,在安全性区域中)的实施播放列表管理器的软件代码可用于寄存媒体标题中最终用户停止重放或其它再现过程的位置。这允许最终用户将存储器装置与一个终端断开并将其连接到另一终端,且在他或她停止的那点处恢复播放或再现。
用于验证的证书
媒体内容提供商和服务提供商需要应付的一个重要问题是内容将载入其中的特定存储器装置是否是真实装置。另一方面,从存储器装置的观点来看,确定试图存储或检索内容或权利信息的主机或终端(或服务器)是否是真实的也可能是有用的或必要的。为此目的,安全性构造600还包括验证和设置特征622,例如证明。这在下文中更详细描述。
优选地,由不同服务提供商创建的控制结构存储在单独分区中,使得每一分区仅存储其相应服务提供商的控制结构(例如,AGP-ACR和/或权利对象)。优选地,此类分区是私用且隐藏的,使得至少一些所述分区中的每一者可由存储在其中的控制结构的相应服务提供商存取,且不可由其它服务提供商存取。优选地,在为不同服务提供商创建的分层树之间没有串扰。
图27中说明用于最终用户终端与存储器装置之间的相互验证的总体构造。如图27所示,对存储器装置630是真实的证明和对最终用户终端632是真实的证明两者均是从根CA服务器634的权限中导出的。装置630是由生产CA服务器636所位于的生产设施制造的。终端632又是在终端CA服务器638(其可能与服务器634相同)所位于的设施处制造的。因此,装置630向服务器636提供装置ID、类型和装置公用密钥。服务器636向服务器634提供生产服务器ID和生产服务器公用密钥。服务器634向服务器636提供根CA证书和生产CA证书。服务器636又向装置630提供来自服务器634的所述两个证书连同由服务器636的私用密钥签名的装置证书。在服务器634、638与终端632之间进行类似过程。由于上述过程的原因,终端632和装置630每一者含有三个证书,如图28所示。
如图28所示,存储器装置包括三个证书:根CA证书、生产CA证书和存储器装置证书。终端也包括三个证书。由于装置630和终端632两者均具有根CA证书和根公用密钥,因而此密钥可用于在第一设置过程期间以下文解释的方式检验装置和终端中的公用密钥和含有这些密钥的凭证是否是真实的。
如图29中说明,终端632和装置630将在第一次将装置插入到终端中进行设置过程时交换证书。装置将向终端发送装置证书和生产CA证书,且终端将向装置发送终端证书和终端CA证书。装置630和终端632中所含有的不同密钥和证书在图30中说明。
生产CA证书包括生产CA公用密钥和此公用密钥的由根CA私用密钥签名(即,加密)的版本。终端632可通过使用其拥有的根公用密钥解密所述加密的生产CA公用密钥并将结果与从装置630处接收的生产CA证书中的生产CA公用密钥进行比较来检验此生产CA证书是否是真实的。如果它们匹配,那么这指示所接收的生产CA证书没有被窜改且是真实的。终端632接着可使用经如此确认的生产CA公用密钥来解密装置公用密钥的加密版本并将结果与从装置630处接收的装置证书中的装置公用密钥进行比较。如果它们匹配,那么这指示所接收的装置证书没有被窜改且是真实的。装置630可执行类似过程来检验从终端处接收的证书是真实的且没有被窜改。将从上文明显看到,所利用的密钥和证书的层级越多,系统就将越安全。在图27到32中使用三个层级。显然,如果需要更高或更低的安全性级别,那么可相应地改变以上方案。
在装置和终端已经执行以上相互验证过程之后,终端将使用已经在制造期间在装置中创建的ACR来在装置630中创建ACR(如图31说明)。此创建的ACR将含有具有根公用密钥的根CA证书,使得当下次将终端与装置连接时,装置将以与上述过程类似的过程使用根公用密钥来检验终端所提供的终端证书是否是真实的。如果终端所提供的终端证书经检验是真实的,那么存储器装置将允许终端根据ACR中的许可来存取内容。
如图32中说明,当下次将存储器装置连接到终端时,终端将登录到装置中并向装置发送其证书。装置将接着执行上述检验过程。作为选项,存储器装置630还将其证书发送到终端632以进行检验,如图32中说明。
存储在装置630中的凭证还可用于验证服务器(例如图19A到19D所示的验证服务器中的任一者)来检验装置是否是真实的。如果服务器也具有根CA证书和所述证书中的根公用密钥,那么可以与上述方式类似的方式使用此密钥来检验装置是真实的还是伪造的。装置630还可通过类似过程检验服务器是否是真实的。验证服务器还可将根CA证书和用于执行所述检查的软件传送到不同的服务器(例如用于服务提供商的服务器),使得服务提供商服务器可改为执行检验过程。图19A到19D中的过程接着将得以简化,因为服务提供商服务器可接着同样执行验证服务器的功能。
预先加载内容的封装
图22的存储器装置10″预先加载有例如歌曲等已付费媒体内容以及未付费的目录媒体内容。此目录媒体内容可包含加密的全长和高质量版本,以及此类版本的预览。存储在装置10″中的还可以是宣传项目以及各种应用程序。如上文参看图20描述,存储器装置10″可包含许多不同区域,其中包括内容区域和安全性区域。优选地,仅在安全生产设施中在生产装置期间才存取安全性区域。举例来说,在安全生产设施处将权利对象和AGP/ACR结构以及其它数字权利管理解决方案存储在装置10或10″的安全性区域中。可在安全设施处将内容加密密钥加载到安全区域中,或可在生产之后由装置自身产生内容加密密钥。
内容区域中的例如运营商内容等内容和其它经保护内容通常具有大型文件,例如视频文件。用于在安全性区域中加载安全数据的安全设施可能没有用以在批量生产中加载大量大型文件的能力。由于这个原因,可能需要将锁定内容以及未锁定内容加载到生产设施的非安全区域中。由于锁定的媒体内容通常被加密,因而可将此内容以加密形式发送到非安全设施以减少未授权利用的可能性。每一存储器装置具有例如序列号等唯一标识,所述序列号可以是依序的。因此,可能能够在将装置移交给非安全设施以用于加载经加密的媒体内容以及非加密内容之前,首先将安全性相关的数据和对象存储在安全性区域中。由于加载到安全性区域中的数据可包括用于控制使用存储在内容区域中的媒体 内容的控制结构,因而在加载经加密内容之前首先将这些控制结构加载到安全性区域中提供了用以防止未授权利用媒体内容的额外安全性。
用于加密所制造的存储器装置的每一者中的内容的密钥可能不同于预先加载在任何其它装置中的密钥。如果确实是这样的情况,那么能够获得一个存储器装置中的加密密钥的黑客将不能够存取存储在任何其它存储器装置中的内容。然而,产生大量不同的内容加密密钥并将其加载到每一装置中可能是麻烦的。作为折衷,可将相同组的密钥加载到一批存储器装置中,使得它们将具有相同组的密钥。因此,如果已经以未授权方式获得一批中的一个存储器装置中的那组密钥,那么存储在此批存储器装置中的媒体内容可能成为能够在没有验证的情况下存取。然而,已经获得此组密钥的人员将不能够存取存储在不同批存储器装置中的媒体内容,因为将由与非法获得的那组密钥不同的一组密钥来加密此类装置中的媒体内容。
因此,如果将生产50,000个存储器装置,那么可将所述50,000个装置划分为1,000组,每一组包括50个存储器装置,其中所述组中的每一装置加载有50组不同密钥中的一组。因此,将所述50,000个装置划分成50批,每一批1,000个装置将被加载或将使用相同组密钥。举例来说,可将所述50组密钥标记为KOmn,其中m对于最多达20个所购买媒体标题(例如,声道)在1到20的范围内,且n为从1到N,其中在此情况下N是50。还提供N组密钥KPln,其中1对于最多50个未付费媒体标题(例如,声道)可在1到50的范围内,且n在1到N的范围内。当这些声道被购买时,应当将这组密钥KPln安全地传输到权利发行商服务器以用于发行权利对象。
并且在安全设施处,将用于所购买标题或声道的内容加密密钥KOmn分组成N组对象以用于添加例如无限制播放和三次输出的商务规则,例如上文描述。可将所述N组权利对象(每一所购买的媒体标题具有一组)标记为ROmn,其中m对于最多20个所购买的媒体标题在1到20的范围内,且n在1到N的范围内。可将所述N组权利对象安全地传送到安全设施。在生产期间,可使用存储器装置的唯一序列号来确定将把所述50组权利对象中的哪一者加载到卡中:RO1n、RO2n、……、ROmn,其中m对于最多达20个所购买的媒体标题可以是20。可将这20个权利对象加载到第n组或批1,000个存储器装置中的每一存储器装置中,其中n由存储器装置序列号除以1,000的连续部分(即,存储器装置序列号/1,000的整数部分+1)确定。举例来说,如果存储器装置序列号是5,那么n是值1。如果序列号为1,200,那么n将是2。如果序列号是35870,那么n将是36。
可将所购买的媒体标题(最多20个)加密成N组加密文件COmn,其中m在1到20的范围内,且n在1到N的范围内。在获得多达50个目录媒体标题之后,将把这些标题加密为文件PCLR1、PCLR2、……、PCLRL,其中L高达50。从所述多达50个目录媒体标题,可产生此类标题每一者的15秒视频片断或低质量版本,并将其标记为:SNIP1、SNIP2、SNIPL,其中L高达50。接着将全长目录媒体标题加密成N组加密文件:POln,其中l在1到L的范围内,且n在1到N的范围内。将用于目录媒体标题文件的N组加密密钥发送到权利发行商。用于内容加载的原版拷贝将接着含有以下各项:
(1)N组经加密的所购买媒体标题COmn,其中m在1到20的范围内,且n在1到N的范围内。
(2)目录媒体标题的一组预览片断,所述片断尚未被加密且将在所述N组媒体装置上是相同的:SNIP1、SNIP2、……、SNIPL,其中L高达50。
(3)N组对应于预览片断的加密目录媒体标题,其在N组存储器装置上用不同内容加密密钥来加密:POln,其中l在1到L的范围内,且n在1到N的范围内。
(4)一组所有其它宣传内容,例如计算机附件、照片、铃声等。
在非安全内容加载设施(例如第三方承包商设施)处,原版拷贝和内容加载脚本可用于将内容加载到存储器装置。内容加载脚本将首先读取存储器装置序列号,且基于所述序列号来计算介于1到N之间的批或组编号。接着基于此组编号n,内容加载脚本将读取第n组所购买的媒体标题文件:CO1n、CO2n、……、COmn,其中m是所购买媒体内容中的媒体标题的数目。内容加载脚本还将读取第n组目录媒体标题文件POln、PO2n、……POLn,其中L是用于包括在装置上的目录媒体标题文件的数目。还将后应用中的所述组预览片断文件和所述组宣传项目加载到每一存储器装置上。内容加载脚本将接着把以上选定文件写入到图20说明的存储器装置的内容公用区域中。
参看图33A和33B说明为预付费内容产生密钥和加载此类标题以及由权利发行商发行权利对象的过程。在所述设施处,将待加载的装置或卡划分为若干具有N个装置或卡的群组,每一群组中所述N个装置的每一者具有不同的组编号和相应组密钥及权利对象(方框631),其中可从装置的序列号中导出组编号(方框632)。产生N组内容加密密钥,并将其发送到权利发行商(方框634)。权利发行商从其序列号导出每一存储器装置(例如存储卡)的组识别号。根据所导出的组识别号和所接收的N组密钥,可编译、识别用于对所述内容的受控存取的权利对象并将其发送到设施以用于加载(方框638、640)。在设施处接收这些权利对象以用于加载(方框642)。对于例如存储卡的每一装置,在设 施处从其唯一序列号导出组识别号,并识别相应组密钥和权利对象(方框644)。接着将相应权利对象加载到例如存储卡等装置中。在安全设施处对所购买的媒体标题进行加密,并将原版拷贝发送到承包商的设施处以用于加载所述加密标题(方框646、648)。
如上文提到的,存储器装置和/或终端中的DRM代理可用于处理以上针对装置和/或终端的动作。
参看图34和35说明为目录内容产生密钥和加载此类标题以及由权利发行商发行权利对象的过程。在所述设施处,将待加载的装置划分为若干具有N个装置或卡的群组,每一群组中所述N个装置的每一者具有不同的组编号和相应组密钥及权利对象,其中可从装置的序列号中导出组编号(方框652)。因此,由安全设施产生用于目录媒体标题的N组CEK,并将所述CEK和装置ID编号发送到权利发行商(方框654、656)。对于例如存储卡的每一装置,从其唯一序列号导出组识别号,并识别相应组密钥(方框658)。接着使用所识别的相应组密钥来对目录媒体标题进行加密(方框660)。接着将目录媒体标题存储在例如存储卡等装置中(方框662)。
在购买交易期间且参看图35,一旦已经确认最终用户的购买(方框670),便由权利发行商从装置序列号导出组识别号(方框672),且使用所述组编号和在方框656中从设施处接收的CEK来编译适当的权利对象(方框674)。权利发行商向安全设施提供相应的权利对象(方框660)。当最终用户正购买目录媒体标题时,DRM代理将向权利发行商服务器发送存储器装置的序列号和所购买的媒体标题的ID(方框670)。权利发行商服务器接着基于存储器装置的序列号来计算存储器装置的组编号(方框672)。权利发行商应当已经具有用于目录媒体标题文件的N组加密密钥。基于所述组编号和所述媒体标题ID,权利发行商将能够发行具有相应内容加密密钥的将在购买之后以下载到存储器装置的正确权利对象(方框676)。
作为媒体内容分发途径的具有其它内容的存储器
上文描述了具有经加密的媒体标题和此类标题的预览的存储器装置的情况。图36A到36D中说明这些类型的装置,其中所述装置还包括预付费内容。在这些图式中,PREV意指包含已经经过删节的媒体内容的预览内容(例如,一部分或较低质量版本);FULL意指PREV的未删节加密版本;RO意指PREV的权利对象。PREPAID意指在获得存储器装置时已经付费的内容。出于简单起见,所述图式中已经省略了用于已付费内容的权利对象。
或者,例如装置10等存储器装置可存储其它类型的内容,如图37A到37C、38A、 38B、39A和39B中说明。如图37A所示,装置可仅存储PREV,或可存储PREV和FULL两者,如图37B所示。装置还可存储PREV和RO,如图37C所示。因此,在图37A到37C中,装置在所有配置中均存储PREV。
作为另一替代方案,例如装置10等存储器装置可在所有配置中均存储FULL,如图38A和38B所示。在图38B中,其还存储RO。
作为又一替代方案,例如装置10等存储器装置可在所有配置中均存储RO,如图39A和39B所示。在图39B中,其还存储FULL。
在图37A到37C、38A、38B、39A和39B的所有配置中,没有展示PREPAID和其权利对象,但如果需要的话可包括所述PREPAID和其权利对象。
因此,如图37A和40所示,装置10可仅加载有预览内容,例如媒体标题的片断或较低质量版本。此类标题在702处指示。在最终用户购买用以观看已经借助于存储器装置预览的媒体标题702的未删节版本的权利之后,可在购买内容702之后下载权利对象704,如由图40中的箭头706指示。具备了权利对象,最终用户将具有用以下载已经预览的媒体标题的未删节版本708(FULL)的权利。从不具有未删节媒体标题的装置转变为具有未删节媒体标题的装置由图40中的箭头710指示。或者,最终用户可首先下载媒体标题的完整且未删节版本(FULL)708,如图40中的箭头712指示。然而,在此点处,最终用户仍然没有用以存取完整媒体标题708的权利,因为此类标题被加密,且已经向最终用户提供了对用以解密此标题所必要的内容加密密钥的存取权。但在最终用户进行购买之后,最终用户将具有用以下载权利对象704的权利,如图40中的箭头714指示。
使用图40中的流程的媒体内容分发过程稍微类似于图23的过程,且在图41中展示。因此,预览内容702使得用户能够首先预览目录媒体标题。存储器装置因此再现PREV,且接着通过最终用户终端提示最终用户购买所预览的目录媒体标题(方框722、724)。在已经接收到购买之后,接着将完整媒体标题和权利对象供应到存储器装置以供存储(方框726、728)。此后,最终用户将能够通过解密标题来存取所购买的媒体标题,并将其再现。在图42中,预览内容702使得用户能够首先预览目录媒体标题。在购买之后,下载完整媒体标题,随后接收权利对象(可颠倒此次序)。接着可使用密钥来解密完整标题以供再现。
或者,可分发仅具有完整加密且未删节媒体标题的存储器装置10,如图38A中说明。如果最终用户已经购买了对此类媒体标题的权利(图38B),那么存储器装置还将具备权利对象和对用于解密媒体标题的必要内容加密密钥的存取权。然而,如果在购买之前分 发了用于完整媒体标题的存储器装置,那么最终用户将必须购买用以存取的权利。在购买之后,下载适当的权利对象(图43中的箭头732),以提供对用于解密所购买媒体标题必要的内容加密密钥的存取权。
作为此内容分发途径的变型,可连同准许仅限制性观看或存取此类媒体标题的权利对象而存储具有完整未删节但经加密的媒体标题的存储器装置。所述装置中还存储有追踪代理,其追踪最终用户的使用形式并编写用户简档。见图44。所述限制可强加持续时间限制,或可存取所述媒体标题的次数(图45中的方框742)。当用户再现所述标题时,追踪所述存取并编写用户存取简档(图45中的方框744)。在持续时间或计数期满时,最终用户将不再能够存取媒体标题,除非最终用户接着将存储器装置连接到服务器。当通过主机或终端将存储器装置连接到服务器时,接着将此用户简档下载到服务器以用于市场研究等用途。在已经下载存取简档之后,可修改或更新权利对象以准许最终用户具有延长的持续时间或计数来存取并欣赏存储器装置上的媒体标题(图45中的方框746)。
作为又一种用于媒体内容分发的可能途径,可分发仅加载有权利对象的存储器装置10,图39A所示。必须购买此类存储器装置,且其运作方式类似于例如用于电话服务的SIM卡等已付费服务卡。权利对象将准许最终用户下载完整的未删节媒体标题以供欣赏(图46中的方框752)。权利对象可准许最终用户下载大量媒体标题。因此,在最终用户已经欣赏了许多下载的标题之后,最终用户接着能够将这些标题从存储器装置中删除,且接着稍后下载相同标题。以此方式,最终用户不会受限于存储器装置的存储容量,而是能重复下载媒体标题并将其从存储器装置中删除。
备份和重新加载控制
在一些情况下,可能需要具有备份例如快闪卡等非易失性存储器装置上的内容的能力,所述内容不仅包括可存在的媒体内容,而且包括控制存取和在内容被存取时可对所述内容进行的处理的任何权利对象。然而,如果这在没有充分控制的情况下进行,那么这可提供借以绕过使用权利对象的控制的后门。举例来说,如果权利对象准许制作有限数目的拷贝(例如,三份拷贝),那么权利对象将记录所作的拷贝数目。一旦已经制作了所设定的有限数目的拷贝,那么权利对象将禁止任何进一步拷贝。如果在复制之前对存储区制作一份权利对象的备份拷贝且在已经制作了三份拷贝之后将所述备份拷贝恢复到存储器装置,那么可避免此限制。通过恢复允许三份拷贝的原始权利对象,用户可再次制作三份额外拷贝。显然可重复此过程,使得可完全绕过权利对象中的限制。存储区可位于从中制作权利对象的备份拷贝的同一装置中,或位于不同装置中。
为了防止发生这种情况,将权利对象存储在受保护分区中,例如上文参看图2到4描述的那些分区。为了存取此受保护分区,应用程序(例如主机上的应用程序)将需要在可准予存取之前向存储器装置供应适当的预定凭证。最终用户通常将能够出于再现或播放由权利对象控制的内容的目的来存取权利对象。为了防止最终用户出于备份和恢复目的而存取权利对象,最终用户凭证准许最终用户仅能够从分区读取权利对象,而不能在所述分区中备份和恢复权利对象。为了备份和恢复权利对象,使用与最终用户可用的那些凭证不同的凭证。只有具有此类凭证的应用程序才可在所述分区中备份和恢复权利对象。将权利对象恢复到受保护分区中,使得所述恢复的权利对象将再次能有效控制对相应内容的存取,例如借助于两组不同凭证:一组仅准许读取权利对象,且另一组准许备份和恢复。
优选地,在已经在备份存储区中备份并存储权利对象之后,将所述权利对象从存储器装置中删除。在将权利对象恢复到存储器装置之后,优选地将其从备份存储器区中删除。
以上特征可应用于各种各样的非易失性存储器存储装置,其中除了非限制存储器区域外还提供安全存储器区域。
作为对以上方案的替代方案,只允许具有第一组凭证的特定授权应用程序执行备份和恢复功能,而具有与第一组凭证不同的第二组凭证的其它应用程序仅可读取权利对象。此授权可由存储器装置控制,或由服务器(例如)通过注册过程在外部控制。希望只有具有DRM和/或CPRM能力的应用程序才将具有用以修改、更新或擦除和/或备份并恢复权利对象的权限。不管是否提供安全存储器区域,此替代方案均可为有用的。
如上文提到的,权利对象可准许制作有限数目的拷贝(例如三份拷贝)。为了实行此规则,权利对象将记录所作的拷贝数目。因此,当应用程序复制权利对象时,将需要更新保持在存储器装置上的权利对象以记录在制作一个拷贝之后仍准许制作的拷贝数目(如果有的话)。此外,将需要在复制期间改变被复制的权利对象,以便准确反映是否可从此拷贝制作另外拷贝。因此,如果最终用户希望允许从此拷贝制作另外拷贝,那么可能优选的是修改所复制的权利对象以使得这个操作成为可能。举例来说,权利对象准许从原物制作总共n个拷贝,其中n是正整数。所复制的权利对象可规定可从所述复制的权利对象制作总共m个拷贝,其中m是零或小于n的正整数。在此情况下,将更新原始权利对象中的规则以准许从原物制作仅(n-m)个拷贝。因此,权利对象(原物以及复制物)将包括可从其制作的拷贝计数或数目,以及将需要在进一步传送后相应修改拷贝计 数的要求。当不能从此对象制作另外的拷贝时,此计数或数目将成为零。
用于控制媒体内容的权利对象可规定用于无限制再现或播放的权利。或者,可同样限制再现或播放数目。如果是这样的情况,那么权利对象将包括仍可进行的再现或播放的计数或数目。
如同在备份和恢复的情况下,出于修改、更新或删除目的来存取权利对象所需要的凭证不同于只读功能所需要的凭证。出于修改、更新或删除目的来存取权利对象所需要的凭证可与用于备份和恢复的凭证相同。
在一些实施例中,举例来说,如果试图制作此对象(即,不能从其制作拷贝的对象)的拷贝,那么这将导致在向另一装置进行拷贝时将此对象从存储器装置(或其它存储设备)中删除,如在所述权利对象中规定的。在删除之后,不再能够出于再现、重放或其它任何目的来存取所述内容。在其它实施例中,如果试图制作此对象的拷贝,那么将更新用于受限或不受限的再现或播放的权利以指示不能进行再现或播放,或可简单地完全阻断对权利对象的存取,除了出于例如诊断或故障分析等有限目的之外。
优选地借助于密钥对权利对象进行加密(优选地在装置10中执行),且向存储器装置出示的恰当凭证将致使此密钥可用于只读或用于以上文描述的方式写入(这意味着允许删除、修改或更新、备份和恢复)。因此,在任何复制或修改之前,首先解密权利对象。接着可以上文描述的方式执行任何修改或删除,并对权利对象进行加密。密码引擎40可用于执行加密。如果不需要权利对象的加密,那么提供不对数据流进行任何密码操作的旁路路径(图1中未展示),就好像不存在密码引擎40且HDMA和FMDA沿着此旁路路径通过仲裁器36直接连接到BRAM 38一样。
此后,如果需要复制且权利对象中的规则准许所述复制,那么可对权利对象进行复制。然而,为了使得这个操作成为安全的过程,使用会话id或密钥来对待复制的解密权利对象进行加密,并将其传输到另一存储装置。在此另一存储装置中,使用会话id或密钥来对权利对象进行解密,且接着再次使用又一密钥(其可来自所述另一存储装置或另一来源)进行加密,并将其存储在另一存储装置中。也可针对经备份并恢复的权利对象执行此过程。
上述特征可应用于各种各样的非易失性存储器存储装置,而不管除了非限制存储器区域外是否还提供安全存储器区域。
尽管上文已经参看各种实施例描述了本发明,但将了解,可在不脱离本发明范围的情况下作出多种改变和修改,本发明范围将仅由所附权利要求书和其等效物界定。本文所提及的所有参考均以引用方式并入本文中。因此,尽管本文参看具有卡形式的快闪存储器来说明一些实施例,但本发明还可应用于其它类型的存储器(不管这些存储器是否具有卡的形式),例如磁盘、光学CD以及所有其它类型的可重写非易失性存储器系统。上文描述的步骤或动作可借助于存储在上述存储器装置和/或终端或主机装置和/或服务器中的软件代码(例如,应用程序软件)来实施。