永发信息网

为什么在XP中用EFS加密的文件在windows7中打不开(我有备份的密匙)?

答案:1  悬赏:30  手机版
解决时间 2021-05-08 06:17
  • 提问者网友:骑士
  • 2021-05-07 18:24
为什么在XP中用EFS加密的文件在windows7中打不开(我有备份的密匙)?
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-05-07 19:14
在这里,我们可以决定将该属性更改应用给哪些对象。例如,如果希望同时加密或解密该文件夹中包含的子文件夹和文件,可以选择“将更改应用于此文件夹、子文件夹和文件”;如果只希望加密或解密该文件夹,则可以选择“仅将更改应用于此文件夹”。
默认情况下,被加密的文件或文件夹在Windows资源管理器中会显示为绿色,提醒我们注意。如果不希望使用这一特性,那么可以按照下列方法更改默认设置:
1. 打开“计算机”|“我的电脑”,如果是Windows Vista,请按下Alt键,打开菜单栏。
2. 在菜单栏上依次单击“工具”|“文件夹选项”,打开“文件夹选项”对话框,打开“查看”选项卡。
3. 在高级设置列表中,取消对“用彩色显示加密或压缩的NTFS文件”这个选项的选择。

很多人使用EFS加密的时候都吃了亏。上文已经介绍过,EFS是一种公钥加密体系,因此加密和解密操作都需要证书(也叫做密钥)的参与。例如很多人都是这样操作的:在系统中用EFS加密了文件,某天因为一些原因直接重装了操作系统,并创建了和老系统一样用户名和密码的帐户,但发现自己之前曾经加密过的文件都打不开了。
如果仅仅是设置过NTFS权限的文件,我们还可以让管理员获取所有权并重新指派权限,但对于EFS加密过的文件,那就一点办法都没有了,因为解密文件所需的证书已经随着系统重装灰飞烟灭,在目前的技术水平下,如果要在缺少证书的情况下解密文件,几乎是不可能的。
所以要安全使用EFS加密,一定要注意证书的备份和还原,很多人正是因为不了解这个情况而吃亏。好在从Windows Vista开始,当我们第一次用EFS加密功能加密了文件后,系统会提醒我们备份自己的证书,而且操作也相对比较简单。下文会从证书的备份和还原两方面介绍如何在Windows XP和Windows Vista下进行操作。
需要注意的是,每个人的证书都只有在这个人第一次用EFS加密了文件的时候才会自动生成,新创建的用户,如果还没有加密过文件,是不会有证书的。因此我们应当先加密一些临时文件,并立刻将证书备份起来,以便日后需要的时候还原。
在Windows XP中,如果想要备份证书,可以这样操作:
1. 打开“开始”菜单,单击“运行”,打开“运行”对话框,输入“certmgr.msc”并回车,打开证书控制台。
2. 在“证书控制台”窗口左侧的树形图中依次展开到“证书当前用户”|“个人”|“证书”,随后在右侧窗格中会看到当前用户所有的个人证书。
3. 这里需要注意,如果你还进行过其他需要证书的操作,例如访问加密网站,或者使用网络银行系统,这里可能会出现多个证书。我们需要的是“预期目的”被标记为“加密文件系统”的证书,在备份的时候记得不要选错了。
4. 找到要备份的证书后,在该证书上单击鼠标右键,指向“所有任务”,选择“导出”,这将打开“证书导出”向导。
5. 在向导的第一个界面上单击“下一步”,随后向导会询问是否导出私钥。因为我们需要备份该证书,方便日后恢复系统时解密文件,因此这里一定要选择“是,导出私钥”,然后单击“下一步”。
6. 随后可以看到“导出文件格式”对话框。
[attachment=893642]
选择要导出的证书格式



因为是用于加密文件系统的证书,因此证书的格式不可选择,使用默认选项即可。但这里要介绍另外一个选项“如果导出成功,删除密钥”。选中该选项后,系统会在成功导出证书后自动将当前系统里的密钥删除,这样加密的文件就无法被任何人访问了。为什么要这样做?对于安全性要求较高的文件,我们可以把导出的证书利用U盘等移动设备保存并随身携带,只在需要的时候才导入到系统中,平时系统中不保留证书,这样可以进一步防止他人在未经授权的前提下访问机密数据。设置好相应的选项后单击“下一步”。
7. 随后我们需要为证书设置一个密码。注意,这个密码需要在导入证书的时候提供,并且为了安全,建议和自己的帐户密码设置不同。输入好密码后单击“下一步”。


[attachment=893643]
系统用于提醒备份密钥的通知



8. 接着单击“浏览”按钮,为导出的证书选择一个保存路径和名称,并单击“下一步”。
9. 复查所有设置,如果觉得一切无误,就可以单击“完成”按钮,完成导出操作。
在Windows Vista中,如果想要备份证书,可以这样操作:
1. 在Windows Vista中,当一个用户第一次使用EFS加密文件或文件夹后,系统通知区域很快就会显示一个图标,并用气泡通知提醒用户注意备份自己的密钥(如果第一次加密文件时没有理会这个提示信息,那么以后每次登录系统后都可以看见,或者也可以直接运行certmgr.msc,按照上文介绍的Windows XP中的步骤操作)。
2. 单击该通知后,可以看到“加密文件系统”对话框,在这里我们有不同的操作可以选择。
3. 因为我们的目的是备份EFS加密证书,因此直接单击“现在备份(推荐)”,随后可以打开证书导出向导。
[attachment=893644]
选择备份证书的操作



4. 其余的操作和在Windows XP中的基本类似,因此这里不再复述。
导出的证书要记得保存在安全的地方,同时保险起见最好在不同地方保存多个副本。


要想将之前备份的证书还原到新的系统中,操作非常简单,只要双击导出的.pfx文件,系统就会自动运行证书导入向导,在向导的帮助下,我们只要输入导出证书时设置的密码,即可完成导出操作。但在输入密码的时候有两个选项需要注意:
[attachment=893645]
在“证书导入向导”中选择证书的导入选项



启用强私钥保护 如果选中该选项,那么以后每次访问被加密的文件时,因为要用到私钥解密数据,系统都会向我们发出提示,提醒我们注意。
标志此密钥为可导出的密钥 如果选中该选项,那么以后我们将可以从被导入的系统中将证书再次导出。如果导入私钥只是为了便于临时打开加密文件,那么建议不要选择该选项。
经过导入,只要没有发生误操作,那么使用被导入证书加密的文件将可以在新的系统中正常打开。


上文我们已经介绍了EFS的基本用法,但在实际使用中,这些还是远远不够的。因为有些情况下,我们不仅要借助EFS令自己的数据更安全,还要保证一定的可用性,因此下文会通过一些具体的事例告诉你怎样用好EFS加密。


有时候我们可能会希望实现这样的目的:同一个文件被加密后,可以被本机的两个用户使用,每个用户都可以查看和编辑文件的内容,但同时文件依然处于被加密的状态。这种情况下需要使用EFS的共享功能。
该功能在Windows XP和Windows Vista下都可以实现,而且方法几乎是一样的,本文以Windows Vista下的操作为例进行介绍。具体环境是这样的:有两个用户:“刘晖”和“User”,其中刘晖在E盘根目录下创建了一个文本文件,输入了一些内容,保存后将其加密。我们需要做的是让刘晖和User这两个用户都可以查看和编辑该文件,但其他用户无法打开。方法如下(该方法仅适用于单个文件,不适用于整个文件夹):
1. 使用用户“User”登录,在User的桌面上创建一个临时文件,按照上文介绍的方法加密(这样做主要是为了生成用户User的EFS密钥,以便用户刘晖设置共享)。
2. 注销User,使用刘晖登录。打开Windows资源管理器,找到要被共享的EFS加密文件,用鼠标右键单击,选择“属性”,打开“属性”对话框。
3. 在“属性”对话框的“常规”选项卡上单击“高级”按钮,打开“高级属性”对话框,然后单击“详细信息”按钮,打开“用户访问”对话框。
[attachment=893647]
“用户访问”对话框中可设置EFS共享



4. 单击“添加”按钮,打开正在加密文件系统对话框,这里列出了本机上所有具有EFS密钥的用户,从中选择希望共享访问该EFS文件的用户,例如User,然后单击“确定”。
5. 随后在“用户访问”对话框中,可访问这个文件的用户列表中就会显示两个用户。
6. 日后如果希望停止与某个用户共享该EFS加密文件,只需要打开“用户访问”对话框,从列表中选中目标用户,然后单击“删除”按钮,该用户访问这个加密文件的特权就会被删除。
7. 单击“确定”关闭所有打开的对话框。
经过上述操作,用户User重新登录后就获得了打开该加密文件的特权。在使用该方法的时候需要注意,用户User可获得对该加密文件几乎全部的控制权,例如可以把其他用户添加进来,允许其他用户打开该文件,同时User也可以禁止刘晖打开该文件。因此使用这个方法和别人共享EFS加密文件的时候一定要十分小心,以免给了别人访问的特权后,自己反而被排除在外。


上一节介绍的是如何在同一台计算机上共享EFS加密文件,但同时我们有可能遇到了另外一种问题:如何在不同计算机上共享EFS加密文件。例如,公司员工可能需要将未完成的工作文件使用可移动存储设备带回家继续处理。为了防范存储设备失窃导致公司的机密数据泄露,我们可以将文件用EFS加密后带回家,但怎样保证用户在家里的计算机上也能打开在公司计算机上加密的文件,同时在家里的计算机上编辑了文件后回到公司里也能打开?
具体环境是这样的:有两台计算机A和B,A在公司,B在员工家里,这两台计算机都没有加入域。该方法在Windows XP和Windows Vista中的操作基本类似,下文会以Windows Vista中的操作为例进行介绍。具体的过程是这样的:
1. 在公司的计算机A上,将可移动存储设备格式化为NTFS文件系统,并在其根目录下创建一个文件夹,将所有需要带回家处理的文件复制到该文件夹中,并使用EFS加密该文件夹。
2. 按照上文证书的备份一节的介绍,将用户的EFS加密证书备份出来,并随身携带(安全起见,这个证书最好不要和被加密的文件保存到一起,否则一旦回家路上失窃,别人导入了你的证书后将可以打开所有机密文件)。
3. 在家里的计算机B上,按照上文证书的还原一节中的介绍,将公司里计算机A上备份出来的证书还原到家里的计算机B上。
4. 将保存了机密数据的移动存储设备连接到计算机B,查看并编辑文件,然后保存。
经过上述设置,在家里的计算机B上查看被EFS加密的文件属性,依然可以看到加密者是公司里的计算机A上自己的帐户,但因为我们已经在计算机B上导入了计算机A上相应的证书,因此打开和编辑这些文件都不是问题。就算我们在计算机B上编辑了这些文件,保存的时候,系统依然会自动以公司里计算机A上用户的身份帮我们加密所有文件。因此第二天将编辑后的文件拿到公司后依然可以顺利访问。
加密了一些机密信息。后来使用该帐户的员工辞职了,因此管理员直接删除了他的帐户。但不久后处理该帐户的遗留文件时发现,该帐户的一些文件还处于加密状态,而且这些文件全部无法打开。有人可能会尝试新建一个名为“User”的用户,并使用之前的User帐户一样的密码,但被EFS加密的文件还是打不开。这又是为什么?
在解释这个问题之前首先要介绍一下什么是SID(安全标识符)。我们都知道,当我们将自己的Windows帐户名称改名后,依然可以使用之前具有的所有权限,似乎改名操作并不会影响用户的权限方面的设置,其实这就是SID的作用。SID和用户名的关系类似于我们每个人的名字(用户名)和指纹(SID)的关系,名字可以随便改,但每个人的指纹是不会随着名字的变化而变化的。正因为Windows是通过SID识别不同帐户的,因此在这种情况下重建相同用户名和密码的帐户并不能得到原帐户的EFS证书,进而被加密的文件将无法解密。为了预防这种问题,微软在设计EFS加密功能的时候引入了一种叫做恢复代理(Recovery Agent)的机制。
恢复代理可以理解为默认被共享了本机所有EFS加密文件的用户(类似于EFS的共享,但不等同),在设置了恢复代理后,本机上所有文件在使用EFS加密的同时,恢复代理的相应信息也会被保存到文件中。这样日后就算加密该文件的帐户已经不存在,或者证书丢失了,我们依然可以使用恢复代理的帐户登录系统,解密文件。
安全起见,在单机和工作组环境下的Windows XP以及Windows Vista中,默认情况下没有恢复代理;在加入域后,默认的恢复代理是域管理员。我们首先需要为系统指定一个恢复代理,这个过程在Windows XP和Windows Vista中基本一样,下文以Windows Vista中的操作为例进行介绍。
1. 使用希望成为恢复代理的帐户(最好是管理员帐户)登录,然后在该帐户的桌面上创建一个临时文件,例如“1.txt”。
2. 运行“cmd”打开命令提示符窗口,然后使用“cd desktop”命令进入到该帐户的桌面文件夹下。
3. 运行这条命令:cipher /r:1.txt,随后输入用于加密证书的密码(注意,在输入的过程中光标并不会有变化,也不会用星号占据输入的密码位数)。随后在桌面上会看到一个名为“1.cer”和名为“1.pfx”的文件,我们需要使用这些文件将当前登录的用户指定为恢复代理。


[attachment=893650]
命令提示生成恢复代理所需的证书文件
4. 运行“secpol.msc”,打开“本地安全策略控制台”。在控制台窗口左侧的树形图中依次进入到“安全设置”|“公钥策略”|“加密文件系统”。
5. 用鼠标右键单击“加密文件系统”节点,选择“添加数据恢复代理程序”命令,打开“添加故障恢复代理向导”。
6. 在向导的第一个界面上单击“下一步”,在随后出现的界面上单击“浏览文件夹”按钮,并找到在第一步备份出来的证书1.cer。
7. 在导入的过程中,Windows可能会提示你Windows无法判断此证书是否被吊销,询问是否继续。在单机或者工作组环境下这是正常的,可以不用理会,单击“是”。
8. 随后我们可以看到,添加故障恢复代理向导中已经列出了一个恢复向导,这表示我们的操作是正确的,单击“下一步”,然后单击“完成”。当然,如果需要,我们可以添加多个恢复代理

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯