--------------------------------------------------------------------------------- 功能评估说明: --------------------------------------------------------------------------------- 一.简介 二.安装 三.卸载 四.更新 五.基本测试 六.高级测试 七.常问问题集 八.注意事项 --------------------------------------------------------------------------------- 一.简介: --------------------------------------------------------------------------------- TEFS平台是是世界上唯一一个涵盖所有windows操作系统的,在Windows操作系统的文件系统层面上工作的一个核心态软件(在win9x/me下是VXD驱动架构,在winNT/2K/XP/2K3/Vista下是KM驱动架构),向整个系统提供实时的,透明的,动态的数据加解密服务. 未来,基于和战略合作伙伴的合作发展,还将提供全部类unix操作系统(包括所有版本的unix,AIX,freeBSD,linux等)上的TEFS平台. TEFS平台是核心态驱动软件,和应用程序具体形式无关,所以可以完全兼容任何文件格式和任何应用程序. TEFS平台可以对任意文件进行加密,并通过世界领先的基于文件本身内容的指纹智能识别技术和基于文件名识别技术结合,去识别一个文件是否是加密文件,从而提供透明加解密服务.并凭借该技术,可实现身份/身份组机制. TEFS平台支持指定访问加密文件明文的应用软件,访问加密文件密文的应用软件,拒绝访问加密文件的应用软件.使得可以使用Word直接编辑加密文档,也可以使用Outlook发送加密文件(密文形式). TEFS平台支持动态关闭开启内核,从而使得刻录光盘进行备份等重要应用得以实现(也可通过指定光盘刻录软件以密文方式访问加密文件来实现). TEFS平台不但支持本地文件系统,还支持网络文件系统.支持一台计算机既是客户机,也是服务器,将加密文件延伸到分布式文件系统. TEFS平台可以支持任意文件系统,FAT32,NTFS,CDFS等等. TEFS平台是高度可拓展的体系,支持任意软件加密算法,硬件加密器,混合加密算法等等,只要以二进制插件形式插入到TEFS平台中,TEFS平台就可以使用其作为加密策略(在TEFS体系中,一个具体的加密算法或者硬件加密器插件称为一个加密策略组件). TEFS平台本身提供了多种注册机制和验证机制,适合各种注册授权. TEFS平台从2003年推向市场,已经被众多软件开发商应用(包括众多国际巨型软件集团,国内巨型软件集团,以及军队和政府下的开发部门)基于TEFS平台的软件产品已经在军队,政府,公安系统,跨国公司,巨型事业单位,商用系统,娱乐软件等众多领域得到大规模应用,系统稳定可靠. 本文档致力于指导刚刚接触TEFS平台的开发商客户如何简单地评估TEFS平台. 必须指出的是,我们提供的功能示例远没有展示出TEFS平台上可能的应用,需要开发商根据文档和接口说明去决定,实现更多的应用. --------------------------------------------------------------------------------- 二.安装: --------------------------------------------------------------------------------- TEFS平台是多组件设计,各个组件可以分离地安装和运行.当某些组件未安装或未启动时,TEFS平台缺少相应功能,但是依然可以运行. 所以,要安装TEFS平台进行评估,可以有多种方法.下面描述两种方法: 1.分离地安装各个组件 1)安装TEFS内核平台 TEFS内核平台是运行于Windows操作系统内核层面的驱动软件,需要首先安装该组件. 执行开发包中的 \安装\TEFS1.61(Kernel)Build36.exe ,按照屏幕提示完成安装TEFS内核平台. 注意,请按照屏幕提示以需要重新启动计算机的方式完成安装. 2)重新启动计算机后,安装需要的加密策略组件,例如免费的SEAL策略和GOST策略. 加密策略组件向TEFS平台提供具体的加密算法或者加密硬件,应该视需要安装特定的加密策略组件. 执行开发包中的 \安装\SEAL.exe ,按照屏幕提示完成安装SEAL加密策略组件. 执行开发包中的 \安装\GOST.exe ,按照屏幕提示完成安装GOST加密策略组件. 3)使用示例的控制软件进行评估 基于DSF库开发的控制软件是用来控制TEFS平台的一个控制软件,开发商通过开发控制软件可以利用TEFS平台来完成需要的各种功能. 有两个测试评估的示例控制软件: A.DSFSample 该示例控制软件,使用简单的快速开发接口完成工作,重点在于展示控制模型在企业级的应用.该功能是主动安全文档保护系统的重要核心部分. 但是,该示例控制软件并没有展示众多灵活操作加密策略和TEFS内核平台的接口使用. 该示例控制软件的源代码位于 \示例\DSF库开发程序示例\DSFSample 下. 执行开发包中的 \示例\DSF库开发程序示例\DSFSample\Release\DSFSample.exe ,参考后续部分进行测试评估. B.TEFS-C(透明加密器) 该示例控制软件,使用复杂的开发接口完成工作,重点在于展示灵活操作加密策略和TEFS内核平台的接口使用.透明加密器软件正是针对个人应用的一个共享软件. 但是,该示例控制软件并没有展示控制模型这一企业级功能的接口使用.该功能是主动安全文档保护系统的重要核心部分. 该示例控制软件的源代码位于 \示例\DSF库开发程序示例\TEFS-C 下. 要使用该示例控制软件进行测试评估,请安装 透明加密器 共享软件,并执行安装后的透明加密器主程序. 请参考2.使用集成安装包一次安装所有必须的组件. 2.使用集成安装包一次安装所有必需的组件 1)安装透明加密器软件 该集成安装包用于一次性向计算机系统上安装TEFS内核平台,SEAL和GOST加密策略组件以及透明加密器软件. 运行开发包中的 安装\TEFS1.61(Integrated).exe ,按照屏幕提示完成安装 注意,请按照屏幕提示以需要重新启动计算机的方式完成安装. 2)重新启动计算机后,使用示例的控制软件进行评估 基于DSF库开发的控制软件是用来控制TEFS平台的一个控制软件,开发商通过开发控制软件可以利用TEFS平台来完成需要的各种功能. 有两个测试评估的示例控制软件: A.DSFSample 该示例控制软件,使用简单的快速开发接口完成工作,重点在于展示控制模型在企业级的应用.该功能是主动安全文档保护系统的重要核心部分. 但是,该示例控制软件并没有展示众多灵活操作加密策略和TEFS内核平台的接口使用. 该示例控制软件的源代码位于 \示例\DSF库开发程序示例\DSFSample 下. 执行开发包中的 \示例\DSF库开发程序示例\DSFSample\Release\DSFSample.exe ,参考后续部分进行测试评估. B.TEFS-C(透明加密器) 该示例控制软件,使用复杂的开发接口完成工作,重点在于展示灵活操作加密策略和TEFS内核平台的接口使用.透明加密器软件正是针对个人应用的一个共享软件. 但是,该示例控制软件并没有展示控制模型这一企业级功能的接口使用.该功能是主动安全文档保护系统的重要核心部分. 该示例控制软件的源代码位于 \示例\DSF库开发程序示例\TEFS-C 下. 执行透明加密器软件安装后的透明加密器主程序,参考透明加密器软件的帮助进行测试评估. --------------------------------------------------------------------------------- 三.卸载: --------------------------------------------------------------------------------- TEFS平台是多组件设计,可以单独卸载各个组件. 但是,ecoresoft只提供了一次卸载TEFS平台所有组件的功能. 安装TEFS平台后,在 windows的开始菜单中,可以找到安装时指定的程序组,例如 TEFS 程序组. 执行里面的 卸载 菜单,按照屏幕提示操作将可以卸载TEFS平台所有组件. 注意,请按照屏幕提示以需要重新启动计算机的方式完成卸载. --------------------------------------------------------------------------------- 四.更新: --------------------------------------------------------------------------------- TEFS平台是多组件设计,所以每次升级可能是对其中一个组件进行升级,也可能是对多个组件进行升级. DSF开发包中包括的组件有: TEFS内核平台(9x系列和NT系列) DSF库 加密策略开发包中包括的组件有: 各个具体加密策略组件 要更新上述各个组件,有两种方法: 1.重新安装 1)卸载TEFS平台,并重新启动计算机.参考 三.卸载. 2)重新安装TEFS平台的各个组件.参考 二.安装. 2.直接更新 开发包中并没有提供直接更新各个组件的工具软件,开发商需要手工来进行更新. 通常开发商需要自己制作一个更新工具软件,以完成在其客户的系统上对TEFS平台各个组件以及控制软件的自动更新. 这里仅仅描述手工更新所需要的工作步骤,开发商可以根据这些工作步骤来开发自动更新软件: 1)更新内核 在9x平台上,包括Win95,Win97,Win98,WinME,将开发包中的 \开发文件\TEFS平台内核\TEFS.vxd 拷贝到 %SYSTEM%TEFS.vxd;其中,%SYSTEM%是windows的system路径,例如C:\Windows\System; 在NT平台上,包括WinNT3.51,WinNT4.0,Win2K,将开发包中的 \开发文件\TEFS平台内核\TEFS2K.sys 拷贝到 %SYSTEM%Drivers\TEFS.sys;其中,%SYSTEM%是windows的system路径,例如C:\Windows\System32; 在NT平台上,包括WinXP,Win2003平台,将开发包中的 \开发文件\TEFS平台内核\TEFSXP.sys 拷贝到 %SYSTEM%Drivers\TEFS.sys;其中,%SYSTEM%是windows的system路径,例如C:\Windows\System32; 更新内核后,需要重新启动计算机才能使用新的内核. 2)更新DSF库 将开发包中的 \开发文件\DSF库\DSF.dll 拷贝到 控制软件所在的目录\DSF.dll; 3)更新加密策略 可以直接执行加密策略安装包来重新安装该加密策略. 也可以手工拷贝,下面以SEAL加密策略为例子说明: 对于加密策略内核,在9x平台上,将 SEAL.vxd 拷贝到 %SYSTEM%SEAL.vxd; 对于加密策略内核,在NT平台上,将 SEAL.sys 拷贝到 %SYSTEM%Drivers/SEAL.sys; 对于加密策略应用层,将 SEAL.dll 拷贝到 加密策略安装目录(一般位于控制软件下的 Strategy目录下)\SEAL.dll; 更新加密策略内核,需要重新启动计算机才能使用新的加密策略内核(第一次安装加密策略内核不需要重新启动计算机). 4)更新控制软件 控制软件是基于DSF库开发的,所以如果DSF库版本更新了,那么肯定需要更新控制软件. 控制软件需要使用新的DSF.lib进行编译链接. DSF.lib位于开发包中的 \开发文件\DSF库\DSF.lib; --------------------------------------------------------------------------------- 五.基本测试: --------------------------------------------------------------------------------- 使用示例的测试软件DSFSample进行基本测试. 1.软件功能: 这是一个简单的对话框程序,用于评估TEFS平台的控制模型部分和其他一些基本功能. 软件功能包括下面6个部分: 1)文件操作 手动地加密选定的文件,解密选定的文件,获取该文件的类型(一般文件还是加密文件等). 2)文件夹操作 对文件夹进行加密只是在该文件夹内生成一个TEFS的配置文件; 对文件进行加密是使用TEFS来改变文件本身的原始内容; 对文件夹进行加密的意义: 如果一个文件夹是加密文件夹,在TEFS运行的情况下,并且控制模型上最终选定为对这个加密文件夹路径上所有文件和文件夹为智能识别方式,那么: A.在该文件夹下创建新文件时,这些文件还是加密文件,这些加密文件使用的加密策略及策略的配置与该文件夹(中的加密配置文件)所使用的相同. 例如,某加密文件夹使用的是SEAL策略,那么在该文件夹内新建的文件也是使用SEAL策略,且密码也相同. B.在该文件夹下创建一个新的子文件夹时,新的子文件夹还是加密的,子文件夹所用的加密策略及策略的配置及策略的配置与该文件夹所使用的相同. 也就是说,新的子文件夹下的加密配置文件和该文件夹下的加密配置文件中描述的加密配置相同. 例如,某加密文件夹使用的是SEAL策略,那么在该文件夹内新生成的子目录也是使用SEAL策略,且密码也相同. 这种文件夹加密的一个典型应用是在U盘上设定一个文件夹,使得在其中新建文件被自动加密. 使得这个加密文件夹类似U盘的加密分区的功能,并且其大小不用预先设定(分区大小),而是可以动态增长. 对于企业级应用(安全文档系统),通常不需要这种对文件夹的加密(不需要通过文件夹下的加密配置文件来定义该文件夹是加密文件夹). 因为在安全文档系统中,如果需要严格的控制某个路径下的文件,一般是通过控制模型来指定该路径. 例如,假设要控制 D:\Test 文件夹下新建文件必须加密,是通过设置控制模型为 D:\* 为必须加密的. 3)配置控制模型(非PID方式) 在TEFS体系中,控制模型是非常复杂也极其灵活的一个功能组件,通过控制模型,可以实现开发商的众多需求. 在示例的DSFSample中,只是使用了快速开发接口(用于简单评估TEFS平台上的DSF库而设计的一套简单开发接口)来进行控制模型设置,以完成基本的需求. 快速开发接口提供的概念只是控制模型的一个具体设置而已,是快速开发接口在控制模型接口的基础上,进行简化而来的. 请参考 控制模型.pdf和DSF_ControlModel.h 来详细了解控制模型. 请参考 快速开发接口的实现文件 DSF_FastDev.cpp 来详细了解快速开发接口是怎样基于一般的 DSF开发接口完成工作的. 如果快速开发接口的设定不符合你的应用,请使用一般接口来完成你的工作. 在DSFSample(快速开发接口)的示范中,需要确定下列概念: A.密文访问进程. 一个程序(进程)如果被列入密文访问加密文件的程序(进程),那么其将密文方式访问加密文件,并将正常许可访问非加密文件; 这种程序是例如: Foxmail,Outlook,QQ,MSN,Nero等,以能够提供发送加密文件(密文形式),刻录加密光盘的应用; 这种程序也可以是资源管理器,以实现拷贝粘贴一个加密文件依然是一个加密文件. B.明文访问进程. 一个程序(进程)如果被列入明文访问加密文件的程序(进程),那么其将明文方式访问加密文件,并正常许可访问非加密文件; 这种程序是例如: Word,Notepad,CoreDraw,AutoCAD等,以能够提供透明使用和编辑加密文件的应用; C.拒绝访问进程. 一个程序(进程)如果既没有列入明文访问加密文件的程序(进程),也没有列入密文访问加密文件的程序(进程), 那么其将拒绝访问加密文件,但正常许可访问非加密文件. 这种程序是例如: 未知程序等. 实际上,设计时只需要设计哪些程序(进程)应该是密文访问加密文件的,哪些程序(进程)应该是明文访问加密文件的, 其他的程序(进程)均自然是拒绝访问加密文件的. 默认情况下,显然就是没有任何程序(进程)是明文访问/密文访问加密文件的,所以所有程序(进程)均自然是拒绝访问加密文件,但正常许可访问非加密文件的. 点击按钮 配置控制模型 完成对控制模型的非PID方式的配置. 注意,如果一个进程已经启动了(具有PID),那么其不会受非PID方式配置的影响. 例如,你启动DSFSample的时候,Explorer.Exe已经启动了, 那么即使你用进程名的方式设置了Explorer.exe是密文访问进程,其依然不会加入到密文访问进程中,而是作为拒绝访问进程. 在DSFSample的代码上,做了下列设置: A.进程名方式的配置 用进程名字方式设置了Foxmail.Exe,Uedit32.exe为密文访问进程; 用进程名字方式设置了NOTEPAD.EXE,WINWORD.EXE,KMCAD.exe,CorelDRW.exe,zwcad.exe为明文访问进程; 这表示如果这些软件启动而新建进程,那么对应的进程将按照设置的模型进行配置. B.进程校验值方式的配置 可以指定一个可执行文件的某些段落的校验值来指定进程. 可以指定多个段落,每个段落对应一个16字节的校验值;可以指定段落为整个文件本身. 既可以只用进程校验值来指定进程,其表示任何一个进程如果创建的时候,其可执行文件符合该进程校验值就按照配置的模型进行; 也可以将进程校验值和进程名字,进程全路径名联合来指定进程,这表示必须同时满足这些条件才算符合模型. 通常应用是只用进程校验值来指定进程,因为这不但可解决例如将ABC.EXE改名为WinWord.exe,也可解决例如将WinWord.exe改名为ABC.exe. 用进程校验值和进程名方式联合设置了FILETEST.exe为明文访问进程,该程序是ecoresoft内部的一个测试程序; 用进程校验值方式设置了FILETEST.exe为明文访问进程,该程序是ecoresoft内部的一个测试程序; C.特定文件后缀必须加密 在DSF提供的快速开发接口中,提供了设置必须加密的文件模板(例如*.txt就是一个文件模板). 其表示不管在任意一种进程中,只要新建和覆盖写符合这个文件模板的文件,就认为必然是加密的. 所以,明文访问进程和密文访问进程均会以加密方式新建/覆盖写该文件,导致该文件成为加密文件. 而拒绝访问进程将拒绝新建/覆盖写该文件. 设置了*.TXT,*.DOC,*.CDR,*.KMD为必须加密的文件模板.即这些后缀的文件是必须加密的; D.不允许删除和改名的文件模板 可以通过一般开发接口的控制模型部件DSF_ControlModel.h提供的接口设置不允许删除的文件模板,不允许改名的文件模板. 设置了D:\Downloads\* 和 D:\ghost\* 不允许删除; 设置了D:\soft\* 和 D:\TEFSWork\* 不允许改名; 4)用PID配置控制模型 如果一个进程已经启动了(具有PID),那么其不会受非PID方式配置的影响. 所以对于在使用非PID方式配置之前,已经启动了的进程,应该使用PID方式配置到控制模型中. 不论是使用非PID方式,还是使用PID方式配置进程,都有一个继承性的设置. 设置为可继承的,表示这个进程的子进程如果没有匹配到其他的控制模型设置时,那么就继承该进程的设置. 5)Debug信息 TEFS平台内核提供了调试支持,可以通过调试命令让内核输出信息. 这里的调试命令都是调试内核的,所以输出的信息也都是内核信息,并不包括应用层信息. 调试命令将使得内核输出对应的调试信息,为了查看这些调试信息,你应该使用内核调试信息查看器软件. 推荐使用SysInternals出品的DebugView软件. 支持下列命令形式: Dump StrategyManager 打印当前的策略列表 Dump Controller 打印当前的内核控制器路径,也就是DSF/CPF库的路径 Dump GlobalSpecificList 打印当前的全局指定列表 Dump ProcessSpecificList XXX 打印指定的进程指定列表;XXX是该列表的句柄值,-1表示打印所有的进程指定列表; Dump ConfigProcessList 打印当前的配置进程列表 Dump RunProcessList 打印当前的运行进程列表 Dump ParagraphManager 打印当前的默认加密段落信息 On/Off ProcessMonitor 启动/关闭进程跟踪 On/Off ProcessSpecificListHit XXX YYY 启动/关闭控制模型命中跟踪; XXX 是指定列表的句柄; YYY 表示指定列表中的匹配列表的索引(基0);-1表示该列表的不匹配项目; 6)事件支持 TEFS平台提供了事件支持,以让控制软件能处理内核运行过程中产生的各种事件. 这些事件包括例如 无法透明服务一个文件,因为加密配置不正确(密码不正确)等.详细的可支持的事件类型列表在InfoEvent.h和InfoEvent.cpp中. 控制软件要处理内核事件,应该调用DSF_Event.h中的接口注册一个事件处理器. DSFSample会在处理到一个内核事件时,报告给客户. 例如,当到达了注册授权限制时会无法继续服务新的加密文件,DSFSample将报告一个注册授权限制的事件发生. 如果你认为影响了您的评估和测试,请联系ecoresoft获取对应您机器的注册授权文件. 示例控制软件使用的授权方式是根据机器硬件进行授权,所以需要对每台机器都分别授权. 请使用 工具软件\授权工具 目录下的 授权工具客户端.exe ,将您需要授权的机器信息采集到一个gather.all文件中,发送给ecoresoft. 然后ecoresoft将会发送给您对应的release.all文件. 同样使用该授权工具,选择好授权文件的目的位置(就是您的库放置的位置)后,就可以对该运行机器进行授权. 注意,授权文件写入后,需要重新启动一下控制软件. 2.测试流程 测试软件为开发包中的 \示例\DSF库开发程序示例\DSFSample\Release\DSFSample.exe,下面下面简称为DSFSample. 测试软件中的UltraEdit软件是一个二进制编辑器,用来查看任意文件的二进制形式,也可以改用其他的二进制文件查看软件. 测试软件中的WinWord.exe是微软的Office Word软件,也可以改用其他设置为明文访问进程的软件. 测试软件中的FoxMail.exe是一个邮件客户端软件,也可以改用其他设置为密文访问进程的软件. 测试软件中的Explorer.exe是Windows内置的资源管理器软件. 下面的测试描述中出现的文件名等均可自行改为其他. 1)手动文件操作 准备非加密文件D:\Test\Test.doc,D:\Test\Test2.doc和D:\Test\Test.xxx 执行DSFSample,点击 配置控制模型 按钮. 点击 获取指定文件的类型 按钮,选择D:\Test\Test2.doc,将看到提示 该文件是非加密文件,即一般文件. 点击 加密指定文件 按钮,选择D:\Test\Test2.doc,将看到提示 加密文件成功. 点击 获取指定文件的类型 按钮,选择D:\Test\Test2.doc,将看到提示 该文件是加密文件. 点击 解密指定文件 按钮,选择D:\Test\Test2.doc,将看到提示 解密文件成功. 点击 加密指定文件 按钮,选择D:\Test\Test.doc,将看到提示 加密文件成功. 关闭DSFSample. 用UltraEdit打开D:\Test\Test2.doc,可以看到其是非加密文件. 用UltraEdit打开D:\Test\Test.doc,可以看到其是加密文件. 关闭UltraEdit. 2)手动文件夹操作 准备非加密文件夹D:\Test\Folder1和D:\Test\Folder2 执行DSFSample,点击 配置控制模型 按钮. 点击 获取指定文件夹的类型 按钮,选择D:\Test\Folder1,将看到提示 该文件夹是非加密文件夹,即一般文件夹. 点击 加密指定文件夹 按钮,选择D:\Test\Folder1,将看到提示 加密文件夹成功. 点击 获取指定文件夹的类型 按钮,选择D:\Test\Folder1,将看到提示 该文件夹是加密文件夹. 点击 解密指定文件夹 按钮,选择D:\Test\Folder1,将看到提示 解密文件夹成功. 点击 加密指定文件夹 按钮,选择D:\Test\Folder2,将看到提示 加密文件夹成功. 关闭DSFSample. 打开D:\Test\Folder1,可以看到其下无加密配置文件 %TEFS#CFG.DEC. 打开D:\Test\Folder2,可以看到其下有加密配置文件 %TEFS#CFG.DEC.用UltraEdit打开该加密配置文件,可以看到其实际是一个空加密文件. 3)明文访问进程WinWord.Exe 执行DSFSample,点击 配置控制模型 按钮. 启动WinWord.Exe,打开D:\Test\Test.doc,可以看到其可以打开该加密文件并正确查看. 任意修改后,保存.再关闭WinWord.exe. 启动WinWord.exe,再次打开D:\Test\Test.doc,依然可以正常打开D:\Test\Test.doc文件. 任意修改后,另存为D:\Test\A.doc,再关闭WinWord.exe. 启动WinWord.exe,再次打开D:\Test\A.doc,依然可以正常打开D:\Test\Test.doc文件. 任意修改后,另存为D:\Test\A.xxx(在保存对话框中用双引号括起,即"D:\A.xxx"来作为文件名),再关闭WinWord.exe. 关闭DSFSample. 用UltraEdit打开D:\Test\Test.doc,可以看到其是加密文件. 用UltraEdit打开D:\Test\A.doc,可以看到其是加密文件. 用UltraEdit打开D:\Test\A.xxx,可以看到其是加密文件. 关闭UltraEdit. 4)密文访问进程FoxMail.Exe 执行DSFSample,点击 配置控制模型 按钮. 启动FoxMail.Exe,发送一个文件给自己,附件为D:\Test\Test.doc. 关闭FoxMail.exe. 关闭DSFSample. 启动FoxMail.exe接收邮件,保存邮件中的附件Test.doc为D:\Test\Test-FM.doc 关闭FoxMail.exe. 用UltraEdit打开D:\Test\Test-FM.doc,可以看到其是加密文件. 关闭UltraEdit. 5)PID方式配置的密文访问进程Explorer.exe和必须加密的文件类型 执行DSFSample,点击 配置控制模型 按钮. 拷贝非加密的doc文件D:\Test\Test2.doc,粘贴将提示为拒绝.因为Explorer.Exe是拒绝访问进程,无法新建必须加密的目的*.doc文件. 拷贝非加密的其他文件D:\Test\Test.xxx,粘贴为D:\Test\复件 Test.xxx. 拷贝加密的doc文件D:\Test\Test.doc,粘贴将提示为拒绝.因为Explorer.Exe是拒绝访问进程,无法访问加密的源文件. 拷贝加密的其他文件D:\Test\A.xxx,粘贴将提示为拒绝.因为Explorer.Exe是拒绝访问进程,无法访问加密的源文件. 新建文件D:\Test\新建 Microsoft Word 文档.doc,将提示拒绝.因为Explorer.Exe是拒绝访问进程,无法新建必须加密的目的*.doc文件. 新建文件D:\Test\新建 Microsoft PowerPoint 演示文稿.ppt. 关闭DSFSample. 用UltraEdit打开D:\Test\复件 Test.xxx,可以看到其是非加密文件.因为Explorer.Exe是拒绝访问进程,源是非加密,其可以访问;再新建文件还是非加密. 用UltraEdit打开D:\Test\新建 Microsoft PowerPoint 演示文稿.ppt,可以看到其是非加密文件.因为Explorer.Exe是拒绝访问进程,其新建文件是非加密的. 关闭UltraEdit. 执行DSFSample,点击 配置控制模型 按钮. 点击 用PID配置 按钮,输入Explorer.exe的PID,密文访问方式,不可继承. 拷贝非加密的doc文件D:\Test\Test2.doc,粘贴为D:\Test\复件 Test2.doc. 拷贝非加密的其他文件D:\Test\Test.xxx,粘贴为D:\Test\复件 Test.xxx. 拷贝加密的doc文件D:\Test\Test.doc,粘贴为D:\Test\复件 Test.doc. 拷贝加密的其他文件D:\Test\A.xxx,粘贴为D:\est\复件 A.xxx. 新建文件D:\Test\新建 Microsoft Word 文档.doc. 新建文件D:\Test\新建 Microsoft PowerPoint 演示文稿.ppt. 关闭DSFSample. 用UltraEdit打开D:\Test\复件 Test2.doc,可以看到其是加密文件.因为Explorer.Exe是密文访问进程,源虽然是非加密,但是目的文件是必须加密类型*.doc,所以加密方式新建. 用UltraEdit打开D:\Test\D:\Test\复件 Test.xxx,可以看到其是非加密文件.因为Explorer.Exe是密文访问进程,源是非加密,目的文件不是必须加密类型,所以非加密方式新建. 用UltraEdit打开D:\Test\复件 Test.doc,可以看到其是加密文件.因为Explorer.Exe是密文访问进程,源是加密,所以写入数据依然是加密数据. 用UltraEdit打开D:\est\复件 A.xxx,可以看到其是加密文件.因为Explorer.Exe是密文访问进程,源是加密,所以写入数据依然是加密数据. 用UltraEdit打开D:\Test\新建 Microsoft Word 文档.doc,可以看到其是加密文件.因为Explorer.Exe是密文访问进程,其新建文件是必须加密类型*.doc,所以加密方式新建. 用UltraEdit打开D:\Test\新建 Microsoft PowerPoint 演示文稿.ppt,可以看到其是非加密文件.因为Explorer.Exe是密文访问进程,目的文件不是必须加密类型,所以非加密方式新建. 关闭UltraEdit. 6)在加密文件夹下新建文件和文件夹 执行DSFSample,点击 配置控制模型 按钮. 点击 用PID配置 按钮,输入Explorer.exe的PID,密文访问方式,不可继承. 新建文件D:\Test\Folder2\新建 Microsoft PowerPoint 演示文稿.ppt. 新建文件夹D:\Test\Folder2\TestFolder. 关闭DSFSample. 用UltraEdit打开D:\Test\Folder2\新建 Microsoft PowerPoint 演示文稿.ppt,可以看到其是加密文件.因为控制模型中该路径匹配为智能识别,Explorer.Exe为密文访问进程,该文件夹为加密的,所以加密方式新建文件. 打开D:\Test\Folder2\TestFolder文件夹,可以看到其下有加密配置文件 %TEFS#CFG.DEC.因为控制模型中该路径匹配为智能识别,Explorer.Exe为密文访问进程,该文件夹为加密的,所以加密方式新建文件夹. 关闭UltraEdit. 7)网络文件系统(服务器未安装TEFS平台) 准备两台计算机,一台作为服务器不安装TEFS平台,一台作为客户端安装了TEFS平台. 服务器IP地址为192.168.201.100,共享出一个可写的文件夹\\192.168.201.100\Test. 客户端IP地址为192.168.201.200. 重复上面的测试1)~6),只是将D:\Test改为\\192.168.201.100\Test. 将可以看到,服务器上没有安装TEFS平台的情况下,测试结果和之前的类似. 8)网络文件系统(服务器安装了TEFS平台) 准备两台计算机,一台作为服务器安装了TEFS平台,一台作为客户端安装了TEFS平台. 服务器IP地址为192.168.201.100,共享出一个可写的文件夹\\192.168.201.100\Test. 客户端IP地址为192.168.201.200. 重复上面的测试1)~6),只是将D:\Test改为\\192.168.201.100\Test. 将可以看到,服务器上安装了TEFS平台的情况下,测试结果和之前的类似. 3.软件工作流程简述 1)连接到DSF; 在程序的启动时执行该功能; 执行如下工作: 连接到DSF,让内核开始工作; 配置好策略(使用SEAL策略,密码123456); 配置控制模型的快速开发接口中的模式概念; 注册事件处理器; 2)事件处理器 3)主对话框的手工文件操作的三个按钮处理 4)主对话框的手工文件夹操作的三个按钮处理 5)非PID方式配置控制模型的按钮处理 6)PID方式配置控制模型的按钮处理 7)Debug调试的按钮处理 8)断开到DSF的连接 在程序试图退出时调用停止TEFS的工作:断开到CPF的连接; --------------------------------------------------------------------------------- 六.高级测试: --------------------------------------------------------------------------------- 1.禁止删除和改名 请参考DSFSample的代码,理解后执行测试. 2.进程校验值 请参考DSFSample的代码,理解后执行测试. 3.加密的可执行程序 请使用透明加密器加密一个可执行程序后,再在启动透明加密器的情况下,执行该加密的可执行程序.可以看到,该加密的可执行程序正常被执行. 在透明加密器未运行的情况下,执行该加密的可执行程序,将提示无法执行. 4.限定不可操作的路径 例如限定U盘不可被写入等. 请参考 控制模型,并开发相应模块后,进行测试. 5.身份/身份组支持 请根据EIDS加密策略的描述进行测试. 6.权限机制 请参考 厂商拓展模型,并开发相应模块后,进行测试. 7.攻击测试 通过使用IceSword等进程操作软件,可以强制把TEFS的控制进程(通常就是开发商基于DSF.dll开发的软件)杀掉,从而使得TEFS保护不能完整执行. 通过使用了Dll注入等技术的工具软件,可以攻击透明加密内核.这种攻击可以窃取到加密文件的明文. 通过把整个进程内存,缓冲内存Dump出来并加以极其复杂的分析的方式可以得到加密文件的明文. TEFS内核内置了保护机制,用于: 防止强制杀控制进程;(需要开发商调用相应接口,以进行相应的设置) 防止Dll注入窃取明文;(需要开发商调用相应接口,以进行相应的设置) 防止内存Dump窃取明文;(无需开发商调用接口进行设置) 相关的问题请参考文档 防止攻击.pdf 8.其他更多应用 请参考 开发指南,并开发相应模块后,进行测试. ---------------------------------------------------------------------------------七 七.常问问题集: --------------------------------------------------------------------------------- 1. 支持哪些应用程序,存储设备和操作系统? TEFS是内核层驱动,支持任意应用程序; 支持任意存储设备,包括硬盘,U盘,光盘,软盘,磁带机,网络存储等; 支持全系列Windows操作系统: 包括VXD驱动架构的win95,win97,win98,winme; 包括KM(WDM,LDM都符合KM架构)驱动架构的winNT,win2000,winxp,win2003以及未来的操作系统. 2. 支持哪些加密算法或者加密硬件? TEFS平台是开放式架构,通过外部插件的方式可以把任意一个软件加密算法或者硬件加密器插入到TEFS体系架构中. 任意一个加密算法,硬件加密器,或者混合算法,需要编写一个符合TEFS架构要求的插件软件,以能插入到TEFS体系架构中. TEFS支持序列加密算法,例如第三方免费提供的SEAL加密策略组件; TEFS支持分组加密算法,例如第三方免费提供的GOST加密策略组件;TEFS支持任意分组大小的分组算法; TEFS支持非对称算法,例如第三方提供的EIDS加密策略组件; EIDS使用电子信封模式(非对称算法和对称算法的混合算法)来支持身份/身份组机制; 如果要支持硬件加密器,例如USB Key,智能IC卡,PCI加密卡等,请根据该硬件设备或者微软的标准化接口文档了解该设备的使用方法, 并为之编写一个服务TEFS规范的加密策略组件(参考加密策略开发包);然后,TEFS平台就可以使用该硬件加密器进行工作了. 3. TEFS透明服务的时候会有临时文件么? 不会. 作为透明加密文件系统,透明的加密解密服务都是在内存中进行,不会产生任何临时文件. 4. 如果文件保存时候,存为一个任意后缀名,是否会加密保存? 是的,依然是加密的. TEFS不是通过文件名匹配的方式去决定一个文件是否是加密的,而是通过给加密文件内植入一个识别指纹来判断是否是加密文件. 因此,TEFS可以设置为对某个进程(应用程序)保存的任意文件都加密保存. 而在以后使用该加密文件的时候,TEFS也依然可以正确识别其是加密文件,并提供服务. 5. 通过网络共享,从装了TEFS的电脑上(客户机),把文件写到一个没有装TEFS的电脑(服务器)的共享文件夹,是否也会加密? 是的. 在<<使用TEFS(TM)平台构建应用系统.pdf>>中,我们明确描述过, 即使服务器端(就是其他电脑)上没有装TEFS,也一样保存到其他电脑是加密的. 因为TEFS是真正的网络分布式文件系统驱动内核,其在网络分布式文件系统层面上工作,使得在网络传播的数据就已经是加密的了. 注意,一些透明加密平台号称是支持网络,但其实是假的,其不是工作在网络分布式文件系统上,而是依赖服务器来进行加密. 这种方式的直接表现就是: 如果服务器没装该透明加密平台,那么从装了该透明加密平台的电脑上写文件到服务器上,将是明文写入,导致明文泄漏. 6. 通过网络共享,从装了TEFS的电脑上(服务器),把一个加密的文件读到没有装TEFS的电脑(客户机)上,是否为加密的密文? 是的. 因为TEFS是真正的网络分布式文件系统驱动内核,其在网络分布式文件系统层面上工作,使得在网络传播的数据就已经是加密的了. 所以,服务器给出的数据是加密的. 7. 加密的文档是否可以指定只有某些人或者组织可以使用? 可以. TEFS平台中,在加密文件内可以植入任意数据,这些数据可以由加密策略组件提供. 例如EIDS加密策略,就是通过对称加密算法和非对称加密算法构成的混合算法,使用电子信封模式来支持身份/身份组机制. 也就是说,可以给一个用户指定一个或多个身份,例如这个用户是eric,也是技术部的一员. 一个加密文档可以指定只能由某些身份使用,例如这个文档只能由mary,技术部的人员使用. 请baidu或者google一下"电子信封 非对称加密"了解相关理论. 8. 加密的文档是否可以指定不能读,写,打印等? 可以. 通过TEFS平台的厂商拓展模型,可以指定哪些进程,哪些身份(使用支持身份的加密策略组件)可以执行哪些动作(读,写,打印等). 9. 加密的文档是否在任意机器上,不需要对该机器进行配置,TEFS就可以知道其是加密文件,并能为之服务? 是的. 因为TEFS平台中,一个文件是否是加密的,是通过其内部植入的一个指纹来决定的,并且其使用哪个加密策略等信息都在文件内部, 所以,在任意一个机器上,TEFS平台都可以知道其是加密文件并为之提供服务. 10.是否可以对可执行文件(例如exe文件,dll文件)进行加密,并提供透明服务? 可以. 可执行文件是通过内存映射文件方式来进行读取的,TEFS平台工作于文件系统驱动层面,可以支持对内存映射文件的方式. 11.是否可以对使用内存映射文件方式访问文件的程序服务,例如notepad(记事本)? 可以. TEFS平台工作于文件系统驱动层面,可以支持内存映射文件的方式. 注意,一些透明加密平台是工作于系统API Hook方式的.这种方式的透明加密平台绝对无法支持内存映射文件的方式. 这种API Hook方式的表现就是: 无法支持内存映射文件的方式.而很多软件都是使用内存映射文件的方式来访问文件的,例如最常见的notepad(记事本)就是. 此外,可执行文件的加载执行均是通过内存映射文件的方式. 12.怎样处理复合文档的OLE链入,嵌入对象? 在TEFS平台下,不需要处理. 如果一个被OLE链入的对象,其也是一个机密的数据,那么应该也是被TEFS平台之前加密的. 例如,在word中链入excel表格(使用链入方式),这个excel表格本来就是在一个加密文件中(因为excel是需要控制的进程), 所以,这个excel加密表格是在外部加密的,被一个link到word中. 如果一个被OLE嵌入的对象,其因为要被直接写入这个文件中,那么将被TEFS平台加密. 例如,在word中嵌入excel表格(使用嵌入方式),那么这个excel表格被明文方式放入word文档的内存中, 然后保存到文件的时候也是一样加密保存. 13.怎样处理剪贴板中的拷贝和粘贴? 这个不是TEFS平台完成,这个是应用层面的.由开发商自己完成. 但是基于TEFS,这个是很简单的.做法如下: 进行Hook API,然后只要保证一点: 如果一个数据被copy时(通过Hook API可以得到这个调用时机,并得到调用这个copy动作的进程ID),是由一个明文访问许可的进程做的, 那么这个数据被paste的时候就也只能paste到明文访问许可的进程去. 这样做可以达到目的是因为,一个明文访问许可的进程你通常是设置为加密保存的,所以这些机密数据被粘贴到这样一个进程去, 保存的时候一样是加密保存的. 14.可以实现例如用word透明编辑加密文件是明文方式编辑,而用qq,outlook发送加密文件是密文方式么? 可以. 在TEFS平台下,你可以设置进程是要明文方式访问加密文件,还是密文方式访问加密文件. 所以,可以用word透明编辑加密文件,用outlook发送加密文件的密文形式. 15.假设word.exe是一个合法的明文打开加密文件的应用程序,如果我把qq.exe改为word.exe,那是否也是可以打开? 不可以. 可以通过设置控制模型时,指定进程的校验数据(就是对exe的指定位置进行数据校验),可以防止进程改名问题. 16.TEFS的性能怎样?对流媒体播放是否有性能影响? 作为透明加密文件系统,TEFS当然没有性能问题,因为其是应用程序需要多少数据就解密服务多少数据,而不是一次解密所有数据. 请参考<>中对性能的描述,可以看到只有千分之三的性能差别,这不会影响流媒体播放. 另外,TEFS平台的分段加密技术是用来能快速制作加密文件(把一个非加密文件通过控制台软件转变为加密文件),和透明服务的性能没有很大关系. --------------------------------------------------------------------------------八 八.注意事项: --------------------------------------------------------------------------------- 控制模型的设置是非常重要的,如果设置不正确可能导致错误和异常. ecoresoft在为众多客户进行支持的过程中,发现客户存在的对控制模型的设置错误有如下情况: 1.对读操作使用强制加密的识别模式. TEFS(TM)平台内核还不支持对读操作使用强制加密的识别模式,所以不能这样设置. 一旦错误使用了这样的设置,将导致无法预计的错误. 2.对写操作使用强制加密的识别模式,并且加密文件的访问使用密文方式方式. TEFS(TM)平台内核支持对写操作使用强制加密的识别模式,但是这种情况下加密文件的访问方式只能用明文方式,所以不能这样设置.目前,对写操作使用强制加密的识别模式未在快速开发接口中提供. 一旦错误使用了这样的设置,将导致无法预计的错误. 3.错误理解操作的含义 TEFS(TM)平台为进程控制模型设置了读,写,覆盖写,新建4种操作. 可以为某个进程独立设置各个操作对应的ProcessSpecificList,以决定对某个文件/文件夹的识别模式以及识别为加密或者非加密的情况下的动作,例如为明文访问,密文访问,拒绝访问等; 注意的是,这些操作不是指某个进程真正去读一个文件,或者写一个文件; 而是指: 一个进程去打开文件(CreateFile)的时候如果只要求读文件的权限,那么这个打开动作就是读打开操作; 一个进程去打开文件(CreateFile)的时候如果要求了写文件的权限,那么这个打开动作就是写打开操作; 一个进程如果去打开一个已经存在的文件(CreateFile)的时候,如果要求了把文件Truncate到0,那么这个打开动作就是覆盖写操作; 一个进程如果去打开一个不存在的文件(CreateFile)的时候,如果打开结果是新建了这个文件,那么这个打开动作就是新建操作; 所以,对具体一个进程文件而言,必须保证设置控制模型时,对这个文件的所有操作(读,写,覆盖写,新建)所对应的最后决定中,均把其认为是加密的或者是不加密的. 如果认为是加密的那么均要使用密文方式或者明文方式来访问;如果违背该原则,将导致无法预计的错误. 假设一种违反该原则的设定: 对一个进程对某个文件的读操作使用智能识别模式/明文访问,而写操作使用智能识别模式/密文访问. 那么该进程可能只要求读权限打开该文件(读操作打开加密文件),那么按照设定其会认为这是一个加密文件,所以透明服务(明文访问),因此该进程读取到了该文件的明文数据; 然后,该进程再要求写权限打开该文件(写操作打开加密文件),那么按照设定其会认为这是一个加密文件,但是不透明服务(密文访问),因此进程可能对之前读取到的明文信息进行处理后写入该加密文件,因为没透明服务,就变成明文写入了. 现在,该加密文件中已经是部分明文,部分密文了.