CN103778075B - 安全管理单元、包括它的主机控制器接口及其操作方法 - Google Patents
安全管理单元、包括它的主机控制器接口及其操作方法 Download PDFInfo
- Publication number
- CN103778075B CN103778075B CN201310495239.6A CN201310495239A CN103778075B CN 103778075 B CN103778075 B CN 103778075B CN 201310495239 A CN201310495239 A CN 201310495239A CN 103778075 B CN103778075 B CN 103778075B
- Authority
- CN
- China
- Prior art keywords
- data
- security
- sector
- record
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Abstract
一种操作主机控制器接口的方法,包括:从主存储器接收包括扇区信息的缓冲区描述符;通过使用缓冲区描述符中所包括的源地址来取数据;使用扇区信息,选择安全策略表中所包括的多个记录其中之一;和,通过使用所选记录中所包括的安全策略,确定是否加密所取的数据。
Description
相关专利申请的交叉引用
要求2012年10月19日在韩国知识产权局递交的第10-2012-0116890号韩国专利申请的优先权,其主题通过引用被全部包含于此。
技术领域
本发明构思涉及主机控制器接口。更具体地,本发明构思涉及主机控制器接口中的安全管理单元,所述安全管理单元能够根据对应存储设备的区域来管理安全策略。本发明构思还涉及操作包括所述安全管理单元的主机控制器接口的方法,以及包括这种主机控制器接口的设备。
背景技术
数据安全是当代计算机系统内的存储设备的设计和操作中的重要考虑。有效的数据安全方法必须防止对被存储数据的未授权访问,无论这种访问企图读取、操纵、变更、篡改、伪造还是提取被存储的数据。有效的数据安全方法也必须防止外部代理程序(externalagent)阻止合法用户访问存储的数据。
在被存储的数据期间,主机控制器接口与对应的存储设备之间的数据总线(和由数据总线传递的相称的数据信号)经常被作为目标。结果,很多常规系统将对在主机控制器接口和存储设备之间传递的数据进行加密。为此目的,各种加密方法和/或加密模块可被结合主机控制器接口使用。只要数据安全策略被跨越存储设备的所有区域施加于所有被存储的数据,这种常规方法就相当有效。
即,当使用所谓的“安全处理器”来管理用于存储设备的特定数据安全策略时,在数据处理必须由“非安全处理器”执行时,遇到巨大的开销。实际上,在具有不同数据安全策略的数据之间切换的处理器降低了所构成计算机系统的总体性能。
发明内容
本发明构思的某些实施例提供了包括安全策略表的安全管理单元,所述安全策略表可被用来根据存储设备的特定区域而有区别地管理安全策略。使用这些安全管理单元易于使计算机系统内通常因安全策略上的改变而出现的计算开销最小化。本发明构思的某些实施例提供了一种包括这种类型的安全管理单元的主机控制器接口。本发明构思的某些实施例提供了操作包括这种类型的安全管理单元的主机控制器接口的方法,以及包括这种主机控制器接口的设备。
在一个实施例中,本发明构思提供了一种方法,包括:从主存储器接收包括扇区信息的缓冲区描述符;通过使用缓冲区描述符中所包括的源地址取数据;使用扇区信息从安全策略表选择记录;和,使用由所选记录定义的安全策略确定是否加密所取的数据。
在另一实施例中,本发明构思提供了一种安全管理单元,包括:存储在存储器中并包括第一记录和第二记录的安全策略表,第一记录和第二记录分别定义用于存储设备的第一区域和第二区域的第一安全策略和第二安全策略;和,扇区访问控制逻辑,被配置成响应于缓冲区描述符中所包括的扇区信息,在第一记录和第二记录之间选择,并提供指示根据第一安全策略还是第二安全策略来加密数据的第一控制信号。
在另一实施例中,本发明构思提供了一种主机控制器接口,包括:存储控制器,其使用缓冲区描述符中所包括的源地址从主存储器读取数据,并响应于缓冲区描述符中所包括的扇区信息提供扇区密钥;安全管理单元,其响应于扇区密钥,从存储在存储器中的安全策略表选择记录,并提供定义了与所选记录对应的安全策略的第一控制信号;和,数据保护器,其响应于第一控制信号确定是否对数据执行加密操作,其中,安全策略表包括多个记录,每一记录分别定义用于存储设备中的多个区域中的至少一个的对应安全策略。
在另一实施例中,本发明构思提供了一种计算机系统,包括:存储设备,其包括多个区域;中央处理单元(CPU),其在运行访问所述多个区域中的区域的应用程序时生成缓冲区描述符;主存储器,其存储缓冲区描述符和数据;和,主机控制器接口,其使用缓冲区描述符中所包括的源地址从主存储器读取数据,响应于扇区信息选择多个记录其中之一,并基于由所选记录定义的安全策略确定是否对数据执行加密操作,其中,多个记录中的每一个管理用于存储设备中的多个区域的每一个的不同安全策略。
附图说明
图1是根据本发明构思实施例的计算机系统的框图;
图2是根据本发明构思另一实施例的计算机系统的框图;
图3是示出可在图1和图2的计算机系统中使用的缓冲区描述符的一个例子的概念图;
图4是用于图1的存储设备的部分存储器映射的框图;
图5是示出可在图1和图2的计算机系统中使用的主机控制器接口的框图;
图6是示出可在图5的安全管理单元中使用的安全策略表的概念图;
图7是进一步示出图5的安全管理单元的框图;
图8是示出根据本发明构思实施例的用于直接存储器访问操作的初始化操作的操作图;
图9,包括图9A和图9B,是流程图,示出根据本发明构思的实施例的用于直接存储器访问操作的操作方法;
图10是示出可在图5的安全管理单元中使用的另一安全策略表的概念图;
图11是进一步示出如被图10的安全策略表修改的、图9的直接存储器访问操作的部分的部分流程图;
图12是当在本发明构思的实施例中使用嵌入式多媒体卡(eMMC)时可被存储在安全策略表中的信号的列表;
图13是可被包括在图5的安全管理单元中的又一安全策略表的概念图;
图14是示出可在图1和图2的计算机系统中使用的缓冲区描述符的另一例子的概念图;
图15、图16和图17是示出可在图1和图2的计算机系统中使用的主机控制器接口的其他例子的相应框图;和
图18是根据本发明构思另一实施例的计算机系统的框图。
具体实施方式
现在将参考附图更详细地描述本发明构思的实施例。但是,本发明构思可被以很多不同的形式具体实施,并且不应被理解为仅限于所示出的实施例。相反,提供这些实施例以使本公开将会透彻和完整,并且将向本领域技术人员全面地传达本发明构思的范围。贯穿上面描述和附图,相同的参考数字和标记代表相同或者类似的元素。
将会理解,当一元件被称为被“连接”或者“耦合”到另一元件时,其可以直接连接或者耦合到另一元件,或者,可能存在居间的元件。相反,当一元件被称为被“直接连接”或者“直接耦合”到另一元件时,不存在居间的元件。如这里所使用的,术语“和/或”包括相关联的被列出项目中的一个或更多个的任意和所有组合,并可以被缩写为“/”。
将会理解,尽管这里可能使用术语第一、第二等来描述各种元件,但是这些元件不应被这些术语限制。这些术语只被用来将一个元件与另一个加以区分。例如,第一信号可以被称为第二信号,并且类似地,第二信号可以被称为第一信号而不偏离本公开的教导。
这里使用的术语仅仅是为了描述特定实施例,并非旨在限制本发明构思。如这里所使用的,单数形式“一”、“一个”和“该”预期也包括复数形式,除非上下文清楚地另有指示。还将会理解,术语“包含”或“包括”在本说明书中被使用时,规定了存在所陈述的特征、区域、部分、步骤、操作、元件,和/或部件,但是不排除存在或者添加一个或更多个其他的特征、区域、部分、步骤、操作、元件、部件,和/或其组。
除非另外定义,否则这里使用的所有术语(包括技术和科学术语)具有和本发明所属技术领域的技术人员通常理解的相同的含义。还将会理解,例如在常用词典中定义的那些的术语应该被解释为具有与其在相关技术和/或本发明的上下文中的含义相符的含义,并且将不会以理想化或者过于形式化的意义解释,除非这里明确地如此定义。
这里使用术语“计算机系统”来宽泛地代表能够对要被存储在数据存储设备中的数据和/或从数据存储设备取回的数据执行某种形式的数据处理的数字平台。计算机系统将包括一般可以被称作“处理器”的逻辑电路。在本发明构思的某些实施例中,计算机系统的处理器可以被说成依据构成的操作系统(OS)“运行”一个或更多个应用程序。
和处理器运行应用程序相关或者被其指示的数据(例如,读/写数据)可以被存储在“主存储器”中。因此,存储在主存储器中的“数据”可以是定义应用程序内的命令的程序数据,和/或被处理器响应于命令生成或者操作的实际数据(例如,用户数据、有效载荷数据、计算数据,等等)。
如本领域技术人员所理解的那样,计算机系统可以相继地或者同时地(即,至少运行时间上重叠)运行多于一个应用程序。一般地,数据可在应用程序之间被共享,只是条件是所述数据拥有能够被每一应用程序一致地理解的“安全定义”。但是,和一个应用程序相关联的某些数据定义可能不被另一应用程序理解。例如,某些智能卡运行使用安全密钥的安全应用程序,所述安全密钥对执行验证、认证和/或数据解密是必不可少的。保护安全密钥和/或有关于安全密钥定义的相关联数据(此后共同或者单独地叫作“安全密钥要求数据”)是任何数据安全方法中的重要考虑。
图1是示出根据本发明构思实施例的计算机系统的框图。参考图1,计算机系统1000包含中央处理单元(CPU)1100、主存储器1200、主存储器控制器1300、主机控制器接口1400和数据存储设备1500。计算机系统1000可以是诸如移动电话或者膝上型计算机的移动设备、个人计算机、服务器计算机、可编程家用电器,或者诸如大型机的通用或者专用计算机系统。
CPU1100控制计算机系统1000的总体操作,并且在图1所示实施例中包括安全CPU1110和非安全CPU1120。安全CPU1110可用来运行计算机系统引导操作和某些认证过程。相反,不允许非安全CPU1120访问安全模块或者存储在“加密数据区域”中的数据。
例如,假设计算机系统1000是能够运行要求高等级数据安全性的应用程序(例如,银行应用程序或者证券经纪应用程序)的移动设备。这种类型的“高安全性应用程序”是要求数据认定或者认证的那一种,这样必须由安全CPU1110执行。但是,计算机系统1000可能也能够使用非安全CPU1120运行多个“低安全性应用程序”(例如电子书或者游戏应用程序)。
因此,当“当前应用程序”(即当前被CPU1100运行的应用程序)访问存储在存储设备1500中的数据时,CPU1100可以生成标识相关联的数据(例如读/写数据)被存储的位置的“缓冲区描述符”(buffer descriptor,BD),然后尽管每一生成的缓冲区描述符可以被存储在主存储器1200的特定缓冲区描述符(BD)区域1210中,但是把缓冲区描述符与数据一起存储在主存储器1200中。在这个上下文中,主存储器1200可以被理解为用来临时存储数据的数据存储介质(例如,系统存储器或者高速缓存存储器)。因此,主存储器1200可以用来根据文件系统形式存储数据,和/或把由CPU1100生成的缓冲区描述符存储在BD区域1210中。
和CPU1100协同,主存储器控制器1300可以用来控制主存储器1200。主存储器控制器1300可被配置成支持多个总线接口端口,藉此主存储器控制器1300可以被连接到安全CPU1110、非安全CPU1120和主机控制器接口1400。
主机控制器接口1400提供基于硬件的能够在主存储器1200和存储设备1500之间传递数据(例如,DATA和DATA’)的接口。在本发明构思的某些实施例中,主机控制器接口1400可以提供直接存储器访问(DMA)主控功能。具有DMA主控功能的主机控制器接口1400可用来生成由安全CPU1110建立的具有给定“安全定义”或者“安全等级”的“安全事务处理”。其也可以被用来生成由非安全CPU1120建立的不具有特定安全等级(或者具有相对较低的安全等级)的“非安全事务处理”。根据本发明构思的某些实施例,主机控制器接口1400和存储设备1500可以使用串行ATA(SATA)接口通信,并且扇区可被用作地址单元。
假设存储设备1500是能够长期(非易失)存储大量数据(例如软件、用户数据等)的数据存储介质。如图1中所示,存储设备1500可以包括被提供用于存储要求安全性的数据的加密区域1510和被提供用于存储一般数据或者不要求安全性的数据的非加密区域1520。只有生成和访问来自加密区域1510的要求安全性的数据的高安全性应用程序才可以访问加密区域1510。
图2是示出根据本发明构思某些实施例的计算机系统的框图。参考图2,计算机系统2000包含CPU2100、主存储器2200、主存储器控制器2300、主机控制器接口2400和存储设备2500。CPU2100、主存储器2200、主存储器控制器2300和主机控制器接口2400经由系统总线2600通信。
和图1的计算机系统1000相比,图2中的计算机系统2000中的存储器控制器2300被假设只支持单个总线接口端口。因此,在任意给定时间点,CPU2100可以经由系统总线2600电连接到存储器控制器2300或者主机控制器接口2400。
CPU2100可以工作于安全模式2110或者非安全模式2120。这些工作模式中的每一个可被根据正由CPU2100运行的当前应用程序来确定。当CPU2100响应于低安全性应用程序而工作于非安全模式2120时,其同时不可访问安全模块或者加密的存储器区域。
图2的主机控制器接口2400的结构和操作可以和图1的主机控制接口1400大致相似。
图3是示出可在本发明构思的实施例中使用的缓冲区描述符的一个可能数据结构的概念图。参考图1、图2和图3,缓冲区描述符10包括源地址11、目的地址12、数据长度13和到下一目的地的指针14。
源地址11指示存储源数据(即,要被处理的数据)的位置。目的地址12指示存储结果数据(即,随后处理后的数据)的位置。数据长度13指示要被传递的数据的大小,并且下一目的地地址14指示当前存储器访问操作之后的下一存储访问操作的位置。
在读操作期间,CPU1100/2100生成和被存储在存储设备1500/2500中的读数据(DATA’)相关联的缓冲区描述符10。这里,缓冲区描述符10的源地址11可以包括存储设备1500或2500的地址,并且目的地地址12可以包括主存储器1200或2200。
在写操作期间,CPU1100/2100生成和被临时存储在主存储器1200/2200中并将要编程到存储设备1500/2500的写数据(DATA)相关联的缓冲区描述符10。这里,缓冲区描述符10的源地址11可以是主存储器1200/2200的地址,而目的地地址12可以包括存储设备1500/2500的地址。
此后,将参考图5、图15、图16和图17更详细地描述某些主机控制器接口1400/2400的示范性结构和操作。
图4是示出用于图1的存储设备1500的部分存储器映射的一个可能例子的框图。存储设备1500可以被具体实施在磁性存储设备中,如硬盘驱动器(HDD)、诸如光盘(CD)的光学存储盘,或者诸如固态驱动器(SSD)的基于闪存的存储器、多媒体卡(MMC)、嵌入式MMC(eMMC)或者通用闪存存储器(universal flash storage,UFS)。
假设使用了HDD,信息可以被存储在高速旋转的磁盘上。使用一个或更多个读/写头,可以从磁盘读取数据,和/或将数据写到磁盘。和HDD相比,常规SSD执行相对高速的读操作,但是相对低速的写操作。
MMC是存储和移动各种数字设备的数据的可拆卸或可附接设备,所述数字设备诸如蜂窝电话、智能电话、移动国际互联网设备(mobile internet device,MID)、计算机,或者数码相机,并且由用于存储数据的存储空间和负责操作与控制的部分配置。
UFS是基于闪存的具有低功耗的存储设备。UFS可以被用作高速串行接口,同时具有如SSD的存储容量,内置用于改善随机访问功能的命令排队功能,并且内置串行接口的功率节省功能。
一般地,存储设备1500可以具有CHS(cylinder,head,and sector,柱、头和扇区)地址单元或者逻辑块地址(logical block address,LBA)。LBA被用来指定存储设备1500中的数据块的位置。LBA可以指定地址或者块(即,索引)。扇区和逻辑块可以是512字节的整数倍,如512字节或者1024字节。
参考图4,存储设备1500A包括多个区域31到34和38,每一个分别能够存储具有不同安全定义(或者安全策略)的数据。根据存储设备的类型,多个区域的每一个可以被划分为段单元、扇区单元或者分区单元。
根据针对当前应用程序规定的安全等级,在DMA操作期间可以确定具体的安全策略。因此,当前应用程序的安全策略确定例如是否可获得对特定区域的访问,存储在特定区域中的数据是否被加密,以及写操作是否可用。
因此,在所示的图4例子中,第一区域31只可以被具有特定安全策略的安全应用程序访问。因此,第一区域31只存储加密数据,并且对于存储在第一区域31中的加密数据,只有读操作被允许。第三区域33被类似地定义。
但是,第二区域32可以被非安全应用程序访问,只能存储纯文本(非加密)数据,并且读操作和写操作都被允许。
第四区域34可以被非安全应用程序访问,能够存储加密数据,并且只有读操作被允许,并且第八区域38被类似地定义。
图5是进一步示出可在图1的计算机系统中使用的主机控制器接口的一个可能例子的框图。参考图1和图5,主机控制器接口1400A包含存储控制器310、安全管理单元320、数据保护器330和事务处理类型寄存器340。
存储控制器310控制涉及存储在存储设备1500中的数据的数据访问操作。当存储在存储设备1500中的数据被按扇区标识时,通常理解的把扇区密钥分配给每一扇区的XTS-AES方法可以被用作加密存储在存储设备1500中的数据的一种方法。
在图5的所示例子中,存储控制器310从主存储器1200接收缓冲区描述符(BD)。然后,存储控制器310可以(例如)使用缓冲区描述符中所包括的源地址来标识存储在主存储器1200中的特定数据(DATA)。
此外,存储控制器310依据扇区描述符BD中所包括的扇区信息,把扇区密钥(SECTOR_KEY)提供给数据保护器330。扇区描述符BD中所包括的扇区信息可被存储控制器310用作生成对应扇区地址(SECTOR_ADD)的信息,所述扇区地址被传递到存储设备1500。这里,无论存储控制器310随后在数据处理操作期间如何使用扇区信息,可以从扇区信息唯一地生成一个扇区密钥。
在本发明构思的某些实施例中,安全管理单元320包括具有多个记录的安全策略表,每一记录管理用于存储设备1500的特定区域的安全策略。将参考图6更详细地描述安全策略表的一个可能例子。
因此,响应于由存储控制器310提供的给定扇区密钥(SECTOR_KEY),安全管理单元320可以选择安全策略表记录其中之一。安全管理单元320可以把加密/解密指示信号ED输出到数据保护器330,根据所选记录中所包括的安全策略确定是否对数据执行加密操作。此外,安全管理单元320可以输出访问指示信号IAE,根据所选记录所指示的安全策略确定是否允许访问操作(例如读/写操作)。即,根据访问指示信号IAE,由存储控制器310提供的读/写信号(R/W)被安全管理单元320中断。
响应于由安全管理单元320提供的加密/解密指示信号ED,数据保护器330可被用来对经由主机控制器接口1400A要被写到存储设备1500的写数据(DATA)和从存储设备1500获取的读数据(DATA’)执行加密/解密操作。例如,基于加密/解密指示信号ED,数据保护器330可以确定针对读/写数据执行加密操作、解密操作还是旁路操作。
当对写数据(DATA)执行加密操作时,数据保护器330可以使用由数据控制器310提供的扇区密钥(SECTOR_KEY)执行加密操作。
根据接收到的缓冲区描述符BD,事务处理类型寄存器340可被用来存储与当前应用程序相关联的安全等级信息。即,事务处理类型寄存器340可以存储状态信息,该状态信息指示在主机控制器接口1400A中执行的DMA操作是具有给定安全等级的安全事务处理类型还是非安全事务处理类型。根据每一事务处理类型的安全等级信号(S/NS)被传递到安全管理单元320。这里,假设安全管理单元320和数据保护器330的各自操作,以及存储在事务处理类型寄存器340中的信息只可以被安全CPU1110改变。
图6是示出可被包括在图5的安全管理单元中的安全策略表的一个可能例子的概念图。
参考图6,安全策略表322A包括多个记录,每一记录管理用于存储设备1500的一个或更多个区域(例如,扇区)的特定安全策略。
图6的安全策略表322A只包括八个记录41到44和48。记录41到44和48中的每一个把存储在基扇区地址寄存器中的扇区地址设置为起始地址,以便表达存储设备1500中所包括的区域的每一范围,并设置每一区域的大小。这里,和每一记录41到44和48对应的每一区域的大小(SIZE)可以被相同或者不同地设置。
在记录41到44和48中的每一个中,包括指示鉴于安全策略存储的数据是有效还是无效(VALID/INVALID)的信息。安全策略还可以指示对于存储设备1500的特定区域,读(R)和/或写(W)访问是否被允许。安全策略还可以指示在安全(S)或者非安全(NS)的基础上是否允许针对存储设备1500的特定区域的访问。最后,安全策略可以指示有关于写到区域或者从区域读取的数据是否可以执行加密(Enc)操作。
在图6的所示例子中,假设了存储在和记录41到44相关联的区域(扇区)中的数据有效。
从存储在基扇区地址寄存器1中的地址,第一区域具有A个扇区的大小。在第一区域中只可以执行读操作,第一区域只可以被具有安全等级的应用程序访问,并且加密数据可以被存储在第一区域中。
从存储在基扇区地址寄存器2中的地址,第二区域具有B个扇区的地址。在第二区域中,读操作和写操作都可以被执行,并且第二区域不仅可以被具有安全等级的应用程序访问,而且也可以被具有非安全等级的应用程序访问,并且非加密数据(NonEnc)可以被存储在第二区域中。
从存储在基扇区地址寄存器3中的地址,第三区域具有C个扇区的地址。在第三区域中,读操作和写操作都可以被执行,并且第三区域仅可以被具有安全等级的应用程序访问,并且加密数据可以被存储在第三区域中。
从存储在基扇区地址寄存器4中的地址,第四区域具有D个扇区的地址。在第四区域中,只可以执行读操作,并且第四区域不仅可以被具有安全等级的应用程序访问,而且也可以被具有非安全等级的应用程序访问,并且加密数据可以被存储在第四区域中。
和前述的相反,存储在和第八记录48相关联的第五区域中的数据是无效的。
根据本发明构思的某些实施例,可以使用不同的控制方法建立特定的安全策略(以及安全策略表322A中的对应记录)。
图7是进一步示出图5的安全管理单元320的框图。共同参考图1、图5、图6和图7,安全管理单元320包含表访问控制逻辑321、扇区访问控制表322和扇区访问控制逻辑323。图6中所示的安全策略表322A是扇区访问控制表322的一个例子。
响应于从安全CPU1110输出的表更新命令TU_CMD,表访问控制逻辑321可以改变存储在扇区访问控制表322中的、存储设备150的每一区域中的安全策略。当表更新命令TU_CMD被从非安全CPU1120输入时,表访问控制逻辑321不把安全策略改变信号TU传送到扇区访问控制表322,而是把错误信号TUE传送到非安全CPU1120。
响应于从安全CPU1110输出的表更新命令TU_CMD,表访问控制逻辑321可以生成用于改变扇区访问控制表322的至少一个记录的安全策略改变信号TU。
因此,也被称为安全策略表322的扇区访问控制表可以包括多个记录,每一记录管理用于存储设备1500的一个或更多个区域的安全策略。例如,图7的扇区访问控制逻辑323可被用来从存储控制器310接收扇区密钥(SECTOR_KEY)和访问操作信号(R/W),并从事务处理类型寄存器340接收安全等级信号(S/NS)。
然后,响应于扇区密钥,扇区访问控制逻辑323可以把用于选择多个基扇区地址寄存器其中之一的记录选择信息(SNI)传递到安全策略表322。响应于记录选择信息,安全策略表322把和所选基扇区地址寄存器对应的选择记录(SNE)传递到扇区访问控制逻辑323。
即,扇区访问控制逻辑323可以基于扇区密钥选择安全策略表322的记录其中之一。扇区访问控制逻辑323可以把加密/解密指示信号(ED)输出到数据保护器330,依据所选记录(SNE)中所包括的安全策略指示是否加密数据,并把访问指示信号(IAE)输出到存储控制器310。
响应于访问指示信号IAE,存储控制器310可以把扇区地址(SECTOR_ADD)和加密数据(DATA’)输出到存储设备1500。存储设备1500可以把加密数据(DATA’)存储在和扇区地址对应的区域中。在这种情况下,扇区地址可以包括目的地址12和数据长度13中的至少一个。
图8是示出根据本发明构思的某些实施例的在DMA操作期间可被执行的初始操作的操作图。参考图1、图5和图8,安全CPU1110初始安全管理单元320和数据保护器330(S110)。
之后,安全CPU1110把事务处理类型寄存器340设置于非安全状态,所以非安全CPU1120被运行(S120)。当非安全CPU1120操作应用程序时,非安全CPU1120生成缓冲区描述符BD,并且被生成的缓冲区描述符BD通过主存储器控制器1300被存储在主存储器1200的存储区域1210中。
当缓冲区描述符BD的起始地址指向存储控制器310(S140)时,起始地址被存储在起始寄存器311中(S150)。之后,基于存储在存储控制器310的起始寄存器311中的起始地址,可以开始DMA操作。
图9,包括图9A和图9B,是流程图,概括了根据本发明构思实施例的一种可以藉其执行直接存储器访问(DMA)操作的操作方法.
参考图1、图5、图9A和图9B,存储控制器310通过使用存储在起始寄存器311中的起始地址,从主存储器1200的存储区域1210读取包括扇区信息的缓冲区描述符BD(S211)。这里,缓冲区描述符(BD)由用于访问和扇区信息对应的、存储设备1500的特定区域的应用程序生成。缓冲区描述符通过数据保护器330输入存储控制器310。
存储控制器310通过使用缓冲器描述符中所包括的源地址(例如,图3的11),读或者取存储在主存储器1200中(例如,和源地址对应的存储区域)的数据(DATA)。(S212)。
存储控制器310基于缓冲区描述符BD中所包括的扇区信息,生成扇区密钥(SECTOR_KEY),并把扇区密钥传送到安全管理单元320和数据保护器330(S213)。
响应于从存储控制器310输出的扇区密钥,安全管理单元320选择安全策略表322中所包括的多个记录其中之一(S214)。这里,安全策略表322包括记录,每一记录管理用于存储设备1500中所包括的每一区域的安全策略。
使用所选记录中所包括的安全策略,安全管理单元320确定是否加密所取的数据(S215)。当需要对所取的数据执行加密操作时,数据保护器330可以使用例如扇区密钥来加密数据。但是,当不需要对所取数据执行加密操作时,数据保护器330旁路并把数据传送到存储控制器310。
作为用于确定是否在存储设备1500的特定区域中写数据的第一确定步骤,安全管理单元320把所选记录中所包括的安全等级信息和应用程序的安全等级信息进行比较(S216)。这里,应用程序的安全等级信息被存储在事务处理类型寄存器340中,并被作为安全等级信号(S/NS)传送到安全管理单元320。
当安全策略表(例如,图6的322A)中所包括的安全等级信息(例如,图6的S或者NS)等于应用程序的安全等级信息时,安全管理单元320可以允许应用程序访问存储设备1500的对应区域,例如,对应的扇区区域(S217)。
但是,当安全策略表中所包括的安全等级信息不等于应用程序的安全等级信息时,安全管理单元320不允许应用程序访问存储设备1500的对应区域,例如,对应扇区区域(S223)。
作为用于确定是否在存储设备1500的特定区域中写数据的第二确定步骤,安全管理单元320把所选记录中所包括的访问操作信息和数据的输入/输出操作信息进行比较(S218)。这里,数据的输入/输出操作信息被作为访问操作信号(R/W)从存储控制器310传送到安全管理单元320。
当安全策略表中所包括的访问操作信息等于数据的输入/输出操作信息时,安全管理单元320可以允许应用程序访问存储设备1500的对应区域,例如,对应扇区区域(S219)。
但是,当安全策略表中所包括的访问操作信息不等于数据的输入/输出操作信息时,安全管理单元320不允许应用程序访问存储设备1500的对应区域,例如,对应扇区区域(S223)。
图9仅示出了每一确定步骤S216和S218顺次进行的一个例子;但是,数据解密操作步骤S215、第一确定步骤S216和第二确定步骤S218可以独立地进行,或者至少两个步骤同时进行。
当允许对存储设备1500的特定区域的数据访问时,运行直接存储器访问(DMA)操作。存储控制器210等待完成对存储设备1500的特定区域的DMA操作。
当DMA操作完成并且缓冲区描述符被顺次具体实施时,存储控制器310检查下一缓冲区描述符是否有效(S221)。当下一缓冲区描述符有效时,存储控制器310返回到从主存储器1200读下一缓冲区描述符的步骤(S211)。但是,当下一缓冲区描述符不存在或者无效时,存储控制器310完成DMA操作(S222)。
当DMA操作被成功完成或者DMA操作因对对应扇区区域的访问失败而失败时,存储控制器310生成情况的状态信息,非安全CPU1120从存储控制器310接收状态信息(S225)。
图10是示出可对本发明构思的某些实施例使用的安全策略表的另一例子的概念图,并且图11是概括和图10的安全策略表相关联的操作方法的流程图。
当存储设备1500包括很多区域,在安全管理单元320中具有很多对应记录时,可能越来越多地消耗硬件资源。当包括所有记录的安全策略表被存储在主存储器1200中并且安全管理单元320中的表如转换检测缓冲器(translation look-a-side buffer,TLB)一样工作时,硬件消耗可以降低。
安全策略表被包括在图5的安全管理单元中。参考图10,安全策略表322B包括记录51到55,每一个管理用于存储设备1500中所包括的每一区域的安全策略。
安全策略表322B中所包括的记录的数量可以被多种多样地设置,并且和每一记录对应的、存储设备1500的区域的大小可以被相同设置。根据本发明构思的示范性实施例,虚地址被存储在安全策略表322B中,并且虚地址可以不和物理地址一致。
在每一记录51到55中,存储了关于存储在安全策略表322B的每一记录51到55中的值有效还是无效VALID/INVALID的信息,以及安全策略。
安全策略可以包括以下至少一个:是否允许对和每一记录51到55对应的、存储设备1500的每一区域的访问READ/WRITE(读/写)、根据安全等级是否允许对每一区域的访问SECURE/NON-SECURE(安全/非安全),以及是否针对每一区域对输入/输出数据执行加密操作ENCRYPTION/NON-ENCRYPTION(加密/非加密)。
例如,由于第一记录51的有效性VALID/INVALID是有效VALID,所以存储在和存储设备1500的第一区域对应的第一记录51中的值是有效的。在第一区域中只可以执行读操作R,第一区域只可以被具有安全等级S的应用程序访问,并且被加密的数据可以被存储在第一区域中。
由于第二记录52的有效性VALID/INVALID是有效VALID,所以存储在和存储设备1500的第二区域对应的第二记录52中的值是有效的。在第二区域中可以执行读操作和写操作R/W,第二区域不仅可以被具有安全等级S的应用程序访问,而且可以被具有非安全等级NS的应用程序访问,并且非加密数据NonEnc可以被存储在第二区域中。
由于第三记录53的有效性VALID/INVALID是有效VALID,所以存储在和存储设备1500的第三区域对应的第三记录53中的值是有效的。在第三区域中可以执行读操作和写操作R/W两者,第三区域只可以被具有安全等级S的应用程序访问,并且加密数据Enc可以被存储在第三区域中。
由于第四记录54的有效性VALID/INVALID是有效VALID,所以存储在和存储设备1500的第四区域对应的第四记录54中的值是有效的。在第四区域中只可以执行读操作R,第四区域也可以被具有非安全等级NS的应用程序访问,并且加密数据Enc可以被存储在第四区域中。
由于最后的记录55的有效性VALID/INVALID是无效INVALID,所以存储在和存储设备1500的最后区域对应的最后记录55中的值是无效的。设置安全策略表332B中的区域和所描述的安全策略类型的方法可被多种多样地改变。
图11是概括依据图10的安全策略表执行的DMA操作的部分流程图。图11的方法步骤可以代替图9中被指示的结点A和B之间的那些。
参考图1、图5、图9、图10和图11,响应于从存储管理器310输出的扇区密钥SECTOR_KEY,安全管理单元320选择或者搜索安全策略表322B中所包括的记录之一(S311)。这里,安全策略表322B包括记录,每一记录均管理用于存储设备1500中所包括的每一区域的安全策略。
安全管理单元320确定和扇区密钥(SECTOR_KEY)对应的记录是否被包括在安全策略表322B中(S312)。
当安全策略表322B不包括所选记录时(S312),存储控制器310把主存储器1200中存储的安全策略表加载到安全管理单元320,并且安全管理单元320从对应的被加载的安全策略表读取对应记录的安全策略(S313)。
当安全策略表322B包括所选记录时,通过使用所选记录中所包括的安全策略确定是否加密所取的数据(S315)。
当需要对所取的数据执行加密操作时,数据保护器330可以通过使用扇区密钥加密数据。但是,当不需要对数据执行加密操作时,数据保护器330旁路并把数据传送到存储控制器310。
图12和图13共同起到刻画在本发明构思的某些实施例中可用作数据存储设备的嵌入式多媒体卡(eMMC)。eMMC可以是闪存存储器的存储器卡标准,并且eMMC是在JEDEC中被设为标准的嵌入式MMC的标准。eMMC扮演存储多媒体数据以便在超出硬盘或者紧制盘的限制之外的各种类型的数字设备中使用的角色。
图12是当存储设备涉及eMMC时可被存储在安全策略表中的信号的列表。参考图12,BEGIN指示分区开始的扇区地址;END指示分区结束的扇区地址;SR代表当当前应用程序具有安全等级时是否可以执行读操作;SW代表当当前应用程序具有安全等级时是否可以执行写操作;NSR代表当当前应用程序具有非安全等级时是否可以执行读操作;NSW代表当当前应用程序具有非安全等级时是否可以执行写操作;UFK指示在加密期间是否可以使用熔丝密钥(fuse key);ECB指示使用电子码本(Electronic codebook,ECB)模式;ENC代表是否需要加密操作;并且VALID代表存储在表的记录中的值的有效性。
图13示出了可被包括在图5的安全管理单元中的安全策略表的另一例子。参考图12和图13,由eMMC1500C提供的存储器空间被划分为多个分区71、72和73,每一分区具有不同的安全策略。安全策略表322C包括记录,每一记录管理用于均被包括在eMMC1500C中的多个分区71、72和73中的每一个的安全策略。
每一记录设置起始(或者开始)扇区地址BEGIN和结束扇区地址END,以便表示被包括在eMMC1500C中的多个分区71、72和73的范围。
此外,每一记录存储关于在安全策略表的每一记录中存储的值是否有效的信息和安全策略。
安全策略可以包括如参考图12所描述的其中至少一个:在安全等级对于和每一记录对应的分区的读操作SR、在安全等级的写操作SW、在非安全等级的读操作NSR、在非安全等级的写操作NSW、加密模式ECB和输入/输出数据的加密操作ENC。
例如,由于第一记录61的有效性VALID的值是1,所以和存储设备1500的第一分区71对应的第一记录61的值有效。第一分区71的区域具有从和00000000对应的区域到和000FFFFF对应的区域的范围,00000000是起始地址,000FFFFF是结束地址。第一分区71存储引导程序或者引导映像,所以在第一分区71中只可以在非安全等级执行读操作。但是,不需要对第一分区71中存储的数据执行加密操作。
由于第二记录62的有效性VALID的值是1,所以和存储设备1500的第二分区72对应的第二记录62的值有效。第二分区72的区域具有从和00100000对应的区域到和00EFFFFF对应的区域的范围,00100000是起始地址,00EFFFFF是结束地址。第二分区72存储用户文件系统,所以在第二分区72中可以在非安全等级执行读操作和写操作两者。但是,需要对第二分区72中存储的数据执行加密操作。
由于第三记录63的有效性VALID的值是1,所以和存储设备1500的第三分区73对应的第三记录63的值有效。第三分区73的区域具有从和00F00000对应的区域到和00FFFFFF对应的区域的范围,00F00000是起始地址,00FFFFFF是结束地址。第三分区73存储安全OS文件系统,所以在第三分区73中可以在安全等级执行读操作和写操作两者。此外,需要对第三分区73中存储的数据执行加密操作。
图14是示出可被本发明构思的某些实施例使用的缓冲区描述符的另一例子的概念图。图15是根据本发明构思的另一实施例,与图5的框图类似的另一框图。
共同参考图14和图15,假设彼此不同的第一应用程序和第二应用程序正被CPU1100同时运行。第一应用程序加密并把第一数据存储在存储设备1500的第一区域中,并且第二应用程序加密并把第二数据存储在存储设备1500的第二区域中。
这里,当使用和第一区域对应的扇区密钥加密和存储第一数据,并且第二应用程序可以使用和第一区域对应的扇区密钥对数据执行加密操作或者解密操作时,第二应用程序可能具有的问题是第二应用程序可以读取可被第一应用程序访问的数据。
为了克服这个潜在的问题,本发明构思的某些实施例把安全密钥添加到缓冲区描述符,以便具有和“公共”加密或者解码相关的许可的第一应用程序不需要具有读取和第二应用程序相关联的数据的许可。
参考图1、图3和图14,缓冲器描述符20和先前关于图3描述的缓冲区描述符10类似。但是,私有密钥字段25被添加该数据结构,其中,私有密钥25可被针对不同的应用程序不同地生成。
图5的主机控制器接口1400A使用扇区密钥(SECTOR_KEY)来加密数据(DATA)或者解密以前加密的数据(DATA’)。但是,和先前描述的实施例不一样,图15的主机控制器接口1400B额外使用安全密钥(Private_Key)来加密/解密数据。
参考图1和图15,主机控制器接口1400B包括存储控制器410、安全管理单元(SMU)420、数据保护器430和事务处理类型寄存器440。
存储控制器410控制存取到存储设备1500的数据。存储控制器410通过使用从主存储器1200输出的缓冲区描述符BD中所包括的源地址从主存储器1210读取数据。而且,存储控制器410可以把缓冲区描述符BD中所包括的私有密钥输出到数据保护器430。
缓冲区描述符BD中所包括的扇区信息可被用来生成被传递到存储设备1500的扇区地址和被传递到安全管理单元420的扇区密钥。
响应于由存储控制器410提供的扇区密钥,安全管理单元420可以选择安全策略表的记录其中之一,并输出加密/解密指示信号(ED),该信号根据所选安全策略表记录所指示的安全策略确定是否对数据执行加密操作、或者对被加密数据执行解密操作。
根据加密/解密指示信号,数据保护器430可以对要经由主机控制器接口1400B对要被写到存储设备1500的数据或者从其读取的数据执行加密/解密操作。即,基于由安全管理单元420提供的加密/解码指示信号,数据保护器430可被用来确定执行加密操作、解密操作还是旁路操作。
当应该对写数据执行加密操作时,数据保护器430可以通过使用由存储控制器410提供的Private_Key执行加密操作。
这里,由于针对每一应用程序不同地设置或者生成Private_Key,所以各个应用程序将不知道另一应用程序的Private_Key。因此,即使第一应用程序可以访问存储在加密存储区域1500中的数据,第二应用程序也不需要知道和第一应用程序相关联的Private_Key,尽管第二应用程序能够访问相同的加密存储区域。这种方法在利用公共的数据存储资源的同时,提供了应用程序间的数据安全性。
图16和图17是示出可在图1的计算机系统中使用的主机控制器接口的其他例子的相应框图。根据这些实施例,能够执行和关于图5的安全管理单元320描述的那些相同或者类似功能的安全管理单元可以被独立地存储在主机控制器接口内部。但是,根据其他实施例,执行和图5的安全管理单元320相同或者类似功能的安全管理单元可以被嵌入存储控制器或者数据保护器其中之一。
参考图1和图16,主机控制器接口1400C可以包括存储控制器510、数据保护器520和事务处理类型寄存器530。存储控制器510可以通过使用从主存储器1200输出的缓冲区描述符BD中所包括的源地址从主存储器1200读取数据,并响应于缓冲区描述符中所包括的扇区信息,把扇区密钥输出到数据保护器520。
存储控制器510包括安全管理单元511,其管理用于存储设备1500中所包括的每一区域的安全策略。响应于缓冲区描述符中所包括的扇区信息,安全管理单元511选择安全策略表的记录之一。安全管理单元511可以把加密/解密指示信号输出到数据保护器520,根据所选记录中所包括的安全策略确定是否加密数据。
图5的安全管理单元320的结构和功能大致和图16的安全管理单元511的结构和功能相同。执行和事务处理类型寄存器340大致相同功能的事务处理类型寄存器530存储生成缓冲区描述符的应用程序的安全等级信息,并把安全等级信号传送到存储控制器510。存储控制器510可以参考安全等级信号和安全管理单元511中所包括的安全策略表,确定是否需要对存储设备1500的特定区域的数据访问。
参考图1和图17,主机控制器接口1400D可以包括存储控制器610和数据保护器620。数据保护器620可以包括事务处理类型寄存器621、安全管理单元SMU622和安全引擎623。
存储控制器610可以通过使用从主存储器1200输出的缓冲区描述符中所包括的源地址从主存储器1200读取数据,并响应于缓冲区描述符中所包括的扇区信息,把扇区密钥输出到数据保护器620。存储控制器610把用于执行读操作或者写操作的访问操作信号输出到数据保护器620。
数据保护器620包括安全管理单元622,其管理用于存储设备1500中所包括的每一区域的安全策略。响应于安全密钥,安全管理单元622选择安全策略表的记录之一,并根据所选记录中所包括的安全策略,把访问指示信号输出到存储控制器610。存储控制器610可以基于访问指示信号控制对存储设备1500的数据的访问。
图18是示出根据本发明构思又一实施例的计算机系统的框图。
参考图18,可以在蜂窝电话、智能电话、个人数字助理(PDA)、平板个人计算机、移动国际互联网设备(MID)或者无线通信设备中具体实施计算机系统3000。
计算机系统3000包含连接到总线3100的微处理器3200、高速缓存存储器3210、只读存储器(ROM)3300、主存储器3400、主存储器控制器3410、存储设备3500、主机控制器接口3510、I/O控制器3610、I/O设备3600、显示设备3700和显示控制器3710。
微处理器3200是完全控制计算机系统3000的控制设备。可以在包括多个核的多核处理器中具体实施微处理器3200。高速缓存存储器3210被定位得靠近微处理器3200。高速缓存存储器3210是用来缓冲具有相对较快的操作速度的微处理器3200与具有相对较慢的操作速度的主存储器3400之间的数据处理速度的高速存储器设备。ROM3300可以在只读存储器设备中存储引导代码。
执行和主存储器1200或者2200大致相同的功能的主存储器3400可以被具体实施在动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM)或者移动DRAM中。执行和主存储器控制器1300或者2300大致相同功能的主存储器控制器3410控制主存储器3400。
执行和存储设备1500或2500大致相同功能的存储设备3500可以和硬盘驱动器(HDD)、固态驱动器(SSD)或者冗余独立磁盘阵列(RAID)相同。
存储设备3500可被具体实施在非易失性存储器设备中,并且非易失性存储器设备可以包括可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、相变随机访问存储器(Phase Change Random Access Memory,PRAM)、电阻随机访问存储器(Resistance Random Access Memory,RRAM)、纳米浮栅存储器(Nano Floating GateMemory,NFGM)、聚合物随机访问存储器(Polymer Random Access Memory,PoRAM)、磁随机访问存储器(Magnetic Random Access Memory,MRAM)或者铁电随机访问存储器(Ferroelectric Random Access Memory,FRAM)。
执行和主机控制器接口1400或2400大致相同功能的主机控制器接口3510可以按存储设备3500的区域来管理安全策略。安全策略可以管理在一个或更多个应用程序中使用的数据,以便在数据就安全性而言是敏感数据时,使数据可以不被在微处理器3200中执行的其他应用程序访问。
显示控制器3710控制显示设备3700的操作。I/O设备3700是可以输入/输出用于控制微处理器3200的操作的控制信号或者要被微处理器3200处理的数据的设备,并且可以被具体实施在诸如触摸板和计算机鼠标、小键盘或者键盘的指点设备中。
根据本发明构思实施例的主机控制器接口可以使用包括安全策略表的安全管理单元,根据存储设备的被标识的区域有效地管理不同的安全策略。因此,根据本发明构思实施例的主机控制器接口可以使用安全管理单元连续地执行操作而没有因在处理器之间切换所导致的系统性能上的退化,尽管安全策略随着存储设备的具体区域改变。
当应用程序生成数据时,根据本发明构思的某些实施例的主机控制器接口可以按扇区生成私有密钥,藉此防止可能具有相同的数据加密/解密权限的其他应用程序读取已被存储在存储设备中的和前一应用程序相关联的数据。
尽管已经示出并描述了本一般性发明构思的几个实施例,但是本领域技术人员将会理解,不偏离本一般性发明构思的原理和精神可以在这些实施例中做出变化,本一般性发明构思的范围由所附权利要求及其等同物限定。
Claims (23)
1.一种操作主机控制器接口的方法,所述方法包含:
从主存储器接收包括扇区信息的缓冲区描述符;
通过使用缓冲区描述符中所包括的源地址取数据;
使用扇区信息从安全策略表选择记录;和
使用由所选记录定义的安全策略确定是否加密所取的数据。
2.如权利要求1所述的方法,其中,缓冲区描述符被访问由扇区信息指示的、存储设备的区域的应用程序生成。
3.如权利要求2所述的方法,还包含:
把用于所选记录的安全等级信息和用于应用程序的安全等级信息进行比较以生成比较结果;和
响应于比较结果,确定是否在由扇区信息指示的、存储设备的区域中写数据。
4.如权利要求2所述的方法,还包含:
把用于所选记录的访问操作信息和用于所取数据的输入/输出操作信息进行比较,以生成比较结果;和
响应于比较结果,确定是否在由扇区信息指示的、存储设备的区域中写数据。
5.如权利要求1所述的方法,其中,安全策略表被存储在主存储器中。
6.如权利要求1所述的方法,其中,缓冲区描述符包含源地址、目的地地址和数据长度。
7.如权利要求6所述的方法,其中,缓冲区描述符还包含私有密钥,并且所述方法还包含使用私有密钥加密所取数据。
8.一种安全管理单元,包含:
存储在存储器中并包括第一记录和第二记录的安全策略表,第一记录和第二记录分别定义用于存储设备的第一区域和第二区域的第一安全策略和第二安全策略;
扇区访问控制单元,被配置成响应于缓冲区描述符中所包括的扇区信息,在第一记录和第二记录之间选择,并提供指示根据第一安全策略还是第二安全策略来加密数据的第一控制信号。
9.如权利要求8所述的安全管理单元,还包含:
表访问控制单元,被配置成响应于由安全中央处理单元(CPU)提供的表更新命令,在第一安全策略和第二安全策略之间改变。
10.如权利要求8所述的安全管理单元,其中,第一安全策略和第二安全策略中的每一个均包括安全等级信息和访问操作信息其中至少一个。
11.如权利要求10所述的安全管理单元,其中,扇区访问控制单元还被配置成接收扇区信息和安全等级信号、把用于所选记录的安全等级信息和用于当前应用程序的安全等级信息进行比较,并提供允许访问存储设备的区域的第二控制信号。
12.如权利要求10所述的安全管理单元,其中,扇区访问控制单元还被配置成接收扇区信息和访问操作信号,把用于所选记录的访问操作信息和数据访问操作信息进行比较,并提供允许访问存储设备的区域的第二控制信号。
13.如权利要求8所述的安全管理单元,其中,安全管理单元被配置在主机控制器接口内。
14.一种主机控制器接口,包含:
存储控制器,其使用缓冲区描述符中所包括的源地址从主存储器读取数据,并响应于缓冲区描述符中所包括的扇区信息提供扇区密钥;
安全管理单元,其响应于扇区密钥,从存储在存储器中的安全策略表选择记录,并提供定义了与所选记录对应的安全策略的第一控制信号;和
数据保护器,其响应于第一控制信号确定是否对数据执行加密操作,
其中,安全策略表包括多个记录,每一记录分别定义用于存储设备中的多个区域中的至少一个的对应安全策略。
15.如权利要求14所述的主机控制器接口,其中,数据保护器响应于第一控制信号和扇区密钥执行加密操作。
16.如权利要求14所述的主机控制器接口,其中,数据保护器响应于第一控制信号和缓冲区描述符中所包括的私有密钥执行加密操作。
17.如权利要求14所述的主机控制器接口,还包含:
事务处理类型寄存器,其存储用于应用程序的安全等级信息,该应用程序用于生成缓冲器描述符,并向安全管理单元提供指示安全等级信息的安全等级信号。
18.如权利要求17所述的主机控制器接口,其中,安全管理单元接收扇区信息和安全等级信号,把所选记录中所包括的安全等级信息和安全等级信号进行比较,并根据比较结果输出指示是否允许访问存储设备的特定区域的第二控制信号。
19.如权利要求17所述的主机控制器接口,其中,安全管理单元接收扇区信息和从存储控制器输出的访问操作信号,把所选记录中所包括的访问操作信息和数据访问操作信息进行比较,并输出根据比较结果指示是否允许访问存储设备的特定区域的第二控制信号。
20.一种计算机系统,包含:
存储设备,其包括多个区域;
中央处理单元(CPU),其在运行访问所述多个区域中的区域的应用程序时生成缓冲区描述符;
主存储器,其存储缓冲区描述符和数据;和
主机控制器接口,其使用缓冲区描述符中所包括的源地址从主存储器读取数据,响应于扇区信息选择多个记录其中之一,并基于由所选记录定义的安全策略确定是否对数据执行加密操作,
其中,所述多个记录中的每一个管理用于存储设备中的所述多个区域的每一个的不同安全策略。
21.如权利要求20所述的计算机系统,其中,主机控制器接口包括:
存储控制器,其使用源地址从主存储器读取数据,并响应于扇区信息提供扇区密钥;
安全管理单元,其响应于扇区密钥选择所选记录,并响应于由所选记录定义的安全策略提供第一控制信号;和
数据保护器,其基于第一控制信号确定是否对数据执行加密操作。
22.如权利要求20所述的计算机系统,其中,存储设备是以下其中之一:硬盘驱动器(HDD)、光盘、固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)和通用快闪存储设备(UFS)。
23.如权利要求20所述的计算机系统,其中,存储设备和主机控制器接口经由串行ATA接口通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120116890A KR102017828B1 (ko) | 2012-10-19 | 2012-10-19 | 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들 |
KR10-2012-0116890 | 2012-10-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103778075A CN103778075A (zh) | 2014-05-07 |
CN103778075B true CN103778075B (zh) | 2017-01-18 |
Family
ID=50437163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310495239.6A Active CN103778075B (zh) | 2012-10-19 | 2013-10-21 | 安全管理单元、包括它的主机控制器接口及其操作方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9135459B2 (zh) |
JP (1) | JP6298268B2 (zh) |
KR (1) | KR102017828B1 (zh) |
CN (1) | CN103778075B (zh) |
AU (1) | AU2013242802B2 (zh) |
DE (1) | DE102013111339A1 (zh) |
NL (1) | NL2011611B1 (zh) |
TW (1) | TWI595379B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9355261B2 (en) | 2013-03-14 | 2016-05-31 | Appsense Limited | Secure data management |
US9215251B2 (en) * | 2013-09-11 | 2015-12-15 | Appsense Limited | Apparatus, systems, and methods for managing data security |
CN104063641B (zh) | 2014-06-23 | 2017-11-24 | 华为技术有限公司 | 硬盘安全访问控制方法和硬盘 |
CN105528306B (zh) * | 2014-09-28 | 2019-01-25 | 宇龙计算机通信科技(深圳)有限公司 | 一种双系统终端的数据读写方法及双系统终端 |
CN105653467A (zh) * | 2015-05-21 | 2016-06-08 | 宇龙计算机通信科技(深圳)有限公司 | 一种存储空间分配方法及装置 |
CN106533652A (zh) * | 2015-09-15 | 2017-03-22 | 中兴通讯股份有限公司 | 一种基于xts-sm4的存储加解密方法及装置 |
US10664179B2 (en) | 2015-09-25 | 2020-05-26 | Intel Corporation | Processors, methods and systems to allow secure communications between protected container memory and input/output devices |
KR102353058B1 (ko) | 2016-02-02 | 2022-01-20 | 삼성전자주식회사 | 시스템 온 칩 및 그것의 동작 방법 |
DE102016210788B4 (de) * | 2016-02-18 | 2023-06-07 | Volkswagen Aktiengesellschaft | Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente |
US10891396B2 (en) * | 2016-05-27 | 2021-01-12 | Samsung Electronics Co., Ltd. | Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same |
US10133505B1 (en) * | 2016-09-29 | 2018-11-20 | EMC IP Holding Company LLC | Cooperative host and data storage system services for compression and encryption |
JP2018088165A (ja) * | 2016-11-29 | 2018-06-07 | 日本電産サンキョー株式会社 | カードリーダ及びカードリーダの制御方法 |
US10936211B2 (en) * | 2017-09-07 | 2021-03-02 | Arm Ip Ltd | Optimized storage protection |
JP6762924B2 (ja) * | 2017-12-01 | 2020-09-30 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
US10983711B2 (en) * | 2018-01-04 | 2021-04-20 | Montage Technology Co., Ltd. | Memory controller, method for performing access control to memory module |
US10936212B2 (en) * | 2018-01-04 | 2021-03-02 | Montage Technology Co., Ltd. | Memory controller, method for performing access control to memory module |
CN110059028A (zh) * | 2018-01-17 | 2019-07-26 | 瑞昱半导体股份有限公司 | 数据储存芯片及数据存取方法 |
EP3540618B1 (en) * | 2018-03-15 | 2023-01-25 | Rohde & Schwarz GmbH & Co. KG | Portable storage apparatus |
WO2019183459A1 (en) * | 2018-03-23 | 2019-09-26 | Micron Technology, Inc. | Storage device authenticated modification |
WO2019226250A1 (en) * | 2018-05-23 | 2019-11-28 | Microsemi Storage Solutions, Inc. | Method and apparatus for scatter gather processing engine in a storage controller for caching applications |
JP7246032B2 (ja) * | 2019-07-12 | 2023-03-27 | パナソニックIpマネジメント株式会社 | 車載セキュアストレージシステム |
US11582607B2 (en) * | 2020-07-10 | 2023-02-14 | Western Digital Technologies, Inc. | Wireless security protocol |
KR20220041586A (ko) | 2020-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 전자 시스템 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787169A (en) * | 1995-12-28 | 1998-07-28 | International Business Machines Corp. | Method and apparatus for controlling access to encrypted data files in a computer system |
US6161524A (en) * | 1998-02-10 | 2000-12-19 | Deutz Ag | Electronic control device |
CN1578946A (zh) * | 2001-10-31 | 2005-02-09 | 先进微装置公司 | 用基于物理地址的安全配置确定对象安全的方法及装置 |
CN102077204A (zh) * | 2008-06-24 | 2011-05-25 | 纳格拉影像股份有限公司 | 安全内存管理系统和方法 |
CN102257483A (zh) * | 2008-12-18 | 2011-11-23 | 桑迪士克公司 | 管理对存储器件中的地址范围的访问 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713753A (en) * | 1985-02-21 | 1987-12-15 | Honeywell Inc. | Secure data processing system architecture with format control |
JPH1153263A (ja) | 1997-07-31 | 1999-02-26 | T I F:Kk | メモリ管理方式 |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
KR20000026335A (ko) * | 1998-10-20 | 2000-05-15 | 윤종용 | 실시간 제어가 가능한 다중 채널 직접 메모리 액세스 시스템 |
US6151664A (en) * | 1999-06-09 | 2000-11-21 | International Business Machines Corporation | Programmable SRAM and DRAM cache interface with preset access priorities |
US7987510B2 (en) * | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
US7073059B2 (en) * | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
AU2003201838A1 (en) * | 2002-04-01 | 2003-10-23 | Sony Corporation | Reproducing method, reproducing apparatus, and data accessing method |
TWI225647B (en) * | 2002-04-01 | 2004-12-21 | Sony Corp | Recording method and apparatus, and editing method apparatus |
US6851056B2 (en) | 2002-04-18 | 2005-02-01 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
CN1276363C (zh) * | 2002-11-13 | 2006-09-20 | 深圳市朗科科技有限公司 | 借助半导体存储装置实现数据安全存储和算法存储的方法 |
US7818519B2 (en) * | 2002-12-02 | 2010-10-19 | Silverbrook Research Pty Ltd | Timeslot arbitration scheme |
JP2005056305A (ja) | 2003-08-07 | 2005-03-03 | Matsushita Electric Ind Co Ltd | メモリ領域に分割領域を持つ情報記憶装置 |
US7631181B2 (en) * | 2003-09-22 | 2009-12-08 | Canon Kabushiki Kaisha | Communication apparatus and method, and program for applying security policy |
US20060149918A1 (en) | 2004-12-30 | 2006-07-06 | Rudelic John C | Memory with modifiable address map |
US8161524B2 (en) | 2005-01-13 | 2012-04-17 | Samsung Electronics Co., Ltd. | Method and portable storage device for allocating secure area in insecure area |
JP4791741B2 (ja) * | 2005-03-16 | 2011-10-12 | 株式会社リコー | データ処理装置とデータ処理方法 |
US7734933B1 (en) * | 2005-06-17 | 2010-06-08 | Rockwell Collins, Inc. | System for providing secure and trusted computing environments through a secure computing module |
US7716720B1 (en) * | 2005-06-17 | 2010-05-11 | Rockwell Collins, Inc. | System for providing secure and trusted computing environments |
US8127145B2 (en) * | 2006-03-23 | 2012-02-28 | Harris Corporation | Computer architecture for an electronic device providing a secure file system |
US8352999B1 (en) * | 2006-07-21 | 2013-01-08 | Cadence Design Systems, Inc. | Method for managing data in a shared computing environment |
US20080072070A1 (en) * | 2006-08-29 | 2008-03-20 | General Dynamics C4 Systems, Inc. | Secure virtual RAM |
JP2008059245A (ja) | 2006-08-31 | 2008-03-13 | Yoshikawa Rf System Kk | データキャリア及びデータキャリアシステム |
JP2008077366A (ja) * | 2006-09-21 | 2008-04-03 | Hitachi Ltd | 記憶制御装置及び記憶制御装置の暗号化機能制御方法 |
JP2008090519A (ja) | 2006-09-29 | 2008-04-17 | Toshiba Corp | 記憶装置 |
JP2008129803A (ja) | 2006-11-20 | 2008-06-05 | Cnac Ltd | ファイルサーバ、プログラム、記録媒体及び管理サーバ |
JP4854483B2 (ja) * | 2006-11-30 | 2012-01-18 | キヤノン株式会社 | データ入出力装置 |
JP2009110275A (ja) | 2007-10-30 | 2009-05-21 | Sharp Corp | 表示入力装置及びその視差補正方法 |
KR101484110B1 (ko) | 2008-02-29 | 2015-01-28 | 삼성전자주식회사 | 메모리 컨트롤러 및 그에 따른 메모리 장치 |
CN101960465A (zh) * | 2008-03-03 | 2011-01-26 | 日本电气株式会社 | 机密信息泄漏防止系统和机密信息泄漏防止方法 |
KR100945181B1 (ko) | 2008-03-26 | 2010-03-03 | 한양대학교 산학협력단 | 파일명을 이용하여 데이터를 보호하는 저장 시스템, 미들시스템 및 데이터 관리 방법 |
US8272028B2 (en) * | 2008-10-15 | 2012-09-18 | Ricoh Company, Ltd. | Approach for managing access to electronic documents on network devices using document retention policies and document security policies |
JP2010267240A (ja) | 2009-04-16 | 2010-11-25 | Toshiba Corp | 記録装置 |
JP5465920B2 (ja) * | 2009-05-14 | 2014-04-09 | キヤノン電子株式会社 | 情報処理装置、制御方法、コンピュータプログラム及び記憶媒体 |
JP5592293B2 (ja) | 2010-03-12 | 2014-09-17 | パナソニック株式会社 | 不揮発性記憶装置、アクセス装置及び不揮発性記憶システム |
WO2012141540A2 (ko) | 2011-04-13 | 2012-10-18 | 씨제이제일제당 (주) | 바이러스 감염 억제 활성을 갖는 신규 분리한 락토바실러스 퍼멘텀 균주 |
-
2012
- 2012-10-19 KR KR1020120116890A patent/KR102017828B1/ko active IP Right Grant
-
2013
- 2013-09-04 US US14/017,623 patent/US9135459B2/en active Active
- 2013-10-04 AU AU2013242802A patent/AU2013242802B2/en active Active
- 2013-10-04 TW TW102135933A patent/TWI595379B/zh active
- 2013-10-15 DE DE102013111339.7A patent/DE102013111339A1/de active Pending
- 2013-10-15 NL NL2011611A patent/NL2011611B1/nl active
- 2013-10-21 CN CN201310495239.6A patent/CN103778075B/zh active Active
- 2013-10-21 JP JP2013218234A patent/JP6298268B2/ja active Active
-
2015
- 2015-08-19 US US14/829,705 patent/US9785784B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787169A (en) * | 1995-12-28 | 1998-07-28 | International Business Machines Corp. | Method and apparatus for controlling access to encrypted data files in a computer system |
US6161524A (en) * | 1998-02-10 | 2000-12-19 | Deutz Ag | Electronic control device |
CN1578946A (zh) * | 2001-10-31 | 2005-02-09 | 先进微装置公司 | 用基于物理地址的安全配置确定对象安全的方法及装置 |
CN102077204A (zh) * | 2008-06-24 | 2011-05-25 | 纳格拉影像股份有限公司 | 安全内存管理系统和方法 |
CN102257483A (zh) * | 2008-12-18 | 2011-11-23 | 桑迪士克公司 | 管理对存储器件中的地址范围的访问 |
Also Published As
Publication number | Publication date |
---|---|
US20140115656A1 (en) | 2014-04-24 |
AU2013242802A1 (en) | 2014-05-08 |
NL2011611B1 (en) | 2017-05-23 |
TW201428536A (zh) | 2014-07-16 |
CN103778075A (zh) | 2014-05-07 |
KR20140067180A (ko) | 2014-06-05 |
TWI595379B (zh) | 2017-08-11 |
US9135459B2 (en) | 2015-09-15 |
DE102013111339A1 (de) | 2014-04-24 |
NL2011611A (en) | 2014-04-23 |
AU2013242802B2 (en) | 2018-05-31 |
JP6298268B2 (ja) | 2018-03-20 |
KR102017828B1 (ko) | 2019-09-03 |
JP2014086089A (ja) | 2014-05-12 |
US9785784B2 (en) | 2017-10-10 |
US20150356308A1 (en) | 2015-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103778075B (zh) | 安全管理单元、包括它的主机控制器接口及其操作方法 | |
US11138133B2 (en) | Multi-tenant encryption for storage class memory | |
US10176122B2 (en) | Direct memory access authorization in a processing system | |
JP6739148B2 (ja) | コンピューティングシステムにおける動的なメモリアドレス再マッピング | |
US9483422B2 (en) | Access to memory region including confidential information | |
JP5500458B2 (ja) | プロセッサメインメモリのメモリコンテンツのセキュリティ保護 | |
CN101416195B (zh) | 能够控制对存储设备的访问的计算机系统 | |
US9734092B2 (en) | Secure support for I/O in software cryptoprocessor | |
TWI633457B (zh) | 用於執行安全操作之裝置及方法 | |
CN105339912B (zh) | 测量安全区域 | |
US10261854B2 (en) | Memory integrity violation analysis method and apparatus | |
US9323932B2 (en) | Protecting memory contents during boot process | |
CN107533514A (zh) | 存储器内容的基于密码的初始化 | |
CN108573175A (zh) | 数据储存装置以及其操作方法 | |
US20130073870A1 (en) | Secure relocation of encrypted files | |
TWI526870B (zh) | 用於提供儲存裝置上之反惡意軟體保護及惡意軟體鑑識之系統及方法 | |
JP4430624B2 (ja) | Nodmaキャッシュ | |
US11783055B2 (en) | Secure application execution in a data processing system | |
US20170046537A1 (en) | Electronic device against side channel attacks | |
JPS59173847A (ja) | コンピユ−タソフトウエアの保護方法およびその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |