文档章节

透明加密系统设计及实现-绪论

zengxiangwei
 zengxiangwei
发布于 08/13 23:10
字数 5248
阅读 2255
收藏 37

随着信息时代的到来,计算机成为了人们日常生活的必备之物。大量的桌面计算机和移动终端设备给人们带来了极大的方便,但是也增加的个人的机密信息泄密的可能性。特别是对于机密部门的机密资料和企业公司的核心技术等更容易通过信息技术的通道泄密,信息技术安全面临着前所未有的挑战。通常的网络隔离及网络防火墙很难再满足需求,因为最好的防火墙永远也抵不过社会工程学的釜底抽薪,人事的问题在目前的网络技术下是一个永生的话题。

那么这样才能更好地解决这个问题呢,一切问题的解决思路都要归根到事物的本源。信息是根本,而信息本身的载体更是依托,把握住电子信息的主要信息的载体就是文件保护的关键。文件作为电子信息的主要载体,文件的泄漏就代表了信息的泄漏。解决文件泄密的最为主要的方法是对文件进行加密,但是静态的加密是一种不可控的方法,是一种非实时的,可用性极低的技术。而动态加密是解决这个问题的最根本的方法,动态加密也称透明加密,是在文件使用时加密,是一种使用时加密技术,具有很强的控制能力,文件在脱离了布置透明加密的系统时是无法使用的,具有很强的控制性。

本系列文章将全面介绍设计并开发一个文件透明加密及控制系统需要的关键技术、具体设计及具体实现方法,展示一个透明文件加密系统应该具备的功能,以及这样实现一个较为完整的透明加密系统。

1 背景知识

上世纪中业,随着第一台计算机的诞生,信息科技快速发展,近些年计算机更成为日常生活、工作的主要工具,大量的企业及机构部门已经进入了信息化的办公时代,然而事情都是都是相对的,高新的技术后面隐藏着更多的安全问题。文件作为电子信息的主要载体,是信息传递的最常见的表现形式。随着网络技术的快速发展,文件共享的便捷性逐步增加,范围极大地扩大。同样,技术给人们带来方便的同时,也给人们带来了挑战,对于要进行文件保护时面临的挑战是巨大的,非常困难的。

2011年来,数据泄漏的案例频频发生,从美国的HBGary Federal公司泄漏美商会、美国司法部、美洲银行和WikiLeak的大量异常敏感的“商业机密”,到Epsilon 失窃的2500名企业客户中2%的电子邮件数据库,及苹果员工出卖机密信息,甚至是国内的网络最大泄密事件,超1亿密码被公开。员工跳槽导致关键技术泄漏的事件频频发生,不仅是员工本身法律意识较低或侥幸心理的原因,更反映出目前企业的文件保护意识的欠缺,也体现出现在文件保护措施的欠缺。

一般情况下,文件的泄漏就意味着信息的泄漏,文件的保护毫无疑问是信息保护的关键,也是信息保护的根本。文件保护的最根本的策略就是文件加密,这样加密文件对于没有密钥的非法人员就是加密的,很难得到文件的真实内容,文件得到了有效的保护。

目前对于文件的加密主要有两种技术解决方案,一种是静态加密,是一种相对成熟的加密方案,是对整个文件及文件夹加密,使用时通过加密软件解密后使用,是一种主动加密,不具有可控性。另一种是动态加密,动态加密是一种使用时加密的技术,是在文件使用时加密,文件使用者并不知道使用的文件是加密的,故而又称为透明加密,动态加密对于使用者而言是被动的,无论如何文件都是加密的,是一种被动的加密技术,有很强的控制性,在企业文件保护控制中具有很强的实用性。下表列出了基本的加密技术分类、加密原理及实例。

表1 加密算法的分类

 

透明加密其在企业中受到的极大的重视,近年来成为了许多企业的必备的文件保护设施。透明加密系统的特点是被动加密,可以防止文件内容的非法泄密。同时最重要的是透明加密系统不改变用户的软件的使用习惯,第三方软件不需要任何的改变就能够达到透明加解密的效果。

透明加密从技术的发展来看经过四代的发展阶段。

第一代技术阶段,采用基于应用层的API hook的透明加密技术,该种设计方式的的透明加密系统工作在用户态,钩子技术多在操作系统的应用层接口实现,拦截目标操作系统的系统的操作文件的API,然后将这些API入口定位到自定义的功能模块,完成相应的文件加解密及文件的控制功能,该种方式设计的透明加密系统的开发难度低,此种技术实现位于用户层,由于不同的操作系统的系统调用的接口设置存在差异,采用第一代技术的透明加解密系统的可移植性得不到保障。

第二代技术阶段,采用基于过滤驱动的清cache技术,基于文件过滤驱动的透明文件加密系统工作在操作系统的内核态,作为操作系统内核的扩展模块进行工作,主要通过拦截操作系统的内核模式下的文件I/O请求,然后对相应的I/O请求进行过滤操作,实现文件的透明加解密及控制的功能。采用该技术开发的文件透明加密系统在处理文件的缓冲互斥访问问题时,采用了清除cache的技术防止系统缓冲中明文的泄漏和数据破坏。第二代技术主要的特点是适应度高,稳定性好,平台的兼容性好,但是其采用驱动模块完成系统的主要功能,开发难度大,是第一代技术的数倍。

第三代技术阶段,采用基于文件过滤驱动的智能双缓冲技术,与第二代技术一样采用过滤驱动完成系统的主要功能,用该类技术开发的透明加密系统工作在操作系统的内核态,不同的是该种类型的透明加密系统在处理系统缓冲的互斥访问中引入了新的智能双缓冲技术来解决的,该种方式设计的透明加密系统和第二代技术设计思路相比,系统的性能提高很多,同时系统的稳定性也得到了很好的提高,但是系统设计相对比较复杂。开发难度较大。

第四代技术阶段,采用基于文件过滤驱动及LayerFSD开发框架的技术,第四代技术文件过滤驱动的同时,采用了LayerFSD的开发框架,LayerFSD采用分层的文件系统驱动的技术来完成文件透明加解密。引入LayerFSD技术的主要目的在于解决文件系统过滤驱动之间的兼容性,主要用于透明文件加解密的过滤驱动与其它类型的文件过滤驱动的兼容性问题,如解压缩及病毒扫描过滤驱动的兼容性,采用该种类型的文件透明加密系统与其它的过滤驱动具有很好的兼容性,特别是和病毒安全软件的兼容性得到了很好的保证。

2 国内外研究现状

透明文件加密技术的研究在国内外起步都较晚,国内透明文件加密技术的研究主要起始于21世纪初期,至今约十多年的时间,相比较之下,国外的起步要早几年。透明加密技术在十年内得到了飞速的发展,透明加密系统已经成为了企业安全防护的第三道防线,也是最后一道防线(第一道防线是详尽细致的操作审计,第二道防线是全面严格的操作授权),被称为企业最强的安全防护盾。

国外很少有单独的透明加密提供商,大多是产品中包括了透明加密服务的功能。如RSA 公司的 Data Protection Manager 产品、赛门铁克公司(Symantec)研发的 PGP Encryption Products系列产品、EMC 公司的 SourceOne for FileSystems 系列产品、McAfee 公司的 TotalProtection for Data Loss Prevention (DLP)产品等。这些产品都有一个共同的特点,它们不仅提供透明加密的服务,而是提供一套完整的企业的文件安全保护的解决方案。

相比之下,国内的透明加密服务提供的软件附加服务与国外公司相比之下要少,有的公司仅仅提供单一的企业解决方案。如商业级透明加密内核SEFS,提供了单一的透明加密的功能,采用的是第四代透明加密技术的设计方式,系统的稳定性和性能都比较好。也有公司提供一整套的安全防护体系,包括传统的网关控制、严格的审计、操作授权及最为核心的透明加密。这些公司大多采用第三代的技术进行系统的设计和开发。具有代表性的产品很多,广州溢信科技公司的IP-guard提供了除透明加密之外的大量的其它功能,如移动存储控制,上网行为管理,桌面终端安全等等。还有北京博睿勤信息技术有限公司的透明加密软件除提供透明加密的功能外也提供了打印监控、介质管理及上网审计等附加的功能。

透明加密在企业环境中得到了极大重视,特别是2011以来连续发生巨大信息泄密事件更是给各大企业敲了文件保护的警钟,文件保护越来越受到各大企业的重视,纷纷开始采购并引进透明加密保护系统用于文件的保护。但是由于技术不成熟,出现许多预料不急的事情,如引入透明加密系统后导致操作系统性能降低,由于透明加密系统的不稳定导致操作系统崩溃,从而导致数据丢失的事件经常发生。目前与现有系统完全兼容的透明加密系统在市面仍然缺乏。

总体来看,国内外的透明加密系统采用的设计技术大多是基于第三代技术进行设计的,也有的公司采用的是第四代技术进行研究开发的。也有的公司在透明加密的系统中集合各代技术的特点进行设计及开发,该种方法虽然是系统的功能变得更加完善了,但是其可移植和与其它安全软件的兼容性很难得到保证,不是理想的设计思路。第四代技术是目前最为理想的设计方式,该种设计方案以高效率及稳定性很容易得到用户的认可,而高的可移植降低了系统的更新换代的代价,也提高软件公司的开发软件复用的程度,是目前最为理想的设计方案。

3 主要内容

本系列文章在研究透明加密技术的各代技术的特点的同时,结合对Windows操作系统内核结构及I/O模式的特点来分析文件系统驱动的编程架构。在此基础上对文件系统过滤驱动做出较为合理的选择,根据现有的透明加密技术特点,充分考虑到系统模块驱动的可移植性及与其它软件的兼容性,结合第四代的透明加密技术LayerBSD分层过滤驱动的设计思想,以Minifiler为基本的驱动框架设计一套透明文件加密系统。此外系统研究并实现了一套安全度高,实时性好,可控性优越的身份验证机制,确保对用户登陆身份的保证,这是目前市面上大部分的透明加密系统所缺乏的。为了进一步保证系统的安全性,系统对文件的访问进行严格的控制,包括可执行文件的及移动磁盘,防止非法程序的执行,禁止非法用户随意盗取文件。为了提高系统的灵活性,满足系统的其它各种需求,系统设计实现了内核模块与用户模块通信的完整框架,保证了系统的配置的灵活性。策略配置端完成磁盘访问控制策略、可执行文件控制策略及透明加解密策略配置,进行文件权限批量设置,用户管理及机密文件与非机密文件相互转换等辅助功能。

本系列文章将独立设计并自主实现了一个基于Minifilter微过滤驱动程序框架的一套完整的透明加密系统,系统包括位于的内核模式的文件控制器FileControl.sys,采用动态链接封装技术完成对系统的用户模式通信模块进行封装成FileControl_dll.dll,以及界面美观的用户策略配置端FileControl.exe,用户配置端采用最新的DirectUI技术进行界面的设计开发,界面美观的同时保证了策略配置端的高效率。最为重要的是系统采用了全新的身份验证技术,身份验证时采用了密码及USBKey的双重机制,同时加上了身份的动态认证,随时随刻验证用户身份的可靠性。

本系列文章的主要研究内容概括如下:

(1)分析Windows操作系统的驱动开发的基本模型,熟练掌握Minifilter微过滤驱动的基本框架;

具体内容:分析windows 操作系统的基本结构,理解Windows理解的中断优先级模型,熟悉文件I/O的基本流程及缓存管理的基本原理及Windows驱动模型的基础模型,阅读并分析Microsoft wdk给出的Minifilter的实例,熟悉Minifilter的基本框架,熟练地采用Minifilter进行文件过滤驱动的设计及开发。

(2)完成基于Minifilter的文件加密系统的整体结构的设计及分析

具体内容:采用第四代的透明加密技术的LayerBSD思想,基于minifilter微过滤驱动框架来进行透明加密系统的设计,充分利用Minifilter微过滤驱动高效及易于移植的特点,保证系统的可移植性。系统主要包括三个部分,基于内核层的文件控制器、位于应用层的策略配置端及内核模式与用户结合的通信接口部分,系统应用层及内核层功能划分合理,层级结构清晰,同时给出了系统的系统结构图及工作情况的概括图。

(3)完成对文件的访问权限的控制的设计和实现

具体内容:应用层对非指定卷的读写需要用户进行授权,防止通过可移动磁盘随意拷贝文件。指定文件只能由相关的用户访问,可执行文件的读写必须在可执行文件集合中,防止非法程序在计算机中运行,保证系统的安全性。

(4)完成对指定文件为指定进程进行透明加解密的的设计与实现

具体内容:系统自动区分普通文件及加密文件,机密进程读取机密文件可以获取明文,非机密进程读写机密文件无法获取明文。加密算法的选择多样化,有至少三种加密算法供选择。对透明加密多种设计思路进行了比较,设计并给出了自己的文件透明加密模型并进行实现。

(5)设计并实现内核模块与策略配置端的通信设计和实现

具体内容:将策略配置端与内核文件控制器紧密联系在一起,严格控制客户端的用户身份登陆,通过通信模块能在二者之间完成必要的数据交互,通信模块是透明加解密配置的关键桥梁,也是完成用户身份验证的必备模块。为了方便策略配置端的使用和编程,将用户模式下的通信子模块封装为动态链接库,降低系统的代码外部库文件的依赖。

(6)完成应用层对内核层部分动态配置的实现

具体内容:采用USBKey及密码验证用户身份,同时加上动态的身份验证机制,随时监测用户的身份。身份验证由密码验证及USBKey验证的同时跟USBKey、策略配置端及文件控制器紧密集合在一起,任何模块出现问题,验证都将会失败,从而保证系统完整性,提高了身份验证的有效性。策略配置端可以对文件访问权限(包括可移动磁盘及可执行文件)及加解密策略进行配置,能够批量设置文件权限,机密文件与普通文件可以相互转换。

4 系列文章的整体结构

本系列文章总共分为五章,各章的只要内容如下:

第一章,介绍了前信息技术产业面临的巨大的信息安全的威胁,分析了国内外透明解密技术的现状及发展过程,然后简单第介绍了本论文研究的内容及论文的结构安排。

第二章,主要分析了windows的基本结构、驱动模型及微过滤驱动模型的基本框架和结构,介绍windows内核编程的基本方法及调试技术。

第三章,将全面地研究透明加密系统的结构的设计、关键对象的标识、内核模式及用户模式的通信方式、透明加密的关键技术以及高可靠的身份验证机制。给出透明加密系统的设计模型,为透明加密系统的整体的设计和实现奠定基础。

第四章,将全面的概括了透明加密系统的整体的功能结构,详细的阐述整个透明加密系统设计及实现过程。

第五章,概述从各个方面对系统进行测试,包括系统的功能测试及性能测试以及系统的兼容性测试等。

最终, 本系列文章将给出项目实践过程中的涉及资料及源码,以便探讨学习。

© 著作权归作者所有

共有 人打赏支持
zengxiangwei
粉丝 14
博文 8
码字总数 27459
作品 0
郑州
程序员
加载中

评论(5)

z201
z201
mark
须臾时光
须臾时光
这只是摘要?干货在后面?
山哥
山哥
感觉像是在写研究生毕业论文,哈哈
java9
java9
mark
晴风晓月
晴风晓月
好文章,正想了解一下相关内容,期待看到接下来的内容
基于Java企业门户网站设计(一)

开始 第一章 绪论 1.1 课题背景及意义 1.2 开发环境与技术简介 1.2.1 B/S架构 1.2.2 jsp 1.2.3 SQL server 2000 第二章 需求分析 2.1系统功能需求 2.2系统功能建模 第三章 总体设计 3. 1 系统...

请叫我赵小宝
2014/11/23
0
3
区块链IM即时通讯系统开发技术

从币圈玩家的角度来看数字资产交易所的即时通讯问题,一直都存在着巨大的鸿沟。沟通难的问题一直没有得到解决,之前对于客户关系管理或者用户与用户之间都只是建立以论坛或者交易所聊天框的形...

数字资产先生
06/06
0
0
Jt —— 面向 Java 模式的框架

Jt 是一种用于快速实现 Java 应用程序的设计模式框架。Jt 在许多大的任务关键型系统中有应用。该框架实现以下目标: 框架架构基于一个消息传送设计模式:框架组件能够交互信息并通过发送、接...

红薯
2010/10/25
607
1
加密文件系统

加密文件系统优势 1, 加密文件转移到别的物理介质上时,没有额外的加密/解密开销。 2, 支持文件粒度的加密,也就是说,用户可以选择对哪些文件或目录加密。而且,应用程序不用关心文件是否...

被使用的文件
2015/12/12
111
0
安全篇:安全方案设计4个原则

在未发生安全事件的时候,安全方案推进落地往往困难重重;而当发生安全事件时,安全方案的重要性被抬的很高,希望能够快速上线止损。这种尴尬的局面让很多安全工程师或安全接口人很为难,很多...

聪安
2017/11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

67:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量

1、shell脚本介绍: shell是一种脚本语言和传统的开发语言相比,会比较简单: shell有自己语法,可以支持逻辑判断、循环等语法: 可以自定义函数,目的是减少重复的代码: shell是系统命令的集合...

芬野de博客
29分钟前
1
0
json schema

json schema是用来验证和描述json对象结构的。 在线验证:https://www.jsonschemavalidator.net/ json schema 编辑器,推荐VSCode,写上"$schema": "https://raw.githubusercontent.com/jso......

谷永权
33分钟前
1
0
部署生产级的 Kubernetes 集群,使用kubespray

部署生产级的 Kubernetes 集群,使用kubespray 项目源码,https://github.com/openthings/kubespray 国内部署,https://github.com/zhangguanzhang/Kubernetes-ansible 欢迎加入 kubernetes......

openthings
40分钟前
0
0
73.分发系统介绍 expect脚本远程登录 执行命令 传递参数

20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍: 场景:业务越来越大。用的比如app,后端(也就是服务器)所使用...

王鑫linux
46分钟前
0
0
SpringBoot应用不能访问项目静态页面html问题处理

问题描述:SpringBoot搭建web应用在eclipse中启动能够正常访问页面,打包成jar之后不能访问到页面,没有任何出错提示。 环境:使用的是前后端分离架构,没有使用模板,前端html和静态文件放到...

奋斗小蜗牛
49分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部