Windows 2000的文件加密系统 对于个人或企业来说，没有经过授权而闯入其保密数据库是一个十分严重的问题。一些操作系统，如:Windows 95、Windows for Workgroups(WFW)没有提供安全保障机制。当管理人员没有完全执行其安全机制时，甚至Windows NT 的安全机制也可能出现问题。入侵者可以使用像NTFSDOS这样的工具来绕过NT的安全系统，从而获取你所保护的数据。 UNIX和Windows NT 系统的安全依赖于一个称之为“有条件进入控制”(Discretionary Access Control-DAC)的系统。具有DAC的系统可以允许你用它来保护你的敏感数据，通过限制进入保密文件和文件夹的方法。DAC尤其适用于多人共用一台机器的情况。但如果计算机的硬盘被偷走的话，DAC就毫无用处了，因为只要他能绕过操作系统如重装NT，就可以轻易地读取盘上的文件了。在一些系统中，DAC不允许访问者无限制地对文件、文件夹进行操作，这时，入侵者可以通过将其拷贝到笔记本电脑、软磁盘，甚至通过拨号上网进入网络，然后将其拷贝到自己的电脑中来达到目的。
Windows 2000(Win2k)使用文件加密系统(Encryption File System－EFS)对文件实现加密保护。这样，即使硬盘被偷走，上面的文件也不会泄密。要想深入了解Win2k的EFS，我们需要了解一下现在所使用的加密技术。
普通的加密技术
加密用来保护文件以免偶然的或蓄意的攻击造成的泄密。只要密匙安全，那么用它所保护的数据文件就不会泄密。相比之下，保护密匙比保护大量数据容易得多。当然如果密匙被丢失的话，我们就不可能再进入这些被加密保护的数据了。现在经常使用的加密方法有加密文件、磁盘加密、文件加密系统(EFS)。
加密文件的方法在一些应用程序中已经得以应用了。如Microsoft Word, Microsoft Excel可以根据使用者的要求对文件加密或解密。加密文件法比磁盘加密法容易实现而且更适用于多人共用一台机器的情况。但是，这种方法的解密过程要产生一个所解密文件的副本，而且像Word 这样的程序要在磁盘上产生临时文件，这些都有可能导致泄密，所以必须把这些“副产品”安全地删掉。

Windows NT 在用户模式下使用加密文件的方法，操作系统把密匙存在一个记录文件中。如果黑客能进入这个记录文件则能进入用这个密匙保护的数据文件。
磁盘加密法用一个密匙来对整个磁盘进行加密。用户输入一

个口令来“锁住”硬盘。磁盘加密依赖于系统的DAC，这样，当运行磁盘加密时你并不能防止他人窃取硬盘数据。
文件加密系统
文件加密系统与通常的加密技术相比具有几个优势。EFS加密技术被集成到整个操作系统中，所以如果使用者不能通过操作系统的检查则不能对磁盘进行操作。Win2K 的EFS 驱动程序运行于内核模式以提供更安全的保障。EFS易于管理而且对使用者是完全透明的。用户可以用操作系统随机生成的私人密匙来保护自己的数据文件。用户可以无条件地进入自己的文件，没有密匙的用户则不能进入相应数据区域。
EFS源自公用密码技术，用一个随机产生的文件加密密码(File Encryption Key-FEK)来加密数据。用密码加密的共用系统有两个密码:公用密码和私人密码。公用密码是公开的，而私人密码则只有私人用户自己才知道的。用户用公用密码来加密FEK，用私人密码来解密FEK。NTFS用具有所谓的数据解密域(Data Decryption Field-DDF)和数据恢复域(Data Recovery Field-DRF)属性的加密文件存放加密后的FEK清单。
EFS的密码存放机制建立在Win2K Crypto API结构上，它把用户的公用密码和私人密码与系统随机产生的密码分别存放。
在使用EFS以前，系统管理员需要在网络服务范围内(对单独的一台机器来说则是所有的使用者)确定一个数据恢复办法。系统管理员应该确定一位数据恢复员利用EFS的策略管理界面来产生、输出、输入、备份所恢复的密码。例如，网络用户遗失了自己的私人密码，因而不能进入用此密码保护的文件，于是把这份加密的文件送到系统管理员指定的数据恢复员那里，然后在一台安全的机器上把这份文件用用户的恢复密码解密，然后把它返还给用户，如果必要的话，用户可以把这份文件再次加密。
Win2K系统的子机上也使用了同样的EFS策略，因此子机用户在暂时离线时可以对数据进行加密，便携式电脑用户也可以在离线时进行加密。同样，在系统不能进行身份校验时，用户可以使用机器缓存中历史数据来登录到网络主机上。
你也可以利用远程服务器来加密数据。但是，EFS并不能加密传输电缆上的数据，它只对硬盘起作用。为了保护数据在网络传输过程中的安全，我们必须用一些其它的技术，如：IP Security、Secure Sockets Layer－SSL来保障信息在网络传输过程中的安全。
EFS的组织结构
EFS 包括一个服务系统(Service)、驱动程序(Driver)、运行时间库(Runtime Library)－EFSRTL以及Win32API。EFS的服务系统集成了Win2K的安全子系统。在用户模式下，这个服务系统支持Win32 API，并提供了一个Crypto API界面来生成DDF和DRF文件。在内核模式下，服务系统通过一个“本地进程请求”(Local Procedure Call)来与EFS驱动程序通讯。
EFS驱动程序在内核工作模式下处于NTFS的最高层。驱动程序通过与工作于用户模式的EFS服务系统通讯以提供密码管理服务。EFS驱动程序从EFS服务系统得到FEK、DDF、DRF服务，然后把这些信息传送到EFSRTL以完成文件管理工作。EFSRTL虽然是EFS驱动程序的一个组成部件，但它并不与驱动程序直接通讯，即使EFS把EFSRTL 和EFS驱动程序作为一个整体。EFSRTL和EFS驱动程序用NTFS请求来通讯，这样在对文件进行操作时，确保了NTFS的安全性。
对文件或文件夹加密

Win2K把加密(Encryption)作为文件和文件夹属性的一个新的选项。用户可以用同样的方式打开、阅读、保存经过加密或没有加密的文件。只有用户本人、数据恢复员和其他经过授权的人才能共享这些加密文件或文件夹。
EFS的使用与NTFS的文件压缩的使用类似。当你对文件夹加密时，NTFS把文件夹内的文件分别加密，而且自动地把以后你放入这个文件夹里的文件加密。在缺省情况下，NTFS把文件夹里的子文件夹也自动加密。
EFS允许用户在网络范围内用命令行方式拷贝加密文件。Win2K的Copy命令有特殊的开关来处理加密文件。根据所用版本，可以把文件输出到软磁盘、备份磁带、16位或32位FAT海量存储设备上。还可以把加密文件作为E_mail的一个附件。输出加密文件的开关是/E，形式为：Copy /E源文件名目的地文件名。如：
Copy /E myfile.doc A: 。
同样，我们可以用/I来输入文件，形式为：Copy /I 源文件名 目的地文件名。如：
Copy /I myfile.doc C:\data\myfile.doc。
值得注意的是，如果没有加上正确的开关，除非目的地文件夹是加了密的，否则Copy命令会把加密文件像没有加密的文件那样拷贝。我们可以在Cipher工具中用命令行来对文件夹或文件夹里的文件加密。
在文件或文件夹没有解压之前，我们不能把经过压缩的数据加密;对系统文件也不能加密。在文件的属性对话框中，点取“高级控制”我们可以设定其加密或压缩属性，这两个属性是相斥的，同时只能选取一个。
系统文件夹中的文件不能被加密。在系统启动过程中，使用者的密码是不起作用的，如果你对系统文件加密，则会导致系统不能启动到Win2K状态。如果试图对标有系统属性的文件加密，系统会报告一个“拒绝访问”的出错信息。
我们可以用Cipher工具来检验一个文件或文件夹是否被加密。这种方式用于检验不同地方、不同存储设备上的文件或文件夹时是非常麻烦的。一种简便的方法是使用NT的文件管理器来检验。Win2K中没有文件管理器，但你可以从以前版本的NT中拷贝一个。文件管理器并不显示哪些文件被加密，但只要你的文件一被加密，文件管理器就不能再显示它了。这种方法尤其在你不能肯定文件夹中的文件是否被加密时有用。
文件和文件夹的解密
当需要读写加密文件时，EFS可以很容易地把文件解密。用户可以在Explorer中右键单击要解密的文件或文件夹，在文件属性的高级属性对话框中把Encrypt项变为不选项来达到目的。
加密标准
有两个原因限制了EFS技术在操作系统中的应用。第一，在操作系统中集成EFS是非常复杂的，需要相当高的技术能力。第二，政府对加密技术出口的控制使得卖主更难以集成EFS。EFS加密技术采用56位的数据加密标准。现在美国政府禁止超过40位密匙的加密软件出口。但Microsoft 及其他公司对此已打开了一个突破口，已被允许在北美地区使用56位加密标准，但在其它地方人仍然只能使用40位加密标准。当然，56位加密标准是向下兼容40位加密标准的，反之则不行。
简评
Win2K的EFS在操作系统上是一个很大的进步，是现在运行在小型机、大型机上的UNIX、AS/400系统的有力竞争对手。Win2K提供了非常高的安全性，在网络攻击越来越频繁的情况下，完全能适应各种企业、组织的需要。在实际运用中，需要确保密匙的安全，同时要建立适当的数据恢复机制，以保证网络的安全运行。

（恬 怡）