2 つのクライアント間で確立された共有秘密鍵を HMAC キーとしても使用できるかどうか疑問に思っています。
CBC-MAC として使用すると問題があることがわかりましたが、HMAC の悪い習慣であるという証拠は見つかりませんでした。
ありがとう、ウラジミール
2 つのクライアント間で確立された共有秘密鍵を HMAC キーとしても使用できるかどうか疑問に思っています。
CBC-MAC として使用すると問題があることがわかりましたが、HMAC の悪い習慣であるという証拠は見つかりませんでした。
ありがとう、ウラジミール
現時点では、「おそらく問題ないように見えるが、なぜリスクを冒すのか」というカテゴリにあると思います。
ベスト プラクティスは、それぞれの側で共有秘密鍵から 2 つの新しい鍵を生成することです。
encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
カフェが逃げたように。これを行う正しい方法の 1 つは、共有秘密鍵を追加のデータでハッシュすることです。
例えば:
enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
これには、2 つの余分なナンスを転送する必要がないだけでなく、実装が容易であるという利点があります。
異なる関数 (enc + hmac) で同じキーを使用することはありません。それはトラブルと悪い考えを求めています。