使用加密和HMAC一个关键
-
21-09-2019 - |
题
我想知道我是否可以使用作为HMAC密钥过两个客户端之间建立一个共享密钥。
我看到有一个问题,当它被用作CBC-MAC,但我还没有发现任何证据表明它是HMACs不好的做法。
谢谢, 弗拉基米尔
解决方案
我相信它是目前在类别“似乎大概OK,但为什么要冒险呢?”
最佳做法是有每一侧生成从共享秘密密钥两个新的键:
encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
其他提示
作为CAF躲避到。一个正确的方式做,这是哈希一些额外的数据共享的密钥。
例如:
enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
这具有不需要传送2个额外的随机数,以及易于实现的优点。
我不会用在不同的功能相同的密钥(ENC + HMAC)。这是自找麻烦和一个坏主意。
不隶属于 StackOverflow