EFS加密的破解
在EFS加密体系中,数据是靠FEK加密的,而FEK又会跟用户的公钥一起加密保存;解密的时候顺序刚好相反,首先用私钥解密出FEK,然后用FEK解密数据。可见,用户的密钥在EFS加密中起了很大作用。
密钥又是怎么来的呢?在Windows 2000/XP中,每一个用户都有一个SID(Security Identifier,安全标识符)以区分各自的身份,每个人的SID都是不相同的,并且有唯一性。可以这样理解:把SID想象为人的指纹,虽然同名同姓甚至同时出生的人很多,但世界上任意两个人的指纹却完全不同。因此,这具有唯一性的SID就保证了EFS加密的绝对安全和可靠。因为理论上没有SID相同的用户,因而用户的密钥也就绝不会相同。在第一次加密数据时,系统就会根据SID生成加密者(该用户)的密钥,并且会把公钥及私钥分开保存,供用户加密和解密数据使用。
许多人由此就认为使用EFS加密非常安全,可是现在网上有一款叫做Advanced EFS Data Recovery的软件就可以破解EFS加密!不过使用该软件有个前提,那就是硬盘上要保留有相应的密钥,而且该软件目前仅能破解经过Windows 2000加密的文件,对Windows XP的加密还无法破解,所以使用XP的朋友可以安心一段时间了。一段时间以后呢?我也不知道,我只知道世上没有不透风的墙。大家可以从网上下载该软件的试用版,试用版只能解密文件的前512字节。
现在,假设我们的Windows 2000安装在C盘,事先用Administrators组的账户Work加密了一个文本文件efs1.txt。注销该账户,用同属于Administrators组的另一个账户Luck登录,直接打开efs1.txt文件试试,看到“访问拒绝”的错误提示了吧?这说明经过EFS加密后的文件非授权用户的确无法访问。接下来运行Advanced EFS Data Recovery,在“EFS Related Files”标签下点击右侧的“Scan For keys”,然后指定在C盘中扫描密钥,图中显示为绿色的就是可用密钥(图6)。然后点击“Encrypted files”标签,再点击右侧的“Scan for encrypted files”按钮,在D盘上搜索所有加密文件,会得到如图所示的结果(图7),其中的efs1.txt就是我们事先加密的文件,点击“Save files”按钮指定保存的位置即可。打开该文件看看,没有任何问题,该文件已经被解密了。
在把那个软件,放在你现在用的电脑上,装一次!