本发明涉及可信存储系统,特别是一种用于可信计算环境的存储系统。
(二)背景技术
可信计算技术已经成为保护计算机系统安全的流行技术,iso/iec15408标准对可信计算给出了以下定义:一个可信的组件、操作或过程的行为在任意操作条件下是可预测的,并能很好地抵抗应用程序软件、病毒以及一定的物理干扰造成的破坏。目前,可信计算主要是通过在硬件平台上引入安全芯片(可信平台模块)的手段来提高终端系统的安全性。
虽然在可信计算环境中,主要是通过调用tcm(trustedcryptographymodule,可信密码模块)内部算法对计算机系统开机启动过程中的各个部件进行逐级的可信度量,以确定计算机系统是否遭到攻击或破坏。但是,当可信计算环境中的部件脱离可信计算环境后,仍存在被非法用户盗取其中的有价值信息的可能性。
因此,如何保护脱离可信计算环境中的部件中的信息安全,成为非常值得关注的技术问题。
(三)
技术实现要素:
为了解决上述技术问题,本发明提出了一种应用于可信计算环境中存储系统,本发明采取了针对可信计算环境和非可信计算环境不同的数据读取方式,从而有效地保护了数据的安全性。
为了实现上述功能,本发明采用的技术方案包括:数据存储装置,所述数据存储装置包括第一数据存储设备和第二数据存储设备,且所述第一数据存储设备和第二数据存储设备中的存储单元分别具有独立的地址信息;
验证装置,所述验证装置验证所述存储系统是否处于可信计算环境中;
当读取所述数据存储装置中的数据时,如果所述验证装置验证所述存储系统处于可信计算环境中,则将从第一数据存储设备读取的数据与从第二数据存储设备中读取数据进行逻辑运算后的结果作为所述数据存储装置被读取的数据,所述数据为真实数据;
如果否,则从第一数据存储设备和第二数据存储设备中的任意一个中读取的数据作为所述数据存储装置被读取的数据,所述数据为伪装数据。
进一步的,在上述方案的基础上,所述逻辑运算为异或运算或者同或运算。
进一步的,在上述方案的基础上,所述数据存储装置包括存储控制器,所述存储控制器分别将地址信息发送给第一数据存储设备和第二数据存储设备,以分别选中第一数据存储设备和第二数据存储设备中的存储单元。
进一步的,在上述方案的基础上,验证为处于可信计算环境中时,当读取所述数据存储系统中地址信息为a的存储单元中的数据时,第一数据存储设备被读取的存储单元的地址信息a1为所述a,第二数据存储设备被读取的存储单元的地址信息a2则按照如下方式确定:
a2=(a1+n)modc+b,其中,mod为求余计算,c为所述第二数据存储设备的存储单元的个数,n为自然数且小于c,所述b为第二数据存储设备的存储单元的首地址。
进一步的,在上述方案的基础上,n=1。
进一步的,在上述方案的基础上,验证为处于非可信计算环境中时,当读取所述数据存储装置中具有一地址信息m的存储单元中的数据时,则只读取第二数据存储设备中的存储单元中的数据,所述存储单元的地址信息按照如下方式确定:n=(m+n)modc+b,其中,mod为求余计算,c为所述第二数据存储设备的存储单元的个数,n为自然数且小于c,所述b为第二数据存储设备的存储单元的首地址。
进一步的,在上述方案的基础上,验证为处于非可信计算环境中时,当读取所述数据存储装置中地址信息为a的数据时,只读取第一数据存储设备中地址信息为(a+1)modc1+b1的存储单元的数据,其中c1为所述第一数据存储设备的存储单元的个数,所述b1为第一数据存储设备的存储单元的首地址。
进一步的,在上述方案的基础上,所述第一数据存储设备的存储单元的数量等于所述第二数据存储设备的数量。
进一步的,在上述方案的基础上,所述第一数据存储设备的存储单元的数量是所述第二数据存储设备的存储单元的数量的两倍。
进一步的,在上述方案的基础上,所述存储系统即插即用存储系统。
进一步的,在上述方案的基础上,当数据写入所述存储系统时,如果所述验证装置验证所述存储系统处于可信计算环境中,则将所述数据按照所述逻辑运算拆分为两组数据,分别写入到所述第一数据存储设备和第二数据存储设备中;如果所述验证装置验证所述存储系统处于非可信计算环境中,则拒绝所述数据的写入操作。
(四)附图说明
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1为本发明提出的存储系统的系统结构图。
图2为本发明提出的存储系统中的数据存储装置的结构图。
(五)具体实施方式
下面将结合附图以及具体实施方式来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为本发明的不当限定。
参见图1,为本发明提出的用于可信计算环境的存储系统的结构图。所述存储系统包括数据存储装置,验证装置,其中,验证装置与计算机系统的可信密码模块tcm连接,以接收可信度量。存储系统根据可信度量的反馈的结果来确认自身是否处于可信计算环境中。
参见图2,所述数据存储装置包括两个分别具有独立的地址信息的第一数据存储设备和第二数据存储设备,第一数据存储设备和第二数据存储设备的数据通道均与逻辑运算单元连接,所述逻辑运算单元的另一数据通道与其他部件连接。
本发明的实施例通过两个数据存储设备所存储的数据在不同环境下的逻辑运算的不同结果作为输出,来保护所存储数据的安全性。为了便于理解,以下述一个具体的示例来说明,由于存储系统的基本功能是数据的读取和写入,下面将分别予以说明。
数据的读取:
当存储系统中的验证装置确认自身处于可信计算环境时,若接收到读取所述存储系统中地址信息为a的存储单元中的数据请求时,存储控制器分别将地址信息发送给第一数据存储设备和第二数据存储设备,作为一个优选实施例,发给第一和第二存储存储设备的存储单元的地址信息与上述a相同,则分别从第一和第二数据存储设备的地址信息为a的存储单元里取出数据,将取出的数据执行逻辑运算后的结果作为所述存储系统地址信息为a的存储单元被读出的数据,逻辑运算采用同或运算,为方便理解,用一个简单的例子来说明:第一数据存储设备被读出的数据为1110(二进制),第二数据存储设备被读出的数据为0101(二进制),则同或运算的结果为:0100(二进制),则所述存储系统被读出的数据为0100,然后存储控制器通过读写接口将数据读出。可见,采取本实施例这种技术手段,即使第一和第二数据存储设备的数据均被非法获取,由于不明确两个存储设备之间的数据的逻辑关系,因此难以正确还原所述存储系统真实保存的数据。
为了进一步提高所述存储系统中数据的安全性,发送给第一数据存储设备和第二数据存储设备的地址信息可不相同,作为一个优选的实施方式,具体如下:当读取所述数据存储系统中地址信息为a的存储单元中的数据时,第一数据存储设备被读取的存储单元的地址信息a1为所述a,第二数据存储设备被读取的存储单元的地址信息a2则按照如下方式确定:a2=(a1+n)modc+b,其中,mod为求余计算,c为所述第二数据存储设备的存储单元的个数,n为自然数且小于c,所述b为第二数据存储设备中的存储单元的首地址。作为一个优选,n=1。由于第一数据存储设备和第二数据存储设备的参与运算的存储单元的地址信息不相同,给非法用户破解两个存储设备中存储单元中的数据之间的联系增加了难度,从而提高了所述存储系统的数据安全性。
当存储系统中的验证装置确认自身处于非可信计算环境时,例如,所述存储系统被所处的计算环境不满足可信计算环境的要求时,即所述验证装置与可信计算环境的tcm之间未能通过可信度量,此时,所述存储系统为了保护存储在其系统中的数据,在接收到读取地址信息为a的存储单元中的数据请求时,可只将第二数据存储设备中地址信息为a的存储单元中的数据读出并响应。作为另一种优选的实施方式,也可只将第一数据存储设备中地址信息为(a+1)modc1+b1的存储单元的数据的存储单元的数据读出并响应,其中c1为所述第一数据存储设备的存储单元的个数,所述b1为第一数据存储设备的存储单元的首地址。可见,在非可信计算环境中,实际读出的数据并不是存储在所述存储系统的真实数据,而是进行了伪装的数据。使得非法用户无法真正获取所述存储系统的真实数据,从而保护所述存储系统的数据,提高了数据的安全性。
数据的写入:
对于数据的写入,与读取数据一样,首先要确定所述存储系统是否处于可信计算环境中,当处于可信计算环境中,若接收到向所述存储系统地址信息为a的存储单元写入数据“1010”时,当所述逻辑运算为同或逻辑时,则先将数据“1010”按照同或逻辑拆分为两组数据,拆分的结果不是唯一的,可从中任选一种方式,如:0000和0101,然后将数据“0000”和“0101”按照上述读取过程的存储单元的同样的对应关系写入到第一数据存储设备和第二数据存储设备相应的存储单元中。如针对上述数据读取的第一个例子中,第一数据存储设备和第二数据存储设备的存储单元的地址均为a;在第二例子中,第一数据存储设备和第二数据存储设备的存储单元的地址分别为a,(a1+n)modc+b。
当处于非可信计算环境中时,所述存储系统拒绝数据的写入。采取上述方式,是为了避免非法用户通过试探性写入数据的手段来破解第一数据存储设备和第二数据存储设备中的存储单元之间的关系。
作为其他的优选实施方式,上述逻辑运算还可为异或逻辑等其他运算。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。上述实施例中的装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。上述实施例中的装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。