2017-10-10 8 views
0

クライアントでナンスを生成して共有シークレットで署名するのはセキュリティの問題ですか?クライアントはnonceの安全性が低いですか?

つまり

サーバAとBが通信します。 両方とも、共有された秘密 "$ ECRET"を知っています

サーバAは、ナンスとしてUUIDを生成し、その秘密を使用して残りのペイロードと一緒に署名します。

次に、要求をサーバーBに送信します。サーバーBは、共有キーを使用して要求の有効性を確認します。 BはノンスをDBに保存し、既存のノンスと比較してリプレイ攻撃を防ぎます。

これは、サーバーBが事前に個別に要求することによって提供されるノンスと比べて安全ではないと言われました。

しかし、秘密が強いと仮定すれば、これがはるかに安全な方法はわかりません。

答えて

0

クライアントナンスと呼ばれるものがあり、サーバーナンスとも呼ばれるものがあります。どのように使用するかによって異なります。 クライアントノンスは、クライアントをリプレイ攻撃から保護することを目的としています(「サーバー」は実際には攻撃者であり、攻撃を行うすべてのクライアントに同じチャレンジを送信します)。

ノンスを別途要求する必要はありませんが、それはハンドシェイクの一部になる可能性があります。

nonce(クライアントとサーバーの両方)の使用方法について詳しくはSecurity.StackExchange Answerをお読みください

関連する問題