首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows DPAPI -如何处理熵?

Windows DPAPI -如何处理熵?
EN

Stack Overflow用户
提问于 2009-08-25 04:18:03
回答 2查看 3.8K关注 0票数 20

我正在使用Windows DPAPI为我加密一些敏感数据。密码存储在注册表中。这一切都运行得很好,但我想知道是否有人可以澄清我对“熵”字节的理解,这些字节(可选)被提供给.NET中的ProtectedData.Protect()。

“熵”字节数组看起来类似于用于其他加密方案的初始化向量或salt,但我在MSDN中看不到对熵字节的良好描述。我看到的代码示例只是在熵字节中进行了硬编码!

提供给ProtectedData.Protect()和ProtectedData.Unprotect的熵字节是否类似于IV或salt?因此,熵字节是否可以安全地与密码一起存储,或者这是否会损害安全性?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-25 04:26:54

熵是特定于保护数据的应用程序的辅助密钥。如果我没记错的话,一般的想法是允许多个应用程序在一个用户帐户下加密数据,但仍然保持彼此之间的安全性。例如,您的应用程序可能在UserA下加密数据。如果我的应用程序希望在UserA下解密数据,那么实际上没有什么可以阻止我这样做,因为DPAPI使用用户的密钥。但是,如果您考虑了应用程序特定的“熵”,那么我需要知道您的熵才能解密任何数据以保护UserA。

熵可以被认为类似于盐,因为它是用于进一步提取加密内容的附加密钥或秘密。与salt不同的是,对于给定凭据下的每个加密操作,应用程序的熵都需要保持相同。对于盐,最好的办法就是尽可能频繁地更换它。

熵本质上是一个附加密钥,应该像对待任何其他加密密钥一样对待它。保证它的私密性和安全性。

顺便说一句,我认为“熵”这个词在这方面用起来很粗鲁。像“区分”这样的词,或者甚至创造一个像“区分”这样的词,可能会更好。:P非常容易混淆的术语用法。

票数 16
EN

Stack Overflow用户

发布于 2012-11-07 19:36:30

附加熵的一个用途是对应用程序本身进行密码保护。从密码导出的密钥可以用作存储应用程序数据时的熵。否则,在用户上下文中运行的任何进程都可以解密数据。如果您存储额外的熵,而不是提示输入密码,它仍然可能成为流氓应用程序的目标。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1326001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档