NTFS的EFS加密分析 | 数据恢复迷

NTFS文件系统能够支持EFS加密文件系统(Encrypted File System)。EFS提供的文件加密技术可将加密的NTFS文件存储到磁盘上,并且特别考虑了其他操作系统上的现有工具引起的安全性问题。这些工具允许用户不经过权限检查就可以从NTFS卷访问文件,而通过EFS,NTFS文件中的数据可在磁盘上进行了加密。

EFS加密技术是基于公共密钥的,它用一个随机产生的文件密钥(File Encryption Key,FEK),通过加强型的数据加密标准(Data Encryption Standard,DES)算法—DESX对文件进行加密。EFS加密技术作为一个集成系统服务运行,易于管理,不易受攻击,并且对用户是透明的。如果用户要访问一个加密的NTFS文件,并且有这个文件的私钥,那么用户能够打开这个文件,并透明地将该文件作为普通文档使用。没有该文件私钥的用户对文件的访问将被拒绝。

DESX使用同一个密钥来加密和解密数据,这是一种对称加密算法(Symmetric Encryption Algorithm)。一般来说,这种算法的速度相当快,适用于加密类似文件的大块数据,但缺点也是很明显的:如果有人窃取了密钥,那么一切安全措施都形同虚设。而这种情况是很可能发生的,如果多个用户共享一个仅由DESX保护的文件,每个用户都要求文件的FEK。如果不加密FEK显然是个严重的安全隐患;但是加密了FEK则要给每个用户同样的FEK解密密钥,这也是个严重的安全问题。

EFS使用基于RSA(Rivest Shamir Adleman)的公共密钥加密算法对FEK进行加密,并把它和文件存储在一起,形成了文件的一个特殊的EFS属性字段——数据解密字段(Data Decryption Field,DDF)。在解密时,用户用自己的私钥解密存储在文件DDF中的FEK,然后再用解密后得到的FEK对文件数据进行解密,最后得到文件的原文(即未加密的文件,与密文相对)。只有文件的拥有者和管理员掌握解密的私钥(Private Key),任何人都可以得到加密的公共密钥,但是即使他们能够登录到系统中,由于没有解密的私钥,也没有办法破解它。EFS的工作原理如图4-476所示。

图4-476 EFS结构示意图

Windows 2000/XP的最初版本把私钥存储在不是十分安全的磁盘上,随后的升级版本则允许用户存储在某些便携设备上。尽管基于公共密钥的算法速度通常比较缓慢,但是EFS仅仅使用它来加密FEK,通过和加密文件的DESX配合,在使EFS的取得高速度的同时,也获得了令人羡慕的高安全性。

从图4-476中可以看到,EFS的实现类似于在核心态运行的设备驱动程序,和NTFS有着十分紧密的联系。当处于用户模式的应用程序需要访问加密的文件时,它向NTFS发出访问请求,NTFS收到请求后立即执行EFS驱动程序。EFS通过KSecDD设备驱动程序转发LPC给Lsass。Lsass不仅处理用户登录事务,也对EFS密钥进行管理。Lsass的功能组成部分Lsasry则侦听该请求,并执行所包含的相应的功能函数,在处于用户模式的加密服务API(CryptoAPI)的帮助下,进行文件的加密和解密。

Lsasry通过CryptoAPI来对FEK加密。通过动态链接库实现的CSP(Cryptographic Service Provide)极好地封装了加密服务API,以至于Lsasry根本不必知道EFS算法的实现细节。Lsasry取得EFS的FEK后,通过LPC返回给EFS驱动程序,然后EFS可以利用FEK通过DESX进行文件的解密运算,并通过NTFS把结果返回给用户程序。

由于穷举破解EFS是不可能的,而且在使用EFS时系统不会给出任何提示,所以,使用了EFS的用户一定要备份加密证书,否则加密证书一旦出现问题,要恢复数据几乎是不可能的。

(0)

相关推荐

  • 重装系统win10以前的加密文件如何解密

    因为重装系统,原来的加密文件忘记解除,现在各文件名后缀+PFILE,现在无法查看,求救怎么恢复啊,重要文件啊,加密方式就不能和账户关联起来解密吗?[1.你如果备份了密钥的话,导入这个密钥即可.2.如果 ...

  • NTFS文件系统引导扇区分析 | 数据恢复迷

    NTFS文件系统的引导扇区是$Boot的第一个扇区,它的结构与FAT文件系统的DBR类似,所以习惯上也称该扇区为DBR扇区.DBR扇区在操作系统的引导过程起着非常重要的作用,如果这个扇区遭到破坏,系统 ...

  • NTFS文件系统元文件$MFT分析 | 数据恢复迷

    NTFS文件系统的元文件 将一个分区格式化为NTFS后,格式化程序会往该分区中写入很多重要的系统信息,这些系统信息在NTFS文件系统中称为元文件.这些元文件用户是不能访问的,它们的文件名的第一个字符都 ...

  • 元文件$UsnJrnl分析 | 数据恢复迷

    元文件$UsnJrnl是变更日志文件,作用是记录文件发生的改变,文件一旦改变,其变化会记录在元文件$UsnJrnl中一个被命名为$J的数据属性中.$J数据属性具备稀疏属性,由变更日志项组成.$UsnJ ...

  • 元文件$Reparse分析 | 数据恢复迷

    $Reparse是重解析点文件,Windows 2003.Windows XP等系统可以将卷装载在目录中进行重新解析.$Reparse一般包含3个属性,如图4-465所示. 图4-465 $Repar ...

  • 元文件$Quota分析 | 数据恢复迷

    $Quota文件最初出现在Window NT中,但没有被使用,到了Windows 2000及其后续版本$Quota文件用于跟踪磁盘配额,以用户和卷来进行计算.该文件一般包含4个属性,如图4-464所示 ...

  • 元文件$ObjId分析 | 数据恢复迷

    卷中的每个文件都有一个唯一的ID号,$ObjId存放着该卷上使用的所有$Object_ID属性的一个索引.$ObjId一般有4个属性,如图4-463所示. 图4-463 $ObjId的文件记录 (1) ...

  • 元文件$Extend分析 | 数据恢复迷

    $Extend文件是一个包含$ObjId.$Quota.$Reparse和$UsnJrnl四个元文件的目录. $Extend文件一般包含3个属性,如图4-462所示. 图4-462 $Extend的文 ...

  • 元文件$UpCase分析 | 数据恢复迷

    $UpCase是一个完整的大写字母组成的128KB大小的文件.Unicode字母表中的每一个字符,在这个文件中都有一个对应的条目,用于比较和对文件名进行排序. $UpCase一般有3个属性,如图4-4 ...

  • 元文件$Secure分析 | 数据恢复迷

    在最初的NTFS版本中,每个文件都有一个$SECURITY_DESCRIPTOR(安全描述符)属性,即50H属性.由于大多数文件的安全描述符都是一样的,因此,检查每一个文件的访问权限将会导致效率低下. ...