理论教育 WindowsEFS使用指南

WindowsEFS使用指南

时间:2023-11-24 理论教育 版权反馈
【摘要】:加密文件系统是Windows的一项功能,用于将信息以加密格式存储在硬盘上。在早期的Windows系统中,所使用的加密算法是DES-X算法,Windows XP sp1及其后的其他Windows系统多采用AES算法。系统还会对EFS添加两层保护措施:Windows会用64 Byte的主密钥对私钥进行加密。下面简单演示一下Windows 7系统中EFS的基本操作。这里为Windows系统创建一个管理员账户。

WindowsEFS使用指南

加密文件系统(EFS)是Windows的一项功能,用于将信息以加密格式存储在硬盘上。EFS 加密方法十分简单,只需选中文件或文件夹属性中的复选框即可启用加密。如果修改加密文件的内容,在关闭文件时文件即被加密,但是当打开这些文件时,文件将会自动处于备用状态。如果不再希望对某个文件实施加密,清除该文件的属性中的复选框即可。注意,EFS只能在使用 NTFS 文件系统的计算机上工作。如果要加密的文件位于使用FAT或FAT32文件系统的驱动器上,则需要将该驱动器转换成NTFS才会出现“高级”按钮

EFS加密综合使用了对称加密和非对称(或公钥)加密:

(1)随机生成一个文件加密密钥(叫作FEK),用来加密和解密文件。在早期的Windows系统中,所使用的加密算法是DES-X算法,Windows XP sp1及其后的其他Windows系统多采用AES算法。

(2)这个FEK会被当前账户的公钥进行加密,加密后的FEK副本保存在文件$EFS属性的DDF字段里。所采用的公钥加密算法是RSA算法。

(3)要想解密文件,首先必须用当前用户的私钥去解密FEK,然后用FEK去解密文件。

看到这里,似乎EFS的脉络已经很清晰,其实不然,这样还不足于确保EFS的安全性。系统还会对EFS添加两层保护措施:

(1)Windows会用64 Byte的主密钥(Master Key)对私钥进行加密。在Windows 7下,加密后的私钥保存在以下文件夹:%UserProfile%\AppData\Roaming\Microsoft\Crypto\RSA\SID。

(2)为了保护主密钥,系统会对主密钥本身进行加密(使用的密钥由账户口令派生而来)。加密后的主密钥保存在以下文件夹:%UserProfile%\AppData\Roaming\Microsoft\Protect\SID。

整个EFS加密的密钥架构就是:“由用户账户口令派生的密钥”加密“主密钥”→“主密钥”加密用户的“私钥”→“私钥”解密FEK(文件加密密钥)→FEK解密被加密的文件。

下面简单演示一下Windows 7系统中EFS的基本操作。

(1)在NTFS文件系统的某个文件夹下创建一个文本文件。

例如,在D:盘根目录下创建一个名字为“cryptme.txt”的文本文件,文件内容为“You can not see me!”。

因为首次启用EFS加密后,系统会自动为当前账户创建一个文件加密证书。所以,我们先来确认一下,系统目前还没有这样的证书。查看方法如下:“控制面板”→“网络和Internet”→“Internet选项”→“内容”→“证书”→“个人”。主要截图如图2-14和图2-15所示。很明显,目前证书对话框的“个人”标签下是空的,还没有任何证书存在。关闭打开的对话框。

图2-14 Internet属性对话框

图2-15 证书对话框

(2)加密cryptme.txt文件。

在cryptme.txt文件上单击右键,选择“属性”→“常规”→“高级”,如图2-16所示。然后选择“加密内容以便保护数据”,使用“确定”按钮关闭“高级属性”及“cryptme属性”对话框。之后不久,你会发现文件cryptme.txt的名称变成绿色。同时任务栏给出“备份文件加密密钥”的提示,这是一种防止某些情况下,被加密文件无法被解密的安全措施,如图2-17所示。

图2-16 文件的高级属性对话框

图2-17 文件的高级属性对话框

打开文件cryptme.txt,其内容可以正常显示,如图2-18所示。在对应的账户下打开加密文件时,文件将会自动解密。 (3)查看文件加密证书并备份它和密钥。

图2-18 打开cryptme.txt文件(www.daowen.com)

前面说过,首次启用EFS加密后,系统会自动为当前账户创建一个文件加密证书。现在我们已经使用EFS加密了一个文件,使用步骤(1)中介绍的方法,我们先来确认一下这个证书是否已经生成。很明显,目前证书对话框的“个人”标签下出现了一个证书,并且该证书的预期目的是“加密文件系统”,如图2-19所示。

图2-19 证书对话框出现了EFS证书

单击“查看”按钮,可以查看该证书的相关信息,如图2-20所示。可以发现,系统在为当前账户创建文件加密证书(里面包含公钥)的时候,也生成了一个对应的私钥。另外,证书的签名算法是RSA和SHA-1。

图2-20 EFS证书的相关信息

根据前面的介绍,文件加密证书中的公钥将用于解密用私钥加密的FEK密钥,进而可以使用FEK密钥来解密被加密的文件。如果发生了当前账户的文件加密证书丢失或当前账户被删除等情况,会导致先前使用EFS加密的文件无法被解密。所以,最好备份文件加密证书和密钥,以便于在当前账户的相关信息丢失的情况下能够恢复被加密的文件。

有两种方法用来备份文件加密证书和密钥,二者只是启动的方式和界面有些不同,本质上是一样的。一种是单击任务栏上的“备份文件加密密钥”按钮,如图2-17所示。另一种是单击图2-19的窗口中的“导出”按钮并选择导出私钥。这里仅演示第一种方法。单击任务栏上的“备份文件加密密钥”按钮,在弹出的对话框中选择“现在备份(推荐)”,单击“下一步”,直到要求输入密码(即口令),输入一个口令(如“123456”,要记住这个口令,后面会用到),然后指定要导出的文件名及路径,如d:\cert。单击“下一步”,如图2-21所示。单击“确定”,导出完成。

需要说明的是,此处仅为了演示方便才把导出的证书文件放到D:盘根目录下。正确的做法应该放到其他盘上,如U盘,并保护起来。

图2-21 备份文件加密证书和密钥

(4)从其他账户访问被加密的文件,验证别人无法看到自己加密的文件内容。

如果系统只有一个账户的话,需要添加其他账户。这里为Windows系统创建一个管理员账户(“标准用户”或“管理员”都可以)。在Windows 7下,创建新账户的方法如下:“控制面板”→“用户账户和家庭安全”→“用户账户”→“管理其他账户”→“创建一个新账户”。新账户名为“test”,如图2-22所示。单击“创建账户”,完成账户的创建。

图2-22 创建新账户[1]

图2-23 切换系统账户

图2-24 切换系统账户

单击Windows“开始”按钮,选择“切换用户”,如图2-23所示。在随后出现的界面中选择新创建的test账户,以账户test登录系统。然后尝试打开D:盘中的cryptme.txt文件,显示拒绝访问,如图2-24所示。这其实是Windows对加密文件的额外保护机制。 如果我们使用特殊的工具把cryptme.txt复制出来,再次打开的话,会发现内容变成了乱码。这里使用WinHex工具复制该文件到D:\Share文件夹下。方法如下:以管理员身份运行WinHex →打开D:盘(创建快照)→右键单击该文件cryptme.txt→选择Recover/Copy→选择复制目的地D:\Share完成复制。在Windows中打开D:\Share中的文件cryptme.txt。内容显示如图2-25所示。这说明,EFS加密了这个文件,也意味着,即使其他人窃取了这个文件,也无法看到文件的原始内容。

图2-25 打开cryptme.txt文件显示乱码

(5)在其他账户中导入文件加密证书和密钥,并再次访问被加密的文件。

在test账户下双击第(3)步导出的证书文件cert.pfx,单击两次“下一步”,输入口令“123456”,按默认设置完成该证书的导入。

再次尝试打开被加密的文件cryptme.txt,现在可以顺利打开它了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈