Windows系统EFS加密

本文仅探讨EFS这种加密策略

概述

EFS(Encrypting File System)是Windows系统自带的对于NTFS卷上的文件和数据进行加密的方式

使用

右击文件属性高级设置中
1
加密后,对于该用户来说是透明的,可以任意对文件进行操作,并且不需要输入密钥
这很神奇,而换了个用户后,显示无法访问,可见这种加密策略是和用户绑定的,但是课上老师给我们做了个实验,当管理员修改该用户的密码后,该用户再次登录后发现也是无法访问的,而当管理员将该用户密码改回去后,又可以打开了,可见EFS加密这种策略不仅与用户有关,还与当时加密的用户密码有关
让我们来看一下EFS是如何加密的

加密策略与问题思考

在使用EFS对文件进行加密时,系统会生成一个伪随机数FEK(文件加密密钥),并使用其对文件进行加密同时用加密后的文件将原文件覆盖,随后系统利用用户公钥对FEK进行加密后写入文件中,用户访问时,肯定先要用自己的私钥去解密FEK,私钥保存在Windows分区的用户%UserName%\Application Data\Microsoft\Crypto\RSA\SID路径下,用户的公钥和私钥是在账号创建时由系统分配的,具有唯一性,问题就在这,Windows系统为了保护私钥,还会使用一个主密钥对该私钥进行加密,到目前为止都是与该用户有关的,主密钥保存在Windows分区的用户%UserName%\Application Data\Microsoft\Protect\SID下,但是注意,此时为了保护该主密钥,系统是用了该用户的密码对其进行了加密
所以我们要想将被EFS加密的文件解开,要有私钥,而私钥被主密钥加密着,要获取主密钥,又得知道该用户的密码,并且公钥在此时还会被拿来比对,所以一旦密码改了或用户被删除了,那些文件也就别想打开了
至于那些因为重装系统或删除用户导致被EFS加密后的文件打不开的情况不做讨论,经常使用EFS的话,注意备份那几个重要文件

那如果该用户自己修改了密码后,还可不可以打开呢?答案是可以的
那与管理员将密码重置过程有啥不同呢?
管理员重置该用户的密码后,因为此时相当于强制被动修改,该用户再次登录时,原有的私钥已经打不开了,所以得重新生成一对,所以是没办法打开加密后的文件的,因为可用私钥已经变了;而用户自己修改时,属于主动修改,此时系统会先利用旧密码将主密钥解开,再利用新密码将主密钥加密,此时用户手里的密码是可以将主密钥解开的

那如果想让别人看怎么办呢?
已经被EPS加密的文件,右击->属性->高级->详细信息进行添加

由上可见,EPS加密非常安全同时也很可怕