钩子透明加密技术和过滤驱动加密技术

超时代视频加密软件系列产品均采用过滤驱动透明加密技术对大文件的视频流进行加密,完美地解决了加密强度与效率之间的问题,成为视频加密产品的行业标杆。

钩子透明加密技术

早期的透明加密的技术手段大多是通过API钩子技术进行,其工作方式为静态加密和重定向,基本思想为钩子程序拦截到受保护文件的打开操作,先将已加密的文件拷贝到一个临时目录中,然后告诉驱动程序把这个文件隐藏起来,然后解密这个文件,并将这个临时文件返回给打开文件的进程,这样打开的就是磁盘上的一个明文文件,用户程序可以进行正常的处理,这里文件是进行了整体的拷贝并解密;在文件关闭时,钩子拦截到以后,将那个明文的临时文件加密,然后再拷贝回来覆盖掉原文件。
简单的讲,就是打开文件时,将加密文件的副本拷贝到隐蔽位置,然后把这个文件解密、打开,保存时再把临时文件加密后覆盖原文件。这种加密实质上是通过临时文件来实现的,为了确保明文和密文之间的一致性,必须在每次用户存盘或者系统自动存盘的时候对整个文件进行一次整体加密和并复制到用户文件原来存储的位置,因此效率较低,且由于在计算机上保存了完整的明文文件,只要跟踪到临时文件所在位置即可能泄密,此外,文件在打开和存储过程中需要多次复制,效率损失很大,HookAPI的方式对于一些程序不能够完美的支持,兼容性有待考证。
由于文件映射的存在,在应用层进行动态加密比较困难,虽然原理上有一定的可行性,但是其加密效率、兼容性、可移植性、稳定性较之于内核层的过滤驱动加密要差很多,好处在于开发难度较小,网络操作能力强。

过滤驱动透明加密技术

1 驱动技术简介

过滤驱动加密技术是基于windows的文件系统过滤驱动(IFN)技术,工作在Windows的内核层。它是目前炙手可热的一门技术,其特点是技术门槛较高,需要深入理解windows系统内核,开发过程中稍有不慎就会破坏系统内核,因此核心技术仅被少数几家实力雄厚的公司所掌握。
文件过滤驱动是把文件作为一种设备来处理的一种虚拟驱动,WindowsNF系统内核采用堆栈式可扩展驱动模型J,原则上可以在任何一个层次上加载自己的过滤驱动,但是加载的层次不同,开发的难度和应用价值也不同,现在的技术主要还是加载在文件系统驱动的上层,这样就可以充分利用并扩充文件系统的现有功能],该技术在病毒实时监控与防护、数据备份与还原以及文件访问控制等领域都有着非常广泛的应用。
过滤驱动中几种非常重要的概念包括驱动对象、设备对象、设备堆栈、I/O堆栈,驱动对象标示驱动程序,设备对象记录加载的设备,一个驱动对象可以有多个设备对象构成设备对象链表,设备堆栈用于记录所有驱动程序的设备,I/O栈用来记录穿越设备堆栈时的操作属性,操作的对象为IRP(I/O Request Package),IRP包由系统的某个组件创建,类似于Windows应用程序的“消息”概念,要处理某种数据只需要把IRP包传送到相应驱动的相应派遣函数中。

2 加密的基本思想

在Windows NT内核操作系统中,应用程序的一次数据请求的过程如图2所示:只有在无缓存或者FAST I/O不可用的情况下才在硬盘上读取数据,因此只用拦截IRP->F1agS为IRP_NOCACHE(表示I/O请求从存储的媒介而不是高速缓存中读取数据)、IRP—PAGING—IO(表示此时执行内存页的I/O操作)和IRP—SYNCHRONOUS—PAGING—1O(表示内存页需要同步更新,此标志也是由内存管理器使用)的数据包,对于写数据的IRP包,在其分发例程中嵌入加密算法完成加密动作,而对于读数据的IRP包,在IRP包的完成例程中嵌入解密算法,对得到的数据进行解密处理。

3 写数据加密的实现

在用户写受保护的文件时,文件加解密客户端能透明地对文件写入的内容进行加密。加密文件判别模块判别出此文件为受保护文件后,将密钥传递给加解密过滤驱动,并由过滤驱动完成写操作。为了使过滤驱动能够加密对文件的写操作,需要拦截IRP—MJ—WRITE和IRP—MJ—DEVICE—CONTROL两种IRP。当应用层进程调用API:DeviceIOControl时,向系统发出IRP—MJ—DEVICE—CONTROL,过滤驱动可以通过处理此IRP获得传递给驱动的加密密钥,进而在拦截IRP—MJ—WRITE的例程中进行加密。
下面将分别介绍这两个例程的实现。
(1)处理IRP—MJ—DEVICE—CONTROL例程。
首先获得应用层程序在IRP中携带的输人数据其操作代码,如果携带了传递密钥的操作代码,例程将存储密钥,并直接完成此IRP,否则将IRP交给底层驱动处理。
伪代码如下:
NTSrATUS EneryptDeviceControl(INPDEVICE—OBJECT DeviceObiect,IN PIRP Irp)
{
PVOID inputBuffer;
ULONG inputBufferLength;
Irp->loStatus.Smtus=STATUS—SUCCESS;
Irp->loStams.Information=O;
ioControlCode=irpStack->Parameters.DeviceIoContro1.IoControlCode;
inputBuffer=Irp->AssociaredIrp.SystemBuffer;
inputBufferLength=irpStack->Parameters.DeviceIoContro1.InputBufferLength;
if(ioControlCode==INPUT—KEY)
{
SetKey(inputBuffer);//将输入的加密密钥保存起来
IoCompleteRequest(Irp,IO—NO—INCREMENT);//完成此IRP
Return STATUS-SUCCESS;
}
//接下来将IRP继续下发传递给下层的驱动处理
……
……
}
(2)处理IRP—MJ—WRITE例程。
需要区分IRI携带数据的两种方式,由MDL结构指定或直接包含数据的指针。
其实现的伪代码如下:
NTSTATUS EncryptWrite(IN PDEVICE-OBJECT DeviceObject,IN PIRP Irp)
{
……//完成初始化的工作
PIO—STACK—LOCATION irpsp=loGetCurrentIrpStackLocation(Irp);
switch(irpsp->MinorFunction)
{
case IRP—MN—N0RMAI;
{
if(Irp->MdlAddmss!=NULL)//判断写的数据是否是在MDL结构中
{
产生一个新的MDL结构,将其指向一个加密后的数据库,并将Irp->MdlAddress指针指向新的MDL结构
}
else
{
buffer=Irp->UserBuffer;
Encrypt(buffer,GetKey());//加密所写的数据
}
……//其它的必要操作
}
3.4 读数据解密的实现
在用户读受保护的文件时,文件加解密客户端能透明地对读出的原始内容进行解密。加密文件判别器判别出此文件为受保护文件后,将密钥传递给加解密过滤驱动,并由过滤驱动完成读操作,和写操作类似,需要拦截IRP—MJ—WRITE和IRP一MJ一DEVICE—CONTROL两种IRP。IRP—MJ—DEVICE-CONTROl例程的用途和实现方式和加密时相同。过滤驱动拦截IRP—MJ—READ的例程中进行加密。IRP—MJ—READ例程的实现需要利用完成例程,在完成例程中完成加解密过程。
下面将介绍这个例程的实现。
NTSrATUS EncryptWrite(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp)
{
……初始化操作
KeInitializeEvent(&waitEvent,NotificationEvent,FALSE);
IoCopyCurrentIrpStackLocationToNext(Irp);
loSetCompletionRoutine(IrP,EncryptReadCompletion,&waitEvent,TRUE,TRUE,TRUE);//设置完成例程
status=IoCallDriver(devExt->AttachedToDeviceObject,Irp);
if(STATUS—PENDING==status)
{
status=KeWaitForSingleObject(&waitEvent,Executive,KernelMode,FALSE,NULL);//等待完成例程发出的解密完成消息
}
IoCompleteRequest(Irp,IO-NO—INCREMENT);
ReturnSTATUS—SUCCESS
}
代码中首先初始化一个消息事件,将消息事件作为参数传递给完成例程,接着调用底层驱动获得读出的数据,IRP返回后系统将启动一个新的线程来执行完成例程。
主线程等待消息事件,同时完成例程执行数据的解密操作,解密完成后完成例程发送消息事件,这样主线程被唤醒并正常返回。
完成例程的伪代码如下:
NTSTATUS SfReadCompletion(IN PDEVICE—OBJECT DeviceObject,IN PIRP Irp,IN PVOID Context)
{
PKEVENT event=Context;
ASSERT(IS—MY—DEVICE—OBJECT(DeviceObject));
……//完成初始化的工作
PIO—TSACK—LOCATION irpsp=IoGetCurrentIrpStackLocation(Irp);
switch(irpsp->MinorFunction)
{
case IRP—MN—NORMAL;
{
if(Irp->MdlAddress!=NULL)//判断读的数据是否是在MDL结构中
}
产生一个新的MDL结构,将其指向一个解密后的数据块,并将Irp->MdlAddress指针指向新的MDL结构,从而返回被解密的数据
}
else
{
buffer=Irp->UserBuffer;
Decrypt(buffre,GetKey());//解密文件
}
……//其它的必要操作
KeSetEvnet(event,IO—NO—INCREMENT,FALSE);//向主例程发送完成解密的消息
return STATUS_MORE_PROCESSING_ERQUIERD;
}

透明加密技术在企业信息保护中的应用(三)

( 3)透明加密与解密过程
1.加密过程
透明加密的过程与传统的加密一样, 在进行加密时, 也必须改变文件的内容, 只有这样才能起到保护作用。在这个过程中, 使用密码或者专用加密硬件作为内容变化的依据。例如: 磁盘上存在一个abc. txt的文本文件, 内容为”123456. . . “, 使用加密软件对它进行加密, 加密后文件的存储内容成为“$ &* #@ )…”。
2. 解密过程
与传统加密相同, 透明化加密软件所具有的解密功能也是彻底解密, 即彻底恢复文件的原本内容。进行解密时, 软件要求进行密码的检核或加密硬件的连接。虽然与传统加密软件的解密在实质上相同, 但具体使用上却有天壤之别: 在传统加密中, 每次使用加密文件时, 必须要先解密文件。当加密文件被认为不再属于隐私文件或机密文件, 也要进行解密以后才可以使用。而在透明加密中, 每次使用加密的文件, 需要使用透明化功能, 不需要用户自己解密, 只有当被加密的文件被认为不在属于隐私文件或机密文件的时候, 才需要解密文件。
( 4)透明加密技术的关键指标
透明加密技术的评价一般可采用以下要素, 各要素的重要度从高到低排列如下:
1. 可靠性和稳定性
可靠性就是要保证: 无论在任何情况下, 被加密的文件不能被损坏。这是企业选用加密软件的基础。在日常应用中本来就存在不稳定因素, 可能造成计算机文档的损坏, 例如: 掉电、误删除等, 透明加密软件产品如果程序写得不够好, 考虑得不够周全,会加大操作系统原有故障产生的概率。
所谓稳定性是指: 安装了加密软件后, 客户端不能动辄出现蓝屏、崩溃、重新启动等不稳定的症状。不稳定的情况在目前阶段恐怕无法完全避免, 但不能影响到正常使用。如: 某版本的加密软件, 用户按照某个固定的顺序执行一个应用操作后, 系统肯定会重新启动, 在找到问题之前, 用户可通过建立规范等管理手段, 要求员工不要按照这个流程来操作。判断加密产品可靠性和稳定性的方法: 搭建足够复杂的测试环境, 模拟企业应用实际操作, 通过极限测试和压力测试来判断。
2.效率
采用透明加密软件后, 用户在进行实际操作的时候, 在打开和关闭文件、存盘、复杂计算等操作时,速度不能受到太大影响。因为加密软件直接接管了客户端的文件读写, 其执行效率直接影响用户的实际工作效率, 例如: 编辑一个文档, 如果本来保存需要5秒, 现在安装了加密软件后, 保存文档需要 5分钟, 恐怕所有用户都不会使用。使用加密软件必然存在效率的损耗, 要看效率损耗有多少。这一点和杀毒软件类似。判断加密产品效率的方法是: 模拟企业应用实际操作, 用最大、最复杂的文件
作为测试对象, 通过比较采用加密产品前后执行存盘等操作的时间差异来判断效率的损耗。
3.安全性
这里谈到的安全性主要针对透明加密对象, 主要体现在以下几个方面:
一方面加密的文件本身要保证安全, 文件的明文不能被复制。不少加密产品不但对内存中的文档进行了保护, 同时通过封锁出口等其他的方法防止重要文档的泄密。
window s操作系统有很多种应用之间交换数据的方法, 安全性的另一方面体现在对这些数据交换方法的控制, 包括: 如何控制剪贴板复制和粘贴、程序之间的拖拽、通过OLE交换数据等, 其核心又包括两部分内容, 一是涉密的应用与非涉密应用之间的数据交换应当只进不出, 如: 如果 word文档如果被加密, 则其中的内容不能被粘贴到非涉密的qq中, 或者粘贴到 qq中的文本应当是乱码; 二是加密软件之间还应当能通过系统提供的数据交换方法进行正常的数据交换, 如: word和 excel都是加密的,从word可以正常粘贴数据到 excel中。
安全性的第三方面体现在文件打开后要防止屏幕的拷贝, 但是这种控制力度是有限的, 一方面截屏的方法很多, 除了屏幕拷贝键Print Screen以外, 还有很多中屏幕拷贝软件, 如:Hprsnap等, 甚至有方 法直接截取显卡的显示内存中的内容将其还原为图片, 还有一种最为简单的方法是基于W indow s文件系统过滤驱动的文件加/解密技术 的: 用手机或者数码相继直接拍照。所以说这种方法一般很难保证全部控制, 只能点到即止, 而且过于严密的控制会影响到用户的正常使用, 这种情况加密产品应当避免。
安全性的第四个方面体现在透明加密产品的解密机上, 所谓解密机就是一把万能钥匙, 得到授权的使用者可以用来批量还原被加密的文件, 假设 A、B两家企业采用了同一个透明加密产品, 则既要保证在任何情况下, A 用户加密的文档能够被自己还原,又要保证A 用户的万能钥匙无法解开 B用户的加密文件。
4.方便性
方便性主要体现在两个方面: 一方面是对于系统维护人员而言, 加密产品在部署、配置、升级、维护等管理方面的是否简单便捷; 另一方面是对于用户来说, 加密和解密在操作上是否简单, 是否真正实现了对用户透明。
5. 防卸载
目前针对透明加密软件存在较多诟病的地方在于其防卸载能力方面, 少数员工未经许可, 私自终止透明加密客户端的运行成为企业关注的问题。其实, 从透明加密产品的研发思路来看, 透明加密产品在防止卸载方面要求过高必要性不大, 因为透明加密在用户需要保密的区域 ( 比如: 某个部门或者整个企业)和应用( 比如: CAD 图纸)整个范围内, 所有相关类别的文档自生成之日起, 在计算机中就以加密方式存在的, 如果用户私自卸载了客户端, 至少他无法打开其他被加密的文档。
随着企业信息化的进一步推进, 企业信息的安全问题也成为众多企业的关注问题, 透明加密技术,视频加密软件,u盘防复制软件等可以在一定程度上保护企业信息的安全, 但是要真正杜绝企业信息的泄密, 这依然是很难达到的, 未来的透明加密技术应该在设计良好加密算法的基础上, 和其他相关知识如操作系统等进行结合, 获得更好的保护效果。

透明加密技术在企业信息保护中的应用

作者:陈锦屏,毕媛媛 整理:超时代软件

网站标签:视频加密软件, 手机视频文件加密金盾视频加密器, 共享文件夹设置密码局域网共享软件, 共享文件夹加密专家u盘防复制

随着计算机的深入应用、企业信息化程度的提高,对企业核心数据安全的保护与采用手工工作方式的时代相比较也提出了更高的要求。其中内网信息安全也因其重要性成为众多企业关注的焦点。然而企业很难做到有效控制员工将数据外流泄密的行为,因为无论企业采用什么样的方式进行监控防堵,总是防不胜防,总有疏忽的时候。因此可以采取文件加密方式,使其就算把数据外流出去,也将变成无法解密的垃圾数据。透明加密技术就是在这种背景下应运而生的。

一、企业信息泄密概述

在现今企业的泄密事件中,内部人员的泄密是其中的一个重要原因。这主要有以下原因:

1.泄密途径增加,泄密手法更加隐蔽
随着企业的信息化水平越来越高,企业对计算机和网络的依赖程度也日益增强,因此相应泄密的途径也随之大量增加。一封电子邮件或者一个U盘就足以将企业的重要信息泄露出去。而在管理不严格的单位,这种泄密在当时很难被察觉,等到察觉时往往已经对企业造成重大损失。

2.企业安全意识不够
在企业信息化应用深入的同时,部分企业的安全意识和防护能力并没有得到同步加强,一些企业仍然对员工计算机管理采用放任自流的态度,将计算机作为一种普通的工具来看待,对于IT制度建设和日常管理的重要性认识不足,IT部门的重要性远不如一线的设计、生产部门,即使建立了IT管理制度,也没有得到较好的贯彻和执行。

3.传统安全保密技术的滞后
由于各类信息化应用的普及,企业内部网络成为自有知识产权的主要载体,传统的以纸张保密为基础的监控手段无法适应新环境的保密要求;但是防火墙、入侵检测和漏洞扫描等对于来自内部的安全隐患也无计可施。

二、透明加密技术

透明加密技术就是针对企业信息保密需求应运而生的一种文件加密技术。所谓透明,是指对使用者来说是未知的。当使用者在打开或编辑指定文件时,系统将自动对未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文,在内存中是明文。一旦离开使用环境,由于应用程序无法得到自动解密的服务而无法打开,从而起到保护文件内容的效果。

1.透明加密技术的由来

其实,针对企业信息的加密的研究,在很早之前就有,当时主要是通过主动式加密的方法对信息进行加密。主动式加密由信息作者进行加密。例如:WORD、EXCE等软件都允许用户通过设置密码对文档的阅读和修改权限进行控制;也有一些工具允许用户对计算机的文件夹进行加密,防止非授权用户查看。这种主动加密功能相对简单,实现也比较容易,但是对于企业内部员工的泄密是无法防范的。

透明加密技术主要是针对这种主动加密的缺陷而产生的,其属于被动式加密类产品,其主要思路是:在局域网中,只要部署了该产品,在涉密范围内的文档,在用户使用时会强制自动加密。其基本过程是:当应用向计算机磁盘写文件的时候,对写的结果进行加密;而应用在读取文件的时候,对文件进行解密。以保证涉密文档在离开了企业环境或者用户不具备授权时无法查看;或者将所有涉密文档转换成为专有格式,并存放到服务器上,用户需要察看涉密文件,如同在档案室借阅文档一样。

2.透明加密原理和分类
(1)透明加密原理
透明加密技术是与Windows紧密结合的一种技术,它工作于Windows底层。通过监控应用程序对文件的操作,在打开文件时自动对密文进行解密,在写文件时自动将内存中明文加密并写入存储介质,从而保证存储介质上文件始终处于加密状态。

微软Windows采用事件驱动的机制,通过消息的传递来实现对应用的管理。其中监控windows打开(读)、保存(写)可以在windows操作文件的多个层面上进行。例如:32位CPU定义了4种(0~3)特权级别,或称环(ring)。其中0级为特权级,3级是最低级(用户级)。运行在0级的代码又称内核模式,3级的为用户模式。常用的应用程序都是运行在用户模式下,用户级程序无权直接访问内核级的对象,需要通过API函数来访问内核级的代码,从而达到最终操作存储在各种介质上文件的目的。为了实现透明加密的目的,透明加密技术必须在程序读写文件时改变程序的读写方式。使密文在读入内存时先转换成为明文,以便应用程序能够识别;在保存时又要将明文转换成密文,以达到保密的效果。

Window允许编程人员在内核级和用户级对文件的读写进行管理,内核级采用虚拟驱动的方式,用户级采用HookAPI(俗称钩子技术)的方式。因此,透明加密产品根据其采用的核心技术包括APIHook和VDM(WindowsDriverModel)内核设备驱动挂载方式(俗称驱动技术)。透明加密软件通过监视涉密应用的磁盘读写,对文档进行动态的加密和解密,由于这些操作都在后台自动完成,除了速度可能降低外,用户在使用方式上与平时没有差异。

编程上可以在两个技术层面对文件的操作进行控制,内核层和应用层,内核层采用文件驱动的方式,应用层采用HookAPI的方式。因此,透明加密产品根据其采用的核心技术包括APIHook和VDM内核设备驱动挂载方式。透明加密软件通过监视涉密进程的磁盘读写,对保密文档进行动态的加密和解密,由于这些操作都在后台自动完成,除了速度可降低外,用户在使用方式上与平时没有差异。

透明加密关键技术分析

2.2 HOOK技术分析
HOOK是捕获应用程序消息处理的技术,俗称钩子技术。它允许应用程序安装一个子程序到其它的程序中,以监视指定窗口某种类型的消息。当消息到达后,先交给钩子程序处理,然后再交给原程序处理,如图2所示。
HOOK技术主要包括用户模式下的APIHOOK技术和核心模式下的HOOK技术两类。在用户模式下,应用程序进程通过WindOWSAPI函数库,如Kernel32、User32、Gui32、Advapi.dll等动态链接库提供的丽数,形成其私有的导人地址表 (ImportAddressTable),并通过 IAT访问系统核心。API HOOK技术就是通过访问应用程序的私有地址,改变应用程序的IAT,即可过滤应用程序消息处理,完成加密和解密操作。在核心模式下,通常通过HOOK系统服务描述表(System Service Dispatch Table,SSDT)、中断捕述表 (Interrupt Description Table)和IRP(I/O Request Package)函数表来实现过滤操作。
  采用HOOK技术进行透明加密的特点足实现简单,但缺点是可靠性差,速度比较慢,而目必须针对每种应用程序、甚至每个版术进行定制开发。
2.3 驱动过滤技术
  如图l所示.Winf¨ws的内核驱动是分层的,每层驱动只有一个驱动对象,每个驱动对象可以包含多个设备对象,若干个设备对象(可以属于不同的驱动)依次绑定形成一个设备栈,最顶端的设备总是先接受到数据处理请求,处理完后依次向下传递. IRP(I/O Request Package,输入/输出请求包)是上下级设备间传递请求的重要数据结构。应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将I/O请求转化为相应的IRP数据,各层驱动程序根据自己的功能分部对1RP数据进行处理2。如果在不影响上下层驱动接口的情况下,在windows系统内核中加入新的驱动层,将新的驱动层设备对象加入到设备栈的相应位置,就可以捕获IRP数据,进行加解密处理后再向下传递,就可达到数据透明加密的目的  通过在不同驱动层加入过滤驱动,可以实现不同的透明加密技术.目前驱动过滤技术上要分为文件驱动过滤技术和内核级沙盒加密技术。
2.4 文件驱动过滤技术
  文件过滤驱动加密技术是在最高层驱动程序中加入过滤驱动,一般挂载在磁盘驱动之上,其主要目的是捕获windows系统对文件的种种操作行为,比如文件的创建、打开、读/写、改名,目录的创建、打开、枚举、改名、删除等。捕获对文件的操作,并对其进行过滤,能实现许多强大的功能,比如检查病毒、数据加密、数据备份、安全监控等。
    文件过滤驱动加密技术运行在受Windows保护的内核层,加、解密速度比HOOK技术快,解决了HOOK技术不能解决的问题,但稳定性一直不太理想,比如大文件破损、多进程软件同时操作某个文件时,一个进程加密,另一个进程不加密,交替访问文件,极易造成异常等。
2.5 内核级沙盒加密技术
    沙盒的实质就足一个虚拟空间。用户首先创建一个虚拟空间.在使用过程中,所有格式的涉密数据、文件等都可以放入这个虚拟空间,存入的时候,自动加密,读取时自动解密。这个虚拟空间是透明的,使用者感觉不到它的存在。内核级纵深沙盒加密技术融合了磁盘过滤驱动技术,卷过滤驱动技术,文件过滤驱动技术,网络过滤驱动(NDIS/TDI)技术等一系列内核级驱动技术,从上到下,纵深防御加密,每层驱动只做自己最擅长的工作。
    内核级沙盒加密技术的特点是,在使用前,要先初始化沙盒,创建成功之后,所有的文件,不论什么格式,都可以自动加、解密,所以无数据破损等问题,特点是加解密速度快,稳定,但技术相当复杂,研制难度较大。
3 透明加密技术的发展要求
  透明加密技术作为一门新兴的技术,正不断被应用到各个领域,但随着信息技术的不断发展和应用需求的不断变化,对透明加密技术也提出了更高的要求。
    1)透明加密效率必须不断提高
    计算机处理能力不断提升,磁盘存储空间越来越大,单个文件大小也越来越大,像一些设计类图纸,单个文件大小可达几个G。如何提高透明加密效率成为了必须要考虑的问题之一。
  2)应用系统支持要求越来越广
  Windows64位、LINUX、UNIX等计算机操作系统不断普及,苹果OS、Android、塞班等手机操作系统得到广泛应用,用着重考虑透明加密技术在这些平台上的应用。
  3)从单一加密向全方位发展
透明加密技术在加密方面表现出了其良好的特性,但对于数据泄漏防护而言,单一加密是不能满足需求的,还应该从内部网络授权访问,文件防打印、拷贝、网络发送扩散控制,预防木马和病毒等方面进行全方位的考虑,探索透明加密技术在这些领域的应用。

4 结束语
目前,我国大多数非涉密信息系统中,使用windows操作系统的用户不在少数,而透明加密技术与windows操作系统结合较为紧密,因此,对透明加密技术的研究具有相当的实用价值。然而,目前业界对于透明加密技术有待于进一步加强,该加密技术的安全性、可靠性也有待于进一步得到学术和技术层面的全面论证。

透明加密技术分析

一个加密系统 S可以用数学符号描述为s:{P,C,K,E,D},其中:
P——明文空间,表示所有可能出现的明文集合;
c——密文空间,表示所有可能 现的密文集合;
K——密钥,是密码算法中的可变参数;
E——加密算法,由一些公式、协议或程序构成;
D——解密算法,它是E的逆运算。
当给定密钥K时,存在两种关系,C=E(P),即对明文P加密后得到密文C;P=D(c)=Dk(E(P)),即对密文C解密后得明文P。因此,加密技术的关键在于密钥和算法的选择。在密码学中,根据密钥类型不同将密码算法分为两类 :对称算法 (传统密码算法)和非对称算法 (公开密钥算法)。对称算法采用同一种密钥进行加解密运算,它的优点是运算速度快,缺点是算法的安全性依赖于密钥,且密钥难于管理,常见的对称算法有DES、3DES、AES(见表 1);非对称算法采用的是两种密钥,分别是加密密钥(公钥)和解密钥 (私钥),通常情况下,公钥是公开的,私钥是保密的,其优点是密钥容易管理,缺点是运算速度慢,常见的非对称算法有 RSA、DSA、ECC(见表2)。
公开密钥密码与对称密码是两种不同的东西,它们解决不同的问题。一般情况下,对称算法和非对称算法会结合应用。在对文件进行加解密的过程中,由于运算数据量大,要求运算效率高,因此常采用对称算法,从性能和安全性综合考虑,优先选用AES算法 ;而非对称算法常被应用于对称算法密钥的管理,采用公钥对对称算法密钥进行加密,私钥进行解密,在性能要求不是很高的情况下,可以优先选用 RSA算法。
表1 对称加密算法的比较
名称 密钥长度 运算速度 安全性 资源消耗
DES 56位 较快
3DES 112位或168位
AES 128\192\256位
表2 非对称加密算法的比较
名称 成熟度 运算速度 安全性 资源消耗
RSA
DSA
ECC
超时代视频加密软件共享文件夹加密软件…采用先进的256位AES对称加密算法,运算速度快、安全性能高、资源消耗低,是目前市场上最好的视频加密共享文件夹加密解决方案。

透明加密技术实现原理

作者:周道明,钱鲁锋,王路路 整理:超时代软件

近年米,信息技术迅猛发展,越来越多的信息和资料以数字形式存放在硬盘等数字存储设备中,并且随着信息共享技术的突破,通过移动存储设备、网络等介质交换数据越来越方便,但同时,核心数据的控制和管理也越来越难,如何保证核心数据不泄露逐渐成为了信息安全的热点问题。为此,很多单位采取了“完全封闭式的管理”、“堵塞或拆除计算机的USB接口,禁止上网”、“简易的身份认证”等各种方式防止核心数据泄露,但往往是顺此失彼,难以完全控制。如何建立完善的数据泄露防护体系、保护核心资源,已迫在眉睫。

 

数据加密作为数据保护的有效方式之一,越来越受到广泛认可,但传统的数据加密方式仔在加密速度慢、密码易被破 、无法防止文档被复制等缺点,难以满足需要。近年来,随着对加密技术的深入研究,透明加密技术正逐渐得到广泛应用.

 

实现原理

 

透明加密技术是近年来发展较为迅速的一种文件加密技术。所谓透明加密是指对使用者来说,数据的加、解密是自动的,不会影响其止常的操作习惯:采用这种技术,使用者保存数据时,系统将对数据自动进行加密,当使用者打开或编辑指定文件时,系统自动对已加密的文件进行解密,在硬盘上存储的是密文,在内存中存储的是明文,一旦离开使用环境,数据就无法得到自动解密的服务,从而达到保护数据内容的效果。共享文件夹加密,采用先进的透明加密技术,获得广大用户的好评。

 

透明加密技术的产生是与Windows操作系统的发展密不可分的。自WindowsNT问世以来,微软提出了系统分层的概念将操作系统设计为双模式多层驱动式结构,典型的Windows驱动程序层次结构如图1所示 。

0925

两个模式主要指用户模式和内核模式。通常情况下,应用程序运行在用户模式下,只能访问自己私有的内存空间,无法直接访问硬件,它对文件的操作只能通过调用Windows API函数进行,这为在用户模式下进行透明加解密提供了时机。如在写文件时,首先对文件数据进行加密,再调用Win32 API函数进行写操作 ;在读文件时,先调用Windows API函数读出加密的数据,再 自动进行解密。在调用WindowsAPI函数时截获消息并对数据进行加解密处理,是在用户模式下实现透明加解密的主要方式。

 

在核心模式下,应用程序对WindowsAPI函数的调用,最终将转化为不同的操作指令传递给I/O管理器,I/O管理器将不同的操作请求转化为IRP(I/ORequestPackage,输入/输出请求包),分发给各层驱动依次处理。Windows将驱动分成了以下三种 。总线型驱动程序主要用于管理一个逻辑的或物理的总线,比如PCI、USB等 ;功能型驱动程序用于管理某一 特定类型的设备,主要用于将一个设备的操作接口导出给操作系统 ;过滤型驱动程序位于功能型驱动程序的上层或下层,可增加或者改变一个设备或另一个驱动程序的行为。具备不同功能的各种驱动,分层合作,各司其职。过滤型驱动的出现,为在核心模式下实现数据透明加解密提供了手段。如写文件时,在上层过滤型驱动程序或下层过滤型驱动程序中可以首先截获 IRP,进行加密处理,然后再交给下层驱动处理;读文件时,在上层过滤型驱动程序或下层过滤型驱动程序中可以首先获取读到的加密数据,进行解密后交给上层驱动或应用程序。编写具备加解密功能的过滤型驱动,是在内核模式下实现透明加解密的主要方式。