0

クライアントとサーバーがあるとしましょう。クライアントがサーバーに「接続」する場合は、パスワード(プレーンテキスト、https経由で送信)を提供する必要があります。クライアントがパスワードを覚えているとしたら、それは非常に多くの脆弱性を開きます。これらは回避できますか?

4

1 に答える 1

2

サーバーがパスワードを覚えているかどうかということだと思います。パスワードを覚えているクライアントは、利便性とセキュリティの間の直接的なトレードオフであり、そこで議論することはあまりありません。

「ハッシュ」を介してパスワードを実行します。これは基本的に一方向のプロセスです。パスワードからハッシュに取得することはできますが、ハッシュからパスワードに取得することはできません。サーバー側では、ハッシュのみを保存します。誰かが認証したいときは、パスワードを取得してハッシュし、保存されているハッシュと比較します。この方法でパスワードをプレーンテキストで保存する必要はありません。

これは非常に基本的なパスワード処理です。それを正しくするためのいくつかの微妙な点があります。ここにac#の実装に関するいくつかの議論があります:C#のハッシュとソルトのパスワード

クライアントがパスワードを覚えているという意味の場合でも、パスワード自体を保存する必要はありません。サーバーで認証し、一定時間後に期限切れになるトークンをサーバーに返すようにします。このトークンは、有効なときにログインするためのクレデンシャルとして適しています。クライアントはトークンを保存するだけで済みます。

于 2012-11-09T02:58:44.610 に答える