Linux 平台 EFS 加密技术:保障文件安全的可靠手段 (linux下efs加密技术)

随着互联网的快速发展,数据安全已经成为当今社会中最紧迫的问题之一。保护数据的安全与保密性至关重要,不仅对企业用户、机构和军事组织都是必须要关注的问题。

在现代科技社会中,计算机与网络已经成为数据传输与存储的主要中心,各种信息在计算机内部进行传输和储存。然而,传输和存储数据难免会遭到黑客和恶意软件的攻击。数据泄露、盗窃和删除对于许多用户来说仍然是一个巨大的挑战。其中,保护文件安全是其中一个最紧要的任务。

Linux平台是一个为数不多的开源系统,根据统计,全球10%的服务器在运行着Linux系统。因此,Linux平台的加密技术也变得尤为重要。在这个领域,Linux提供了一种重要的加密方式,即 EFS(Extended File System)加密技术。

EFS是Linux平台上面的一个扩展文件系统,设计的目的是为了保护文件的安全性。这个技术是在Linux内核中引入的,EFS具有许多优越的功能,如文件数据加密、硬链接和数据复制等。与其他加密技术相比,EFS是一种更加可靠和安全的方式来保护文件和敏感数据的机密性。

EFS 在文件操作时非常稳定,使用简单且不会影响其他恶意软件嵌入系统中,这是其受欢迎的原因之一。同时,EFS 的加密方式是块加密,不能进行文件的精确修改。这就意味着即使是读取 EFS 文件的恶意软件,也不能将恶意代码直接写入 EFS 文件中。

此外,EFS 还支持多种加密策略。目前,EFS 支持 AES、DM-Crypt 和 LUKS 等加密算法,这些算法在 Linux 社区中也非常流行。其中,AES 加密算法较为常见,该算法提供了保护文件安全的高度可靠性。使用 AES 加密算法进行密钥生成时,可以使用指定的密码对口令进行加密,密码长度更高可以达到 256 位,保证了文件数据和文件加密密钥的安全性。

除了提供这些加密模式,EFS 还允许将多个加密模式进行组合,以实现多种灵活的安全防护方式。例如,可以使用 dm-crypt 和 LUKS 共同工作,保证长时间存储的数据不被窃取。

当然,尽管 EFS 的加密非常安全,但是还需要注意其中的一些限制。例如,如果 EFS 的一部分数据被篡改,将导致整个文件无法访问。要想恢复 EFS 加密文件,需要使用还原文件或完全还原系统的办法,这对于用户来说是一个很麻烦的过程。

EFS 加密技术是保障敏感文件安全性的可靠手段。在这个时代,数据泄露和数据丢失已经成为全面威胁到企业和用户的问题。而 EFS 的特殊加密技术可以帮助用户保护文件数据的机密性和完整性,同时保证数据的可靠性和安全性。在未来,EFS 加密技术将会继续发挥作用,为Linux平台上面的用户提供更好的数据保护。

相关问题拓展阅读:

EFS加密,重装系统后文件变绿。没有证书。试过以下方法均不可用,哪位有好办法?更好能说详细些, 急啊

这个问题很复杂,我在网上找到一段资料,希望对你有帮助,谢谢。

声明:本文参考了国外一篇“牛”文,由于要掌握这篇国外文章,读者必须具备一些NTFS底层知识,否则难窥其堂奥。故此笔者四处网罗资料,加上穿凿附会,希望能帮助读者诸君更方便省时地领会这篇文章,舞好EFS这把双刃剑。文章链接如下:

这里需要提醒用户注意:本文并非为了证明微软的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加密的密钥架构如图1所示。

图1

提示 EFS密钥的结构部分,参考自《Windows Internals 4th》的第12章。

回到“任务描述”部分所述的两个条件,现在我们应该明白原因了:

(1) 必须知道该被删帐户的密码:没有帐户密码,就无法解密主密钥。因为其加密密钥是由帐户密码派生而来的。

提示 难怪Windows XP和2023不同,管理员重设帐户密码,也不能解密EFS文件。

(2) 该被删帐户的配置文件必须存在:加密后的私钥和主密钥(还包括证书和公钥),都保存在配置文件里,所以配置文件万万不可丢失,否则就会彻底“鬼子不能进村”。重装系统后,原来的配置文件肯定被删,这时候当然不可能恢复EFS文件。

可能有用户会想,只需新建一个同名的用户帐户,然后把原来配置文件复制给新帐户,不就可以解密EFS文件了?原因在于帐户的SID,因为新建用户的SID不可能和老帐户一样,所以常规方法是不可能奏效的。我们必须另辟蹊径,让系统再造一个完全一样的SID!

恢复步骤

为了方便描述,这里假设被删帐户的用户名为Admin,Windows安装在C盘。

1.再造SID

注意 本方法取自“声明”部分提到的那篇文章。

首先确认被删帐户的SID,这里可以进入以下文件夹:

C:\Documents and Settings\Admin\Application Data\Microsoft\Crypto\RSA

在其下应该有一个以该被删帐户的SID为名的文件夹,例如是S4(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:

(2) 定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册表项,双击打开右侧的F键值。

(3) 这里要说明一下,Windows是以十六进制、而且以反转形式保存下一个帐户的RID。什么意思呢?也就是说,如果是1004的RID,对应十六进制就是03EC,但是我们必须把它反转过来变成EC03,再扩展为4个字节,就是EC。

所以,我们应该把F键值的0048偏移量处,把其中四个字节改为“EC”,如图2所示。

图2

(4) 重要:别忘了重启计算机!

(5) 重启以后,新建一个同名帐户Admin,它的SID应该和以前是完全一样。如果不相信的话,可以借助GetSID或者PsGetSID等工具测试一下。

2.“破解”EFS

接下来的方法就非常简单了,用新建的Admin帐户身份登录系统,随便加密一个文件,然后注销,用管理员帐户登录系统,把原来保留的配置文件复制到C:\Documents and Settings\Admin文件夹下。

再用Admin帐户登录系统,现在可以解密原来的EFS文件了。

疑难解答

1.如果已经重装系统,那怎么办?

“声明”部分提到的那篇文章里提到,如果还记得原来帐户的密码,并且配置文件没有被删除的话,还有希望。这时候可以借助sysinternals的NEWSID工具把系统的计算机SID重设为原来的值,再用前面描述的方法构造所需的RID,这样就可以获得所需的帐户SID。剩余步骤完全一样。

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的链接如下:

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默认保存在本地

哭吧。

我有一次奇怪的经历,重装完win7系统后导入密钥,然后就可以访问我原来加密的文件了。。然后中午下班,就顺郑桐答便往移动硬盘上备份一下硬盘上的重要文件。

等下午过来,备份完成了。

然后下午总死,就又装回了xp。

然后就是灾难了。

不知道为毛备轮脊份的过程,不仅移动硬盘上写入的备份文件使用一个新密钥加密了,并且电脑上的源文件也换了密钥加密!他大爷啊。。

心痛啊!

好在喊慧我是狡兔三窟以上的类型,家里电脑上基本恢复了95%以上的数据。

节哀顺变吧!!!

这只是我碰到的数据灾难中的比较严重的一次。。。

删了吧 彻底报废了肢乎宽!以现在的顷告技术用家用电脑穷举破解大概需要历亮万年以上!

鄙视复制粘贴的 S 13

关于linux下efs加密技术的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux 平台 EFS 加密技术:保障文件安全的可靠手段 (linux下efs加密技术)