0

これは、いくつかの読みに基づいた簡単なアイデアです。

サーバーは(プレーンテキスト+ソルト)のハッシュバージョンを保存します。これにより、ハッシュを元に戻すのが難しい限り、パスワードが表示されなくなります。

クライアントがログインを試みると、サーバーはそれ(ソルト、ランダム)、つまり定数ソルトと新しく生成されたランダム文字列を送信します。

クライアントはハッシュ(ハッシュ(プレーンテキスト+ソルト)+ランダム)を送り返します。つまり、クライアントはソルトを追加し、ハッシュし、次にランダムを追加してから、再度ハッシュします。

サーバーは、ハッシュ値が自身のH(H(pwd + salt)+ rnd)と同じであることを確認します。

私はこれについてあまり経験がないので、潜在的な問題は何ですか?また、通常、塩で何をしますか?あなたは本当に同じ塩を使うことで逃げることができますか?

4

1 に答える 1

2

あなたが提案しているスキームは、パスワードのチェックにセキュリティを追加せず、ログインにSSLを使用する場合にはない複雑さを追加するだけです。SSLを使用すると、プレーンテキストのパスワードをブラウザからサーバーに安全に転送し、ソルトでハッシュしてから、保存されているハッシュと照合することができます。これにより、複雑なスキームが不要になります。現時点では、SSL接続を体系的に遮断できるのは国のみですが、非常に進取的なハッカーの中には興味深い脆弱性を発見した人もいます。

あなたが説明しているスキームは、Diffie-Helmanゼロ知識鍵交換に非常によく似ています。これは、サーバーで最初に設定された後に実際にパスワードを転送することがないため、sslよりもはるかに安全です。今日のこの種の鍵交換の問題は、クライアント側でJavascriptで記述しなければならないことです。そのため、実際の動作を、見たいと思うすべての攻撃者に公開します。攻撃者は、Javascriptを別のものに置き換えるか、SSLを使用しない場合はそれを利用して初期パスワードを収集する可能性があります。そのため、クライアントからサーバーへのSSL接続のセキュリティは追加された複雑さと障害点の束。ActiveX、Java、またはその他のアイテムを使用して、すべてのキー交換機能を処理するブラウザープラグインを作成する方法がありますが、これもまた、

Firefoxは、ブラウザレベルでのパスワードのDiffie-Helman鍵交換の実装に取り​​組んでいます。これにより、セキュリティが強化され、この種のパスワードスキームが実現可能になります。

于 2013-04-25T18:23:12.003 に答える