以下に示す多段階認証を実装しました。
角かっこ([および])はハッシュを表します
クライアントには、認証に使用されるキーとシークレットがあります。サーバーには、キー、ソルト、および[シークレット+ソルト]を含む行を含むデータベーステーブルがあります。
Client Server
| |
----------------- key -------------------->|
| |
| |
|<--------- server-nonce -------------------
|<------------ salt ------------------------
| |
| |
------------ key ------------------------->|
------------ client-nonce ---------------->|
--[c-nonce + s-nonce + [secret + salt]] -->|
| |
次に、サーバーは受信したハッシュを自身の情報と照合します。
私の懸念は、これにより、攻撃者がサーバーからソルトを取得し、レインボーテーブルを作成してそのアカウントをハッキングできるようになることです。これについてどう思いますか?