首页> 中国专利> 安全管理单元、包括它的主机控制器接口及其操作方法

安全管理单元、包括它的主机控制器接口及其操作方法

摘要

一种操作主机控制器接口的方法,包括:从主存储器接收包括扇区信息的缓冲区描述符;通过使用缓冲区描述符中所包括的源地址来取数据;使用扇区信息,选择安全策略表中所包括的多个记录其中之一;和,通过使用所选记录中所包括的安全策略,确定是否加密所取的数据。

著录项

  • 公开/公告号CN103778075A

    专利类型发明专利

  • 公开/公告日2014-05-07

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN201310495239.6

  • 发明设计人 金宽浩;金奭旼;李宪洙;

    申请日2013-10-21

  • 分类号G06F12/14(20060101);G06F21/79(20130101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张婧

  • 地址 韩国京畿道

  • 入库时间 2024-02-19 23:49:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-18

    授权

    授权

  • 2015-10-14

    实质审查的生效 IPC(主分类):G06F12/14 申请日:20131021

    实质审查的生效

  • 2014-05-07

    公开

    公开

说明书

相关专利申请的交叉引用

要求2012年10月19日在韩国知识产权局递交的第10-2012-0116890 号韩国专利申请的优先权,其主题通过引用被全部包含于此。

技术领域

本发明构思涉及主机控制器接口。更具体地,本发明构思涉及主机控制 器接口中的安全管理单元,所述安全管理单元能够根据对应存储设备的区域 来管理安全策略。本发明构思还涉及操作包括所述安全管理单元的主机控制 器接口的方法,以及包括这种主机控制器接口的设备。

背景技术

数据安全是当代计算机系统内的存储设备的设计和操作中的重要考虑。 有效的数据安全方法必须防止对被存储数据的未授权访问,无论这种访问企 图读取、操纵、变更、篡改、伪造还是提取被存储的数据。有效的数据安全 方法也必须防止外部代理程序(external agent)阻止合法用户访问存储的数 据。

在被存储的数据期间,主机控制器接口与对应的存储设备之间的数据总 线(和由数据总线传递的相称的数据信号)经常被作为目标。结果,很多常 规系统将对在主机控制器接口和存储设备之间传递的数据进行加密。为此目 的,各种加密方法和/或加密模块可被结合主机控制器接口使用。只要数据安 全策略被跨越存储设备的所有区域施加于所有被存储的数据,这种常规方法 就相当有效。

即,当使用所谓的“安全处理器”来管理用于存储设备的特定数据安全 策略时,在数据处理必须由“非安全处理器”执行时,遇到巨大的开销。实 际上,在具有不同数据安全策略的数据之间切换的处理器降低了所构成计算 机系统的总体性能。

发明内容

本发明构思的某些实施例提供了包括安全策略表的安全管理单元,所述 安全策略表可被用来根据存储设备的特定区域而有区别地管理安全策略。使 用这些安全管理单元易于使计算机系统内通常因安全策略上的改变而出现 的计算开销最小化。本发明构思的某些实施例提供了一种包括这种类型的安 全管理单元的主机控制器接口。本发明构思的某些实施例提供了操作包括这 种类型的安全管理单元的主机控制器接口的方法,以及包括这种主机控制器 接口的设备。

在一个实施例中,本发明构思提供了一种方法,包括:从主存储器接收 包括扇区信息的缓冲区描述符;通过使用缓冲区描述符中所包括的源地址取 数据;使用扇区信息从安全策略表选择记录;和,使用由所选记录定义的安 全策略确定是否加密所取的数据。

在另一实施例中,本发明构思提供了一种安全管理单元,包括:存储在 存储器中并包括第一记录和第二记录的安全策略表,第一记录和第二记录分 别定义用于存储设备的第一区域和第二区域的第一安全策略和第二安全策 略;和,扇区访问控制逻辑,被配置成响应于缓冲区描述符中所包括的扇区 信息,在第一记录和第二记录之间选择,并提供指示根据第一安全策略还是 第二安全策略来加密数据的第一控制信号。

在另一实施例中,本发明构思提供了一种主机控制器接口,包括:存储 控制器,其使用缓冲区描述符中所包括的源地址从主存储器读取数据,并响 应于缓冲区描述符中所包括的扇区信息提供扇区密钥;安全管理单元,其响 应于扇区密钥,从存储在存储器中的安全策略表选择记录,并提供定义了与 所选记录对应的安全策略的第一控制信号;和,数据保护器,其响应于第一 控制信号确定是否对数据执行加密操作,其中,安全策略表包括多个记录, 每一记录分别定义用于存储设备中的多个区域中的至少一个的对应安全策 略。

在另一实施例中,本发明构思提供了一种计算机系统,包括:存储设备, 其包括多个区域;中央处理单元(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运行的当前应用程序来确定。当CPU 2100响应于低安全性应用程序而工作于非安全模式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 Gate Memory,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处理 的数据的设备,并且可以被具体实施在诸如触摸板和计算机鼠标、小键盘或 者键盘的指点设备中。

根据本发明构思实施例的主机控制器接口可以使用包括安全策略表的 安全管理单元,根据存储设备的被标识的区域有效地管理不同的安全策略。 因此,根据本发明构思实施例的主机控制器接口可以使用安全管理单元连续 地执行操作而没有因在处理器之间切换所导致的系统性能上的退化,尽管安 全策略随着存储设备的具体区域改变。

当应用程序生成数据时,根据本发明构思的某些实施例的主机控制器接 口可以按扇区生成私有密钥,藉此防止可能具有相同的数据加密/解密权限的 其他应用程序读取已被存储在存储设备中的和前一应用程序相关联的数据。

尽管已经示出并描述了本一般性发明构思的几个实施例,但是本领域技 术人员将会理解,不偏离本一般性发明构思的原理和精神可以在这些实施例 中做出变化,本一般性发明构思的范围由所附权利要求及其等同物限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号