用于数据存储装置处的安全管理供应的技术的制作方法

文档序号:6362221阅读:103来源:国知局
专利名称:用于数据存储装置处的安全管理供应的技术的制作方法
技术领域
各实施例一般涉及计算机安全。更特别地,实施例提供数据存储装置用以本地实施一个或多个它自己的本地安全管理过程。2.
背景技术
计算机和计算机网络必须应对恶意软件变体的快速增长以及被相同恶意软件变体所感染的计算机平台(客户机、服务器等)的数量的相应减少。此外,恶意软件创造者构建日益秘密的安全威胁,例如包括关闭反恶意软件的软件(AVS)和/或将错误的盘数据反馈给AVS应用的能力。恶意软件日益增加的种类和能力已降低了主机系统执行环境维护最新AVS解决方案的信任水平。在当前技术下,用于评估数据存储装置(DSD)的安全状态的安全管理过程——诸如恶意软件检测和/或恶意软件恢复一在与DSD连接的主机平台中执行。因此,对这种主机平台的安全状态的损害导致对与其耦合的存储装置的安全管理的损害。此外,各种主机平台的芯片组中的用于更新此类安全管理性能的机制的可扩展性可能受到限制。可实现特定安全改善的平台的容量可依赖于已做出要求的主机芯片组的安装基础和/或用于该安全解决方案的兼容硬件。例如,针对特定类型的中央处理单元(CPU)引入虚拟化指令集可能受到首先建立信任根的需要的限制,其可能(例如)要求包括该CPU的芯片组还包括受信任平台模块(TPM)类组件。要求在主机芯片组中存在此类附加启用因素的安全解决方案在其可扩展性上可能受到限制。对在主机芯片组中实现安全管理的限制以及对更新此类安全管理实现的限制使得现有计算机平台易受来自日益危险的恶意软件的攻击。


以解说方式且非限定地在如下附图中示出本发明的多个实施例,在附图中:图1A和图1B各自为示出根据实施例的用于供应安全管理的相应计算机系统的选择要素的框图。图2是示出根据实施例的用于实施安全管理的方法的选择要素的框图。图3A到图3D各自为示出根据实施例的用于供应安全管理的相应数据存储装置的选择要素的框图。图4是示出根据实施例的用于数据存储装置的安全服务供应的交互的选择要素的流程图。图5是示出根据实施例的用于在数据存储装置处实施安全管理的方法的选择要素的流程图。
具体实施方式
多个实施例涉及用于在诸如固态驱动器(SSD)、网络附连存储(NAS)、服务器附连存储(SAS)、双驱动器、混合驱动器或者硬盘驱动器(HDD)之类的存储装置处实施本地安全管理的稳健的基于硬件的安全解决方案。此类解决方案显著提高安全管理特征的可靠性,包括但不限于恶意软件扫描性能、认证、加密、数据恢复等。存储器控制器或其它数据处理硬件(诸如在当前数据存储装置中找到的那些)可利用附加逻辑、处理循环等扩充以本地地确定例如是否授权对本地非易失性存储介质的访问。在存储装置处针对经授权(或未授权)访问的本地检测可包括例如扫描驻留于存储装置的本地非易失性存储介质中的数据(例如文件和/或应用)。作为替换或附加,这种检测可包括扫描正被传输进入或离开非易失性存储介质的数据。在多个实施例中,针对经授权(或未授权)访问的检测是自主式的——例如完全在数据存储装置(DSD)内实施(并且在某些实施例中完全在数据存储装置中发起),其中检测的执行不包括某主机平台对DSD的处理或数据交换。在多个实施例中,附加硬件和/或软件还可被本地地提供于DSD上,以提供支持和/或延伸对访问是否被授权(或未授权)的本地确定的特征。例如,通过结合一个或多个附加处理核、固定功能加速器、ASIC、FPGA和/或类似硬件,可将这种逻辑包括在DSD中以实施本文所讨论的安全管理特征。作为示例而非限制,可为DSD提供硬件和/或软件逻辑以创建“停放区”,以供独立软件销售商(ISV)在一个或多个安全存储区域中(例如,主机平台对所述区域的访问至少部分被限制之处)安全地存储文件和/或应用和/或认证令牌。作为替换或附加,可为DSD提供硬件和/或软件逻辑以本地地生成受信任差别信息——例如,描述哪些文件和/或应用已被某代理修改。在多个实施例中,驻留于DSD上的存储器控制器功能可包括或可访问一个或多个本地加速器——通过高效执行特定类型的功能来帮助数据处理的专用硬件。此类加速器可包括例如散列引擎、用于加密/解密通信的密码引擎和/或用于帮助数据扫描和/或数据过滤的模式匹配引擎。在多个实施例中,在DSD处实施的安全管理功能可包括对备份操作的本地管理,例如对存储装置上存储的一个或多个文件的备份版本进行存储。这种安全管理可进一步包括基于此类备份操作对自动恢复操作的管理,例如如果确定数据状态的变化是由于病毒或其它恶意软件则恢复先前数据状态。在多个实施例中,在DSD处实施的安全管理功能可包括本地地执行对位于DSD外部的代理的认证。例如,DSD可在其安全存储子系统中存储信任根,该信任根用于本地地评估外部代理的安全证书。这种认证可作为在DSD的主机平台处执行的任何认证的附加和/或与其无关。例如,在DSD处执行的一些或者甚至全部安全管理操作可对DSD的主机平台的主机OS透明。实际上,此类安全管理操作甚至可对主机平台的可管理性引擎透明一例如某平台控制器中枢的管理引擎操作、专用管理处理器或者与DSD耦合的主机平台的管理处理模式。图1A示出根据实施例的用于提供安全管理的计算机系统IOOa的选择要素。计算机系统IOOa可包括能够实施与本文所述DSD的消息交换的多种个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、服务器、手持式设备等中的任何一种。
在一实施例中,计算机系统IOOa包括DSD 110,DSD 110包括总线接口 120用于将DSD 110耦合至主机平台150a的总线156a。DSD 110可用作数据的存储,这些数据将对主机平台150a变得可用和/或通过主机平台150a变得可用。例如,DSD 110可包括非易失性存储介质140,例如可由硬盘驱动器(HDD)的多种机制中的任何一种访问的硬盘盘片。作为替换或附加,非易失性存储介质140可包括诸如基于NAND的闪存之类的固态介质。注意,根据一种观点,当与总线156a耦合时DSD 110可被视为主机平台150a的扩展。例如,在多个实施例中,DSD 110可从至总线156a的连接或主机平台150a的某些其它连接接收电力供应。作为替换或附加,主机平台150可包括平台控制器中枢(未示出)以控制DSD 110的某些操作。但是,至少在DSD 110可本地地实施它自己的独立于主机平台150a计算过程的安全管理过程的范围内,DSD 110不同于主机平台150a。在一实施例中,总线接口 120可将DSD 110物理耦合至总线156a用于在主机平台150a的主机操作系统(OS) 152与DSD 110的执行引擎130之间进行消息交换。主机OS152可以是主机平台150的通用OS或者是某些其它OS (未示出)的管理OS,所述某些其它OS是主机平台150a的通用OS。在一实施例中,主机OS 152将DSD 110识别为主机平台150a下的存储装置,而非识别为例如与主机平台150a联网的某些独立和/或对等平台一例如具有不同网络地址或其它此类标识符的单独网络节点。主机OS 152的操作——例如用于请求在主机OS 152上执行的应用一可经由主机平台150a的存储驱动器154不同地交换消息以访问非易失性存储介质140。总线156a可包括例如通用串行总线(USB)总线、串行高级技术附接(SATA)总线、快速外围部件互连(PC1-E)总线、诸如串行附接SCSI (SAS)总线之类的小型计算机系统接口(SCSI)总线、或者能够交换去往和/或来自本文所述存储驱动器154的消息的任何类似总线。在一实施例中,DSD 110可以是热插拔设备,其可耦合至主机平台150a并与其一起操作而无需主机OS 152重新引导。在一实施例中,经由主机OS 152的存储驱动器154的消息交换将与主机OS 152的网络通信不同一例如将计算机系统IOOa与网络的其它节点联网的通信。DSD 110可包括与总线接口 120耦合的执行引擎130。执行引擎130可包括硬件逻辑一例如处理器核、状态机、专用集成电路(ASIC)、可编程只读存储器(PROM)等中的一种或多种——和/或软件逻辑的多种组合中的任何一种,以经由总线接口 120交换消息并且控制例如主机OS 152对非易失性存储介质140的访问。更特别地,执行引擎130可执行至少一个过程(在本文中称为输入/输出(I/O)过程)以代表请求所述访问的主机OS 152访问非易失性存储介质。应理解这种I/O过程可执行从非易失性存储介质140读取以及向非易失性存储介质140写入中的任一种或两种。如本文所讨论的,执行引擎130可进一步执行一个或多个安全管理过程,例如用于独立于主机平台150a的计算过程来评估DSD 110的安全状态。图1B示出根据实施例的用于提供安全管理的计算机系统IOOb的选择要素。例如,计算机系统IOOb可包括计算机系统IOOa的部分或全部特征。为了避免模糊各个实施例的特征,计算机系统IOOb在本文中被描述为具有相同的DSD 110。应理解,根据多个实施例,计算机系统IOOb可耦合至多个本文所述的附加或替换DSD中的任何一个。计算机系统IOOb包括芯片组168,实施用于经由存储驱动器(诸如存储驱动器154)与DSD 110通信的主机OS (诸如主机OS 152)的多个可能的芯片组之一。在一实施例中,芯片组168可包括主机处理单元160以执行这种主机OS。作为示例而非限制,主机处理单元160耦合至芯片组168的存储器162和平台控制器中枢164。主机平台150b可包括多种附加或替换芯片组和/或芯片组架构,根据多个实施例,其包括多种不同芯片组元件和/或芯片组配置中的任何一种。例如,芯片组168可替换地不包括平台控制器中枢164—例如此时总线156b将DSD 110直接耦合至主机处理单元160。主机平台150b可包括多个附加组件中的任何一个,诸如与芯片组168耦合的网络接口 166,用于主机平台150b向DSD 110传达信息和/或自DSD 110传达信息。作为示例而非限制,网络接口 166可将主机平台150b耦合至网络(例如,因特网、内联网等)以便远程代理(例如,服务器、网络管理员、AVS提供商等)自非易失性存储介质140读取数据和/或向非易失性存储介质140写入数据和/或经由执行引擎130访问描述DSD 110的安全状态的信息。作为替换或附加,主机平台150b可包括诸如键盘、鼠标、显示器等的一个或多个用户I/O设备(未示出)的多个组合中的任何一个,以便用户与DSD 110交换这种数据和/或安全状态信息。在一实施例中,对DSD 110的一个或多个安全管理操作的执行不知道芯片组168的组件集成电路和/或架构。相应地,对芯片组168的硬件设计可独立于执行引擎130中用于执行安全管理操作的特定硬件。图2示出根据实施例的用于提供安全管理的方法200的选择要素。当DSD耦合至计算机设备的主机平台(诸如主机平台150a)时,方法200可例如由DSD执行引擎(诸如执行引擎130)执行。尽管本文按照DSD 110与主机平台150a耦合来描述,但是应当理解方法200可由本文所述的多种DSD中的任何一种来执行,其中DSD耦合至同样在本文中所述的多种主机平台中的任何一种。在一实施例中,方法200包括在210处执行安全管理过程以检测对非易失性存储介质140的访问是否被授权。DSD可标识执行安全管理过程的需要,其中该标识操作独立于或者替换地基于(例如响应于)与主机平台150a的通信。但是,在一实施例中,检测对数据存储介质140的经授权(或未授权)访问的实际操作可完全在DSD 110内执行——例如无须依赖于对主机平台150a执行的操作或者与主机平台150a交换的通信作为该检测操作的一部分。检测对非易失性存储介质140的访问是否被授权可包括检测先前的、当前请求的以及当前执行的访问中的一个或多个以及标识用于这种被检测访问的任何授权是否被指示。作为示例而非限制,在检测对非易失性存储介质140的访问是否被授权时,执行引擎130可扫描非易失性存储介质140以检测非易失性存储介质140中的数据的先前完成的或尚未提交的变更。作为替换或附加,在检测对非易失性存储介质140的访问是否被授权时,安全管理过程可评估来自请求对非易失性存储介质140做出这种访问的代理的安全证书。例如,执行引擎130可评估驻留于主机平台150a上的请求代理一例如在主机OS 152上执行的应用一和/或经由网络耦合以通过主机平台150a向DSD 110通信的远程代理的安全证书。在一实施例中,安全管理过程可在提交非易失性存储介质140中的数据变更之前验证认证代码。
应理解,本文所述的一个或多个安全管理特征可通过由210处的执行引擎130所执行的多个安全管理过程和/或通过由210处的执行引擎130所执行的安全管理过程的一个或多个子过程来不同地实施。方法200可进一步包括在220处执行用于与主机平台150a的存储驱动器154的消息交换的I/o过程。在一实施例中,对I/O过程的执行可实现为硬件的低层控件访问非易失性存储介质140的驱动器。应理解,210处的一个或多个I/O操作可通过由210处的执行引擎130所执行的多个I/O过程和/或通过由210处的执行引擎130所执行的I/O过程的一个或多个子过程来不同地实施。由220处的I/O过程所促进的消息交换可例如访问非易失性存储介质140的可由主机OS 152访问的一部分。在一实施例中,例如,在210处部分或全部I/O操作可服从在210处执行的安全管理操作的一个或多个结果。例如,用于传输去往或来自DSD 110的I/O操作可服从关于这种传输是否被授权的确定。为了简洁描述各实施例的特征起见,图3A到图3D的多个DSD的特征在本文中按照其与主机平台150a耦合且一起操作来描述。但是,应理解,此类特征可被扩展以附加地或替换地应用于同样在本文中讨论的与多种其它主机平台的连接并且与其一起操作。图3A示出根据实施例的用于供应安全管理的DSD 300a的选择要素。例如,DSD300a可包括DSD 110的部分或全部特征。在一实施例中,DSD 300a是可插入设备,其可热和/或冷插入到(或从中拔出)一个或多个类别的能计算平台——例如上网本计算机、笔记本计算机、台式计算机、家用娱乐设备(包括机顶盒)、家用网关或服务器、车载式信息娱乐系统、办公或娱乐设备等的平台。例如,DSD 300a可包括用于耦合到主机平台(诸如主机平台150a)的总线接口 120 (未示出)。在一实施例中,DSD 300a的DSD硬件335a可包括处理器360a——例如一个或多个处理核和/或处理单元一以实施执行引擎130。为了实施执行引擎130的一个或多个过程,处理器360a可执行一个或多个程序——例如在DSD硬件335a的DSD固件340a中可用。作为示例而非限制,执行引擎130可包括由处理器360a实施的DSD操作系统305a,处理器360a执行存储介质380a中(例如在安全存储385a中)和/或在DSD固件340a中的代码。在一实施例中,DSD固件340a可包括I/O代码345a,DSD 300a藉此执行I/O过程一例如用于220处的消息交换的部分或全部。作为示例而非限制,对I/O代码345a的执行可导致DSD操作系统305a提供向DSD硬件335a的存储介质380a写入数据和/或从其读取数据的控制信号。作为替换或附加,DSD固件340a可包括支持例如在210处将由DSD 300a执行的安全管理过程的安全管理固件350a。在一实施例中,安全管理固件350a包括文件管理代码352a以供应安全存储385a——存储介质380a的可由DSD操作系统305访问以用于实施安全管理服务的一个或多个区域。文件管理代码352a可以至少部分地限制一个或多个外部代理(例如,主机平台150a和/或主机OS 152)对安全存储385a的访问。作为附加或替换,文件管理代码352a可提供一个或多个安全证书,其由密钥和/或证书(密钥/证书)390a表示并将被存储在安全存储385a中——例如用于验证远程代理具有对DSD 300a的特定类型的访问。
在一实施例中,用户可独立地运输DSD 300a以便在不同时刻不同地连接到不同的主机平台。因此,DSD 300a可提供便携式设备以便用户在不同平台上容易地且安全地携带他们的各种信息、应用、安全秘密(例如,密码、个人ID、认证令牌、对访问预付服务的供
应)等。图3B示出根据实施例的DSD 300b的选择要素。例如,DSD 300b可包括DSD 300a的部分或全部特征。更特别地,可在DSD 300b的DSD硬件335b和/或DSD操作系统305b中分别找到DSD硬件335b和/或DSD操作系统305b的部分或全部特征。例如,DSD硬件335b的处理器360b可执行DSD固件340b以实施用于I/O过程访问DSD硬件335b的存储介质380b的执行引擎。在一实施例中,I/O过程可通过执行DSD固件340b中的I/O代码345b来实施。此外,DSD固件340b中的安全管理固件350b可实施执行引擎的一个或多个安全管理过程。在一实施例中,安全管理固件350b的文件管理代码352b可控制对存储介质380b的安全存储385b的访问。在一实施例中,DSD操作系统305b可包括反恶意软件的软件310b——例如响应于处理器360b执行安全管理固件350b的安全扫描代码354b。作为附加或替换,反恶意软件的软件310b可通过执行驻留于安全存储385b中的代码来实施。例如,反恶意软件的软件310b可扫描正被存储于、传输至或传输自存储介质380b的数据——例如该扫描操作用于确定对DSD 300b的访问是否被授权。在一实施例中,对安全扫描代码354b的执行可导致处理器360b附加地或替换地计算差别信息——例如出于将DSD 300b中的数据的当前状态与DSD300b中的数据的先前状态相比较的目的。例如,这种差别信息可包括时间散列390c,该时间散列390c是存储于DSD 300b中的一定量的数据的基于时间的散列。应理解,对安全扫描代码354b的执行可导致处理器360b计算多种附加或替换类型的差异信息中的任何一种——例如用作描述在特定时刻DSD 300b中的数据的特定状态的元数据。作为替换或附加,这种差别信息可包括描述某一时刻在DSD 300b中存储的数据的状态的信息与不同时刻在DSD 300b中存储的数据的状态的信息之间的任何差别的计算。处理器360b的安全管理过程可根据这种经计算的差别进一步确定对存储介质380b的访问(经授权和/或未授权)已经发生。与可能由主机OS 152 (例如由主机处理单元160和/或平台控制器中枢164)生成的任何差别信息不同,由DSD 300b生成的差别信息被信任,因为随着存储介质380b的主机OS 152具有访问权的区域发生变更,该差别信息的生成和/或在DSD硬件335b中的存储独立于主机OS 152。差别信息可被安全地存储在安全存储385b中。由DSD 300b的安全管理过程所生成的差别信息和/或其它信息可通过用于限制对安全存储385b的访问的多种技术中的任何一种来保护。此类技术可包括例如在由可信计算组(TCG )于2009年发布的Opal安全系统子类(SSC)规范中陈述的协议、数据结构等,但是各实施例在这方面不受限制。希望访问差别信息的代理可被要求对DSD 300b的安全管理过程的认证。在一实施例中,这种对安全管理过程的认证可通过在安全存储385b内部嵌入根证书(由密钥/证书390d表示)以及向经授权方发布基于根证书的证书来实施。在某些实施例中,可例如通过使用模式匹配加速器(例如,用于执行模式匹配功能的神经网络或其它专用硬件)来增强DSD操作系统305b的安全管理过程所进行的扫描。这种加速器的一个示例由片上系统365b的模式匹配引擎375b来表示。模式匹配引擎375b可包括例如多种正则表达式(RegEx)加速器和/或神经网络硬件加速器(诸如各种ZISC (零指令集计算机)人工神经网络(ANN)芯片)中的任何一种。尽管结合模式匹配引擎375b的实施一起示出,但是应理解,根据多个实施例,反恶意软件的软件310b可在不包括此类增强的DSD中操作。此外,尽管模式匹配引擎375b被示为驻留于与处理器360b相同的片上系统(SoC) 365b中,但是应理解根据多个实施例,这种硬件可驻留于不同的相应集成电路芯片上。模式匹配引擎375b可用作DSD 300b的通用过滤器和/或数据挖掘引擎。使DSD300b装备有这种引擎可提高搜索非结构化信息和结构化信息(例如,当前存储于存储介质380b、自存储介质380b发送和/或向存储介质380b写入的数据)两者的速度。作为示例而非限制,代替向主机处理单元160移动大量数据以与特定模式相比较,模式可被分发到DSD300b,其中可执行模式匹配并具有减少与数据和/或指令传输相关联的等待时间的益处。此外,可在具有多个能计算的存储设备(诸如DSD 300b)的系统中利用模式匹配的并行化。同样存在机会反射跨装备有模式匹配加速器的多个安全供应存储设备分发的数据,藉此可高效地进行搜索/询问/数据挖掘操作。例如,装备有诸如DSD300b之类的存储设备的多个模式匹配加速器可耦合至公共主机平台,和/或经由多个主机平台联网到一起,因为数据挖掘网络附接存储(DM-NAS)设备能够以时间和功率高效的方式来过滤和寻找数据中的模式。在一实施例中,当与主机平台的一个或多个处理器的操作相比较时,处理器360b可包括将支持较低功率域(闭合盖子或打开盖子)操作的某类型的一个或多个处理器核。例如,Inte膽Atom处理器和/或来自ARM 啲多个较低功耗处理器(例如在ARM11 处理
器系列中)可用于实施本文所述的一个或多个安全管理过程。在比较而言较低功率模式下的DSD 300b中的处理功率的可用性可为与DSD 300b耦合的主机平台扩展可用的功率管理选项。在一实施例中,当主机平台(例如主机平台100a)在不允许这种扫描在所述主机平台处执行的功率状态下操作时,可由DSD 300b执行一个或多个扫描功能。例如,当主机平台以高级配置与电源接口(ACPI)S3备用模式操作时,这种扫描可能发生。在主机平台的这种备用模式中,来自主机平台的足够功率仍对SoC 365b和/或DSD 300b的其它组件可用以便由反恶意软件的软件310b扫描存储介质380b。低功率操作期间(即在终端用户有很少或没有交互的周期期间)的这种扫描可有助于对终端用户透明的AVS扫描操作。Sand-boxing (沙盒技术)是包括在对应用进行任何释放以便在任何其它地方执行(例如由主机处理单元160执行)之前在安全计算环境中发起应用以供评估。在一实施例中,对安全扫描代码354b的执行可导致处理器360b附加地或替换地执行沙盒技术以及对在DSD操作系统305b中执行的测试应用395b的评估。使处理器360b (例如,低功率x86丨ntel 核或Atom 核)集成到DSD 300b中允许ISV实施和部署带外和深嵌入沙盒工具,藉此可测试应用以验证应用是否包括恶意软件(例如,病毒、botnet (僵尸网络)等)。对测试应用395b的沙盒评估可由用于存储先前数据版本的存储介质380b中的本地备份390b支持。本地备份390b可用于将修改的数据集恢复到某一先前状态——例如如果对这种数据的修改仅出于测试目的和/或如果确定这些修改归因于恶意软件的操作。在多个实施例中,本地备份390b可附加地或替换地用于为正被应用的现实(即非测试模式)执行所修改的数据提供备份版本。对安全扫描代码354b的执行可导致处理器360b附加地或替换地维护如日志390e所表示的一个或多个日志一例如在安全存储385b中。日志390e可存储关于多个事件中的任何一个的信息,所述多个事件包括但不限于I/O事件、访问授权事件、扫描事件、恶意软件检测和/或恢复事件等中的一个或多个。在一实施例中,日志390e中的部分或全部信息对于主机OS 152是不可访问的。在另一实施例中,日志390e可由呈现有效证书的远程代理(例如,主机OS 152和/或经由网络与系统IOOa通信的远程服务)访问。对安全扫描代码354b的执行可导致处理器360b附加地或替换地评估存储介质380b中的文件的完整性。作为示例而非限制,安全扫描代码354b可执行误差校正代码、奇偶校验或不依赖于主机OS 152所做计算的其它完整性评估。在DSD300b维护诸如日志390e之类的一个或多个日志的情况下,ISV、IT部门以及其它此类代理可将存储装置作为恶意软件传感器对待,其中实时信息可由DSD 300b编译并从DSD 300b访问以访问安全威胁的性质和级别和/或以访问在网络中采取的特定安全动作可能具有的影响(投资收益率)。图3C示出根据实施例的DSD 300c的选择要素。例如,DSD 300c可包括DSD 300b的部分或全部特征。更特别地,可在DSD硬件335b和/或DSD操作系统305b中分别找到DSD硬件335c和/或DSD操作系统305c的部分或全部特征。例如,DSD硬件335c的处理器360c可执行DSD固件340c以实施用于I/O过程访问DSD硬件335c的存储介质380c的执行引擎。在一实施例中,I/O过程可通过执行DSD固件340c中的I/O代码345c来实施。此外,DSD固件340c中的安全管理固件350c可实施一个或多个安全管理过程。在一实施例中,安全管理固件350c的文件管理代码352c可控制对存储介质380c的安全存储385c的访问。在一实施例中,对文件管理代码352c的执行可导致处理器360c供应由被指定且批准的代理(例如,包括应用、OS的、诸如AVS ISV之类的服务提供商等)访问的安全存储385c。对安全存储385c或DSD硬件335c的其它要素的访问可由多种加密协议中的任何一种来保护一例如由高级加密标准(AES)加密引擎370c (例如,其驻留于具有处理器360c的SoC 365c上)所支持的协议。此外,控制由远程代理对安全存储385c的访问可以是改进的服务供应解决方案的基础。对安全存储385c的访问可包括交换用户数据390g和/或密钥/证书390f信息(例如用于认证和/或授权)的代理。作为示例而非限制,安全存储385c的部分可为此类代理提供安全“停放区”一即供代理存储特权信息(诸如密码、证书、软件代码、用于传递服务的文件(诸如由ISV使用的.DAT文件)、数字介质(诸如DRM娱乐内容)、HD电影、音乐、图像、游戏等)以及在受信任(受保护的)环境内安全地执行代码的区域。这种停放区的一个示例以ISV资产390h表示。在一实施例中,授权对存储介质380c的访问可以响应于DSD 300c参加与耦合至主机平台150a (例如经由网络)的远程服务的交换。在例示场景中,主机平台150a的用户可操作在主机OS 152上执行的web浏览器以导航至电子商务网站一例如用以购买产品。用户认证信息可被交换以供用户获得对特定web服务的访问。在一实施例中,web服务可能需要确定和/或更新系统IOOa的安全性能。为了支持用户和远程服务之间的这种交互,远程服务可在安全存储385c的ISV资产390c中存储软件组件。此外,远程服务可在安全存储385c的ISV资产390c和/或密钥/证书390f中存储加密密钥或其它信息以保证DSD 300c与远程服务之间的消息交换。例如根据本文所讨论的技术,DSD操作系统305c的安全管理服务(诸如反恶意软件的软件310b)可清除ISV资产390h中用于在处理器360c上执行的软件组件。一旦清除,软件组件可由远程服务调用以便在DSD操作系统305c中执行——例如用以确定DSD300C是否具有诸如支持基于硬件的认证之类的给定能力。通过在DSD 300c中利用受信任的执行和存储环境,远程服务可安全地实施与DSDIOOc的多种交换中的任何一种和/或DSD IOOc中的多种操作中的任何一种来支持跨网络提供服务。作为示例而非限制,远程服务可邀请平台150a的用户加入要由与其耦合的DSD300c执行的基于硬件的认证。加入这种基于硬件的认证可允许用户将DSD 110不同地移动至不同的平台,用户可从这些平台访问电子商务网站。从这些不同平台中的一个或全部,可使用驻留于DSD 300c上的令牌、密钥和/或安全软件对于远程服务来认证用户。即使与DSD 300c稱合的特定主机平台的安全状态被损害,用户的认证信息和/或认证交换的安全性和完整性也仍可被信任,这归因于对安全存储385c的保护。在一实施例中,DSD 300c可包括经由网络直接连接至受信任实体(例如ISV)的能力,从而绕过主机OS。作为示例而非限制,I/O代码345c可通过诸如PCH 164之类的平台控制器中枢来交换网络通信,其中网络通信沿着一路径被中继至网络接口 166,该路径独立于在主机处理单元160上执行的任何通用主机OS。此类网络通信可经由主机平台150b的多个有线和/或无线网络接口中的任何一个来交换。图3D示出根据实施例的DSD 300d的选择要素。例如,DSD 300d可包括DSD 300b的部分或全部特征。更特别地,可在DSD硬件335b和/或DSD操作系统305b中分别找到DSD硬件335d和/或DSD操作系统305d的部分或全部特征。例如,DSD硬件335d的处理器360d可执行DSD固件340d以将DSD操作系统305d作为执行引擎实施以便I/O过程访问DSD硬件335d的存储介质380d。在一实施例中,I/O过程可通过执行DSD固件340d中的I/O代码345d来实施。此外,DSD固件340d中的安全管理固件350d可实施一个或多个安全管理过程。在一实施例中,安全管理固件350d的文件管理代码352d可控制对存储介质380d的安全存储385d的访问。对安全存储385d或DSD硬件335d的其它元件的访问可通过由AES (或其它)引擎370d支持的加密技术来保护——例如其中AES引擎370d驻留于具有处理器360d的SoC 365d上。应理解,根据多个实施例,AES引擎370d可驻留于单独的集成电路芯片上而非处理器360d的芯片上。差别信息可用于减小要由DSD 300d的安全管理过程执行的扫描的频率和/或范围。在一实施例中,诸如在时间散列390i中的差别信息之类的差别信息可用于标识存储介质380d的自执行存储介质380d的某些先前基线扫描以来尚未改变的区域。此外,一个或多个ISV可提供——例如向安全存储385d中的ISV资产3901——信息,诸如一个或多个.DAT文件,包括描述已知恶意软件集合的签名或其它信息。对安全存储385c的这种访问可包括ISV交换用户数据390k和/或密钥/证书390j信息(例如用于认证和/或授权)。
通过使用时间散列390i和ISV资产3901,处理器360d的安全管理过程可将存储介质380d的特定文件和/或区域标识为(I)自基线扫描以来已经改变(或尚未改变),和/或(2)已经针对至少某些已知恶意软件被扫描(或未被扫描)。基于这种标识,对存储介质380d的扫描可更加有效地定制以使扫描时间和/或工作负载最小化。作为示例而非限制,对存储介质380d的扫描可以避免,如果其区域没有被改变并且AVS ISV没有提供新的恶意软件签名。替换地,对存储介质380d的未改变区域的扫描可被选择性地限于仅仅扫描最近被标识的恶意软件,其中此类未改变区域已经针对先前标识的恶意软件进行了扫描。取决于数据利用以及允许在AVS扫描之间发生的时间,受信任差别信息的可用性可减小扫描工作负载数个数量级。在一实施例中,处理器360d可执行用于在DSD 300d与位于系统IOOa外部的受信任实体之间的安全(例如带外)通信的安全隧道代码356d。更特别地,安全隧道代码356d可提供在DSD 300d和与DSD 300d耦合的主机平台之间的通信中的数据的隧穿。隧穿的数据可由在主机平台上执行的部分或全部操作系统(例如,主机OS 152)转发但是对这些操作系统而言不可访问。应理解,在主机OS不知道隧穿的数据的存在和/或主机OS自己无法读取或以其它方式评估隧穿的数据(例如,归因于加密或其它保护)的范围内,这种隧穿的数据可以是不可访问的。在一实施例中,DSD 300d可附加地或替换地用作高性能计算(HPC)多节点系统的计算元件。作为示例而非限制,包括诸如存储装置300d之类的一个或多个能计算存储装置的计算平台集群可联网以实施可高度并行化的HPC。此类HPC网络的性能可通过诸如光学USB (光峰)和/或与基于NAND的驱动器相关联的高I/O速度和原生并行性之类的高速互连技术来增强。DSD 300d与其它能计算代理的集成(如同HPC系统中的操作一样)可通过扩展诸如Intel QuickAssist (快速帮助)技术加速器抽象层(AAL)之类的抽象架构来促进,该扩展用于允许跨总线156和将DSD 300d耦合至主机平台150a的总线接口 120的工作负载分发。这种能力使得驻留于主机平台150a上的代理或者远离主机平台150a的代理获得在DSD 300d上(例如在DSD 300d内部包含的加速器上)或者在通过多个总线连接到主机平台150a的其它DSD上执行的工作负载的至少一部分。此外,由于抽象层的存在,对代理的影响可以最小或者为零,因为未来技术不同地移动不同加速器至主机平台上的其它区域一例如平台控制器中枢。在多个实施例中,去往和/或来自DSD 300d的HPC数据交换可通过主机平台150a的OS隧穿。但是,应理解,在多个替换实施例中这些HPC通信可能不需要这种数据隧穿。例如,在某些实施例中,DSD操作系统305d和诸如主机OS 152之类的主机操作系统可作为同一 HPC系统的单独节点来操作。图4示出根据实施例的用于安全服务供应的交换400的选择要素。交换400包括DSD执行引擎410 (例如DSD 110的执行引擎130)、用于DSD的主机平台(诸如主机平台150a)的主机OS 420以及经由网络与主机平台通信的ISV的ISV入口 430之间的各种通信。交换400中的DSD执行引擎410的操作可响应于具有安全管理固件350a-d的部分或全部特征的安全管理代码的执行。方法400在440处包括用户在网络中导航以访问ISV入口 430——例如经由主机平台的web浏览器。用于访问ISV入口 430的导航440可包括主机OS 420发送诸如请求访问ISV入口 430的服务的通信。在一实施例中,导航440包括主机OS 420向ISV入口 430提供DSD执行引擎410的主机平台的用户的认证信息,诸如用户姓名和密码。响应于这种通信,在445处ISV入口 430可执行JavaScript或其它代码以生成用于保证ISV服务供应的认证对象。作为替换或附加,在450处ISV入口 430可向主机OS 420提供由包括DSD执行引擎410的DSD执行本地认证(即认证在DSD处执行且同与DSD耦合的主机OS 420的主机平台分离)的请求450。在一实施例中,消息450包括认证根——例如在将由ISV入口 430存储的令牌与由DSD执行引擎410存储的令牌同步中使用的随机数生成种子。消息450中的认证根可被签名和/或加密一例如基于由其上驻留有DSD执行引擎410的DSD的制造商所提供的证书。在455处主机OS 420可批准在DSD处执行所请求的认证。例如,批准455可响应于主机平台用户向主机OS 420提供允许这种批准的输入。在批准455之后,主机OS 420可向DSD执行引擎410发送包括来自ISV入口 430的根的一次性密码(OTP)消息460。DSD执行引擎410可验证所接收的OTP消息460—例如利用存储在DSD的安全存储中的密钥和/或证书信息——以生成在访问ISV入口 430的服务中使用的一次性密码。密码的生成可基于令牌的同步,使用OTP消息460中的根使令牌的同步成为可能。通过验证OTP消息460,DSD执行引擎410可发送指示这种验证的成功消息465。响应于成功消息465,在470处ISV入口 430可将帐户与DSD执行引擎410的OTP相关联,该关联操作用于实现DSD的访问会话。ISV入口 430可向DSD执行引擎410发送针对基于根的一次性密码的请求475,因此在480处DSD执行引擎410可将OTP提供给ISV入口 430,从而确保ISV服务的安全供应。在一实施例中,用于交换400的信息的生成、存储和/或传达可按不同方式受保护以免于主机OS 420的受损害的完整性的风险。作为示例而非限制,各种通信一例如成功消息465、对OTP 475和OTP 480的请求中的一个或多个——可在DSD引擎410和ISV入口 430之间的通信信道中隧穿。这种隧穿可将主机OS 420与某些访问隔离开以检测或以其它方式处理此类通信中的信息。作为替换或附加,令牌、密钥、证书、密码或其它安全信息可被存储在安全DSD存储器的受保护免于主机OS 420访问的区域中。图5示出根据实施例的用于检测DSD处的恶意软件攻击并从其恢复的方法500的选择要素。方法500可由能计算的DSD的执行引擎来执行,其中DSD耦合至与远程AVS ISV联网的主机平台。方法500可包括在510处DSD针对根证书认证AVS ISV0在一实施例中,根证书位于DSD的安全存储(例如安全存储385a)中,并且认证过程在DSD内部独立于主机CPU和芯片组执行。在AVS ISV被认证之后,在520处DSD可获得和/或实施与AVS ISV相关联的安全管理功能。作为示例而非限制,DSD可供应来自AVS ISV的任何相关安全应用,向AVS ISV分配安全存储385a的特定锁定范围,和/或将由AVS ISV提供的任何恶意软件签名加载到锁定范围中。在获得/实施AVS ISV更新之后,在530处DSD可执行通用(例如非AVS)操作,其中文件和/或应用可按不同方式使用和/或修改。在一实施例中,实施检测和/或恢复措施以保护此类使用和/或修改。有意义的是恶意软件攻击的影响可能在此类通用操作期间发生。作为示例而非限制,在此类通用操作期间,可追踪对文件和/或应用的改变,可计算DSD的非易失性存储介质的基于时间的散列,可维持事件日志,和/或可存储数据的备份版本。在540处,DSD非易失性介质的某部分可被扫描以检测恶意软件攻击的任何指示。这种扫描可至少部分地通过DSD的执行引擎来执行。作为替换或附加,这种扫描的部分或全部可通过DSD的主机平台的主机OS来执行。对DSD非易失性存储介质的扫描可基于来自AVS ISV的.DAT文件或其它数据结构中的恶意软件签名或其它安全信息。在一实施例中,扫描可由DSD来执行,同时DSD的主机平台处于低功率模式(例如备用或睡眠模式)。响应于检测恶意软件的任何影响,在550处DSD可实施恢复措施。例如,DSD可移除任何检测到的恶意软件、将被修改的数据文件恢复到它们的初始状态、安全地记录恶意软件检测事件、和/或利用差别信息或其它信息安全地更新AVS ISV文件以帮助AVS的未来操作。本文描述了用于提供安全管理的技术和架构。在前面的描述中,为了便于说明,阐述了很多具体细节以便提供对特定实施例的透彻理解。然而,对本领域技术人员显而易见的是,某些实施例可在无需这些具体细节的情况下实施。在其他情况下,以框图形式示出结构和设备以避免使说明变得晦涩。在本说明书中,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在本说明书各处中出现的短语“在一个实施例中”并不一定全部指代同一实施例。以对计算机存储器内数据位的操作的算法和符号表示,来呈现本文描述的一些部分。这些算法描述和表示是计算机领域内技术人员使用的手法,它最有效地将其工作本质传达给本领域内其它技术人员。算法在本文中被一般地构思成达到所要求结果的自洽步骤序列。这些步骤需要对物理量进行物理操控。通常但非必须,这些量采用能被存储、传输、组合、比较、以及以其他方式操控的电信号或磁信号的形式。主要出于常见用途的考虑,将这些信号称为位、值、要素、符号、字符、项、数字等被证明是方便的。然而,应当铭记,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。除非明确指明,否则如从本文描述中显而易见的,可以理解,在全文中,利用诸如“处理”或“计算”或“运算”或“确定”或“显示”等术语的讨论,指的是计算机系统或类似电子计算设备的动作和进程,该计算机系统或类似电子计算设备操纵在该计算机系统的寄存器和存储器内表示为物理(电子)量的数据并将其转换成在该计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内类似地表示为物理量的其他数据。某些实施例还涉及用于执行本文操作的装置。这些装置可专门构造来用于所需目的,或其可包括通用计算机,该通用计算机由存储在该计算机内的计算机程序有选择地激活或重新配置。这种计算机程序可以存储在计算机可读存储介质中,这些计算机可读存储介质例如但不限于任何类型的盘,包括软盘、光盘、⑶-ROM、磁光盘、只读存储器(ROM)、诸如动态RAM(DRAM)的随机存取存储器(RAM)、EPROM、EEPR0M、磁卡或光卡、或适用于存储电子指令且都耦合至计算机系统总线的任何类型的介质。
本文呈现的算法和显示并非固有地相关于任何特定计算机或其他装置。可以将各种通用系统与根据本文教示的程序一起使用,或可以证明构造更专门的装置来实现所要求的方法步骤是方便的。各种这些系统的所需结构将从本申请中的描述中呈现。另外,不参考任何特定编程语言来描述某些实施例。可以理解,可以使用多种编程语言来实现本文所描述的这些实施例的示教。除了本文描述的,可对所披露的实施例及其实现作出多种修改而不脱离其范围。因此,本文中的示例和范例应当被解释成解说性的,而非限制性的。本发明的范围应当仅参照所附权利要求书予以界定。
权利要求
1.一种数据存储装置,包括: 用于存储数据的非易失性存储介质; 与处理器和存储器一起运行的执行引擎,所述执行引擎耦合至所述非易失性存储介质,所述执行引擎用于执行安全管理过程以检测对所述非易失性存储介质的访问是否被授权;以及 耦合至所述执行引擎的总线接口,所述总线接口用于将所述数据存储装置连接至主机平台的总线,其中所述执行引擎进一步用于执行输入/输出(I/o)过程以用于所述执行引擎与所述主机平台的存储驱动器之间的消息交换,所述执行引擎的消息交换进一步用于访问所述主机平台的操作系统的非易失性存储介质。
2.如权利要求1所述的数据存储装置,其特征在于,检测对所述非易失性存储介质的访问是否被授权包括以下至少之一: 扫描所述非易失性存储介质以检测对所述非易失性存储介质的未授权访问;以及 基于请求访问所述非易失性存储介质的代理的安全证书来标识访问授权。
3.如权利要求2所述的数据存储装置,其特征在于,基于所述安全证书标识所述访问授权包括在将变更提交到所述数据之前验证认证代码。
4.如权利要求2所述的数据存储装置,其特征在于,所述安全管理过程用于扫描所述非易失性存储介质以检测对所述非易失性存储介质的未授权访问,其中所述安全管理过程进一步用于生成差别信息以标识自对所述非易失性存储介质的先前扫描以来在所述非易失性存储介质中的变更。
5.如权利要求1所述的数据存储装置,其特征在于,所述执行引擎进一步用于限制所述主机平台的操作系统对所述非易失性存储介质的安全区域的访问。
6.如权利要求1所述的数据存储装置,其特征在于,所述执行引擎进一步用于经由所述总线接口提供关于所述非易失性存储介质的受信任信息,其中所述受信任信息是数据块、数据扇区以及文件中之一所专用的,其中所述受信任信息被提供给在所述主机平台上运行的应用或者被提供给位于所述主机平台外部的代理。
7.如权利要求1所述的数据存储装置,其特征在于,所述主机平台的总线包括通用串行总线(USB )总线、串行高级技术附接(SATA)总线、快速外围部件互连(PC1-E )总线以及小型计算机系统接口(SCSI)总线中之一。
8.如权利要求1所述的数据存储装置,其特征在于,所述执行引擎用于建立数据隧道以经由所述操作系统与位于所述主机平台外部的代理或者与所述主机平台的受信任代理交换消息,所述数据隧道用于限制所述主机平台的所述操作系统对所述消息的访问。
9.如权利要求1所述的数据存储装置,其特征在于,所述安全管理过程用于在所述主机平台的睡眠模式期间执行对所述非易失性存储器的扫描。
10.如权利要求1所述的数据存储装置,其特征在于,还包括模式匹配加速器,所述模式匹配加速器用于帮助检测在所述非易失性存储介质上存储的数据的特定模式。
11.一种方法,包括: 利用数据存储装置的执行引擎,执行安全管理过程以检测对所述数据存储装置的非易失性存储介质的访问是否被授权,其中所述数据存储装置的总线接口将所述数据存储装置连接至主机平台的总线;利用所述执行引擎,执行输入/输出(I/O)过程以用于所述执行引擎与所述主机平台的存储驱动器之间经由所述总线接口的消息交换,所述执行引擎的消息交换用于访问所述主机平台的操作系统的非易失性存储介质。
12.如权利要求11所述的方法,其特征在于,检测对所述非易失性存储介质的访问是否被授权包括以下至少之一: 扫描所述非易失性存储介质以检测对所述非易失性存储介质的未授权访问;以及 基于请求访问所述非易失性存储介质的代理的安全证书来标识访问授权。
13.如权利要求12所述的方法,其特征在于,所述安全管理过程扫描所述非易失性存储介质以检测对所述非易失性存储介质的未授权访问,其中所述安全管理过程生成差别信息以标识自对所述非易失性存储介质的先前扫描以来在所述非易失性存储介质中的变更。
14.如权利要求11所述的方法,其特征在于,进一步包括所述执行引擎限制所述主机平台的操作系统对所述非易失性存储介质的安全区域的访问。
15.如权利要求11所述的方法,其特征在于,所述安全管理过程对在所述非易失性存储介质中存储的数据执行完整性评估。
16.一种计算机可读存储介质,其上存储有指令,所述指令在被一个或多个处理单元执行时使所述一个或多个处理单元执行方法,所述方法包括: 利用数据存储装置的执行引擎,执行安全管理过程以检测对所述数据存储装置的非易失性存储介质的访问是否被授权,其中所述数据存储装置的总线接口将所述数据存储装置连接至主机平台的总线; 利用所述执行引擎,执行输入/输出(I/O)过程以用于所述执行引擎与所述主机平台的存储驱动器之间经由所述总线接口的消息交换,所述执行引擎的消息交换用于访问所述主机平台的操作系统的非易失性存储介质。
17.如权利要求16所述的计算机可读存储介质,其特征在于,检测对所述非易失性存储介质的访问是否被授权包括以下至少之一: 扫描所述非易失性存储介质以检测对所述非易失性存储介质的未授权访问;以及 基于请求访问所述非易失性存储介质的代理的安全证书来标识访问授权。
18.如权利要求17所述的计算机可读存储介质,其特征在于,所述安全管理过程扫描所述非易失性存储介质以检测对所述非易失性存储介质的未授权访问,其中所述安全管理过程生成差别信息以标识自对所述非易失性存储介质的先前扫描以来在所述非易失性存储介质中的变更。
19.如权利要求16所述的计算机可读存储介质,其特征在于,进一步包括所述执行引擎限制所述主机平台的操作系统对所述非易失性存储介质的安全区域的访问。
20.如权利要求16所述的计算机可读存储介质,其特征在于,所述安全管理过程对在所述非易失性存储介质中存储的数据执行完整性评估。
全文摘要
公开了用于数据存储装置本地地实施安全管理功能的技术。在一实施例中,数据存储装置的安全管理过程用于确定对数据存储装置的非易失性介质的访问是否被授权。在某些实施例中,数据存储装置用于限制对非易失性存储介质的安全区域的访问,安全区域用于存储数据存储装置的安全管理过程所使用和/或生成的信息。
文档编号G06F12/14GK103201746SQ201180053611
公开日2013年7月10日 申请日期2011年10月31日 优先权日2010年11月8日
发明者N·D·特瑞安塔菲罗, P·萨克希纳, R·W·斯特朗, R·J·希勒, E·塔米尔, S·本-迈克尔, B·W·斯图尔特, A·卡达姆, M·朗, J·T·多伊尔, H·M·科斯拉维, L·B·穆苏尔, E·J·普林, P·S·施米茨, C·L·巴瑞特, P·J·萨蒂卡兰 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1