2010-11-11 38 views
3

根据MSDN,每个备用数据流可能以加密形式(NTFS'加密状态)存储。我发现设置Encryption状态的唯一API函数是EncryptFile(),它指出加密文件的所有数据流。那么有没有办法在XP下不加密所有数据流?加密指定的备用数据流 - NTFS,XP

回答

3

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

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

1

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