发明内容
一种存储设备包括:控制器;耦合到控制器的存储介质;以及包括安全模块和密钥管理模块的数据安全桥;其中安全模块被配置为执行数据加密和/或数据解密;并且其中密钥管理模块被配置为获取存储在存储设备中的第一安全密钥,获取由存储设备接收的第二安全密钥,并且基于第一安全密钥和第二安全密钥来执行用户认证。
可选地,存储设备还包括用于与站通信的第一接口以及被配置为允许数据安全桥与控制器之间的通信的第二接口。
可选地,第一接口和第二接口是相同的类型。
可选地,第一界面和第二界面是不同的类型。
可选地,第二接口是与控制器集成的内部接口。
可选地,密钥管理模块被配置为每当存储设备从关机模式启动时基于第一安全密钥和第二安全密钥来执行用户认证。
可选地,密钥管理模块被配置为每当存储设备从省电模式唤醒时基于第一安全密钥和第二安全密钥来执行用户认证。
可选地,存储设备进一步包括第一接口和第二接口,其中安全模块被配置为经由第一接口接收数据,并且对接收的数据执行数据加密以获取加密的数据;并且其中第二接口被配置为向控制器传输加密的数据。
可选地,存储设备进一步包括第一接口和第二接口,其中控制器被配置为从存储介质中取回加密的数据,并且经由第二接口向安全模块传输加密的数据;并且其中安全模块被配置为解密加密的数据以获取解密的数据,并且经由第一接口将解密的数据从存储设备传输出去。
可选地,存储设备进一步包括用于容纳控制器、存储介质和数据安全桥的壳体。
可选地,数据安全桥的密钥管理模块包括被配置为存储第一安全密钥的介质。
可选地,控制器、安全模块和密钥管理模块被集成在集成电路(IC)芯片中。
可选地,第二安全密钥存储在USB或手机中。
可选地,存储设备被配置为经由连接器与站的桥通信地耦合,连接器包括SATA连接器、m.2连接器、PCIe连接器、以太网连接器或U.2连接器。
可选地,存储设备进一步包括无线接收器,其中存储设备被配置为经由无线接收器获取第二安全密钥。
可选地,数据安全桥进一步包括随机数发生器。
可选地,存储介质被配置为存储加密的数据。
可选地,存储介质包括旋转磁盘。
可选地,存储介质包括HDD或NAND闪存。
一种站包括所述存储设备。
可选地,该站被配置为获取不同于第二安全密钥的用户标识。
可选地,用户标识包括用户密码。
可选地,用户标识包括指纹、视网膜扫描或语音签名。
可选地,该站被配置为从外部设备接收第二安全密钥,并且向存储设备中的密钥管理模块传递第二安全密钥。
可选地,外部设备包括USB。
可选地,外部设备包括手机。
可选地,该站包括:被配置为检测外部设备的设备检测器;被配置为响应于设备检测器检测到外部设备而暂停启动和/或唤醒过程的启动和/或唤醒控制器;以及被配置为通知用户移除外部设备的通知生成器。
可选地,启动和/或唤醒控制器被配置为响应于用户移除外部设备而恢复启动和/或唤醒过程。
一种由存储设备执行的方法包括:从存储设备中的介质获取第一安全密钥;获取存储在外部设备中的第二安全密钥;由存储设备中的密钥管理模块基于第一安全密钥和第二安全密钥来执行用户认证;以及至少部分地基于执行用户认证的动作的结果来从存储设备中的存储介质中取回加密的数据。
可选地,该方法进一步包括从用户获取用户标识,其中如果用户标识满足标准并且如果用户认证成功,则加密的数据从存储设备中的存储介质中被取回。
可选地,用户标识包括用户密码、指纹、视网膜扫描或语音签名。
可选地,外部设备包括USB或手机。
可选地,存储设备包括无线接收器,并且其中第二安全密钥是由存储设备使用无线接收器获取的。
可选地,该方法进一步包括:在存储设备处接收数据;对接收的数据执行数据加密以获取加密的数据。
可选地,该方法进一步包括:向存储设备中的安全模块传输加密的数据;由安全模块对加密的数据进行解密以获取解密的数据;以及将解密的数据从存储设备中传输出去。
可选地,存储设备耦合到站,并且其中第二安全密钥从外部设备传输到站,该站向存储设备传递第二安全密钥。
可选地,该方法进一步包括:由站检测外部设备的存在;响应于检测到的外部设备的存在而暂停启动和/或唤醒过程;以及通知用户移除外部设备。
可选地,该方法进一步包括响应于用户移除外部设备而恢复启动和/或唤醒过程。
通过阅读以下详细描述,其他和进一步的方面和特征将变得很明显。
具体实施方式
以下参考附图描述各种实施例。应当注意的是,附图没有按比例绘制,并且遍及附图,具有相似结构或功能的元件由相同的附图标记表示。还应当注意的是,附图仅用于帮助描述实施例。它们不旨在作为本发明的详尽描述或作为对本发明范围的限制。另外,所示实施例不一定具有所示出的所有方面或优点。结合特定实施例描述的方面或优点不一定限于该实施例,并且可以在任何其他实施例中实践,即使没有如此说明,或者即使没有如此明确地描述。
图1示出了包括站12和存储设备20的***10。站12可以是台式计算机、膝上型计算机、服务器、驱动器插接站、或被配置为允许存储设备(诸如存储设备20)固定到其上的任何其他计算设备。站12包括CPU 30和桥32。桥32可以是通信地耦合在CPU 30与1/O之间的一个或多个芯片。在一些情况下,桥32可以是南桥。而且,在一些实施例中,桥32可以与CPU 30集成。存储设备20经由桥32耦合到站12的CPU 30。在一些情况下,存储设备20与站12之间的连接可以使用标准连接器(诸如SATA连接器(用于SATA接口)、m.2连接器(用于SATA或PCIe)、U.2连接器(用于PCIe)或以太网连接器)来实现。可选地,***10进一步包括存储器14,诸如用于存储数据的动态随机存取存储器(DRAM)。
如图所示,存储设备20包括存储介质50、控制器60以及容纳存储介质50和控制器60的壳体70。存储设备20可以是硬盘驱动器(HDD)、固态驱动器(SSD)或任何其他类型的存储设备。存储设备20中的存储介质50被配置为存储未加密的数据(明文),并且存储设备20的控制器60被配置为从存储介质50中取回未加密的数据并且输出所取回的数据用于向***10的站12传输。控制器60是存储设备20内的电气组件,其使得站12的CPU 30能够访问、读取、写入、删除和修改去往和来自介质50的数据。控制器60被配置为将从站12接收的指令翻译成可以被存储设备20理解的内容,反之亦然。来自站12的指令可以流过硬盘适配器,流入硬盘接口,并且然后流到控制器60上,控制器60向介质50(例如,磁盘)发送用于执行特定操作的命令。
在使用期间,站12的用户可以经由站12处的用户界面输入用户输入。在一些情况下,用户输入可以是将数据存储到存储设备20的请求。在这种情况下,站12的CPU 30处理用户输入并且以未加密的形式向存储设备20的控制器60传输数据。数据从站12到存储设备20的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。存储设备20的控制器60处理数据并且将数据以未加密的形式传递到存储介质50用于存储。
在其他情况下,用户输入可以是从存储设备20中取回数据的请求。在这种情况下,站12的CPU 30处理用户输入并且将该请求传输到存储设备20的控制器60。控制器60处理该请求并且从存储介质50中以未加密的形式取回所请求的数据。控制器60然后以未加密的形式将所请求的数据传输到站12。数据从存储设备20到站12的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。
在其他情况下,代替由站12的用户提供,存储数据的请求和/或取回数据的请求可以由站12从与站12通信的另一设备接收。另一设备可以是附接到站12的***设备,或者是经由因特网连接到站12的远程设备。
图1的***10的一个缺点在于缺乏对存储设备20中的数据的加密。黑客可以将存储设备20从***10中拔出,并且将其重新***另一站12。由于存储设备20包含标准接口(例如,SATA),所以黑客可以轻松地读出其数据。
图2示出了包括站212和存储设备220的另一***200。站212可以是台式计算机、膝上型计算机、服务器、驱动器插接站、或被配置为允许存储设备(诸如存储设备220)固定到其上的任何其他计算设备。站212还包括CPU 230、桥232和耦合到桥232的平台模块234。桥232可以是通信地耦合在CPU 30与1/O之间的一个或多个芯片。在一些情况下,存储设备220与站212之间的连接可以使用标准连接器来实现,诸如SATA连接器(用于SATA接口)、m.2连接器(用于SATA或PCIe)、U.2连接器(用于PCIe)或以太网连接器。平台模块234可以被配置为通过用户接口从站212的用户获取密码并且从存储设备220获取标识,该密码和标识可以由平台模块234用来执行认证。平台模块234的示例包括可信平台模块(TPM),诸如在计算机中使用的。可选地,***200进一步包括存储器214,诸如用于存储数据的动态随机存取存储器(DRAM)。
如图所示,存储设备220包括存储介质250、控制器260以及容纳存储介质250和控制器260的壳体270。控制器260是存储设备220内的电气组件,其使得站212的CPU 230能够访问、读取、写入、删除和修改去往和来自介质250的数据。控制器260被配置为将从站212接收的指令翻译成可以被存储设备220理解的内容,反之亦然。来自站212的指令可以流过硬盘适配器,流入硬盘接口,并且然后流到控制器260上,控制器260向介质250(例如,磁盘)发送用于执行特定操作的命令。存储设备220的控制器260包括被配置为执行数据加密和数据解密的安全模块262。存储设备220中的存储介质250被配置为存储由控制器260提供的加密的数据。存储设备220可以是HDD、SSD或任何其他类型的存储设备。
在使用期间,站212的用户可以经由站212处的用户界面输入用户输入。在一些情况下,用户输入可以是将数据存储到存储设备220的请求。在这种情况下,站212的CPU 230处理用户输入并且将数据以未加密的形式传输到存储设备220的控制器260。数据从站212到存储设备220的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。存储设备220的控制器260从站212接收未加密的数据,对数据进行加密以形成加密的数据,并且将加密的数据传递到存储介质250用于存储加密的数据。
在其他情况下,用户输入可以是从存储设备220中取回数据的请求。在这种情况下,站212的CPU 230处理用户输入并且将该请求传输到存储设备220的控制器260。控制器260处理该请求并且从存储介质250中以加密的形式取回所请求的数据。然后,控制器260解密加密的数据以获取未加密的数据,并且以未加密的形式将所请求数据传输到站212。数据从存储设备220到站212的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。
在其他情况下,代替由站212的用户提供,存储数据的请求和/或取回数据的请求可以由站212从与站212通信的另一设备接收。另一设备可以是附接到站212的***设备,或者是经由因特网连接到站212的远程设备。
存储设备220的控制器260还认证命令和/或相关联的数据。例如,当存储数据时,控制器260可以检查写入/存储命令和/或要存储的数据,以便确保命令和/或数据来自可信用户或可信设备。在一个实现中,控制器260可以通过检查由用户(通过与平台模块234相关联的用户界面)输入的密码来执行命令和/或数据的认证,以确保用户是可信用户。当取回数据时,控制器260可以检查取回命令以便确保取回命令来自可信用户或可信设备。再次,这可以通过检查由用户经由与平台模块234相关联的用户界面输入的密码来实现。
因此,存储设备220的控制器260包括加密、解密和认证功能。在一些情况下,存储设备220的控制器260的安全模块262可以包括用于将明文加密成加密的文本的加密模块、以及用于将解密的文本的解密的解密模块。而且,控制器260可以包括用于执行数据认证的认证器。例如,认证者可以检查由存储设备220的用户输入的密码以确保用户是可信用户。
图3示出了包括站312和存储设备320的***300。站312可以是台式计算机、膝上型计算机、服务器、驱动器插接站、或被配置为允许存储设备(诸如存储设备320)固定到其上的任何其他计算设备。站312还包括CPU 330和桥332。可选地,***300进一步包括存储器314,诸如用于存储数据的动态随机存取存储器(DRAM)。
如图所示,存储设备320包括数据安全桥322、存储介质350、控制器360、以及容纳数据安全桥322、存储介质350和控制器360的壳体370。控制器360是存储设备320内的电气组件,其使得站312的CPU 330能够访问、读取、写入、删除和修改去往和来自介质350的数据。控制器360被配置为将从站312接收的指令翻译成可以被存储设备320理解的内容,反之亦然。来自站312的指令可以流过硬盘适配器,流入硬盘接口,并且然后流到控制器360上,控制器360向介质350(例如,磁盘)发送用于执行特定操作的命令。存储设备320中的存储介质350被配置为存储加密的数据。存储设备320可以通过将数据安全桥322与诸如HDD、SSD或任何其他类型的存储机制/产品等存储机构耦合来实现。
数据安全桥322被配置为提供安全功能和/或密钥管理。如图所示,数据安全桥322包括被配置为与跟CPU 30相关联的桥进行通信的第一接口372、以及被配置为与存储设备320的控制器360进行通信的第二接口374。在所示实施例中,第一接口372被配置为使用诸如SATA连接器、m.2连接器、U.2连接器、PCIe连接器、以太网连接器等连接器与站312的桥332通信。第二接口374也可以被配置为使用诸如SATA连接器、m.2连接器、U.2连接器、PCIe连接器、以太网连接器等连接器与控制器360通信。在一些情况下,第一接口372可以是从接口,并且第二接口374可以是主接口。在其他情况下,第一接口372可以是主接口,并且第二接口374可以是从接口。在一些情况下,第一接口372与第二接口374是相同的类型,例如,第一接口372是SATA从接口,第二接口374是主接口。在其他情况下,第一接口372与第二接口374是不同的类型,例如,第一接口372是PCIe端点接口,并且第二接口374是SATA主接口。数据安全桥322还包括用于数据加密和/或数据解密的安全模块376、以及用于密钥管理(例如,用于执行安全检查)的密钥管理模块378。
在一些情况下,数据安全桥322的安全模块376可以包括用于将数据加密成加密的数据的加密模块、以及用于解密加密的数据以形成解密的数据的解密模块。借助于非限制性示例,安全模块376可以被配置为执行高级加密标准(AES)加密和解密、安全哈希算法1(SHA1)、椭圆曲线密码术(ECC)、任何其他对称或不对称加密函数、任何其他对称或非对称解密函数等。而且,在一些实施例中,数据安全桥322可以包括用于生成加密密钥和/或解密密钥的随机数发生器。
密钥管理模块378可以包括用于执行安全检查以认证用户的认证器。如图所示,站312被配置为从包含安全密钥的外部设备390获取安全密钥。在一个示例中,外部设备390被***站312的USB插槽中。安全密钥用于由数据安全桥322用来执行安全检查。在其他实施例中,代替USB,设备390可以是任何外部设备,诸如手机、iPad、平板电脑或能够存储安全密钥的任何其他设备。在另一实现中,设备390可以包括被配置为生成安全密钥的应用,该安全密钥用于由存储设备320的数据安全桥332进行检查。
密钥管理模块378可以采用各种技术来基于从外部设备390获取的安全密钥来执行安全检查。在一个实现中,在初始化过程期间,密钥管理模块378从外部设备390获取安全密钥并且在存储设备320处注册安全密钥。例如,存储设备320可以将来自外部设备390的安全密钥存储为第一安全密钥(参考安全密钥),由此在外部设备390与存储设备320之间建立“信任”。在随后的使用中,用户可以使用外部设备390来提供其秘密密钥(第二安全密钥)用于由密钥管理模块378进行处理。密钥管理模块378可以将安全密钥(第二安全密钥)与第一安全密钥(参考密钥)相比较以确定它们是否匹配。如果是,则密钥管理模块378可以确定用户是“可信”用户。在其他实施例中,除了由密钥管理模块378执行的上述密钥检查之外,还可以要求用户在平台312处提供另一种形式的标识(例如,用户密码、指纹、视网膜扫描、语音签名等)。在这种情况下,如果密钥管理模块378确定第二形式的标识和来自外部设备390的安全密钥两者都是正确的(即,如果它们与预先确定的参考标识和参考密钥相匹配),则用户可以访问存储介质350中的加密的数据。
在另一实现中,存储设备320可以包含(例如,存储)第一安全密钥,并且存储设备320被配置为获取由外部设备390提供的第二安全密钥。在存储设备320的初始化期间,密钥管理模块378可以使用第一安全密钥和第二安全密钥两者来创建新的签名。签名然后存储在存储设备320中作为参考签名。在随后的使用中,密钥管理模块378被配置为检查第一安全密钥和第二安全密钥两者的组合。特别地,用户可以使用外部设备390将第二安全密钥直接提供给站312或存储设备320。密钥管理模块378然后使用第二安全密钥和第一安全密钥来生成签名,并且将该签名与参考签名相比较。如果签名不匹配(安全检查失败),则数据安全桥322将阻止数据被存储和/或从介质350取回。如果检查通过,则数据安全桥322将允许数据被存储和/或从介质350取回。
在其他实施例中,除了上述特征之外,站312可以从用户获取第二形式的标识。例如,站312可以从用户获取密码,从用户获取指纹,从视网膜扫描获取视网膜特征,或从用户获取语音签名等等。在这种情况下,如果第二形式的标识和安全密钥检查通过,则数据安全桥322将允许数据被存储和/或从介质350取回。
数据安全桥322可以使用硬件、软件或两者的组合来实现。在一些情况下,数据安全桥322可以包括具有被配置为执行本文中描述的一个或多个功能的集成电路的芯片。而且,在一些实施例中,数据安全桥322可以包括被配置为执行本文中描述的一个或多个功能的处理器,诸如ASIC处理器、FPGA处理器、通用处理器或任何其他处理单元。在所示实施例中,数据安全桥322被实现为存储设备320的一部分。在其他实施例中,数据安全桥322被实现为站312的一部分。在其他实施例中,数据安全桥322的第一部分可以在站312侧实现,并且数据安全桥322的第二部分可以在存储设备320处实现。
在一些实施例中,存储设备320的一部分可以使用具有常规配置的存储机构或产品362来实现。例如,存储机构或产品362可以是HDD、SSD或任何其他类型的存储机构或产品。在这种情况下,数据安全桥322或其至少一部分可以与具有常规配置的存储机制或产品362组合以形成具有增强功能的存储设备320。在其他实施例中,存储机构或产品362可以不具有常规配置。而且,在另外的实施例中,项目362可以不是任何常规产品,而是可以代之以仅表示控制器360和存储机构350的组合。
另外,在一些实施例中,控制器360可以被配置为执行从存储介质350的数据取回和/或到存储介质350的数据写入,而本身不具有任何数据加密和/或数据解密功能。例如,在一些情况下,控制器360可以具有与其中没有构建加密模块的控制器60相同的配置。
在上面的实施例中,数据安全桥322被描述为具有安全模块376和密钥管理模块378两者。在其他实施例中,数据安全桥322可以包括安全模块376而没有密钥管理模块378。在另外的实施例中,数据安全桥322可以包括密钥管理模块378而没有安全模块376。而且,在其他实施例中,数据安全桥322可以使用子组件或模块来实现。
在使用期间,存储设备320首先被初始化。特别地,可以执行初始化过程以初始化存储设备320。在一个实现中,在初始化过程期间,密钥管理模块378获取从外部设备390(“可信”设备)提供的安全密钥,并且向存储设备320注册安全密钥。例如,密钥管理模块378可以将由外部设备390提供的安全密钥作为第一安全密钥存储在存储设备320中。备选地,可以存在已经存储在存储设备320中的第一安全密钥。在这种情况下,来自外部设备390的安全密钥是第二安全密钥,并且密钥管理模块378被配置为将由外部设备390提供的第二安全密钥与存储在存储设备320中的第一安全密钥相关联。在一个实现中,密钥管理模块378可以访问存储在存储设备320中的第一安全密钥,并且可以使用第一安全密钥和第二安全密钥两者来创建签名。签名可以存储在存储设备320中用于稍后使用。备选地或另外地,密钥管理模块378还可以从站312的用户获取第二形式的标识(诸如密码、语音、视网膜特征等)用于向存储设备320注册。
在存储设备320的初始化时,存储设备320的数据安全桥322和安全密钥源390(例如,USB)建立一对一的“信任”或绑定。在初始化之后,要存储在介质350上的所有数据由数据安全桥322加密,数据安全桥322然后将加密的数据传递到介质350。
在站312的随后的启动和/或唤醒时,将检查安全密钥并且形成认证过程。在启动模式下,存储设备320从关闭模式转换到功能模式。在唤醒模式下,存储设备320从省电模式(例如,Windows操作***中的待机模式)或部分关机模式(例如,Windows操作***中的休眠模式)转换到功能模式。在随后的使用中,用户首先将外部设备390(例如,USB)与站312耦合,并且来自外部设备390的第二安全密钥被传输到密钥管理模块378。密钥管理模块378然后使用存储在存储设备320中的第一安全密钥和由设备390提供的第二安全密钥两者执行安全检查以确保用户是可信用户。在一个实现中,第一安全密钥是先前存储在存储设备320中的参考安全密钥。在这种情况下,密钥管理模块378将第一安全密钥与第二安全密钥相比较以确定它们是否匹配。如果第一安全密钥和第二安全密钥相匹配,则从站312传输的数据可以由安全模块376加密以存储在存储设备320的介质350中,以及/或者来自介质350的数据可以由安全模块376取回和解密以输出到站312。在另一实现中,如果密钥管理模块378先前使用第一安全密钥和第二安全密钥两者创建了签名(参考签名),则密钥管理模块378可以使用由设备390提供的密钥和所存储的第一安全密钥来生成签名用于与参考签名相比较。如果签名与参考签名相匹配,则从站312传输的数据可以由安全模块376加密以存储在存储设备320的介质350中,以及/或者来自介质350的数据可以由安全模块376取回和解密以输出到站312。
备选地或另外地,用户可以在站312的随后启动或唤醒时提供第二形式的标识(诸如密码、语音、视网膜特征等)。站312(例如,操作***)检查第二形式的标识,而数据安全桥322检查从外部设备390获取的安全密钥。如果至少两个标准,即,(1)由用户提供的第二形式的标识匹配预定的辅助标识,以及(2)从外部设备390获取的安全密钥满足安全检查,都被满足,则站312允许被启动或唤醒,以及/或者存储设备320的介质350允许被访问。在这两个标准满足之后,从站312传输的数据可以被安全模块376加密以存储在存储设备320的介质350中,以及/或者来自介质350的数据可以由安全模块376取回和解密以输出到站312。
在一些实施例中,为了确保用户不保持USB 390***站312,站312可以被配置为在使用USB 390上的安全密钥进行安全检查之后暂停启动和/或唤醒过程。站312然后将提示用户从站312拔下USB 390。站312仅在用户已从站312拔下USB之后才继续启动过程。在一个实现中,站312可以包括被配置为检测USB 390的USB检测器。站312还可以包括:被配置为响应于USB检测器检测到USB而暂停启动和/或唤醒过程的启动和/或唤醒控制器;以及被配置为通知用户从站312移除USB的通知生成器。启动和/或唤醒控制器还被配置为响应于用户从站312移除USB而恢复启动和/或唤醒过程。
在存储设备320被初始化并且站312被启动之后,用户然后可以使用存储设备320中的介质350。
例如,在一些情况下,站312的用户可以经由站312处的用户界面输入用户输入。用户输入可以是将数据存储到存储设备320的请求。在这种情况下,站312的CPU 330处理用户输入并且经由第一接口372以未加密的形式将数据传输到数据安全桥322。数据从站312到存储设备320的数据安全桥322的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。存储设备320的数据安全桥322从站312接收未加密的数据,对数据进行加密以形成加密的数据,并且经由第二接口374将加密的数据传递到控制器360。数据安全桥322的第二接口374与存储设备320的控制器360之间的通信可以使用诸如SATA连接器、m.2连接器、U.2连接器、PCIe连接器、以太网连接器等连接器来完成。在一些实施例中,第一接口372和第二接口374可以是相同的类型,而在其他实施例中,第一接口372和第二接口374是不同的类型。存储设备320的控制器360处理加密的数据并且将数据以加密的形式传递到存储介质350用于存储。在一些实施例中,可选地,数据安全桥322可以进一步在数据被存储在存储介质350中之前执行安全检查。例如,这可以通过密钥管理模块378来完成,密钥管理模块378使用来自外部设备390的第二密钥执行安全检查。
在其他情况下,用户输入可以是从存储设备320中取回数据的请求。在这种情况下,站312的CPU 330处理用户输入并且经由第一接口372将请求传输到存储设备320的数据安全桥322。请求从站312到数据安全桥322的传输可以经由诸如SATA连接器、m.2连接器、U.2连接器、PCIe连接器、以太网连接器等连接器来执行。数据安全桥322的第一接口372接收请求,并且经由第二接口372将请求传递到控制器360。控制器360处理请求并且以加密的形式从存储介质350中取回所请求的数据。然后,控制器360经由第二接口374将取回的加密的数据传递到数据安全桥322。然后,数据安全桥322解密加密的数据以获取未加密的数据,并且经由第一接口372以未加密的形式将取回的数据传输到站312。加密的数据从存储设备320的控制器360到存储设备320的数据安全桥322的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。而且,解密的数据从存储设备320的数据安全桥322到站312的传输可以经由SATA连接器、m.2连接器、2.U连接器或任何其他类型的连接器来完成。在一些实施例中,可选地,数据安全桥322可以进一步在从存储介质350中取回数据之前执行安全检查。例如,这可以由密钥管理模块378来完成,密钥管理模块378使用来自外部设备390的第二密钥执行安全检查。
在其他情况下,代替由站312的用户提供,存储数据的请求和/或取回数据的请求可以由站312从与站312通信的另一设备接收。另一设备可以是附接到站312的***设备,或者是经由因特网连接到站312的远程设备。
存储设备320比存储设备220更有优势。这是因为存储设备320提供多步安全性,而不是与存储设备220相关联的单步安全性。在由存储设备320提供的多步安全性中,如果一个人从站312取出存储设备320并且将其放置在另一站中,则这个人只能看到加密的数据。这个人将不能解密该数据,因为这个人将不具有存储在外部设备390中的第二安全密钥。类似地,如果一个人得到站312并且如果这个人甚至获取了对站312的密码,则这个人也不能启动站312,因为这个人没有存储在外部设备390中的第二安全密钥。相反,在一步安全性中,如果一个人拥有具有存储设备220的站212并且获得密码,则这个人可以容易地复制数据。
存储设备320也是有利的,因为存储设备320在功能上可以比存储设备220更灵活,因为其可以实现用于任何国家的任何安全功能(例如,针对美国的AES、针对中国的SM4等)。此外,存储设备320的控制器360中的安全功能可以更容易地升级。如果开发了新的密码算法,则相同的控制器360可以被配置为实现任何新的密码算法。而且,在一些情况下,数据安全桥322可以适应不同类型的第一接口和第二接口,从而允许一种类型的存储机构或产品362(例如,SATA)连接到另一类型的站312(例如,PCIe)。
此外,存储设备320在功能上比存储设备220更灵活。这是因为如果有人从站212取出存储设备220并且将其放置在另一站中,则控制器260将不启用解密功能,并且所有读出的数据都将是加扰的数据并且不能使用。另一方面,如果有人从站312取出存储设备320并且将其放置在另一站中,则数据仍然可以从存储设备320的介质350被访问,只要用户还提供包括第二安全密钥的外部设备390。相应地,存储设备320提供使用灵活性,同时增强所存储的数据的安全性。
另外,存储设备320也是有利的,因为与用于仅使计算机启动更安全的其他技术不同,存储设备320实际上允许存储在其中的数据更安全。就这一点而言,即使未经授权的用户从站312移除存储设备320,由于本文中描述的安全特征,未经授权的用户将不能访问存储在其中的数据。
在以上实施例中,第二安全密钥被描述为由站312直接接收,其然后被传递到存储设备320的数据安全桥322。在其他实施例中,第二安全密钥可以由存储设备320直接接收而不经过站312(图4)。例如,存储设备320可以包括被配置为从另一设备390接收第二安全密钥的无线接收器400。无线接收器400可以被实现为数据安全桥322的一部分,或者可以被实现为被耦合到数据安全桥322的单独的组件。另一设备390可以是手机、iPad、平板电脑、另一台计算机、或具有传输无线信号的能力的任何其他设备。无线接收器400可以经由蓝牙、WiFi、Zigbee、RFID或任何其他无线解决方案与其他设备通信。无线接收器400可以耦合到存储设备320的数据安全桥322用于第二安全密钥到数据安全桥322的传输。
应当注意的是,在本文中描述的任何实施例中,密钥管理模块378的特征可以被包含到安全模块376中。备选地,安全模块376的任何特征可以被包含到密钥中管理模块378中。
而且,在其他实施例中,数据安全桥322的安全模块376和密钥管理模块378以及控制器360可以在集成电路(IC)芯片中被组合和实现。图5示出了这样的实现的示例,其中数据安全桥322和控制器360在集成电路(IC)芯片450中被组合。在这样的实现中,第二接口374变成内部总线接口。集成的解决方案提供了低成本的解决方案,同时牺牲了独立数据安全桥322的灵活性的益处。在一些实施例中,IC芯片450可以包括处理器,诸如ASIC处理器、FPGA处理器、通用处理器、或被配置为执行本文中描述的一个或多个功能的任何其他处理单元。
图6示出了可以由图3或图4或图5的***执行的方法500。首先,获取第一安全密钥(项目502)。在一些实施例中,项目502可以由数据安全桥322中的密钥管理模块378执行,其访问存储在存储设备320中的第一安全密钥。
接下来,获取第二安全密钥(项目504)。在一些实施例中,第二安全密钥可以由数据安全桥322中的密钥管理模块378来获取,其通过第一接口372接收第二安全密钥。第二安全密钥可以从外部设备390(例如,USB、手机等)传输到站312。站312然后经由第一接口372将第二安全密钥传递到存储设备320的数据安全桥322。备选地,第二安全密钥可以从外部设备390(例如,手机或另一外部设备)无线地传输,并且由存储设备320处的无线接收器400无线地接收。
接下来,密钥管理模块378使用第一密钥和第二密钥两者来执行安全检查(项目506)。如所讨论的,在一些实施例中,第一密钥可以是参考密钥,并且密钥管理模块378可以将第一密钥与第二密钥相比较以查看它们是否匹配。如果是,则密钥管理模块378可以确定提供具有第二安全密钥的外部设备390的用户是“可信”用户。在其他实施例中,密钥管理模块378可以使用第一安全密钥和第二安全密钥两者来生成签名。在这种情况下,密钥管理模块378然后可以将该签名与存储在存储设备320中的参考签名相比较。参考签名可以在先前在初始化过程期间使用第一安全密钥和从“可信”的外部设备提供的第二安全密钥来生成。如果签名匹配,则密钥管理模块378可以确定提供具有第二安全密钥的外部设备390的用户是“可信”用户。
在安全检查被执行之后,安全模块376可以对从站312传输的数据进行加密以存储在存储设备320的介质350中,以及/或者安全模块376可以解密从介质350中取回的数据以输出到站312(项目508)。在一些实施例中,在安全模块376加密数据之后,数据安全桥332然后经由诸如SATA连接器、m.2连接器、U.2连接器、PCIe连接器、以太网连接器等连接器来输出加密的数据用于传输到控制器360。类似地,在一些实施例中,存储在介质350中的加密的数据可以经由连接器传输到数据安全桥332(用于由安全模块376解密),连接器可以是SATA连接器、m.2连接器、U.2连接器、PCIe连接器、以太网连接器等。
可选地,在项目508被执行之前,站312可以从站312的用户获取第二形式的标识(项目516)。通过非限制性示例,第二形式的标识可以是由用户经由站312处的键盘或触摸屏输入的用户密码、由站312处的指纹阅读器获取的指纹、由视网膜扫描获取的视网膜特征、或由站312处的麦克风获取的语音签名等。在第二形式的标识被获取之后,站312和/或存储设备320然后认证这样的辅助标识。只有当(1)项目506中的安全检查被成功执行、以及(2)项目516中的第二形式的用户标识被认证时,项目508才会被执行。
在以上实施例中,存储设备320被描述为耦合到站312。在其他实施例中,存储设备320可以被认为是被配置为与站312的另一部分通信的站312的一部分。因此,如在本说明书中所使用,术语“站”可以包括或可以不包括存储设备320。
尽管已经参考具有某个“可信”用户/外部设备的存储设备320描述了上述实施例,但是在其他实施例中,存储设备320可以具有多个“可信”用户/外部设备。例如,在其他实施例中,存储设备320处的介质可以存储属于不同用户的多个第一安全密钥。在使用期间,第一用户可以使用第一外部设备向存储设备320提供第二安全密钥。然后,密钥管理模块378搜索第一安全密钥以确定任何第一安全密钥是否匹配第二安全密钥。如果是,则密钥管理模块378可以确定第一用户是“可信”用户,并且可以允许对存储设备320的介质350执行操作。在另一使用中,不同于第一用户的第二用户可以提供第二外部设备,第二外部设备向存储设备320提供另一第二安全密钥。来自第二用户的第二设备的第二安全密钥与来自第一用户的第一设备的第二安全密钥不同。密钥管理模块378然后搜索第一安全密钥以确定任何第一安全密钥是否匹配来自第二外部设备的第二安全密钥。如果是,则密钥管理模块378可以确定第二用户也是“可信”用户,并且可以允许对存储设备320的介质350执行操作。因此,相同的存储设备320可以被多个用户使用。在一些情况下,存储设备320中的介质350可以被划分成用于不同的相应用户的不同部分。
在其他实施例中,存储设备320处的介质可以存储属于不同用户的多个签名。在使用期间,第一用户可以使用第一外部设备来向存储设备320提供安全密钥。然后,密钥管理模块378使用来自第一外部设备的安全密钥来生成签名,并且搜索已经存储在存储设备320中的签名以确定它们中的任何一个是否匹配所创建的签名。如果是,则密钥管理模块378可以确定第一用户是“可信”用户,并且可以允许对存储设备320的介质350执行操作。在另一使用中,不同于第一用户的第二用户可以提供具有另一安全密钥的第二设备,该另一安全密钥被传输到存储设备320。来自第二用户的第二设备的安全密钥与来自第一用户的第一设备的安全密钥不同。密钥管理模块378然后使用来自第二设备的安全密钥来生成签名,并且搜索存储设备320中的签名以确定它们中的任何一个是否匹配所创建的签名。如果是,则密钥管理模块378可以确定第二用户也是“可信”用户,并且可以允许对存储设备320的介质350执行操作。
在另外的实施例中,存储设备320可以存储与多个“可信”用户相关联的多个标识(诸如密码)。在这种情况下,密钥管理模块378可以使用所存储的标识(诸如密码)来认证不同的用户。
在上面的一些实施例中,站312已经被描述为与存储设备320耦合并且被配置为从外部设备390获取密钥。应当注意,站312不限于直接从外部设备390获取密钥,并且可以替代地被配置为间接地从外部设备390获取密钥。例如,在其他实施例中,用户可能正在远程地(例如,经由诸如因特网等网络)使用与站312(第一站)通信的另一站(第二站)。在这种情况下,用户可以提供外部设备390以将其密钥传输到第二站。然后,第二站将密钥传输到存储设备320所在的第一站312。在这种情况下,在密钥已经由存储设备320用来执行认证之后,第二站的用户然后可以从第一站处的存储设备320获取数据。因此,站312和/或存储设备320的用户不限于直接使用站312和/或存储设备320的用户,并且可以包括远程地使用站312和/或存储设备320的用户。在其他实施例中,除了检查来自外部设备的密钥之外,存储设备还可以检查来自用户的第二形式的标识。例如,第二站的用户可以提供第二形式的标识,其然后从第二站传输到第一站312。存储设备320然后检查第二形式的标识。如果第二形式的标识满足第一标准(例如,它与参考标识相匹配)并且如果来自外部设备390的密钥满足第二标准(例如,它与参考密钥相匹配),则用户将被允许访问存储设备320处的加密的数据。第二形式的标识可以是用户密码、指纹、视网膜扫描、语音签名等。
专用处理***
图7是示出可以用于实现本文中描述的各种实施例的专用处理***1600的实施例的框图。例如,处理***1600可以是本文中描述的站12/212/312的示例。
参考图7,处理***1600包括用于传送信息的总线1602或其他通信机构、以及与总线1602耦合以用于处理信息的处理器1604。处理器***1600还包括耦合到总线1602以用于存储要由处理器1604执行的信息和指令的主存储器1606,诸如随机存取存储器(RAM)或其他动态存储设备。主存储器1606还可以用于在要由处理器1604执行的指令的执行期间存储临时变量或其他中间信息。处理器***1600进一步包括耦合到总线1602以用于存储静态信息以及用于处理器1604的指令的只读存储器(ROM)1608或其他静态存储设备。数据存储设备1610(诸如磁盘或光盘)被提供并且耦合到总线1602以用于存储信息和指令。
处理器***1600可以经由总线1602耦合到显示器1612(诸如阴极射线管(CRT))用于向用户显示信息。包括字母数字键和其他键在内的输入设备1614耦合到总线1602以用于向处理器1604传送信息和命令选择。另一类型的用户输入设备是用于向处理器1604传送方向信息和命令选择并且用于控制显示器167上的光标移动的光标控件1616,诸如鼠标、轨迹球或光标方向键。该输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,这允许设备指定平面中的位置。
在一些实施例中,处理器***1600可以用于执行本文中描述的各种功能。根据一些实施例,这种使用由处理器***1600响应于处理器1604执行被包含在主存储器1606中的一个或多个指令的一个或多个序列来提供。本领域技术人员将知道如何基于本文中描述的功能和方法的准备这样的指令。这样的指令可以从诸如存储设备1610等另一处理器可读介质读入主存储器1606。被包含在主存储器1606中的指令序列的执行引起处理器1604执行本文中描述的处理步骤。还可以采用多处理布置的一个或多个处理器来执行被包含在主存储器1606中的指令序列。在备选实施例中,可以代替或结合软件指令来使用硬连线电路装置以实现本文中描述的各种实施例。因此,实施例不限于硬件电路装置和软件的任何特定组合。
如本文中使用的术语“处理器可读介质”是指参与向处理器1604提供指令以用于执行的任何介质。这样的介质可以采取很多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,诸如存储设备1610。非易失性介质可以被认为是非暂态介质的示例。易失性介质包括动态存储器,诸如主存储器1606。易失性介质可以被认为是非暂态介质的示例。传输介质包括同轴电缆、铜线和光纤,包括构成总线1602的导线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外数据通信期间生成的。
常见形式的处理器可读介质包括例如软盘、柔性盘、硬盘、磁带或任何其他磁介质、CD-ROM、任何其他光学介质、打孔卡、纸带、具有孔图案的任何其他物理介质、RAM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或盒式磁带、下文中描述的载波、或处理器可以从其读取的任何其他介质。
各种形式的处理器可读介质可以涉及将一个或多个指令的一个或多个序列携带到处理器1604以用于执行。例如,指令可以最初被携带在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并且使用调制解调器通过电话线发送指令。处理***1600本地的调制解调器可以在电话线上接收数据,并且使用红外发射器将数据转换为红外信号。耦合到总线1602的红外检测器可以接收红外信号中携带的数据并且将数据放置在总线1602上。总线1602将数据携带到主存储器1606,处理器1604从主存储器1606取回和执行指令。可选地,由主存储器1606接收的指令可以在由处理器1604执行之前或之后存储在存储设备1610上。
处理***1600还包括耦合到总线1602的通信接口1618。通信接口1618提供耦合到网络链路1620的双向数据通信,网络链路1620连接到本地网络1622。例如,通信接口1618可以是用于向相应类型的电话线提供数据通信连接的综合业务数字网(ISDN)卡或调制解调器。作为另一示例,通信接口1618可以是用于向兼容的LAN提供数据通信连接的局域网(LAN)卡。也可以实现无线链路。在任何这样的实现中,通信接口1618发送和接收承载表示各种类型的信息的数据流的电信号、电磁信号或光信号。
网络链路1620通常通过一个或多个网络来提供向其他设备的数据通信。例如,网络链路1620可以通过本地网络1622来提供向主计算机1624或设备1626的连接。通过网络链路1620传输的数据流可以包括电信号、电磁信号或光信号。通过各种网络的信号以及网络链路1620上并且通过通信接口1618的信号(其携带去往和来自处理***1600的数据)是传输信息的载波的示例性形式。处理***1600可以通过网络、网络链路1620和通信接口1618发送消息和接收数据,包括程序代码。
虽然已经示出和描述了特定实施例,但是应当理解的是,其并不意图将要求保护的发明限制于优选实施例,并且对于本领域技术人员来说显而易见的是,在不脱离所要求保护的发明的精神和范围的情况下,可以做出各种改变和修改。相应地,说明书和附图被认为是说明性的而不是限制性的。要求保护的发明旨在涵盖备选、修改和等同物。