2009-07-23 32 views
5

私は、SSLで新しくなっています。有料のデジタル証明書を読み、WebサイトhttpsでSSLを使用した後は、//ネットワーク層でデータ転送が安全です。SSLを使用しない安全なログイン資格情報

私のアプリケーションでは、loginnameとpassword以外のセキュリティ上の懸念はありません。

のSSL HTTPSを使用せずにLOGINNAMEとパスワードを保護する方法はあります://

+1

はい、しかし、それは良い保護ではありません。中間者攻撃は、このセキュリティメカニズムを簡単にクラックさせる可能性があります。 –

答えて

3

プレーンなHTTPに対して安全に動作する認証スキームがいくつかあります。これらの中で最も一般的なものはDigestです。これはすべての主要なWebブラウザとほぼすべてのWebプログラミングフレームワークでサポートされています。認証がほぼ同じ見栄えしないウェブサイト上でブラウザ自体ではなく、ログインページによって処理され

  • ウェブサイトのダイジェストを使用してのダウン側は、ということです「パスワードを忘れましたか?」のような周囲のヘルパー機能をすべて持たせることはできません。私たちが今日期待していること。

  • SSL接続がない場合、認知度の高いユーザーは、資格情報を入力するときにSSL接続を探すように訓練されているため、パスワードが不安定に送信されている可能性があります。

もプレーンなHTTP上で安全であるが、それはウェブサイトよりAPIの本当に多くあるので、おそらくあなたが望むものではありません、このようなOAuthなどの他の方式があります。

+2

ダイジェストは厳密に安全ではありません。コンピュータ間のトラフィックを見ることができる人は、依然としてダイジェストされたパスワードを傍受し、ダイジェストされたパスワードを使用してHTTP要求を模擬/修正し、依然としてウェブサイトにアクセスする可能性があります。 – tschaible

+0

他のほとんどの認証方式でも同様の問題が発生します。認証クッキーの発行などのトークンベースの認証も傍受して偽装することができます。両方とも緩和される方法は、期限切れのトークンを持つことです(ダイジェストはこれをノンスと共に行います)。すべての接続がSSL経由で行われていない限り、真に安全なものは何もありません(本当に安全ではありません)。 –

+0

ああ、私は答えを得た、良いようです。 MD5アルゴリズムを使用して、クライアントでパスワードのハッシュ値(暗号化)を生成できます。クライアント側でそのキーを使用してログインページの要求がある場合、そのサーバーはランダム値キーをクライアントに渡す必要があります。パスワードを暗号化してサーバーに送信できます。 サーバは鍵を知っているので、それを解読することができます。 私はこの解決策が良いと思います。あなたの意見は何ですか? –

1

証明書が自己のものを署名することができます。必ずしも有料のものである必要はありません:)

+0

サー、 あなたは私のウェブサイトで無料のデジタル証明書を使用できるように、私に詳細を教えてください。また、どのように私はウェブサイトのためにそれを設定することができます –

+1

無料の証明書を発行するcacert.orgもあります。彼らはデフォルトでブラウザによって信頼されていませんが、自己署名よりも優れています。 – stribika

1

また、私は現在、それを使用していますStartSSL.Org を試すことができますし、それはNOの代替にはありませんでも素晴らしい作品が、それはcacert.orgとして何とか同じ、それらはデフォルト

2

により、ブラウザによって信頼されていませんユーザーがログインしているすべてのページでSSLを使用する以外のブラウザでのHTTPセキュリティ。他の技術は完全に安全ではなく、あいまいな層ではありません。

HTTPを介した任意の自作ソリューションは、他の脆弱性の中でもMITM攻撃に対して常に脆弱です。

SSLを使用しても、ログインの&セッションメカニズムは安全でなければならず、他の悪用方法を使用してクラッキングする必要があります。

0

このトピックでは、opensslを使用して独自の(自己署名)証明書を取得することができます。

自己署名証明書を生成するには、まずRSA鍵とCSRを生成する必要があります。 OpenSSLのインストールされたLinuxマシン上:

openssl genrsa -des3 -out mydomain.key 1024 

openssl req -new -key mydomain.key -out mydomain.csr // fill in the details 

mv mydomain.key mydomain.key.org 

openssl rsa -in mydomain.key.org -out mydomain.key  // creates passphraseless key 

openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt 
0

うーん、古いスレッドを開くことを憎むが、私は正確としてこれを見ていませんよ。

私は、検証可能な証明書を破るのは難しいと認めますが、かなりの頻度でテストサイトに自己署名証明書を使用します。私は、シンプルな自作のソリューションが、自己署名入りの証明書と同じくらい良いことができると確信しています。

ええ、私は、鍵(またはgpgのようなもの)をあらかじめ少し前倒しすることで、あらゆることが安全であるとも言えるでしょう。

+0

あなたのクレームをバックアップする参考資料を提供してもらえますか?本当なら、彼らは非常に興味深いでしょう。 – Lizz

関連する問題