专利名称::使用身份对象的控制系统及方法
技术领域:
:本发明通常涉及存储器系统,且明确地说涉及一种具有通用控制特征的存储器系统。
背景技术:
:例如快闪存储器卡的存储装置是已经变成用于存储例如相片的数字内容的存储媒体的选择。快闪存储器卡还可用于散布其它类型的媒体内容。此外,越来越多的主机装置(例如计算机、数码相机、移动电话、个人数字助理及例如MP3播放器的媒体播放器)现在具有再现存储于快闪存储器卡中的媒体内容的能力。因此,快闪存储器卡以及其它类型移动存储装置具有很大的潜能变成用于散布数字内容的广泛使用的传播媒介。对于一些应用,可要求与存储器装置(例如存储器卡)相关联的实体提供其身份证明。如果不易得到所述身份证明,就很不方便。对于其它应用,待存储在存储器装置(例如存储器卡)中的数据可能需要通过安全方法来加以保护。
发明内容一种称为身份对象的对象包含公钥与私钥对,及由证书授权机构发布的至少一个证书,所述至少一个证书用于证实所述对中的所述公钥是真的。在一个实施例中,可通过使用所述私钥来对提供给所述对象的数据或自所述数据得到的信号进行签名而将此对象用作识别证明。可将身份对象作为身份证明存储在非易失性存储器中,其中所述存储器由控制器控制。优选地,外壳包封所述存储器及所述控制器。在另一实施例中,可将身份对象作为身份证明存储于存储器系统的非易失性存储器中。所述存储器系统以可拆卸方式连接到主机装置。在已成功验证所述主机装置之后,使用所述对象的所述私钥加密来自所述主机装置的数据或自所述数据得到的信号,且将所述至少一个证书及所述经加密的数据或信号发送到所述主机装置。在又另一实施例中,在实体已通过所述存储器系统的控制数据结构得到验证之后,给所述实体提供所述身份对象的所述公钥及用以证实所述公钥的所述至少一个证书。在此实施例的一个实务应用中,如果从所述实体接收到借助所述身份对象的所述公钥加密的经加密数据时,那么所述存储器系统将能够使用在所述身份对象中的所述私钥来解密所述经加密数据。将所述身份对象及所述至少一个证书存储于非易失性存5储器中,其中所述存储器由控制器控制。优选地,外壳包封所述存储器及所述控制器。在又一实施例中,可将身份对象存储于存储器系统的非易失性存储器中。所述存储器系统以可拆卸方式连接到主机装置。在已成功验证所述主机装置之后,给所述主机装置提供所述身份对象的所述公钥及用以证实所述公钥的所述至少一个证书。当从所述实体接收到借助所述身份对象的所述公钥加密的经加密数据时,所述存储器系统使用所述身份对象中的所述私钥解密所述经加密的数据。本文中所参考的所有专利、专利申请案、论文、书籍、规格、标准、其它出版物、文献及事物均出于所有目的以全文引用的形式并入本文中。在任何所并入的出版物、文献或事物与本文献的文本之间在术语的用法或定义上有某种程度的不一致或冲突时,必须以在本文件中的术语的定义及用法为准。图1是用于图解说明本发明的与主机装置通信的存储器系统的框图。图2是用于图解说明本发明的不同实施例的存储器的不同分区及存储于不同分区中的未加密及经加密文件的示意图,其中对某些分区及经加密文件的存取是由存取策略及验证程序所控制。图3是图解说明存储器中不同分区的存储器的示意图。图4是用于图解说明本发明的不同实施例的图3中所示存储器的不同分区的文件位置表的示意图,其中所述分区中的一些文件被加密。图5是图解说明本发明的不同实施例的存取控制记录群组中的存取控制记录及相关联密钥参考的示意图。图6是用于图解说明本发明的不同实施例的由存取控制记录群组及存取控制记录所形成的树状结构的示意图。图7是图解说明存取控制记录群组的三个分层树的树的示意图,以图解说明树的形成过程。图8A及8B是由主机装置及例如存储器卡的存储器装置所实施的用于创建及使用系统存取控制记录的过程的流程图。图9是用于图解说明不同实施例的图解说明使用系统存取控制记录来创建存取控制记录群组的过程的流程图。图IO是图解说明创建存取控制记录的过程的流程图。图11是用于图解说明分层树的特定应用的两个存取控制记录群组的示意图。图12是图解说明用于委派特定权利的过程的流程图。图13是存取控制记录群组及存取控制记录的示意图,以图解说明图12的委派过程。图14图解说明出于加密及/或解密目的创建密钥的过程的流程图。图15是图解说明用于根据存取控制记录移除存取权及/或数据存取许可的过程的流程图。图16是图解说明用于在存取权及/或存取许可已删除或己到期时请求存取的过程的流程图。图17A及17B用于图解说明本发明的不同实施例的图解说明用于验证的规则结构及准予存取密码密钥的策略的组织的示意图。图18是图解说明用于根据策略来控制对受保护信息的存取的替代方法的数据库结构的框图。图19是图解说明使用口令的验证过程的流程图。图20是图解说明若干主机证书链的图示。图21是图解说明若干装置证书链的图示。图22及图23是图解说明用于单向及相互验证方案的过程的协议图。图24是用于图解说明本发明的一个实施例的证书链的图示。图25是图解说明在证书缓冲器之前的控制扇段中的信息的表,所述信息是由所述主机发送以用于将最新证书发送到存储器装置,其显示所述证书是证书链中的最新证书的指示,以阐释本发明的另一实施例。图26及27是分别图解说明用于验证方案的卡及主机过程的流程图,其中存储器卡正在验证主机装置。图28及29是图解说明分别用于验证方案的卡及主机过程的流程图,其中主机装置正在验证存储器卡。图30及31图解说明分别由主机装置及存储器装置所实施的过程的流程图,其中主机装置检索存储于存储器装置中的证书撤销列表,以图解说明本发明的另一实施例。图32是证书撤销列表的图示,其显示所述列表中的字段以图解说明本发明的另一实施例。图33及34是图解说明分别用于使用证书撤销列表来检验证书的卡及主机过程的流程图。图35是图解说明用于卡对发送到主机的数据进行及用于解密来自主机的数据的卡过程的流程图。图36是图解说明主机过程的流程图,其中卡对发送到主机的数据进行签名。图37是图解说明主机过程的流程图,其中主机将经加密的数据发送到存储器卡。图38及39图解说明分别用于一般信息査询及谨慎信息查询的过程的流程图。图40A是存储器装置(例如快闪存储器卡)连接到主机装置中的系统架构的功能框图,以图解说明本发明的实施例。图40B是图40A的安全服务模块核心的内部软件模块的功能框图。图41是用于产生一次性口令的系统的框图。图42是图解说明一次性口令(OTP)种子供应及一次性口令产生的功能框图。图43是图解说明种子供应阶段的协议图。图44是图解说明一次性口令产生阶段的协议图。图45是图解说明数字版权管理系统的功能框图。图46是图解说明用于许可证供应及内容下载的过程的协议图,其中在许可证对象中提供密钥。图47是图解说明用于重放操作的过程的协议图。图48是图解说明用于许可证供应及内容下载的过程的协议图,其中不在许可证对象中提供密钥。所述解说明本发明各方面的各种实施例中的特征。出于简化说明起见,本申请案中以相同的编号标记相同的组件。具体实施例方式图1的框图显示其中可实施本发明的各方面的示范性存储器系统。如图1中所示,存储器系统10包括中央处理单元(CPU)12、缓冲器管理单元(BMU)14、主机接口模块(HIM)16以及快闪接口模块(FIM)18、快闪存储器20和外围装置存取模块(PAM)22。存储器系统10通过主机接口总线26及端口26a与主机装置24通信。快闪存储器20(其可以是"与非"(NAND)型)为主机装置24提供数据存储,主机装置24可以是数码相机、个人计算机、个人数字助理(PDA)、数字媒体播放器(例如MP3播放器)、移动电话、机顶盒或其它数字装置或用具。快闪存储器20中还可存储于用于中央处理单元12的软件码。快闪接口模块18通过快闪接口总线28及端口28a连接到快闪存储器20。主机接口模块16适合于连接到主机装置。外围装置存取模块22选择用于与中央处理单元12通信的适当的控制器模块,例如快闪接口模块、主机接口模块及缓冲器管理单元。在一个实施例中,系统10在虚线框内的所有组件可包封在单个单元中,例如包封于存储器卡或条10'内,且优选地加以囊封。存储器系统10以可拆卸方式连接到主机装置24,使得系统10内的内容可由许多不同主机装置的每一者来存取。在下文说明中,存储器系统10还称为存储器装置10,或仅称为存储器装置或装置。虽然本文中参考快闪存储器来图解说明本发明,但本发明还可应用于其它类型的存储器,例如磁盘,光盘,以及其它类型的可重写非易失性存储器系统。缓冲器管理单元14包括主机直接存储器存取(HDMA)32,快闪直接存储器存取(FDMA)34,仲裁器36,缓冲器随机存取存储器(BRAM)38及密码引擎40。仲裁器36是共用总线仲裁器,使得仅一个主装置或起始器(其可以是主机直接存储器存取32、快闪直接存储器存取34或中央处理单元12)可在任何时间处于活动状态,且从属装置或目标是缓冲器随机存取存储器38。仲裁器负责信道化适当的起始器请求到缓冲器随机存取存储器38。主机直接存储器存取32及快闪直接存储器存取34负责在主机接口模块16、快闪接口模块18与缓冲器随机存取存储器38或中央处理单元随机存取存储器(CPURAM)12a之间传输的数据。主机直接存储器存取32及快闪直接存储器存取34的操作是常规的,且不需要在本文中详细描述。缓冲器随机存取存储器38是用于存储在主机装置24与快闪存储器20之间传递的数据。主机直接存储器存取32及快闪直接存储器存取34负责在主机接口模块16/快闪接口模块18与缓冲器随机存取存储器38或中央处理单元随机存取存储器12a之间转移数据,且用于指示扇段完成。在一个实施例中,存储器系统10产生用于加密及/或解密的密钥值,其中所述值优选地对外部装置(例如主机装置24)基本上是不可存取的。另一选择是,还可在系统IO之外产生密钥值(例如由许可证服务器产生)且被发送到系统10。不论密钥值是如何产生的,一旦密钥值被存储于系统10中,便仅经验证的实体将能够存取密钥值。然而,加密及解密通常是逐一文件完成的,因为主机装置是以文件的形式将数据读取及写入到存储器系统10。类似于许多其它类型的存储装置,存储器装置10不管理文件。虽然存储器20存储文件分配表(FAT)(其中识别文件的逻辑地址),但文件分配表通常由主机装置24而非由控制器12来存取及管理。因此,为了加密特定文件中的数据,控制器12必须依赖主机装置,以发送所述文件中的数据在存储器20中的逻辑地址,使得系统IO可找到所述特定文件的数据并使用仅系统10可获得的密钥值来加密及/或解密所述数据。为给主机装置24及存储器系统10两者提供句柄以参考用于以密码方式处理文件中的数据的相同密钥,主机装置为系统IO所产生的或被发送到系统10的每一密钥值提供参考,其中此种参考可仅是密钥ID。因此,主机24与系统IO使用密钥ID以密码方式处理的每一文件相关联,且系统10与用于使用主机提供的密钥ID以密码方式处理数据的每一密钥值相关联。因此,当主机请求以密码方式处理数据时,其将请求以及密钥ID连同待从存储器20提取或待存储于存储器20中的数据的逻辑地址一起发送到系统10。系统10产生或接收密钥值并将主机24提供的密钥ID与此值相关联,且执行密码处理。以此方式,不需要改变存储器系统10的操作方式,同时允许其使用密钥完全控制密码处理,包括对密钥值的排斥存取。换句话说,一旦密钥值被存储于系统10中或由系统10产生,所述系统继续允许主机24通过具有对文件分配表的排斥控制而管理文件,同时其维持对用于密码处理的密钥值的管理的排斥控制。在密钥值被存储于存储器系统10中之后,主机装置24不参与管理用于对数据进行密码处理的密钥值。在所述实施例的一者中,主机24提供的密钥ID及发送到存储器系统或由存储器系统产生的密钥值形成一量的两个属性,下文中将其称为"内容加密密钥"或"CEK"。虽然主机24可使每一密钥ID与一个或一个以上文件相关联,但主机24还可使每一密钥ID与未组织的数据或以任何方式组织的数据相关联,且不限于组织成完整文件的数据。为了使一用户或应用程序能够存取系统10中受保护的内容或区域,将需要使用预先在系统10内注册的凭证来验证用户或应用程序。凭证与准予具有此凭证的特定用9户或应用程序的存取权有联系。在预注册过程中,系统10存储用户或应用程序的身份及凭证的记录,且与此身份及凭证相关联的存取权由用户或应用程序确定且通过主机24提供。在完成预注册之后,当用户或应用程序请求将数据写入到存储器20时,其将需要通过主机装置提供其身份及凭证、用于加密数据的密钥ID、及存储经加密数据的逻辑地址。系统IO产生或接收密钥值,且使此值与主机装置提供的密钥ID相关联,并将用于加密待写入数据的密钥值的密钥ID存储于此用户或应用程序的记录或表中。接着,所述系统加密数据且将经加密的数据存储于主机指定的地址处以及存储其产生或接收的密钥值。当用户或应用程序请求从存储器20读取经加密的数据时,所述用户或应用程序将需要提供其身份及凭证、用于先前用来加密所请求数据的密钥的密钥ID、及存储经加密数据的逻辑地址。接着,系统IO将将主机提供的用户或应用程序身份及凭证与存储于其记录中的身份及凭证匹配。如果身份及凭证匹配,那么系统IO将从其存储器内提取与用户或应用程序提供的密钥ID相关联的密钥值,使用密钥值解密存储于主机装置指定的地址处的数据,且将经解密的数据发送到用户或应用程序。通过分离验证凭证与用于密码处理的密钥的管理,接着便可共用存取数据的权利而不共用凭证。因此,具有不同凭证的用户或应用程序群组可存取用于存取相同数据的相同密钥,而此群组以外的用户不能存取。虽然群组内所有用户或应用程序可以存取相同数据,但所述用户或应用程序可仍具有不同的权利。因此,一些用户可具有只读存取,而其它用户可具有只写存取,而又其它用户可具有只读存取及只写存取两者。因为系统10维持用户或应用程序的身份及凭证、其可存取的密钥ID以及每一密钥ID相关联的存取权的记录,因此系统IO可添加或删除特定用户或应用程序的密钥ID且更改与所述密钥ID相关联的存取权、将存取权从一个用户或应用程序委派给另一用户或应用程序、或甚至删除或添加用于用户或应用程序的记录或表,所有这些均由经适当验证的主机装置来控制。所存储的记录可规定存取某些密钥所需的安全信道。可使用对称或不对称算法以及口令来进行验证。特别重要的是存储器系统10中的安全内容的可移植性。在由存储器系统控制对密钥值的存取的实施例中,当存储器系统或并入有所述系统的存储装置从一个外部系统转移到另一外部系统时,其中所存储的内容的安全性得以维持。无论密钥是由存储器系统产生还是起源于存储器系统外部,外部系统均不能存取系统10中的此类内容,除非已以存储器系统完全控制的方式验证了所述外部系统。甚至在经如此验证之后,存取还是由存储器系统完全控制,且外部系统仅可以根据存储器系统中预设定的记录控制的方式进行存取。如果请求不符合此类记录,那么请求将被拒绝。为在保护内容上提供更大灵活性,可设想仅经适当验证的用户或应用程序才能存取存储器的某些区域(下文称为分区)。当结合上述基于密钥的数据加密的特征时,系统10提供更大的数据保护能力。如图2中所示,可将快闪存储器20的存储容量划分成若干分区一用户区域或分区及多个定制分区。所有用户及应用程序不仅验证便可10存取用户区域或分区P0。虽然任何应用程序或用户可读取或写入存储于用户区域中的数据的所有位值,但如果所读取的数据被加密,那么未经解密授权的用户或应用程序将不能存取由存储于用户区域中的位值所表示的信息。举例来说,此由存储于用户区域P0中的文件102及104图解说明。用户区域中还存储有例如106的未加密文件,其可由所有应用程序及用户读取及了解。因此,象征性地,经加密的文件(例如,文件102及104)显示为具有与其相关联的锁。虽然未授权的应用程序或用户无法了解用户区域P0中的经加密文件,但所述应用程序或用户仍能删除或破坏文件,一些应用程序可能并不期望如此。为此目的,存储器20还包括受保护的定制分区,例如分区P1及P2,未经事先验证便无法存取所述定制分区。下文中将解释此申请案中各实施例中许可的验证过程。也如图2中所图解说明,各种用户或应用程序可存取存储器20中的文件。因此,图2显示有用户1和2以及应用程序l-4(运行于装置上)。在允许这些实体存取存储器20中的受保护内容之前,首先通过验证过程以下文解释的方式验证所述实体。在此过程中,需要在主机侧处识别正请求存取的实体,以进行基于角色的存取控制。因此,正请求存取的实体首先通过供应例如"我是应用程序2且我想要读取文件l"的信息来识别自己。接着,控制器12将身份、验证信息及请求与存储于存储器20或控制器12中的记录匹配。如果所有要求均得到满足,那么将准予此实体来存取。如图2中所图解说明,用户1被允许从分区Pl中的文件101读取及写入到分区Pl中的文件101,但除了用户1从PO中的文件106读取及写入到PO中的文件106的权利未受限制外,其仅可读取文件102及104。另一方面,用户2未被允许存取文件101及104,但可对文件102进行读取及写入存取。如图2中所指示,用户1及2具有相同登录算法(AES),而应用程序1及3具有不同的登录算法(例如,RSA及001001),其还与用户1及2的登录算法不同。安全存储应用程序(SSA)是存储器系统IO的安全性应用程序,且图解说明本发明的可用于实施许多以上经识别特征的实施例。安全存储应用程序可体现为具有存储于存储器20或中央处理单元12中的非易失性存储器(未显示)中的数据库的软件或计算机码,且被读取到随机存取存储器12a中并由中央处理单元12执行。下表中阐述了参考安全存储应用程序所使用的首字母縮写定义、首字母縮写及縮写<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>安全存储应用程序系统说明数据安全性、完整性及存取控制是安全存储应用程序的主要角色。数据是以其它方式明确地存储于某种大容量存储装置上的文件。安全存储应用程序系统位于存储系统顶部上,且添加用于所存储主机文件的安全层,并通过下述安全数据结构提供安全功能。安全存储应用程序的主要任务是管理与存储器中所存储的(及安全的)内容相关联的不同权利。存储器应用程序需要管理多个用户及对于多个所存储内容的内容权利。主机应用程序从其一侧了解所述应用程序可见的驱动器及分区,以及管理及描绘存储装置上所存储文件的位置的文件分配表(FAT)。在此情况下,存储装置使用被划分成多个分区的"与非"快闪存储器芯片,虽然还可使用其它移动存储装置且所述移动存储装置属于本发明的范围内。这些分区是连续的逻辑地址线程,其中开始及结束地址定义其边界。因此,如果期望,可借助软件(例如存储于存储器20中的软件)对隐藏分区的存取施加限制,此类软件使所述限制与所述边界内的地址相关联。通过由安全存储应用程序管理的分区逻辑地址边界,安全存储应用程序可完全辨识所述分区。安全存储应用程序系统使用分区以用物理方式保护数据免受未经授权的主机应用程序的存取。对于主机来说,分区是定义存储数据文件的专有空间的机制。这些分区可以是公开的,其中可存取存储装置的任何人可了解及知道分区在装置上的存在;或者私有的或隐藏的,其中仅选定的主机应用程序可存取及知道分区在存储装置中的存在。图3是存储器的示意图,其图解说明存储器的分区PO、Pl、P2及P3(显然地,可采用少于或多于4个的分区),其中PO是可由未经验证的任何实体存取的公开分区。私有分区(例如P1、P2或P3)隐藏对其内的文件的存取。通过防止主机存取所述分区,快闪装置(例如,快闪卡)对分区内部的数据文件予以保护。然而,此类保护是通过对存储于隐藏分区内的逻辑地址处的数据的存取施加限制而吞没驻留于所述分区中的所有文件。换句话说,限制与逻辑地址范围相关联。可存取所述分区的所有用户/主机可不受限制地存取所述分区内部的所有文件。为使不同文件彼此隔离或使文件群组彼此隔离,安全存储应用程序系统使用密钥及密钥参考或密钥ID来提供每一文件或文件群组的另一等级的安全性及完整性。可将用于加密不同存储器地址处的数据的特定密钥值的密钥参考或密钥ID类推到含有经加密数据的容器或域。因此,在图4中,密钥参考或密钥ID(例如,"密钥1"及"密钥2")是以绘图方式显示为围绕使用与密钥ID相关联的密钥值加密的文件的区域。参考图4,举例来说,文件A可由未经任何验证的所有实体存取,因为其显示为未被任何密钥ID包封。即使所有实体可读取或覆写公开分区中的文件B,然而文件B含有以具有ID"密钥1"的密钥加密的数据,使得实体无法存取文件B中所含有的信息,除非所述实体可存取此密钥。以此方式,与上述分区所提供的保护类型相反,使用密钥值及密钥参考或密钥ID仅提供逻辑保护。因此,可存取分区(公开的或私有的)的任何主机能够读取或写入整个分区中的数据,包括经加密的数据。然而,由于数据是经过加密的,因此未经授权的用户仅可破坏数据。优选地,所述未经授权的用户在未检测的情况下无法更改数据。通过限制对加密及/或解密密钥的存取,此特征可仅允许经授权实体使用数据。在PO中,还可使用具有密钥ID"密钥2"的密钥来加密文件B及C。可通过使用内容加密密钥(CEK)(每一内容加密密钥一种对称加密方法)来提供数据机密性及完整性。在安全存储应用程序实施例中,内容加密密钥中的密钥值由快闪装置(例如,快闪卡)产生或接收,仅在内部使用且作为对外部世界的秘密予以保持。被加密或以密码处理的数据还可以是散列的或者密码是链区块的,以确保数据完整性。并非分区中的所有数据是以不同密钥加密且与不同密钥ID相关联。公开或用户文件中或者操作系统区域(即,文件分配表)中的某些逻辑地址可不与任何密钥或密钥参考相关联,且因此可由可存取分区本身的任何实体来使用。要求创建密钥和分区以及从所述分区进行数据写入和读取或使用密钥的能力的实体需要通过存取控制记录(ACR)登录到安全存储应用程序系统。安全存储应用程序系统中的存取控制记录的特权称为"动作"。每一存取控制记录可具有执行以下三种类别的动作的许可创建分区及密钥/密钥ID;存取分区及密钥;以及创建/更新其它存取控制记录。存取控制记录组织成群组,称为存取控制记录群组或AGP。一旦已成功验证存取控制记录,安全存储应用程序开启会话,通过会话可执行任何存取控制记录的动作。存取控制记录及存取控制记录群组是用于根据策略控制对分区及密钥存取的安全数据结构。用户分区安全存储应用程序系统管理一个或一个以上公开分区,还称为用户分区。此分区存在于存储装置上且是可通过存储装置的标准读取写入命令存取的一或多个分区。优选地,获得关于分区的大小以及其存在于装置上的信息无法对主机系统隐藏。安全存储应用程序系统能够通过标准读取写入命令或安全存储应用程序命令来存取所述分区。因此,优选地,存取分区无法限制于特定存取控制记录。然而,安全存储应用程序系统可使主机装置能够限制对用户分区的存取。可个别地启用/停用读取及写入存取。允许所有4种组合(例如,只读,只写(写入保护),读取及写入以及不存取)。安全存储应用程序系统使存取控制记录能够将密钥ID与用户分区内的文件相关联,且使用与所述密钥ID相关联的密钥来加密个别文件。存取用户分区内的经加密文件以及设定对分区的存取权将使用安全存储应用程序命令集来进行。上述特征还应用于未被组织成文件的数据。安全存储应用程序分区存在仅可通过安全存储应用程序命令存取的(对未经验证的各方隐藏)隐藏分区。优选地,安全存储应用程序系统将不允许主机装置存取安全存储应用程序分区,除通过登录到存取控制记录建立的会话(将在下文予以描述)之外。类似地,优选地,安全存储应用程序将不提供关于安全存储应用程序分区的存在、大小及存取许可的信息,除非此请求正经历已建立的会话。对分区的存取权是从存取控制记录许可得到的。一旦存取控制记录登录到安全存储应用程序系统,其可与其它存取控制记录共用分区(将下文中予以描述)。当创建分区时,主机提供所述分区的参考名称或ID(例如,图3及4中的P0-P3)。在对分区的进一步读取及写入命令中使用此参考。存储装置的分区优选地,将装置的所有可用存储容量分配给用户分区及目前配置的安全存储应用程序分区。因此,任何重新分割操作可涉及现有分区的重新配置。装置容量的净改变(所有分区的大小的总和)将为零。装置存储器空间中的分区的ID由主机系统定义。主机系统可将现有分区中的一者重新分割成两个较小的分区,或将两个现有分区(其可以是或可以不是相邻的)合并成一个分区。可根据主机的判断擦除或保留不触及经划分或经合并分区中的数据。由于重新分割存储装置可导致数据的丢失(由于数据擦除或在存储装置的逻辑地址空间中来回移动),因此对重新分割的严格限制由安全存储应用程序系统管理。仅允许驻留于根存取控制记录群组中的存取控制记录(将在下文中予以解释)发布重新分割命令,且所述存取控制记录仅可参考其所拥有的分区。由于安全存储应用程序系统不知道数据是如何在分区中组织(文件分配表或其它文件系统结构)的,因此每当重新分割装置时,主机负责重建这些结构。用户分区的重新分割将改变主机操作系统所了解的此分区的大小及其它属性。在重新分割之后,主机系统负责确保安全存储应用程序系统中的任何存取控制记录不参考非现有分区。如果未适当地删除或更新这些存取控制记录,那么系统将会检测到并拒绝代表这些存取控制记录的对存取非现有分区的未来尝试。关于删除的密钥及密钥ID,应予以类似的关注。密钥、密钥ID及逻辑保护当将文件写入到某一隐藏分区时,其对公众是隐藏的。然而,一旦实体(有敌意的或者无敌意的)知道且可存取此分区,那么文件变成可用且易于了解。为进一步确保文件的安全,安全存储应用程序可加密隐藏分区中的文件,其中用于存取解密文件的密钥的凭证优选地不同于用于存取分区的凭证。由于事实上文件由主机完全控制及管理,因此使内容加密密钥与文件相关联是一问题。将文件链接到安全存储应用程序了解的某对象(密钥ID)改正此问题。因此,当安全存储应用程序创建密钥时,主机将此密钥的密钥ID与使用安全存储应用程序创建的密钥加密的数据相关联。如果密钥适于密钥ID—起发送到安全存储应用程序,那么可容易地使密钥与密钥ID彼此相关联。密钥值及密钥ID提供逻辑安全性。与给定密钥ID相关联的所有数据(无论其位置如何)是以内容加密密钥(CEK)中的相同密钥值进行密码处理,内容加密密钥的参考名称或密钥ID由主机应用程序在创建时唯一提供。如果实体(通过存取控制记录进行验证)获得对隐藏分区的存取,且期望读取或写入此分区内的经加密文件,那么所述实体需要可存取与所述文件相关联的密钥ID。当准予存取此密钥ID的密钥时,安全存储应用程序将加载内容加密密钥中与此密钥ID相关联的密钥值,且在将数据发送到主机之前解密数据,或在将数据写入到快闪存储器20之前加密数据。在一个实施例中,安全存储应用程序系统一次随机创建内容加密密钥中与密钥ID相关联的一密钥值且所述密钥值由安全存储应用程序系统维持。在安全存储应用程序系统外部没有任何实体知道或可存取内容加密密钥中的此密钥值。外部世界仅提供及使用参考或密钥ID,而非内容加密密钥中的密钥值。密钥值由安全存储应用程序完全管理,且优选地仅可由安全存储应用程序存取。另一选择是,可将密钥提供给安全存储应用程序系统。安全存储应用程序系统使用以下密码模式中的任一者(用户定义的)(所使用的实际密码算法以及内容加密密钥中的密钥值是系统控制的,且不透露给外部世界)来保护与密钥ID相关联的数据区块模式-将数据划分成为多个区块,个别加密所述区块中的每一者。此模式通常被认为较不安全且易受字典攻击。然而,所述模式将允许用户随机存取数据区块中的任一者。链接模式-将数据划分成多个区块,在加密过程期间将所述区块链接在一起。将每一区块用作到下一加密过程的输入中的一者。在此模式中,虽然被认为更安全,但数据是从开始到结束依序写入及读取,从而形成用户不可接受的开销。散列模式-创建有用于确认数据完整性的额外数据摘要的链模式。存取控制记录及存取控制安全存储应用程序经设计用于处理多个应用程序,其中所述应用程序中的每一者表示为系统数据库中的节点树。通过确保树分支之间无串扰实现应用程序之间的互斥。为了可存取安全存储应用程序系统,实体需要经由系统的存取控制记录中的一者来建立连接。安全存储应用程序系统根据嵌于用户选择与其连接的存取控制记录中的定义来管理登录程序。存取控制记录是到安全存储应用程序系统的个别登录点。存取控制记录持有登录凭证及验证方法。记录中还驻留有安全存储应用程序系统内的登录许可,连通读取及写入特权。此图解说明于图5中,图5图解说明相同存取控制记录群组中的n个存取控制记录。此意指n个存取控制记录中的至少一些存取控制记录可共用对相同密钥的15存取。因此,存取控制记录ttl及存取控制记录并n共用对具有密钥ID"密钥3"的密钥的存取,其中存取控制记录弁l及存取控制记录弁n是存取控制记录ID,且"密钥3"是用来加密与"密钥3"相关联的数据的密钥的密钥ID。还可使用相同密钥来加密及/或解密多个文件,或多组数据。安全存储应用程序系统支持进入系统的数种登录类型,其中验证算法及用户凭证是可变化,因为一旦用户成功登录系统中的用户特权可变化。图5同样图解说明不同的登录算法及凭证。存取控制记录弁l规定口令登录算法及口令作为凭证,而存取控制记录弁2规定公钥基础结构(PKI)登录算法及公钥作为凭证。因此,为进行登录,实体将需要呈现有效的存取控制记录ID以及正确的登录算法和凭证。一旦实体登录到安全存储应用程序系统的存取控制记录中,便在与存取控制记录相关联的许可控制记录(PCR)中定义其许可(其使用安全存储应用程序命令的权利)。在图5中,根据所显示的许可控制记录,存取控制记录#1准予对与"密钥3"相关联的数据的只读许可,且存取控制记录#2准予对与"密钥5"相关联的数据的读取及写入许可。不同的存取控制记录可共用系统中的共同利益及特权,例如用以读取及写入的密钥。为了实现此目的,将具有某些共同处的存取控制记录编组成存取控制记录群组(ACR群组)。因此,存取控制记录#1及存取控制记录tfn共用对具有密钥ID"密钥3"的密钥的存取。存取控制记录群组及其内的存取控制记录组织成分层树形式,且因此,除了创建保持敏感数据安全的安全密钥之外,存取控制记录优选地还可创建对应于其密钥ID/分区的其它存取控制记录条目。这些存取控制记录子代将具有与其父代(创建者)相同的或较少的许可,且可被赋予对父代存取控制记录自己创建的密钥的许可。不需要添加,子代存取控制记录可获得对其创建的任何密钥的存取许可。此图解说明于图6中。因此,存取控制记录群组120的所有存取控制记录由存取控制记录122所创建,且所述存取控制记录中的两者从存取控制记录122继承了对存取与"密钥3"相关联的数据的许可。存取控制记录群组通过规定存取控制记录群组及存取控制记录群组内的存取控制记录来进行到安全存储应用程序系统的登录。每一存取控制记录群组具有唯一ID(参考名称),所述唯一ID用作对所述每一存取控制记录群组在安全存储应用程序数据库中的条目的索引。当创建存取控制记录群组时,存取控制记录群组名称便被提供给安全存储应用程序系统。如果系统中已存在所提供的存取控制记录群组名称,那么安全存储应用程序将拒绝创建操作。存取控制记录群组用于管理对存取许可及管理许可的委派的限制,如将在以下段落中所述。图6中两个树所提供功能中的一者是管理完全独立实体(例如两个不同的应用程序,或者两个不同的计算机用户)实施的存取。为此目的,重要的是使两个存取过16程大致彼此独立(即,大致无串扰),即使两者同时发生也是如此。此意谓着每一树中与另一树中的额外存取控制记录及存取控制记录群组的验证、许可以及创建没有联系且彼此不相依。因此,当在存储器IO中使用安全存储应用程序系统时,此允许存储器系统10同时服务多个应用程序。还允许两个应用程序彼此独立地存取两组独立数据(例如,一组相片及一组歌曲)。此图解说明于图6中。因此,应用程序或用户经由图6的顶部分中的树中的节点(存取控制记录)存取的与"密钥3"、"密钥X"及"密钥Z"相关联的数据可包括相片。应用程序或用户经由图6的底部分中的树的节点(存取控制记录)存取的与"密钥5"及"密钥Y"相关联的数据可包括歌曲。形成存取控制记录群组的存取控制记录具有仅在存取控制记录群组无存取控制记录条目时方可删除存取控制记录群组的许可。实体的安全存储应用程序进入点存取控制记录(ACR)安全存储应用程序系统中的存取控制记录描述许可实体登录系统的方式。当实体登录安全存储应用程序系统时,其需要规定对应于其将执行的验证过程的存取控制记录。存取控制记录包括许可控制记录(PCR),其图解说明一旦根据图5中图解说明的存取控制记录中的定义通过验证用户便可执行的所准予动作。主机侧实体提供所有存取控制记录数据字段。当实体成功地登录存取控制记录时,所述实体将能够査询所有存取控制记录的分区及密钥存取许可以及存取控制记录属性管理(ACAM)许可(将在下文中予以解释)。存取控制记录ID当安全存储应用程序系统实体起始登录过程时,其需要规定对应于登录方法的存取控制记录ID(由主机在创建存取控制记录时提供),使得安全存储应用程序将在已满足所有登录要求时设置正确的算法且选择正确的许可控制记录。当创建存取控制记录时,将存取控制记录ID提供给安全存储应用程序系统。登录/验证算法验证算法规定实体使用哪类登录程序,及提供用户身份的证明需要那种凭证。安全存储应用程序系统支持数种标准登录算法,其范围从无程序(及无凭证)及基于口令的程序到基于对称或不对称密码的双向验证协议。凭证实体的凭证对应于登录算法,且由安全存储应用程序用来检验及验证用户。凭证的实例可以是用于口令验证的口令/个人识别号码,用于相同登录算法验证的相同登录算法密钥等等。凭证(即,个人识别码,对称密钥等等)的类型/格式是预先定义的,且是从验证模式得到的;当创建存取控制记录时,将凭证提供给安全存储应用程序系统。安全存储应用程序系统不参与定义、散布及管理这些凭证,基于公钥基础结构的验证除外,其中可使用装置(例如,快闪卡)来产生RSA或其它类型的密钥对,且可输出公钥以用于证书产生。许可控制记录(PCR)许可控制记录显示在实体登录安全存储应用程序系统且成功通过存取控制记录的验证过程之后准予实体的许可。存在三种类型的许可类别分区及密钥的创建许可;分区及密钥的存取许可;及实体存取控制记录属性的管理许可。存取分区此部分的许可控制记录含有实体在成功完成存取控制记录阶段后可存取的分区列表(使用提供给安全存储应用程序系统的分区ID)。对于每一分区,存取类型可限制为只写或只读或可规定全写入/读取权利。因此,图5中的存取控制记录#1可存取分区#2而不可存取分区#1。许可控制记录中规定的限制应用于安全存储应用程序分区及公开分区。可通过给托管安全存储应用程序系统的装置(例如,快闪卡)的正规读取及写入命令或通过安全存储应用程序命令来存取公开分区。当以限制公开分区的许可创建根存取控制记录(将在下文中予以解释)时,所述根存取控制记录可将此许可传递给其子代。优选地,存取控制记录仅限制正规读取及写入命令存取公开分区。优选地,可仅在创建安全存储应用程序系统中的存取控制记录时对其加以限制。优选地,一旦存取控制记录具有读取/写入公开分区的许可,便无法去除此许可。存取密钥ID此部分的许可控制记录含有与当实体登录过程已满足存取控制记录策略时实体可存取的密钥ID列表(由主机提供给安全存储应用程序)相关联的数据。所规定的密钥ID与驻留于许可控制记录中显现的分区中的一或多个文件相关联。由于密钥ID不与装置(例如,快闪卡)中的逻辑地址相关联,因此当一个以上分区与特定存取控制记录相关联时,所述文件可位于所述分区的任一者中。许可控制记录中规定的密钥ID可各具有一组不同的存取权。可将对密钥ID所指向数据的存取限制为只写或只读,或可将其规定为全写入/读取存取权。存取控制记录属性管理(ACAM)此部分描述在某些情况下如何可改变存取控制记录系统的属性。在安全存储应用程序系统中可许可的存取控制记录属性管理动作是1.创建/删除/更新存取控制记录群组及存取控制记录。2.创建/删除分区及密钥。3.委派对密钥及分区的存取权。优选地,父代存取控制记录无法编辑存取控制记录属性管理许可。优选地,此将需要删除及重新创建存取控制记录。同样,优选地,无法去除对存取控制记录所创建的密钥ID的存取许可。存取控制记录可具有创建其它存取控制记录及存取控制记录群组的容量。创建存取控制记录还可意谓着将其创建者所拥有的一些或全部存取控制记录属性管理许可委派给所述存取控制记录。具有创建存取控制记录的许可意谓着具有以下动作的许可1.定义及编辑子代的凭证-优选地,一旦通过创建存取控制记录设定了验证方法18便无法对其进行编辑。可在已为子代定义的验证算法的边界内更改凭证。2.删除存取控制记录。3.将创建许可委派给子代存取控制记录(因此其具有孙代)。具有创建其它存取控制记录许可的存取控制记录具有将解封锁许可委派给其创建的存取控制记录的许可(虽然其可能不具有将存取控制记录解封锁的许可)。父代存取控制记录将对其解封锁者的参考置于子代存取控制记录中。父代存取控制记录是具有删除其子代存取控制记录的许可的唯一存取控制记录。当存取控制记录删除其创建的较低层级存取控制记录时,此较低层级存取控制记录繁衍的所有存取控制记录也被自动删除。当删除存取控制记录时,那么其创建的所有密钥ID及分区均被删除。存在存取控制记录可更新其自己的记录的两个例外1.虽然密码/个人识别号码是由存取控制记录的创建者所设定,但密码/个人识别号码仅可由包含其的存取控制记录更新。2.根存取控制记录可以删除自己及根存取控制记录驻留于其中的存取控制记录群组。委派对密钥及分区的存取权存取控制记录及其存取控制记录群组组装成分层树形式,其中根存取控制记录群组及其内的存取控制记录位于树顶部处(例如,图6中的根存取控制记录群组130及132)。安全存储应用程序系统中可存在数个存取控制记录群组树,虽然所述树彼此完全分离。存取控制记录群组内的存取控制记录可将对其密钥的存取许可委派给其所在的相同存取控制记录群组内的所有存取控制记录,且委派给由其创建的所有存取控制记录。优选地,创建密钥的许可包括委派使用密钥的存取许可的许可。对密钥的许可划分为三种类别1.存取-此定义对密钥的存取许可,S卩,读取、写入。2.所有权-依据定义,创建密钥的存取控制记录是其所有者。此所有权可从一个存取控制记录委派给另一存取控制记录(前提是所述存取控制记录在相同存取控制记录群组中或在子代存取控制记录群组中)。密钥的所有权提供将其删除以及将许可委派给它的许可。3.存取权委派-此许可使存取控制记录能够委派其所持有的权利。存取控制记录可委派对其创建的分区以及其具有存取许可的其它分区的存取许可。许可委派是通过将分区的名称及密钥ID添加到指定的存取控制记录的许可控制记录进行的。委派密钥存取许可可通过密钥ID或通过声明存取许可是用于委派存取控制记录的所有已创建的密钥来实施。存取控制记录的封锁及解封锁存取控制记录可具有封锁计数器,当实体针对系统的存取控制记录验证过程不成功时递增封锁计数器。当达到某一最大数量的不成功验证时,安全存储应用程序系统将封锁存取控制记录。被封锁的存取控制记录可由所述被封锁存取控制记录参考的另一存取控制记录解封锁。对解封锁存取控制记录的参考是由其创建者设定。优选地,解封锁存取控制记录位于与被封锁存取控制记录的创建者相同的存取控制记录群组中,且具有"解封锁"许可。系统中的任何其它存取控制记录均无法解封锁被封锁的存取控制记录。存取控制记录可配置有封锁计数器,但没有解封锁者存取控制记录。在此情况下,如果此存取控制记录被封锁,那么无法对其解封锁。根存取控制记录群组-创建应用程序数据库安全存储应用程序系统是设计用来处理多个应用程序,且隔离所述多个应用程序的每一者的数据。存取控制记录群组系统的树结构是用来识别及隔离应用程序特有数据的主要工具。根存取控制记录群组位于应用程序安全存储应用程序数据库树的顶部处,且遵守多少有些不同的行为规则。安全存储应用程序系统中可配置数个根存取控制记录群组。图6中显示两个根存取控制记录群组130及132。显然地,可使用更少或更多的存取控制记录群组,且此也属于本发明的范围内。向装置(例如,快闪卡)注册新应用程序及/或为装置发布新应用程序的凭证是通过将新存取控制记录群组/存取控制记录树添加到装置的过程实施的。安全存储应用程序系统支持三种不同模式的根存取控制记录群组创建(以及根存取控制记录群组的所有存取控制记录及其许可)1.开放模式不需要任何种类的验证的任何用户或实体,或通过系统存取控制记录验证的用户/实体(将在下文中予以解释)均可创建新的根存取控制记录群组。开放模式能够在以下情形下创建根存取控制记录群组在开放式信道上(即,在发布代理机构的安全环境下)转移所有数据时不采取任何安全措施;或者经由通过系统存取控制记录验证所建立的安全信道(即,空中传输(OTA)及后置发布程序)。如果未配置系统存取控制记录(此是任选特征)且将根存取控制记录群组创建模式设定为"开放",那么仅开放信道选项是可用的。2.受控模式仅通过系统存取控制记录验证的实体可创建新的根存取控制记录群组。如果未配置系统存取控制记录,那么无法将安全存储应用程序系统设定为此模式。3.锁定模式停用根存取控制记录群组的创建,且不可向系统添加额外的根存取控制记录群组。两个安全存储应用程序命令控制此特征(这些命令可用于未经验证的任何用户/实体)1.方法配置命令-用于配置安全存储应用程序系统,以使用三种根存取控制记录群组创建模式中的任一者。仅允许以下模式改变开放模式->受控模式,受控模式->20锁定模式(即,如果安全存储应用程序系统当前配置为受控模式,那么其仅可改变为锁定模式)。2.方法配置锁定命令-用于停用方法配置命令,且永久锁定当前选定的方法。当创建根存取控制记录群组时,所述群组处于启用其存取控制记录的创建及配置(使用与应用于根存取控制记录群组的创建相同的存取限制)的特殊初始化模式。在根存取控制记录群组配置过程结束时,当实体明确地将其切换到操作模式时,不可再更新现有的存取控制记录,且不可再创建额外的存取控制记录。一旦根存取控制记录群组进入标准模式,仅可通过经由其存取控制记录中经指派具有删除根存取控制记录群组的许可的一者登录系统才能删除所述根存取控制记录群组。此是除了特殊初始化模式之外的根存取控制记录群组的另一例外;优选地,与下一树层级中的存取控制记录群组相反,其是可含有具有删除其自己的存取控制记录群组的许可的存取控制记录的唯一存取控制记录群组。根存取控制记录与标准存取控制记录之间的第三及最后差异在于其是系统中唯一可具有创建及删除分区的许可的存取控制记录。安全存储应用程序系统的存取控制记录系统存取控制记录可用于以下两种安全存储应用程序操作1.在安全信道的保护下于敌意环境内创建存取控制记录/存取控制记录群组树。2.识别及验证托管安全存储应用程序系统的装置。优选地,安全存储应用程序系统中可仅有一个系统存取控制记录,且一旦被定义,优选地无法改变所述系统存取控制记录。当创建系统存取控制记录时,不需要系统验证;只需要安全存储应用程序命令。可停用创建系统存取控制记录特征(类似于创建根存取控制记录群组特征)。在创建系统存取控制记录之后,创建系统存取控制记录特命令失效,因为优选地仅允许一个系统存取控制记录。当处于创建过程中时,系统存取控制记录是不操作的。在完成之后,需要发布指示系统存取控制记录已创建且且已准备就绪的特殊命令。在此点之后,优选地便无法更新或替换系统存取控制记录。系统存取控制记录在安全存储应用程序中创建根存取控制记录/存取控制记录群组。其具有添加/改变根层级的许可,直到主机对其表示满意并将其封锁的时间为止。封锁根存取控制记录群组实质上是切断了其到系统的连接,且使其能够防窜改。此时,任何人均无法改变/编辑根存取控制记录群组及其内的存取控制记录。此是通过一安全存储应用程序命令而实行。停用根存取控制记录群组的创建具有永久效果且不可逆。图7图解说明涉及系统存取控制记录的上述特征。系统存取控制记录用于创建三个不同的根存取控制记录群组。在创建这些根存取控制记录群组之后的某一时间处,从主机发送安全存储应用程序命令,以封锁来自系统存取控制记录的根存取控制记录群组,借此停用创建根存取控制记录群组特征,如由图7中连接系统存取控制记录与根存取控制记录群组的虚线所指示。此使三个根存取控制记录群组能够防窜改。在封锁根存取控制记录群组之前或之后,可使用三个根存取控制记录群组来创建子代存取控制记录群组以形成三个单独的树。上述的特征为内容所有者提供在配置具有内容的安全产品方面的更大灵活性。需要"发布"安全产品。发布是置放识别密钥的过程,装置可通过识别密钥来识别主机且反之亦然。识别装置(例如,快闪卡)使主机能够决定其是否可信任关于所述装置的秘密。另一方面,识别主机使装置能够仅在主机被允许时强制实行安全策略(准予及执行特定主机命令)。经设计用于服务多数个应用程序的产品将具有数个识别密钥。如果是在装运之前于制造期间存储的密钥,那么就"预先发布"产品,或者如果是在装运之后添加的新密钥,那么"后发布"产品。对于后发布,存储器装置(例如,存储器卡)需要含有某种主装置或装置级密钥,所述密钥用于识别被允许向装置添加应用程序的实体。上述特征使产品能够配置成启用/停用后发布。另外,可在装运之后安全地进行后发布配置。所述装置可作为零售产品购买,所述零售产品上不具有除上述主装置或装置级密钥之外的密钥,且接着经新所有者进一步配置以启用或停用后发布应用程序。因此,系统存取控制记录特征提供完成上述目标的能力-不具有系统存取控制记录的存储器装置将允许不受限制且不受控制地添加应用程序。-不具有系统存取控制记录的存储器装置可经配置以停用系统存取控制记录创建,此意谓着无法控制添加新应用程序(除非也停用创建新根存取控制记录群组特征)。-具有系统存取控制记录的存储器装置将仅允许经由通过使用系统存取控制记录凭证的验证程序建立的安全信道以受控制方式添加应用程序。-具有系统存取控制记录的存储器装置可经配置以添加应用程序之前或之后停用应用程序添加特征。密钥ID列表密钥ID是根据特定存取控制记录请求创建的;然而,在存储器系统10中,所述密钥ID仅由安全存储应用程序系统使用。在创建密钥ID时,创建存取控制记录提供以下数据或给创建存取控制记录提供以下数据1.密钥ID。所述ID是实体通过主机提供的,且用于参考密钥及在所有其它读取或写入存取中使用所述密钥加密或解密的数据。2.密钥密码及数据完整性模式(其是上述封锁模式、链接模式及散列模式且将在下文中予以解释)。除主机提供的属性外,安全存储应用程序系统还维持以下数据1.密钥ID所有者。存取控制记录的ID的所有者。当创建密钥ID时,创建者存取控制记录是其所有者。然而,密钥ID所有权可被转移到另一存取控制记录。优选地,仅允许密钥ID的所有者转移密钥ID的所有权及委派密钥ID。将存取许可委派给相关联的密钥及撤销这些权利可由密钥ID所有者或指派有委派许可的任何其它存取控制22记录来管理。每当尝试实施这些操作中的任一操作时,安全存储应用程序系统将仅在请求存取控制记录得到授权时才准予此尝试。2.内容加密密钥。此是其密钥值被用来密码处理与密钥ID相关联或由密钥ID所指向的内容的内容加密密钥。密钥值可以是由安全存储应用程序系统产生的128位相同登录算法随机密钥。3.MAC及IV值。其是在链接区块密码(CBC)加密算法中使用的动态信息(消息验证码及起始向量)。还参考图8A-16中的流程解说明安全存储应用程序的各种特征,其中步骤左侧的"H"意指由主机执行的操作,且"C"意指由卡执行的操作。虽然是参考存储器卡图解说明的这些安全存储应用程序特征,但应了解,这些特征还可应用于其它物理形式的存储器装置。为创建系统存取控制记录,主机给存储器装置IO中的安全存储应用程序发布命令,以创建系统存取控制记录(方块202)。装置IO通过检査是否存在系统存取控制记录做出响应(方块204,菱形206)。如果已存在,那么装置IO返回失败且停止(椭圆形208)。如果不存在,那么存储器IO检查是否允许创建系统存取控制记录(菱形210),且如果不允许,那么返回失败状态(方块212)。因此,可存在其中装置发行者不允许创建系统存取控制记录的实例,例如所需的安全特征已预先确定从而不需要系统存取控制记录的情况。如果允许创建,那么装置IO返回OK状态且等待来自主机的系统存取控制记录凭证(方块214)。主机检查安全存储应用程序状态及装置10是否已指示允许创建系统存取控制记录(方块216及菱形218)。如果不允许创建或如果己存在系统存取控制记录,那么主机停止(椭圆形220)。如果装置10已指示允许创建系统存取控制记录,那么主机发布安全存储应用程序命令以定义其登录凭证且将登录凭证发送到装置10(方块222)。装置IO用所接收的凭证来更新系统存取控制记录记录,且返回OK状态(方块224)。响应于此状态信号,主机发布指示系统存取控制记录己准备就绪的安全存储应用程序命令(方块226)。装置10通过锁定系统存取控制记录使其无法更新或替换做出响应(方块228)。此锁定系统存取控制记录特征及其用于给主机识别装置10的身份。用于创建新树(新的根存取控制记录群组及存取控制记录)的程序是由将这些功能配置于装置中的方式确定的。图9解释所述程序。主机24及存储器系统10两者均遵循所述程序。如果完全停用添加新的根存取控制记录群组,那么便无法添加新的根存取控制记录群组(菱形246)。如果启用添加但需要系统存取控制记录,那么主机通过系统存取控制记录进行验证,且在发布创建根_存取控制记录群组命令(方块254)之前建立安全信道(菱形250、方块252)。如果不需要系统存取控制记录(菱形248),那么主机24可不经验证便发布创建根存取控制记录群组命令,且继续进行到方块254。如果存在系统存取控制记录,那么主机可使用所述系统存取控制记录即使不需要(流程图中未显示)。如果停用所述功能,那么装置(例如,快闪卡)将拒绝创建新的根存取控制记录群组的任何尝试,且如果需要系统存取控制记录,那么所述装置将拒绝不经验证23地创建新的根存取控制记录群组的尝试(菱形246及250)。现在将方块254中新创建的存取控制记录群组及存取控制记录切换到操作模式,使得无法更新或另外改变所述存取控制记录群组中的存取控制记录,且无法向其添加存取控制记录(方块256)。接着将系统锁定使得无法创建额外的根存取控制记录群组,此是任选的(方块258)。虚线框258是指示此步骤是任选步骤的惯例。在本申请案中,图式的流程图中所有呈虚线形式的框均表示任选步骤。此允许内容所有者封锁将装置10用于可模仿具有合法内容的真品存储器装置的其它非法目的。为创建存取控制记录(不同于上述根存取控制记录群组中的存取控制记录),可以具有创建存取控制记录的权利的任何存取控制记录开始(方块270),如图IO中所示。实体可尝试通过给进入点提供存取控制记录身份且给存取控制记录提供其希望创建的所有必要属性而通过主机24进入(方块272)。安全存储应用程序检查与存取控制记录身份的匹配及具有此身份的存取控制记录是否具有创建存取控制记录的许可(方块274)。如果请求经检验而被授权,那么装置IO中的安全存储应用程序创建存取控制记录(方块276)。图11显示两个存取控制记录群组,其图解说明使用图10的方法在安全应用程序中使用的树。因此,在营销存取控制记录群组中具有身份ml的存取控制记录具有创建存取控制记录的许可。存取控制记录ml还具有将密钥用于读取或写入与密钥ID"营销信息"相关联的数据及与密钥ID"价格表"相关联的数据的许可。使用图10的方法,创建具有两个存取控制记录的销售存取控制记录群组sl及s2,其仅具有对用于存取与密钥ID"价格表"相关联的定价数据的密钥的读取许可,但没有对存取与密钥ID"营销信息"相关联的数据所需的密钥的读取许可。以此方式,具有存取控制记录sl及s2的实体仅可进行读取而不能改变定价数据,且将不能存取营销数据。另一方面,存取控制记录m2不具有创建存取控制记录的许可,且仅具有对用于存取与密钥ID"价格表"相关联及与密钥ID"营销信息"相关联的数据的密钥的读取许可。因此,可以上述的方式委派其中ml将读取定价数据的权利委派给sl及s2的存取权。在涉及大的营销及销售群组的情况下,此特别有用。在仅一个或少数销售人员的情况下,可能不需要使用图IO的方法。而是,如图12中所图解说明,可通过存取控制记录将存取权委派给相同存取控制记录群组内处在较低层级或相同层级处的存取控制记录。首先,实体通过经由主机以上述方式规定树中的存取控制记录而进入此存取控制记录群组的树(方块280)。接下来,主机将规定存取控制记录及委派的权利。安全存储应用程序检查此存取控制记录的树及所述存取控制记录是否具有将权利委派给规定的另一存取控制记录的许可(菱形282)。如果有,那么委派权利(方块284);如果没有,那么停止。结果图解说明于图13中。在此情况下,存取控制记录ml具有将读取许可委派给存取控制记录sl的许可,使得sl将能够在委派之后使用密钥来存取定价数据。如果ml具有相同或更大的权利来存取定价数据及进行委派的许可,那么可执行上述操作。在一个实施例中,ml在委派之后保持其存取权。优选地,可在受限制条件下(而非永久地)委派存取权,例如在有限的时间内、有限的存取次数等等。图14中图解说明用于创建密钥及密钥ID的过程。实体通过存取控制记录进行验证(方块302)。实体请求以主机规定的ID来创建密钥(方块304)。安全存储应用程序检査所规定的存取控制记录是否具有进行此操作的许可(菱形306)。举例来说,如果密钥是用于存取特定别分区中的数据,那么安全存储应用程序将检查存取控制记录是否可存取此分区。如果存取控制记录被授权,那么存储器装置10创建与主机提供的密钥ID相关联的密钥值(方块308),且将密钥ID存储于存取控制记录中以及将密钥值存储于其存储器中(存储于控制器相关联的存储器中或存储器20中),并根据实体供应的信息指派权利及许可(方块310),以及用所述指派的权利及许可来修改此存取控制记录的许可控制记录(方块312)。因此,密钥的创建者具有所有可获得的权利,例如读取及写入许可、委派及与相同存取控制记录群组中的其它存取控制记或处在较低层级处的存取控制记录共用的权利,及转移密钥的所有权的权利。如图15中所图解说明,存取控制记录可改变安全存储应用程序系统中另一存取控制记录的许可(或完全改变其存在)。实体可像先前那样通过存取控制记录进入树;在一种情况下,实体经验证且接着其规定存取控制记录(方块330、332)。其请求删除目标存取控制记录或目标存取控制记录中的许可(方块334)。如果规定的存取控制记录或在此时处于活动状态的存取控制记录具有进行此操作的权利(菱形336),那么将目标存取控制记录删除,或者更改目标存取控制记录的许可控制记录以删除此许可(方块338)。如果此未经授权,那么系统停止。在上述过程之后,目标将不再能够存取其在所述过程之前能够存取的数据。如图16中所示,实体可尝试进入目标存取控制记录(方块350),且发现验证过程失败,因为安全存储应用程序中不再存在先前存在的存取控制记录ID,使得存取权被拒绝(菱形352)。假设存取控制记录ID尚未删除,那么实体规定存取控制记录(方块354)及特别分区中的密钥ID及/或数据(方块356),且接着安全存储应用程序检査密钥ID或根据此存取控制记录的许可控制记录许可分区存取请求(菱形358)。如果许可已删除或已到期,那么请求同样会被拒绝。否则,准予请求(方块360)。上述过程描述装置(例如,快闪卡)如何管理对受保护数据的存取,而无论存取控制记录及其许可控制记录是否刚刚被另一存取控制记录改变或开始便是如此配置。会话安全存储应用程序系统经设计以处理同时登录的多个用户。当使用此特征时,安全存储应用程序所接收的每一命令均与特定实体相关联且仅在用来验证此实体的存取控制记录具有对所请求动作的许可时方才执行。通过会话概念来支持多个实体。会话是在验证过程期间建立的,且由安全存储应用程序系统给其指派会话ID。会话ID在内部与用于登录系统的存取控制记录相关联,且输出到实体以在所有其它安全存储应用程序命令中使用。安全存储应用程序系统支持两种类型的会话开放式会话及安全会话。与特定验证过程相关联的会话类型是在存取控制记录中定义的。安全存储应用程序系统将以类似于其本身强制实行验证的方式强制实行会话建立。由于存取控制记录定义实体许可,因此此机制使系统设计者能够将安全穿遂与存取特定密钥ID或调用特定存取控制记录管理操作(即,创建新的存取控制记录及设定凭证)相关联。开放式会话开放式会话是用会话ID识别但未经总线加密的会话,所有命令及数据均公开传递。优选地,此操作模式用于多用户或多实体环境中,其中所述实体既不是威胁模型的一方也不是正在总线上窃听的一方。虽然既不能保护数据的输送也不能使主机侧上的各应用程序之间形成高效防火墙,但开放式会话模式能使安全存储应用程序系统仅允许存取当前经验证的存取控制记录所允许的信息。开放式会话还可用于分区或密钥需要保护的情况。然而,在有效验证过程之后,将准予主机上的所有实体进行存取。各种主机应用程序为获得经验证存取控制记录的许可而需要共用的唯一事物是会话ID。此图解说明于图17A。线400上方的步骤是主机24采用的步骤。在针对存取控制记录1验证实体(方块402)之后,其请求存取存储器装置10中与密钥IDX相关联的文件(方块404、406及408)。如果存取控制记录1的许可控制记录允许此存取,那么装置10准予请求(菱形410)。如果不允许,那么系统返回方块402。在验证完成之后,存储器系统10仅通过指派的会话ID(且非存取控制记录凭证)来识别发布命令的实体。一旦存取控制记录1在开放式会话中可存取与其许可控制记录中的密钥ID相关联的数据,任何其它应用程序或用户便可通过规定在主机24上不同应用程序之间共用的正确会话ID来存取相同数据。此特征对于其中用户仅能够登录一次、且能够存取与不同应用程序用以执行登录的账户有联系的所有数据更方便的应用程序是有利的。因此,蜂窝式电话用户可无不必多次登录便能够存取存储器20中所存储的电子邮件且收听所存储的音乐。另一方面,将不能存取存取控制记录l未包含的数据。因此,相同蜂窝式电话用户可具有有价值的内容,例如可通过单独账户存取控制记录2存取的游戏及相片。这是所述用户不想被借他电话的其它人存取的数据,即使他可能不介意其它人可通过他的第一账户存取控制记录1存取数据。在开放式会话中将对数据的存取分离为两个单独账户且同时允许存取存取控制记录1提供容易使用以及提供对有价值数据的保护。为进一步使在主机应用程序之间共用会话ID的过程更容易,当存取控制记录请求开放式会话时,其可明确地请求给会话指派"0"ID。以此方式,应用程序可经设计以使用预先定义的会话ID。出于显而易见的原因,难一限制是特定时间仅可验证一个请求会话0的存取控制记录。尝试验证另一请求会话0的存取控制记录将被拒绝。安全会话为添加安全层,可如图17B中所示使用会话ID。接着,存储器10还存储活动会话的会话ID。在图17B中,举例来说,为了能够存取与密钥IDX相关联的文件,在26允许实体存取文件之前,实体还将需要提供会话ID,例如会话ID"A"(方块404、406、412及414)。以此方式,除非请求实体知道正确的会话ID,否则其无法存取存储器10。由于会话ID是在会话结束之后删除且每一会话的会话ID都是不同的,因此实体仅在其已能够提供会话号码时才能进行存取。安全存储应用程序系统通过使用会话号码来追踪命令是否真的来自经正确验证的实体。对于存在攻击者将试图使用开放式信道来发送恶意命令的恐吓的应用程序及使用情况,主机应用程序使用安全会话(安全信道)。当使用安全信道时,会话ID以及整个命令是以安全信道加密(会话)密钥来加密,且安全等级是与主机侧实施方案一样高。终止会话在以下任一状况中,终止会话,且注销存取控制记录1.实体发布明确的结束会话命令。2.通信超时。特定实体在一时间周期(如存取控制记录参数中的一者所定义)内未发布命令。3.在装置(例如快闪卡)重设及/或电力循环之后,终止所有开放式会话。数据完整性服务安全存储应用程序系统检验安全存储应用程序数据库(其含有所有存取控制记录、许可控制记录等等)的完整性。另外,通过密钥ID机制为实体数据提供数据完整性服务。如果密钥ID经配置以用散列作为其加密算法,那么散列值将与内容加密密钥及IV并排地存储于内容加密密钥记录中。在写入操作期间计算及存储散列值。在读取操作期间再次计算散列值,并将其与在先前写入操作期间存储的值相比较。每当实体存取密钥ID时,便有额外的数据被(以密码方式)连接到旧的数据且适当地更新的(用于读取或用于写入的)散列值。由于仅主机知道与密钥ID相关联或由密钥ID所指向的数据文件,因此主机以如下方式明确地管理数据完整性功能的数个方面1.从开始到结束一直写入或读取与密钥ID相关联或由密钥ID所指向的数据文件。存取文件的部分的任何尝试将使其混乱,因为安全存储应用程序系统正在使用链区块密码加密方法且产生整个数据的散列消息摘要。2.不需要处理连续串流中(数据串流可与其它密钥ID的数据串流交错,且可在多个会话上分享)的数据,因为安全存储应用程序系统维持中间散列值。然而,如果数据串流重新开始,那么实体将需要明确地指示安全存储应用程序系统重设散列值。3.当完成读取操作时,主机明确地请求安全存储应用程序系统通过将读取散列与写入操作期间所计算的散列值相比较来确认读取散列。4.安全存储应用程序系统还提供"虚设读取"操作。此特征将通过加密引擎将数据串流化,但将不其向外发送到主机。此特征可用于在从装置(例如,快闪卡)实际读出数据之前检验数据的完整性。随机数的产生安全存储应用程序系统将使外部实体能够使用内部随机数产生器,且请求在安全存储应用程序系统外部使用随机数。此服务可用于任何主机,且不需要验证。RSA密钥对的产生安全存储应用程序系统将使外部用户能够使用内部RSA密钥对产生特征,且请求在安全存储应用程序系统外部使用密钥对。此服务可用于任何主机,且不需要验证。替代实施例替代使用分层方法,可使用数据库方法实现类似的结果,如图18中所图解说明。如图18中所示,可将列有实体凭证、验证方法、失败尝试的最大次数及解封锁所需的最小凭证数量的列表输入到存储于控制器12或存储器20中的数据库中,所述列表使所述凭证要求与数据库中由存储器10的控制器12所实施的策略相关(对密钥及分区的读取、写入存取,安全信道要求)。数据库中还存储于有对存取密钥及分区的约束及限制。因此,一些实体(例如,系统管理员)是可位于白色列表上,此意谓着些实体可存取所有密钥及分区。其它实体可位于黑色列表上,且其存取任何信息的尝试将被封锁。限制可是全局性,或密钥及/或分区特有的。此意谓着仅某些实体可存取某些特定密钥及分区,且某些实体无法进行此操作。还可将约束置于内容本身上,而无论内容所在的分区或用于加密或解密内容的密钥如何。因此,某些数据(例如,歌曲)可具有其仅可被存取它们的前5个主机装置所存取的属性,或者其它数据(例如,电影)可仅能够被读取有限次数(而无论哪些实体存取的)的属性。验证口令保护口令保护意指需要呈现口令以存取受保护区域。除非其无法超过一个口令,否则口令可与不同的权利相关联,例如读取存取或读取/写入存取。口令保护意指装置(例如,快闪卡)能够检验主机提供的口令,即,装置也具有存储于装置管理的安全存储器区域中的口令。发布及限制口令易受重放攻击。由于在每一呈现之后口令是不改变的,因此口令总是相同地重新发送。此意谓着如果待保护的数据是有价值的那么便不应使用相同的密码,且可容易地存取通信总线。口令可保护对所存储数据的存取,但不应用来保护数据(其并非密钥)。为增加与口令相关联的安全等级,可使用主装置密钥将口令多样化,其结果是窃取一个口令不会使整个系统崩溃。可使用基于会话密钥的安全通信信道来发送口令。图19是图解说明使用口令进行验证的流程图。实体将账户ID及口令发送到系统IO(例如,快闪存储器卡)。系统检查口令是否与其存储器中的口令匹配。如果匹配,那么返回经验证状态。否则,递增此账户的错误计数器,且要求实体重新输入账户ID28及口令。如果计数器溢出,那么系统返回存取被拒绝的状态。对称密钥对称密钥算法意指在加密及解密两侧使用相同的密钥。此意谓着在通信之前已预先认可了所述密钥。同样,每一侧应实施彼此的逆算法,即,在一个端上实施加密算法且另一侧上实施解密算法。两个侧不需要实施两种算法来通信。验证对称密钥验证意指装置(例如,快闪卡)及主机共用相同的密钥且具有相同的密码算法(直接及逆向,例如,DES及DES-1)。对称密钥验证意指询问-响应(保护防止重放攻击)。受保护的装置产生对其它装置的询问,且两者均计算响应。验证装置发送回响应,且受保护装置检查响应并相应地确认验证。接着,可准予与验证相关的权利。验证可以是外部的装置(例如,快闪卡)验证外部世界,即,装置确认给定主机或应用程序的凭证。相互的在两侧上产生询问。内部的主机应用程序验证装置(即,快闪卡),即,主机检査装置是否对其应用程序是真的。为增加整个系统的安全等级(即,破坏一个不会破坏全部)对称密钥通常组合有使用主装置密钥的多样化。互验证使用来自两侧的询问,以确保询问是真的询问。加密对称密钥密码术还用于加密,因为其是非常有效率的算法,即,其不需要功能强大的中央处理单元来处理密码术。当用来保护通信信道的安全时两个装置必须知道用于保护信道安全(即,加密所有传出数据且解密所有传入数据)的会话密钥。通常使用预先共用的秘密对称密钥或使用公钥基础结构来建立此会话密钥。两个装置必须知道及实施相同的密码算法签名。对称密钥对称密钥还可用于对数据进行签名。于此情况下,签名是加密的一部分结果。保持所述部分结果允许进行与所需一样多次数的签名而不暴露密钥值。发布及限制对称算法非常有效率且安全,然而其基于预共用的秘密。发布是以动态方式安全地共用此秘密,且可能使其为随机的(类似于会话密钥)。此想法是共用的秘密难以长期保持安全,且几乎不可能与多个人共用。为促进此操作,已发明了公钥算法,因为其允许秘密交换而不共用秘密。不对称验证程序以于不对称密钥的验证使用一系列数据传递命令,其最终建造用于安全信道通信的会话密钥。基本协议用于给安全存储应用程序系统进行用户验证。协议变化形式允许.-互验证,其中用户必须检验他期望使用的存取控制记录;以及双因素验证。优选地,安全存储应用程序的不对称验证协议使用公钥基础结构(PKI)及RSA算法。如由这些算法所定义,允许验证过程中的每一方创建其自己的RSA密钥对。每一对由公钥及私钥组成。由于密钥是匿名的,因此其无法提供身份证明。公钥基础结构层要求可信的第三方对公钥中的每一者进行签名。可信方的公钥在相互验证的各方之间预共用,且用于检验所述各方的公钥。一旦建立了信任(双方确定可信任另一方提供的公钥),协议便继续验证(检验每一方是否持有匹配的私钥)以及密钥交换。如下所述,此可通过图22及23中所图解说明的询问响应机制来实施。含有经签名公钥的结构称为证书。对证书进行签名的可信方称为证书授权机构(CA)。为使一方得到验证,其具有一RSA密钥对及证明公钥的可靠性的证书。证书由另一方(验证方)信任的证书授权机构进行签名。预期验证方拥有其可信证书授权机构的公钥。安全存储应用程序系统允许证书链接。此意谓着被识别方的公钥可由与识别方所信任的不同的证书授权机构进行签名。在此情况下,被识别方除提供其自己的证书外,还要提供对其公钥进行签名的证书授权机构的证书。如果第二等级证书仍不能得到另一方的信任(不是由其信任的证书授权机构签名的),那么可提供第三等级证书。在此证书链接算法中,每一方将拥有验证其公钥所需的完整证书列表。此图解说明于图23及24中。此类型存取控制记录进行互验证所需的凭证是呈选定长度的RSA密钥对。安全存储应用程序证书安全存储应用程序采用[X.509]第3版数字证书。[X.509]是一种通用标准;于此的本文所描述的安全存储应用程序证书简档进一步描述及限制证书的经定义字段的内容。证书简档还定义为管理证书链、确认安全存储应用程序证书及证书撤销列表(CRL)简档所定义的信任分层架构。证书被认为是公开信息(如同内部的公钥),且因此不加密。然而,证书包含RSA签名,其用来检验公钥以及所有其它信息字段未被窜改。定义每一字段使用ASN.l标准来格式化,而ASN.l标准使用DER格式来进行数据编码。安全存储应用程序证书概述图20及21中描绘的安全存储应用程序证书管理架构的一个实施例由主机的不受限制的层级分层架构及装置的高达3层级分层架构组成,然而,对于装置可使用多于或少于3的分层架构的层级数。主机证书分层架构装置基于以下两种因素验证主机存储于装置中的根证书授权机构证书(作为存取30控制记录凭证,在存取控制记录创建时存储)及由试图存取装置的实体供应的证书/证书链(用于特定存取控制记录)。对于每一存取控制记录,主机证书授权机构充当根证书授权机构(此是驻留于存取控制记录凭证中的证书)。举例来说,对于一个存取控制记录,根证书授权机构可以是"主机1证书授权机构(层级2)证书",且对于另一存取控制记录,根证书授权机构可以是"主机根证书授权机构证书"。对于每一存取控制记录,持有由根证书授权机构签名的证书(或者将根证书授权机构连接到末端实体证书的证书链)的每一实体可登录存取控制记录,前提是其具有用于末端实体证书的对应私钥。如上所述,证书是公开的知识,且不保密。由根证书授权机构所发布的所有证书持有者(及对应私钥)可登录存取控制记录的事实意味着对特定存取控制记录的验证是由存储于存取控制记录凭证中的根证书授权机构的发行者所确定。换句话说,根证书授权机构的发行者可以是管理存取控制记录的验证方案的实体。主机根证书根证书是安全存储应用程序用于开始检验尝试登录(主机)的实体的公钥的可信证书授权机构证书。此证书是在作为存取控制记录凭证的一部分创建存取控制记录时提供。其是公钥基础结构系统的信任的根,且因此,假设由可信任实体(父代存取控制记录或可信的制造/配置环境)提供。安全存储应用程序使用其公钥检验证书签名来检验此证书。主机根证书经加密而存储于非易失性存储器中(图1中未显示),以便优选地,装置的秘密密钥仅可由系统10的图1的中央处理单元12存取。主机证书链主机证书链是在验证期间提供给安全存储应用程序的证书。在完成主机证书链的处理之后,装置中不应再存储有对所述链的记忆。图20是图解说明若干不同主机证书链的主机证书层级分层架构的示意图。如图20中所图解说明,主机证书可具有许多不同的证书链,其中仅图解说明三个证书链Al.主机根证书授权机构证书502、主机1证书授权机构(层级2)证书504及主机证书506;Bl.主机根证书授权机构证书502、主机n证书授权机构(层级2)证书508,主机1证书授权机构(层级3)证书510及主机证书512;Cl.主机根证书授权机构证书502、主机n证书授权机构(层级2)证书508及主机证书514。以上三个证书链A1、B1及C1图解说明可用于证明主机的公钥是真的三个可能的主机证书链。参考图20中的以上证书链A1,主机1证书授权机构(层级2)证书504中的公钥是通过主机根证书授权机构的私钥签名的(即,通过加密公钥的摘要),主机根证书授权机构的公钥在主机根证书授权机构证书502中。而主机证书506中的主机公钥又是通过主机1证书授权机构(层级2)的私钥签名的,主机1证书授权机构的公钥31提供于主机1证书授权机构(层级2)证书504中。因此,具有主机根证书授权机构的公钥的实体将能够检验上述证书链Al的可靠性。作为第一步骤,实体使用其拥有的主机根证书授权机构的公钥来解密由主机发送给其的主机1证书授权机构(层级2)证书504中经签名的公钥,且将解密的经签名公钥与主机发送的主机1证书授权机构(层级2)证书504中未签名的公钥的摘要相比较。如果两者匹配,那么主机1证书授权机构(层级2)的公钥通过验证,且实体将接着使用主机1证书授权机构(层级2)的经验证公钥以在主机发送的主机证书506中解密由主机1证书授权机构(层级2)的私钥所签名的主机的公钥。如果此解密的经签名值匹配主机发送的主机证书506中公钥的摘要的值,那么主机的公钥也得到验证。可以类似的方式使用证书链B1及C1来进行验证。如将从上述涉及链A1的过程所注意到,来自主机的第一公钥(需要实体检验)是主机1证书授权机构(层级2)中的密钥,且不是主机根证书授权机构证书。因此,主机需要发送给实体的是主机1证书授权机构(层级2)证书504及主机证书506,使得主机1证书授权机构(层级2)证书将成为链中需要发送的第一证书。如以上所图解说明,证书检验序列如下。检验实体(在此情况下,为存储器装置io)首先检验链中第一证书中的公钥的真实性,在此情况下第一证书是根证书授权机构下方的证书授权机构的证书504。在此证书中的公钥被检验为真实之后,装置IO接着继续进行下一证书的检验,在此情况下是主机证书506。通过相同的权标,可应用类似的检验序列,其中证书链含有两个以上证书,以紧接在根证书下方的证书开始,且以待验证的实体的证书结束。装置证书分层架构主机基于以下两种因素验证装置存储于主机中的装置根证书授权机构证书及由装置供应给主机的证书/证书链(其是在创建存取控制记录时作为凭证供应给装置)。主机验证装置的过程类似于上述装置验证主机的过程。装置证书链装置证书链是存取控制记录的密钥对的证书。其是在创建存取控制记录时提供给卡的。安全存储应用程序个别地存储这些证书,且在验证期间将其逐一地提供给主机。安全存储应用程序使用这些证书来验证主机。装置能够处理3个证书的链,虽然可使用不同于3的证书数量。证书的数量可因存取控制记录不同而改变。证书数量是在创建存取控制记录时确定的。装置能够给主机发送证书链,然而,其不需要剖析证书链,因为其不使用证书链数据。图21是图解说明装置证书层级分层架构的示意图,其用于图解说明用于使用安全存储应用程序的装置(例如,存储装置)的1到ii个不同证书链。图21中图解说明的n个不同证书链是如下A2.装置根证书授权机构证书520,装置1证书授权机构(制造商)证书522及装置证书524;B2.装置根证书授权机构证书520,装置n证书授权机构(制造商)证书526及装置证书528。安全存储应用程序装置可由1到II个不同制造商所制造,每一制造商具有其自己的装置证书授权机构证书。因此,用于特定装置的装置证书中的公钥将通过其制造商的私钥签名,且制造商的公钥又是通过装置根证书授权机构的私钥签名。检验装置的公钥的方式类似于在上述主机的公钥的情况下的方式。如在用于主机的上述证书链Al的检验的情况下,不需要发送装置根证书授权机构证书,且所述链中需要发送的第一证书是装置i证书授权机构(制造商)证书,后面是装置证书,i是从l到n的整数。在图21中图解说明的实施例中,装置将呈现两个证书装置i证书授权机构(制造商)证书,后面是其自己的装置证书。装置i证书授权机构(制造商)证书是制造此装置的制造商且是提供私钥以对装置的公钥进行签名的制造商的证书。当主机接收到装置i证书授权机构(制造商)证书时,主机使用其拥有的根证书授权机构的公钥,来解密及检验装置i证书授权机构(制造商)公钥。如果此检验失败,那么主机将中止所述过程,且通知装置验证已失败。如果验证成功,那么主机向装置发送对下一证书的请求。接着,装置以类似方式发送待由主机检验的其自己的装置证书。图22及23还更详细地图解说明了上述检验过程。在图22中,"安全服务模块系统"是实施本文所述安全存储应用程序系统以及下述其它功能的软件模块。安全存储应用程序可体现为具有存储于存储器20或中央处理单元12中的非易失性存储器(未显示)中的数据库的软件或计算机码,且被读取到随机存取存储器12a中并由中央处理单元12执行。如图22中所示,所述过程中存在三个阶段,其中装置10中的安全服务模块系统542验证主机系统540。在第一公钥验证阶段中,主机系统540以安全服务模块命令的形式将主机证书链发送给安全服务模块系统542。安全服务模块系统542使用位于存取控制记录550中主机根证书548中的根证书授权机构公钥,来检验(方块552)主机证书544及主机公钥546的真实性。如果涉及根证书授权机构与主机之间的中间证书授权机构549,那么在方块552还使用中间证书授权机构549进行检验。假设检验或过程(方块552)是成功的,那么安全服务模块系统542继续进行到第二阶段。安全服务模块系统542产生随机数554且将其作为询问发送给主机系统540。系统540使用主机系统的私钥547对随机数554进行签名(方块556),且发送经签名的随机数作为对询问的响应。使用主机公钥546解密响应(方块558),且将其与随机数554相比较(方块560)。假设经解密的响应匹配随机数554,那么询问响应是成功的。在第三阶段中,使用主机公钥546加密随机数562。那么此随机数562便成为会话密钥。主机系统540可通过使用其私钥解密(方块564)来自安全服务模块系统542的经加密随机数562来获得会话密钥。借助此会话密钥,那么便可起始主机系统540与安全服务模块系统542之间的安全通信。風22图解说明单向不对称验证,其中主机系统540由装置10中的安全服务模块系统542验证。图23是协议图,其图解说明类似于图22的单向验证协议的双向互验证过程,其中图23中的安全服务模块系统542也由主机系统540验证。33图24是用于图解说明本发明的一个实施例的证书链590的图示。如上所述,需要呈现用于验证的证书链可包括若干证书。因此,图24的证书链包括总计九(9)个证书,可能需要检验所有证书是否进行验证。如以上在
背景技术:
中所解释,在用于证书检验的现有系统中,发送不完整的证书链,或者如果发送整个证书,那么并不是以任何特定次序发送的证书,使得接收者是将不能够分析证书,直到接收到或存储了整个证书群组为止。由于事先不知道链中的证书数量,因此此可呈现问题。可能需要保留大量的存储空间,以用于存储不确定长度的证书链。此对于执行检验的存储装置可能是一问题。本发明的一个实施例基于可通过其中主机装置以与存储装置将检验的证书链相同的次序发送其证书链的系统减轻所述问题的认知。因此,如图24中所示,证书链590以证书链590(1)(其是紧接在主机根证书下方的证书)开始,且以证书590(9)(其是主机证书)结束。因此,装置10将首先检验证书590(1)中的公钥,后面是枪验证书590(2)中的公钥,以此类推直到检验证书590(9)中的主机公钥为止。接着,此完成整个证书链590的检验过程。因此,如果主机装置以与检验证书链相同的次序或序列将证书链590发送给存储器装置10,那么存储器装置10可在接收到每一证书时便开始对其进行检验,而不必等待直到接收到链590中的全部9个证书为止。因此,在一个实施例中,主机装置给存储器装置IO—次发送链59中的一个证书。那么存储器装置IO将必须一次存储一单个证书。在检验了证书之后,所述证书可被主机发送的下一证书覆写,除非其是链中的最后一个证书。以此方式,存储器装置10将需要随时保留仅用于存储单个证书的空间。存储器装置将需要知道何时接收完整个链590。因此,优选地,最后一个证书5卯(9)含有其是链中的最后一个证书的指示符或指示。此特征图解说明于图25中,图25是图解说明控制扇段(其位于证书缓冲器前面)中的由主机发送到存储器装置10的信息的表。如图25中所示,证书590(9)的控制扇段含有"是最后'旗标"的变元名称。接着,存储器装置IO可通过检查是否设定"是最后'旗标"来检验证书590(9)是否是链中的最后一个证书,以确定所接收到的证书是否是链中的最后一个证书。在替代实施例中,链590中的证书可能不是以逐一方式发送,而是以一个、两个或三个证书的群组形式发送。明显地,可使用群组中具有其它数量的证书或相同数量的证书的群组。因此,链590包括5个连续证书串591、593、595、597及599。每一串含有至少一个证书。连续证书串是含有以下证书的证书串紧接着链中在所讨论的一个串之前的串的证书(开始证书);紧接着链中一个串之后的串的证书(结尾证书);以及开始证书与结尾证书之间的所有证书。举例来说,串593总共含有三个证书590(2)、590(3)及590(4)。5个证书串由存储器装置10按以下序列迸行检验591、593、595、597且以599结束。因此,如果以与存储器装置10执行验证相同的序列发送及接收5个串,那么存储器装置将不需要在检验完所述串后存储其中的任一者,且除最后一个外的所有串均可被从主机到达的下一串覆写。如在先前实施例中,期望链中的最后一34个证书含有例如旗标的指示符(设定为特定值)以指示其是链中的最后一个证书。在此实施例中,存储器装置将仅需要保留足以存储5个串中最大数量证书的空间。因此,如果主机首先通知存储器装置IO其计划发送的最长串,那么存储器装置IO将仅需保留用于最长串的足够空间。优选地,由主机所发送的链中每一证书的长度不超过由证书证实的公钥的长度的4倍。类似地,由存储器装置10发送给主机装置用以证实存储器装置的公钥的证书的长度优选地不超过由证书所证实的公钥的长度的4倍。图26的流程图中图解说明上述用于检验证书链的的实施例,其中为简化起见,将每一群组中的证书数量假设为1。如图26中所示,主机将链中的证书依序发送到卡。以链中的第一证书(如上所解释,其通常是在根证书之后的一个证书)开始,卡依序接收来自正被验证的主机的证书链(方块602)。接着,卡检验接收到的每一证书,且如果任一证书未通过检验,那么中止所述过程。如果任一证书未通过检验,那么卡通知主机(方块604、606)。接着,卡将检测是否接收到且检验了最后一个证书(菱形608)。如果尚未接收到且检验了最后一个证书,那么卡返回到方块602,以继续接收及检验来自主机的证书。如果接收到且检验了最后一个证书,那么卡在证书验证之后继续进行到下一阶段(610)。虽然图26及下面的后续图中的特征是将存储器卡作为实例参考,但应了解,这些特征还可应用于具有非存储器卡物理形式的存储器装置。图27中图解说明在卡正验证主机时主机所实施的过程。如图27中所示,主机将链中的下一证书发送到卡(方块620),通常是以在根证书之后的一个证书开始。接着,主机确定是否从卡接收到指示验证失败的中止通知(菱形622)。如果接收到中止通知,那么主机停止(方块624)。如果尚未接收到中止通知,那么主机通过检査所发送的最后一个证书中是否已设定"是最后旗标",来检查是否发送了链中的最后一个证书(方块626)。如果发送了最后一个证书,那么主机将在证书验证之后继续进行到下一阶段(方块628)。如图22及23中所图解说明,下一阶段可以是一询问回应,其后是会话密钥创建。如果尚未发送链中的最后一个证书,那么主机返回到方块620以发送链中的下一证书。图28及29中图解说明在正验证卡时卡及主机所采取的动作。如图28中所示,在开始之后,卡等待来自主机的请求以发送链中的证书(方块630、菱形632)。如果尚未接收到来自主机的请求,那么卡将返回到菱形632。如果接收到来自主机的请求,那么卡将发送链中的下一证书,以应发送的第一证书(通常以在根证书之后的一个证书开始)开始(方块634)。卡确定是否从主机接收到失败通知(方块636)。如果接收到失败通知,那么卡停止(方块637)。如果尚未接收到失败通知,那么卡确定是否发送了最后一个证书(菱形638)。如果尚未发送最后一个证书,那么卡返回到菱形632且等待直到其接收到来自主机的下一请求以发送链中的下一证书。如果发送了最后一个证书,那么卡继续进行到下一阶段(方块639)。图29图解说明在正验证卡时主机所采取的动作。主机将对链中的下一证书的请求发送到卡,以对待发送的第一证书的请求开始(方块640)。接着,主机检验接收到的每一证书,且如果检验失败,那么中止过程并通知卡(方块642)。如果检验通过,那么主机检查是否接收到且成功检验了最后一个证书(菱形644)。如果尚未接收到且成功检验了最后一个证书,那么主机返回到方块640以发送对链中的下一证书的请求。如果接收到且成功检验了最后一个证书,那么主机将在证书检验之后继续进行到下一阶段(方块646)。证书撤销当发布证书时,期望所述证书能在其整个有效期内得到使用。然而,各种情况可能导致证书在有效期到期之前变得无效。此类情况包括名称改变,主题与证书授权机构之间的关联性改变(例如,雇员终止与组织的雇用关系),以及对对应私钥的损害或可疑损害。于此类情况下,证书授权机构需要撤销证书。安全存储应用程序能以不同的方式实施证书撤销,可针对撤销证书的特定方法配置每一存取控制记录。可将存取控制记录配置成不支持撤销方案。在此情况下,每一证书被认为有效,直到其到期日为止。或者可采用证书撤销列表。作为又一替代方案,撤销方案可专门针对特定应用程序,或是应用程序特有的,将在下文中予以解释。存取控制记录通过规定撤销值来规定采用三种撤销方案中的哪一种撤销方案。如果创建的存取控制记录不具有撤销方案,那么所述存取控制记录可采用可由存取控制记录所有者启动的撤销方案。存储器装置证书的撤销由主机而非由安全存储应用程序安全系统强制实行。存取控制记录所有者负责管理主机根证书的撤销,其用来执行此操作的机制是通过更新存取控制记录的证书。证书撤销列表(CRL)安全存储应用程序系统使用撤销方案,所述撤销方案涉及周期性发布称为证书撤销列表(CRL)的经签名数据结构的每一证书授权机构。证书撤销列表是带时间戳的列表,其识别由证书授权机构(发布讨论中的证书的相同证书授权机构)签名且可由公众自由使用的已撤销证书。每一已撤销证书是通过其证书序号在证书撤销列表中识别。证书撤销列表的大小是任意的,且取决于已撤销的未到期证书的数量。当装置使用证书(例如,用于检验主机的身份)时,装置不仅检查证书签名(及有效性),而且还对照通过证书撤销列表接收的序号列表检验所述证书。如果在发布证书的证书授权机构所发布的证书撤销列表上找到例如所述证书序号的识别,那么此指示所述证书已被撤销且不再有效。还将需要检验证书撤销列表的真实性,以将其用于确认证书。证书撤销列表是使用发布证书撤销列表的证书授权机构的私钥签名的,且可通过使用证书授权机构的公钥解密经签名的证书撤销列表来检验其真实性。如果经解密的证书撤销列表匹配未签名的证书撤销列表的摘要,那么此意谓着证书撤销列表尚未被窜改且是真的。使用散列算法对证书撤销列表进行频繁散列以获得其摘要,且通过证书授权机构的私钥加密所述摘要。为检验证书撤销列表是否是有效的,使用证书授权机构的公钥解密经签名的证书撤销列表(g卩,经散列及经加密的证书撤销列表),以得出经解密且经散列的证书撤销列表(即,证书撤销列表的摘要)。接着,将其与经散列的证书撤销列表相比较。因此,检验过程可时常涉及对证书撤销列表进行散列以与经解密且经散列的证书撤销列表相比较的步骤。证书撤销列表方案的特性中的一者是可将证书的确认(对照证书撤销列表)与获得证书撤销列表分开执行。证书撤销列表还由相关证书的发行者进行签名,且使用以上述方式发布证书撤销列表的证书授权机构的公钥以类似于证书检验的方式来检验证书撤销列表。存储器装置检验签名是属于证书撤销列表且证书撤销列表的发行者匹配证书的发行者。证书撤销列表方案的另一特性是可通过与证书本身完全相同的手段散布证书撤销列表,艮卩,经由不可信服务器及不可信通信。X.509标准中详细解释了证书撤销列表及其特性。证书撤销列表的安全存储应用程序基础结构安全存储应用程序使用证书撤销列表方案提供用于主机撤销的基础结构。当以证书撤销列表撤销方案验证基于RSA的存取控制记录时,主机将将一个证书撤销列表(如果发行者证书授权机构未撤销证书,那么可能是空的证书撤销列表)作为额外字段添加到设定证书命令。此字段将含有由证书的发行者签名的证书撤销列表。当此字段存在时,存储器装置IO首先检验设定证书命令中的证书。获得及存取证书撤销列表存储库完全是主机的责任。发布的证书撤销列表具有在此期间所述证书撤销列表有效的时间周期(证书撤销列表到期时间周期或CET)。在检验期间,如果发现当前时间不在此时间周期内,那么证书撤销列表被认为有缺陷,且不可用于证书检验。那么结果是证书的检验失败。在常规证书检验方法中,预期验证或检验实体拥有或能够从证书授权机构(CA)检索证书撤销列表,且对照所述列表检查为验证所呈现的证书的序号,以确定所呈现的证书是否已撤销。在验证或检验实体是存储器装置的情况下,可能尚未使用存储器装置独自地从证书授权机构检索证书撤销列表。如果证书撤销列表是预先存储于装置中的,那么此列表可能己过时,使得在安装日期之后撤销的证书将不显现于列表上。此将使用户能够使用已撤销证书来存取存储装置。这是不期望的。在一个实施例中,可通过其中期望被验证的实体将证书撤销列表连同待验证的证书一起呈现给验证实体(其可以是存储器装置10)的系统来解决上述问题。所述验证实体接着检验所接收的证书及证书撤销列表的可靠性。验证实体通过检查列表上是否存在证书的识别(例如,证书的序号)来检查所述证书是否在证书撤销列表上。鉴于以上所述,可使用不对称验证方案来进行主机装置与存储器装置10之间的互验证。期望给存储器装置IO验证的主机装置将需要提供其证书链及对应证书撤销列表两者。另一方面,主机装置是己用于连接到证书授权机构以获得证书撤销列表,以便在主机装置验证存储器装置10时,存储器装置不需要将证书撤销列表连同其证书或证书链呈现给主机装置。近年来,可用于播放内容的不同类型便携式装置的数量呈扩大趋势,例如不同的嵌入式或独立音乐播放器、mp3播放器、移动电话、个人数字助理及笔记本型计算机。虽然可将此类装置连接到万维网(WWW)以从证书授权机构存取证书验证列表,但许多用户并非每天都连接到万维网,而是仅在为获得新内容或更新订购时(例如每隔几周)才进行连接。因此,必须更频繁地从证书授权机构获得证书撤销列表,对于此类用户来说可能很麻烦。对此类用户来说,可将证书撤销列表以及任选地还有为存取受保护内容而需要呈现给存储装置的主机证书存储于所述存储装置本身的优选地不受保护区域中。在许多类型的存储装置(例如,快闪存储器)中,存储装置的不受保护区域是由主机装置而非存储装置自己管理的。以此方式,用户(通过主机装置)未必需要连接到万维网,以获得更多最新的证书撤销列表。主机装置是可仅检索来自存储装置的不安全区域的此类信息,且接着转向并将此类证书及列表呈现给存储装置或存储器装置,以存取存储装置中的受保护内容。由于用于存取受保护内容的证书及其对应的证书撤销列表通常在某一时间周期内是有效的,因此只要其仍然有效,那么用户将不需要获得最新的证书或证书撤销列表。上述特征使用户能够在证书及证书撤销列表两者仍有效时的相当长周期期间方便地对其进行存取,而不必为获得经更新的信息而连接到证书授权机构。图30及31的流程图中图解说明了上述过程。如图30中所示,主机24从存储器装置10的不安全公开区域读取与主机将呈现给存储器装置进行验证的证书相关的证书撤销列表(方块652)。由于证书撤销列表是存储于存储器的不安全区域中的,因此在主机可获得证书撤销列表之前不需要验证。由于证书撤销列表是存储于存储器装置的公开区域中的,因此主机装置24控制对证书撤销列表的读取。接着,主机将证书撤销列表连同待验证的证书一起发送给存储器装置(方块654),且继续进行到下一阶段,除非其从存储器装置10接收到失败通知(方块656)。参考图31,存储器装置从主机接收证书撤销列表及证书(方块658),且检查证书的序号是否在证书撤销列表上(方块660),以及对其它方面(例如,证书撤销列表是否已到期)进行检查。如果证书的序号在证书撤销列表上或因其它原因而失败,那么存储器装置给主机发送失败通知(方块662)。以此方式,不同的主机可获得存储于存储器装置的公开区域中的证书撤销列表,因为相同的证书撤销列表可用于不同主机的验证。如上所述,为方便用户,优选地,还可将待使用证书撤销列表检验的证书与证书撤销列表一起存储于存储器装置10的不安全区域中。然而,证书仅可由给其发布证书的主机用来对存储器装置进行验证。如图32中所图解说明,在证书撤销列表在其字段中含有进行下一更新的时间的情况下,那么装置IO中的安全存储应用程序还将对照此时间来检査当前时间,以看看当前时间是否在此时间之后;如果是,那么验证也是失败。因此,优选地,安全存储应用程序将对照当前时间(或者对照存储器装置10接收到证书撤销列表时的时间)检査进行下一更新的时间以及证书撤销列表到期时间周期。如上所述,如果证书撤销列表含有长的已撤销证书识别列表,那么处理(例如,散38列)列表及在列表中搜寻主机呈现的证书序号可能花费一段长时间,尤其是在依序实施处理及搜寻的情况下。因此,为加快过程的速度,可同时实施处理及搜寻。此外,如果需要接收到整个证书撤销列表才能对其进行处理及搜寻,那么过程可能也是费时的。申请人:认识到可通过在接收到证书撤销列表的若干部分时(实时地)便对其进行处理及搜寻来加快过程,以便在接收到证书撤销列表的最后一部分时,过程便即将完成。图33及34图解说明上述撤销方案的特征。在验证实体(例如,如存储器卡的存储器装置)处,从期望被验证的实体接收证书及证书撤销列表(方块702)。对未加密的证书撤销列表的部分进行处理(例如,散列)且同时针对所呈现证书的识别(例如,序号)对所述部分执行搜寻。将经处理(例如,经散列)的证书撤销列表部分编译成经散列的完整证书撤销列表,将其与完整的经解密且经散列的证书撤销列表(其是通过编译来自从期望被验证的实体接收的部分的经解密证书撤销列表部分形成的)相比较。如果比较指示比较中不存在匹配,那么验证失败。验证实体还对照当前时间检查进行下一更新的时间以及证书撤销列表到期时间周期两者(方块706、708)。如果发现所呈现证书的识别在证书撤销列表上,或者如果当前时间不在证书撤销列表到期时间周期内,或者如果用于下一经更新的证书撤销列表的时间已过去(方块710),那么验证也是失败的。在一些实施方案中,存储用于编译的经散列证书撤销列表部分及被解密的经散列证书撤销列表部分可能不需要大量的存储器空间。当实体(例如,主机)期望被验证时,所述实体将其证书及证书撤销列表发送给验证实体(方块722),且继续进行到下一阶段(方块724)。此图解说明于图34中。如果实体呈现证书链用于验证,那么可实施类似于上述过程的程序。在此事件中,将需要针对所述链中每一证书连同其对应的证书撤销列表重复上述过程。可在接收到每一证书及其证书撤销列表时随即进行处理处理,而不必等待接收到证书链的其余部分及其对应的证书撤销列表。身份对象(IDO)身份对象是受保护的对象,其经设计以允许例如快闪存储器卡的存储器装置10存储RSA密钥对或其它类型的密码ID。身份对象包括可用于对身份进行签名及检验以及加密及解密数据的任何类型的密码ID。身份对象还包括来自证书授权机构的用以证实密钥对中的公钥是真的证书(或者来自多个证书授权机构的证书链)。身份对象可用于提供外部实体或内部卡实体(即,装置本身、内部应用程序等等,称为身份对象的所有者)的身份证明。因此,卡不通过询问响应机制将RSA密钥对或其它类型的密码ID用来验证主机,而是通过对提供给其的数据流进行签名将其用作身份证明。换句话说,身份对象含有其所有者的密码ID。为存取身份对象中的密码ID,首先将需要验证主机。如上所述,验证过程是借助存取控制记录控制的。在已成功验证主机之后,身份对象所有者可使用密码ID来给另一方建立所有者的身份。举例来说,可使用密码ID(例如,公钥私钥对的私钥)来对另一方通过主机呈现的数据进行签名。将代表身份对象所有者的经签名数据及身份对象中的证书呈现给另一方。证书授权机构(即,可信39授权单位)证实所述证书中的公钥私钥对的公钥是真的,使得另一方可信任此公钥是真的。接着,另一方可使用证书中的公钥来解密经签名的数据,且将经解密的数据与另一方发送的数据相比较。如果经解密的数据匹配另一方发送的数据,那么此显示身份对象的所有者可存取真的私钥,且因此其代表的实体是真的。身份对象的第二用途是使用密码ID(例如RSA密钥本身)来保护指定给身份对象的所有者的数据。期望使用身份对象公钥来加密数据。例如存储器卡的存储器装置10将使用私钥来解密数据。身份对象是可针对于任何类型的存取控制记录创建的对象。在一个实施例中,存取控制记录可仅具有一个身份对象。数据签名及保护特征两者是安全存储应用程序系统提供给任何能够验证存取控制记录的实体的服务。身份对象的保护等级是与存取控制记录的登录验证方案一样高。可选择任何验证算法用于绑定有身份对象的存取控制记录。创建者(主机)适合于确定及评估哪一算法可较好地保护身份对象的使用。具有身份对象的存取控制记录响应于获得身份对象公钥的命令提供其证书链。当身份对象用于数据保护时,从卡输出的经解密数据可能需要进一步的保护。在此情况下,鼓励主机使用通过可用验证算法中的任一者建立的安全信道。当创建身份对象吋,选择密钥长度以及PKCS射版本。在一个实施例中,公钥及私钥正使用PKCS弁12.1版本中定义的(指数,模数)表达式。在一个实施例中,在创建身份对象期间所包括的数据是所选长度的RSA密钥对以及以递归方式证明公钥的可靠性的证书链。拥有身份对象的存取控制记录将允许对用户数据进行签名。此是通过两个安全存储应用程序命令实施的-设定用户数据提供待签名的自由格式数据缓冲器。获得安全存储应用程序签名。卡将提供RSA签名(使用存取控制记录私钥)。取决于对象的类型,可根据PKCS弁11.5版本或2.1版本来设定签名的格式及大小。图35-37中图解说明使用身份对象的操作。其中存储器装置IO是快闪存储器卡,且所述卡是身份对象的所有者。图35图解说明在对发送给主机的数据进行签名时所述卡实施的过程。参考图35,在上述树结构的节点处在存取控制记录控制下对主机进行验证之后(方块802),卡等待对证书的主机请求(菱形804)。在接收到请求之后,卡发送证书并返回到菱形804,以等待下一主机请求(方块806)。如果需要发送证书链来证实所述卡拥有的身份对象的公钥,那么重复上述动作,直到已给主机发送了所述链中的所有证书为止。在每一证书均已发送给主机之后,卡等待来自主机的其它命令(菱形808)。如果在预设定的时期期间内未接收到来自主机的命令,那么卡返回到菱形804。在接收来自主机的数据及命令时,卡检查其是否是用于对数据进行签名的命令(菱形810)。如果是用于对数据进行签名的命令,那么卡用身份对象中的私钥对数据进行签名,且接着将经签名的数据发送到主机(方块812),并返回到菱形804。如果来自主机的命令不是用于对来自主机的数据进行签名的命令,那么卡使用身份对象中的私钥来40解密所接收的数据(方块814),且返回到菱形804。图36图解说明在卡对待发送给主机的数据进行签名时主机所实施的过程。参考图36,主机将验证信息发送给卡(方块822)。在如上所述于树结构的节点处在存取控制记录控制下成功实施验证之后,主机将对证书链的请求发送给卡,且接收所述链(方块824)。在检验了卡的公钥之后,主机将数据发送给卡以进行签名,且接收通过卡的私钥签名的数据(方块826)。图37图解说明当主机使用卡的公钥加密数据且将经加密的数据发送给卡时主机所实施的过程。参考图37,主机将验证信息发送给卡(方块862)。在存取控制记录控制下成功执行验证之后,主机向卡发送对检验身份对象中卡公钥所需的证书链的请求(方块864),且向卡发送对数据的请求。在检验了身份对象中卡的公钥之后,主机使用卡的经检验的公钥来加密来自卡的数据,且将其发送给卡(方块866、868)。查询主机及应用程序需要拥有关于正与其一起工作以执行系统操作的存储器装置或卡的某些信息。举例来说,主机及应用程序可需要知道存储器卡上存储的哪些应用程序可供调用。主机所需的信息有时候不是公开的知识,此意谓着并非每一实体都具有拥有所述信息的权利。因此为区别经授权与未授权的用户,需要提供可供主机使用的两种查询方法。一般信息査询。此査询不加限制地给出系统的公开信息。存储器装置中存储的机密信息包含两个部分共用部分及非共用部分。机密信息的一个部分包括可能是个别实体的专有信息,使得仅允许每一实体存取其自己的专有信息,而不能够存取其它实体的专有机密信息。此类型的机密信息不能共用,且形成机密信息的不共用部分。通常被想成是公开的某些信息在一些情况下可能被认为是机密的,例如驻留于卡中的应用程序的名称及其生命周期状态。此情况的另一实例可为根存取控制记录名称,其被认为是公开的,但对一些安全存储应用程序使用情况可以是机密的。对于这些情况来说,系统应响应于一般信息査询而提供以下选项保持此信息仅能由所有经验证的用户使用,但不能由未验证的用户使用。此类信息构成机密信息的共用部分。机密信息的共用部分的实例可包括根存取控制记录列表,即装置上当前存在的所有根存取控制记录的列表。通过一般信息查询来存取公开信息不需要主机/用户登录存取控制记录。因此,具有安全存储应用程序标准知识的任何实体可执行及接收信息。就安全存储应用程序而论,此查询命令是在无会话号码的情况下处理的。然而,如果期望由一实体存取机密信息的共用部分,那么首先需要通过控制存取存储器装置中的数据的任何控制结构(例如,任一存取控制记录)来验证实体。在成功验证之后,实体将能够通过一般信息查询来存取机密信息的共用部分。如以上所解释,验证过程将产生用于存取的安全存储应用程序会话号码或ID。谨慎信息查询关于个别存取控制记录及其系统存取及资产的私有信息被认为是谨慎的,且需要明确验证。因此,此种査询要求在接收信息查询的授权之前,进行存取控制记录登录及验证(如果验证是由存取控制记录规定)。此査询需要安全存储应用程序会话号码。在详细描述两种类型査询之前,首先描述索引群组作为用于实施查询的实际解决方案的观念将是有用的。索引群组主机上的操作系统(OS)及系统驱动器要求执行于可能的安全存储应用程序主机上的应用程序规定计划读取的扇段数。此又意谓着主机应用程序需要知道每一安全存储应用程序读取操作需要读取多少个扇段。由于查询操作的本质是给请求信息的实体供应其通常不知道的信息,因此主机应用程序发布查询且猜测此操作所需的扇段量存在困难。为解决此问题,安全存储应用程序每一査询请求查询仅由一个扇段(512个字节)组成的输出缓冲器。为输出信息的一部分的对象组织成所谓的索引群组。每一类型的对象可具有不同的字节大小,此计及可适合单个扇段的对象数量。此定义对象的索引群组。如果对象具有20个字节的大小,那么此对象的索引群组将含有高达25个对象。如果总共有56个此类对象,那么将其组织成3个索引群组,其中对象'0'(第一对象)开始第一索引群组,对象'25,""开始第二索引群组且对象'50'开始第三且为最后一个索引群组。系统查询(一般信息査询)此查询提供关于装置中可支持的安全存储应用程序系统及设置成类似运行于装置上的不同树及应用程序的当前系统的一般公开信息。类似于下述存取控制记录査询(谨慎查询),系统査询经构造以给出数个查询选项一般-安全存储应用程序支持的版本。安全存储应用程序应用-当前存在于装置上的所有安全存储应用程序应用的列表,包括所述应用的运行状态。以上所列信息是公开信息。如同存取控制记录查询,为使主机不需要知道查询输出缓冲器要读取多少个扇段,将存在一个从装置发回的扇段,同时仍使主机能够进一步查询额外的索引群组。因此,如果根存取控制记录对象的数量超过索引群组"0"的输出缓冲器大小的数量,那么主机可发送关于后面索引群组('l')的另一査询请求。存取控制记录査询(谨慎信息査询)安全存储应用程序存取控制记录查询命令计划给存取控制记录用户供应关于存取控制记录的系统资源的信息,例如,密钥及应用程序ID,分区及子代存取控制记录。査询信息仅是关于登录存取控制记录且与系统树上的其它存取控制记录无关。换句话说,将存取限定为仅机密信息中可在所涉及的存取控制记录的许可下存取的部分。存在用户可查询的三个不同存取控制记录对象分区-名称及存取权(所有者、读取、写入)。42密钥ID及应用程序ID-名称及存取权(所有者、读取、写入)。子代存取控制记录-直系子代存取控制记录的存取控制记录及存取控制记录群组名称。身份对象及安全数据对象(将在下文中予以描述)-名称及存取权(所有者、读取、写入)。由于与存取控制记录相关的对象数量可以变化,且信息可能超过512个字节(一个扇段)。在事先不知道对象数量的情况下,用户无法知道需要从装置中的安全存储应用程序系统读取多少个扇段,以获得全部的列表。因此,将安全存储应用程序系统提供的每一对象列表划分成多个索引群组,类似于上述系统査询的情况。索引群组是装配到扇段上的对象数量,即在一个扇段中可从装置中的安全存储应用程序系统给主机发送多少个对象。此使装置中的安全存储应用程序系统发送所请求索引群组的一个扇段。主机/用户将接收所查询对象的缓冲器,缓冲器中的对象数量。如果缓冲器是满的,那么用户可査询下一对象索引群组。图38是图解说明涉及一般信息查询的操作的流程图。参考图38,当安全存储应用程序系统接收来自实体的一般信息查询时(方块902),系统确定实体是否已得到验证(菱形904)。如果实体已验证,那么系统给实体供应公开信息及机密信息的共用部分(方块906)。如果实体尚未验证,那么系统仅给实体供应公开信息(方块908)。图39是图解说明涉及谨慎信息査询的操作的流程图。参考图39,当安全存储应用程序系统接收来自实体的谨慎信息査询时(方块922),系统确定实体是否已得到验证(菱形924)。如果实体已验证,那么系统给实体供应机密信息(方块926)。如果实体尚未验证,那么系统拒绝实体存取机密信息(方块928)。特征设定扩展(FSE)在许多情况下,在卡上运行安全存储应用程序内的数据处理活动(例如,数字版权管理许可证对象确认)是非常有利的。相对于所有数据处理任务均在主机上执行的替代解决方案,所得系统将更安全,更有效率,且较不依赖主机。安全存储应用程序安全系统包含一组验证算法及授权策略,其经设计以控制存取及使用由存储器卡存储、管理及保护的对象集合。一旦主机获得存取,那么主机将对存储于存储器装置中的数据进行处理,其中安全存储应用程序控制对存储器装置的存取。然而,假设数据本质上是应用程序特有的,且因此数据格式及数据处理都不是在安全存储应用程序中定义的,安全存储应用程序不处理存储于装置上的数据。本发明的一个实施例基于以下认知安全存储应用程序系统可经增强,以许可主机执行通常由存储器卡中的主机所实施的一些功能。因此,可将主机的一些软件应用程序分离成两个部分仍然由主机执行的一个部分;以及现在由卡执行的另一部分。对于许多应用程序来说,此增强数据处理的安全性及效率。为此目的,可添加称为特征设定扩展的机制,以增强安全存储应用程序的能力。在本文中,卡以此方式执行的特征设定扩展中的主机应用程序还称为内部应用程序,或装置内部应用程序。增强的安全存储应用程序系统提供扩展基本安全存储应用程序命令集的机制,从而经由引入卡应用程序来提供卡的验证及存取控制。假设卡应用程序还实施除了安全存储应用程序的服务以外的服务(例如,数字版权管理机制,电子商务交易)。安全存储应用程序特征设定扩展是经设计以增强具有数据处理软件/硬件模块的标准安全存储应用程序安全系统的机制,其可以是专有的。除了可使用上述查询获得的信息之外,安全存储应用程序特征设定扩展系统所定义的服务使主机装置能够向卡查询可用的应用程序,选择且与特定应用程序通信。上述一般查询及谨慎查询可用于此目的。使用两种扩展安全存储应用程序特征设定扩展中的卡特征设定的方法-提供服务-此特征是通过允许经授权实体使用称为通信管道的命令信道直接与内部应用程序通信来实现的,通信管道可以是专有的。安全存储应用程序标准存取控制策略的扩展-此特征是通过使内部受保护数据对象(例如,内容加密密钥、下文所述的安全数据对象或SDO)与内部卡应用程序相关联来实现的。每当存取此类对象时,如果满足了所定义的标准安全存储应用程序策略,那么调用相关联的应用程序,以借此还施加除标准安全存储应用程序策略之外的至少一个条件。优选地,条件将不与标准安全存储应用程序策略冲突。仅在也满足此额外条件时,才准予存取。在进一步详细阐述特征设定扩展的能力之前,现在将说明特征设定扩展以及通信管道和安全数据对象的架构方面。安全服务模块(SSM)及相关模块图40A是存储器装置IO(例如,快闪存储器卡)连接到主机装置24中的系统架构1000的功能框图,以图解说明本发明的实施例。如下是卡20的存储器装置中软件模块的主要组件-.安全存储应用程序传输层1002安全存储应用程序传输层相依于卡协议。其处理卡10的协议层上的主机侧安全存储应用程序请求(命令),且接着将其中继到安全服务模块API。所有主机-卡同步化及安全存储应用程序命令识别均在此模块处实施。传输层还负责主机24与卡10之间的所有数据转移。安全服务模块核心(SSM核心)1004此模块是安全存储应用程序实施方案的重要部分。安全服务模块核心实施安全存储应用程序架构。更具体来说,安全服务模块核心实施安全存储应用程序树及存取控制记录系统以及组成系统的上述所有对应规则。安全服务模块核心模块使用密码库1012来支持安全存储应用程序安全及密码特征,例如加密、解密及散列。安全服务模块核心API1006此是主机及内部应用程序将介接安全服务模块核心以实施安全存储应用程序操作的层。如图40A中所示,主机24及装置内部应用程序1010两者将使用相同的API。安全应用程序管理程序模块(SAMM)1008安全应用程序管理程序模块并非安全存储应用程序系统的一部分,但其是卡中用于控制介接安全存储应用程序系统的内部装置应用程序的重要模块。安全应用程序管理程序模块管理所有内部装置运行应用程序,其包括1.应用程序生命周期监视及控制。2.应用程序初始化。3.应用程序/主机/安全服务模块接口。装置内部应用程序1010装置内部应用程序是被准许在卡侧上运行的应用程序。这些装置内部应用程序由安全应用程序管理程序模块管理,且可存取安全存储应用程序系统。安全服务模块核心还提供主机侧应用程序与内部应用程序之间的通信管道。此类内部运行应用程序的实例是数字版权管理应用程序及一次性口令(OTP)应用程序,如下文中的进一步解释。装置管理系统(DMS)1011此系统是含有在后装运(通常称为后发布)模式中更新卡的系统及应用程序固件以及增加/移除服务所需的过程及协议的模块。图40B是安全服务模块核心1004的内部软件模块的功能框图。如图40B中所示,核心1004包括安全存储应用程序命令处理程序1022。处理程序1022在将命令传递给安全存储应用程序管理程序1024之前,剖析源自主机或源自装置内部应用程序1010的安全存储应用程序命令。所有安全存储应用程序安全数据结构(例如,存取控制记录群组及存取控制记录)以及所有安全存储应用程序规则及策略均存储于安全存储应用程序数据库1026中。安全存储应用程序管理程序1024实施由存储于数据库1026中的存取控制记录及存取控制记录群组以及其它控制结构所行使的控制。其它对象(例如,身份对象)以及安全数据对象也存储于安全存储应用程序数据库1026中。安全存储应用程序管理程序1024实施由存储于数据库1026中的存取控制记录及存取控制记录群组以及其它控制结构所行使的控制。安全存储应用程序非安全操作模块1028处理不涉及安全存储应用程序的非安全操作。安全存储应用程序安全操作模块1030处理在安全存储应用程序架构下的安全操作。模块1032是将模块1030连接到密码库1012的接口。模块1034是将模块1026及1028连接到图1中的快闪存储器20的层。通信(或通过)管道在安全服务模块核心及安全应用程序管理程序模块控制下,通过管道对象使经授权的主机侧实体能够与内部应用程序通信。主机与内部应用程序之间的数据转移是通过发送(SEND)及接收(RECEIVE)命令(定义如下)实施的。实际的命令是应用程序特有的。创建管道的实体(存取控制记录)将需要提供管道名称及将为其开启信道的应用程序的ID。如同所有其它受保护对象,存取控制记录是变成其所有者,且被允许根据标准委派规则及限制而将使用权以及所有权委派给其它存取控制记录。如果创建_管道许可设定在经验证实体的存取控制记录属性管理中,那么所述验证实体将被允许创建管道对象。仅在写入或读取管道许可设定于实体的许可控制记录中时,才允许与内部应用程序通信。仅在实体是管道所有者或设定委派存取权设定于实体的许可控制记录中时,才允许所有权及存取权委派。如同所有其它许可,当将所45有权委派给另一存取控制记录时,优选地,原始所有者将被剥除其对此装置应用程序的所有许可。优选地,针对特定应用程序,仅创建一个通信管道。优选地,安全服务模块系统1000将拒绝创建第二管道及将第二管道连接到己连接的应用程序的尝试。因此,优选地,装置内部应用程序1010中的一者与通信管道之间存在一对一的关系。然而,多个存取控制记录可与一个装置内部应用程序通信(经由委派机制)。单个存取控制记录可与数个装置应用程序通信(经由连接到不同应用程序的多个管道的委派或所有权)。优选地,控制不同管道的存取控制记录位于完全分离的树的节点中,使得通信管道之间无串扰。使用以下命令在主机与特定应用程序之间转移数据WRITEPASSTHROUGH(写入通过)-将未格式化的数据缓冲器从主机转移到装置内部应用程序。READPASSTHROUGH(读取通过)-将未格式化的数据缓冲器从主机转移到装置内部应用程序,且一旦完成内部处理,便将未格式化的数据缓冲器输出回到主机。写入及读取通过命令提供主机期望与其通信的装置内部应用程序1008的ID作为参数。将确认实体许可,且如果请求实体(即,托管此实体正使用的会话的存取控制记录)具有使用连接到所请求应用程序的管道的许可,那么将解译数据缓冲器,且执行命令。此通信方法允许主机应用程序通过安全存储应用程序存取控制记录会话信道将厂商/业主特有命令传递到装置内部应用程序。安全数据对象(SDO)可与特征设定扩展结合使用的有用对象是安全数据对象。安全数据对象用作安全存储敏感信息的通用容器。类似于内容加密密钥对象,所述安全数据对象由存取控制记录拥有,且可在存取控制记录之间委派存取权及所有权。安全数据对象含有根据预先定义的策略限制保护及使用的数据,且任选地,具有到装置内部应用程序1008的链接。优选地,安全存储应用程序系统不使用或解译敏感数据,而是由对象的所有者及用户来使用或解译。换句话说,安全存储应用程序系统不辨别其所处理的数据中的信息。以此方式,当数据在主机与数据对象之间传递时,对象中的数据的所有者及用户可较不关心因与安全存储应用程序系统介接所造成的敏感信息的损失。因此,安全数据对象由主机系统(或内部应用程序)创建,且被指派一串ID,类似于创建内容加密密钥的方式。在创建时,除名称外,主机还提供链接到安全数据对象的应用程序的应用程序ID及将由安全存储应用程序存储、进行完整性检验及接收的数据区块。类似于内容加密密钥,安全数据对象优选地仅在安全存储应用程序会话内创建。用于开启会话的存取控制记录变成安全数据对象的所有者,且具有删除安全数据对象、写入及读取敏感数据以及将所有权及存取安全数据对象的许可委派给另一存取控制记录(是其子代存取控制记录或在相同存取控制记录群组内)的权利。写入及读取操作是专门为安全数据对象的所有者保留的。写入操作用所提供的数据缓冲器来覆写现有安全数据对象的对象数据。读取操作将检索安全数据对象的完整数据记录。允许具有适当存取许可的非所有者存取控制记录进行安全数据对象存取操作。定义以下操作SDOSet(安全数据对象设定),定义应用程序ID:将由具有应用程序ID的内部安全存储应用程序处理数据。通过与安全数据对象的关联调用应用程序。作为任选结果,应用程序将写入安全数据对象。SDOSet(安全数据对象设定),应用程序ID是空值此选项无效,且将提示非法命令错误。设定命令需要运行于卡中的内部应用程序。SDOGet(安全数据对象获得),定义应用程序ID:将由具有应用程序ID的装置内部应用程序处理请求。通过与安全数据对象的关联调用应用程序。将输出(虽然未被定义)发送回给请求者。应用程序将任选地读取安全数据对象。SDOGet(安全数据对象获得),应用程序ID是空值此选项无效,且将提示非法命令错误。获得命令需要运行于卡中的内部应用程序。安全数据对象相关许可存取控制记录可以是安全数据对象的所有者或只是具有存取许可(设定、获得或其两者)。另外,可许可存取控制记录将对其不拥有的安全数据对象的存取权转移给另一存取控制记录。如果存取控制记录具有存取控制记录属性管理许可,那么可明确地许可所述存取控制记录创建安全数据对象且委派存取权。内部存取控制记录内部存取控制记录类似于具有许可控制记录的任何存取控制记录,装置10的外部实体无法登录存取控制记录除外。而是,当调用在图40B的安全存储应用程序管理程序1024的控制下的对象或与其相关联的应用程序时,安全存储应用程序管理程序1024自动登录内部存取控制记录。由于尝试获得存取的实体是卡或存储器装置内部的实体,因此不需要验证。安全存储应用程序管理程序1024仅将会话密钥传递给内部存取控制记录,以启用内部通信。将使用两个实例图解说明特征设定扩展的能力一次性口令产生及数字版权管理。在描述一次性口令产生的实例之前,首先将说明双因素验证的发布。一次性口令的实施例双因素验证(DFA)双因素验证是验证协议,其经设计以通过给标准用户凭证(即,用户名称及口令)添加额外的秘密"第二因素"来增强进入(例如)web服务服务器的个人登录的安全性。第二秘密通常是存储于用户拥有的物理安全权标中的事物。在登录过程期间,用户需要提供拥有证明作为登录凭证的一部分。证明拥有的常用方式是使用一次性口令(OTP),其是仅适合于单次登录的口令,所述口令由安全权标产生且从安全权标输47出。如果用户能够提供正确的一次性口令,那么其将被认为是拥有所述权标的充分证明,因为在没有权标的情况下以密码方式计算一次性口令是不可行的。由于一次性口令仅适合于单次登录,因此用户应在登录时具有权标,因为使用从先前登录捕获的旧口令将不再有效。以下部分所描述的产品使用安全存储应用程序安全数据结构加上特征设定扩展设计(用以计算一次性口令系列中的下一口令),来实施具有多个"虚拟"安全权标的快闪存储器卡,每一权标产生不同的口令系列(其可用于登录不同的web网站)。图41中描绘此系统的框图。完整的系统1050包含验证服务器1052、因特网服务器1054及具有权标1058的用户1056。第一步骤是认可验证服务器与用户之间的共用秘密(还称为种子供应)。用户1056将请求发布秘密或种子,且将其存储于安全权标1058中。下一步骤是将所发布的秘密或种子与特定web服务服务器绑定在一起。一旦完成此操作,便可发生验证。用户将指令权标产生一次性口令。具有用户名称及口令的一次性口令被发送到因特网服务器1054。因特网服务器1054将一次性口令转发给验证服务器1052,请求其检验用户身份。验证服务器也将产生一次性口令,且由于所述一次性口令是从具有权标的共用秘密产生的,因此其应匹配从权标产生的一次性口令。如果发现匹配,那么检验用户身份,且验证服务器将肯定确认返回到因特网服务器1054,因特网服务器1054将完成用户登录过程。用于一次性口令产生的特征设定扩展实施方案具有以下特性在卡中安全地存储(加密)一次性口令种子。在卡内部执行口令产生算法。装置10可模仿多个虚拟权标,所述虚拟权标的每一者存储不同的种子且可使用不同的口令产生算法。装置10提供安全协议以将种子从验证服务器传输到装置中。图42中图解说明用于一次性口令种子供应及一次性口令产生的安全存储应用程序特征,其中实线箭头图解说明所有权或存取权,且虚线箭头图解说明关联性或链接。如图42中所示,在安全存储应用程序特征设定扩展系统1100中,可通过一个或一个以上通信管道1104来存取软件程序码特征设定扩展1102,通信管道1104由N个应用程序存取控制记录1106的每一者控制。在下述实施例中,仅图解说明一个特征设定扩展软件应用程序,且对于每一特征设定扩展应用程序,仅存在一个通信管道。然而,应了解,可使用一个以上特征设定扩展应用程序。虽然图42中仅图解说明一个通信管道,但应了解,可使用多个通信管道。所有此类变化形式均是可能的。参考图40A、40B及42,特征设定扩展1102可以是用于一次性口令供应的应用程序,且形成图40A的一子组装置内部应用程序1010。控制结构(存取控制记录1101、1103、1106、1110)是安全存储应用程序中的安全数据结构的一部分,且存储于安全存储应用程序数据库1026中。数据结构(例如身份对象1120、安全数据对象1122及通信管道1104)也存储于安全存储应用程序数据库1026中。参考图40A及40B,模块1030借助接口1032和密码库1012来处理涉及存取控制记录及数据结构的安全相关操作(例如,会话中的数据转移、以及例如加密、解密和散列的操作)。安全服务模块核心API1006不区分涉及与主机互动的存取控制记录(外部存取控制记录)及不与主机互动的内部存取控制记录的操作,且因此不区分涉及主机对装置内部应用程序1010的操作。以此方式,使用相同控制机制控制主机侧实体实施的存取及装置内部应用程序1010实施的存取。此为在主机侧应用程序与装置内部应用程序1010之间划分数据处理提供更多灵活性。内部应用程序IOIO(例如,图42中的特征设定扩展1102)与内部存取控制记录(例如,图42中的存取控制记录1103)相关联且通过所述内部存取控制记录的控制来调用。此外,例如具有相关联的安全存储应用程序规则及策略的存取控制记录及存取控制记录群组的安全数据结构优选地控制对重要信息的存取,例如安全数据对象中的内容或可从安全数据对象内的内容得到的信息,使得外部或内部应用程序仅可根据安全存储应用程序规则及策略来存取此内容或信息。举例来说,如果两个不同的用户可调用装置内部应用程序IOIO中的个别装置内部应用程序来处理数据,那么使用位于单独分层树中的内部存取控制记录来控制两个用户所实施的存取,使得所述用户之间无串扰。以此方式,两个用户均可存取一组共同装置内部应用程序1010以用于处理数据,而不担心安全数据对象中的内容或信息的所有者部分地丧失对内容或信息的控制。举例来说,对存储由装置内部应用程序IOIO存取的数据的安全数据对象的存取可由位于单独分层树中的存取控制记录来控制,使得所述装置内部应用程序之间无串扰。此控制方式类似于上述安全存储应用程序控制对数据的存取的方式。此给内容所有者及用户提供存储于数据对象中的数据的安全性。参考图42,可将一次性口令相关主机应用程序所需的软件应用程序码的一部分存储(例如,在存储器卡发布之前预先存储或在存储器卡发布之后加载)于存储器装置10中作为特征设定扩展1102中的应用程序。为执行此代码,主机将首先需要通过N个验证存取控制记录1106中的一者进行验证(N是正整数),以获得对管道1104的存取。主机还将需要提供用于识别其期望调用的一次性口令相关应用程序的应用程序ID。在成功验证之后,可通过与一次性口令相关应用程序相关联的管道1104存取所述代码以供执行。如上所述,优选地,管道1104与特定应用程序(例如,一次性口令相关内部应用程序)之间存在一对一的关系。如图42中所示,多个存取控制记录1106可共用对共同管道1104的控制。存取控制记录还可控制一个以上管道。图42中图解说明统称为对象1114的安全数据对象1、安全数据对象2及安全数据对象3,其每一者均含有例如用于一次性口令产生的种子的数据,所述种子是有价值的且优选地经加密。三个数据对象与特征设定扩展1102之间的链接或关联性1108图解说明对象的属性,因为当存取对象中的任一者时,具有安全数据对象的属性中应用程序ID的特征设定扩展1102中的应用程序将被调用,且应用程序将由存储器装置49的中央处理单元12来执行,而不需要接收任何其它主机命令(图1)。参考图42,在用户可开始一次性口令过程之前,安全数据结构(存取控制记录1101、1103、1106及1110)已创建有其用于控制一次性口令过程的许可控制记录。用户将需要具有存取权,以通过验证服务器存取控制记录1106中的一者调用一次性口令装置内部应用程序1102。用户还将需要具有对将通过N个用户存取控制记录1110中的一者产生的一次性口令的存取权。可在一次性口令种子供应过程期间创建安全数据对象1114。优选地,身份对象1116已经创建且由内部存取控制记录1103控制。内部存取控制记录1103还在安全数据对象1114创建之后对其进行控制。当存取安全数据对象1114时,图40B中的安全存储应用程序管理程序1024自动登录到内部存取控制记录1103。内部存取控制记录1103与特征设定扩展1102相关联。在一次性口令种子供应过程期间,安全数据对象1114可变成与特征设定扩展相关联,如虚线1108所示。在形成关联性之后,当主机存取安全数据对象时,关联性1108将导致特征设定扩展1102在没有来自主机的进一步请求的情况下被调用。当通过N个存取控制记录1106中的一者存取通信管道U04时,图40B中的安全存储应用程序管理程序1024也将自动登录到存取控制记录1103。在两种情况下(存取安全数据对象1114及管道1104),安全存储应用程序管理程序将会话号码传递到特征设定扩展1102,会话号码将识别到内部存取控制记录1103的信道。一次性口令操作涉及两个阶段图43中图解说明的种子供应阶段及图44中图解说明的一次性口令产生阶段。为有助于描述还将参考图40-42。图43是图解说明种子供应过程的协议图。如图43中所示,主机(例如主机24)以及卡采取各种动作。卡上的一个正采取各种动作的实体是图40A及40B的安全服务模块系统,其包括安全服务模块核心1004。卡上正采取各种动作的另一实体是图42中所示的特征设定扩展FSE1102。在双因素验证中,用户请求发布种子,且一旦种子被发布,便将所述种子存储于安全权标中。在此实例中,安全权标是存储器装置或卡。用户向图42中验证存取控制记录1106中的一者进行验证,以获得对安全服务模块系统的存取(箭头1122)。假设验证成功(箭头1124),那么用户请求种子(箭头1126)。主机发送请求,以通过选择用于对种子请求进行签名的特定应用程序1102而将种子请求签名到卡。如果用户不知道需要调用的特定应用程序的ID,那么可从装置IO获得信息,举例来说,通过对装置的谨慎査询。接着,用户输入应调用的应用程序的应用程序ID,借此还选择对应于应用程序的通信管道。接着,通过对应的通信管道,在通过命令中将用户命令从用户转发给应用程序ID规定的应用程序(箭头1128)。调用的应用程序请求借助所规定的身份对象(例如图42中的身份对象1112)中的公钥实施的签名。安全服务模块系统使用身份对象的公钥对种子请求进行签名,且通知应用程序签名完成(箭头1132)。接着,所调用的应用程序请求身份对象的证书链(箭头1134)。作为响应,安全服务模块系统提供由存取控制记录1103控制的身份对象的证书链(箭头1136)。接着,所调用的应用程序通过通信管道将经签名的种子请求及身份对象的证书链提供到安全服务模块系统,安全服务模块系统将经签名的种子请求及身份对象的证书链转发给主机(箭头1138)。通过通信管道发送经签名的种子请求及身份对象的证书链的是通过建立在图40A的安全应用程序管理程序模块1008与安全服务模块核心1004之间的回调功能实施的,其中下文中将详细说明回调功能。接着,将主机接收的经签名种子请求及身份对象证书链发送给图41中所示的验证服务器1052。卡提供的证书链证实经签名的种子请求源自可信权标,使得验证服务器1052愿意给卡提供秘密种子。因此,验证服务器1052将以身份对象的公钥加密的种子连同用户存取控制记录信息一起发送给主机。用户信息指示用户存取待产生的一次性口令的权利受制于N个用户存取控制记录中的哪一者。主机通过供应应用程序ID来调用特征设定扩展1102中的一次性口令应用程序,借此还选择对应于应用程序的通信管道,且将用户存取控制记录信息转发到安全服务模块系统(箭头1140)。接着,通过通信管道将经加密的种子及用户存取控制记录信息转发给选定的应用程序(箭头1142)。所调用的应用程序将使用身份对象的私钥解密种子的请求发送给安全服务模块系统(箭头1144)。安全服务模块系统解密种子且给应用程序发送解密已经完成的通知(箭头1146)。接着,所调用的应用程序请求创建安全数据对象及在安全数据对象中存储种子。所调用的应用程序还请求将安全数据对象与用于产生一次性口令的一次性口令应用程序(其可以是与进行请求的应用程序相同的应用程序)的ID相关联(箭头1148)。安全服务模块系统创建安全数据对象1114中的一者,及将种子存储在安全数据对象内部,且使安全数据对象与一次性口令应用程序的ID相关联,并向应用程序发送何时完成的通知(箭头1150)。接着,应用程序请求安全服务模块系统基于主机供应的用户信息将内部存取控制记录1103用于存取安全数据对象1114的存取权委派给适当的用户存取控制记录(箭头1152)。在完成委派之后,安全服务模块系统通知应用程序(箭头1154)。接着,应用程序通过回调功能经由通信管道将安全数据对象的名称(槽ID)发送给安全服务模块系统(箭头1156)。接着,安全服务模块系统将安全数据对象的名称转发给主机(箭头U58)。接着,主机将安全数据对象的名称绑定到用户存取控制记录,使得用户现在可存取安全数据对象。现在将参考图44中的协议图描述一次性口令产生的过程。为获得一次性口令,用户将登录其具有存取权的用户存取控制记录(箭头1172)。假设验证成功,那么安全服务模块系统通知主机,且主机将"getSDO"(获得安全数据对象)命令发送给安全服务模块(箭头1174、1176)。如上所述,存储种子的安全数据对象已与用于产生一次性口令的应用程序相关联。因此,替代之前通过通信管道选择应用程序,一次性口令产生应用程序是借助通过命令存取的安全数据对象(箭头1176中)与一次性口令产生应用程序之间的关联性调用的(箭头1178)。接着,一次性口令产生应用程序请求安全服务模块系统从安全数据对象读取内容(即,种子)(箭头U80)。优选地,安全服务模块不知道安全数据对象的内容中所包含的信息,且将仅根据特征设定扩展的指示来处理安51全数据对象中的数据。如果种子被加密,那么此可涉及在根据特征设定扩展的命令进行读取之前解密种子。安全服务模块系统从安全数据对象读取种子,且将种子提供给一次性口令产生应用程序(箭头1182)。接着,一次性口令产生应用程序产生一次性口令且将其提供给安全服务模块系统(箭头1184)。接着,由安全服务模块将一次性口令转发给主机(箭头1186),而主机又将一次性口令转发给验证服务器1052,以完成双因素验证过程。回调功能通用回调功能建立在图40A的安全服务模块核心1004与安全应用程序管理程序模块1008之间。不同的装置内部应用程序及通信管道可寄存有此功能。因此,当调用装置内部应用程序时,应用程序可使用此回调功能以通过用于将主机命令传递到应用程序的相同通信管道,将处理后的数据传递到安全服务模块系统。数字版权管理系统实施例图45是图解说明数字版权管理系统的功能框图,数字版权管理系统采用通信管道1104'、具有到特征设定扩展应用程序1102'的链接1108'的内容加密密钥1114'及用于控制所述功能的控制结构1101'、1103'及U06',来实施数字版权管理功能。如将注意到,图45中的架构与图42的架构极为类似,安全数据结构现在包括许可证服务器存取控制记录1106'及重放存取控制记录11IO'(替代验证服务器存取控制记录及用户存取控制记录)以及内容加密密钥1114'(替代安全数据对象)除外。另外,未涉及身份对象,且因此图45中将其省略。可在许可证供应过程中创建内容加密密钥1114'。图46的协议解说明用于许可证供应及内容下载的过程,其中密钥提供于许可证对象中。如在一次性口令实施例中,期望获得许可证的用户将首先需要获得由N个存取控制记录1106'中的一者及N个存取控制记录1110'中的一者控制的存取权,使得可借助媒体播放器(例如媒体播放器软件应用程序)再现内容。如图46中所示,主机向许可证服务器存取控制记录1106'(箭头1202)进行验证。假设验证成功(箭头1204),那么许可证服务器许可证文件连同内容加密密钥(密钥ID及密钥值)提供给主机。主机还通过向卡上的安全服务模块系统供应应用程序ID,来选择待调用的应用程序。主机还发送播放器信息(例如,关于媒体播放器软件应用程序的信息)(箭头1206)。播放器信息将指示播放器的存取权受制于N个播放器存取控制记录1110'中的哪一者。安全服务模块系统通过对应于选定应用程序的通信管道将许可证文件及内容加密密钥转发给数字版权管理应用程序(箭头1208)。接着,所调用的应用程序请求安全服务模块系统将许可证文件写入到隐藏分区(箭头1210)。当已写入许可证文件时,安全服务模块系统通知应用程序(箭头1212)。接着,数字版权管理应用程序请求创建内容加密密钥对象1114',且将来自许可证文件的密钥值存储于所创建的内容加密密钥对象1114'中。数字版权管理应用程序还请求使内容加密密钥对象与数字版权管理应用程序的ID相关联,数字版权管理应用程序检查与所提供的密钥相关联的许可证(箭头1214)。安全服务模块系统完成这些任务,且因此通知应用程序(箭头1216)。接着,应用程序请求基于主机发送的播放器信息将对内容加密密钥1114'的读取存取权委派给播放器存取控制记录(播放器具有对存取播放器存取控制记录内容的许可)(箭头1218)。安全服务模块系统执行委派,且因此通知应用程序(箭头1220)。应用程序通过通信管道将己经完成存储许可证的消息发送给安全服务模块系统,且安全服务模块系统将此消息转发给许可证服务器(箭头1222及1224)。通过通信管道使用回调功能进行此动作。在接收到此通知时,那么许可证服务器将使用所提供内容加密密钥中的密钥值加密的内容文件提供给卡。经加密的内容由主机存储于公开的卡区域中。存储经加密的内容文件不涉及安全功能,从而此存储中不涉及安全服务模块系统。图47中图解说明重放操作。用户通过主机向适合的重放存取控制记录(g卩,在以上箭头1152及1154中已委派给读取权的重放存取控制记录)进行验证(箭头1242)。假设验证成功(箭头1244),那么用户发送请求以读取与密钥ID相关联的内容(箭头1246)。在接收到请求时,安全服务模块系统将发现数字版权管理应用程序ID与正被存取的内容加密密钥对象相关联,且因此将导致调用经识别的数字版权管理应用程序(箭头1248)。数字版权管理应用程序请求安全服务模块系统读取与密钥ID相关联的数据(即,许可证)(箭头1250)。安全服务模块不知道请求其读取的数据中的信息,且仅处理来自特征设定扩展的请求,以执行数据读取过程。安全服务模块系统从隐藏分区读取数据(即,许可证),且将所述数据提供给数字版权管理应用程序(箭头1252)。接着,数字版权管理应用程序解译数据并检查数据中的许可证信息,以看看许可证是否有效。如果许可证仍然有效,那么数字版权管理应用程序将告知安全服务模块系统准许进行内容解密(箭头1254)。接着,安全服务模块系统使用内容加密密钥对象中的密钥值解密所请求的内容,且将经解密的内容供应给主机以用于重放(箭头1256)。如果许可证不再有效,那么将拒绝对内容存取的请求。尚若来自许可证服务器的许可证中未提供密钥,那么许可证供应及内容下载将多少不同于图46中所图解说明的方式。图48的协议图中图解说明了此不同方案。图46与48之间的相同步骤由相同编号识别。因此,主机及安全服务模块系统首先进行验证(箭头1202、1204)。许可证服务器将许可证文件及密钥ID(但无密钥值)提供给主机,且主机将所提供的许可证文件及密钥ID连同主机期望调用的数字版权管理应用程序的ID—起转发给安全服务模块系统。主机还发送播放器信息(箭头1206')。接着,安全服务模块系统通过对应于选定的应用程序的通信管道将许可证文件及密钥ID转发给选定的数字版权管理应用程序(箭头1208)。接着,数字版权管理应用程序请求将许可证文件写入到隐藏分区(箭头1210)。当已写入许可证文件时,安全服务模块系统通知数字版权管理应用程序(箭头1212)。接着,数字版权管理应用程序请求安全服务模块系统产生密钥值、创建内容加密密钥对象、将密钥值存储于所创建的内容加密密钥对象中且使内容加密密钥对象与数字版权管理应用程序的ID相关联(箭头1214')。在已依从请求后,安全服务模块系统给数字版权管理应用程序发送通知(箭头1216)。接着,数字版权管理应用程序将请求安全服务模块系统基于来自主机的播放器信息将对53内容加密密钥对象的读取存取权委派给重放存取控制记录(箭头1218)。其是完成时,安全服务模块系统因而通知数字版权管理应用程序(箭头1220)。接着,数字版权管理应用程序通知安全服务模块系统已经存储了许可证,其中通知是借助回调功能经由通信管道发送的(箭头1222)。安全服务模块系统将此通知转发给许可证服务器(箭头1224)。许可证服务器接着将与密钥ID相关联的内容文件发送给安全服务模块系统(箭头1226)。安全服务模块系统用通过密钥ID识别的密钥值加密内容,而不涉及任何应用程序。可使用图47的协议重放经如此加密且存储于卡上的内容。在以上一次性口令及数字版权管理实施例中,特征设定扩展U02及1102'可含有许多不同的一次性口令及数字版权管理应用程序以供主机装置选择。用户具有选择及调用所需的装置内部应用程序的机会。虽然如此,安全服务模块与特征设定扩展之间的整体关系保持相同,使得用户及数据提供者可使用一组标准协议,以与安全服务模块互动及调用特征设定扩展。用户及提供者不必须涉及许多不同的装置内部应用程序的特性,一些装置内部应用程序可以是专有的。此外,供应协议可多少不同于图46及48中的情况。许可证对象在图46的情况下含有密钥值,但在图48的情况下不含有密钥值。此差异要求与以上所图解说明略有不同的协议。然而,图47中的重放是相同的,而无论许可证是如何被供应的。因此,此差异将仅关于内容提供者及散布者,但通常与消费者无关,通常仅在重放阶段涉及消费者。因此,此架构给内容提供者及散布者提供定制协议的更大灵活性,同时维持易于消费者使用。明显地,从两组以上供应协议所供应的数据得到的信息仍可使用第二协议来存取。上述实施例所提供的另一优点是虽然外部实体(例如,用户)及装置内部应用程序可共用对由安全数据结构所控制的数据的使用,但用户仅能够存取由装置内部应用程序从存储数据得到的结果。因此,在一次性口令实施例中,用户通过主机装置仅能够获得一次性口令,但无法获得种子值。在数字版权管理实施例中,用户通过主机装置仅能够获得再现的内容,但不能存取许可证文件或密码密钥。此特征使消费者在不损害安全性的情况下得到便利。在一个数字版权管理实施例中,装置内部应用程序及主机均不能存取密码密钥;仅安全数据结构可进行此存取。在其它实施例中,除安全数据结构以外的实体也可存取密码密钥。密钥也可借助装置内部应用程序产生,且接着由安全数据结构控制。对装置内部应用程序及对信息(例如,一次性口令及再现的内容)的存取由相同安全数据结构控制。此减少控制系统的复杂度及成本。通过提供将存取权从内部存取控制记录(其控制对装置内部应用程序的存取)委派给存取控制记录(其控制主机对从调用装置内部应用程序所获得的信息的存取)的能力,此特征使得可实现上述特征及功能。应用程序特有撤销方案当调用装置内部应用程序时,还可修改安全数据结构的存取控制协议。举例来说,证书撤销协议可以是使用证书撤销列表的标准协议或专有协议。因此,通过调用特征设定扩展,标准证书撤销列表撤销协议可被特征设定扩展专有协议替换。除支持证书撤销列表撤销方案之外,安全存储应用程序还使驻留于装置中的特定内部应用程序能够通过装置内部应用程序与证书授权机构或任何其它撤销授权单位之间的私有通信信道来撤销主机。内部应用程序专有撤销方案受限于主机-应用程序的关系。当配置应用程序特有撤销方案时,安全存储应用程序系统将拒绝证书撤销列表(如果提供的话),否则将使用证书及专有应用程序数据(先前通过应用程序特有通信管道提供的),以决定是撤销还是不撤销给定的证书。如上所述,存取控制记录通过规定撤销值来规定采用三种撤销方案(无撤销方案、标准证书撤销列表方案及应用程序特有撤销方案)的哪一种撤销方案。当选择应用程序特有撤销方案选项时,存取控制记录还将规定一ID作为管理撤销方案的内部应用程序的ID,且证书撤销列表到期时间周期/应用程序—ID字段中的值将对应于管理撤销方案的内部应用程序的ID。当验证装置时,那么安全存储应用程序系统将支持遵守内部应用程序的专有方案。替代以另一组协议替换一组协议,装置内部应用程序的调用可对安全存储应用程序已行使的存取控制施加额外的存取条件。举例来说,可由特征设定扩展进一步详细检查存取内容加密密钥中的密钥值的权利。在安全存储应用程序系统确定存取控制记录具有对密钥值的存取权之后,将在准予存取之前咨询特征设定扩展。此特征允许内容所有者能够更灵活地控制对内容的存取。虽然上文已参考各种实施例描述了本发明,但将了解,可对本发明进行改变及修改,而此并不背离仅由所附申请专利范围及其等效范围界定的本发明的范围。权利要求1、一种非易失性存储器系统,其包含至少一个控制数据结构;控制器,其使用所述至少一个控制数据结构来控制所述存储器装置的操作;非易失性存储器,其存储包括包含私钥及公钥的密钥对、至少一个证书及所述至少一个控制数据结构的对象,所述至少一个控制数据结构控制对所述对象的存取,其中所述控制器使用所述私钥对数据或从所述数据得到的信号进行签名;及外壳,其包封所述非易失性存储器及控制器。2、如权利要求1所述的系统,所述至少一个控制数据结构规定控制对所述对象的存取的验证机制,使得仅经验证的实体可存取所述对象。3、如权利要求1所述的系统,所述外壳具有卡的形状。4、如权利要求l所述的系统,所述非易失性存储器包含快闪存储器。5、一种非易失性存储器系统,其包含至少一个控制数据结构;控制器,其使用所述至少一个控制数据结构来控制所述存储器装置的操作;非易失性存储器,其存储包括包含私钥及公钥的密钥对、至少一个证书、所述至少一个控制数据结构的对象,所述至少一个控制数据结构通过验证机制来控制对所述对象的存取,使得仅经验证的实体可存取所述对象,其中所述控制器使用所述验证机制来验证实体,并向经验证的实体供应用以证实所述公钥的所述至少一个证书,其中所述系统接收借助所述公钥加密的数据,所述控制器使用所述私钥解密所述借助所述公钥加密的数据;及外壳,其包封所述非易失性存储器及控制器。6、如权利要求5所述的系统,所述外壳具有卡的形状。7、如权利要求5所述的系统,所述非易失性存储器包含快闪存储器。8、一种用于借助非易失性存储器系统提供实体的身份证明的方法,其包含至少一个控制数据结构;及非易失性存储器,其存储包括所述实体所拥有的密钥对、识别所述实体的至少一个证书及所述至少一个控制数据结构的对象,所述方法包含将所述存储器系统以可拆卸方式连接到主机装置;借助所述至少一个控制数据结构向所述存储器系统验证所述主机装置;在已成功验证所述主机装置之后,使用所述私钥来加密来自所述主机装置的数据或从所述数据得到的信号;及将所述至少一个证书及所述经加密的数据或信号发送到所述主机装置。9、一种用于借助非易失性存储器系统保护用于实体的数据的方法,所述非易失性存储器系统包含至少一个控制数据结构;及非易失性存储器,其存储包括包含私钥及公钥的密钥对、至少一个证书及至少一个控制数据结构的对象,所述方法包含将所述存储器系统以可拆卸方式连接到主机装置;借助所述至少一个控制数据结构向所述存储器系统验证所述主机装置;在已成功验证所述主机装置之后,向所述主机装置供应用以证实所述公钥的所述至少一个证书;接收借助所述公钥所加密的数据;及使用所述私钥解密所述数据。全文摘要一种称为身份对象的对象包含公钥与私钥对,及由证书授权机构发布的至少一个证书,所述至少一个证书用于证实所述对中的所述公钥是真的。可通过使用所述私钥对提供给此对象的数据或从所述数据得到的信号进行签名而将所述对象用作识别证明。可将身份对象作为身份证明存储于非易失性存储器中。所述存储器由控制器控制。优选地,外壳包封所述存储器及所述控制器。所述存储器系统以可拆卸方式连接到主机装置。在已成功验证所述主机装置之后,使用所述对象的所述私钥加密来自所述主机装置的数据或从所述数据得到的信号,且将所述至少一个证书及所述经加密的数据或信号发送到所述主机装置。在实体已通过所述存储器系统的控制数据结构得到验证之后,向所述实体提供所述身份对象的所述公钥及用以证实所述公钥的所述至少一个证书。如果从所述实体接收到借助所述身份对象的所述公钥加密的经加密数据,那么所述存储器系统将能够使用所述身份对象中的所述私钥来解密所述经加密数据。文档编号G06F21/00GK101490687SQ200780025765公开日2009年7月22日申请日期2007年6月28日优先权日2006年7月7日发明者法布里斯·约刚-库仑,罗恩·巴尔齐莱,迈克尔·霍尔茨曼申请人:桑迪士克股份有限公司