[收藏]从Win2K/XP客户端删除EFS

来源:互联网 发布:扫雷机器人软件 编辑:程序博客网 时间:2024/05/09 08:47
作者: techrepublic.com.com
Thursday, March 10 2005 1:48 PM

学习在Win2K/XP客户端上删除EFS需要采取的必要步骤。

现在绝大多数的读者可能已经听说过EFS了,它是微软Windows 2000和Windows XP Professional系统中所包含的加密文件系统(Encrypting File System)。该文件系统允许Windows 2000和XP系统用户对运行在NTFS分区上的文件或文件夹方便的进行加密。已经有很多文章涉及到了此项功能所带来正面和负面影响。在本文中,我将从最终用户的角度一步步根据EFS在实际使用中发生的情况对以上两方面进行讨论——而不是从一位了解EFS背后的技术及使用ESP原因的系统管理员的角度。我还会给出在Windows 2000以及XP系统上禁用EFS的必要步骤。

EFS基础
EFS包含在Windows 2000和XP系统中,它允许用户在NTFS保护之上再为数据添加一个安全保护层。前者是NT已经采用多年的技术。EFS对存放在FAT或FAT32分区上的数据不起作用。

EFS被设计为易于使用,甚至是对最终用户透明。因此有可能有用户使用它却感觉不到它的存在。EFS使用128位的DESX加密来保护存储在加密文件和加密文件夹中的数据。它使用PKI而不是用户名和密码将文件同加密该文件的用户相联系。采用这样的方式可以在用户改变帐号密码时不会出现加密数据无法读取的情况。在Windows 2000和XP Professional系统中默认允许EFS,并且任何用户都拥有对其加密文件或目录进行修改的权限。具体方法是选择文件或文件夹高级属性下方的钩选框,如图A所示。

图A

在正确的使用方式下,EFS可以避免敏感数据被突破了NTFS保护的用户所读取。从乐观的方面看,EFS的确具有提升安全保护的能力,但同时它也会给用户带来虚假的安全感,这使其负面的作用。在使用EFS中系统极少会出错,但一旦发生将产生可怕的后果。要了解EFS能够完成的工作,同时还要清楚它不能完成的工作,这非常重要。EFS会提供一些虚假的安全信息,现在让我们来去除这些信息。

EFS不能做的事情
EFS保护数据不被读取,而不是保护它不被删除。尝试复制EFS加密文件的举动会失败,因此很多人会以为未经授权用户同样无法删除文件。但实际上这些文件可以被删除。

ESP保护存放在本地NTFS分区中的数据。在文件发送跨越网络的时候EFS并不对数据提供保护。这是一个大问题。因为EFS被设计为对最终用户透明,而在加密文件的用户把文件复制到网络上或是通过电子邮件发送加密文件的时候,文件会在穿过网络前自动解密,因此该文件可以在目的系统上被读取。对于并不了解这点且坚信其的敏感数据仍然安全的用户来说,这样的错误所带来的损失可能是巨大的。

EFS在跨越网络的映象驱动器上无法使用,除非服务器和客户端都在相同的活动目录森林(Active Directory forest)中工作,并且服务器被信任授权。在默认情况下,只有在一个ADS环境中的域控制器被信任授权。理解这些限制条件对于有效使用EFS至关重要。微软原本认为EFS易于使用,但要使用EFS还是需要适当的最终用户培训。在你负责的网络中有多少用户理解这些概念?或者更为重要的是:在你负责的网络中有多少用户在没有理解EFS原理的情况下跨越网络使用了EFS?

当EFS被误用时所发生的不幸
很多关于EFS的资料(尤其是来自微软的资料)都采用了这样的观点,即最终用户总是能够正确的完成操作,永远不会偶然或故意使用类似EFS的技术来把事情搞砸。但如果你不得不把支持计算机系统作为你的饭碗,你就会清楚最终用户不会总是正确完成操作。如果EFS在你所管理的环境中被使用(要记住在默认情况下EFS是被允许使用的),那么必须要了解EFS可能出现什么问题,以及你能够采取什么措施来解决这些问题。

任何技术支持工程师或网络管理员首先要考虑的是任何对文件或文件夹具有修改权限(写能力)的用户都可以对其进行加密。因此这条规则完全可以运用到那些并不是由用户所创建的文件上。在你的网络环境中这会造成问题么?会有多个用户共享相同的系统么?如果答案是肯定的,则就会发生问题。在你的活动目录环境中你是否将域控制器作为文件服务器来使用?如果是,则有可能某用户加密了一个文件,于是一大组原本被允许修改该文件的用户则无法访问此文件。在EFS默认允许的情况下,最终用户有足够的权利来做这样可能造成麻烦的事情。

注意
如果用户拥有对文件的完整控制权利,他们还可以改变NTFS权限以拒绝任何人对文件进行访问。这就是为什么你应当总是对非管理用户和组的权限进行修改的原因。的确,几乎没有系统管理员允许最终用户指定谁可以访问网络中的数据。

EFS所引发的问题难于发现
如果不把EFS作为可能的原因加以考虑,那么当你遇到问题时会很难确定它由什么原因引发的。当用户尝试访问被其他人所加密的文件的时候,根据所使用访问方式或应用程序的不同,用户会得到以下两种信息之一:拒绝访问或该文件损坏。

如果出现了拒绝访问的信息,绝大部分的最终用户会认为原因是系统管理员错误的将文件锁定,因此他们会寻求管理员帮助。如果工作人员只是通过查看文件或文件夹的权限来寻找故障原因,就会发现没有迹象表明用户访问被拒绝。只有打开文件的高级属性才能够揭示问题的原因。很多人工将会被浪费在寻找其他的潜在可能因素上,例如组权限冲突等。

就这两条同用户无法读取EFS文件相关的提示信息而言,拒绝访问算是好的。如果收到指示文件损坏的信息,用户有可能将此文件删除。由于EFS不会阻止用户的删除动作,因此用户可以完成这一操作。如果尝试解决文件损坏问题的人没有考虑到ESP作为潜在的因素,那么事情甚至会比出现文件损坏消息更糟糕。已经有了一些在假定场合下可能出现的悲惨故事。如下面的例子:

两个工作在不同时间段的用户共享相同的Windows XP Professional系统。工作在晚班的用户有大量的停工时间可以用来浏览该系统的方方面面。在发现了Encrypt Contents To Secure Data(加密文件内容以确保数据安全)设置后,他决定激活此功能。“确保数据安全会有什么坏处?”他对自己说道。

他还选择了文件夹中的一个同另一个用户共享的文件,默认的EFS设置将显示不仅该文件被加密,父文件夹同样也被加密。用户接受了这一信息并单击OK。现在该文件夹中所创建的每一个文件都会被创建其的用户加密,并且无法被其他用户所读取。晚班用户修改了这些文件,确认没有问题并且坚信所有工作都很正常。

当白班用户尝试打开该文件夹中的文件的时候,她会收到指示文件数据可能损坏的消息。随后她打电话给技术支持人员报告出了问题。作为工作的一部分,文件夹中的文件需要每天都被写入,因此这个问题需要迅速解决。技术支持人员开始查找问题原因。他尝试删除文件并从晚上的备份中恢复该文件,但不幸的是EFS文件备份的时候仍然处于加密状态,因此恢复出的文件似乎也被损坏了。技术支持人员相信这表明编辑此文件的应用程序出了问题。于是他重新安装了该程序,但问题仍然存在。由于需要迅速解决该问题且有备份数据,技术支持人员决定重新安装操作系统。操作系统的重新安装抹掉了用来解密数据的密钥,现在,文件完全无法读取了!

当然,即使没有犯下上面出现的错误,由于EFS造成的数据丢失仍然可能发生。在被加密数据备份之后,如果系统崩溃且无法启动而系统被重新安装,会发生什么样的事情?有很多方法避免出现这样潜在的麻烦。但放弃使用EFS被认为不在考虑范围之内。系统状态或EFS密码可以备份起来,并且恢复到重新安装的系统上,这样就可以重新实现对数据的访问。如果在网络上使用EFS,不再会有纯粹的“最佳方案”——这将是必须的方案(注意,你可以在活动目录环境下采取一些步骤以避免这样的失误,使得使用环境更加安全。但这些步骤并不是EFS默认设置的一部分)。

笔记本电脑是使用EFS的最佳场合
我要讨论的最后一个问题是你是否需要使用EFS。EFS在数据最易收到攻击的环境下(如在网络和因特网上传输时)对数据安全没有任何帮助。在日常使用的绝大部分可移动存储介质、软盘上它也无法工作,而在使用这些存储媒体的情况下数据是很容易丢失的。那么在什么环境下,在什么时候应当使用EFS?微软在自己同EFS相关的白皮书中描绘得非常生动。根据白皮书的描述,EFS被设计用于在NTFS对本地数据的保护可能被物理控制的方式穿透的场合。希望你所在的网络环境并不像绝大部分桌面客户系统一样容易受到窃贼的侵袭(如果的确如此,那么你不应该将敏感的数据存放在这些系统上)。

这也使一种特定的计算机系统成为了使用EFS的主要场合:笔记本电脑。如果在你的网络上的笔记本电脑用户必须在这些系统上存放敏感数据,那么必须对这些数据进行加密。如果你将在上面使用EFS技术,则应当保证你遵循了微软的最佳方法,并且将私有密钥从操作系统中提取出来存放在软盘上,或者采用更好的办法存放在智能卡上。同样,如果需要此功能你最好使用Windows XP系统,原因是在物理控制的系统上去除EFS相对简单,那些阻止使用EFS的步骤在Windows 2000系统上则无法实施。我随后会解释这点。

从Win2K/XP工作站中移除EFS
如果发现EFS并不适用于你的网络环境,你需要在Windows 2000或Windows XP系统上禁用EFS。我将首先介绍在Windows 2000上的禁用过程。

Windows 2000
微软保证恢复加密的数据是可能的,即使你偶然删除了加密该文件的用户帐号。要恢复数据,需要有一个用户在每个Windows 2000系统上被指定作为一个恢复代理。按照默认设置,该用户就是管理员。这意味着按照默认设置,系统管理员可以解密任何在本地系统上被加密的文件。这同时也将攻破Windows 2000系统的EFS保护提供了一个简单的方法。如果笔记本计算机失窃,那么窃贼只要用管理员帐户登录就可以访问到加密数据。而以管理员帐户访问系统很简单,只需要用含有Winternals 的NTFSDOS工具的软盘启动系统,然后删除SAM文件使系统管理员密码为空即可。即使是其他帐户被作为恢复代理,现在已经具备管理员身份的窃贼可以改变帐户的密码并以该帐户登录。因此,不但需要把笔记本电脑上使用EFS的用户私有密钥存放在软盘或智能卡上,而且还需要保存恢复代理帐号信息。这种情况使得ESF在实际使用过程中显得非常不方便。

为什么不删除恢复代理呢?原因是这会禁用Windows 2000系统上的EFS。当然,你也可以用这样的方法特意禁用EFS。如图B,打开本地系统安全策略,然后将系统管理员认证从标记为Encrypted Data Recovery Agents(加密数据恢复代理)的文件夹上删除。

图B

Windows XP
Windows XP被设计为允许删除恢复代理,由此对Windows 2000中弱点进行了改进。对于那些希望在自己的笔记本计算机上使用EFS的用户来说是个好消息。但这也意味这你必须寻找一种不同的方法以在Windows XP上禁用ESP。我们仍然利用组策略来禁用位于一个活动目录网络中XP系统上的EFS,但首先必须将一个管理员模板导入到域组策略中。如果在这之前你从未创建过一个.adm文件,不用担心,这是一个简单的过程。首先,将列表A中的文本复制粘贴到记事本中的一个文本文件中。

现在将此文件以efs-disable.adm命名保存。对域引入组策略【如果你不熟悉这个过程,右键单击AD Users And Computers(活动目录用户和计算机)工具中的域,然后选择Properties(属性)。单击Group Policy(组策略)选项卡然后单击Edit(编辑)】。在对域引入组策略后,打开计算机配置框。左键单击Administrative Templates(管理模板)文件夹。你可以看到Add/Remove Templates(添加/删除模板)选项。选择该选项然后单击Add(添加)按钮。找到你刚刚创建的.adm文件,然后单击Open。再单击Close。现在你已经完成了所有的设置。你可以看到在Administrative Templates下有一个名为Special EFS Handling(特殊EFS句柄)的目录。

图C

将Disable XP and .NET EFS(禁用XP和.NET EPS)设置为允许(如图C所示)。在本域中所有的XP系统都将禁用EFS。这一发生在本地系统Windows XP Professional系统组策略的过程不会在一个运行SP1的ADS环境下生效。你可能会看到如图D所示的错误信息。

图D

如果经过测试你发现该方法在本地XP系统上不起作用,你可以通过如下内容的.reg文件手动修改注册表: [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/ CurrentVersion/Efs]"EfsConfiguration"=dword:00000001

双击该.reg文件,然后选择将其导入到注册表中。我已经在没有运行SP1的系统上成功测试了此方法。

在做好充分准备并正确使用的前提下,EFS可以在本地网络添加你所需要的额外的安全性。希望在阅读本文之后,你能够更加容易的判断是否应该使用EFS技术。如果的确认为需要采用该技术,你需要仔细浏览微软同此主题相关的白皮书,并且回顾其最佳实现方法的具体步骤。在EFS广告上微软让大家感到它易于使用,而白皮书则会提供给你正确配置EFS所需的更多的信息。

原创粉丝点击