我需要检查高安全系统价值的完整性-在这种情况下,加密密钥(S)
我想要创建这个用户加密密钥的HMAC摘要(密钥作为AES-256密码的密钥在应用程序中使用)来检查它的完整性。加密密钥是在每个用户登录到应用程序之后,使用KDF从他的密码和salt派生的。在用户注册之后,我为用户的加密密钥创建了一个完整性HMAC-SHA256摘要。此摘要IMHO不应保密,并将与其他用户数据一起保存。当用户登录时,我创建摘要并将其与保存的摘要值进行比较。如果两者的摘要是相同的,完整性是被认可的。
-This让我问:它是否需要保存用于HMAC-SHA256的密钥,还是可以将其留给其他用户数据(非安全的,“公开的”)?假设对手获得密钥时,对手是否有可能从HMAC-SHA256摘要恢复加密密钥的原始值?
我不确定,因为我在想;当对手不知道“秘密值”(应用程序加密密钥)时,即使对手知道HMAC-SHA256密钥,也无法创建相同的摘要。这是正确的假设吗?
发布于 2017-06-09 10:10:13
我的问题是:是否需要保存HMAC-non 256的密钥,还是将其与其他用户数据保留为非安全的?
如果您的目标是完整性,并且使用HMAC,则必须保守密钥秘密。HMAC中的公钥意味着任何人都可以为任何消息创建有效的标记--而完整性就消失了。
假设对手获得密钥时,是否有可能从HMAC- the 256摘要恢复原始加密密钥?
不,不可能从任何HMAC值中找到密钥(这将与安全定义相矛盾)。
https://crypto.stackexchange.com/questions/48119
复制相似问题