暗号化およびHMACのための1つのキーを使用して
-
21-09-2019 - |
質問
私はあまりにもHMACキーとして2つのクライアント間で確立共有秘密鍵を使用できるかどうかを疑問に思ってます。
私はそれが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