根据 MSDN,每个备用数据流都可以以加密形式存储(NTFS 的加密状态)。我找到的唯一用于设置加密状态的 API 函数是 EncryptFile() ,它表示加密文件的所有数据流。那么有没有办法不加密XP下的所有数据流呢?
问问题
612 次
2 回答
3
那篇 MSDN 文章(无论您在哪里找到)是错误的。NTFS 加密(即 EFS)本身将加密密钥存储在备用数据流 $EFS 中。每个文件只有一个 $EFS 流,这使得其他备用数据流也无法加密(除非它们也使用相同的对称密钥,这将违反 EFS 的每个设计原则,即为每个文件使用不同的密钥)。
请显示对该 MSDN 文章的引用。我确信它是错误的(它不会是 microsoft.com 上发表的唯一一篇不是 100% 准确的文章——这些文章的作者是人类)。哎呀,我在 MSDN 上放了在我职业生涯早期并不是 100% 准确的材料。
于 2010-11-14T06:16:18.203 回答
1
这一点很重要,因为 ADS 可以包含可执行代码,因此可能是安全威胁。实际上,只有文件的 $DATA 属性被加密,但理论上可以加密其他属性。但是,其他属性(例如 $EFS)未加密。只有非常驻的 $DATA 属性可以加密。如果 MFT 记录中存在多个(非常驻)$DATA 属性,则所有这些属性都使用相同的密钥进行加密。注意,其他属性不会被加密,只有 $DATA 属性。
于 2015-05-05T09:09:09.643 回答