用于通用内容控制的控制结构和使用结构的方法

文档序号:6553678阅读:190来源:国知局
专利名称:用于通用内容控制的控制结构和使用结构的方法
技术领域
本发明大体上涉及存储器系统,更明确地说,涉及一种具有通用内容控制特征的存储器系统。

背景技术
计算装置市场正朝向在移动存储装置上包括内容存储以便通过产生较多数据交换来增加平均收入的方向发展。这意味着在将移动存储媒体中的内容用于计算装置上时需要保护所述内容。内容包括有价值的数据,此可为除了制造或出售所述存储装置的人之外的群体所拥有的数据。
在第6,457,126号美国专利中描述一种具有加密能力的存储装置。然而,此装置所提供的能力非常有限。因此,需要提供一种具有较多通用内容控制特征的存储器系统。


发明内容
移动存储媒体中的内容保护可涉及加密媒体中的数据,以使得仅授权用户或应用程序可存取用于加密存储在媒体中的数据的密钥。在一些现有系统中,用于加密和解密数据的密钥存储在移动存储媒体外部的装置中。在此类情况下,拥有内容所有权权益的公司或个人可能对媒体中内容的使用没有很多控制。由于用于加密媒体中数据的密钥存在于媒体外部,因而可用不受内容所有者控制的方式将此密钥从一个装置传递到另一个装置。根据本发明的一个特征,如果加密-解密密钥存储在媒体自身中且实质上不可由外部装置存取,那么所有者权益的拥有者将占据控制存取媒体中内容的较佳位置。
通过使得基本上不可从媒体外部存取密钥,此特征对安全内容提供可携性。因此,含有以此类密钥来加密的安全内容的存储装置可用于由各种主机装置来存取,而没有破坏安全性的危险,因为所述装置具有对存取密钥的专有控制。只有那些具有适当证书的主机装置才能够存取所述密钥。
为了增强存储在移动存储媒体中的内容的商业价值,需要内容所有权权益的拥有者能够将不同许可授权给不同实体以用于存取内容。因此,本发明的另一特征基于以下认识可存储用于授权不同许可(例如,给不同经授权实体)以存取存储在媒体中的数据的存取策略。并入有所述两个上述特征的组合的系统尤其有利。一方面,内容拥有者或所有者具有通过使用实质上外部装置不可存取的密钥来控制存取内容的能力,且同时具有授权用于存取媒体中内容的不同许可的能力。因此,即使在外部装置获得存取的情况下,其存取仍可受记录在存储媒体中的由内容拥有者或所有者设定的不同许可支配。
又一特征基于以下认识当在快闪存取器中实施上述策略(其中将不同许可授权给不同经授权实体)时,这导致对内容保护尤其有用的的媒体。
许多存储装置不知道文件系统,而许多计算机主机装置以文件形式读取和写入数据。根据另一特征,主机装置提供密钥参考或ID,而存储器系统作为响应产生与所述密钥ID相关联的密钥值,其中所述密钥值用于密码处理与所述密钥ID相关联的文件中的数据。主机将所述密钥ID与待由存储器系统密码处理的文件进行关联。因此,密钥ID由计算装置和存储器用作句柄,存储器通过所述句柄保持对用于密码处理的密钥值的产生和使用的完全且专有控制,而主机保持对文件的控制。
在例如智能卡的一些移动存储装置中,卡控制器管理文件系统。在例如快闪存储器、磁碟或光碟的许多其它类型的移动存储装置中,装置控制器不知道文件系统;而是,装置控制器依赖主机装置(例如,个人计算机、数码相机、MP3播放器、个人数字助理、蜂窝式电话)来管理文件系统。本发明的各种方面可容易地并入到此些类型的存储装置中,其中所述装置不知道文件系统。这意味着可在各种各样的现有移动存储装置上实践本发明的各种特征而无需重新设计此类装置来使得此类装置中的装置控制器变得知道且能够管理文件系统。
存储媒体中所存储的树结构提供对于实体在恰好获得存取之后可进行什么的控制。树的每个节点指定对于已通过树的此节点获得入口的实体的许可。一些树具有不同等级,其中在树的一节点处的一个或多个许可与在同一树中较高或较低或相同等级的另一节点处的一个或多个许可具有预定关系。通过要求实体遵守在每个节点处如此指定的许可,此应用程序的树特征允许内容拥有者控制哪些实体可采取行动和每个实体可采取哪些行动,这与树是否具有不同等级无关。
为了增强可由移动存储媒体提供的商业价值,需要移动存储装置能够同时支持一个以上应用程序。当两个或两个以上应用程序正同时存取移动存储装置时,可能重要的是能够分离所述两个或两个以上应用程序的操作,以使得其不会以本文称为串话的现象而彼此干扰。因此,本发明的另一特征基于以下认识可提供优选地为分级的两个或两个以上树以用于控制存取存储器。每个树在不同等级包含节点以用于控制相应组实体对数据的存取,其中每个树的节点指定所述一个或多个相应实体用于存取存储器数据的一个或多个许可。在每个树的节点处的所述一个或多个许可与在同一树中较高或较低等级的另一节点处的一个或多个许可具有预定关系。优选地,在所述树的至少两者之间不存在串话。
根据上文,将显然看到树是可用于内容安全性的强有力结构。所提供的一个重要控制是控制树的创建。因此,根据本发明的另一特征,移动存储装置可具备能够创建至少一个分级树(其在不同等级处包含节点以用于由相应实体控制存取存储在存储器中的数据)的系统代理。树的每个节点指定一个或多个相应实体用于存取存储器数据的一个或多个许可。在每个树的节点处的所述一个或多个许可与在同一树中较高或较低或相同等级的节点处的一个或多个许可具有预定关系。因此,可在尚未创建任何树的情况下发行移动存储装置,以使得装置的购买者可以自由地创建分级树,所述分级树适用于购买者所考虑的应用程序。或者,可在已创建树的情况下发行移动存储装置,以使得购买者不必经历创建树的麻烦。在这两种情况下,优选地,树的特定功能性在装置制成之后变得固定,以使得不能进一步改变或修改所述功能性。这提供内容拥有者对装置中内容存取的较强控制。因此,在一个实施例中,可优选地禁用系统代理,以使得不会创建额外的树。
在一些移动存储装置中,通过将存储器划分为多个独立区域来提供内容保护,其中存取受保护区域要求在先认证。尽管此特征提供某种保护,但其不能保护以免通过非法途径获得口令的用户存取。因此,本发明的另一方面基于以下认识可提供一种机制或结构来将存储器划分为多个分区,且使得所述分区中的至少某些数据可用密钥来加密,以使得除了存取某些所述分区所需要的认证之外,可能需要存取一个或一个以上密钥来解密此类分区中经加密的数据。
在一些应用中,可更方便地使得用户能够使用一个应用程序登录存储器系统,且接着能够使用不同应用程序来存取受保护内容而无需再次登录。在此类情况下,用户想要以此方式存取的所有内容可与第一帐户相关联,以使得可经由不同应用程序(例如,音乐播放器、电子邮件、蜂窝式通信)来存取所有此类内容而无需多次登录。接着可将不同组认证信息用于登录以存取在与第一帐户不同的帐户中的受保护内容,即使所述不同帐户是针对相同用户或实体的。
在存储系统中可单独使用上述特征或可以任何组合来组合上述特征,以提供内容拥有者的控制和/或保护的较强通用性。



图1是可用于说明本发明的与主机装置通信的存储器系统的方框图。
图2是存储器的不同分区和存储在不同分区中的未加密和加密文件的示意图,其中存取特定分区和加密文件由存取策略和认证程序控制,所述示意图用以说明本发明的实施例。
图3是说明存储器中不同分区的存储器的示意图。
图4是用于图3所示的存储器的不同分区的文件位置表的示意图,其中所述分区中的某些文件经加密以说明本发明的实施例。
图5是存取受控记录群组中的存取控制记录和相关联密钥参考的示意图,其用以说明本发明的实施例。
图6是由存取受控记录群组和存取受控记录形成的树结构的示意图,其用于说明本发明的实施例。
图7是说明存取受控记录群组的三个分级树的树的示意图,其用以说明所述树的形成过程。
图8A和8B是说明由主机装置和存储器装置(例如,用于创建和使用系统存取控制记录的存储卡)执行的过程的流程图。
图9是说明使用系统存取控制记录来创建存取受控记录群组的过程的流程图,其用以说明本发明。
图10是说明用于创建存取控制记录的过程的流程图。
图11是可用于说明分级树的特定应用程序的两个存取控制记录群组的示意图。
图12是说明用于授权特定权利的过程的流程图。
图13是存取受控记录群组和存取控制记录的示意图,其用以说明图12的授权过程。
图14是说明用于创建用于加密和/或解密目的的密钥的过程的流程图。
图15是说明用于根据存取受控记录来取消存取权利和/或针对数据存取的许可的过程的流程图。
图16是说明当存取权利和/或存取许可已被删除或已期满时请求存取的过程的流程图。
图17A和图17B是说明用于认证的规则结构和用于授权存取密码密钥的策略的组织的示意图,其用以说明本发明的另一实施例。
图18是说明当打开一些对话时认证和存取对话的流程图。
图19-22是说明不同认证过程的流程图。
为了简化说明,在此申请案中,用相同数字标注相同元件。

具体实施例方式 图1的方框图说明其中可实施本发明各种方面的实例性存储器系统。如图1所示,存储器系统10包括中央处理单元(CPU)12、缓冲器管理单元(BMU)14、主机接口模块(HIM)16和快闪接口模块(FIM)18、快闪存储器20和外围存取模块(PAM)22。存储器系统10通过主机接口总线26和端口26a与主机装置24通信。可以是NAND类型的快闪存储器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产生用于加密和/或解密的密钥值,其中此值实质上不可由例如主机装置24的外部装置存取。然而,通常逐个文件地进行加密和解密,因为主机装置以文件的形式读取数据和将数据写入存储器系统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继续允许主机24通过具有对FAT的专有控制来管理文件,而其维持对产生和管理用于密码处理的密钥值的专有控制。主机装置24不参与产生和管理用于数据的密码处理的密钥值。
由主机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读取或写入到文件101,但是除了用户1具有无限制权利来从P0中的文件106读取和写入到文件106之外,仅可读取文件102和104。另一方面,不允许用户2存取文件101和104,但用户2能够读取和写入文件102。如图2指示,用户1和2具有相同登录算法(AES),而应用程序1和3具有不同登录算法(例如,RSA和001001),这些算法也不同于用户1和2的那些算法。
安全存储应用程序(SSA)是存储器系统10的安全性应用程序,且说明本发明的可用于实施许多上述特征的实施例。可用存储器20或CPU 12中的非易失性存储器(未图示)中所存储的数据库来将SSA实施为软件或计算机代码,且将其读取到RAM 12a中并由CPU 12执行。在下表中阐述关于SSA而使用的首字母缩写 定义、首字母缩写&缩略语 SSA系统描述 数据安全性、完整性和存取控制是SSA的主要任务。所述数据是原本将简单地存储在某类型的大容量存储装置上的文件。SSA系统位于存储系统上且增加用于所存储的主机文件的安全层。
SSA的主要任务是管理与存储器中的所存储(且安全)内容相关联的不同权利。存储器应用程序需要管理多个用户和内容权利以成倍增加所存储的内容。来自其侧的主机应用程序看见此类应用程序可见的驱动器和分区以及管理并描绘存储装置上的所存储文件的位置的文件分配表(FAT)。
在此情况下,存储装置使用划分为多个分区的NAND快闪芯片,但也可使用其它移动存储装置且这些其它装置属于本发明范围内。这些分区是逻辑地址的连续线程,其中开始和结束地址界定其边界。因此,如果需要的话,可对隐藏分区的存取加上限制,这借助于将此类限制与此类边界内的地址进行关联的软件(例如,存储在存储器20中的软件)来进行。分区可完全由SSA通过其逻辑地址边界(由SSA管理)来识别。SSA系统使用分区来在实体上保护数据免受未授权的主机应用程序存取。对于主机,分区是界定存储数据文件的所有权空间的机制。这些分区可以是共享的,其中存取存储装置的任何人可以看见且知道装置上分区的存在,或者这些分区可为私有的或隐藏的,其中仅选定的主机应用程序可存取且知道存储装置中分区的存在。
图3是说明存储器的分区P0、P1、P2和P3(明显地,可采用少于或多于四个分区)的存储器的示意图,其中P0是可由任何实体在无需认证的情况下存取的公用分区。
私有分区(例如P1、P2或P3)隐藏对其内的文件的存取。通过防止主机存取所述分区,快闪装置(例如,快闪卡)提供对分区内的数据文件的保护。然而,此种保护通过对存取存储在所述分区内的逻辑地址处的数据加以限制来吞没驻存在隐藏分区中的所有文件。换句话说,所述限制与一个范围的逻辑地址相关联。能够存取所述分区的所有用户/主机将能无限制地存取其内部的所有文件。为了将不同文件-或文件群组-彼此隔离,SSA系统使用密钥和密钥参考或密钥ID对每个文件-或文件群组-提供另一等级的安全性和完整性。可将用于加密在不同存取器地址处的数据的特定密钥值的密钥参考或密钥ID比喻为含有已加密数据的容器或领域。鉴于此原因,在图4中,将密钥参考或密钥ID(例如,“密钥1”和密钥“2”)以图形方式展示为使用与密钥ID相关联的密钥值加密的文件周围的区域。
参看图4,举例来说,文件A可由所有实体存取而无需任何认证,因为文件A经展示为未由任何密钥ID包围。即使公用分区中的文件B可由所有实体读取或重写,文件B也含有用具有ID“密钥1”的密钥来加密的数据,以使得文件B中所含有的信息不可由实体存取,除非此实体能存取此密钥。以此方式,使用密钥值和密钥参考或密钥ID仅提供逻辑保护,这与由上述分区所提供的保护类型相反。因此,可存取分区(公用或私有)的任何主机能够读取或写入整个分区中的数据,包括经加密的数据。然而,由于数据被加密,因而未经授权的用户仅可将其破坏。其优选地不能在没有检测的情况下改变数据或使用数据。通过限制对加密和/或解密密钥的存取,此特征可仅允许经授权的实体使用数据。也可使用P0中具有密钥ID“密钥2”的密钥来加密文件B和C。
可通过使用内容加密密钥(CEK)的对称加密方法(每个CEK对应一种方法)来提供数据机密性和完整性。在SSA实施例中,通过仅内部使用的快闪装置(例如,快闪卡)来产生CEK,且将CEK保持为不为外界所知的秘密。经加密或密码化的数据也可被散列或者密码被链式组块,以确保数据完整性。
并非分区中的所有数据均由不同密钥来加密且与不同密钥ID相关联。公用或用户文件中或操作系统区域(即,FAT)中的某些逻辑地址可以不与任何密钥或密钥参考相关联,且因此可由自身可存取所述分区的任何实体获得。
要求获得创建密钥和分区以及将数据写入分区或从分区读取数据或使用密钥的能力的实体需要通过存取控制记录(ACR)登录至SSA系统。SSA系统中的ACR的特权被称为动作。每个ACR可具有用以执行以下三个种类的动作的许可创建分区和密钥/密钥ID、存取分区和密钥以及创建/更新其它ACR。
ACR被组织成称为ACR群组或AGP的群组。一旦ACR已成功认证,SSA系统便打开对话,通过所述对话可执行任何ACR动作。
用户分区 SSA系统管理一个或一个以上公用分区(也称为用户分区)。此分区存在于存储装置上,且是可通过存储装置的标准读取写入命令存取的分区。获得关于分区大小以及其存在于装置上的信息优选地不能向主机系统隐藏。
SSA系统使得能够通过标准读取写入命令或SSA命令来存取此(些)分区。因此,存取分区优选地不能只限于特定ACR。然而,SSA系统可使得主机装置能够限制对用户分区的存取。可单独启用/禁用读取和写入存取。允许所有四个组合(例如,只写、只读(写入保护)、读取和写入以及无存取)。
SSA系统使得ACR能够将密钥ID与用户分区内的文件相关联并使用与这些密钥ID相关联的密钥来加密各个文件。将使用SSA命令组(关于SSA命令的详细描述,请参考附录A——在附录中,密钥ID称为“领域”)来进行存取用户分区内的加密文件以及设定对所述分区的存取权利。以上特征也适用于未经组织成文件的数据。
SSA分区 这些是可仅通过SSA命令来存取的隐藏(向主机操作系统或OS隐藏)分区。除了通过由登录到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在创建时由主机应用程序唯一提供)来加密与给定密钥ID相关联的所有数据,而不管其位置如何。如果实体获得对隐藏分区的存取(经由通过ACR认证),且希望读取或写入此分区内的加密文件,那么其需要能够存取与文件相关联的密钥ID。当授权存取针对此密钥ID的密钥时,SSA加载与此密钥ID相关联的CEK中的密钥值,且在将数据发送到主机之前将其解密或在将数据写入到快闪存储器20之前将其加密。与密钥ID相关联的CEK中的密钥值由SSA系统随机创建一次且接着由其维护。SSA系统外部没有装置知道或存取CEK中的此密钥值。外界仅提供和使用参考或密钥ID,而并非CEK中的密钥值。密钥值由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(ACP群组)。因此,ACR#1和ACR#n共享对具有密钥ID“密钥3”的密钥的存取。
以分级树来组织AGP和其内的ACR,且因此除了创建保持敏感数据安全的安全密钥之外;ACR可优选地还创建对应于其密钥ID/分区的其它ACR实体。这些ACR子代将具有与其父代(创建者)相同或比其少的许可,且可被给予针对父代ACR自身创建的密钥的许可。不用说,子代ACR获得对其创建的任何密钥的存取许可。这在图6中说明。因此,AGP 120中的所有ACR由ACR 122创建,且两个此类ACR从ACR 122处继承对与“密钥3”相关联的数据的存取的许可。
AGP 通过指定AGP和AGP内的ACR来登录到SSA系统上。
每个AGP具有唯一ID(参考名称),其用作其在SSA数据库中的入口的索引。当创建AGP时,向SSA系统提供AGP名称。如果所提供的AGP名称已经存在于系统中,那么SSA将拒绝创建操作。
使用AGP来管理对于授权存取和管理许可的限制,如将在以下部分中描述。由图6中的两个树提供的功能之一是管理由完全分离的实体(例如两个不同应用程序或两个不同计算机用户)的存取。出于此类目的,其对于实质上彼此独立(即,实质上无串话)的两个存取过程来说是重要的,即使两个过程同时发生。这意味着每个树中的认证、许可以及额外ACR和AGP的创建未连接到其它树的那些且不依赖于其它树的那些。因此,当在存储器10中使用SSA系统时,这允许存储器系统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系统。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可将对其密钥的存取许可授予其所在的同一AGR中的所有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。所述开放模式使得能够在无需任何安全措施且同时在开放通道上(即,在发布机构的安全环境中)进行所有数据传送的情况下创建根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置于标准模式中,仅可通过使其通过指派有用以删除根AGP的许可的其一个ACR登录到系统中来将其删除。除了特殊初始化模式之外,这是根AGP的另一例外;其优选地是可含有具有用以删除其自身AGP的许可的ACR的唯一AGP,这与下一个树等级中的AGP相反。
根ACR与标准ACR之间的第三个也是最后一个区别在于,其是系统中可具有用以创建和删除分区的许可的唯一AGP。
SSA系统ACR 可将系统ACR用于以下两个SSA操作 1.在敌对环境内在安全通道的保护下创建ACR/AGR树。
2.识别和认证主导SSA系统的装置。
优选地,可在SSA中仅存在一个系统ACR,且一旦经定义,其便优选地不可改变。当创建系统ACR时不需要系统认证;仅需要SSA命令。可禁用创建系统ACR特征(类似于创建根AGP特征)。在创建系统ACR之后,创建系统ACR命令没有效果,因为优选地,仅允许一个系统ACR。
当在创建过程中时,系统ACR不操作。当完成时,需要发布特殊命令来指示系统ACR得以创建且准备好运行。在此点之后,系统ACR优选地不能被更新或取代。
系统ACR在SSA中创建根ACR/AGP。其具有用以增加/改变根等级直到满足主机且主机将其封锁为止的许可。封锁根AGP实质上切断其与系统ACR的连接,且致使其防扰。在此点处,没有一者能改变/编辑根AGP和其内的ACR。此通过SSA命令进行。禁用创建根AGP具有持久效应且不可逆。图7中说明以上涉及系统ACR的特征。系统ACR用于创建三个不同根AGP。在创建这些之后的某个时间,从主机发送SSA命令以封锁来自系统ACR的根AGP,借此禁用创建根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)。响应于此状态信号,主机发出指示系统ACR已准备好的SSA命令(方框226)。装置10通过锁定系统ACR以使得其不能被更新或取代来作出响应(方框228)。这锁定了系统ACR的特征和其用于向主机识别装置10的身份。
通过在装置中配置这些功能的方式来确定用于创建新树(新的根AGP和ACR)的程序。图9解释所述程序。主机24与存储器系统10两者均遵守其。如果完全禁用添加新根AGP,那么不能添加新的根AGP(菱形246)。如果其被启用但需要系统ACR,那么主机通过系统ACR来认证并建立安全通道(菱形250,方框252),且之后发出创建根AGP命令(方框254)。如果不需要系统ACR(菱形248),那么主机24可发出创建根AGP命令而无需认证,并进入方框254。如果系统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身份和具有其希望创建的所有必要属性的ACR而经由主机24进入(方框272)。SSA检查与ACR身份的匹配且具有此身份的ACR是否具有创建ACR的许可(菱形274)。如果请求被验证为经授权的,那么装置10中的SSA创建ACR(方框276)。
图11展示两个AGP,其说明可用于使用图10的方法的安全应用程序的树。因此,营销AGP中具有身份m1的ACR具有用以创建ACR的许可。ACR m1还可具有用以将密钥用于读取和写入与密钥ID“营销信息”相关联的数据和与密钥ID“价格列表”相关联的数据的许可。通过使用图10的方法,其创建具有两个ACR的销售AGPs1和s2,其对用于存取与密钥ID“价格列表”相关联的定价数据的密钥而不是对存取与密钥ID“营销信息”相关联的数据所必要的密钥的只读许可。以此方式,具有ACR s1和s2的实体仅可读取而不能改变定价数据,且将不能存取营销数据。另一方面,ACR m2不具有用以创建ACR的许可,且具有对用于存取与密钥ID“价格列表”和密钥ID“营销信息”相关联的数据的密钥的只读许可。
因此,可用上文解释的方式授予存取权利,其中m1向s1和s2授予用以读取定价数据的权利。这对于涉及较大营销和销售群组尤其有用。在仅存在一个或少数销售人员的情况下,可能不需要使用图10的方法。而是,可由ACR向在同一AGP内较低或相同等级处的ACR授予存取权利,如图12说明。首先,实体通过经由主机用上文描述的方式在树中指定ACR来进入此AGP的树(方框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的许可(或连同存在),如图15说明。实体可如同以前那样通过ACR进入树;在一种情况下,实体经认证,且接着其指定ACR(方框330、332)。其要求删除目标ACR或目标ACR中的许可(方框334)。如果所指定的ACR或此时活动的ACR具有这样做的权利(菱形336),那么删除目标ACR,或改变目标ACR的PCR以删除此许可(方框338)。如果这未被认证,那么系统停止。
在上述过程之后,目标将不再能够存取其在所述过程之前能够存取的数据。如图16所示,实体可试图在目标ACR处进入(方框350)并发现认证过程失败,因为先前存在的ACR ID不再存在于SSA中,以使得存取权利被否定(菱形352)。假定尚未删除ACRID,那么实体指定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执行的步骤。在针对ACR1认证实体(方框402)之后,其请求存取存储器装置10中与密钥ID X相关联的文件(方框404、406和408)。如果ACR1的PCR允许此存取,那么装置10授权所述请求(菱形410)。如果不允许,那么系统返回到方框402。在完成认证之后,存储器系统10仅通过所分派的对话id(而并非ACR证书)来识别发出命令的实体。一旦ACR1获得对其PCR中的密钥ID相关联的数据的存取,那么在开放对话中,任何其它应用程序或用户可通过指定正确对话ID(其在主机24上的不同应用程序之间共享)来存取相同数据。此特征在其中更方便地使得用户能够仅登录一次且能够存取与通过其为不同应用程序执行登录的帐户有关的所有数据的应用中是有利的。因此,蜂窝式电话用户可能能够存取存储器20中存储的电子邮件和听存储器20中存储的音乐而无需登录多次。另一方面,ACR1为包含的数据将不可存取。因此,同一蜂窝式电话用户可具有可通过单独帐户ACR2存取的有价值内容(例如游戏和照片)。这是他不希望借用其电话的其他人存取的数据,尽管他不介意其他人通过其第一帐户ACR1存取可用的数据。将对数据的存取分为两个单独帐户且同时允许在开放对话中存取ACR1提供了使用方便性且提供了对有价值数据的保护。
为了更进一步方便在主机应用程序当中共享对话id的过程,当ACR请求开放对话时,其可特别地请求向所述对话分派“0(零)”id。如此,应用程序可经设计以使用预定义的对话id。显然,唯一限制是在特定时间仅可认证请求对话0的一个ACR。认证请求对话0的另一ACR的试图将被拒绝。
安全对话 为了添加安全层,可使用对话id(如图17B所示)。存储器10接着还存储活动对话的对话id。在图17B中,举例来说,为了能够存取与密钥ID X相关联的文件,实体将需要在其被允许存取文件之前还提供对话id(例如,对话id“A”)(方框404、406、412和414)。以此方式,除非请求实体知道正确的对话id,否则其不能存取存储器10。由于在对话结束之后删除对话id且对话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密钥对产生特征并请求将RSA密钥对在SSA系统外部使用。此服务可用于任何主机且不需要认证。
替代实施例 代替使用分级方法,可使用数据库方法来实现类似结果,如图18说明。
如图18所示,可将实体的证书、认证方法、失败试图的最大数目和需要解锁的证书的最小数目的列表输入到存储在控制器12或存储器20中的数据库中,这使得这些证书要求与数据库中由存储器10的控制器12执行的策略(读取、写入存取密钥和分区、安全通道要求)相关。同样存储在数据库中的还有对存取密钥和分区的约束和限制。因此,一些实体(例如,系统管理者)可在白名单上,这意味着这些实体可始终存取所有密钥和分区。其它实体可在黑名单上,且其对存取任何信息的试图将被阻断。限制可以是全局的或密钥和/或分区特定的。这意味着仅某些实体可始终存取某些特定密钥和分区,且某些实体始终不能存取。可对内容本身进行约束,而不管内容所在的分区或用于将其加密或解密的密钥。因此,某些数据(例如,歌曲)可具有其仅可由存取其的前面五个主机装置来存取或其它数据(例如,电影)仅可被读取有限次数(而不管哪些实体已进行存取)的属性。
认证 口令保护 ·口令保护意味着需要出示口令以存取受保护区域。除非其不能是一个以上口令,否则口令可与例如读取存取或读取/写入存取的不同权利相关联。
·口令保护意味着装置(例如,快闪卡)能够验证由主机提供的口令,即装置也具有存储在由装置管理的安全存储区域中的口令。
问题和限制 ·口令常遭受重放攻击。因为口令在每次出示之后不发生改变,所以其可被同样地再次发送。这意味着如果待保护的数据是有价值的,且通信总线可易于存取,那么照现在的样子不能使用口令。
·口令可保护对所存储数据的存取,但不应用于保护数据(并非密钥) ·为了增加与口令相关联的安全等级,可使用主密钥来使口令多样化,这导致一个口令被黑(hack)不会破坏整个系统。基于对话密钥的安全通信通道可用于发送口令。
图19是说明使用口令的认证的流程图。实体向系统10(例如,快闪存储卡)呈报帐户id和口令。系统检查以查看所述口令是否与其存储器中的口令匹配。如果匹配,那么返回受认证状态。否则,针对那个帐户递增错误计数器,且要求实体重新输入帐户id和口令。如果计数器溢出,那么系统返回拒绝存取的状态。
质询响应 图20是说明使用质询/响应型方法的认证的流程图。实体呈报帐户id,且从系统10请求质询。系统10产生随机号码并将其呈现给主机。主机从所述号码计算出响应,并将其发送给系统10。系统10将所述响应与所存储的值进行比较。剩余步骤类似于图19中用于确定是否授权存取的步骤。
图21是说明使用另一质询/响应型方法的认证的流程图。图21与图20的不同之处在于,除了要求主机由系统10认证之外,其还要求系统10由质询/响应认证,其中系统10也从主机请求质询且返回响应以由主机检查。
图22是说明使用另一质询/响应型方法的认证的流程图。在此情况下,只有系统10需要被认证,其中主机将质询发送给系统10,系统10计算出响应,所述响应由主机检查以确定与系统10的其记录的匹配。
对称密钥 对称密钥算法意味着在两侧上使用SAME密钥来进行加密及解密。其意味着在通信之前密钥必须被预先同意。而且,每侧应实施彼此反向的算法,即,一侧上是加密算法而另一侧上是解密算法。所述两侧不需要实施两个算法来通信。
认证 ·对称密钥认证意味着装置(例如,快闪卡)与主机共享相同密钥且具有相同加密算法(直接和反向,例如DES和DES-1)。
·对称密钥认证意味着质询-响应(保护以免受重放攻击)。受保护装置产生对于另一装置的质询,且两者均计算响应。认证装置发送回响应,且受保护装置检查响应且因此验证认证。接着可授权与认证相关联的权利。
认证可以是 ·外部的装置(例如,快闪卡)认证外界,即,装置验证给定主机或应用程序的证书 ·相互的在两侧上产生质询 ·内部的主机应用程序认证装置(例如,快闪卡),即,主机检查装置对于其应用程序来说是否是真实的 为了增加整个系统的安全等级(即,破坏一者不会破坏所有) ·通常可将对称密钥与使用主密钥的多样化结合 ·相互认证使用来自两侧的质询以确保质询是真实质询 加密 对称密钥密码术也用于加密,因为其是非常有效的算法,即,其不需要强大CPU来处理密码术。
当用于保护通信通道时 ·两个装置必须知道用以保护通道(即,加密所有传出数据和解密所有传入数据)的对话密钥。通常使用预先共享的秘密对称密钥或使用PKI来建立此对话密钥。
·两个装置必须知道并实施相同密码算法 签名 对称密钥也可用于签署数据。在所述情况下,签名是加密的部分结果。保持结果不完整允许签署进行所需要的次数而不会暴露密钥值。
问题和限制 对称算法是非常有效且安全的,但其基于预先共享的秘密。发布以动态方式秘密地共享此秘密且可能使其为随机的(如同对话密钥)。此想法在于,共享秘密难以长期保持安全且几乎不可能与多人共享。
为了有利于此操作,已发明公用密钥算法,因为其允许交换秘密而无需共享秘密。
公用密钥密码术 不对称密钥算法通常指公用密钥密码。其是非常复杂且通常CPU密集的数学实施。已发明其来解决与对称密钥算法相关联的密钥分布的问题。其也提供用于确保数据完整性的签署能力。
不对称密钥算法使用分别被称为私有密钥和公用密钥的具有私有和公用元素的密钥。私有密钥与公用密钥两者以数学方式链接在一起。公用密钥可被共享,而私有密钥需要保密。至于所述密钥,不对称算法使用两个数学函数(一个用于私有密钥且一个用于公用密钥)来提供包裹及解开或签署和验证。
密钥交换和密钥分配 密钥交换通过使用PK算法而变得非常简单。装置将其公用密钥发送给其它装置。其它装置用所述公用密钥来包裹其秘密密钥,且将已加密的数据返回到第一装置。第一装置使用其私有密钥来解开数据,且检索两侧现都知道且可用于交换数据的秘密密钥。因为可容易地交换对称密钥,所以其通常是随机密钥。
签名 由于其本性的缘故,公用密钥算法通常仅用于签署少量数据。为了确保数据完整性,其接着与提供消息的单向足迹的散列函数组合。
私有密钥用于签署数据。公用密钥(可自由获得)允许验证签名。
认证 认证通常使用签名质询经签署并返回以供验证。
密钥的公用部分用于验证。因为任何人可产生密钥对,所以需要证实公用密钥的拥有者以便证明这是使用正确密钥的合适人。凭证授权方提供凭证,且将在签署凭证中包括公用密钥。凭证由授权方自身签署。接着使用公用密钥来验证签名意味着信任发出含有所述密钥的凭证的授权方且能够验证所述凭证尚未被黑掉,即,由授权方签署的凭证散列是正确的;意味着用户具有授权方公用密钥凭证并信任所述授权方公用密钥凭证。
提供PK认证的最普通方法是信任授权方或根凭证且间接信任由给定授权方证实的所有密钥对。那么认证是通过签署质询和提供质询响应和凭证来证明所具有的私有密钥与凭证匹配的事项。接着,检查凭证以确保其尚未被黑掉且其由受信任的授权方签署。接着,验证质询响应。如果凭证被信任且质询响应正确,那么认证成功。
装置(例如,快闪卡)中的认证意味着对装置加载受信任的根凭证且装置能够验证质询响应以及凭证签署的散列。
文件加密 PK算法并不用于加密大量数据,因为其是过于CPU密集的,但PK算法通常用于保护经产生以加密内容的随机化加密/解密密钥。举例来说,SMIME(安全电子邮件)产生接着用所有接受者的公用密钥加密的密钥。
问题和限制 因为任何事物可产生密钥对,所以其必须被证实以确保其来源。在密钥交换期间,一者可能想要确保秘密密钥被提供给正确的装置,即,将需要检查所提供的公用密钥的来源。那么凭证管理成为安全性的一部分,因为其可通知关于密钥的有效性和密钥是否已被撤销。
尽管上文已参考各种实施例描述了本发明,但将了解,可在不脱离本发明范围的情况下,对本发明作出各种改变和修改,本发明的范围应仅由所附权利要求书和其等效物界定。本文所提到的所有参考均以引用方式并入本文中。
1 SSA命令 使用标准(用于相关格式因数协议)写入及读取命令将SSA系统命令传递到存储卡。因此,从主机的观点来看,发送SSA命令真正意味着将数据写入到存储器装置上用作缓冲文件的特殊文件。经由从缓冲文件读取数据来从SSA系统获得信息。主机应用程序必须确保数据总是从缓冲文件的第一LBA写入和读取。在主机OS中管理缓冲文件是超出本说明书的范围的。
1.1与SSA系统通信 以下部分定义如何通过使用格式因数(form factor)标准写入/读取命令使SSA相关命令和数据与SSA系统通信。
1.1.1向SSA系统发送命令/数据 为通过签名而扫描每个写入命令的第一数据块。如果发现通过签名,那么将数据解释为SSA命令。如果未发现通过签名,那么将数据写入到所指定的地址。
SSA应用特定写入命令可包括多个扇区转移,其中第一扇区保持所需签名和命令的引数且剩余数据块保持相关数据(如果有的话)。
表...定义SSA命令的第一块(如在标准OS文件系统中所使用,数据块总是512字节)的格式。
表1SSA命令引数LBA格式 1.1.2从SSA系统读取数据 将分两个部分执行读取命令 1.通过首先发送具有定义读取命令的所有引数的单一数据块的写入命令来起始读取命令。
2.在写入命令将卡应用程序设置在正确的转移状态上之后,使用读取命令来起始从卡到主机的实际数据转移。读取命令必须使用前一写入命令所使用的同一LBA地址。这是对卡的关于主机正试图获得SSA数据(先前所请求)的唯一指示。
读取/写入命令对必须小心地同步。下一对话定义如何处理及恢复序列误差。如所定义,SSA系统支持可能同时登录的多个主机侧用户。每个用户期望独立地且非同步地起始读取/写入命令对,因此不需要主机OS的任何特殊行为。从卡的观点来看,通过在序列的写入半侧使用的LBA地址来识别这些个别对。从主机的观点来看,这意味着每个用户必须使用不同的文件缓冲。
1.1.3读取/写入序列误差 1.2命令详细描述 表2提供SSA命令的大体概述。
命令名称栏提供了命令使用的基本描述和命令的详细描述的索引。命令操作代码是用于SSA命令中的实际值。引数长度(Arg Len)栏定义了命令的引数字段的大小(为零的值意味没有引数)。引数是命令特定的且在详细命令描述中指定。
数据长度是与命令相关联的额外数据块中命令数据的大小。为零之值意味没有数据,值“Var”意味命令具有可变的数据大小且实际大小在命令本身中指定。对于固定大小数据命令,此栏存储数据大小的大小。数据方向可为空白(如果命令不具有数据(意味如表1中所指定的命令引数都在字节76与字节511之间的空间中-超过此空间存在伴随命令扇区的数据有效负载))、“写入”(如果数据从主机移动到卡(附到写入命令的引数块)),或“读取”(如果数据从卡移动到主机)(如以上所述在提供引数的写入命令之后的读取命令中)。
表2SSA命令 1.2.1创建系统ACR 创建系统ACR在SSA数据库中创建系统ACR条目。一旦创建起条目那么可根据指定的登录算法来配置证书。最后使用CREATE_SYSTEM_ACR_DONE命令来终止序列并使系统ACR有效。
如果ACR条目已存在或创建系统ACR特征被禁用,那么将拒绝创建系统ACR命令。仅可用可用登录模式的子集来配置系统ACR(细节请参考部分1.3.2)。如果使用无效模式那么命令将被拒绝。
在表3中给出命令引数。字节偏移与命令引数LBA的开始相关(见部分1.1.1)。引数长度以字节单位给出。引数名称定义引数的目的且可用作详细引数描述的索引。
表3创建系统ACR命令引数 1.2.2系统ACR创建完成 仅在系统ACR创建开始之后发送此命令。在任何其他时候将拒绝所述命令。发送此命令终止系统ACR创建,且将当前配置永远留给ACR。对于此命令不存在引数。
1.2.3 PASSWORD_CREDENTIAL 在发送SSA命令[28](CREATE_ACR)之后,发送ACR的证书。在此情况下证书是具有某长度的口令(以字节计的最大长度为20)。
表4口令证书命令引数 1.2.4 SYMMETRIC_CREDENTIAL 当挑选ACR的对称登录程序时其随后是以AES、DES或3DES密钥的形式发送ACR的对称证书。算法的特性将指示以字节计的证书(密钥)长度。可在正规ACR和系统ACR创建时间使用此命令。
错误!未找到参考源。表13描述不同类型的非对称证书。
表5对称证书命令引数 1.2.5非对称证书 对于具有非对称登录程序的ACR,存在必须传递到SSA的若干证书。以下表14描述不同类型的非对称证书 表6非对称证书命令引数 1.2.6.输出公共密钥 1.2.7输入证书 1.2.8配置ACAM 发送此命令配置ACR管理许可。仅在ACR创建期间发送所述命令。对于系统ACR所述命令为无效的。ACAM类型和代码在表16ACAM类型中描述 表7配置ACAM命令引数 1.2.9 创建根AGP 为创建安全通道下的根AGP,必须执行经系统ACR的SSA系统登录。在登录之后,对话ID将创建且用于创建序列。当恰在完成系统ACR登录序列之后请求系统命令返回状态时对话ID是可用的。创建根AGP而不首先登录到系统ACR(以安全通道创建根AGP)不需要对话ID。
表8回顾了命令引数。在不使用系统ACR时,对话ID字段保留为空(NULL)(NA)。在AGP名称/ID前的是其长度的字节数。
表8创建根AGP命令引数 命令结构 ·命令名称/操作代码-1字节SSA_CREATE_ROOT_AGP_CMD[3] ·命令引数- 1.对话ID-是否需要??? 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 1.2.10根AGP创建完成 此命令在根AGP完成时传递-意味AGP中的所有ACR得以创建。此命令将锁定AGP以便不再可创建更多ACR。
对于此命令不存在引数。
命令结构 ·命令名/操作代码-1字节 SSA_ROOT_AGP_CREATION_DONE_CMD[4] ·命令引数- 1.对话ID-是否需要??? 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 1.2.11 DISBALE_SYSTEM_ACR_CREATION 发送此命令将终止创建系统ACR的能力。此命令无引数。
1.2.12 SET_ROOT_AGP_CREATION_MODE 用SSA命令[19]SET_ROOT_AGP_CREATION_MODE处理对根AGP创建的控制。不同模式的代码在表9中描述。此命令不需要登录SSA因此不需要对话ID。
表9根AGP创建模式 表10设定根AGP创建模式命令引数 1.2.13 DISBALE_ROOT_AGP_CHANGE_MODE 此命令使SET_ROO_AGP_CREATION_MODE命令为不可操作的,且其将被SSA拒绝。此命令不具有引数。
1.2.14 创建AGP 表11创建AGP命令引数 命令结构 ·命令名称/操作代码-1字节SSA_CREATE_AGP_CMD[5] ·命令引数- 1对话ID-1字节 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 1.2.15删除AGP 此命令对于创建AGP的ACR为有效的,且假定其无ACR。
命令结构 ·命令名称/操作代码-1字节SSA_DELETE_AGP_CMD[6] ·命令引数- 1.1对话ID-1字节 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 1.2.16创建ACR 命令结构 ·命令名称/操作代码-1字节SSA_CREATE_ACR_CMD[7] ·命令引数- 1.AGP名称/ID- 2.ACR名称/ID- 3.登录算法-1字节 4.密钥长度 5.解锁ACR名称/ID 6.管理权利(ACAM)的数目-1字节 7.ACAM#1 8.ACAM#n1.2.17更新ACR 此命令仅能由ACR创建者发送以更新子代ACR。驻留在根AGP中的ACR因其没有父代ACR而不能被更新。
命令结构 ·命令名称/操作代码-1字节SSA_UPDATE_ACR_CMD[8] ·命令引数- 1.对话ID-1字节 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 4.以字节计的ACR名称/ID长度-1字节 5.ACR名称/ID- 1.2.18删除ACR 此命令仅能由ACR创建者发送以删除子代ACR。驻留在根AGP中的ACR具有删除其自身的能力。
命令结构 ·命令名称/操作代码-1字节SSA_DELETE_ACR_CMD[9] ·命令引数- 1.对话ID-1字节 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 4.以字节计的ACR名称/ID长度-1字节 5.ACR名称/ID- 1.2.19解锁ACR 此命令仅可由具有此明确许可的ACR发送以便解锁某一ACR。
命令结构 ·命令名称/操作代码-1字节SSA_UNBLOCK_ACR_CMD[10] ·命令引数- 1.对话ID-1字节 2.以字节计的AGP名称/ID长度-1字节 3.AGP名称/ID- 4.以字节计的ACR名称/ID长度-1字节 5.ACR名称/ID- 1.2.20授权域许可 命令结构 ·命令名称/操作代码-1字节 SSA_DELEGATE_DOMAIN_PERMISSION_CMD[11] ·命令引数- 1.对话ID-1字节 2.用于授权的许可数目-1字节 3.所授权的许可代码 4.以字节计的域名/ID长度-1字节 5.域名/ID 1.2.21创建分区 此命令仅可由驻留在根AGP中的ACR发送。
命令结构 ·命令名称/操作代码-1字节SSA_CREATE_PARTITION_CMD[12] ·命令引数- 1.对话ID-1字节 2.以字节计的分区名称/ID长度-1字节 3.分区名称/ID 4.扇区中分区大小[512字节]-4字节 5.以字节计的减少的分区名称/ID长度-1字节 6.减少的分区名称/ID 1.2.22更新分区 此命令仅可由驻留在根AGP中的ACR发送。
命令结构 ·命令名称/操作代码-1字节SSA_UPDATE_PARTITION_CMD[13] ·命令引数- 1.对话ID-1字节 2.以字节计的分区名称/ID长度-1字节 3.分区名称/ID 4.扇区中分区大小[512字节]-4字节 5.以字节计的减少的分区名称/ID长度-1字节 6.减少的分区名称/ID 1.2.23删除分区 此命令仅可由驻留在根AGP中的ACR发送。
命令结构 ·命令名称/操作代码-1字节SSA_DELETE_PARTITION_CMD[14] ·命令引数- 6.对话ID-1字节 7.以字节计的分区名称/ID长度-1字节 8.分区名称/ID 1.2.24限制公共域存取 此命令将限制到公共分区/来自公共分区(也称为用户区域)的正规读取/写入命令(由主机发送的且不是SSA命令协议的部分的命令)。
命令结构 ·命令名称/操作代码-1字节 SSA_RESTRICT_PAUBLIC_PARTITION_CMD[15] ·命令引数- 1.对话ID-1字节 2.公共分区限制代码-1字节 1.2.25创建域 命令结构 ·命令名称/操作代码-1字节SSA_CREATE_DOMAIN_CMD[16] ·命令引数- 1.对话ID-1字节 2.以字节计的分区名称/ID长度-1字节 3.分区名称/ID 4.以字节计的域名/ID长度-1字节 5.域名/ID 1.2.26删除域 仅域所有者可发送此命令并删除域。
命令结构 ·命令名称/操作代码-1字节SSA_DELETE_DOMAIN_CMD[17] ·命令引数- 1.对话ID-1字节 2.以字节计的分区名称/ID长度-1字节 3.分区名称/ID 4.以字节计的域名/ID长度-1字节 5.域名/ID 1.2.27系统登录 当主机用户希望通过ACR中的一者使用SSA系统时颁发此命令。所述命令将开始登录/认证过程。
命令结构 ·命令名称/操作代码-1字节SSA_SYSTEM_LOGIN_CMD[18] ·命令引数- 1.以字节计的AGP名称/ID长度-1字节 2.AGP名称/ID- 3.以字节计的ACR名称/ID长度-1字节 4.ACR名称/ID- 1.2.28系统退出 当主机用户希望终止与SSA系统的工作对话时颁发此命令。所述命令结束当前登录对话的所有用户活动。在此命令之后主机用户将需要再次开始登录过程以便能执行与SSA系统的进一步动作。
命令结构 ·命令名称/操作代码-1字节SSA_SYSTEM_LOGOUT_CMD[19] ·命令引数- 1.以字节计的AGP名称/ID长度-1字节 2.AGP名称/ID- 3.以字节计的ACR名称/ID长度-1字节 4.ACR名称/ID- 1.2.29读取 命令结构 ·命令名称/操作代码-1字节SSA_READ_CMD[20] ·命令引数- 1.对话ID-1字节 2.以字节计的分区名称长度-1字节 3.分区名称 4.以字节计的域名长度-1字节 5.域名 6.分区地址(LBA)-4字节 7.将读取的LBA的数目(扇区-扇区=512字节)-4字节 1.2.30写入 命令结构 ·命令名称/操作代码-1字节SSA_WRITE_CMD[21] ·命令引数- 1.对话ID-1字节 2.以字节计的分区名称长度-1字节 3.分区名称 4.以字节计的域名长度-1字节 5.域名 6.分区地址(LBA)-4字节 7.将读取的LBA的数目(扇区-扇区=512字节)-4字节 1.2.31命令状态 可发送此状态命令以便获得所发送的前一命令的返回状态。所述状态处理命令过程和SSA系统状态。
命令结构 ·命令名称/操作代码-1字节SSA_CMD_STATUS_CMD[22] ·命令引数- 1.对话ID-1字节 1.2.32系统询问 系统询问命令读取登录的ACR的范围中的SSA信息。
命令结构 ·命令名称/操作代码-1字节SSA_SYS_QUERY_CMD[23] ·命令引数- 1.对话ID-1字节 1.2.33口令认证命令 1.2.33.1发送口令到SSA 所述命令发送待由SSA验证的实际ACR口令。发送命令状态命令(22)将使主机能读取命令状态且能在命令完成时读取认证过程的状态-通过/失败。
命令结构 ·命令名称/操作代码-1字节SSA_PWD_AUTH SEND PWD_CMD[24] ·命令引数- 1.以字节计的口令长度-1字节 2.口令数据。
1.2.34对称认证命令 1.2.34.1从SSA获得质询 命令结构 ·命令名称/操作代码-1字节SSA_SYM AUTH_GET_CHLG_CMD[25] ·命令引数- 1.2.34.2向SSA发送质询 命令结构 ·命令名称/操作代码-1字节 SSA_SYM_AUTH_SEND_CHLG_CMD[26] ·命令引数- 1.2.34.3从SSA获得质询响应 命令结构 ·命令名称/操作代码-1字节 SSA_SYM_AUTH_GET_CHLG_RES_CMD[27] ·命令引数- 1.2.34.4从SSA发送质询响应 命令结构 ·命令名称/操作代码-1字节 SSA_SYM_AUTH_SEND_CHLG_RES_CMD[28] ·命令引数- 1.2.35非对称认证处理命令 1.2.35.1向SSA发送质询 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_SEND_CHLG_CMD[29] ·命令引数-质询随机数-28字节 1.2.35.2从SSA获得质询 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_GET_CHLG_CMD[30] ·命令引数-NA 1.2.35.3向SSA发送CA凭证 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_SEND_CA_CERT_CMD[31] ·命令引数- 1.2.35.4获得SSA前主导装置秘密 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_GET_PRE_MASTER_SECRET_CMD[32] ·命令引数- 1.2.35.5从SSA获得ACR凭证 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_GET_CHLG_CMD[33] ·命令引数- 1.2.35.6将主机前主导装置秘密发送给SSA 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_SEND_PRE_MASTER_SECRET_CMD[34] ·命令引数- 1.2.35.7发送开始对话消息 命令结构 ·命令名称/操作代码-1字节 SSA_ASYM_AUTH_SEND_START_SESSION_MSG_CMD[35] ·命令引数- 1.PIN选项- 2.以字节计的PIN长度- 3.PIN串- 1.2.35.8从SSA获得认证完成消息 命令结构 ·命令名称/操作代码-1字节SSA_SYM_AUTH_GET_CHLG_CMD[36] ·命令引数- 1.3SSA命令引数 1.3.1不可应用 在引数列表中定义为不可应用(NA)的所有字段必须设定为0。
1.3.2口令和PIN结构 口令和PIN片语为20字节长且为SSA系统的二进制值。短于20字节的任何片语必须带有“0”间隙。
1.3.3登录算法 此引数定义ACR的逻辑算法。其为1字节长的。可用的值在以下表中加以定义 表12登录算法类型 1.3.4对称证书符号 表13对称证书类型 1.3.5非对称证书类型 表14非对称证书类型 1.3.6分区权利 1.3.7域权利 1.3.8域许可代码 表15域许可类型 1.3.9ACAM 表16ACAM类型 1.3.10公共分区限制代码 表17公共分区限制类型 1.3.11命令状态 1.3.12 SSA询问 1.3.13命令序列 1.3.13.1经由互相对称认证的SSA登录的命令序列 当成功地完成此序列时,SSA的ACR登录且SSA操作可开始。
1.3.13.2用于创建根AGP的命令序列 可经由系统ACR(其要求对系统ACR执行登录序列)或放弃安全通道且跳过系统ACR认证过程来创建根AGP。将命令SSA_CREATE_ROOT_AGP_CMD[3]与根AGP的身份一起发送。
此命令之后可为SSA_CMD_STATUS_CMD[22]以便确信SSA未拒绝所述命令且所述命令在没有错误的情况下完成。当完成根AGP且随后所有其ACR得以创建以便发送根AGP时,将发送SSA_ROOT_AGP_CREATION_DONE_CMD[4]命令。
1.3.13.3用于创建AGP的命令序列 为创建AGP,用户必须首先通过执行1.3.13.1中所展示的登录命令序列来登录SSA。必须在建立ACR的新群组之前创建AGP。通过与AGP名称/ID一起发送命令SSA_CREATE_AGP_CMD[5]来创建AGP。
为验证CMD[5]在没有误差的情况下被接收和执行,用户发送SSA_CMD_STATUS_CMD[22]且读取前一发送的命令的状态。当用户完成创建AGP时,可以继续创建ACR或从SSA系统退出。
1.3.13.4用于建立ACR的命令序列 为创建ACR,用户必须首先通过执行1.3.13.1中所展示的登录命令序列来登录SSA。同样,必须存在新ACR所归属的AGP。随后用户与所有新ACR数据(名称、AGP、登录方法等)一起发送命令SSA_CREATE_ACR_CMD[7]。为验证CMD[7]在没有错误的情况下被接收和执行,用户发送SSA_CMD_STATUS_CMD[22]且读取前一发送的命令的状态。当用户完成创建ACR时,可以继续其他SSA操作或从SSA系统退出。
1.4产品参数 ·最大数目的所有实体(MAROs、ARCR、并行对话等)。
·在适用处添加密码参数的定义,即RSA密钥长度。
·需要定义每协议的错误条件和消息。
·需要定义超时和忙处理。
·指定树上的级数。
·根MAROS的限制#。
·子代(根上)的限制#在所有子代上?授权到。
·在CBC上下文(平行)的数目上将存在限制,例如5-10。
·协议和产品版本。
权利要求
1.一种用于操作存储系统的方法,所述系统包括非易失性存储器和控制对所述存储器的存取的控制器,所述控制器或存储器存储至少第一和第二分级树,所述分级树包括位于不同等级的节点,所述节点用于控制第一和第二相应实体组对存储在所述存储器中的数据的存取,其中每个所述树的节点均指定一个或多个相应实体存取存储器数据的一个或多个许可,其中每个所述树的节点处的一个或多个许可与同一树中的较高或较低等级上的另一节点处的一个或多个许可具有预定关系;所述方法包括
从所述第一和第二相应实体组接收对存取存储器数据的请求;以及
根据所述第一和第二分级树的所述节点处的一个或多个许可来控制所述第一和第二相应实体组对存储器数据的存取,其中在所述第一和第二相应实体组对存储器数据的存取中没有串话。
2.根据权利要求1所述的方法,其中所述树中的所述至少两者控制对所述存储器中两个单独数据组的存取,以使得所述控制使得所述第一和第二相应实体组中的每一组能够存取所述两个数据组中的相应一组。
3.根据权利要求2所述的方法,其中所述控制使得所述第一和第二相应实体组能够借助于两个单独计算机应用程序来存取数据。
4.根据权利要求1所述的方法,其中每个所述树的节点处的所述一个或多个许可指示对所述存储器中数据的存取权利,所述存取权利不少于由同一树中的较低等级的节点处的一个或多个许可所指示的存取权利。
5.根据权利要求1所述的方法,其中所述树中的至少一者的相同等级上的多个节点形成一个群组,且其中所述控制允许所述群组的节点处的相应实体通过使用至少一个公用密钥来存取所述存储器中的数据。
6.根据权利要求5所述的方法,其中对所述群组的节点处的相应实体的一个或多个许可允许使用所述至少一个公用密钥来存取所述存储器中的数据的不同权利。
7.根据权利要求6所述的方法,其中根据树的节点处的一个或多个许可,所述控制允许第一实体通过使用所述至少一个公用密钥来只读存取所述存储器中的数据以及第二实体通过使用至少一个公用密钥来读写存取所述存储器中的数据。
8.根据权利要求1所述的方法,其中树的节点处的所述一个或多个许可用于存取用于加密和/或解密所述存储器中的数据的密钥。
9.根据权利要求1所述的方法,其中根据树的节点处的一个或多个许可,所述控制允许存取所述存储器的一个或一个以上分区。
10.一种安全存储系统,其包括
非易失性存储器;以及
控制器,其控制对所述存储器的存取,所述控制器或存储器存储至少第一和第二分级树,所述分级树包括位于不同等级处的节点,所述节点用于控制第一和第二相应实体组对存储在所述存储器中的数据的存取,其中每个所述树的节点均指定一个或多个相应实体存取存储器数据的一个或多个许可,其中每个所述树的节点处的一个或多个许可与同一树中的较高或较低等级上的另一节点处的一个或多个许可具有预定关系,且其中所述树中的至少两者之间没有串话。
11.根据权利要求10所述的系统,其中所述树中的所述至少两者控制对所述存储器中两个单独数据组的存取,以使得所述至少两个树中的每一者均控制对所述两个数据组中的相应一组的存取。
12.根据权利要求11所述的系统,其中所述树中的所述至少两者通过两个单独计算机应用程序来控制存取。
13.根据权利要求10所述的系统,其中每个所述树的节点处的所述一个或多个许可指示对所述存储器中数据的存取权利,所述存取权利不少于由同一树中的较低等级的节点处的一个或多个许可所指示的存取权利。
14.根据权利要求10所述的系统,其中所述树中的至少一者的相同等级上的多个节点形成一个群组,且对所述群组的节点处的相应实体的一个或多个许可允许通过使用至少一个公用密钥来存取所述存储器中的数据。
15.根据权利要求14所述的系统,其中对所述群组的节点处的相应实体的一个或多个许可允许使用所述至少一个公用密钥来存取所述存储器中的数据的不同权利。
16.根据权利要求15所述的系统,其中对所述群组的所述节点中的一者处的相应实体的一个或多个许可允许第一实体通过使用所述至少一个公用密钥来只读存取所述存储器中的数据以及第二实体通过使用所述至少一个公用密钥来读写存取所述存储器中的数据。
17.根据权利要求10所述的系统,其中树的节点处的所述一个或多个许可用于存取用于加密和/或解密所述存储器中数据的密钥。
18.根据权利要求10所述的系统,其中树的节点上的所述一个或多个许可用于存取所述存储器的一个或一个以上分区。
全文摘要
本发明提供一种存储在存储媒体中的树结构,其对实体恰在获得存取之后可做什么提供控制。所述树的每个节点指定已通过所述树的此节点获得入口的实体所具有的许可。一些树具有不同的等级,其中所述树的一节点处的一个或多个许可与在同一树中更高或更低或相同等级处的另一节点处的一个或多个许可具有预定关系。通过要求实体遵守在每个所述节点处所指定的许可,此应用程序的树特征允许内容拥有者控制哪些实体可采取动作以及每个所述实体可采取哪些动作,而不管所述树是否具有不同等级。为了提高可由移动存储媒体提供的商业价值,需要移动存储装置能够同时支持一个以上应用程序。当两个或两个以上应用程序正同时存取所述移动存储装置时,可能重要的是能够分离所述两个或两个以上应用程序的操作,以使得它们不以本文称为串话的现象彼此发生干扰。两个或两个以上优选分级树控制对存储器的存取。每个树包含位于不同等级处的节点,所述节点用于控制相应一组实体对数据的存取,其中每个树的节点指定一个或多个相应实体存取存储器数据的一个或多个许可。位于每个所述树的一节点处的一个或多个许可与同一树中更高或更低等级处的另一节点处的一个或多个许可具有预定关系。优选地,在所述树中的至少两者之间没有串话。
文档编号G06F21/10GK101120356SQ200580048274
公开日2008年2月6日 申请日期2005年12月21日 优先权日2004年12月21日
发明者法布里斯·约刚-库仑, 迈克尔·霍尔茨曼, 巴赫曼·卡瓦米, 罗恩·巴尔齐莱 申请人:桑迪士克股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1