11

同様の質問が以前に尋ねられたかどうかはわかりませんが (何も見つかりませんでした)、中間者攻撃からクライアント/サーバーを保護することは可能ですか?

サーバーと通信するクライアント アプリケーションを作成しています。通信は SSLv3 ベースになります。サーバーの自己署名証明書には問題ありませんが、他の誰かが同じサーバー名で同じ自己署名証明書を生成し、そのふりをしているのではないかと心配しています。私のクライアント アプリケーションは OpenSSL ライブラリを使用します。[クライアントとサーバーは、違いがある場合は倹約ベースです]。自己署名証明書のサポートを維持しながら、このような攻撃を回避できますか?

4

4 に答える 4

16

はい。

要するに、自己署名証明書は、クライアントが事前に証明書を知らず、したがってサーバーが誰であるかを検証する方法がない場合にのみ、CA 証明書よりも安全ではありません。

自己署名証明書をクライアントに追加し、他の証明書を受け入れない場合、実際には、認証局の署名付き証明書を使用するよりも安全です (または、それ以上に安全であると主張する人もいます)。

認証局の有無にかかわらず、SSL を安全に保つための重要な部分は次のとおりです。

  • サーバーの秘密鍵 (および CA の場合は、そのすべてのルートの秘密鍵) は秘密にされます。
  • クライアントは、サーバー証明書 (またはその CA ルート) を知っています。
于 2012-07-30T17:10:43.740 に答える
4

サーバーの証明書をハードコーディングして、受け取ったものと比較できます。

または、さらに良いことに、CA によって署名された CA 証明書とサーバー証明書を作成します。クライアントで CA を信頼し (アプリケーションでハードコードすることにより)、CA 証明書を使用して受信したサーバー証明書を検証します。

于 2012-07-30T17:09:28.663 に答える
1

秘密鍵を十分に保護できれば、ユーザーが実際に証明書を見ていると仮定して、仲介者があなたになりすますことができなくなります。自己署名の問題は、ユーザーにブラウザに例外を追加してもらいたい場合、または警告を単に無視してもらいたい場合、他の誰かが独自の証明書を作成する可能性があるため、中間者攻撃にさらされることです。

もちろん、「秘密鍵を十分に保護する」ことは簡単なことではありません。「Verisign」証明書の料金を支払う場合、証明書を作成するソフトウェアの料金を支払うのではなく、秘密鍵が保管されている建物を守っているセキュリティ フォースの料金を支払うことになります。

于 2012-07-30T17:09:15.960 に答える