私は、時間に敏感な疑似ランダムワンタイムパスワードの生成を検討しています。時間の影響を受けやすいメッセージ検証ハッシュ - 緩やかな時間値を取得
メッセージを送信するには、ユーザーがパスワードを入力します。パスワードがメッセージとともにハッシュされます。生成されたハッシュは、確認のためにメッセージとともにサーバーに送信されます。サーバーは同じハッシュを実行し、その値を提供された値と比較します。
verificationKey = Hash(message + password);
これはユーザーに対してメッセージを確認するのに問題ありませんが、攻撃者による繰り返しの送信を防ぐ必要があります。攻撃者は同じ情報を再度提出するだけで、受け入れられます。
本質的に、私はハッシュに含めるために緩やかな時間ベースのキーが必要です。何かは、異なる時間に対して異なるハッシュ値を意味するが、通信の遅れを説明するのに十分な余裕を持っている。
verificationKey = Hash(message + password + time);
明らかに時間値が特定の場合、クライアントとサーバーの不一致が問題の原因になります。時刻の値が最も近い時間に丸められても、メッセージの通信に要した時間のために値が異なる可能性のある時刻(x:30)があります。
誰も私がこのような緩やかな時間の値を取得する方法についてどのような提案を与えることができますか?
両方の良い答え - 私はたぶんdanbrucを実装するでしょう - それはより簡単です。おかげさまで – Damovisa