2011-09-01 7 views
6

私はSHA-256 HMACでメッセージに署名/検証するためのライブラリを設計しています。エンドユーザーが弱い共有鍵を使用して多くの短いメッセージを送信する場合、攻撃者がその鍵を発見するリスクがあると想定します。メッセージ署名にHMACを使用する場合は、キー、メッセージ、またはその両方をソートすることをお勧めしますか?

私の直感は、リバースエンジニアリングを鍵にするのが難しくなるように、キーに一意の(メッセージごとの)塩を付けるべきだと言います。

キーソルトはどれくらい助けになりますか?また、メッセージをソルトすることで何かを得ることができますか?

答えて

3

通常、人々はキーを塩にします。これは、リバースエンジニアリングをより困難にし、同じメッセージが常に同じMACを持つとは限らないため、セキュリティが向上します。そのため、攻撃者は以前に同じMACで送信されたメッセージを単純に再送信できません。私はメッセージを塩漬けすることもあなたに手を差し伸べるとは思わない。

+1

私は同意するメッセージは何もしません(HMAC/SHA-256は長いメッセージであっても計算集約的ではありません)。あなたがキーを塩にしたいのであれば、[PBKDF2](http://ja.wikipedia.org/wiki/PBKDF2)のような計算集約的なプロセスを使う必要があります。 – kbolino

+0

だから私はこの[PBKDF2関数](http://www.itnewb.com/v/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard)で鍵を作成したい送信メッセージに反復カウントを追加するだけですか?どのようにして希望の鍵長を決定するのですか? –

+1

私が理解しているように、反復回数は通常、実装の定数として扱われます。つまり、10,000などの値を選択してから、事前に共有します(ソフトウェアでハードコーディングするなど)。それを変数にしたい場合は、かなり低い下限を設定して強制する必要があります。 – kbolino

関連する問題