1

この質問があった場合は申し訳ありませんが、正確な質問が見つかりませんでした。プレーンテキストで送信される HTML フォームがあります。SSL を使用した HTTPS があることは知っていますが、証明書を購入したくありません。何らかの方法でフォーム データを暗号化することはできますか? 私は2つのことについて考えています:

  • JavaScriptを介してフォームデータをハッシュします-実際、パスワードを送信したいだけなので、その元の値を知る必要はありません。
  • RSA - JavaScript で実装できるかどうかは不明です。何を提案しますか?他のバリエーションはありますか?
4

2 に答える 2

3

ブラウザ側で実行する暗号化に関係なく、暗号化キーを使用する必要があります。これは攻撃者が利用できるようになります。そのため、パスワードはカジュアルなオブザーバーに対して暗号化されますが、標的型攻撃に対して追加のセキュリティは提供されません。

パスワードのハッシュバージョンがユーザーの承認/登録に使用されるパスワードになるため、このコンテキストではハッシュは役に立ちません。

この問題の唯一の解決策はSSL証明書です-それらは非常に安価です!

http://en.gandi.net/ssl/grid(アフィリエイトリンクなし)

自己署名証明書を使用することもできます(表示されるブラウザーの警告を信頼するようにユーザーを教育できる場合)。自己署名証明書には、証明書が合法的に調達された(たとえば、中間者攻撃でリモートホストによって提示されたものではない)ブラウザ(およびユーザー)であることを証明する「認証局」がないため「安全でない」としてそれらを却下することでかなり騒々しいです。

MatasanoSecurityにJavascriptSecurityに関する良い記事があります:

ブラウザへのJavascriptの安全な配信は、鶏が先か卵が先かという問題です。

ブラウザのJavascriptは暗号化に対して敵対的です。

Javascriptの「ビューソース」の透明性は幻想です。

これらの問題が修正されるまで、Javascriptは深刻な暗号研究環境ではなく、それに苦しんでいます。

于 2012-10-25T11:56:27.523 に答える
2
  • ハッシュは一方向のプロセスです。ハッシュから元の値を見つけることはできません。
  • javascript用のblowfish暗号化ライブラリがありますが、(Andyが彼の回答で述べたように)暗号化に使用するキーはクライアントに送信されるプレーンテキストで利用できるため、その目的はよくわかりません。

これを行うための標準的な(そしてところでのみ)方法はhttpsです。独自の証明書を使用してSSLを有効にすることができ、購入する必要はありません。ただし、ブラウザは、証明書が既知の機関によって署名されていないことを訪問者に警告する場合があります。

于 2012-10-25T11:56:22.803 に答える