标题：防泄密软件
涉密的概念
所谓涉密，指接触了机密的数据。机密的数据是由数据的拥有者事先定义的，如工程图纸、程序源代码、客户资料、机密文档等。
在防泄密技术中，定义成机密的数据是应该以加密形式存在的。这里不讨论完全基于访问控制形式保护数据的方案，基于访问控制的保护与真正的防泄密是完全不同的两个领域，防泄密必须解决安全环境失效的情况下的数据不泄密，访问控制是不考虑安全环境失效的情况的。 
在防泄密系统中，访问控制技术同样被大量使用，比如对涉密的对象的涉密访问控制、涉密计算机的同机虚拟隔离技术等。但防泄密技术的本质是数据加密，访问控制只是辅助的手段。优秀的防泄密系统的安全架构不应该建立在访问控制的基础上。防泄密系统必须确保安全环境失效时的机密数据处于加密状态。
防泄密软件中的常用技术
防泄密软件主要防范内部工作人员，而内部工作人员又能够或正在使用着机密数据。因此防泄密软件的目标就是对于内部机密数据做到“只能用，不能带走”。在这种设计目的下，许多先进的技术被引入到防泄密系统中。
实时加解密技术首先是实时加解密技术。实时加解密技术可以保障数据在加密后可以直接使用，与不加密的数据使用体验和效果完全相同。这个技术才可以使一切机密数据在加密状态下工作成为可能。因此，实时加解密技术是优秀防泄密软件的基础技术。
主动加密技术目前比较先进防泄密软件都采用了主动加密技术。主动加密是基于实时加解密技术的一种加密信息自我保护手段。这里的“主动”，是针对防泄密系统而言的，不是指执行加密动作的人。因此，“主动加密”是一种技术，不是指一个动作，类似于反病毒引擎的“主动防御”技术。
实时加解密引擎在工作中提供实时加解密服务的同时监控全部密文数据的流向，当密文转化为其它数据形式，与另外的非涉密数据结合生成新的数据、或者其它非涉密数据引用了部分密文时能够自动加密这些与之发生关系的数据。
涉密访问控制涉密访问控制是指在对象涉密后为防止涉密所做的一切处理。在防泄密系统中，涉密访问控制主要指对涉密应用程序的行为以及涉密数据的流向控制。主动加密实际上也是一种涉密访问控制。由于主动加密技术在实时加解密技术的支持下呈现完全透明的用户体验，不会给用户“操作被控制”的感觉，因此在基于实时加解密技术的保密系统中用户基本上很少感觉到涉密访问控制的存在。
同机虚拟隔离技术同机虚拟隔离技术可以在一台计算机中对不同应用进行虚拟隔离。同机隔离技术对于Internet应用具有十分重要的意义和使用价值。在这种技术出现之前，为了防止机密信息的外泄，涉密计算机都采用物理隔离的方式与外网（Internet）隔离，物理隔离等同于因噎废食，闭关锁国。而同机隔离技术可以使Internet变成单向使用，在从Internet获取信息的同时，内部机密数据却不能向外泄漏。
电子邮件加密技术由于互联网技术的大量使用，电子邮件和IM文件传输成为主要的通讯方式。针对互联网应用数据包的加密技术是十分实用的技术。
移动存储设备的使用控制移动存储设备一般是转移数据最直接的方式。对于涉密系统一般会对移动存储设备的使用进行严格管理，防泄密软件中一般可以控制移动存储设备的权限。好的控制技术可以做到控制移动存储设备的数据流向。比如可以控制U盘为单向使用，其数据可以进入涉密系统，而涉密系统的数据不能流向U盘。
通信端口与设备控制对于网络、串口、并口、调制解调器、蓝牙、1394等通信端口和设备，在涉密系统中都有使用控制方式。
多通道加密技术对于企业中需要进行部门机密隔离的应用，应该使用多通道加密技术。不同通道使用不同的证书（密钥）达到机密数据互相隔离的目的。部门机密数据的隔离不应该以单纯依赖于访问控制的方式（如以访问权限控制）。
反截屏技术截屏也成为一种窃密手段，因此防泄密软件中一般有反截屏技术。
主动加密的原理
接触传染性涉密的界定一般采取“过保护”方式。也就是说，一个对象在与机密数据接触后，如果没有办法证明它没有涉密，总是认为它是涉密的。通俗一点讲，就是“宁可枉杀一千，不可放过一个”。举一个简单的例子来理解涉密的概念：非典时期，凡与非典病人接触过的人都先隔离起来观察，如果把非典病人看作机密数据，那么与非典病人接触过的人就是涉密。因为当时没有办法证明这些接触过的人有没有被感染非典病毒。当然，隔离观察一段时间后没有出现感染非典症状的人证明其没有感染非典，可以解除隔离。与机密数据接触的数据如果后来与涉密前一样没有发生改变，也可以认为其没有从机密数据中获取机密，也可以解除涉密状态。至于涉密后数据发生改变的，如果无法证明其改变的部分与机密数据无关，这个数据必须强制加密。因此，接触传染性是主动加密的典型特征。
在计算机操作中，接触传染性有多种表现形式，我们举例说明这个有趣有现象：
现有一个普通文档A（不加密）和一个机密文档B（已加密）
1）用Word同时打开了文档A和文档B，从文档B中复制部分内容到文档A，然后保存文档A，这时文档A被强制加密。
这个现象很好理解，因为文档B是机密数据，其部分机密数据转移到文档A了，所以文档A保存后被加密。
2）用Word同时打开了文档A和文档B，修改并保存文档A，这时文档A被强制加密。
这个现象比较费解，因为文档A看上去没有引用文档B的任何数据。因为文档A和文档B被同一个Word打开着，计算机没有办法证明文档A的修改部分与文档B无关（我们不能以人工方式去判定），所以修改后文档A被加密了。
3）同时打开文档A和文档B，从文档A中复制数据到文档B，保存文档B并退出Word，文档A和文档B的加密状态不变。
这个现象也好理解，文档A没有变化，当然不会被加密，文档B原来是加密的，所以保存后仍然是加密的，至于引用了非加密的文档A的内容不会改变文档B的机密属性。
4）用Word打开文档B，新建一个文本文件C，用Windows记事本打开，用Windows剪贴板从文档B中复制一段文字粘贴到文本C中并保存。
结果：文件C被加密。
5）用Excel打开一个非加密的电子表格文件D，用Word打开文档B，选中文档B中的一段文字，用鼠标拖动到EXCEL中，关闭Word。再保存EXCEL文件为电子表格D。
结果：电子表格D被加密。
新生继承性新生继承性也是主动加密的典型特征。任何对象在涉密后其新建的文件都会被加密，这一点应该很好理解。类似于生物学上的遗传特性。主动加密的新生继承性与基于加密文件夹的加密属性继承有所不同，加密文件夹的加密属性继承是静态位置的加密属性继承，不能阻止保存数据的人主动涉密。而主动加密的新生继承性是强制性的，只要应用程序已经涉密，这个应用程序的输出数据总是密文形式，所以无论把数据保存到什么地方，数据总是加密形式。
主动加密在防泄密解决方案中的重要意义
防泄密不仅仅是防止外来人员的窃取，更多的是防止内部人员的主动泄密。而防泄密系统的难点就在于即要保证内部人员能够正常使用机密数据，又要防止这些机密数据传出本单位。在主动加密技术出现之前，机密信息“监守自盗”没有技术上的解决办法，只能依赖于行政手段和规章制度来保障。主动加密技术加上实时加解密技术，可以保障单位内部正常使用机密数据的同时防止任何形式的对外泄密，不管这种泄密是内部人员有意为之或无意所为。由于主动加密的接触传染性和新生继承性，机密数据无论被带到什么地方，都是密文形态的，而密文一旦离开其宿主单位，因为缺少了解密所需的密钥，无法还原其记录的内容，从数学原理上保证其原始信息是安全的。因此，主动加密技术是防泄密技术的核心技术。防泄密系统的成败往往取决于其主动加密技术。
主动加密技术的实现
主动加密技术从原理上来说只要能够准确监控机密数据的流向就可以实现，从有防泄密系统开始就出现了不同的技术流派。主动加密技术一般都是基于操作系统后台实现的，所以从前台的用户一般操作体验上很难感觉到技术层面上的差别，能够感觉到的最多只是对操作系统性能的影响。
主动加密从技术实现上可以分成三类：
1）基于应用程序插件的主动加密
这类技术是最累的主动加密技术，其原理是为每一个应用程序写一个插件程序（也称“外挂”），应用程序在加载时会自动加载插件程序，插件程序加载后会监视所有的数据输出，必要时加密数据，如果一个操作不能主动加密，就强制取消对应的操作。
这种技术采用的是一对一的直观思维，因此其支持的目标是以应用程序为单位的，而且一般和应用程序的版本还有关系，因为同一个应用程序未必能够支持不同版本的插件。也不是所有的应用程序都支持插件技术。事实上，能够支持插件的应用程序仅限于Office、CAD等大型通用化应用软件，专用软件和一般的小型软件都不支持外挂插件。因此，这种技术应用环境受到诸多限制，而且由于从原理上不能保证受支持应用软件之外的软件的适用性，因此这种技术基本面临淘汰。
2）基于API拦截的主动加密
这种技术比起上面的技术来在通用性上有所进步，大部分“标准”的应用程序能够得到支持，实现上也相当简单，不需要考虑不同的应用程序。其缺点是API拦截是基于应用层的，不是所有的应用程序都使用标准的API操作数据，一旦应用程序的数据操作使用的驱动方式，或者直接使用VMM的内存映射文件，这种方式就会出现不能正常解密或泄密漏洞。因此，这种技术也只能适用于已经测试通过的环境。另外，API拦截不是标准的系统开发技术，使用API拦截后系统性能下降明显，与反病毒软件和一些工具软件往往也存在兼容性问题，这些都是API拦截技术的诟病。
3）基于文件系统驱动技术的主动加密
这种技术是理论上最完美的技术。驱动技术是标准的系统开发技术，因此不存在兼容性问题（本身有程序BUG的下三滥驱动除外）。所有应用程序（包括操作系统本身）都必须通过文件系统驱动获取磁盘数据，因此在驱动中对数据进行控制几乎无一漏网。另外，由于驱动运行于操作系统核心层，其效率、性能和抗攻击性不是应用层的API拦截所能达到的。
防泄密系统中的涉密访问控制
涉密访问控制是指在对象涉密后为防止涉密所做的一切处理。在防泄密系统中，涉密访问控制主要指对涉密应用程序的行为以及涉密数据的流向控制。主动加密实际上也是一种涉密访问控制。由于主动加密技术在实时加解密技术的支持下呈现完全透明的用户体验，不会给用户“操作被控制”的感觉，因此在基于实时加解密技术的保密系统中用户基本上很少感觉到涉密访问控制的存在。
除主动加密外，涉密访问控制在数据流向主动加密不能覆盖的范围时必须对数据进行控制，通过允许或阻塞涉密数据的流通，在用户操作时则表现为对某个操作行为的允许和禁止。
涉密行为鉴别同样是涉密访问控制的基础。涉密访问控制只控制涉密的对象。
  secWall企业版中的涉密访问控制逻辑这里没有再画出无涉密权限的操作分支。对于没有涉密权限者，其应用程序不能涉密。如果在涉密后加密证书丢失（如自行销毁加密证书、证书过期或被管理员剥夺），涉密的应用程序将不能输出和转移任何数据。
实际上涉密访问控制技术在防泄密系统中几乎是无处不在的，对保密对象的分级访问权限控制（如打印控制、读写控制、甚至防截屏）也由涉密访问控制实现。涉密访问控制技术一般贯穿整个防泄密系统，而不象其他技术可以由某个单独的模块来实现。
涉密访问控制技术从安全性上必须明确，任何基于访问控制技术的系统都有一个前提条件，就是依赖于防泄密系统构建的安全环境。如果安全环境失效，访问控制技术也就不可靠了。在安全环境失效的时候唯一有效的保密手段就是加密。只有加密过的数据在安全环境失效时仍然可以保证机密数据不会泄密。所以不与数据加密结合在一起的访问控制技术在保密系统中几乎没有意义。
衡量涉密访问控制技术优劣的一个重要指标就是对用户操作的阻塞量。主动加密技术可以在保证安全的前提下对用户操作没有任何影响，所以涉密访问控制在涉密数据流出时应该优先采用主动加密技术进行处理，只有在主动加密技术不可及的地方才启用阻塞处理。在防泄密系统中，实时加解密技术是支持一切加密文件透明操作的基础，涉密访问控制技术则是调度员，涉密行为鉴别为涉密访问控制提供行动依据。因此，实时加解密技术、涉密行为鉴别技术、主动加密技术和涉密访问控制技术构成了防泄密系统的四大关键技术，这四种技术相互依存，任何一种技术不过关都会拖累整个防泄密系统的技术和性能指标。
防泄密软件的优劣鉴别
目前市场上防泄密软件（防泄密系统）鱼龙混杂、良莠不齐，作为单位用户怎样衡量防泄密系统的优劣呢？其实只要从几个方面考察就可以确定防泄密软件的质量：
1）稳定性
稳定性是压倒一切的指标。如果没有稳定性，这种防泄密系统就是失败的产品。防泄密系统为了达到访问控制目的，实现得不好就会影响操作系统的稳定，质量差的防泄密系统造成程序崩溃、死机甚至蓝屏屡见不鲜。
2）透明度
防泄密系统的透明度是指安装部署防泄密系统前后对于用户正常工作操作计算机的差别。好的防泄密系统通过实时加解密技术不改变任何使用方式和操作习惯。
3）兼容性
兼容性是指防泄密系统对应用程序的支持方式。有些防泄密系统是应用级的，只支持已知的应用程序。这种防泄密系统的兼容性相对比较差，因为应用程序的补丁升级和后续版本都可能导致防泄密系统的失效。好的防泄密系统应该是与应用程序无关的，能够提供对未来或未知应用的支持。这种系统不但无后顾之忧，而且从经济性上为客户保值和增值，客户在应用系统升级可变更应用程序后不需要重新变更和部署防泄密系统。
4）性能
是电器就必然消耗功率。防泄密系统要加密数据，加密数据就需要消耗计算机资源。因此不要指望防泄密系统一点不影响计算机的效率。测试性能影响的方式很简单，可使用下面的方式：
如果你是CAD用户，可以在安装防泄密系统前使用三维的CAD软件（如Inventor、SolidWorks等）打开一个包含多个零部件的总装图（图形越复杂越好），记录下使用的时间，在部署防泄密软件后加密整个总装图（包括所有零部件），然后再打开这个总装图，记录所使用的时间。比较一下前后两次使用的时间是否在自己所能承受的范围。
如果你的行业是软件开发，会对源代码防泄密，可以找一个比较大的源代码工程作为测试对象，在部署前记录下全部编译一次的时间，在部署后加密这个工程的全部源代码，再记录一下编译时间。比较两次编译的时间看是否在自己可以接受的范围。
如果你是地理数据处理、平面设计和视频非编用户，那你更应该关注防泄密系统的性能，因为这类行业的软件本身就十分消耗计算机资源。测试性能的方式也是测试部署前后对同一文件的操作时间。不过真正的实时加解密系统并不增加数据输入输出量，因此对这类系统的性能影响很小。
总的来说，源代码编译器最能检验防泄密系统的性能。以Microsoft SDK的命令行编译环境为例，好的防泄密软件应该做到性能影响不超过30%,而实时防病毒软件对其性能影响不同厂商的产品一般在35%到100%之间。三维CAD软件也比较能够体现出性能影响。而一般的应用软件性能影响应该小于3%，几乎感觉不到。
防泄密软件的加密算法
防泄密软件常用的加密算法有三种，IDEA 算法、RSA算法、AES算法，加密强度来讲，AES最好。
IDEA算法IDEA算法属于对称加密算法， 对称加密算法中，数据加密和解密采用的都是同一个密钥，因而其安全性依赖于所持有密钥的安全性。
对称加密算法的主要优点是加密和解密速度快，加密强度高，且算法公开.
缺点是实现密钥的秘密分发困难，在大量用户的情况下密钥管理复杂，而且无法完成身份认证等功能，不便于应用在网络开放的环境中。
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
目前最著名的对称加密算法有数据加密标准DES,但传统的DES由于只有56位的密钥，因此已经不适应当今分布式开放网络对数据加密安全性的要求。欧洲数据加密标准IDEA等，目前加密强度最高的对称加密算法是高级加密标准AES，AES提供128位密钥，128位AES的加密强度是56位DES加密强度的1021倍还多。。
对称加密算法过程是将数据发
IDEA是International Data Encryption Algorithm的缩写,是1990年由瑞士联邦技术学院来学嘉(X.J.Lai)和Massey提出的建议标准算法,称作PES(Proposed Encryption Standard).Lai和Massey在1992年进行了改进,强化了抗差分分析的能力,改称为IDEA.它也是对64bit大小的数据块加密的分组加密算法.密钥长度为128位.它基于“相异代数群上的混合运算”设计思想,算法用硬件和软件实现都很容易,它比DES在实现上快得多 。
RSA算法RSA算法是非对称加密算法，非对称加密算法的保密性比较好，它消除了最终用户交换密钥的需要，但加密和解密花费时间长、速度慢，它不适合于对文件加密而只适用于对少量数据进行加密。
对称加密算法、非对称加密算法和不可逆加密算法可以分别应用于数据加密、身份认证和数据安全传输。
RSA算法是建立在大数分解和素数检测的理论基础上。
RAS密钥的产生过程：
独立地选取两个互异的大素数p和q（保密）。
计算n=p×q（公开），则ф(n)=（p－1）*（q－1）(保密)
随机选取整数e，使得1<e<ф(n)并且gcd(ф(n),e)=1（公开）
计算d，d=e-1mod(ф(n))保密。
RAS私有密钥由{d，n}，公开密钥由{e，n}组成
RAS的加密/解密过程：
首先把要求加密的明文信息M数字化，分块；
然后，加密过程：C=Me(mod n)
解密过程：M=Cd(mod n)
非对称密钥加密体制的优点与缺点：
解决了密钥管理问题，通过特有的密钥发放体制，使得当用户数大幅度增加时，密钥也不会向外扩散；由于密钥已事先分配，不需要在通信过程中传输密钥，安全性大大提高；具有很高的加密强度。
与对称加密体制相比，非对称加密体制的加密、解密的速度较慢。
AES加密算法AES加密算法属于不可逆加密算法，　不可逆加密算法的特征是加密过程中不需要使用密钥，输入明文后由系统直接经过加密算法处理成密文，这种加密后的数据是无法被解密的，只有重新输入明文，并再次经过同样不可逆的加密算法处理，得到相同的加密密文并被系统重新识别后，才能真正解密。
1997年4月15日,美国国家标准和技术研究所NIST发起了征集AES算法的活动,并成立了专门的AES工作组,目的是为了确定一个非保密的,公开披露的,全球免费使用的分组密码算,法用于保护下一世纪政府的敏感信息,并希望成为秘密和公开部门的数据加密标准.1997年9月12日,在联邦登记处公布了征集AES候选算法的通告.AES的基本要求是比三重DES快而且至少和三重DES一样安全,分组长度128比特,密钥长度为128/192/256比特.1998年8月20日,NIST召开了第一次候选大会,并公布了15个候选算法.1999年3月22日举行了第二次AES候选会议,从中选出5个.AES将成为新的公开的联邦信息处理标准(FIPS--Federal Information Processing Standard),用于美国政府组织保护敏感信息的一种特殊的加密算法.美国国家标准技术研究所(NIST)预测AES会被广泛地应用于组织,学院及个人.入选AES的五种算法是MARS,RC6,Serpent,Twofish,Rijndael.2000年10月2日,美国商务部部长Norman Y. Mineta宣布,经过三年来世界著名密码专家之间的竞争,Rijndael数据加密算法最终获胜.
为此而在全球范围内角逐了数年的激烈竞争宣告结束.这一新加密标准的问世将取代DES数据加密标准,成为21世纪保护国家敏感信息的高级算法.
数据防泄密系统
数据防泄密系统能够实现机密信息只能在办公区域内使用，不能够带走，可以实现如下功能：
1、用户鉴权：系统集成了统一的用户鉴权管理，用户统一使用USB-KEY进行身份认证，客户端支持双因子认证产品是基于用户的管理体系，在人员、角色、权限三者之间建立的对应关系。在实际应用中完全匹配企业中的人员、职位及权限。　
2、泄密控制：系统对打开加密文档的应用程序进行如下控制：打印、内存窃取、拖拽和剪贴板等防止用户主动或被动地泄漏机密数据。　
3、审批管理：系统支持文档的共享、离线和外发操作，管理员可以按照实际工作需要，配置是否对这些操作强制执行审批流程。　
4、精细管控：系统对文档的操作权限进行细分，包括文档的读取、共享、存储、分发、打印等管控同时对文档的时效性做到了有效管控。为用户提供了人性、科学、安全、有效的管理机制。　
5、全面审计：系统对加密文档的常规操作，进行详细且全面的审计。控制台提供了基于WEB的管理方式。审计管理员可以方便地通过浏览器进行全系统的审计管理。　
6、离线支持：离线功能是应对客户端在没有与服务器联网的状态下实现的有限管控。具体体现的情况如：公司人员出差、回家加班、服务器网络中断等情况。　
7、文档外发：系统中，非授权人员不能阅读加密文档的内容。本功能制作的外发文档，可以在未安装客户端的机器上正常访问。外发的文档，和内部使用一样，受到加密保护和泄密控制，不会造成文档内容泄露。　
8、文档加密：系统对指定应用程序所生成的文档进行强制加密保护。用户文档将被强制加密，并且只能在连接上服务器时访问自己创建的文档。该过程完全透明，不影响现有应用和用户习惯。通过共享离线和外发管理可以实行更多的访问控制。