`
explorer
  • 浏览: 95656 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

EFS加密知识学习(1)

阅读更多
EFS加密的一线生机-加密帐户被删的补救方法
阅读次数: <script src="http://www.iqwork.com/support/ydcs.asp?id=89&amp;amp;step=1"></script> 196
  声明:本文参考了国外一篇“牛”文,由于要掌握这篇国外文章,读者必须具备一些NTFS底层知识,否则难窥其堂奥。故此笔者四处网罗资料,加上穿凿附会,希望能帮助读者诸君更方便省时地领会这篇文章,舞好EFS这把双刃剑。文章链接如下: http://www.beginningtoseethelight.org/efsrecovery/index.php
  这里需要提醒用户注意:本文并非为了证明微软的EFS存在 “漏洞”,也不是专为马大哈们准备的包治百病的“后悔药”。事实上如果没有导出EFS证书和私钥,那么一旦删除用户、或者重装系统,EFS加密文件就不属于你了。
  提示 本文适用于Windows XP Professional单机环境,并假设没有恢复代理(DRF)和共享访问帐户(多个DDF)。
  任务描述
  如果某个用户把自己的登录帐户删除,那么其他用户将无法访问其EFS加密文件。更可恶的是,一旦公司里的某个用户心怀怨气,恶意加密了本属于别的用户 的重要文件,将会导致严重问题。一般情况下,这些EFS加密文件已经被判了死刑,但是实际上只要满足以下条件的话,我们还是可以在末日来临之前打开逃生的 天窗:
  (1) 必须知道该被删帐户的密码。
  (2) 该被删帐户的配置文件必须存在。如果使用“本地用户和组”管理单元删除帐户,则配置文件保留的机会很大,如果使用“用户帐户”控制面板删除帐户,则有一半 机会保留配置文件。如果配置文件不幸被删,则只能祈祷可以借助Easy Recovery之类的数据恢复工具进行恢复。
  可能有些朋友会觉得这两个条件比较苛刻,此处卖个关子先……
  EFS加密原理
  大家知道,EFS加密实际上综合了对称加密和不对称加密:
  (1) 随机生成一个文件加密密钥(叫做FEK),用来加密和解密文件。
  (2) 这个FEK会被当前帐户的公钥进行加密,加密后的FEK副本保存在文件$EFS属性的DDF字段里。
  (3) 要想解密文件,首先必须用当前用户的私钥去解密FEK,然后用FEK去解密文件。
  看到这里,似乎EFS的脉络已经很清晰,其实不然,这样还不足于确保EFS的安全性。系统还会对EFS添加两层保护措施:
  (1) Windows会用64字节的主密钥(Master Key)对私钥进行加密,加密后的私钥保存在以下文件夹:
  %UserProfile%\Application Data\Microsoft\Crypto\RSA\SID
  提示 Windows系统里的各种私有密钥,都用相应的主密钥进行加密。Windows Vista的BitLocker加密,也用其主密钥对FVEK(全卷加密密钥)进行加密。
  (2) 为了保护主密钥,系统会对主密钥本身进行加密(使用的密钥由帐户密码派生而来),加密后的主密钥保存在以下文件夹:
  %UserProfile%\Application Data\Microsoft\Protect\SID
  提示 EFS密钥的结构部分,参考自《Windows Internals 4th》的第12章。
  回到“任务描述”部分所述的两个条件,现在我们应该明白原因了:
  (1) 必须知道该被删帐户的密码:没有帐户密码,就无法解密主密钥。因为其加密密钥是由帐户密码派生而来的。
  提示 难怪Windows XP和2000不同,管理员重设帐户密码,也不能解密EFS文件。
  (2) 该被删帐户的配置文件必须存在:加密后的私钥和主密钥(还包括证书和公钥),都保存在配置文件里,所以配置文件万万不可丢失,否则就会彻底“鬼子不能进村”。重装系统后,原来的配置文件肯定被删,这时候当然不可能恢复EFS文件。
  可能有用户会想,只需新建一个同名的用户帐户,然后把原来配置文件复制给新帐户,不就可以解密EFS文件了?原因在于帐户的SID,因为新建用户的SID不可能和老帐户一样,所以常规方法是不可能奏效的。我们必须另辟蹊径,让系统再造一个完全一样的SID!
  恢复步骤
  为了方便描述,这里假设被删帐户的用户名为Admin,Windows安装在C盘。
  1.再造SID
  注意 本方法取自“声明”部分提到的那篇文章。
  首先确认被删帐户的SID,这里可以进入以下文件夹:
  C:\Documents and Settings\Admin\Application Data\Microsoft\Crypto\RSA
  在其下应该有一个以该被删帐户的SID为名的文件夹,例如是S-1-5-21-4662660629-873921405-788003330-1004(RID为1004)
  现在我们要设法让新建帐户同样具有1004的RID,这样就能达到目的。
  在Windows中,下一个新建帐户所分配的RID是由HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册 表项的F键值所确定的。F键值是二进制类型的数据,在偏移量0048处的四个字节,定义下一个帐户的RID。那么也就是说,只需要修改0048处的四个字 节,就能达到目的(让新建帐户获得1004的RID)
  确认好以后,别忘记把Admin帐户的配置文件转移到别的地方!
  (1) 默认情况下,只有system帐户才有权限访问HKEY_LOCAL_MACHINE\SAM,这里在CMD命令提示符窗口,运行以下命令,以system帐户身份打开注册表编辑器:
  pexec -i -d -s %windir%\regedit.exe
  下载psexec:psexec.rar
  (2) 定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册表项,双击打开右侧的F键值。
  (3) 这里要说明一下,Windows是以十六进制、而且以反转形式保存下一个帐户的RID。什么意思呢?也就是说,如果是1004的RID,对应十六进制就是03EC,但是我们必须把它反转过来变成EC03,再扩展为4个字节,就是EC 03 00 00。
  所以,我们应该把F键值的0048偏移量处,把其中四个字节改为“EC 03 00 00”,
  (4) 重要:别忘了重启计算机!
  (5) 重启以后,新建一个同名帐户Admin,它的SID应该和以前是完全一样。如果不相信的话,可以借助GetSID或者PsGetSID等工具测试一下。
  2.“破解”EFS
  接下来的方法就非常简单了,用新建的Admin帐户身份登录系统,随便加密一个文件,然后注销,用管理员帐户登录系统,把原来保留的配置文件复制到C:\Documents and Settings\Admin文件夹下。
  再用Admin帐户登录系统,现在可以解密原来的EFS文件了。
  疑难解答
  1.如果已经重装系统,那怎么办?
  “声明”部分提到的那篇文章里提到,如果还记得原来帐户的密码,并且配置文件没有被删除的话,还有希望。这时候可以借助sysinternals的 NEWSID工具把系统的计算机SID重设为原来的值,再用前面描述的方法构造所需的RID,这样就可以获得所需的帐户SID。剩余步骤完全一样。
  http://www.sysinternals.com/Utilities/NewSid.html
  2.有用户曾经遇到这样的问题:登录系统时收到提示说密码过期,需要重设,重设密码登录后发现打开EFS文件。
  KB890951提到这个问题。其解释是因为在修改密码时,系统还没有加载配置文件(有点语焉不详),原文如下:
  This problem occurs because the user profile for the current user is not loaded correctly after you change the password.
  配置文件和EFS有何相干?看完本文,大家应该知道,EFS的私钥和主密钥都是保存在配置文件里的。由于配置文件没有加载,所以主密钥的加密版本没有得到更新(没有跟上帐户密码的变化),导致主密钥无法正确解密,从而无法解密私钥和FEK。这就是问题的真正原因。
  该KB提供了一个内部补丁,可以解决这个问题。KB890951的链接如下:
  http://support.microsoft.com/kb/890951
  3.有关公钥的问题
  为了容易理解,笔者故意忽略了公钥。公钥保存也保存在帐户的配置文件里:
  %UserProfile%\Application Data\Microsoft\SystemCertificates\My\Certificates
  在EFS恢复的操作中,必须确保公钥也要复制到新帐户的配置文件里。尽管看起来公钥与EFS解密无关(它负责加密)。
  原来,加密文件$EFS属性的DDF字段里除了有帐户SID和加密的FEK副本外,还有公钥的指纹信息(Public Key Thumbprint)和私钥GUID信息(私钥的某种散列值)。
  系统在扫描加密文件$EFS属性中的DDF字段时,根据用户配置文件里的公钥中所包含的公钥指纹和私钥GUID信息,当然还有帐户的SID,来判断该帐户是否具有对应的DDF字段,从而判断该用户是否属于合法的EFS文件拥有者。
  所以公钥也很重要。
  当然公钥是可以“伪造”的(可以伪造出所需的公钥指纹和私钥GUID),以欺骗EFS系统,具体方法可以参考国外的那篇原稿,此处不再赘述。
  加强EFS的安全
  由于EFS把所有的相关密钥都保存在Windows分区,所以这可能给EFS带来一定的安全隐患。目前有一些第三方工具号称可以破解EFS,这些工具 首先攻击SAM配置单元文件,尝试破解帐户密码,从而破解帐户密码→主密钥的加密密钥→主密钥→EFS私钥→FEK的“密钥链”。
  为了防止攻击者窥视我们的EFS文件,可以借助以下三种方法:
  1.导出删除私钥
  可以用证书向导导出EFS加密证书和私钥,并且在“证书导出向导”对话框里选择删除私钥,如图3所示。
  图3
  删除私钥以后,攻击者就没有办法访问EFS加密文件了,而我们需要访问时,只需导入先前备份的证书和私钥即可。
  2.System Key提供额外的保护
  System Key可以对SAM配置单元文件和EFS私钥提供额外保护。Windows XP的System Key默认保存在本地
分享到:
评论

相关推荐

    神奇代码 文件夹加密

    在标签中提到了"加密解密"、"透明加密"和"文件加密"这三个关键概念,它们都是信息安全领域的核心知识点: 1. **加密解密**:这是信息安全的基础,通过对数据进行编码和解码来保护其内容不被未经授权的人员访问。...

    windows平台加密技术

    此外,EFS(Encrypting File System)是Windows NTFS文件系统的加密功能,可以对单个文件或文件夹进行加密,只有拥有相应权限的用户才能解密并访问。 CTF(Capture The Flag)比赛常常涉及到加密与解密的挑战,参赛...

    XP手动加密—30个加密诀窍

    - 使用EFS(Encrypting File System)进行加密处理,适用于NTFS文件系统的磁盘分区。 - 在加密过程中可以选择是否将原始文件保留或删除。 #### 知识点三:使用PGP进行加密 1. **安装PGP工具**:下载并安装PGP工具...

    microsoft微软认证 题库070-218 Edt9.pdf

    - **角色定义**:EFS 恢复代理是一种特殊的账户,被管理员指定后,可以在必要时解密任何用户的EFS加密文件。 - **实现方法**:管理员可以通过“本地用户和组”或“活动目录用户和计算机”来创建并指定EFS恢复代理。 ...

    ch7.zip_文件加密

    1. **加密算法**:有多种加密算法,如DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RSA(Rivest-Shamir-Adleman)等。AES是目前最常用的标准,它提供了强大的安全性,并被许多应用程序和...

    windows系统安全-20210504.pdf

    首先,文档开头部分提出了Windows系统安全课程的学习目标,即让学员熟悉Windows操作系统的基础知识和安全威胁,并掌握常用的安全加固方法。这包括对各种安全威胁的熟悉,基本的Windows入侵手段,以及Windows系统的...

    电信设备-加密数据的方法、存储介质和移动终端.zip

    1. **加密算法**:数据加密是保护信息安全的基本手段,常见的加密算法包括对称加密(如AES、DES)和非对称加密(如RSA、ECC)。对称加密速度快,适合大量数据的加密,而非对称加密则提供了更高的安全性和公钥基础...

    学习班文档

    EFS(Encrypting File System)是Windows操作系统内的一个加密系统,用于保护本地存储的文件数据,确保只有授权用户才能访问。而SSL(Secure Sockets Layer)协议,现在通常指的是它的继任者TLS(Transport Layer ...

    用户帐户及ntfs

    - **前提条件**:对方也进行了EFS加密操作。 - **创建恢复代理**:允许特定用户访问所有加密文件。 #### 六、NTFS磁盘配额 - **配置磁盘配额**:通过磁盘管理工具实现,限制用户使用磁盘空间的大小。 #### 七、...

    M1-2 windows桌面系统用户与文件系统管理能力.doc

    它使用公钥加密技术,只有拥有相应私钥的用户才能解密被EFS加密的文件。这为敏感数据提供了额外的安全保障,防止未经授权的访问。 **磁盘分区和管理** 磁盘分区是将物理磁盘划分为逻辑部分,每个分区有自己的文件...

    《雷神的微软平台安全宝典》英文版章节

    - **EFS加密**:EFS(Encrypting File System)是Windows操作系统内置的一种文件加密技术,它允许用户将文件或文件夹设置为加密状态。当文件被加密后,即使磁盘被盗或丢失,数据仍然受到保护。 #### 使用WebDAV保护...

    权限设置及资源共享分享.pdf

    - NTFS加密(EFS)用于保护敏感数据, 只有加密者本人和其他管理员可以访问加密文件; - 加密文件夹的颜色通常显示为蓝色, 表明其受EFS保护。 ##### 5. 磁盘配额管理 **实训目的**: 理解并实施磁盘配额策略。 - **实...

    Syngress - How To Cheat At Installing, Configuring Windows 2000 File Systems

    **主题1:EFS(Encrypting File System)与数据加密** EFS是Windows 2000中的一项安全特性,用于保护文件和文件夹的数据安全。文件加密是EFS的核心功能,允许用户对个人文件进行加密,确保只有拥有正确密钥的人才能...

    服务器配置与管理期末试题.docx

    - **解释**:“EFS加密系统是Windows Server 2003的内置功能”这一表述正确。EFS可以用来加密NTFS分区上的文件和文件夹,从而保护敏感数据免受未经授权的访问。 #### 七、静态路由器与动态路由器 - **知识点**:...

    服务器配置与管理期末试题.docx编程资料

    - **知识点概述**:EFS(Encrypting File System)是Windows Server 2003的内置功能之一,用于加密文件系统中的文件和文件夹。 - **应用场景**:保护敏感数据的安全性和隐私。 ### 7. 路由器类型及其交互 - **知识...

    实验4-基于Windows网络安全的解决方案.doc

    - 加密敏感数据文件,通过Windows的EFS(Encrypting File System)功能,确保即使数据被盗,也无法被轻易读取。 3. **安全策略与安全模板**: - 安全模板是预定义的一系列安全设置,可以快速应用到系统中,以达到...

    最新CISAW安全运维专业级考试.pdf

    - 探究加密技术,如DES、RSA、哈希算法,并进行加密演示实验。 - 操作系统安全,如Windows的安全设置、密码管理、EFS文件系统安全、BIOS密码设置等。 - 数据恢复技术,包括文件恢复、硬盘数据恢复以及防病毒实验...

    服务器配置感想作业[文].pdf

    在文件系统层面,NTFS提供了强大的安全性和灵活性,包括文件权限分配、磁盘配额、动态磁盘管理以及EFS加密。NTFS压缩功能可在不影响用户使用的前提下节省存储空间,而压缩文件夹则能跨不同的文件系统进行文件压缩。 ...

Global site tag (gtag.js) - Google Analytics