数据保密方法及装置制造方法

文档序号:6624454阅读:161来源:国知局
数据保密方法及装置制造方法
【专利摘要】本发明提供一种数据保密方法和装置,所述方法运行于支持虚拟化技术的CPU的VMX?root?operation模式下的Ring0环上,包括:对计算设备中的输入输出设备的读写请求进行监听,等待目标用户或目标程序的操作;和当监听到所述目标用户或目标程序进行I/O操作时,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管;其中,受控内存是从计算机物理内存中划出的预定大小的一块内存区域,此内存区域对运行于支持虚拟化技术的CPU的VMX?non-root?operation模式下的Ring0环上的客户操作系统不可见并且不受其管理。上述方法保证了业务数据的全生命周期安全,解决了涉密信息以明文形式存在的问题。
【专利说明】数据保密方法及装置

【技术领域】
[0001]本发明涉及信息安全领域,尤其涉及一种数据保密方法及装置。

【背景技术】
[0002]随着信息技术的运用,越来越多的业务通过信息系统来完成。某些业务数据被要求以密文存储和传输,但是业务数据在加密之前、加密过程中和解密之后是以明文的形式出现在显示器上或残留在内外部存储介质中,这将导致业务数据被人为地或意外地泄漏。
[0003]如何以技术手段保障业务数据的全生命周期安全是一个亟待解决的问题。


【发明内容】

[0004]本发明要解决的技术问题是,针对现有信息安全技术不能保证业务数据的全生命周期安全,提供一种数据保密方法及装置,实现业务数据的全生命周期安全。
[0005]根据本发明一个方面,提供一种数据保密方法,运行于支持虚拟化技术的CPU的VMX root operat1n模式下的RingO环上,包括:对计算设备中的输入输出设备的读写请求进行监听,等待目标用户或目标程序的操作;和当监听到所述目标用户或目标程序进行I/O操作时,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管;其中,受控内存是从计算机物理内存中划出的预定大小的一块内存区域,此内存区域对运行于支持虚拟化技术的CPU的VMX non-root operat1n模式下的RingO环上的客户操作系统不可见并且不受其管理。
[0006]可选的,对于用户键盘输入数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括:将目标用户输入的涉密数据直接放入受控内存中;按照第一种预设的规则对涉密数据进行加密,得到密文;将加密结果发送给目标程序,和/或根据第二种预设的规则以明文或密文的形式将涉密数据发送给显卡,继而在显示器上的显
/Jn ο
[0007]可选的,对于磁盘输入/导入数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括:将目标用户导入的数据直接放入受控内存中;按照第一种预设的规则对导入的数据进行加密;将加密结果发送给目标程序。
[0008]可选的,对于目标程序客户端或服务器端网络传送数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括:当目标程序客户端和目标程序服务器之间有数据传输时,将待发送数据放入受控内存中;按照第一种预设的规则对待发送数据进行加密;根据网络数据包封装协议将加密结果封装并发送给网卡,继而传输到目标程序服务器或目标程序客户端。
[0009]可选的,对于目标程序输出数据到显示器,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括:当目标用户要在目标程序中查询数据并显示到显示器时,将待显示的数据放入受控内存中;按照第一种预设的规则对待显示的数据进行加密,得到密文;根据第二种预设的规则以明文或密文的形式将待显示的数据发送给显卡,继而在显示器上的显示。
[0010]可选的,对于磁盘输出/导出数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括:将目标用户要导出的数据放入受控内存中;按照第一种预设的规则对待显示的数据进行加密;将加密结果以要导出的文件格式存储到磁盘上。
[0011]可选的,对计算设备中的输入输出设备的读写请求进行监听的监听程序常驻受控内存中。
[0012]可选的,所述第一种预设的规则为对数据是否进行加解密的规则和/或如何进行加解密的规则;所述第二种预设的规则为是否需要在显示器上进行明文或密文显示的规则。
[0013]根据本发明另一个方面,提供一种数据保密装置,部署在支持虚拟化技术的CPU的VMX root operat1n模式下的RingO环上,包括:
[0014]监听模块,适于对计算设备中的输入输出设备的读写请求进行监听,等待目标用户或目标程序的操作;和
[0015]接管模块,适于当监听到所述目标用户或目标程序进行I/O操作时,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管;
[0016]其中,受控内存是从计算机物理内存中划出的预定大小的一块内存区域,此内存区域对运行于支持虚拟化技术的CPU的VMX non-root operat1n模式下的RingO环上的客户操作系统不可见并且不受其管理。
[0017]上述方法保证了业务数据的全生命周期安全,解决了涉密信息以明文形式存在的问题。

【专利附图】

【附图说明】
[0018]图1是根据本发明一个实施例提供的业务数据安全保障系统总体结构图;
[0019]图2是根据本发明一个实施例提供的业务数据安全保障系统针对各种1/0操作的执行流程总图;
[0020]图3-7是根据本发明另外多个实施例提供的业务数据安全保障系统针对不同1/0操作的执行流程分图;和
[0021]图8是根据本发明一个实施例提供的数据保密方法的方法流程图。

【具体实施方式】
[0022]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的实例仅用以解释本发明,并不用于限定本发明。
[0023]发明人经研究发现,可以提供一种保障业务数据全生命周期安全的方法,或者说实现一个业务数据(也可以是其他种类的数据)安全保障系统。业务数据在整个生命周期中的新增、删除、修改、查询操作以及与目标用户、目标程序的交互将通过业务数据安全保障系统来实现,包括:业务数据录入到目标程序,业务数据从外部存储导入到目标程序,业务数据从目标程序中导出到外部存储,业务数据的修改及加工,业务数据的加密及解密,业务数据的存储,业务数据的显示,业务数据的销毁等。
[0024]本发明中,将被保护的业务信息系统称为目标程序,将被保护的人员称为目标用户。
[0025]基于上述发现,根据本发明一个实施例,提供一种业务数据安全保障系统。系统总体结构图以及各个内部模块直接的关系如图1所示,业务数据安全保障系统包括:
[0026]键盘管理模块、磁盘管理模块、内存管理模块、显示管理模块、网络传输管理模块及系统管理模块。
[0027]上述各个模块并非操作系统原有模块,而是本发明提供的业务数据安全保障系统内部的新开发的软件功能模块,这些模块可以替代了操作系统中相应的原有模块,或者说,他们当并且仅当有业务需要时接管操作系统原来模块的功能,即通过绕过操作系统中相应的原有模块直接管理键盘、显示器、网卡、内外部存储等系统设备,使得业务数据在目标用户个人计算机内外部存储及显示器上、在目标程序服务器的内外部存储上、在业务数据通过网络传输时都将以密文方式存在。
[0028]上述模块的工作模式与操作系统中相应的原有模块的工作模式基本相同,区别如下:
[0029](I)内存管理模块:负责管理直接从计算机物理内存中划出的一块内存区域,此内存区域将对操作系统不可见也不再受操作系统管理,涉密业务数据的相关操作都将在这块内存区域中进行(称为:受控内存区域,与之相对的另外部分称为:非受控内存区域)。
[0030]当有业务数据进入目标程序、从目标程序中导出业务数据、从目标程序显示业务数据到显示器上及目标程序将要通过网络发送业务数据时,内存管理模块将对进入受内存管理模块管理的内存区域中的业务数据进行分析、加密/解密、控制显示等处理;
[0031](2)键盘管理模块:有业务需要时负责接管键盘等输入设备,保证从输入设备输入的明文形式的业务数据直接进入受内存管理模块管理的内存区域中接受进一步处理;
[0032](3)磁盘管理模块:有业务需要时负责接管U盘、光盘、移动硬盘和硬盘等磁盘存储设备,保证从磁盘存储设备上读取的明文形式的业务数据直接进入受内存管理模块管理的内存区域中接受进一步处理;
[0033](4)显示管理模块:有业务需要时负责接管显示输出设备,保证业务数据以安全可控的方式显示输出(明文显示、密文存储,或可选择性的显示部分明文);
[0034](5)网络传输管理模块:有业务需要时负责接管网卡,对业务数据包进行网络传输前和网络传输接收后的预处理(封装和解包),保证业务数据安全地进行网络传输;
[0035](6)系统管理模块:现有操作系统没有的模块。负责业务数据安全保障系统的内部管理,包括:系统访问管理、用户和密码管理、系统权限管理、数字证书管理、密钥管理、力口密算法管理、系统日志管理、系统守护进程管理等。
[0036]另外,需要说明的是:
[0037](I)业务数据安全保障系统的启用条件:当目标用户进行业务操作或目标程序启动时启用。
[0038](2)如何接管键盘、磁盘、显卡、网卡等设备:业务数据安全保障系统运行于支持虚拟化技术的CPU的VMX root operat1n模式下的RingO环上,可以优先且直接操作I/O设备。当业务数据安全保障系统启用后会在受控内存中常驻一个监听程序,监听键盘、磁盘、显卡、网卡的读写请求,当读写请求的发起人是目标用户或目标业务信息系统(即目标程序)时,将对这些设备进行接管。
[0039](3)接管后的设备如何加密解密业务数据:业务数据安全保障系统的客户端和服务器端采用同样的加密方法,对于接管设备中的已加密的业务数据可以在受内存管理模块管理的内存区域中进行解密,同样对于明文可以进行加密。
[0040]除上述区别外,以上各个模块的工作模式与其所替代的相应的操作系统原有模块的工作模式相同,在此不再赘述。
[0041]其中,对于接管键盘、磁盘、显卡、网卡等设备的内容,此处进一步进行说明,本领域技术人员可以理解:CPU厂商已支持虚拟化,例如X86CPU引入了 Intel-VT技术,支持Intel-VT 的 CPU 有 VMX root operat1n 和 VMX non-root operat1n 两种模式,两种模式都支持Ring O?Ring 3这4个运行级别。所以,业务数据安全保障系统可以运行在VMXroot operat1n模式下,客户OS运行在VMX non-root operat1n模式下。也就说,硬件这层做了些区分,这样全虚拟化下,有些靠“捕获异常-翻译-模拟”的实现就不需要了。
[0042]根据本发明一个实施例,上述系统的工作过程描述如下,如图2-7所示,包括:
[0043]步骤1、业务数据安全保障系统部署运行于支持虚拟化技术的CPU的VMX rootoperat1n模式下的RingO环上,能够优先且直接操作1/0设备;
[0044]业务数据安全保障系统将优先从计算机物理内存中直接划出预定大小一块内存区域,此内存区域将对运行于支持虚拟化技术的CPU的VMXnon-root operat1n模式下的RingO环上的客户操作系统不可见并且不受其管理。这样,涉密业务数据的相关操作都将在业务数据安全保障系统控制的这块内存区域中进行;
[0045]步骤2、当目标用户进行业务操作或目标程序启动时(例如目标程序客户端工作时,或者当通过网页来运行目标程序时)启用业务数据安全保障系统;
[0046]步骤3、常驻业务数据安全保障系统受控内存中的监听程序对硬件输入输出设备(包括但不限于键盘、磁盘、显卡、网卡)的读写请求进行监听,等待目标用户或目标程序的操作;
[0047]步骤4、当监听程序监听到所述目标用户或目标程序进行1/0操作时,对输入输出设备进行接管;
[0048]其中,对于输入数据(即I操作、输入操作):
[0049](I)对于用户键盘输入数据(参考图3):
[0050]1.业务数据安全保障系统的键盘管理模块将目标用户输入的数据直接放入业务数据安全保障系统受:控内存中;
[0051]i1.业务数据安全保障系统的内存管理模块对业务数据进行分析,按照业务数据安全保障系统的系统管理模块设定的业务规则进行加密处理;
[0052]ii1.业务数据安全保障系统的内存管理模块调用业务数据安全保障系统的显示管理模块,按照业务数据安全保障系统的系统管理模块设定的业务规则将业务数据以明文或密文的形式发送到显卡,继而在显示器上的特定位置显示;
[0053]需要说明的是:给目标程序的数据是加密的,因为目标程序运行在不可靠的操作系统上;而给显卡的数据是根据业务规则来选择显示明文和密文,方便用户使用核对输入的数据是否输错。
[0054]iv.业务数据安全保障系统的内存管理模块将业务数据发送到目标程序中。
[0055](2)对于磁盘输入/导入数据(参考图4):
[0056]1.业务数据安全保障系统的磁盘管理模块将目标用户导入的数据直接放入业务数据安全保障系统受:控内存中;
[0057]?.业务数据安全保障系统的内存管理模块对业务数据进行分析,按照业务数据安全保障系统的系统管理模块设定的业务规则进行加密处理;
[0058]ii1.业务数据安全保障系统的内存管理模块将业务数据发送到目标程序中。
[0059](3)对于目标程序客户端或服务器端网络传送数据(参考图5):
[0060]1.当目标程序客户端或服务器端有数据需要发送到目标程序的服务器端或客户端时,业务数据安全保障系统的网络传输管理模块将要发送的业务数据直接放入业务数据安全保障系统受:控内存中;
[0061]i1.业务数据安全保障系统的内存管理模块对业务数据进行分析,按照业务数据安全保障系统的系统管理模块设定的业务规则进行加密处理;
[0062]ii1.业务数据安全保障系统的内存管理模块将业务数据发送到业务数据安全保障系统的网络传输管理模块,该模块将对数据进行封装并发送到网卡。
[0063]对于输出数据:(即O操作、输出操作)
[0064](I)对于目标程序输出数据到显示器(参考图6):
[0065]1.当目标用户要在目标程序中查询数据并显示到显示器时,业务数据安全保障系统的显示管理模块将要显示的业务数据直接放入业务数据安全保障系统受控内存中;
[0066]i1.业务数据安全保障系统的内存管理模块对业务数据进行分析,按照业务数据安全保障系统的系统管理模块设定的业务规则进行加密处理;
[0067]ii1.业务数据安全保障系统的内存管理模块调用业务数据安全保障系统的显示管理模块,按照业务数据安全保障系统的系统管理模块设定的业务规则将业务数据以明文或密文的形式发送到显卡,继而在显示器上的特定位置显示。
[0068](2)对于磁盘输出/导出数据(参考图7):
[0069]1.业务数据安全保障系统的磁盘管理模块将目标用户要导出的数据直接放入业务数据安全保障系统受控内存中;
[0070]i1.业务数据安全保障系统的内存管理模块对业务数据进行分析,按照业务数据安全保障系统的系统管理模块设定的业务规则进行加密处理;
[0071]ii1.业务数据安全保障系统的磁盘管理模块将业务数据以要导出的文件格式存储到磁盘上。
[0072]需要说明的是,上述对各种I/O设备接管的方法,可以分别对某个I/O设备单独进行,也可以同时对上述各种I/O设备一起进行。
[0073]基于上述数据安全保障系统及其操作过程描述,如图8所示,根据本发明一个实施例,提供一种数据保密方法,运行于支持虚拟化技术的CPU的VMX root operat1n模式下的RingO环上,包括:
[0074]S1、对计算设备中的输入输出设备的读写请求进行监听,等待目标用户或目标程序的操作;
[0075]S2、当监听到所述目标用户或目标程序进行I/O操作时,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管;其中,受控内存(或受控内存区域)是从计算机物理内存中直接划出的预定大小的一块内存区域,此内存区域将对运行于支持虚拟化技术的CPU的VMX non-root operat1n模式下的RingO环上的客户操作系统不可见并且不受其管理。
[0076]根据本发明一个实施例,对于用户键盘输入数据,步骤S2中的对所述输入输出设备进行接管并将涉密数据存放在受控内存区域步骤进一步包括:
[0077]S211、将目标用户输入的涉密数据直接放入受控内存中;
[0078]S212、按照预设的规则对涉密数据进行加密,得到密文;对于预设的规则,例如,对于合同数据中的合同金额就要加密,对于合同号就不用加密;
[0079]S213、将加密结果发送给目标程序,和/或根据预设的规则以明文或密文的形式将涉密数据发送给显卡,继而在显示器上的显示。
[0080]根据本发明一个实施例,对于磁盘输入/导入数据,步骤S2中的对所述输入输出设备进行接管并将涉密数据存放在受控内存区域步骤进一步包括:
[0081]S221、将目标用户导入的数据直接放入受控内存中;
[0082]S222、按照预设的规则对导入的数据进行加密;
[0083]S223、将加密结果发送给目标程序。
[0084]根据本发明一个实施例,对于目标程序客户端或服务器端网络传送数据,步骤S2中的对所述输入输出设备进行接管并将涉密数据存放在受控内存区域步骤进一步包括:
[0085]S231、当目标程序客户端和目标程序服务器之间有数据传输时,将待发送数据放入受:控内存中;
[0086]S232、按照预设的规则对待发送数据进行加密;
[0087]S233、根据网络数据包封装协议将加密结果封装并发送给网卡,继而传输到目标程序服务器或目标程序客户端。
[0088]根据本发明一个实施例,对于目标程序输出数据到显示器,步骤S2中的对所述输入输出设备进行接管并将涉密数据存放在受控内存区域步骤进一步包括:
[0089]S241、当目标用户要在目标程序中查询数据并显示到显示器时,将待显示的数据放入受控内存中;
[0090]S242、按照预设的规则对待显示的数据进行加密,得到密文;
[0091]S243、根据预设的规则以明文或密文的形式将待显示的数据发送给显卡,继而在显示器上的显示。
[0092]根据本发明一个实施例,对于磁盘输出/导出数据,步骤S2中的对所述输入输出设备进行接管并将涉密数据存放在受控内存区域步骤进一步包括:
[0093]S251、将目标用户要导出的数据放入受控内存中;
[0094]S252、按照预设的规则对待显示的数据进行加密;
[0095]S253、将加密结果以要导出的文件格式存储到磁盘上。
[0096]应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
【权利要求】
1.一种数据保密方法,运行于支持虚拟化技术的CPU的VMX root operat1n模式下的RingO环上,包括: 对计算设备中的输入输出设备的读写请求进行监听,等待目标用户或目标程序的操作;和 当监听到所述目标用户或目标程序进行I/O操作时,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管; 其中,受控内存是从计算机物理内存中划出的预定大小的一块内存区域,此内存区域对运行于支持虚拟化技术的CPU的VMX non-root operat1n模式下的RingO环上的客户操作系统不可见并且不受其管理。
2.根据权利要求1所述的数据保密方法,其中,对于用户键盘输入数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括: 将目标用户输入的涉密数据直接放入受控内存中; 按照第一种预设的规则对涉密数据进行加密,得到密文; 将加密结果发送给目标程序,和/或根据第二种预设的规则以明文或密文的形式将涉密数据发送给显卡,继而在显示器上的显示。
3.根据权利要求1所述的数据保密方法,其中,对于磁盘输入/导入数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括: 将目标用户导入的数据直接放入受控内存中; 按照第一种预设的规则对导入的数据进行加密; 将加密结果发送给目标程序。
4.根据权利要求1所述的数据保密方法,其中,对于目标程序客户端或服务器端网络传送数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括: 当目标程序客户端和目标程序服务器之间有数据传输时,将待发送数据放入受控内存中; 按照第一种预设的规则对待发送数据进行加密; 根据网络数据包封装协议将加密结果封装并发送给网卡,继而传输到目标程序服务器或目标程序客户端。
5.根据权利要求1所述的数据保密方法,其中,对于目标程序输出数据到显示器,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括: 当目标用户要在目标程序中查询数据并显示到显示器时,将待显示的数据放入受控内存中; 按照第一种预设的规则对待显示的数据进行加密,得到密文; 根据第二种预设的规则以明文或密文的形式将待显示的数据发送给显卡,继而在显示器上的显示。
6.根据权利要求1所述的数据保密方法,其中,对于磁盘输出/导出数据,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管步骤进一步包括: 将目标用户要导出的数据放入受控内存中; 按照第一种预设的规则对待显示的数据进行加密; 将加密结果以要导出的文件格式存储到磁盘上。
7.根据权利要求1所述的数据保密方法,其中,对计算设备中的输入输出设备的读写请求进行监听的监听程序常驻受控内存中。
8.根据权利要求2或5所述的数据保密方法,其中,所述第一种预设的规则为对数据是否进行加解密的规则和/或如何进行加解密的规则; 所述第二种预设的规则为是否需要在显示器上进行明文或密文显示的规则。
9.一种数据保密装置,部署在支持虚拟化技术的CPU的VMX root operat1n模式下的RingO环上,包括: 监听模块,适于对计算设备中的输入输出设备的读写请求进行监听,等待目标用户或目标程序的操作;和 接管模块,适于当监听到所述目标用户或目标程序进行I/O操作时,通过将涉密数据存放在受控内存来对所述输入输出设备进行接管; 其中,受控内存是从计算机物理内存中划出的预定大小的一块内存区域,此内存区域对运行于支持虚拟化技术的CPU的VMX non-root operat1n模式下的RingO环上的客户操作系统不可见并且不受其管理。
【文档编号】G06F21/60GK104182691SQ201410419234
【公开日】2014年12月3日 申请日期:2014年8月22日 优先权日:2014年8月22日
【发明者】董明, 缪燕, 陈晓娟, 钟金柱, 李海, 张学深, 吕志来 申请人:国家电网公司, 北京许继电气有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1