摘自本人编写,由清华大学出版社出版的《Windows Server 2008 部署与管理实战教程》

4.4 加密文件系统

加密文件系统(Encrypting File System,简称为EFS)是NTFS文件系统的一种特性,我们只需在NTFS文件系统的分区中即可对文件或文件夹启用加密特性,从而达到保护数据的机密性要求。同时,因EFS是Windows操作系统的一种功能,我们无须安装额外的加密软件,不仅使用方便,也节约了成本。

加密文件系统(EFS)被Windows 2000及其后的Windows版本支持(windows xp home除外),其提供了一种安全的“本地”信息加密服务,所谓“本地”即EFS不能对传输中的数据进行加密,只能运用于存储在磁盘上的数据的加密。

加密文件系统 (EFS) 加密强度非常高,如果用户无权访问解密信息所必需的**时,即使再安装了另一个系统,也无法使用加密的文件。而当拥有了加密者加密文件证书或作为EFS恢复代理,则可以直接访问加密文件而无须手动解密。

4.4.1 EFS的工作原理

EFS的加密和解密同时采用了对称加密和基于公钥的加密算法。在进行加密时,首先用采用文件加***去加密数据,然后用用户的公钥或恢复代理的公钥去加密文件加***。解密时,首先用用户的私钥或者恢复代理的私钥去解开文件加***,然后用文件加***去解开加密的数据。

从加密和解密过程中,我们可以看到对文件进行加密和解密的是一把文件加***,这是一种对称加密;而对文件加***进行加密和解密时用到的是公钥/私钥对,这是基于公钥策略的加密。

当用户第一次采用EFS去加密文件时,系统会给用户颁发一张“加密文件系统”证书,这种书可用于加密磁盘上的数据,同时这张证书也关联了一个对应的私钥。

在使用加密文件系统(EFS)时需要注意以下事项:

  • EFS是NTFS文件系统的一个特性,只能在NTFS 卷上才能启用EFS对的文件和文件夹进行加密。
  • EFS加密是基于单用户的加密。
  • EFS只能加密存储在磁盘上的数据,不能用于加密传输中的数据。
  • EFS加密和NTFS文件压缩功能只能选其中一个。如果要加密压缩的文件或文件夹则会将该文件或文件夹自动解压缩。
  • 如果将EFS加密的文件或文件夹复制或移动到其它非NTFS分区或卷上,则EFS加密特性自动消失。
  • 无法加密标记有系统属性的文件,也无法加密系统根目录结构中的文件。
  • 文件加密时采用对称**,对对称**的保护采用基于公钥的策略。
  • 文件加密证书可以存档。即我们可以将证书进行导出和导入操作。

4.4.2 采用EFS加密文件

可以采用EFS加密文件,也可以加密文件夹。一般的做法时,首先加密一个文件夹,然后文件夹中的子对象或新建立对象自动被加密。

现在我们让用户u1来加密一个文件夹u1data,加密过程如下:

Windows Server 2008 加密文件系统

1. 以用户u1凭据登录到计算机,在资源管理器中右击需要加密的文件夹u1data,在弹击菜单中选择【属性】选项。

2. 在【常规】选项卡中单击【高级】按钮,在【高级属性】对话框中选择【加密内容以便保护数据】选项,然后单击【确定】按钮。如图4.32所示。

Windows Server 2008 加密文件系统

图4.32 加密文件夹

注意:

Windows Server 2008 加密文件系统若要对已加密的文件或文件夹进行解密,只需在如图4.32的压缩和加密属性中去掉【加密内容以便保护数据】选项即可。

3. 在【确认属性更改】对话框中,选择【将更改应用于此文件夹、子文件夹和文件】选项,然后单击【确定】按钮。如图4.33所示。

Windows Server 2008 加密文件系统

图4.33 确认属性更改

4. 完成加密后,系统将在任务栏上提示备份文件加密证书和**。单击提示框,选择【稍后备份】选项,以便我们将来进行手动备份。如图4.34所示。

Windows Server 2008 加密文件系统

图4.34 稍后备份

4.4.3 备份文件加密证书和**

当我们对计算机上的数据进行了加密,需要及时对加***进行备份。否则一旦出现误操作,如管理员误删除了加密者的帐号,或重装了系统等,加密的数据将无法被读取。所以我们建议大家在完成了数据加密后,应导出文件加密证书**以作备份。

在导出加密文件系统证书时,需要选择导出的文件格式。可供选择的证书格式包括以下类型:

  • DER 编码的二进制X.509:这种格式的证书支持互操作性,扩展名为 .cer。
  • Base64 编码的 X.509:主要用于“安全/多用途Internet邮件扩展(S/MIME)”,支持互操作性,扩展名为 .cer。
  • 加密消息语法标准(PKCS #7):采用这种格式可以将某个证书以及其证书路径中的所有证书在计算机间进行传输,也可以从计算机传输到可移动媒体。
  • 个人信息交换(PFX,也称为 PKCS #12): 这种格式允许证书及相关私钥从一台计算机传输到另一台计算机或可移动媒体。在Windows系统中如果要备份证书及其关联的私钥,只能采用这种格式。

现在我们以加密者user1为例进行证书的导出操作。

Windows Server 2008 加密文件系统

1. 以用户u1凭据登录到计算机,依次单击【开始】→【运行】,然后在【运行】对话框中输入“MMC”,输入完毕后单击【确定】按钮以打开微软管理控制台。

2. 在微软管理控制台中,选择【文件】→【添加/删除管理单元】菜单,在【添加或删除管理单元】左框列表中选择【证书】,单击【添加】按钮。

3. 在【证书管理单元】对话框中选择【我的用户帐户】,然后单击【完成】按钮。如图4.35所示,再次单击【确定】按钮完成证书管理单元的添加。

Windows Server 2008 加密文件系统

图4.35 添加证书管理单元

4. 在控制台树中,展开【证书 - 当前用户】,单击【个人】→【证书】,在中间的详细窗格中,可以看到用户u1的加密文件系统证书。双击证书,在常规选项卡中可以看到证书的目的为“允许加密磁盘上的数据”,并且该证书有一个相关联的私钥存在。如图4.36所示。

Windows Server 2008 加密文件系统

图4.36 加密文件系统证书

5. 右击证书,在弹出菜单中选择【所有任务】→【导出】以进入证书导出向导。如图4.37所示。

Windows Server 2008 加密文件系统

图4.37 导出证书

6. 在【导出私钥】对话框中,选择【是,导出私钥】选项,然后单击【下一步】按钮。如图4.38所示。

Windows Server 2008 加密文件系统

图4.38 导出私钥

7. 在【导出文件格式】对话框中,选择【个人信息交换 - PKCS #12】选项,然后再选择【如果可能,则数据包括证书路径中的所有证书】以及【如果导出成功,删除私钥】选项,选择完毕后单击【下一步】按钮。如图4.39所示。

Windows Server 2008 加密文件系统

图4.39 导出文件格式

8. 在【密码】对话框中,输入并确认用以保护**的密码,然后单击【下一步】按钮。

9. 在【要导出的文件】对话框中,键入将存储所导出的证书和私钥的 PKCS #12 文件的文件名和路径。单击【下一步】按钮,然后单击【完成】按钮。

10. 系统弹出导出成功消息框,单击【确定】按钮完成证书及其关联的私钥的导出。

注意:

Windows Server 2008 加密文件系统在“证书导出向导”完成时,加密文件系统证书仍然保留在证书存储区中。如果有更强的安全需求,可以将证书从存储区中删除。当需要时再从备份中导入。

4.4.4 通过导入证书读取加密文件

在前面的示例中,用户u1加密了自己的文件夹u1data。当别的用户要读取u1加密的文件时,需要有用户u1加密文件系统证书或者通过文件恢复代理才能成功读取。

本小节将以用户u2为例,为了读取用户u1加密的文件,他从u1处获取了加密文件系统证书并导入。

Windows Server 2008 加密文件系统

1. 以用户u2凭据登录到计算机,在资源管理器中进入文件夹u1data,然后读取其中一个文件,在读取进将会出现“拒绝访问”消息框。如图4.40所示。

Windows Server 2008 加密文件系统

图4.40 拒绝访问

2. 双击u1导出的证书进入证书导入向导,在【密码】对话框中输入用户u1在加密私钥时键入的密码。如图4.41所示。

Windows Server 2008 加密文件系统

图4.41 输入密码

注意:

Windows Server 2008 加密文件系统如果要使用加强私钥保护,需要选择“启用强私钥保护”复选框。如果要在以后备份或传输**,则要选择“标记**为可导出”复选框。

3. 在【证书存储】对话框中,选择【根据证书类型,自动选择证书存储】选项,然后单击【下一步】按钮,再次单击【完成】按钮。

4. 在“导入成功”消息框中,单击【确定】按钮,按钮完成证书的导入。

5. 在导入了用户u1的证书后,用户u2再次在资源管理器中进入文件夹u1data,然后读取其中一个文件,将会成功读取该文件。如图4.42所示。

Windows Server 2008 加密文件系统

图4.42 成功读取文件

4.4.5 通过恢复代理读取加密文件

当加***损坏或丢失时,我们将可能无法打开加密的文件,但如存在故障恢复代理,则这一问题也将应刃而解。

所谓故障恢复代理,指的是指定用于进行EFS加密文件恢复的用户帐户。我们首先要选出一位故障恢复代理人,给它们颁发一张“文件故障恢复”证书以及之关联的公钥/私钥对,然后在组策略中设置指定用户为故障恢复代理人。

当某个用户被设置为故障恢复代理人后,将来任何用户在进行文件加密时,都会自动把故障恢复代理证书的**也加入。也就是说故障恢复代理人可用自己的**打开所有用户用EFS加密的文件了。

我们可以用“cipher”命令来生成指定用户的恢复代理证书和**。“cipher”命令可以用来进行EFS文件加密和解密,也可以用来生成恢复代理证书和**。我们可以通过帮助了解到这个命令的用法。

命令输出如下:

E:\Users\Administrator>cipher /?

显示或更改 NTFS 分区上的目录[文件]的加密。

  CIPHER [/E | /D | /C]

         [/S:directory] [/B] [/H] [pathname [...]]

  ……

  CIPHER /REKEY [pathname [...]]

    /B        如果遇到错误则中止。  在默认方式下,即使遇到错误,

              CIPHER 也会继续执行。

  ……

    /R        生成一个 EFS 恢复代理**和证书,然后将它们写入一个 .PFX 文件

              (包含证书和私钥)和一个 .CER 文件(只包含证书)。管理员可以向 EFS

              恢复策略添加 .CER 内容,为用户创建恢复代理并导入 .PFX 来恢复单

              独文件。

  ……

从以上的输出结果中,我们看到通过参数“/R”可以生成恢复代理证书和**。现在我们以将用户u3设置为文件故障恢复代理为例进行说明。

Windows Server 2008 加密文件系统

1. 以用户u3凭据登录到计算机,在命令提示符窗口中输入命令“cipher /r:f:\pub\u3rec”,表示证书和**将在F盘的pub文件夹中生成,并取名为u3rec。操作结果如下:

    E:\Users\u3>cipher /r:f:\pub\u3rec

    请键入密码来保护 .PFX 文件:

    请重新键入密码来进行确认:

    .CER 文件已成功创建。

    .PFX 文件已成功创建。

2. 以管理员凭据登录到计算机,在命令提示符窗口中输入命令“gpedit.msc”以打开组策略编辑器。在【本地组策略编辑器】中,依次展开【计算机配置】→【Windows设置】→【安全设置】→【公钥策略】→【加密文件系统】。

3. 右击【加密文件系统】,在弹出的菜单中选择【添加数据恢复代理程序】选项以进行添加故障恢复代理设置向导。如图4.43所示。

Windows Server 2008 加密文件系统

图4.43 添加数据恢复代理程序

4. 在【选择故障恢复代理】对话框中,单击【浏览文件夹】按钮,然后通过浏览找到在第一步由用户u3通过cipher命令生成的证书文件,单击【打开】按钮,系统将提示是否需要安装证书消息,单击【是】按钮,从而将用户u3设置为故障恢复代理。如图4.44所示。

Windows Server 2008 加密文件系统

图4.44 选择数据恢复代理

5. 单击【下一步】按钮,再次单击【完成】按钮以完成恢复代理程序的添加。

6. 再次以用户u3凭据登录到计算机,在F盘的pub文件夹中找到在第一步生成的两个证书文件。双击第一个安全证书文件“u3rec.Cer”,在【证书】对话框中单击【安装证书】按钮,并接受安装向导的默认设置完成这个证书的安装。如图4.55所示。

Windows Server 2008 加密文件系统

图4.45 安装证书

7. 安装完第一个证书后,还需安装第二个个人信息交换证书。双击文件“u3rec.pfx”,进入证书导入向导。在【要导入的文件】对话框中,确定导入文件的文件名和路径无误,然后单击【下一步】按钮。

8. 在【密码】对话框中,输入正确的私钥的密码,然后单击【下一步】按钮,并接受向导中的默认设置完成证书的导入。

通过以上的步骤,我们将用户u3设置成为了本地计算机的数据恢复代理,那么用这个帐号就可以找开在此之后所有用户在本地计算机通过EFS加密的文件。

现在我们让用户u1登录再建立一个加密文件,让故障恢复代理人u3去读取这个加密的文件。

Windows Server 2008 加密文件系统

1. 以用户u1凭据登录到计算机,在文件夹u1data中再次建立一个文件“u1f2.Txt”,并在文件属性中启用EFS加密特性。

注意:

Windows Server 2008 加密文件系统EFS加密过程请参考“4.4.2  采用EFS加密文件”,这里不再重复。

2. 在u1f2文件属性的常规选项卡中,再次单击【高级】按钮,在【高级属性】对话框中单击【详细信息】按钮,在用户访问对话框中,我们可以看到用户u3已自动成为该文件的恢复代理了。单击【确定】按钮然后关闭文件属性对话框。如图4.46所示。

Windows Server 2008 加密文件系统

图4.46 用户访问

3. 以用户u3凭据登录到计算机,在文件夹u1data中双击用户u1建立的加密文件“u1f2.Txt”,可以看到成功的打开了加密文件并访问到其中的内容。如图4.47所示。

Windows Server 2008 加密文件系统

图4.47 恢复代理访问测试