首页 终端数据防泄密系统毕业论文

终端数据防泄密系统毕业论文

举报
开通vip

终端数据防泄密系统毕业论文终端数据防泄密系统毕业论文 设计题目 终端数据防泄密系统 学生姓名 汪良柱 学 号 20103065 专业班级 信息安全10-2 指导教师 侯整风 院系名称 计算机与信息学院 2014 年 6 月 10 日 目 录 摘要 .......................................................... II ABSTRACT: .................................................... III 1 引 言 .......

终端数据防泄密系统毕业论文
终端数据防泄密系统毕业 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 设计题目 终端数据防泄密系统 学生姓名 汪良柱 学 号 20103065 专业班级 信息安全10-2 指导教师 侯整风 院系名称 计算机与信息学院 2014 年 6 月 10 日 目 录 摘要 .......................................................... II ABSTRACT: .................................................... III 1 引 言 ........................................................ 1 1.1 背景 ...................................................... 1 1.2 研究现状 .................................................. 1 1.2.1理论研究现状 ........................................... 1 1.2.2 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 研究现状 .......................................... 3 2 相关知识 ..................................................... 5 2.1 WINDOWS操作系统结构 ....................................... 5 2.2 WINDOWS文件系统和文件过滤驱动 ............................. 6 2.3 驱动开发过程中的重要数据结构............................... 7 2.3.1 驱动对象 .............................................. 7 2.3.2 设备对象 .............................................. 8 2.3.3 请求 .................................................. 8 2.3.4 设备扩展 .............................................. 9 2.3 SFILTER ................................................... 10 2.4 RC4算法 ................................................. 11 2.5 复合二进制文档存储结构 ................................... 11 3 系统设计 .................................................... 13 3.1 系统设计目标 ............................................. 13 3.2 系统设计 ................................................. 13 3.3 系统实现 ................................................. 14 3.3.1 进程识别 ............................................. 14 3.3.2 文件加密标识 ......................................... 15 3.3.4 文件打开处理 ......................................... 16 3.3.5 文件读操作处理 ....................................... 17 3.3.6 文件写操作处理 ....................................... 17 4 系统测试 .................................................... 19 4.1 测试环境 ................................................. 19 4.2 系统安装 ................................................. 19 4.3 系统测试 ................................................. 20 4.4 结果分析 ................................................. 22 第I页 终端数据防泄密系统 摘要: 随着计算机与网络的发展日益迅速,数据的安全性显得越来越重要,数据加解密系统研究与应用日益广泛。长期以来,企业大多通过封USB接口、断网、拆光驱等“堵”的方式来保护企业机密文档不被泄露,但这些方式仍然存在极大的安全隐患,因为文件本身还是以明文的形式存在,员工通过红外蓝牙、外接移动设备、安装转移接口设备、拆硬盘等手段就能轻松将文件带走。因此如何有效保护机密文件成了企业管理的一大难题。 本文基于Windows内核文件过滤技术和加密算法,设计并实现一种终端数据防泄密系统。该系统能够捕获、拦截应用程序发给文件系统的各种操作请求。若是“打开”请求就对文档进行解密,若是“关闭”请求就对文档进行加密,其他请求则直接放过,不做任何处理。加解密过程动态进行,不会对用户操作文档产生任何影响。用户只有在特定的计算机设备上才能打开涉密文件。 最后通过U盘拷贝和网络传输测试,在安装服务的PC机上可以正常打开文档,在未安装服务的PC机上不能正常打开文档,达到了系统设计的目的,验证了系统的有效性。 关键词:安 全文 企业安全文化建设方案企业安全文化建设导则安全文明施工及保证措施创建安全文明校园实施方案创建安全文明工地监理工作情况 档、文件过滤、透明加密 第II页 Terminal Data Leak Prevention System Abstract: With the development of computer and network, data security is becoming increasingly important, data encryption and decryption system research increasingly widespread. For a long time, most enterprises through the closure USB " blocking" the way the interface, broken network , such as demolition drive to protect confidential business documents not be disclosed. But there still exists much hidden security danger, this is because the file itself is still plaintext. Staff could steal files through Bluetooth, external obile equipment, installing transfer interface equipment, and uninstalling m hard disk. How to effectively protect the confidential documents for enterprises has become a big challenge to the company management. In this paper, we design and implement a terminal data leak prevention system based on the Windows kernel file system filtering technology and RC4 algorithm. The system is binding with the windows file system to intercept and distribute a variety of operating system requests. Decrypt files when the request is open, and encrypt them when the request is close. Other requests shall directly pass without any treatment. Dynamic encryption and decryption process will not have any influence on the operation of user’s documents. The user can only open secret files in a specific computer device. PC with installed services can open the document, but PC without installed services can’t, achieving our purpose and verifying the effectiveness of the system. Keywords: security document, document filtering, transparent encryption 第III页 1 引 言 1.1 背景 随着信息技术的快速发展,网络技术、通信技术、数字多媒体技术研究取得了重大突破,信息数字化改变了人们的生活方式和生产方式。电子文档正在逐步取代传统的纸质文档,办公信息化、无纸化成为低碳、环保生活发展的主流趋势。相比于传统的纸质办公文档,电子文档易于存储、易于管理,极大的提高了人们的工作效率。然而,电子文档易复制、易传递、易修改的特性使得文档信息时刻受到潜在的泄密风险。 目前,企业机密信息和敏感数据被泄密事件频频成为互联网上的热点。2011年索尼发生两起数据泄密事件,超过一亿用户的信息被窃取;2013年大约1500万~2500万的支付宝用户信息被泄露被用于网络营销;今年杭州市准备实行机动车限牌,然而在政府还没有发布这一消息之前,已经有一份与新闻发布会一样的通稿在网上疯传,使杭州机动车4S店汽车被疯抢,汽车价格飙升,引起了民众对政府的不满,使杭州市政府的形象受到严重影响。 企业信息泄露,不仅使企业蒙受直接的经济损失,而且还影响公司的品牌价值、社会形象和投资者之间关系。如果企业的核心技术、知识产权等信息泄露,将会给竞争对手以可乘之机,直接关系企业的生存和发展;个人隐私信息的泄露,将给个人的工作和家庭生活带来困扰。因此,敏感数据的安全性问题引起了人们的高度重视,敏感数据安全管理、防止敏感信息泄露也成为信息安全领域研究的重点。 1.2 研究现状 近几年,信息防泄密已成为信息安全领域研究的热点问题之一,从理论方面的安全模型研究到工程方面的应用都取得了丰厚的研究成果。 1.2.1理论研究现状 一直以来,数据的安全性受到国内外学术界的普遍关注,是信息安全领域的重点研究方向之一。国际上很多大学和研究机构在数据安全方面做了很多研 第1页 究,如Massachusetts Institute of Technology(麻省理工学院)、微软亚洲 [1] [2]研究院、剑桥大学、IBM研究院、Namseoul University(首尔大学),国 [3][4]内的有清华大学、上海交通大学、复旦大学、北京邮电大学、南京大学软 [5]件新技术国家重点实验室等,并在文档加密、数据分发、秘钥管理、访问控制方面提出了很多新的理论,为数据的安全管理提供了强大的理论支持。 (1)敏感电子文档安全可信模型 敏感电子文档安全可信模型是一种对被保护的敏感数据对象,通过设置特定的安全策略,在敏感数据文件生成、存储、传输的过程中实现自动化保护,以及通过条件访问控制策略防止敏感数据对象的非法复制、泄露和扩散,使得开放网络环境下敏感数据对象具有自我保护和自我版权侵犯防范能力。目前,大多数的敏感数据可信模型是通过DRM (Digital Rights Management)技术实现的。 (2)敏感电子文档加密 数据加密是保护文档最常用的方法之一。最原始的数据加密方法是手工设置加密密码,通过传统的加密算法和加密密钥将明文转变成密文。但是存储在硬盘上的文件还是以明文的形式存在,对于机密文件保护,仍不能从根本上起到作用。另外这种手动输入的密码,需要人为去记忆、保存,万一密码遗忘或丢失,不仅影响用户使用数据,还有可能造成数据泄露。 传统的数据加密是在用户态实现的,但如果加密密钥保存不当易造成数据泄露,后来提出在内核态实现数据加密。数据内核态加密是指在对特定进程 [6]产生的数据在生成、存储、传输等瞬态执行强制性透明加密,无需用户干预。这种方式是通过过滤驱动对受保护的敏感数据 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 进行相应的参数设置而达到选择性保护的目的,写入时加密,读取时解密,不影响用户使用。 目前虽然对敏感数据加密已经提出了一些理论,但多采用单一透明加解密技术,代理重加密机制、属性加密机制以及全同态加密技术只在理论上得到证明,并未在实际中得到应用。 (3)域密钥管理 开放式网络环境下,越来越多的组织联合起来进行协同工作,资源共享、批量数据传输等应用都需要建立在认证域基础上。在开放网络环境下,各个用户属于不同的安全认证域,每个认证域拥有不同的域密钥,域中成员通过域密 第2页 钥进行电子文档的共享,只有授权的域成员才能够得到认证域的域密钥而解密获得数据。因此如何对域密钥进行管理是敏感电子文档安全管理的核心问题。 [7]保罗?麦卡沃伊、袁拍、奥尔森?肯普提出一种“用于数据内容分发的系统和方法”,该方法重点采用层次密钥管理方法对电子数据进行加密,利用子群的水平控制的关键更新影响到整个团队,但需要对敏感数据的内容解密和加密,在新的成员加入或离开该组的时候。 [8]Wallner提出的逻辑树 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 主要通过修改逻辑树结构的方法,使群中每个成员均可获得从该成员所在节点到根节点的所有秘密值(包括群密钥)的信息,因此适应于用户域变化不太大的情况下,可以达到很好的性能。 目前,学者们广泛研究组密钥管理,多组密钥管理方案也已经被提出,但仍然存在一些问题,需要进一步的研究。主要问题如下: 1)可扩展性。大多数群密钥管理方案依赖于群中成员的安全信息,而群中成员的加入或撤退将关系方案的可扩展性。 2)安全性。群密钥由所有的域成员共享,群密钥的安全性将关系到敏感信息的加密、解密以及用户的认证等关键步骤。因此,群密钥必须满足机密性、完整性和前向保密性、后向保密性以及独立性等安全性。 3)高效性。由于群组规模的动态变更,将会影响到生成群密钥的计算代价、群中成员存储密钥的空间、更新群密钥时占用的带宽以及网络延时,都需要设计群密钥管理方案时进行考虑。 (4)电子文档访问控制 访问控制敏感数据的访问控制策略的定义,防止非法用户或合法用户敏感数据的未经授权的操作。开放网络环境中每个认证域都管理着本地的电子文档和用户,当用户跨域访问电子文档时,需要对访问共享电子文档的用户进行统一的身份认证管理。另外,在进行电子文档共享时需要对电子文档制定一个公共的访问控制策略,灵活的访问控制和权限管理将关系到数据资源的安全性和共享程度。 1.2.2 工程研究现状 在电子信息防泄密技术解决方案上,国外比较著名有美国的Microsoft RMS, Adobe LifeCycle, Authentica ARM,韩国的markany,日本的Intelligent Wave等。 第3页 RMS (Right Management Service)防泄密系统是通过系统与应用程序协作来保护敏感数据内容的,尤其是对Web内容、文档和电子邮件的保护。像Office2003 系列软件就带有含DRM技术的IRM服务。然而,为各种各样的应用支持,微软IE浏览器和Office系列软件已出版了多个接口,导致许多安全漏洞和不安全因素。 Secure Documents for PDF系统是美国的Authentic公司做的,系统基于PDF格式的DRM的电子文档的产品是最有名的。此系统的核心核心技术为采用RC4加密算法对数据内容进行加密,使用Plug-in技术对PDF文档进行文件控制,由Policy Server服务器对系统进行授权分配和管理。 韩国的Markany系统对创建的文档能够追溯文档信息以及文档的控制信息,同时,文档被打印时设置水印,具备PC & document take-out功能,允许离线使用文档(需要管理员批准),过期后权限自动回收。 国内业界在电子信息防泄密技术上起步比较晚,但也有不少的单位和公司开发出了敏感数据防泄密系统,且使用效果很好。如亿赛通CDG文档安全管理系统,该系统可在设定文件保护类型,设定之后强制、实时对该类文档进行文件透明加解密,并设置文件权限的分化,以确保指定的文件信息的透明加解密在授权的范围内实现。天盾文档安全系统把应用程序对文件的操作都列入到加密监控之中,通过保存、另存为、虚拟输出等接口读取出的文件内容都将被强制加密,用户不必担心在某一方面文件信息因为未被加密而导致信息泄露。 第4页 2 相关知识 2.1 Windows操作系统结构 [9]Windows操作系统是基于分层设计思想的。从整体上看,Windows操作系统由若干个层组成,每层有若干个组件,每个组件有固定的接口。操作系统运行时由上层接口向下层接口一层一层调用。离底层越近的组件拥有越高的操作权限。下图是Windows操作系统层次结构图: 应用程序应用程序 Win32子系统其它子系统 Native API 用户模式 内核模式 系统服务函数 执行体组件 I/O管理器对象管理器进程管理器驱动程序 虚拟内存管理器配置管理器其它组件 内核 硬件抽象层 具体硬件 图2.1 windows系统结构图 在该图中可以看出操作系统被一条横线分为上下两部分:上层为用户模式,下层为内核模式。在用户模式下,该API接口应用程序调用自身子系统。在Windows操作系统中子系统主要包含Win32子系统、OS/2子系统和POSIX子系统。当初Windows设计者设计子系统也是为了方便将其他系统的程序移植到Windows系统上来,其中Win32子系统是Windows最主要子系统,包含了大量API函数,只要熟悉这些API便可以实现Windows应用程序。Win32下一层是Native API,Native API一般都是在Win32 API的基础上加上Nt两个字母。Native API没有相应的文档可以 第5页 查询,设计之初也是出于版本兼容性的考虑。Native API通过软件中断的方式从用户模式穿越进入内核模式,调用系统服务函数。系统服务的组件中的系统服务描述符号表可以查出对应系统服务函数地址。系统服务会将具体的I/O操作通过I/O管理器将消息传递到驱动程序中,由驱动程序通过硬件抽象层操作具体的硬件。 2.2 Windows文件系统和文件过滤驱动 在Windows内核中,文件系统驱动程序中有两种设备对象,一种是控制设备对象,控制设备对象仅仅是文件系统驱动程序,不涉及任何硬件,主要用于文件系统初始化配置、同应用程序通信等,一般来说,一个文件系统驱动只有一个控制设备对象;另一种是卷设备对象,卷可以被看作是一个逻辑磁盘,逻辑磁盘可以被理解为一个物理硬盘,即我们在电脑看到的C盘、D盘的盘符。 文件系统驱动接受应用程序操作文件时发出的打开、创建、读、写和关闭等请求,并根据请求类型对硬盘进行相应的操作。其原理如下: 应用程序 I/O请求数据 WIN32子系统 I/O管理器 IRP包数据 文件系统过滤驱动数据IRP包 数据是文件系统驱动程序Fast I/O?Fast Dispatch例程 否 文件系统驱动程序Dispatch例程Cache Manager IRP包数据 磁盘驱动程序磁盘分区 图 2.2文件系统控制流程图 当应用程序对文件进行操作时会发出一个或多个请求,请求经过win32子系统到达I/O管理器。由于Windows存在文件缓存机制,当I/O管理器接受到文件请求之后,首先在缓存中搜索应用程序请求的数据,如果在缓存中成功 第6页 的搜索到需要的数据,则I/O管理器会构造快速I/O请求包,直接从缓存里读取数据。如果缓存里没有应用程序请求的数据,则I/O管理器构造普通I/O请求包,发给文件系统驱动。普通I/O请求结束之后,缓存管理器会将请求的数据保存在缓存中。 文件系统过滤驱动是绑定在文件系统驱动上,拦截所有发往磁盘驱动的请 [11]求,并且有选择的处理这些请求,以此扩展或修改文件系统驱动的功能。文件过滤驱动首先构造附加的设备对象,将该设备对象绑定到文件系统两种设备对象上,并为该设备对象指定专门的文件过滤驱动程序。如图2.2虚线框所示,I/O管理器发送请求到文件系统时,文件过滤驱动会截获请求并对请求进行处理再发送给文件系统,而请求得到的数据也需要先经过过滤驱动处理才能返回给应用程序。因此可以在过滤驱动中完成数据加解密操作。 2.3 驱动开发过程中的重要数据结构 2.3.1 驱动对象 使用c语言编写的Windows操作系统,采用的却是面向对象的程序设计方法。在Windows内核中,每个驱动程序都被看成一个对象,且一个驱动程序只能对应一个对象。驱动对象的结构定义如下: Typedef struct _DRIVER_OBJECT{ //结构的类型和大小 CSHORT Type; CSHORT Size; //设备对象,每个驱动程序都会有一个或多个设备对象 PDEVICE_OBJECT DeviceObject; ………… //驱动的名字 UNICODE_STRING DriverName; ………… //快速I/O分发函数 PFAST_IO_DISPATCH FastIoDispatch; 第7页 ………… //驱动卸载时的回调函数 PDRIVER_UNLOAD DriverUnload; //普通分发函数 PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1]; }DRIVER_OBJECT; 2.3.2 设备对象 一个驱动程序会创建一个或多个设备对象,每个设备对象都会有一个指针指向下一个设备对象,多个设备对象链接在一起形成设备链。设备对象(DEVICE_OBJECT)结构定义如下: Typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT)_DEVICE_OB JECT{ … //和驱动对象一样 CSHORT Type; CSHORT Size; //引用计数 ULONG ReferenceCount; //设备所属的驱动对象 struct _DRIVER_OBJECT *DriverObject; //指向下一个设备对象 struct _DRIVER_OBJECT *NextDevice; DEVICE_TYPE DeviceType;//设备类型 //IRP栈大小 HAR StackSize; … }DEVICE_OBJECT; 2.3.3 请求 第8页 IRP(IO Request Packet)是Windows驱动开发中与输入输出有关的重要数据结构。IRP是内核中特有的,在应用程序中是看不到的。在应用程序中,我们只需要调用内核API便能够实现我们所需要的功能,如当我们调用API ReadFile函数时,就可以读取硬盘中的数据。但是这些操作会发出相应的请求,请求会在内核的I/O管理器中被翻译成IRP数据结构,然后将IRP向下传递,传给对应的设备对象。大部分请求是以IRP的形式发送的,IRP的数据结构比较复杂,现在简单介绍其中重要的字段。 Typedef struct DECLSPEC_ALIGN _IRP { //类型和大小 CSHORT Type; CSHORT Size; //内存描述符链表指针 PMDL MdlAddress; 也是表示缓冲区的一种方式 // PVOID SystemBuffer; //IO状态 IO_STATUS_BLOCK IoStatus; //栈空间大小 CHAR StackCount; …… } 2.3.4 设备扩展 设备扩展(DEVICE_EXTENSION)是与设备对象相关的另一种重要的数据结构,它可以用来存储与一个特定设备相关的信息。其数据结构如下: typedef struct DEVICE_EXTENSION { PDEVICE_OBJECT DeviceObject; PDEVICE_OBJECT LowerDeviceObject; PDEVICE_OBJECT Pdo; IO_REMOVE_LOCK RemoveLock; UNICODE_STRING Devname; 第9页 . . . . . . } DEVICE_EXTENSION, *PDEVICE_EXTENSION; 2.3 sfilter Sfilter是微软在内核驱动开发包WDK中提供的传统型文件过滤的例子,这个驱动程序实现了文件过滤驱动的控制设备绑定和卷设备绑定,能够拦截应用操作系统的各种请求,但不对请求做任何处理,我们可以打印出sfilter拦截的所有请求。内核软件开发者在开发与文件系统相关的软件时,一般都是在sfilter的基础上修改,插入新的代码。不过这样导致插入的代码与sfilter代码相混杂,不利于代码的维护与移植。较好的方法是将sfilter编译成一个静态库,可以供任何一个内核模块调用。该静态库只提供文件系统设备对象绑定、拦截IRP,但没有做任何事情。以后内核编程者就不用修改sfilter本身的代码,可以直接调用sfilter静态链接库提供的接口,这样驱动开发者就省去了设备绑定、拦截IRP等许多复杂事情,提高了开发效率。Sfilter系统很稳定,在调试内核驱动程序时,一般不会考虑sfilter程序出现问题。 sfilter中有一些回调函数,当然。这些回调函数是sfilter自己没有实现的,等待基于sfilter编写软件的开发者自己来实现。sfilter提供一个回调函数接口: NTSTATUS OnSfilterDriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath, OUT PUNICODE_STRING userNameString, OUT PUNICODE_STRING syblnkString, OUT PULONG extensionSize ) 这个函数需要驱动开发者自己来实现,实现是时需填写userNameString,以后会用它作为控制设备的名字,同样还有syblnkString,之后sfilter会用这个字符串作为控制设备的符号链接名。最后是一个extensionsize,用来作为每个设备的设备扩展的长度。 第10页 2.4 RC4算法 考虑到文件系统读写请求的频繁性与随机性,算法的复杂度,实现的难度,加解密速度,以及算法的安全性。本系统采用RC4加密算法。 RC4算法包括两部分:初始化算法和伪随机子密码生成。假设S-box长度和密钥长度均为为n。算法的初始化部分为(用类C伪代码表示): for (i = 0; i < n; i++){ s[i] = i; j = 0; for (i = 0; i < n; i++){ j = (j + s[i] + k[i]) % 256; swap(s[i], s[j]); } } 在初始化的过程中,密钥的主要功能是将S-box搅乱,i确保S-box的每个元素都得到处理,j保证S-box的搅乱是随机的。而不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,并且,该序列是随机的: i = j =0; while (明文未结束) { ++i %= n; j = (j + s[i]) % n; swap(s[i], s[j]); sub_k= s((s[i]+s[j])%n); } 得到的子密码sub_k用以和明文进行异或运算,得到密文,解密过程也完全相同。RC4加密算法实现简单,加解密速度快,因此用在数据防泄密系统中是一个比较好的选择。 2.5 复合二进制文档存储结构 第11页 Microsoft office系列软件创建的文档属于复合文档,复合文档包含一个文件头,一般大小为512字节,用来记录文档的相关信息。本系统将把加密标识放在文档的头部,所有有必要了解一下复合文档的头部结构: 表2.2 word文档二进制头部 Offset Size Contents 0 8 复合文档文件标识,只要它是一个复合文档内容都是一样的 8 16 此文件的唯一标识(不重要, 可全部为0) 24 2 文件格式修订号 (一般为003EH) 26 2 文件格式版本号(一般为0003H) 28 2 字节顺序规则:FEH FFH为小端规则, FFH FEH为大端规则 30 2 复合文档中扇区的大小(ssz) 32 2 短扇区大小(sssz) 34 2 Reserved 36 4 Reserved 40 4 用于存放目录总数 44 4 用于存放扇区配置表(SAT)的扇区总数 48 4 用于存放目录流的第一个扇区的SID 52 4 Reserved 56 4 标准流大小,一般为4kB,小于此值的流即为短流 60 4 存放短扇区配置表(SSAT)的第一个扇区的SID 64 4 存放短扇区配置表的(SSAT)的扇区总数 68 4 存放主扇区配置表(MSAT)的第一个扇区的SID 72 4 存放主扇区配置表的(MSAT)的扇区总数 76 436 存放主扇区配置表(MSAT)的第一部分, 第12页 3 系统设计 3.1 系统设计目标 本次毕业设计是基于Windows内核文件过滤技术和RC4加密算法,设计与实现一种终端数据防泄密系统,该系统在不改变用户操作习惯的基础上实现文件的存储安全。本系统以Microsoft Office Word为例,实现对word文档的防泄密保护。本系统的主要功能如下: (1)所有的Word文档都是以密文的形式存放在硬盘中; (2)打开word文档时系统自动为其解密,保存word文档时自动对其进行加密, 加解密过程对用户是透明的,无需用户干预; (3)只有在安装本系统的终端上才能正常打开文档,移动存储设备或通过即 时通讯软件传递文档到其它设备上,该文档将不能正常打开。 3.2 系统设计 终端数据防泄密系统利用Windows内核文件过滤技术,在微软提供的sfilter基础上添加了数据加密的功能实现。 本系统主要考虑四种对文件处理情况: 1)当一个普通进程打开一个普通的文档时,不需要对请求做任何处理,文件可以正常打开,看到的是明文。 2)当一个普通进程打开一个机密文档时,不过滤请求,文档不能正常打开,看到的是密文。 3)当一个机密进程打开一个机密文档时,过滤文件请求,对于读请求对文件进行解密,对于写请求对文件进行加密,文档可以正常打开,看到的是明文。 4)当机密进程打开普通文档时,文件可以正常打开,看到的是明文。 系统整体结构如图3.1所示: 第13页 图3.1 系统设计图 3.3 系统实现 3.3.1 进程识别 操作系统经过加密保护后,所有进程被分为两类,一类是机密进程,另一类是普 [12]通进程。所谓机密进程是指用户在机密的操作系统中创建工作文档的进程。这些文档在一定的范围内是机密的,不允许外泄。 区分机密进程和非机密进程最常用的方法是根据进程的名字来判断。在Windows内部对每个进程维护了一个EPROCESS结构,在EPROCESS结构保存有进程的名字。但微软并没有对外公开这个结构,而且在不同版本的Windows系统中这个结构还不尽相同。针对此问题,本系统采用如下解决办法。 每一个驱动程序都有一个入口函数DriverEntry,DriverEntry只能在“System”进程中被执行,System进程在开机时就已经启动。可以确定,在驱动入口函数中当前进程名为”System”。我们虽然不知道EPROCESS结构的具体内容,但可以在EPROCESS中搜索”System”字符串,若搜到则记下偏移位置。以后从这个位置取就可以了。 第14页 PEPROCESS CurrentProcess = PsGetCurrentProcess();//获取当前进程 for(i = 0;i < 3*4*1024;i++) { if(!strncmp(“System”,(PCHAR)CurrentProcess+I,strlen(“System”))) { offset = i; break; } } 3.3.2 文件加密标识 当安全进程打开一个文档时,如何识别该文档是已经加密的文档还是未加密的文档呢,显然必须对已加密的文档设置一个加密标识,以区别加密文档和普通文档。在对文档进行操作时,先读取文档的加密标识,如果加密标识存在,就要对文档进行相应的加密或解密处理,如果加密标识不存在,则不需要对文档进行加解密操作。 一种设置加密标识的方法是每当系统完成对一个文件加密后,便在该文件所在的路径下创建一个与该文件具有相同名字的带特定扩展名的文件,称为加密标识文件。以后操作系统对文件进行操作时,首先在文件所在的路径下搜索该文件的加密标识文件。如果搜索到了,表明该文件是密文文件,需要对文件进行相应的处理,如果没有搜索到,则是明文文件,不需要做任何处理。该方法的缺点是要对加密文件和加密标识文件做同步处理,如生成一个密文文件,对密文文件进行移动、删除操作,就要创建一个加密标识文件,对加密标识文件也要做移动、删除操作。一旦同步操作出现问题,就会造成明文、密文识别错误,技术上实现比较难。 另一种设置文件加密标识的方法是在计算机硬盘上划出一片区域,在该区域中创建的文件均为机密文件,需要做加密处理,不在该区域创建的文件不做任何处理。例如我们指定计算机D盘为安全区域,则存储在D盘下的文件全部为密文文件,在D盘以外的文件全部为明文文件。当操作系统对文件进行操作时,先判断文件是否在指定的安全区域内,如果是则对文件进行相应的处理。这种方法实现简单,但无法满足对更高水平的密文文件系统管理要求。 还有一种方法是将加密标识保存到加密文件的内部,通常在加密文件内部 第15页 有三个地方可以添加加密标识:文件头(我们在应用程序最先看到文件内容的地方)、文件尾、二进制文件头部(复合文档有一个文件头用来记录文件的信息)。放在文件头部比较稳定,因为加密标识的位置是固定的,但是对文件进行操作时,对给文件添加一个位置偏移量,同时向应用程序隐藏这个位置偏移,技术实现比较难;放在文件尾部存在很大的风险,因为文件的大小是不固定的,每次文件的大小改变时,文件标识的位置也需要同时改变,很容易造成文件标识的丢失,例如当文件标识正在改变位置时,突然发生计算机事故(如断电),该文件的加密标识很有可能会丢失,因此系统的稳定性和安全性都不高。 本系统采用将文档加密标示存储在二进制文档的头部,利用文档头的保留位来保存加密标示,这样做既不增加文档的大小,又不影响文档的操作,稳定可靠。在2.6节介绍了word复合文档的二进制存储结构,发现word文档头部偏移量为34的十个字节作为保留位,Word没有使用,因而可以将偏移量为34和35的两个字节作为文档加密标示的存储位置。 3.3.4 文件打开处理 开始 否是否是文件打开请求 是 否是否为机密进程 是 否 是否是空文件 是 添加文件加密标识不过滤请求 请求下发 图 3.2 IRP打开请求处理流程 当防泄密系统的过滤驱动检测到机密进程正在试图打开一个文件时(无论是新建文件还是旧文件),需要对文件的大小进行判断。若文件大小为零,即 第16页 这个文件是空文件,则表明这是一个新建的文件,新建的文件必须为加密文件,要为该文件添加加密标识。这也是唯一需要添加文件加密标识的地方。 3.3.5 文件读操作处理 开始 文件读请求 否是否是机密进程 是 下发文件读请求对请求不做任何处理,直接下发 读请求结果返回 数据解密 向上层返回 图 3.3 IRP读请求处理流程 对于读请求的处理比较简单,当系统过滤到机密进程的读文件IRP请求,先放过本次请求,将读IRP请求向下传递。待下层驱动完成该请求并将该请求返回时,对读缓冲区进行RC4解密,将解密后的请求返回给上层驱动。 3.3.6 文件写操作处理 第17页 开始 文件写请求 否是否是机密进程 是 否是否是~WRDxxxx.tmp文件 是 从512字节处加密 写请求下发对请求不做处理 返回写请求完成 图3.4 IRP写请求处理流程 写请求的处理相对来说比较复杂。当我们用Word编辑文档(例如:mydocument.doc)点击保存时,Word进程Winword.exe并不是将数据直接写入到磁盘上的mydocument.doc文件中,而是先新建一个名为“~WRDxxxx.tmp”的临时文件,并将用户要保存的数据写到刚才新建的那个文件中,数据写入完成后,将文件“mydocument.doc”重命名为“~WLRxxxx.tmp”,再将“~WRDxxxx.tmp”重命名为“mydocument.doc”。因而在获得文件写IRP请求时,是要过滤对文件“~WRDxxxx.tmp”的写操作,而不是对“mydocument.doc”的写操作。 在收到对~WRDxxxx.tmp文件的写IRP请求时,首先判断本次写请求是文件缓冲写请求还是分页写请求(写磁盘操作),如果是文件缓冲写请求,对偏移量为0,写长度为512字节的写请求,设置加密标示;如果是分页写请求,首先将本次写请求的缓冲区保存,然后对写请求的缓冲区进行加密。 第18页 4 系统测试 4.1 测试环境 (1) 物理环境:PC机两台,其中PC机A安装有终端数据防泄密系统,PC 及B未安装终端数据防泄密系统。 (2) 软件环境:Windows XP sp3,Microsoft Office 2003。 4.2 系统安装 程序编译后会生成.sys文件,将sys文件安装为服务,这里借助第三方工具Instdrv.exe来实现,安装步骤如下: ? 运行Instdrv.exe,界面如图4.1所示; 图 4.1Instdrv.exe工具 ? 在驱动路径上输入sys文件的路径(支持拖拽获取文件路径); ? 点击“安装”,如图4.2,若显示“驱动服务安装成功”则表示操作成功; 图4.2 安装服务 第19页 ? 点击“启动”,如图4.3,若显示“驱动服务启动成功”则表示操作成功。 图4.3 启动服务 至此,终端数据防泄密系统驱动服务安装完毕。 4.3 系统测试 为了验证终端数据防泄密系统能够有效地防止Microsoft Office Word文档的扩散,分别进行了文件拷贝和文件网络传输这两种文档扩散方式的测试。 (1)测试系统能够防止文档拷贝扩散 ? 在A机器上新建一个word文档,命名为test.doc; ? 打开test.doc,在文档里输入一段文字,保存后关闭; ? 再次打开test.doc文档,文档会正常打开,内容显示正确,如图4.4所示。 图4.4 A机器上可以正常打开文档 ? 用U盘将该test.doc文档拷贝到B机器上再次打开该文档,打开后会发现 第20页 文档显示异常,显示的数据均是加密后的密文。如图4.5所示。 图4.5 B机器上不能正常打开 (2)测试系统防止文档防网络传输扩散 本测试通过QQ的网络文件传输功能进行。 ? A机器上通过QQ将上述test.doc文档发送到B机器上, 图4.6 A机器发送文件 图4.7 B机器接受文件 ? 在B机器上打开test.doc文档,结果同上述情况一样,打开后文档出现异常,显示的全部为加密后的密文。如图4.8所示: 第21页 图4.8 B机器不能正常打开文档 4.4 结果分析 通过上述测试可知:本系统可以实现对word文档透明加解密操作,系统操作简单,无需用户的干预,且加解密速度较快,打开word文档没有明显的延迟,能有效的防止word文档扩散。 第22页 5 总结与展望 本次毕业设计基于windows内核文件过滤技术和现代密码学RC4加密算法,设计实现了针对Word文档防扩散的终端数据防泄密系统,该系统能动态的对word文档进行透明加解密,无需用户的干预,也不影响用户word的正常操作,对个人和企业而言都有一定的实用性。 本次毕业设计使我获益颇多。首先通过这次毕业设计,让我了解了一个新的领域:windows内核。我们用户都是处在用户层,也是操作系统最高层,我们看到的应用程序实现的各种功能(如双击word文档就能看见word文档中的内容),看似很简单,其实在操作系统内部有着一系列复杂的API调用,这个是以前从来没有想到的。其次通过本次毕业设计让我知道了什么是坚持,什么是一步一个脚印。在整个开发过程中,涉及到大量windows操作系统底层操作,而关于windows操作系统的源代码是没有公开的,关于这方面的书籍又很少,其中是中文版的更是寥寥无几。 编写windows内核代码涉及对windows内核的操作,windows内核的权限很大,又缺乏安全检查,调试过程中很容易照成系统蓝屏。在这种艰难的环境下,在老师和同学的鼓励、帮助、支持下,一个难点一个难点的攻克,最后终于终于完成了毕业设计任务。 由于时间和能力的限制,本次毕业设计只能实现对word文档的防扩散保护,现实中还有很多其他文档,如pdf、excel等,这些文档信息都需要防扩散保护。即使能实现对word文档的透明加解密,在使用中还会存在各种问题,离真正意义上的使用还有很长的路要走,本系统还可以从以下几个方面进行改进: (1)系统的兼容性。目前本系统只能在我的电脑windows xp系统上运行,系统没有经过严格的测试,不能保证本系统能在其他xp系统上能正确安装,更不能保证能在其他版本的操作系统上安装,需要进一步的改进。 (2)系统的稳定性。本系统没有经过严格的测试,不能保证在意外情况下(如断电)系统具有自我保护能力及对文档没有产生影响。这方面还有待提高。 (3)系统的适用性。目前本系统只能实现对word文档的防扩散保护,其实还有许多其他文档需要保护。本系统还需要更多的策略来实现对更多信息的防扩散保护。 第23页 致 谢 本次毕业设计,我衷心的感谢我的指导老师侯整风老师。在做毕业设计这段时间里,侯老师给予我许多亲切的关怀和悉心的指导。侯老师工作很忙,但在百忙之中,侯老师每周都会抽一个下午,询问我们的进展情况,为我们解疑答惑,并为下一步工作提出宝贵的意见。侯老师不仅传授我专业的知识,还教育我为人处世之道,他一丝不苟的治学作风,严谨的求实态度,宽以待人的崇高风范,使我终身受益。在此,我向侯老师表示深深的谢意~ 在本次毕业设计过程中,还有许多师兄师姐给我提供了许多无私的帮助,没有你们我的毕业设计不会进展的这么顺利,在此表示深深的感谢~ 最后,感谢所有给我提供帮助的同学、朋友,谢谢你们的支持,谢谢~ 第24页 参考文献 [1] Hennessy S D, Lauer G D, Zunic N, et al. Data-centric security: Intergrating data privacy and data security[J]. IBM Journal of Research and Development, 2009,vo153(2):1一12 [2]Sang Yeob Na*, SeungDae Lee. Design of security mechanism for electronic document repository system [A]. International conference on convergence and h油rid information technology[C], 2008. [3]崔铭常,林喜荣.基于生物特征和移动密钥的电子数据保护方法及装置. 中国专 利:CN101345619, 2009小14. [4] 马兆丰,范科峰,陈铭等.支持时空约束的可信数字版权管理安全许可协议[J] 通信学报,2008,vo129(10):153一164. [5] 刘岸,吴馄,仲海骏等.基于策略机制的分布式文件保护系统PFICS[J],计算机 工程,2004. [6] 耿振民,杨磊.基于可选透明加解密的文件保护方法及系统.中国专 利:CN102215214A,2011一10-14. [7] 保罗?麦卡沃伊,袁拍,奥尔森?肯普.用于数据内容分发的系统和方法〔P]. 中国专利:CN 101765845A,2010-06-30. [8] D.M.Wallner, E.J.Harder and R.C. Agee. Key management for multieast: Issues and architectures. 1999. [9] Walter Oney(Programming the Microsoft Windows driver model(2nd)[M](Washington:Microsoft Press,2003 (Reilly,[10] Raieev Nagar((Windows NT file system internals[M](New York:O 1997( [11] MAAwan,S(H Khiyal(Stackably extensible template layer for file system development under windowsNT family [c](Kamchi:E-Tech 2004,2004,7: 74(82( [12]谭文,杨潇,邵坚磊.《寒江独钓——windows内核安全编程》电子工业出版社. 第25页
本文档为【终端数据防泄密系统毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_196623
暂无简介~
格式:doc
大小:211KB
软件:Word
页数:31
分类:生活休闲
上传时间:2017-11-22
浏览量:18