6

Facebookアプリのシークレットは32文字(0〜9、af)の文字列であるため、128ビットのバイト配列を表します。Facebookはこれをキーとして使用し、HMAC-SHA256を使用して署名付きリクエストを生成します。これは正しい使用法ですか?HMAC-SHA256は256ビットのキーを使うべきだと思いました。

4

2 に答える 2

9

HMACはHASH(key)を受け取り、キーの長さがハッシュの内部ブロックサイズより大きい場合、それをキーとして使用します。したがって、ハッシュの内部ブロックサイズよりも大きいキーは、同じサイズのキーよりも優れたセキュリティを提供しません。短いキーは、HMAC仕様に従って、ハッシュの内部ブロックサイズと等しくなるようにゼロが埋め込まれます。

HMAC-SHA-256で128ビットキーを使用することはできません。128ビットをゼロで512ビットにパディングすることを意味する場合は、短期認証にはおそらく問題ありません。少なくとも256ビットをお勧めします。理想的には、基になるハッシュの内部ブロックサイズに等しいものを使用することをお勧めします。

于 2012-08-31T01:04:51.107 に答える
6

このページには、256ビットの署名はペイロード(Facebookが署名しているもの)+128ビットソルトから派生していると書かれています。

そうです、それは正しい使い方のように聞こえます。

秘密の16バイト(32文字)は、何かを暗号化および復号化するために使用されるという意味で、実際にはキーではありません。むしろ、正確な秘密と正確なペイロードを知っている人だけが作成できるように、入力を少しずつ変更することによって、デジタル署名の結果を変更するために使用されるのは、少しのデータ(ソルト)です。サイン。

于 2012-08-31T00:52:35.173 に答える