我正在使用 Windows DPAPI 来加密一些敏感数据。密码存储在注册表中。这一切都运行良好,但我想知道是否有人可以澄清我对 .NET 中(可选)提供给 ProtectedData.Protect() 的“熵”字节的理解。
“熵”字节数组似乎类似于与其他加密方案一起使用的初始化向量或盐,但我在 MSDN 中找不到对熵字节的良好描述。我看到的代码示例只是熵字节中的硬代码!
提供给 ProtectedData.Protect() 和 ProtectedData.Unprotect 的熵字节是否类似于 IV 或盐?因此,熵字节可以与密码一起安全存储吗?或者这会损害安全性吗?
熵是特定于保护数据的应用程序的辅助密钥。如果我没记错的话,总体思路是允许多个应用程序在单个用户帐户下加密数据,但仍然保持彼此之间的安全性。例如,您的应用程序可能会加密 UserA 下的数据。如果我的应用程序希望解密 UserA 下的数据,实际上没有什么可以阻止我这样做,因为 DPAPI 使用用户密钥。但是,如果您考虑应用程序特定的“熵”,那么我需要知道您的熵来解密要保护 UserA 的任何数据。
熵可以被认为类似于盐,因为它是用于进一步抽象加密内容的附加密钥或秘密。与 salt 不同的是,对于给定凭证下的每个加密操作,应用程序的熵需要保持相同。对于盐,通常最好尽可能经常更换。
熵本质上是一个附加密钥,它应该像任何其他加密密钥一样对待。保持其私密性和安全性。
顺便说一句,我认为“熵”用于此目的是一个残酷的词。像“差异化器”这样的东西,或者甚至创造一个像“区分器”这样的词,会更好。 :P 非常令人困惑的术语使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)