攻击和应对措施:加密文件的其他保护机制
加密文件的任何用户应该认识到潜在的脆弱性和各种攻击方法。就像仅仅锁住房屋前门而没有考虑到后门和窗户也会成为窃贼的通路一样,确保保密性单靠文件加密也不够。
· 使用深度防御且使用文件许可。使用 EFS 并不排斥使用文件权限来限制文件访问。除了 EFS 之外,还应该使用文件权限。如果用户获得加密密钥,就可将它们导入到自己的帐户中,然后解密文件。然而,如果拒绝该用户帐户访问这个文件,用户试图获取其中的敏感信息时就会失败。
· 使用文件权限来拒绝删除。可以删除加密文件。如果攻击者无法解密文件,则有可能选择删除该文件。攻击者不能得到其中的敏感信息,也让用户无法拥有该文件。
· 保护用户凭据。如果攻击者找到了可以进行文件解密的用户的标识和密码,攻击者就可像用户那样登录进来,读取文件。因此,保护这些凭据尤为重要。为了保护这些凭据,可以采用强密码策略,训练用户使用强密码,采用最佳实践保护这些凭据,这些都有助于防止此类攻击的发生。有关密码策略的最佳实践方法,参阅 Windows Server 2003 的 产品文档。如果帐户密码被破坏,任何人都可以使用该用户标识和密码登录进来。一旦用户登录成功,他们就可以对该用户帐户有权解密的任何文件进行解密。最佳防御方法就是采用强密码策略、用户教育以及进行全面的安全实践。
· 保护恢复代理凭据。类似地,如果攻击者可以作为恢复代理进行登录,并且恢复代理私钥没有删除掉,攻击者就可以读取文件。最佳实践就是在恢复策略中,要指示删除恢复代理密钥,将该帐户限制于只许进行恢复工作,小心保护凭据。这一节是关于恢复操作和最佳实践的,详见下列步骤。
· 找出有可能存在加密文件的明文副本或者加密文件的部分明文副本的那些区域,并进行严格管理。如果攻击者拥有或者可以访问驻留加密文件的计算机,他们就有可能从这些区域中恢复敏感数据,包括下列内容:
· 数据碎片(数据残余),在加密以前未加密过的文件之后依然存在(参见“特别操作”本文内容中有关使用 cipher.exe 进行删除的一节)
· 分页文件(参见增强打开加密文件的安全)Windows XP Professional 资源工具包中的文章,也可作为如何清除关机时的分页文件的指南和附加信息)
· 休眠文件(参见“增强打开加密文件的安全” http://www.microsoft.com/technet/prodtechnol/winxppro/reskit/prnb_efs_qyxz.asp)
· 临时文件(用来确定应用程序存放临时文件且加密这些文件夹的位置,且解决此问题
· 打印机后台打印程序文件(参见“特别操作?一节)
· 使用系统密钥提供额外的保护。使用 Syskey 可以为密码值和在本地安全机构 (LSA) 所保护的数值(如用来保护用户的主密钥加密密钥)提供额外的保护。请参阅文章使用系统密钥,即 Windows 2000 资源工具包的加密文件系统一节。Syskey 的用法、受 Syskey 保护的 Windows 2000 计算机可能遭受的攻击以及应对措施,这些内容位于文章Windows 2000 Syskey 和加密文件系统中所谓的脆弱性的分析
使用 SMB 文件共享和 WebDAV 进行加密文件的远程存储
如果用户策略要求将数据存储在文件服务器,而不是台式机系统中,用户则需要选择策略。有两种可能性可选——要么存储在文件服务器的常规共享文件夹中,要么使用 Web 文件夹。这两种方法都需要进行配置,且用户应该认识到它们各自的利弊。
· 如果将加密文件存储到远程服务器中,服务器必须按照这个目标去配置,且应该采用其他方法,如 IP 安全 (IPSec) 或者安全套接字层 (SSL),保护文件传输。有关服务器配置方面的说明,请参阅 恢复服务器中的加密文件 Q(283223) 和“如何加密远程 Windows 2000 Server 上的文件和文件夹” Q(320044).然而,后者没有提及一个重要步骤,即 Active Directory 中必须信任远程服务器,以便进行委派。事实上,可以发现许多文章都省略了这一步。如果 Active Directory 中不信任远程服务器,不进行委派,而用户希望将文件保存到远程服务器中,则结果为显示“拒绝访问”出错信息。
· 如果用户需要以明文方式将加密文件存储到远程服务器中(本地副本为密文),用户就可以实现。然而,服务器必须按照这个目标去配置。用户也应该认识到,服务器如果这样配置的话,该服务器就不可保存加密文件。请参阅文档“如何防止文件复制到服务器时被加密 Q(302093).
· 在 Windows XP 或者 Windows Server 2003中,可以在Web 文件夹中存储加密文件。Windows XP Professional 资源工具包中有一节“ Web 文件夹环境中的远程 EFS 操作”对此进行了说明。
· 如果用户的 Web 应用程序需要身份验证才能访问 Web 文件夹存储的 EFS 文件,使用 Web 文件夹存储 EFS 文件以及需要身份验证才能进行访问的这些规则详见“如何在 Internet 信息服务中使用加密文件系统 (EFS)” Q(243756)。
适用于SOHO 和小型公司的最佳实践
一旦用户了解了 EFS 的基本内容,且确定了如何使用 EFS,用户应该利用这些文档,将它们作为测定设计最佳解决方案的清单。
· 加密文件系统的最佳实践 Q(223316) 列出了多个最佳实践。
· 最佳实践:Windows 2000 资源工具包,管理流程 Windows 2000 资源工具包中 “EFS” 一节中的文章,充分阐述了必选或者可选的管理流程,包括启用恢复、禁用 EFS、恢复、配置代理策略以及查看恢复代理信息。这些都是有关管理员的最佳实践。
· 加密文件系统的最佳实践包含在 Windows 2000 Server 产品文档中。
· 本白皮书Windows XP 和 Windows Server 2003 中的加密文件系统提供许多有关不同 EFS 技术方方面面的说明,以及管理加密的有效实践。
企业须知:如何使用 PKI 实施数据恢复策略,如何使用 PKI 进行密钥恢复
默认地,EFS 证书都是自签名的,也就是说,这些证书不需要从 CA 获得证书。用户第一次加密文件时,EFS 搜索一个已存在的 EFS 证书。如没有发现,它就到域中搜索 Microsoft 企业级 CA。如果找到一个 CA,就向该 CA 发出证书请求;如果没有找到 CA,就创建自签名证书,并使用该证书。然而,如果有 CA 的话,就可对 EFS(包括 EFS 证书和 EFS 恢复)进行更加详细的控制。用户可以使用 Windows 2000 或者 Windows Server 2003 的证书服务。下列文章说明了:
· 在加密文件服务中如何使用证书颁发机构 Q(223338) 列出了使用 CA 的三个理由。
· 如何使用 Cipher.exe 使用工具,将自签名证书迁移为证书颁发机构颁发的证书 Q(295680) 说明了使用 cipher /k 命令将存档自签名证书,且向 CA 请求新的 EFS 证书。
· 用户、EFS和管理员证书 支持使用 EFS;恢复代理证书是恢复操作的必选项。
· 公钥体系 (PKI) 证书服务的实施方法,详见文章加密文件系统 (EFS) 的循序渐进指南和证书服务实施示例:密钥存档和恢复。
疑难解答
如果理解 EFS 的工作原理,EFS 的疑难解答就会变得非常简单。多个常见问题,都是由众所周知的原因引起的。下面就是几个常见问题及其解决方案:
· 用户更改用户标识和密码后,就无法再解密文件。针对这个问题有两种可行的方法,具体取决于用户。首先,如果用户帐户简单改名且密码重新设置,问题就在于用户是在使用 XP,这种反应是预期中的。当管理员重新设置 XP 用户帐户密码时,就会删除帐户和 EFS 证书以及密钥的关联信息。将密码改回为原来的密码,就可以恢复解密文件的功能。更多的信息,请参阅用户在修改密码后或者使用漫游配置文件时无法访问 EFS 加密文件 Q(331333),它解释了如果管理员修改了密码,XP Professional 加密文件为何不能解密,即使是用原来的帐户。该主题也包含在密码重置后,EFS、凭据、证书私钥就会失效 Q(290260).其次,如果帐户确实完全不同(帐户被破坏或者无意中删除),则用户要么导入用户密钥(如果以前导出过),要么请求管理员使用恢复代理密钥(如果采用的话)来恢复这些文件。恢复密钥的有关信息,详见如何在 Windows 2000 中为加密数据恢复恢复加密文件系统的私钥 Q(242296)。如何使用恢复代理来恢复文件,包含在五分钟安全顾问——使用 EFS 恢复加密数据
· 用户格式化硬盘,重装操作系统,并不能解密用户的加密文件。除非用户导出了 EFS 密钥,或者存在恢复代理并且这些密钥可用,否则,用户不能解密文件。如果拥有用户密钥或者它们的恢复代理,那么应该可以导入用户密钥,进行文件解密,或者导入恢复代理密钥(如果必需的话),恢复文件。导入密钥的方法,请参见如何在 Windows 2000 中为加密数据恢复恢复加密文件系统的私钥 Q(242296)。用户可以在 Windows 2000 中使用 esfinfo.exe 或通过查看 XP Professional 或者 Windows Server 2003 的高级文件属性确定文件的恢复代理是谁。
· Windows XP Home 计算机中没有文件属性页的高级按钮,因此,用户不能将文件标记为加密。由于 Windows XP Home 没有 EFS,因此,它不需要解决方案。
其他一些常见问题必须解决用户为什么会遇到“拒绝访问”出错信息这类情形。(原因在于用户试图访问其他人加密的文件。)然而,到目前为止,用户遇到的最大问题就是磁盘破坏之后如何恢复 EFS 文件。EFS 的其他问题参见下列文章:
· Windows 2000 资源工具包的 EFS 疑难解答 一节中,包含有病毒检测程序为何只能检测当前用户加密的文件的说明。
· 修复:错误文本“升级期间没有 EFS 密钥” Sqlstp.log中错误号6006 Q(299494) 解释了 SQL Server 升级时与 EFS 无关的出错信息。
· 使用漫游配置文件的用户不能在域控制器中使用 EFS Q(311513) 解释了 Windows 2000 SP3 中的修复方法。
· 打开 EFS 文件时,该文件看起来已经破坏 Q(329741) 解释了 SP1 之后的 Windows XP Professional 所用的不同加密算法,以及如果采用早期版本的操作系统来打开文件为何会出现数据看起来已经破坏或者丢失。也详述了如何使用 XP 的注册表项来控制采用哪个算法。
· 当改写配置文件时,EFS 密钥对的私钥有可能不再可用。这就是EFS 恢复代理不能导出私钥 Q(259732)的原因。
· 在生产计算机中不应该使用 Sysprep。包含EFS 有关问题的两篇文档为,Sysprep.exe 可以重新启用加密文件系统 Q(294844) 和 使用Sysprep.exe之后无法访问加密文件 Q(288348),这两篇文档详述了 Sysprep 是如何更改管理员和用户帐户的 SID 的。
· 如何在 Windows XP 中加密文件 Q(307877) 包含有用户在打开其他用户加密过的文件时会碰到的出错信息和警告信息。
· “拒绝访问”加密或者解密文件夹时遇到的出错信息 Q(264064) 解释了如果系统属性是阻止文件解密的原因且系统属性就是问题的关键时如何删除系统属性。(请注意,无论怎样,不应该加密系统文件。此处所述的流程是针对无意中选中了系统属性的文件夹而言。)
· 加密文件可以使用 Ntbackup 来备份,且仍然为加密状态。这些文件不能还原为 FAT 或者 FAT32 卷格式。照此操作就会导致出错信息“警告:恢复目标设备。. . 恢复阶段出错信息” Q(245044)。
· Windows 2000 中开始加密文件之后暂停登录过程 Q(269397) 说明了,如果用户对 Autoexec.bat 之类的系统文件进行加密,由于在该文件要在登录之前进行处理,因此无法解密。
· 不能在安装有多个 Windows 2000 的计算机上打开加密文件 Q(256168) 说明了,从不同的操作系统启动意味着用户是不同的用户,因此无法解密加密文件。
· 当通过标记含有多个文件和/或文件夹的文件夹为加密,或者使用 Cipher 命令来同时加密多个文件时,用户会收到 试图加密多个文件或者文件夹时的出错信息 Q(227465)。
· 出错信息“拒绝访问”当启动最近安装的应用程序时 Q(272412) 可能是临时性文件夹被加密的结果。
· 恢复服务器上的加密文件 Q(283223) 解释了,如果用来远程加密服务器上的文件的帐户没有漫游配置文件,将会生成配置文件,且创建新密钥对和证书。它意味着,这些密钥不同于本地计算机上所用的密钥。
· 无法访问 Microsoft 加密文件系统 Q(243850) 说明了强制性配置文件不能存储密钥。
· 用户更改密码之后无法访问受保护的数据 Q(322346) 说明了,当文件加密时更改密码尽管没有连接到域也会无法访问现存的原始密码。
EFS 基本知识:使用 EFS 加密数据库,且配合 Microsoft 其他产品使用 EFS
“XGEN:使用 Windows 2000 加密文件系统加密 Mdbdata 文件夹和内容 Q(233400) 说明了如何使用 EFS 来加密 Exchange Server 5.5 数据库。
保证 SQL Server 2000 的安全 说明了如何使用 EFS 来加密 SQL 数据库,只是作为一项可能的安全配置,但是没有提供具体方法也没有进行讨论。
故障恢复
用户应该规划 EFS 故障恢复,将它列为业务持续运行规划的一部分。有三个问题需要注意:
· 在 Windows 2000 网络中,使用恢复代理和存档用户以及恢复代理密钥。
· 备份加密文件应该是最佳实践的部分内容。备份系统状态也非常重要,因为它通过恢复用户配置文件(其中含有密钥),从而有可能进行恢复。
· 在使用证书服务提供 EFS 证书的 Windows 2000 网络中,以及在采用 EFS 证书和进行密钥存档的 Windows Server 2003 网络中,故障恢复规划也应该包含有证书服务的恢复规划。Windows 2000 资源工具包文章故障恢复操作提供了一些详细信息。