加密指定的备用数据流 - NTFS,XP

时间:2010-11-11 14:29:39

标签: encryption windows-xp ntfs alternate-data-stream

根据MSDN,每个备用数据流可以以加密形式(NTFS'加密状态)存储。我找到的唯一用于设置加密状态的API函数是EncryptFile(),它声明加密文件的所有数据流。那么有没有办法不在XP下加密所有数据流?

2 个答案:

答案 0 :(得分:3)

那篇MSDN文章(无论你在哪里找到它)都是错误的。 NTFS加密(即EFS)本身将加密密钥存储在备用数据流$ EFS中。每个文件只有一个$ EFS流,这使得其他备用数据流也不可能被加密(除非它们也使用相同的对称密钥,这将违背每个文件使用不同密钥的EFS的每个设计原则) )。

请显示该MSDN文章的参考。我确信这是错误的(它不会是在microsoft.com上发布的唯一一篇文章不是100%准确 - 这些文章的作者都是人类)。哎呀,我把MSDN上的材料放在我职业生涯早期没有100%准确的情况下。

答案 1 :(得分:1)

这是一个重要的观点,因为ADS可以包含可执行代码,因此可能是安全威胁。实际上,只有文件的$ DATA属性是加密的,但理论上可以加密其他属性。但是,其他属性(如$ EFS)未加密。只能加密非常驻$ DATA属性。如果MFT记录中存在多个(非驻留)$ DATA属性,则使用相同的密钥加密所有这些属性。注意,其他属性不会被加密,只有$ DATA属性。