一种计算机数据安全防护方法

文档序号:6559810阅读:247来源:国知局
专利名称:一种计算机数据安全防护方法
技术领域
本发明涉及一种计算机数据安全防护方法,属于计算机安全技术领域。
背景技术
随着计算机及其相关信息技术的不断发展,计算机系统在企业、事业单位、个人家庭等领域的应用越来越广泛,加之近年来网络技术的迅猛发展,使计算机系统的数据安全受到越来越严重的挑战。各种宝贵的资料在网络办公、资料传送的过程中,往往没有得到理想的安全保障,即便在内部网络中,也常常被轻易获得,并在管理人员不知道的情况下泄露。
为了解决安全问题,申请号为03816860.X的专利申请公开了在计算机系统中使用的隐藏的链接动态密钥管理器,该管理器揭示一计算机系统,包含密码密钥和密码密钥标识符。系统具有一存储库密码引擎,它安全地与远程密码引擎通信,并且存储库密码引擎与一用户数据存储器相关联。用户数据存储器包括一隐藏的链接,它包括用保护密钥加密的会话密钥标识符。隐藏的链接与远程数据实体相关联。与存储库服务器相关联的密钥数据存储器包括用会话密钥保护密钥加密的会话密钥。使用会话密钥加密和解密远程数据实体。系统也包括一存储库密钥交换模块,用于与远程密钥交换模块交换会话密钥。
此外,申请号为200410019056.8的专利申请公开了一种基于虚拟类全息的信息隐藏加/解密方法及装置,该方法使用并行硬件和算法的电子装置及软件,采用虚拟类全息对信息隐藏加/解密。信息的加密包括计算信息平面和随机模板分别到虚拟类全息平面的离散菲涅尔衍射变换的加权和,采用“谱操作”进行数字全息重建。解密用相应的解密参数计算随机模板在加密过程中的贡献,从密文中减去,求出信息平面在重建平面处的光强可得到原信息图像;该方法也适用于语音信息的加/解密。采用的装置包括由通用PC机和数字信号处理器、可编程专用集成电路构成的主从式系统,或脱离PC机单独运行的嵌入式系统。
上述检索发现的已有技术固然对计算机中的数据具有安全防护作用,然而,据申请人了解,与其它现有的各种加、解密技术一样,这些安全防护系统均构筑在计算机的应用层,往往需要进行相应的操作,而且不少防护措施防止文件被非法打开,而不能避免被复制拷贝,因此依然存在不安全因素。

发明内容
本发明要解决的技术问题是针对以上现有技术存在的不足,提出一种对于合法用户完全透明的计算机数据安全防护方法,同时给出采用该方法的计算机数据安全防护系统,从而实现合法用户在正常操作之后,即可使数据信息对于非法用户完全隐藏,在无需进行额外操作的情况下,确保数据安全。
为了解决以上技术问题,本发明的计算机数据安全防护方法在具有Windows操作平台支持的文件系统驱动结构的计算机中,所述文件系统驱动结构由用户态的应用程序接口和加解密认证模块、核心态的I/O管理器和文件系统驱动模块以及存储设备驱动模块、物理态的存储器构成,所述计算机的对应接口插接存储密钥的电子钥匙,其特征在于还含有嵌于I/O管理器和文件系统驱动模块之间的文件过滤驱动模块,所述计算机按照以下步骤进行数据存储1)、加解密认证模块根据电子钥匙中的密钥和用户登陆密码认证用户的合法性。
2)应用程序接口接受合法用户数据及存储指令后,调用Windows内部对应应用程序,将存储操作传输给内核中的I/O管理器;3)I/O管理器提取应用程序的进程名称、数据开始地址、数据长度、数据存储路径,将待存储数据转换为数据包,传输到文件过滤驱动模块;4)文件过滤驱动模块接收到数据包后,拷贝出副本,并将副本提交到用户态的加解密认证模块进行加密;5)文件过滤驱动模块接收到返回的加密数据后,将数据包转交到文件系统驱动模块;6)文件系统驱动模块按正常操作将数据包转交到存储设备驱动模块;7)存储设备驱动模块根据数据包将待保存的数据写入物理存储器中;所述计算机按照以下步骤进行数据读取1’)、加解密认证模块根据电子钥匙中的密码和用户登陆信息认证用户的合法性;2’)应用程序接口接受合法用户数据读取指令后,调用Windows内部对应应用程序,将读取操作传输给内核中的I/O管理器;3’)I/O管理器提取应用程序的进程名称、数据开始地址、数据长度、数据存储路径,将待读取数据转换为数据包,传输到文件过滤驱动模块,并等待返回数据;4’)文件过滤驱动模块接收到数据包后,直接将其转交文件系统驱动模块;5’)文件系统驱动模块接收到数据包后,按正常操作通过存储设备驱动模块将物理存储器中的待读取文件读出,返回到文件过滤驱动模块;
6’)文件过滤驱动模块接收到返回的数据后被唤醒,将读取到的数据提交到用户态的加解密认证模块进行解密,传输到I/O管理器;7’)I/O管理器将解密后的数据提供给用户态的应用程序接口。
从文件存储操作的过程可以看出,内存中的数据总是以明文形式存在,而物理存储器上的文件内数据总是以密文的形式存在。从读取操作的处理过程可以看出,不需要额外进行内存拷贝,其它操作处理过程与存储类似。这样,对于合法用户而言,由于感觉不到计算机的底层运行情况,因此整个加/解密完全是透明的,丝毫不影响正常操作,并无需额外的操作,十分方便。对于非法用户而言,存储数据不仅采取了加密措施,而且是完全隐蔽的,因此可以确保数据安全。


下面结合附图对本发明作进一步的说明。
图1为本发明一个实施例的系统硬件结构示意图。
图2为图1实施例与现有技术系统结构对比框图。
图3为图1实施例的总体结构图。
图4为图1实施例的系统结构框图。
具体实施例方式
实施例一本实施例的计算机数据安全防护方法通过图1所示的硬件环境实现。计算机数据安全防护系统基于IFS进行开发,运行于PC机的Windows平台之上,包括WindowsXP、WindowsNT4.0、Windows2000、Windows2003等,提供基于操作系统核心层的安全保护机制,对计算机数据资源进行加密保护。用户身份认证电子钥匙是具有usb接口、只有U盘大小的微型智能卡,在有身份认证钥匙的情况下,对加密项的操作与普通文件夹或文件一样,加解密过程对用户和应用程序完全透明,在没有身份认证钥钥匙的情况下,加密项被彻底隐藏。认证过程是软硬件结合的双重认证过程,即只有在电子钥匙中的密钥正确、并且用户名与密码也正确的情况下才能认证通过,安全可靠。
该计算机原有的文件系统驱动结构参见图2,由用户态的应用程序接口、核心态的I/O管理器和文件系统驱动模块以及存储设备驱动模块、物理态的存储器构成。为了实现对用户应用程序的读写操作进行拦截,并将数据提交加密模块处理,在操作系统的文件系统中嵌入过滤驱动模块,加载于I/O管理器和文件系统驱动模块之间。
其工作原理及操作运行为当用户把电子钥匙插入PC机的USB口,程序将自动开启“保险箱”,此时用户对加密文件或文件夹的操作(打开、读写)如同普通文件夹一样,程序将透明的实现对操作对象的加解密过程,无需用户执行额外操作。当用户拔出电子钥匙,加密文件和文件夹将被立即隐藏。另外,由于用户往往不是精通计算机的使用者,因此本系统还必须做到对用户透明,即用户可以像正常一样使用计算机而不增加任何额外操作,本程序将智能地完成对受控文件和目录的过滤和处理。
系统最重要的核心功能是对PC机本地存储的文件或文件夹进行隐藏和加密保护,即在PC机上为每一用户建立一个虚拟的“文件保险箱”,任何通过“拷贝/粘贴”方式添加进保险箱的文件或文件夹都成为被保护的对象,且被保护对象的逻辑路径不变,但以加密形式存储于物理介质上。
要实现文件透明加解密的核心功能,设计思路是在操作系统文件系统驱动层插入自行开发的文件过滤驱动模块,拦截操作系统上层应用程序发出的文件读写操作。为了实现这一透明过滤功能,系统使用IFS Kit(可安装文件系统开发包,Microsoft Windows Server 2003Installable File Systems Development Kit)在处于Window操作系统核心态的文件系统驱动层之上加载一层文件过滤驱动,如图2所示,凡是对磁盘文件的读写操作都必须先接受此过滤驱动的处理,然后将读写操作的数据提交给“数据加解密模块”进行加密或解密处理。
具体实现时,在Windows 2000/XP中,I/O管理器负责处理所有设备的I/O操作。I/O管理器主要通过存储设备驱动模块、中间驱动模块、文件系统驱动模块、过滤驱动模块完成I/O操作,这些模块的功能如下存储设备驱动模块位于I/O管理器的最低层,直接对设备进行I/O操作。
中间驱动模块嵌入在文件系统驱动模块以及存储设备驱动模块之间,与底层的存储设备驱动模块一起提供增强功能。例如,当发现I/O失败,存储设备驱动模块可能简单的返回出错信息;而中间驱动模块却可能在收到出错信息后,向设备驱动模块发出再试请求。
文件系统驱动模块(FSD,File System Driver),扩展底层驱动模块的功能,以实现特定的文件系统,如NTFS。
过滤驱动模块位于I/O管理器与文件系统驱动模块之间,以实现用户自定义的扩展功能,尤其是可以截取有关远程文件的操作,并可以重定向到远程文件服务器上。
下面结合计算机语言,以具体写文件和读文件的数据处理流程来阐述借助过滤驱动实现的数据安全防护工作过程(参见图3)。
写文件用户态的应用程序接口通过Windows API函数write操作来将数据写入到磁盘指定的文件中。
该操作进入Windows内核态之后,会首先到达I/O管理器,I/O管理器将其转化为IRP(IO Request Packet)包送到指定的设备(对于文件操作,是磁盘设备),对应到写操作它的操作类型标识就是IRP_MJ_WRITE(其中MJ是Major的缩写)。IRP包除了操作类型标识外,还包括许多其他的字段,例如数据的开始地址,数据的长度,进程名等等。
完整的IRP包的结构定义在DDK(Device Driver Kit)中如下typedef struct_IRP{PMDLMdlAddress;ULONGFlags;union {struct_IRP *MasterIrp;
PVOID Sys temBuffer;}AssociatedIrp;IO_STATUS_BLOCKIoStatus;KPROCESSOR_MODERequestorMode;BOOLEANPendingReturned;BOOLEANCancel;KIRQLCancelIrql;PDRIVER_CANCELCancelRoutine;PVOIDUserBuffer;union {struct {union {KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
struct {
PVOID DriverContext[4];
};
};
PETHREAD Thread;
LIST_ENTRY ListEntry;
} Overlay;} Tail;} IRP,*PIRP;
以应用程序接口保存1K字节的数据到C:\test\1.DAT文件为例。该操作请求到达I/O管理器转换为IRP_MJ_WRITE的数据包,通过PsGetCurrentProcess()提取应用程序的进程名称,通过MmGetSystemAddressForMdlSafe(Irp->MdlAddress,NormalPagePriority);提取开始地址,通过MmGetMdlByteCount(Irp->MdlAddress);提取数据的长度,通过设备对象中包含的文件对象fileObject->FileName.Buffer提取文件的路径名。如果文件的全路径表明需要保存的数据来自于预先设定的加密目录c:\test,则在过滤驱动中会将这1K数据拷贝出一个副本,并将副本提交到用户态的加解密认证安全防护模块的进程DPS.EXE进行加密并等待加密完成。加密完成后,过滤驱动模块将加密后的数据交给文件系统驱动模块并等待它返回。文件系统驱动模块按正常操作将数据包转交到传输到存储设备驱动模块,由存储设备驱动模块根据数据包将待保存的数据写入物理存储器中,之后过滤驱动释放这1K的数据副本。
从以上文件写操作的过程可以看出,内存中的数据总是以明文的形式存在,而磁盘上文件内的数据总是以密文的形式存在。
读文件过滤驱动模块对文件读操作和写操作的处理过程类似。当应用程序接口通过Windows API函数read操作读取C:\test\1.DAT文件的1K数据时,该操作请求在内核态首先到达I/O管理器并转换为IPR_MJ_READ类型的IRP包,该IRP包包含了读取的数据需要存放的内存地址以及长度等信息。该请求到达过滤驱动模块之后,过滤驱动模块直接转交给文件系统驱动模块处理并等待它处理完成。文件系统驱动模块将磁盘设备上指定的数据读入到内存中。因为C:\test\1.DAT文件是加密过的,因此此时内存中的数据是以密文的形式存在的。文件系统驱动处理完成之后,过滤驱动模块的等待被唤醒,将数据提交到用户态的加解密认证模块数据防护DPS.EXE进行解密并等待。解密完成之后(内存中的数据变成明文),过滤驱动模块最后完成对IRP包的处理,传输到I/O管理器。接着,I/O管理器将解密后的数据提供给用户态的应用程序接口。此时,Windows API函数read操作返回,应用程序接口获取了期望的明文数据。
从读操作的处理过程可以看出,不需要额外的进行内存拷贝,其他方面同写操作的处理过程是完全类似的。
从软件运行层面说,在以上组成构件中,与文件系统管理最为密切相关的当属文件系统驱动模块(FSD,File System Driver)。FSD工作在内核模式中,但与其他标准内核驱动程序有所不同。FSD必须首先向I/O管理器注册。FSD还要与内存管理器与告诉缓冲管理器产生大量交互。因此,FSD使用了Ntoskrnl出口函数的超集。虽然普通内核设备驱动程序可以通过DDK(Device Driver Kit)来创建,但是对文件系统驱动程序则必须用IFS(Ins tallable File SystemsDevelopment Kit)来创建。
Windows文件系统的有关操作都是通过FSD来完成的,通常有如下几种方式会用到FSD显式文件I/O、高速缓存延迟写、告诉缓存提前读、内存脏页写与内存缺页处理。下面对与本项目联系最密切的显式文件I/O简要描述。
显式文件I/O应用程序通过Win32I/O接口函数如CreateFile、ReadFile及WriteFile等来访问文件。例如,函数ReadFile通过NtReadFile来完成。NtReadFile将已打开文件的句柄转换成文件对象指针,检查访问权限,创建IRP(I/O请求包,I/O request packet)读请求,通过IoCallDriver将IRP交给合适的FSD。
函数CreateFile通过NtCreateFile来完成。NtCreateFile通过ObOpenObjectByName解析名称字符串,通过IoParseDevice创建IRP请求,通过IoCallDriver将IRP交给合适的FSD以创建文件。
函数WriteFile与ReadFile相类似,只不过WriteFile调用NtWriteFile。
本实施例的文件过滤驱动模块(File System Filte Driver)由驱动入口、设备IO控制、吸收例程、快速I/O处理例程四个模块构成。其相互关系如图4所示,以下分别介绍(1)驱动入口模块(Driver Entry)--本模块完成过滤驱动的初始化。初始化过程包括过滤驱动对象的初始化,过滤设备对象的创建、过滤设备对象与上层应用程序之间符号连接的建立以及吸收例程与快速I/O处理例程的建立。这类似于上层应用程序的InitInstance函数。
(2)设备I/O控制模块(Device IO Control)--上层应用程序通过驱动入口模块中建立的符号连接向过滤设备对象发出I/O命令,本模块的功能是对I/O命令进行响应。例如,上层应用程序需添加一加密目录时,将发送IOCTL_SET_NOTIFICATION_AddEncryptPath命令到过滤设备,过滤设备收到此命令后将根据输入缓冲区的内容添加指定目录的全路径到内核缓冲区中。
(3)吸收例程模块(Attach)--也叫I./O处理例程模块。上层应用程序发出的文件I/O操作(例如读写操作)在到达文件系统驱动模块之前会首先到达过滤驱动模块。吸收例程模块的功能就是在收到文件I/O操作时对其进行处理,处理之后再转交到文件系统驱动模块。
(4)快速I/O处理例程模块(Fast IO Attach)--上层应用程序发出的文件I/O操作(例如读写操作)在到达内核态之后会首先被I/O管理器转化为快速I/O请求。快速I/O请求是Windows平台上为了优化文件I/O操作而设置的,例如当上层应用程序需要读取的文件数据在内存中已经存在时,则I/O管理器会向文件系统驱动模块发送快速I/O请求,文件系统驱动模块会直接返回内存中的数据。快速I/O请求在到达文件系统驱动模块之前会首先到达过滤驱动模块。快速I/O处理例程模块的功能就是对快速I/O请求进行处理,处理之后再转交到文件系统驱动模块。
文件过滤驱动模块可以捕捉用户操作的所有文件,要保证文件数据的安全性,还必须拥有一个安全可靠的加密和解密模块。
本实施例采用和微软的EFS文件系统加密原理类似的方法,即当用户写文件时向加密模块提交数据,然后对文件数据用对称加密算法(SSF28和DES算法)进行加密,然后存储在硬盘中。对称加密算法的密钥采用RSA加密算法进行加密,将加密后的密文存储在电子钥匙中。当用户读文件时,首先用RSA算法解密出对称加密算法的密钥,然后该密钥对文件数据进行解密处理。
密码算法和密钥的保存均采用硬件实现,其中对称算法与RSA算法由SJW26加密卡内置的加密芯片提供,密钥的保存由电子钥匙提供。电子钥匙本身提供了完善的三级密钥管理体系,在密钥产生、密钥存储与使用各个环节具有很高的安全性,它通过采用物理保护措施防止敏感信息的泄漏、拷贝、剖析和跟踪。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
权利要求
1.一种计算机数据安全防护方法,在具有Windows操作平台支持的文件系统驱动结构的计算机中,所述文件系统驱动结构由用户态的应用程序接口和加解密认证模块、核心态的I/O管理器和文件系统驱动模块以及存储设备驱动模块、物理态的存储器构成,所述计算机的对应接口插接存储密钥的电子钥匙,其特征在于还含有嵌于I/O管理器和文件系统驱动模块之间的文件过滤驱动模块,所述计算机按照以下步骤进行数据存储1)、加解密认证模块根据电子钥匙中的密钥和用户登陆密码认证用户的合法性;2)应用程序接口接受合法用户数据及存储指令后,调用Windows内部对应应用程序,将存储操作传输给内核中的I/O管理器;3)I/O管理器提取应用程序的进程名称、数据开始地址、数据长度、数据存储路径,将待存储数据转换为数据包,传输到文件过滤驱动模块;4)文件过滤驱动模块接收到数据包后,拷贝出副本,并将副本提交到用户态的加解密认证模块进行加密;5)文件过滤驱动模块接收到返回的加密数据后,将数据包转交到文件系统驱动模块;6)文件系统驱动模块按正常操作将数据包转交到存储设备驱动模块;7)存储设备驱动模块根据数据包将待保存的数据写入物理存储器中;所述计算机按照以下步骤进行数据读取1’)加解密认证模块根据电子钥匙中的密码和用户登陆信息认证用户的合法性;2’)应用程序接口接受合法用户数据读取指令后,调用Windows内部对应应用程序,将读取操作传输给内核中的I/O管理器;3’)I/O管理器提取应用程序的进程名称、数据开始地址、数据长度、数据存储路径,将待读取数据转换为数据包,传输到文件过滤驱动模块,并等待返回数据;4’)文件过滤驱动模块接收到数据包后,直接将其转交文件系统驱动模块;5’)文件系统驱动模块接收到数据包后,按正常操作通过存储设备驱动模块将物理存储器中的待读取文件读出,返回到文件过滤驱动模块;6’)文件过滤驱动模块接收到返回的数据后被唤醒,将读取到的数据提交到用户态的加解密认证模块进行解密,传输到I/O管理器;7’)I/O管理器将解密后的数据提供给用户态的应用程序接口。
2.根据权利要求1所述计算机数据安全防护方法,其特征在于在文件系统驱动模块以及存储设备驱动模块之间还嵌入中间驱动模块,用以发现I/O失败时,向存储设备驱动模块发出再试请求。
3.根据权利要求2所述计算机数据安全防护方法,其特征在于所述文件过滤驱动模块含有用以完成过滤驱动的初始化的驱动入口模块、用以响应I/O命令的设备I/O控制模块、用以处理接收到的文件I/O操作再转交到文件系统驱动模块的吸收例程模块。
4.根据权利要求4所述计算机数据安全防护方法,其特征在于所述文件过滤驱动模块还含有用以对快速I/O请求进行处理再转交到文件系统驱动模块的快速I/O处理例程模块。
5.根据权利要求4所述计算机数据安全防护方法,其特征在于所述加解密认证模块用以——当用户写文件时,向加密模块提交数据,而后对文件数据用对称加密算法进行加密,存储在硬盘中,所述对称加密算法的密钥采用RSA加密算法进行加密,将加密后的密文存储在电子钥匙中;当用户读文件时,首先用RSA算法解密出对称加密算法的密钥,然后以该密钥对文件数据进行解密处理。
全文摘要
本发明涉及一种计算机数据安全防护方法,属于计算机安全技术领域。该方法在具有Windows操作平台支持的文件系统驱动结构的计算机中,将文件过滤驱动模块嵌入I/O管理器和文件系统驱动模块之间,存储以及读取数据时,当确认合法用户后,I/O管理器将数据包传输到文件过滤驱动模块,文件过滤驱动模块进行加、解密认证处理,再转交到文件系统驱动模块。文件存储过程中内存数据以明文形式存在,而物理存储器上的文件内数据以密文形式存在。对于合法用户而言,感觉不到计算机的底层运行情况,整个加/解密完全是透明的,不影响正常操作,并无需额外的操作,十分方便。对于非法用户而言,存储数据完全隐蔽,因此可以确保数据安全。
文档编号G06F21/24GK1928881SQ20061009644
公开日2007年3月14日 申请日期2006年9月26日 优先权日2006年9月26日
发明者张虹, 汪晓刚 申请人:南京擎天科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1