2

私はASP.NETで作業しており、Amazonディレクトリhttp://docs.amazonwebservices.com/AmazonS3/latest/dev/RESTAuthentication.htmlからこれを読んでいたところに記載されています

非公式に、このプロセスを「リクエストに署名する」と呼び、HMAC アルゴリズムの出力を「署名」と呼びます。これは、実際の署名のセキュリティ プロパティをシミュレートするためです。最後に、このセクションで説明する構文を使用して、この署名を要求のパラメーターとして追加します。

システムは、認証されたリクエストを受信すると、ユーザーが所有していると主張する AWS シークレット アクセス キーを取得し、それを同じ方法で使用して、受信したメッセージの「署名」を計算します。次に、計算した署名と要求者が提示した署名を比較します。

しかし、私は両方の要求が同じ権利であるとは思わない. リクエストは署名されています (すばらしい!!) が、クライアント ブラウザからのレスポンスの HMAC は、余分なデータが含まれているため異なります。では、リクエストが有効であるにもかかわらず、なぜリクエストを検証できるのでしょうか

4

1 に答える 1

3

引用した段落全体を読む必要があります。あなたが引用した部分の直前に、次のように書かれています:

リクエストを認証するには、まずリクエストの選択した要素を連結して文字列を形成します。次に、AWS シークレット アクセス キーを使用して、その文字列の HMAC を計算します。

したがって、選択した要素から HMAC を計算し、リクエストを送信すると、サーバーは同じ要素から HMAC を計算し、比較します。

于 2012-10-08T15:34:01.060 に答える