具体实施方式
可以在各种主机***、包括个人计算机、笔记本计算机、个人数字助理(PDA)、各种数据通信设备、数码相机、蜂窝电话、便携音频播放器、车载音响***和类似类型的设施中利用非易失性存储器件。持续开发新的主机应用以利用非易失性存储器件的增加的存储容量。例如,各个主机应用可以读或写MP3音频文件、高分辨率图像文件、视频文件、文档、多媒体消息服务(MMS)对象附件、电子邮件消息、地址簿和日历。
同时可以在主机上执行多于一个应用,因此,两个或更多应用可能需要共享对非易失性存储器件的访问。甚至在同时正执行仅一个应用的***中,可能需要限制对存储在非易失性存储器件上的数据的访问。在一个例子中,应用可能仅从非易失性存储器件中读取其自己的数据。在另一例子中,两个用户可能执行相同的应用,但是一个用户的数据应该对执行相同应用的另一用户不可访问。在另一例子中,用户可能选择与另一用户共享数据。类似地,一个应用可以创建另一应用可以使用的数据。但是,在这些情况下,可能希望允许应用或用户读取由另一应用或用户创建的数据,但是禁止修改、写、重写或擦除由另一应用或用户创建的数据。
以上例子是当多个应用和用户共享一个非易失性存储器件内的存储空间时可能发生的各种交互的小样例。因此,希望提供具有可以更好地管理对非易失性存储器件内的存储的访问的控制特征的存储器***。
在一个实施例中,用户或应用可以读、写、修改或擦除非易失性存储器件内的定义的地址范围内的数据。每个地址范围或逻辑分区可以与特性集相关联。当接收到读、写、擦除或修改具有相关联的地址范围的数据的请求时,可以应用特性集。集合中的一些特性可以包括诸如对存储的数据的加密和解密、当进行访问时的功耗、当进行访问时的带宽消耗、以及诸如读、写、修改或擦除许可的访问许可的功能。可以定义一个或多个地址范围,每个具有其自己的特性集。以此方式,一个或多个实体可以在非易失性存储器件内创建定制的存储区。当接收到在任何定义的地址范围之外的访问请求时,可以在处理该请求时应用默认特性集。
在一个实施例中,地址范围可以与两个特性集相关联。当诸如用户、主机或应用的实体当前被验证并授权访问地址范围时,向请求应用第一特性集,并且如果当前没有实体被验证并授权访问地址范围,则应用第二不同的特性集。在应用第一特性集的情况下,请求访问地址范围的实体可以是当前被验证并授权访问该地址范围的实体之一。或者,请求访问的实体不是当前被验证并授权访问地址范围的实体之一。在此情况下,第一实体可以验证其本身并被授权访问地址范围。一旦完成,当第二实体试图访问该地址范围时,就可以应用第一特性集,尽管第二实体可能没有完成验证和授权处理。在此方面,第二实体依赖于第一实体先前完成的验证,并且当进行对该地址范围的访问时享有由第一特性集指定的属性。在一个实施例中,在处理请求时,请求访问的实体的身份对非易失性存储器件不可得或者不由非易失性存储器件使用。在此实现方式中,确定应用哪个特性集取决于被授权访问该地址范围的当前验证过的实体,并且与请求访问该地址范围的实体的身份无关。
这种特性集的使用给出了几个重要的安全性和性能优点。例如,与地址范围相关联的第一特性集可以允许读和写访问该地址范围,而第二特性集可以禁止读和写访问。可以利用用于对地址范围验证其本身并变为被授权访问该地址范围的证书和所需的过程来授信(entrust)一个应用。一旦完成了验证和授权处理,就将第一特性集应用于试图访问该地址范围的其他应用。但是,不需要用那些证书和验证过程来授信这些其他应用。可以改善***的安全性,因为需要知道证书和验证过程的实体的数量已经降低。此外,其他应用可以避免重复验证过程以便获得访问,这可以降低在访问地址范围时的等待时间。因此,在此例子中,一个应用可以担当看门者(gatekeeper)以使其他应用能够具有对地址范围的读和写访问。只要该应用当前被验证并授权访问该地址范围,其他应用就可以访问该地址范围而无需进行安全、耗时或麻烦的验证和授权处理。
图1是例示用于访问非易失性存储器件内的非易失性存储的示例***100的图。***100包括主机110和非易失性存储器件120。主机110和非易失性存储器件120可以以硬件、软件或硬件和软件的组合来实现。在一个实施例中,非易失性存储器件120是TrustedFlashTM卡,这是来自California,Milpitas的SanDisk公司的存储器件。主机110和非易失性存储器件120可以通过通信接口112通信。通信接口可以是通用串行总线(USB)接口、安全数字(SD)接口或能够在主机110和非易失性存储器件120之间交换命令和数据的任何通信接口或协议或协议的组合。例如,主机110可以通过通信接口112传输数据和命令来在非易失性存储器件120中存储数据。例如,主机110可以通过通信接口112传输从非易失性存储器件120读数据的命令,并且非易失性存储器件120可以通过该通信接口112向主机110返回数据。可以通过通信接口112传输的其他文件操作包括打开、关闭、创建、扩展和擦除文件。
主机110可以包括可以存储或访问非易失性存储器件120中的数据的一个或多个应用。在另一实施例中,一个或多个用户可以使用一个或多个应用存储或访问非易失性存储器件120中的数据。此外,运行在非易失性存储器件120内的处理器160上的应用可以存储或访问其中的数据。从非易失性存储器件120的观点来看,这些访问尝试中的一些或全部可能看起来像来自于两个或更多分离的实体。
非易失性存储器件120可以包括非易失性存储介质130、控制器140和CPU或处理器160。非易失性存储介质130可以存储数据,比如通过通信接口112从主机110接收的数据,从处理器160接收的数据,或者在制造过程期间被编程或写到非易失性存储器件120的数据。非易失性存储介质130可以是闪存、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、硬盘、光盘或能够存储信息并在不施加电源时保留该信息的任何其他类型的存储器。
控制器140包括访问处理逻辑块142、验证逻辑块144、授权逻辑块146、一个或多个访问控制记录(ACR)148、特性实施逻辑块150和逻辑分区表152。控制器140和所有其组件可以以硬件、比如适合于实现如下所述的功能的电路、软件或硬件和软件的组合来实现。在一个实施例中,控制器140被实现为在非易失性存储器件120内的CPU或处理器、比如处理器160上执行的软件或固件。
控制器140通过通信接口112从主机110接收请求。接收的请求可以包括读、写、擦除或修改在非易失性存储介质130中的数据的请求。接收的请求可以包括地址,或者可以基于先前接收的请求来推断或计算该地址。在一个实施例中,地址是逻辑块地址(LBA),其可以由控制器140重映射(remap)到非易失性存储介质130中的物理存储位置。访问处理逻辑块142确定该请求的地址是否在非易失性存储介质130的一个或多个地址范围或逻辑分区内。可以通过特性实施逻辑块150的辅助来进行该确定,该特性实施逻辑块150可以查看逻辑分区表152中的项目以确定该请求的地址是否在该表中的任何逻辑分区的地址范围内。如果不在,则从特性实施逻辑块150取得默认特性,并将其返回到访问处理逻辑块142。访问处理逻辑块142然后在处理对非易失性存储介质130的访问请求时应用该默认特性或特性集。
如果该请求的地址在逻辑分区表152中的任何逻辑分区的地址范围内,则确定是否已经验证了任何实体,如果是,则确定验证过的实体是否被授权访问所请求的该地址范围或逻辑分区。在一个实施例中,访问处理逻辑块142可以从验证逻辑块144取得验证过的实体的列表。该列表可以指示已经通过验证逻辑块144成功完成了验证处理、比如提供了密码、完成了询问-响应算法、或适合于检验试图访问非易失性存储130的实体的身份的任何其他过程的实体。验证过的实体可以通过完成验证处理来“登录”到***。类似地,验证过的实体可以通过向验证逻辑144指示不再需要该访问来“退出”***。因此,在另一实施例中,验证过的实体的列表可以包括当前验证过的实体,换句话说是已经“登录”并且还未“退出”的实体。在一个实施例中,当处理访问请求时,可以参考该列表来确定“登录的”验证过的实体在访问请求正被处理时是否被授权访问该逻辑分区。
由授权逻辑块146查看与每个验证过的实体或当前被验证的实体对应的访问控制记录148以确定该验证过的实体是否被授权访问与对非易失性存储130的访问请求对应的地址范围或逻辑分区。如果是,则由特性实施逻辑块150取得第一特性或特性集,并将其返回到访问处理逻辑块142。如果否,则由特性实施逻辑块150取得第二特性或特性集,并将其返回到访问处理逻辑块142。访问处理逻辑块142接收该特性或特性集并当处理对非易失性存储介质130的访问请求时应用它。在一个实施例中,第一特性和第二特性被存储在逻辑分区表152中。
控制器140还可以从实体接收创建、更新和删除逻辑分区及其相关的特性或特性集的请求。访问处理逻辑块142可以借助于验证逻辑块144和访问控制记录148来确定实体是否被验证。如果实体被验证,则由授权逻辑块148取得与验证过的实体对应的访问控制记录148以确定该验证过的实体是否被授权创建新的逻辑分区、或更新/删除现有的逻辑分区。然后由访问处理逻辑块142根据从访问控制记录148取得的授权来处理该请求(包括允许或拒绝该请求)。
控制器140还可以从实体接收添加、删除或更新一个或多个访问控制记录(ACR)148的请求。访问处理逻辑142可以借助于验证逻辑块144和访问控制记录148来确定实体是否被验证。然后由访问处理逻辑块142根据授权逻辑146从访问控制记录148取得的授权来处理该请求。
提供以下描述和附图,***100的实施例的操作的进一步的细节将变得明显。
在一个实施例中,非易失性存储器件120中的安全存储应用(SSA)提供了对在非易失性存储器件120中存储的数据的数据安全性、完整性和访问控制。该数据可以包括另外将被普通地(plainly)(没有加密或访问控制地)存储在某种海量存储器件上的文件。SSA***位于存储***顶上并为存储在非易失性存储器130中的文件和数据添加了安全层。SSA可以在控制器140和/或处理器160内以硬件、软件或硬件和软件的组合来实现。
在可以利用逻辑分区的示例架构的背景下可以更好地理解逻辑分区的操作。在一个实施例中,非易失性存储介质130是被划分成独立的物理分区的NAND快闪芯片,尽管在替换实施例中也可以利用其他类型的非易失性存储。这些物理分区是逻辑地址的连续线(thread),其中开始和结束地址定义了其边界。在一个实施例中,每个物理分区具有分区名。在此实施例中,物理分区名和逻辑块地址是由访问非易失性存储介质130中的物理存储位置的命令使用的寻址机制。非易失性存储器件120可以管理分区名和逻辑块地址到非易失性存储介质130内的物理存储位置的映射。使用某些SSA命令,主机110可以改变具体物理分区的访问属性和尺寸。但是,所有物理分区的尺寸的总和保持恒定。
物理分区可以是公共物理分区或者私有物理分区。公共物理分区可以由可以访问非易失性存储器件120的非易失性存储介质130的任意实体来检测。换句话说,公共物理分区是不用先前验证而可访问的。另一方面,仅验证过的实体可以访问并知道私有或隐藏物理分区。即使可以检测私有或隐藏物理分区,如需要也可以通过将限制与在边界内的地址相关联的硬件和/或软件(比如控制器140)对访问私有或隐藏物理分区加以这种限制。
SSA通过物理分区的名称和/或由SSA管理的逻辑地址边界完全可识别这些物理分区。SSA***使用私有物理分区来物理地保护数据不用于未授权的主机应用。对于主机110,物理分区是定义要在其中存储数据文件的专有空间的机制。如上所述,这些物理分区可以是公共的,在此情况下在具有对存储器件的访问的任何一个都可以看到并知道分区存在于器件上,或者这些物理分区可以是私有或隐藏的,在此情况下仅所选的主机应用具有对其的访问并知道其存在于存储器件中。可以在公共物理分区或私有物理分区内定义一个或多个逻辑分区或地址范围。逻辑分区可以允许主机110更精细地定义与非易失性存储器件120的非易失性存储介质130中的存储地址的接连的范围相关联的安全性、访问和性能特性。
图2是例示将非易失性存储介质、例如图1中的非易失性存储介质130示例地划分成物理和逻辑分区的图。非易失性存储介质130可以被划分成多个物理分区202、204、206、208。在图2所示的实施例中,示出了N个物理分区,但是任意数量的物理分区是可能的。物理分区可以是公共物理分区或私有物理分区。
诸如P1分区204、P2分区206或P(N-1)分区208的私有物理分区隐藏对其内的文件的访问。通过防止主机110访问私有物理分区,非易失性存储器件120保护物理分区内部的数据文件。但是,这种保护通过对存储在物理分区内的逻辑地址处的数据的访问加以限制来吞并(engulf)存在于私有物理分区中的所有文件。换句话说,将这些限制与整个私有物理分区相关联。具有对该私有物理分区的访问的所有应用、用户或主机将具有对该私有物理分区内的所有文件的无限制的访问。验证过的实体如果被授权则可以访问私有物理分区。
相反,诸如P0分区202的公共分区通常可以由任意实体访问而不用验证或授权。因此,公共分区可以是标准主机读/写命令可访问的,或者通过验证过的实体经由SSA***可获得的专用读/写命令可访问的。使用SSA命令访问文件通过加密来允许基于文件的访问控制的另外的选择,如上所述。具体地,可以利用SSA命令来加密文件和向公共分区写文件,并读和解密存储在公共分区中的文件。
为了在物理分区内将不同的文件或文件组相互隔离,使用加密密钥和密钥标记(reference)或密钥ID提供文件级安全性。用于加密在不同存储器地址处的数据的具体密钥值的密钥标记或密钥ID可以被类比为在包含加密的数据或文件的私有物理分区内的容器或域。即使应用、用户或主机具有对包含用密钥加密的文件的私有物理分区的访问,该文件也不能被解密,除非该应用、用户或主机具有对该密钥的访问。没有对该密钥的访问,该应用、用户或主机可以重写或破坏加密的文件,但是可能不能解密该加密的文件。因此,可以利用多个密钥来加密私有物理分区内的多个相应文件,因此保护文件数据不用于具有对私有物理分区的访问但是不具有对所需的一个解密密钥或多个密钥的访问的应用、用户或主机。
在公共物理分区或私有物理分区内定义的逻辑分区还可以将物理分区内的不同文件或文件组相互隔离或相互区分。在一个实施例中,可以创建逻辑分区212以进一步提供对于在非易失性存储130的公共分区202的逻辑分区内存储的数据的数据安全性、完整性和访问控制。具体地,当请求在定义了在公共分区202内的逻辑分区212的地址的范围内的访问时,控制器130在处理该访问时可以应用第一特性集或第二特性集,其中第一和第二特性集可以不同于默认特性集。可以在非易失性存储介质130内定义多个逻辑分区212、214、216。可以在单个物理分区206内定义两个或更多逻辑分区214、216。此外,可以在私有物理分区206内定义逻辑分区216,比如私有物理分区216。关于在非易失性存储器件120中定义的逻辑分区的信息可以存储在逻辑分区表152中。
当实体请求访问公共分区202或不在定义的逻辑分区212、214、216之一内的私有分区204、206、208的区域时,控制器140可以响应于该访问请求而应用默认特性集。可以应用默认特性来控制诸如加密、功耗、带宽消耗和访问许可的功能。
因此,示例的非易失性存储器件120可以使用在此公开的保护方案的任意组合来控制对存储在非易失性存储介质130中的数据的访问。主机110可以选择利用通过将文件存储在仅对验证过的实体可访问的私有物理分区中而进行的物理保护。主机110可以将文件存储在物理分区内定义的逻辑分区内,其中当访问存储在逻辑分区内的文件时,应用加密、功耗、带宽消耗和访问许可。可以通过用仅一个或多个验证过的实体可访问的密钥来加密文件,而有效地禁止对存储在非易失性存储介质130内任意处的各个文件的访问。这些保护方案的任意组合可以用于管理对存储在非易失性存储器件120中的数据的访问。以下将进一步详细讨论每个内容保护方案的细节。
如上所述,关于在非易失性存储器件120中定义的逻辑分区的信息可以存储在逻辑分区表152中。图3是例示示例的逻辑分区表152、其中的项目以及在对非易失性存储器件120的访问期间应用各个特性的编码的图。在一个实施例中,逻辑分区表152包括M个项目,其中M等于逻辑分区的数量。在另一实施例中,逻辑分区表还包含另外的项目来存储被应用于对在任意的定义的逻辑分区之外的地址的访问请求的默认特性集。
逻辑分区表152中的每个项目对应于非易失性存储介质130内的逻辑分区,如图2所示。例如,图2中的逻辑分区216具有在逻辑分区表152中的相应逻辑分区表项目302。逻辑分区表152中的项目、诸如逻辑分区表项目302包含诸如逻辑分区名或标识符、其中定义了逻辑分区的源物理分区的标识符以及逻辑分区的开始和结束逻辑块地址(LBA)的信息。另外,逻辑分区表项目302包含两个特性集312和314。在图3所示的例子中,两个特性集312和314的每个可以指定访问属性特性、加密属性特性、性能属性特性和功耗特性。第一特性集312可以从该表取得并用于在实体当前被验证并被授权访问逻辑分区216时处理逻辑分区216内的访问请求。第二特性集314可以从该表取得并用于在没有实体被验证并被授权访问逻辑分区216时处理在逻辑分区216内的访问请求。
在广大类别的访问属性特性、加密属性特性、性能属性特性和功耗特性内,许多特性设置是可能的。例如,如表320中所示,访问属性特性可以包括对逻辑分区内的数据的禁止写访问、禁止读访问或禁止擦除。在另一实施例中,访问属性特性可以禁止或允许使用标准主机读/写/擦除命令来访问逻辑分区,比如公共物理分区202中的逻辑分区212。如示例的表330中所示,加密属性特性值可能需要在向逻辑分区写数据或从逻辑分区读数据时利用所选的加密算法。
表340示范了示例的性能属性值。在一个实施例中,对高、正常或低性能的选择可以允许应用该特性的控制器140使较高性能请求优先、中断其他非易失性存储访问或采取其他动作来改进访问请求的等待时间或数据带宽。类似地,当控制器140应用低性能特性时,控制器140可以允许其他处理或访问优先于所请求的访问。其他性能编码方案也是可能的。在一个实施例中,性能属性特性值可以指示当处理对具体逻辑分区的请求时控制器140应用的数据带宽量或等待时间量特性。
如表350中所示,示例的功耗特性可以指定高、正常或低功耗值。在一个实施例中,控制器140可以通过禁用或减慢非易失性存储器件120内的至少一些时钟树以便降低在处理对具体逻辑分区的请求时的功耗,来应用低功率特性。其他功耗特性可以被编码在逻辑分区表项目302中并由控制器140应用。
在此所述的特性类别和编码是示例的并且不意图限制。可以控制、限定或施加对与访问非易失性存储有关的许可、加密、性能、功耗或任何其他属性的要求或限制的任何特性可以被编码在一个特性中并由控制器140响应于访问请求而应用。
通过使第一特性集312和第二特性集314与逻辑分区相关联,能够为逻辑分区创建几个有用的数据安全性、完整性和访问控制配置。例如,第一特性集内的访问属性特性可能允许读和写访问,而第二特性集内的另一访问属性特性可能允许读访问并不允许写访问。因此,当实体当前被验证并被授权访问逻辑分区时,可以允许对该逻辑分区的读和写访问。当没有实体当前被验证并被授权访问逻辑分区时,可以从该逻辑分区读,但不可以向其写。在另一例子中,当实体当前被验证并被授权访问该逻辑分区时,可以将高性能访问特性应用于访问分区的请求。当实体当前未被验证和授权访问该逻辑分区时,可以应用低性能访问特性。对于数据安全性、完整性和访问控制配置的许多其他有用的组合是可能的。
如上所述,为了确定响应于对逻辑分区的访问请求而应用来自第一特性集312还是第二特性集314的特性,控制器140确定当前验证过的实体是否被授权访问该逻辑分区。创建、更新或删除逻辑分区需要通过访问控制记录(ACR)登录到SSA***中,以允许当该逻辑分区被访问时应用第一特性集。调用创建密钥和物理分区以及从物理分区写和读数据或者使用这些密钥的能力的实体也需要通过ACR登录到SSA***中。
SSA***中的ACR的特权被称为动作。每个ACR可以具有对进行以下类别的动作的授权:创建逻辑分区、物理分区以及密钥/密钥ID、访问物理分区和密钥、当访问逻辑分区时使能应用第一特性集以及创建/更新其他ACR。按称为ACR组或AGP的组来管理ACR。一旦ACR已经成功被验证,SSA***就打开会话,通过该会话,可以执行ACR的任意动作。
图4是例示访问控制组(AGP)内的示例访问控制记录(ACR)、包括验证和授权信息的图。ACR是到SSA***的各个“登录”点。ACR保持该“登录”或验证证书以及验证方法。还存在于ACR中的是许可控制记录(PCR),SSA***内的许可或授权,在其之中的是读和写特权。这在图4中例示,图4例示了相同AGP中的N个ACR。因为ACR在相同的AGP内,N个ACR中的至少一些可以共享对相同密钥的访问。因此,ACR#1和ACR#N共享对具有密钥ID“密钥3”的密钥的访问,其中ACR#1和ACR#N是ACR ID,“密钥3”是用于加密与“密钥3”相关联的数据的密钥的密钥ID。相同的密钥也可以用于加密和/或解密多个文件或多个数据集。
为了登录到ACR中或者变得对ACR被验证,实体需要指定ACR ID,以便SSA将设置正确的“登录”或验证算法,并当已经满足所有“登录”或验证要求时选择正确的PCR。当创建ACR时,ACR ID被提供给SSA***。SSA***支持在***上的几种类型的“登录”,其中验证算法和实体证书可以变化,作为一旦实体成功登录或被验证时实体在***中的特权或授权。图4再次例示不同的“登录”算法和证书。ACR#1需要密码“登录”算法和作为证书的密码,而ACR#2需要PKI(公钥基础结构)“登录”算法和作为证书的公钥。因此,为了登录或被验证,实体将需要给出有效的ACR ID和证书以及完成正确的验证或登录算法。验证算法指定将由实体使用哪种“登录”过程以及需要哪种证书来证明用户的身份。SSA***支持几个标准的“登录”算法,范围从无过程(以及无证书)和基于密码的过程到基于对称或非对称加密的双向验证协议。
实体的证书对应于“登录”算法并且由SSA使用来检验和验证实体。证书的例子可以是用于密码验证的密码/PIN号、用于AES验证的AES密钥等等。证书的类型/格式(即PIN、对称密钥等)是预定的并且源自验证模式;它们在ACR被创建时被提供给SSA***。在此实施例中,除了基于PKI的验证,SSA***不具有在定义、分布和管理这些证书方面的部分,其中在该基于PKI的验证中,存储器件120可以用于产生RSA密钥对并且可以输出公钥用于证书生成。
ACR可以具有阻挡计数器(blocking counter),当实体与***的ACR验证处理不成功时,该阻挡计数器递增。当达到不成功验证的某个最大数时,ACR可以被SSA***阻挡,并且对该ACR的进一步的验证尝试将不会成功。
一旦实体登录到SSA***的ACR,其许可——其使用SSA命令的权限——被定义在与该ACR相关联的许可控制记录(PCR)中。换句话说,PCR指示成功验证过的实体被授权使用的SSA命令和密钥、以及实体被授权访问和创建的物理和逻辑分区以及实体被允许采取的ACR和AGP管理动作。
PCR的该分区列表部分包含实体在成功完成ACR阶段后被授权访问的分区的列表(使用如被提供给SSA***的其ID)。因此,图4中的ACR#1具有对物理分区#2而不是对物理分区#1的访问。如图4所示,对ACR#2被验证的实体被授权访问逻辑分区#0,并且对ACR#N被验证的实体被授权访问逻辑分区#X。尽管ACR的PCR可以建立例如对ACR#N被验证的实体被授权访问逻辑分区#X,但是可以利用与逻辑分区集相关联的特性集来确定许可的具体访问类型。回去参考图3,与逻辑分区#X对应的逻辑分区表项目可以包含作为第一特性集312和第二特性集314的一部分的访问属性。
例如,假设对于逻辑分区#X的第一特性集中的访问属性是0x4,因此允许在逻辑分区中的读/写/擦除访问。另外,假设对于逻辑分区#X的第二特性集中的访问属性是0x1,这意味着允许在逻辑分区中的只读访问。当接收到向逻辑分区#X内的可寻址存储器位置写的请求时,控制器140可以确定实体是否对ACR#N(以及具有授权访问逻辑分区#X的PCR的任何其他ACR)被验证。在一个实施例中,当确定在处理访问请求时应用哪个逻辑分区特性集时,控制器知道但不使用访问请求者的身份。在另一实施例中,控制器140不知道请求者的身份。在任一情况下,确定在处理请求时应用哪个逻辑分区特性集不需要请求者的身份。简要参考图3,ACR#N的PCR授权访问逻辑分区#X。因此,如果任何实体在请求正被处理时对于ACR#N被验证,则在处理该请求时将应用来自与逻辑分区#X相关联的第一特性集的特性,并且写请求将被准予。如果在请求正被控制器140处理时没有实体对于ACR#N(或者具有授权访问逻辑分区#X的PCR的任何其他ACR)被验证,则将应用与逻辑分区#X集相关联的第二特性集,并且写请求将被拒绝。
PCR的密钥ID部分包含与当已通过实体的“登录”处理而满足ACR策略时实体可以访问的(如由主机110提供给SSA***的)密钥ID的列表相关联的数据。指定的密钥ID与存在于出现在PCR中的分区中的一个或多个文件相关联。因为密钥ID不与存储器件中的逻辑地址相关联,因此当多于一个分区与具体ACR相关联时,文件可以在分区的任一个中。在PCR中指定的密钥ID每个可以具有不同的访问权限集。访问由密钥ID指向的数据可以被限制为只写或只读,或者可以指定全部写/读访问权限。
ACR的ACR属性管理部分(ACAM)描述了对该ACR验证过的实体被授权进行的管理动作。在SSA***中可能允许的动作包括创建、删除或更新AGP和ACR、创建或删除逻辑分区、物理分区或密钥、以及派发对密钥和分区的访问权限。实体应该优选地对ACR验证以便改变由该ACR定义的这些ACAM许可。ACR的删除、以及用改变后的ACAM许可重新创建ACR优选地简单地改变现有ACR的ACAM许可。可以优选地不移除对由ACR创建的密钥ID的访问许可。ACR可以具有创建其他ACR和AGP的能力。创建ACR也可以意味着向它们派发由其创建者处理的一些或所有ACAM许可。在此实施例中,具有创建ACR的许可意味着具有对以下动作的许可:
1.定义和编辑创建的ACR的(子辈(child)的)证书——验证方法优选地一旦通过创建ACR被设置就不能被编辑。可以在已经为该子辈定义的验证算法的界限内更改证书。
2.删除ACR。
3.对子辈ACR派发创建的许可(因此具有孙辈(grandchildren))。
父辈ACR优选地是具有删除其子辈ACR的许可的唯一ACR。当ACR删除其创建的较低级的ACR时,则由该较低级ACR衍生的所有ACR也自动被删除。当删除ACR时,其创建的所有密钥ID和分区被删除。存在ACR可以更新其自己的记录的两个例外。首先,在创建者ACR建立了对ACR的密码或PIN时,仅该ACR本身可以更新其自己的密码或PIN。其次,根ACR可以删除其本身以及其所存在于的AGP。
如上所述,ACR可以具有阻挡计数器,当实体与***的ACR验证处理不成功时,该阻挡计数器递增。当达到不成功验证的某个最大数时,ACR将被SSA***阻挡。也可以定义解阻挡(unblocking)许可以允许对已被阻挡的ACR的解阻挡。具有创建其他ACR的许可的ACR具有向其创建的ACR派发解阻挡许可的许可(尽管优选其不具有解阻挡ACR的许可)。父辈ACR将在子辈ACR中放置对父辈ACR的解阻挡者的参考。被阻挡的ACR可以通过该被阻挡的ACR所参考的另一ACR解阻挡。对解阻挡ACR的参考由其创建者设置。解阻挡ACR优选地处于与被阻挡的ACR的创建者相同的AGP中,并且具有“解阻挡”许可。***中没有其它ACR可以解阻挡该被阻挡的ACR。ACR可以被配置有阻挡计数器但没有解阻挡者ACR。在此情况下,如果此ACR被阻挡,其不能被解阻挡。
创建密钥的许可优选地包括派发使用这些密钥的访问许可的许可。对密钥的许可被划分成三类。
1.访问——这定义了对于密钥的访问许可,比如允许使用该密钥来分别解密或加密数据的读或写操作。
2.所有权——创建了密钥的ACR根据定义是其自己的所有者。可以将这种所有权从一个ACR派发给另一个(倘若它们处于相同的AGP中或者在子辈AGP中)。密钥的所有权提供了删除其以及向其派发许可的许可。
3.访问权限/派发——该许可使ACR能够派发由ACR保持的权限。
ACR可以派发对由该ACR创建的逻辑或物理分区以及该ACR具有访问许可的逻辑或物理分区的访问许可。通过向指定的ACR的PCR添加逻辑分区名、物理分区以及密钥ID来进行许可派发。可以由密钥ID或者通过声明访问许可是用于派发ACR的所有创建的密钥来派发密钥访问许可。
因此,回顾图4中的ACR的PCR部分,ACR#1准予对在与“密钥3”相关联的物理分区#2中的数据的只读许可,其中可以利用“密钥3”来解密从非易失性存储130读取的数据,并且ACR#2准予读和写在与“密钥5”相关联的物理分区#1中的数据的许可,并可以利用“密钥5”来根据所示出的PCR加密或解密数据。如上所述,当文件被写到某个隐藏分区、比如图2的P1、P2或P(N-1)分区204、206和208时,其对一般公用隐藏,并且仅可由验证过并被授权的实体通过SSA命令来访问。但是,一旦实体(不利与否)了解到该分区并得到对该分区的访问,则文件变得可得并容易被看到。为了进一步保护文件,SSA可以在隐藏分区中对其加密,其中用于访问用来解密该文件的密钥的证书优选地不同于用于访问分区的证书。由于文件不是SSA***所知的事实(因为文件完全被主机控制并管理),因此将内容加密密钥(CEK)与文件相关联是个问题。将文件链接到SSA已知的某处——密钥ID修正了此问题。
因此,当由SSA创建密钥时,主机将该密钥的密钥ID与使用由该SSA创建的密钥加密的数据相关联。密钥值和密钥ID提供了逻辑安全性。与给定的密钥ID相关联的所有数据无论其位置如何都用相同的CEK加密,在主机应用创建时唯一地提供该CEK的参考名或密钥ID。一旦实体(通过经ACR验证)获得对隐藏分区的访问并希望在该分区中读或写加密的文件,就需要具有对与该文件相关联的密钥ID的访问。当准予访问该密钥ID的密钥时,SSA加载与该密钥ID相关联的CEK中的密钥值,并在将数据发送到主机110之前对其解密,或者在将数据写到非易失性存储130之前对其加密。与密钥ID相关联的CEK中的密钥值是曾经由SSA***随机创建的并由其维持。SSA***之外的没有一个知道在CEK中的该密钥值或对在CEK中的该密钥值的访问。外部世界仅提供并使用参考或密钥ID,而不是CEK中的密钥值。密钥值完全由SSA管理并且仅可由其访问。
在另一例子中,在图4中,对ACR#2验证过的实体被授权访问逻辑分区#0,并且对ACR#N验证过的实体被授权访问逻辑分区#X。因此,如果实体当前对ACR#2验证过,则当接收到对逻辑分区#0的访问请求时,在处理访问请求时应用第一特性集312。在另一例子中,如果实体当前对ACR#N验证过,则当接收到对逻辑分区#X的访问请求时,在处理访问请求时应用第一特性集312。
不同的ACR可以共享***中的共同兴趣和特权,诸如利用其读和写的密钥以及被授权访问所在的逻辑分区。为了实现此,具有某些共同之处的ACR被分组在AGP或ACR组中。因此,ACR#1和ACR#N共享对具有密钥ID“密钥3”的密钥的访问。尽管图4中未示出,但是AGP内的ACR也可以共享对逻辑分区的访问。
ACR及其AGP可以进一步被集合在层级树中。图5是例示将访问控制记录和访问控制组示例地布置成树形层级结构的图。根AGP和其之内的ACR在树的顶部(例如图5中的根AGP 530)。在SSA***中可以存在几个AGP树,尽管它们完全彼此分离。AGP内的ACR可以向在与其所在的相同AGP内的所有ACR以及由该ACR创建的所有ACR派发对其密钥的访问许可。
因此,除了包含定义对密钥、逻辑分区、物理分区以及管理命令的授权的信息之外,ACR优选地还可以创建其他(子辈)ACR项目。这些ACR子辈将具有与其父辈/创建者相同或更少的许可,并且可以被给予对于父辈ACR创建的密钥和分区的许可。子辈ACR得到对它们创建的任何密钥的访问许可。这在图5中例示。因此,AGP 520中的所有ACR由ACR522创建,并且这样的ACR中的两个从ACR 522继承了访问与“密钥3”相关联的数据的(一个或多个)许可。
通过指定AGP和在该AGP内的ACR来进行登录到SSA***。每个AGP具有唯一的ID(参考名),其被用作对SSA数据库中的其项目的索引。在创建AGP时,AGP名被提供给SSA***。如果所提供的AGP名已经存在于***中,则SSA***将拒绝该创建操作。
AGP用于实行对访问和管理许可的派发的限制。尽管在图5中仅示出了一个树,但是多于一个树可以存在于SSA***内。图5中的树供应的功能之一是通过诸如主机应用或用户的实体实行访问。可以为每个实体定义分开的树。为此目的,对于每个树中的ACR的访问处理基本彼此独立(即基本没有串扰)可能是重要的,即使两者同时发生。这意味着,每个树中的另外的ACR和AGP的验证、许可以及创建不联系到以及不依赖于其他树的ACR和AGP的验证、许可以及创建。因此,当SSA***被用在非易失性存储器件120中时,访问两个分开的数据集的两个应用同时并且彼此独立。
AGP***的树结构是用于标识和隔离应用专用数据的主要工具。根AGP在应用SSA数据库树的尖端,并且遵循有些不同的行为规则。几个根AGP可以在SSA***中被配置。主机110中的新主机应用或者实体可以通过向非易失性存储器件120添加新的AGP/ACR的处理在非易失性存储器件120内定义其自己的安全数据空间或者安全性配置。
此实施例中的SSA***支持三个不同模式的根AGP创建(以及根AGP的所有ACR及其许可):
1.开放——不需要任何种类的验证的任何实体(比如用户或应用)或者通过***ACR(以下说明)验证过的实体可以创建新的根AGP。开放模式使能够在开放的信道上(即在发行代理的安全环境下)、或者通过经***ACR验证而建立的安全信道(即经无线电(Over The Air,OTA)和后期发行过程)进行所有数据传送的同时、无需任何安全性手段地创建根AGP而创建根AGP。如果未配置可选的***ACR,并且根ACR创建模式被设置为开放,则仅开放信道选项可用。
2.受控——仅经***ACR验证过的实体可以创建新的根AGP。如果未配置***ACR,SSA***不能被设置到此模式。
3.锁定——根AGP的创建被禁用,并且不能向***添加另外的根AGP。
两个SSA命令控制此特征(这些命令对任意用户/实体可用而不用验证):
1.方法配置命令——用于配置SSA***以使用三个根AGP创建模式的任意一个。仅允许以下模式改变:a)从开放到受控的改变,b)从受控到锁定的改变(即如果SSA***当前被配置来受控,则其仅可以改变到锁定)。
2.方法配置锁定命令——用于禁用方法配置命令并永久锁定当前选择的方法。
当创建根AGP时,其处于使能够(使用应用于根AGP的创建的相同访问限制)创建和配置其ACR的专门初始化模式。在根AGP配置处理的结束时,当实体明确将其切换到操作模式时,不再能够更新现有的ACR,也不再能够创建另外的ACR。
一旦根AGP被置于标准模式,其仅可以经被分配了删除该根AGP的许可的其ACR之一通过登录到***而被删除。这是除了专门初始化模式之外的根AGP的另一例外;与下一树级别中的AGP相反,其优选地是仅可能包含具有删除其自己的AGP的许可的ACR的AGP。在其他情况下,创建了AGP的ACR具有仅在AGP没有ACR项目时删除它的许可。根ACR和标准ACR之间的另一差别是其在可以仅具有创建和删除物理分区的许可的***中的ACR。
控制器140还可以利用专用ACR、称为***ACR来进行以下两个SSA操作:
1.在不利环境内的安全信道的保护下创建ACR/AGP树。
2.标识和验证主管SSA***的设备。
可能优选地在SSA中仅有一个***ACR,并且一旦被定义,其优选地就不可以改变。当创建***ACR时,不需要***验证;仅需要SSA命令。“创建***ACR”特征可以被禁用(类似于创建-根-AGP特征)。在创建***ACR之后,“创建***ACR”命令没有作用,因为优选地仅允许一个***ACR。
而在创建的处理中,***ACR不是可操作的。在完成后,优选地需要发出指示***ACR被创建且准备好使用的专用命令。在发出该命令之后,优选地不能更新或替换***ACR。
***ACR创建在SSA中的根ACR/AGP。其具有添加/改变根级别ACR/AGP直到主机对其满意并对其阻挡的时间的许可。通过SSA命令来阻挡根AGP主要截断了其与***ACR的联系并使得其防篡改。根AGP及其内的ACR不能被改变或编辑。禁用根AGP的创建具有永久效果并且不能逆转。***ACR用于创建不同的根AGP,比如图5中的根AGP 530。在创建它们之后的某个时间,可以从主机发送另一SSA命令以阻挡从该***ACR创建根AGP,由此禁用“创建根AGP”特征。这样做,使得已经创建的根AGP防篡改。根AGP可以用于在根AGP被阻挡之前或之后创建子辈AGP。
上述特征为内容拥有者提供在用内容配置安全产品方面的极大灵活性。安全产品需要被“发行”。发行是放置标识密钥的处理,通过该标识密钥,非易失性存储器件120可以标识主机110并反之亦然。标识非易失性存储器件120使得主机110能够决定其是否可以信任伴随其的秘密。另一方面,标识主机110使得器件120能够实施只有主机110被允许的安全性策略(准许并执行具体主机命令)。
被设计以服务于多个应用的产品将具有几个标识密钥。产品可以被“预发行”——在发货之前在制造期间存储密钥,或者“后发行”——在发货之后添加新密钥。对于后发行,存储器器件(例如存储卡)需要包含某种主要或器件级密钥,它们用于识别被允许向器件添加应用的实体。
上述特征使得产品能够被配置来使能/禁用后发行。另外,可以在发货之后安全地进行后发行配置。器件可以被购买作为除了上述主要或器件级密钥之外其上没有密钥的零售产品,然后其可以通过新的拥有者配置来使能进一步的后发行应用或者禁用它们。
因此,***ACR特征提供了完成上述目标的能力。没有***ACR的存储器器件将允许无限制和不受控制地添加应用。没有***ACR的存储器器件可以被配置来禁用***ACR创建,这意味着不能控制新应用的添加(除非创建新的根AGP的特征也被禁用)。具有***ACR的存储器器件将仅允许经由安全信道对应用的受控制的添加以使用***ACR证书通过验证过程而建立。具有***ACR的存储器器件可以被配置来在应用已被添加之前或之后禁用应用添加特征。
可以利用SSA***来处理访问、创建、修改和删除所配置的地址范围或逻辑分区的请求。图6示出用于处理对非易失性存储器件内的非易失性存储的访问尝试的示例步骤600。简要地参考图1,接收到访问非易失性存储器件120的非易失性存储介质130的请求。可以通过通信接口112从主机110接收该请求。返回图6,在步骤602,控制器140的访问处理逻辑块142确定接收的请求是否要访问(比如读、写或擦除)非易失性存储介质130内定义的逻辑分区中的数据。访问处理逻辑块142咨询特性实施逻辑块150以及在适当时咨询逻辑分区表152,以确定与访问请求相关联的地址是否在逻辑分区表152中定义的逻辑分区或地址范围内。如果不在,则控制前进到步骤610,访问处理逻辑块142取得在逻辑分区表152中或控制器142的其他地方存储的默认特性集,并在处理该访问请求时应用该默认特性或特性集。
如果与访问请求相关联的地址在逻辑分区表152中定义的逻辑分区或地址范围内,则接收的请求是对逻辑分区或地址范围的访问。然后控制从步骤602前进到步骤604。在步骤604,控制器140确定当前验证过的实体是否被授权访问所配置的LBA范围。访问处理逻辑块142可以咨询验证逻辑块144内的项目的表或列表来确定当前验证过的或“登录”到***的实体。然后访问处理逻辑块142可以利用验证逻辑块142来检查与每个验证过的实体相关联的ACR以确定是否任何验证过的实体具有访问所请求的逻辑分区或地址范围的授权。
如果至少一个实体当前被验证并被授权访问该分区,则控制前进到步骤610,访问处理逻辑块142使用特性实施逻辑块150来从逻辑分区表152取得与该逻辑分区相关联的第一特性集。访问处理逻辑块142在适当时结合特性实施逻辑块150在处理访问请求时应用该第一特性或特性集。如果当前没有实体被验证或者如果当前被验证的实体不具有访问在访问尝试中请求的逻辑分区的授权,则控制前进到步骤608,其中取得第二特性集并在处理访问请求时应用它。
在一个实施例中,在步骤604,被验证并被授权的实体必须是请求访问逻辑分区或地址范围的相同实体。在另一实施例中,被验证并被授权的实体可以是但不是必须是请求访问逻辑分区或地址范围的实体。在此实施例中,如果当前验证过的实体被授权访问该地址范围,则任何实体、包括当前验证过的实体可以访问该逻辑分区。在一个实现方式中,非易失性存储器件120的安全存储应用(SSA)可以确定请求访问该逻辑分区或地址范围的实体的身份,并且当选择在处理该访问请求时应用的特性时不利用此身份信息。在另一实现方式中,SSA不能确定请求访问该逻辑分区或地址范围的实体的身份。例如,请求访问的实体可能未提供标识信息作为访问请求的一部分。在此情况下,如果当前验证过的实体被授权访问该地址范围,则任何实体、无论实体的身份是否未知都可以访问该逻辑分区。
除了处理向逻辑分区或地址范围读或写数据的请求之外,控制器140还可以处理该请求以管理逻辑分区或所配置的地址范围。逻辑分区的管理可以包括创建逻辑分区、删除逻辑分区和修改与逻辑分区或地址范围相关联的一个或多个特性或特性集。
图7示出用于在非易失性存储器件120内的非易失性存储介质130中创建逻辑分区的示例步骤700。简要地参考图1,接收到在非易失性存储器件120的非易失性存储介质130内创建逻辑分区的请求。可以通过通信接口112从主机110接收该请求。返回到图7,在步骤702,控制器140从实体接收命令。控制前进到步骤704,其中控制器确定该请求是否要创建逻辑分区。如果不是,则控制器在步骤714中处理该命令,并且步骤700完成。如果该请求是创建逻辑分区,则控制前进到步骤706,其中控制器140确定是否从验证过的实体接收该请求。在一个实施例中,当实体对ACR验证过时,SSA***向该实体发出会话ID。在另一实施例中,在成功验证后,在新验证的实体和控制器140之间建立安全信道。在一个实施例中,通过在经通信接口112传输数据之前用信道密钥加密该数据,并在目的地处接收到其之后通过信道密钥解密该数据而恢复数据,来在主机110和非易失性存储器件120之间的通信接口112上建立安全信道。安全信道可以保护在创建逻辑分区时由实体指定的或者由非易失性存储器件120返回的敏感信息。验证过的实体可以将会话ID以及可能的ACR ID可能通过安全信道传输到控制器140,以便将其本身标识为验证过的实体。如果创建逻辑分区的请求不是来自验证过的实体,则步骤700终止,并且不创建逻辑分区。
如果实体当前被验证过,则控制从步骤706前进到步骤708。在步骤708,控制器140确定该验证过的实体是否具有创建逻辑分区的许可。访问处理逻辑块142利用验证逻辑块146来检查与验证过的实体相关联的ACR。例如,参考图4,ACR#2的PCR指示使用ACR#2验证过的实体被授权创建逻辑分区。相比较,ACR#1和ACR#N的PCR未授权验证过的实体创建逻辑分区。如果实体未被授权创建逻辑分区,则步骤700终止,并且不创建逻辑分区。
如果验证过的实体被授权,则控制前进到步骤710,其中控制器140检查要创建的逻辑分区的地址范围,并确定地址范围是否重叠或者是否在已经存在的逻辑分区的地址范围内。如果是,则该命令被拒绝,步骤700终止,并且不创建逻辑分区。如果不是,则控制前进到步骤712,并且使用在步骤702中传输的命令中接收的信息来创建逻辑分区。从该实体接收的命令可以包括第一和第二特性集中的特性、逻辑分区的地址范围以及创建分区所需的其他参数。创建逻辑分区还可以包括向逻辑分区表152添加实体。在创建了逻辑分区后,步骤700终止。
图8示出用于删除非易失性存储器件120内的非易失性存储介质130中的逻辑分区的示例步骤800。简要参考图1,接收到删除非易失性存储器件120的非易失性存储介质130内的逻辑分区的请求。可以通过通信接口112从主机110接收该请求。返回到图8,在步骤802,控制器140从实体接收命令。控制前进到步骤804,其中控制器140检查该命令以确定该请求是否要删除逻辑分区。如果不是,则控制器在步骤814中处理该命令,并且步骤800完成。如果该请求是删除逻辑分区,则控制前进到步骤806,其中控制器140确定是否从验证过的实体接收该请求。在一个实施例中,在成功验证后,通过在实体和控制器140之间建立的安全信道接收来自验证过的实体的请求。如果删除逻辑分区的请求不是来自验证过的实体,则步骤800终止,并且不删除逻辑分区。
如果实体当前被验证过,则控制从步骤806前进到步骤808。在步骤808,控制器140确定该验证过的实体是否具有删除逻辑分区的许可。访问处理逻辑块142利用验证逻辑块146来检查与验证过的实体相关联的ACR。在一个实施例中,ACR可以包含允许删除任何逻辑分区的授权。在另一实施例中,ACR可以包含允许删除特定逻辑分区或多个逻辑分区、比如由向该ACR或该ACR的父辈验证过的实体先前创建的逻辑分区的授权。在一个实现方式中,具有配置逻辑分区的许可的实体也具有删除该逻辑分区的许可。如果该实体未被授权删除该分区,则步骤800终止,并且不删除逻辑分区。
如果该验证过的实体被授权,则控制器确收来自实体的请求,并且控制前进到步骤810,其中控制器140检验要删除的指定的配置的地址范围或逻辑分区是否实际存在。如果其不存在,则控制器140已经接收到删除不存在的逻辑分区的命令,因此该命令被拒绝,并且步骤800终止。如果该配置的地址范围或逻辑分区存在,则控制前进到步骤812,并且删除逻辑分区。删除逻辑分区还可以包括从逻辑分区表152移除项目。在一个实施例中,删除逻辑分区还包括擦除该逻辑分区内的数据。在另一实施例中,在该地址范围或逻辑分区内的数据被留下不动。在逻辑分区被删除后,步骤800终止。
图9示出用于修改非易失性存储器件内的非易失性存储中的逻辑分区的示例步骤900。修改逻辑分区或配置的地址范围可以包括改变特性、删除特性、改变与配置的地址范围或分区相关联的最小和最大地址范围、或任何其他配置、维护或管理操作。简要参考图1,接收到修改非易失性存储器件120的非易失性存储介质130内的逻辑分区的请求。可以通过通信接口112从主机110接收该请求。返回到图9,在步骤902,控制器140从实体接收命令。控制前进到步骤904,其中控制器确定该请求是否要修改逻辑分区。如果不是,则控制器在步骤914中处理该命令,并且步骤900完成。如果该请求是修改逻辑分区,则控制前进到步骤906,其中控制器140确定是否是从验证过的实体接收该请求。在一个实施例中,在成功验证后,通过在实体和控制器140之间建立的安全信道接收来自验证过的实体的请求。如果修改逻辑分区的请求不是来自验证过的实体,则步骤900终止,并且不改变逻辑分区。
如果实体当前被验证过,则控制从步骤906前进到步骤908。在步骤908,控制器140确定该验证过的实体是否具有修改逻辑分区的许可。访问处理逻辑块142利用验证逻辑块146来检查与验证过的实体相关联的ACR。在一个实施例中,ACR可以包含允许任何逻辑分区被修改的授权。在另一实施例中,ACR可以包含允许修改特定逻辑分区或多个逻辑分区、比如由对该ACR或该ACR的父辈验证过的实体先前创建的逻辑分区的授权。如果该实体未被授权删除该分区,则步骤900终止,并且使得逻辑分区留下不改变。
如果该验证过的实体被授权,则控制器140确收来自实体的请求,并且控制前进到步骤910,其中控制器140检验要指定的配置的地址范围或逻辑分区是否实际存在。如果其不存在,则控制器已经接收到修改不存在的逻辑分区的命令,因此该命令被拒绝,并且步骤900终止。在步骤910,如果该请求是扩展分区的地址范围,则控制器140还检查扩展的逻辑分区是否将与另一现有地址范围或逻辑分区相重叠。如果是,则该命令被拒绝,并且步骤900终止。否则,控制前进到步骤912,并且根据在步骤902中从实体接收到的命令来修改逻辑分区。该请求可以标识地址范围或逻辑分区以及修改分区所需的其他参数,比如要改变或删除的来自第一和/或第二特性集的特性。逻辑分区的修改还可以包括更新逻辑分区表152中的项目。在修改了逻辑分区或配置的地址范围之后,步骤900终止。
因此,逻辑分区或配置的地址范围允许非易失性存储器件120的非易失性存储介质130内的数据安全性、完整性以及访问控制的增强控制。在此公开的各实施例中的一个或多个可以并入非易失性可移除介质卡中。非易失性可移除介质卡的一个例子是TrustedFlashTM卡,这是来自California,Milpitas的SanDisk公司的存储器件。TrustedFlashTM卡内的非易失性存储可以被划分成公共物理分区和私有物理分区。不利用与特性相关联的逻辑分区或地址范围,可以经过具有少量限制的标准主机命令,或者通过利用曾经对TrustedFlashTM器件的SSA***中的ACR而验证过的专用访问命令来实现对公共物理分区内的数据的访问。对私有物理分区的访问物理地被限制为对TrustedFlashTM器件的SSA***中定义的ACR而验证过的实体。可以通过向所选的验证过的实体授权对某些加密或解密密钥的访问并通过在将数据存储在私有物理分区或公共物理分区中之前利用那些密钥来加密数据,来逻辑地限制对私有物理分区或公共物理分区中的数据的访问。
通过定义应用于逻辑分区或配置的地址范围的特性集,可以实现数据安全性、完整性以及访问控制的增强控制。TrustedFlashTM器件可以包含公共物理分区或私有物理分区中的逻辑分区。逻辑分区与定义和/或调整对该器件的具体地址范围的访问请求的特性集相关联。除了控制访问许可之外,特性集可以被定义为还控制诸如加密、功耗和带宽消耗的功能。可以定义两个特性集。当在至少一个当前验证过的实体被授权访问逻辑分区时处理对该逻辑分区的访问请求时,应用第一特性集。在没有当前验证过的实体被授权访问逻辑分区时,第二特性集被应用于对该逻辑分区的访问。当进行对在任何逻辑分区之外的地址的访问尝试时,默认特性集被应用来处理该访问请求。相组合,特性集可以被组合以提供为在TrustedFlashTM器件的公共或私有物理分区内定义的各个逻辑分区定制的有用的功率、性能、加密和访问配置。
逻辑分区与通常未被分配给或不关联于物理分区的特性相关联,并且逻辑分区可以比它们所存在于的物理分区更灵活地被创建、改变和删除。因此,逻辑分区补充和增强了TrustedFlashTM器件的物理划分以及通过在存储之前使用文件数据的加密以及对密钥的有限访问而实现的逐文件保护。同时,可以将对逻辑分区访问、创建、删除和管理的授权容易地并入到访问控制组和访问控制记录的灵活的TrustedFlashTM层级树结构中。通过使用访问控制组和访问控制记录,被允许访问、创建、删除或维持逻辑分区的实体(应用、用户或主机)的进一步定制是可能的。
尽管已经关于各个***和方法实施例描述了本发明,但是将理解本发明有权在是所附权利要求的全部范围内进行保护。