0

サインインページからログインとパスワードを転送する際のセキュリティを強化することを考えています。インターネットでjavascriptmd5関数を見つけたので、パスワードを送信する最初の方法は、POSTメソッドを使用してパスワードの代わりにmd5ハッシュを送信することです。私が理解しているように、それにはまだ多くの問題があり、その方法は改善されるべきです。データベース内のパスワードは保存されず、md5ハッシュ(他のいくつかの関数も使用されて少し複雑になります)のみが保存されます。しかし、私の質問は、ホスティングプロバイダーからのSSL暗号化を好むことはすべて理にかなっているのか、それとも良いのかということです。車輪の再発明をする代わりに、年間約100ドルの費用がかかります(私の質問に関しては良い価格だとしましょう)。sslのマイナス(私が間違っていない場合)は次のとおりです。ログイン部分がメインページにある場合、メインページの読み込みが遅くなります(ただし、Yahoo!

使用方法(SSLなし):1)ユーザーがログインすると、実際のパスワードの代わりにmd5(パスワード)が送信されます2)サーバーがmd5(パスワード)を受信し、md5(md5(パスワード)+'kjhgkjhg'になります)そしてdbに保存されているハッシュと比較します。dbは、すべてのユーザーのmd5(md5(password)+'kjhgkjhg')ハッシュを格納します。その結果、md5(password)がスニッフィングされた場合、'kjhgkjhg'が不明であるため、md5(md5(password)+'kjhgkjhg')を取得するのに役立ちません。ログインページを保護するのに十分な方法ですか?

ありがとうございました。

4

2 に答える 2

1

ブラウザにハッシュMD5(password + random())を作成させ、MD5(password)の代わりにそれを送信して、将来誰もハッシュを使用できないようにする必要があります。次に、サーバーにクリアテキストまたは双方向の暗号化されたパスワードを設定し、サーバー側で同じ操作を行って結果を比較する必要があります。同じランダムを再度使用できないように、ブラウザに送信されたランダム文字列をサーバーに保存する必要があります。これはうまくいくでしょうが。

  • 誰かが途中でセッションを乗っ取る可能性があります。Cookieをキャプチャし、同じIPを使用するだけで、サーバーはすべて無防備です。
  • SSLがないと、ユーザーは自分が正しいサーバーに接続したことを知る方法がなく、コンテンツは変更されません。
  • ユーザーのWebサイトのアドレスとトラフィックは、中間者またはコンピューター上のトロイの木馬が引き続き読み取ることができます。
  • 通常、ブラウザのパスワードの保存は失敗します。

でも、はい。SSLは遅くなる傾向があり、それらのダーン証明書は期限切れになり、すべてが壊れます。

于 2011-11-26T08:59:28.660 に答える
1

SSLを使用します。これについて言うことは本当にほとんどありません。安全な認証を再発明しようとする、間違ってしまいます。

SSLを使用しないことを提案した2つの理由は、コストと速度です。

コスト:通常のSSL証明書とEVSSL証明書のセキュリティに違いはありません。EVは(E)xtended(V)alidationの略であり、認証局があなたが本人であるかどうかを確認するためにもう少し時間を費やすことを意味します。コストが問題になる場合は、より安価なSSL証明書を入手してください。

速度: SSLネゴシエーションによって引き起こされる速度低下は、最近では非常に小さいです。yahoo.comへのHEADリクエストを実行する簡単なテストを行ったところ、1000のSSL接続で平均0.2秒、1000の非SSL接続で平均0.1秒でした。ページリクエストに0.2秒かかる場合は、SSLレイテンシが問題になる可能性がありますが、1秒かかる場合は、他の何かが遅い理由です。

http://security.stackexchange.comでパスワードを保存および送信する方法を検索すると、安全に行う方法に関する多くの優れたアドバイスが見つかります。

于 2011-11-26T11:49:47.337 に答える