自己署名SSL証明書は誤ったセキュリティの感覚ですか?


回答:


25

興味深い質問、それは私の意見での使用に依存します。セッションは暗号化されているという点で保護されていますが、CAルート証明書をユーザー/クライアントに配布しない限り、提示された正しいSSL証明書であるかどうかを知る方法はありません。内部テスト/開発プロジェクトの場合、これはうまく機能します。ユーザーに配布するルートCA証明書を生成し(WindowsのグループポリシーとLinux / BSDのopensslコマンドラインで実行できます)、そのルート証明書を使用しますCSRに署名します。ユーザーには警告などは表示されず、証明書が内部CAによって署名されていることがわかります。

これを保証できない外部サイトについては、パスワードまたはその他の機密情報を接続経由で送信する場合、自己署名証明書はSSLをまったく使用しないよりも優れていると思います。

ただし、プラス面には、非常に安価な「商用」証明書発行者がたくさんあり、GoDaddyもその1つです。年間約40ユーロで証明書を取得できます。GoDaddyは、OpenSourceプロジェクトのWebサイトに無料の証明書を提供します。


これがまさに私たちの仕事です。ただし、安価な証明書には注意してください。いくつかのルートCAはかなり奇妙であり、これらのすべてがすべてのブラウザーに付属しているルートCA証明書のコレクションに含まれているわけではありません。
wolfgangsz

4
除く1「自己署名証明書は、より優れた全くSSLよりもある」 - 場合に限っあなたはそれがあなたの証明書、およびないMITMによって提供される一つだことを確認してください。正直なところ、普通のユーザーが最後にやったのはいつですか?(答えはブルームーンと空飛ぶ豚に関係すると思われます)言い換えると、CA証明書をユーザーに配布せずに自己署名SSL証明書を使用すると、ユーザーが受け取る恐ろしいアラートに対してユーザーを鈍感にさせます-彼らは学習しますクリックして、「まあ、彼らはmysite.example.comの警告を無視するように私に言ったので、どこでも無視できます。見て、鍵のアイコン!」出来上がり、誤った安心感!
Piskvor

7
@Piskvor、実際にはブラウザのせいです。第一に、ブラウザは一般に、以前は知らなかった自己署名証明書を「永久に受け入れる」方法を提供しないため、ユーザーがログインするたびに危険にさらされることはありません。第二に、ブラウザは古いプレーンHTTPの使用を妨げません。また、誤ったセキュリティ感覚を生み出します。そのため、セキュリティとユーザー認識の両方において、HTTPは常にHTTPSよりも劣っています(少なくとも警告が表示されます!)。
ローター

1
@Rotsor:まず、Operaにはこの機能が組み込まれています。FFには証明書パトロールがあります(少なくとも証明書の変更を警告します)。また、SSL上のすべてがブラウザ(IMAPSなど)ではないことに注意してください。第二に、既存の過多なHTTPのみのサイトはブラウザのせいですか?(そして、HTTPSのみのブラウザは、彼らと一緒にブラウジングするための非常に小さなネットがあったからこそ、決して捕まえませんでした)。第三に、ユーザーのみがそれを読む場合は「警告を受け取る」が役立ちます。盲目的に「同意する」をクリックして警告を消さないでください。「同意するという意味は理解すること」は、開発者が共有する妄想です。
-Piskvor

1
@Piskvor、一部のブラウザがその機能を提供していることを知っているのは良いことです。HTTPについては、何をする必要があるかわかりません(HTTPを許可しないことは明らかにオプションではありません)が、SSLを使用しない場合よりも自己署名SSLを使用した場合にセキュリティ関連の警告を表示することは間違いです。せい!
ローター

12

私は、狭い技術的根拠と一般的な根拠の両方で、意見が分かれます。

狭い技術的根拠は、OPが自己署名証明書について尋ね、他のいくつかの回答がプライベートCAによって署名された証明書を参照していることです。これはわずかに異なる問題です。しかし、それほど大きな違いはないので、実際のところ、これは単なるメモです。

主要な異議は、商業的に署名された証明書が些細な費用以上である限り、そしてこの地球上の多くの人々にとって年間40ドルは些細な費用ではない限り、自己署名証明書が果たすべき大きな役割を持っていると思うことですインターネットセキュリティでは、制限が認識されている場合に限ります。

自己署名証明書は、私のknown_hostsファイルのsshキーのようなものです。独立した検証がなければ、私が信じているシステムと話していることを保証できません。しかし、今話しているシステムは、前回会話をしたと思ったときと同じシステムであることを保証できます。私たちは常にsshキーをキャッシュしますが、自分のknown_hostsファイル内の公開キーのほんの一部以上を独自に検証したシステム管理者に会ったことはありません。

自己署名証明書(さらに言えば、一般的に有効でないCAによって署名された証明書)は、SSLを検証しない限り、サーバーへの通信のみをセキュリティで保護することを人々が認識している限り、SSLをまったく使用しないよりもはるかに優れていますDNSレコードのもう一方の端、および現在回線にいる中間者。証明書を個別に検証する場合、認証と暗号化は、少なくとも認証されたCAによって署名された証明書によって提供されるものと同じくらい強力です。

1-と専用のインターネットセキュリティ万能薬のような問題についてハード考える必要があるかもしれませんとして認識CAによって署名された証明書の使用を提示したい。また、これらの標準のMozillaバンドルの中国政府の署名CAを含めること、およびComodoによって署名された不正なSSL証明書


残念ながら、「信頼できるCA」モデルは実際に壊れています(そして何年も前から)。残念ながら、それはなくなりません(実際に置き換えるものはありません)。いつものように、SSLと信頼できるCAは魔法のようなセキュリティの妖精の塵ではありません。ユーザーはセキュリティを積極的に維持する必要があります-これは、ほとんどの場合、かなりおかしな仮定です。
-Piskvor

2
ユーザーは、現在のDNSサーバーへのパスの整合性(キャッシュポイズニングの可能性を含む)およびヒットしているデバイスの信頼性レベルについて教育を受けた評価を行うことができますか?私はDNSが何であるかを知らず、MPLSを介して別のサイトに接続され、クライアントVPNを介してユーザーに接続されている別の状態のサーバーへの接続について、教育されたセキュリティの決定を下すことができません暗号化されていないコーヒーショップのwifi経由で。彼らにその責任を与えないでください。
シェーンマッデン

2
@Shane Madden:これが可能な1つの領域は、管理Webフロントエンドです。たとえば、phpMyAdmin(または、程度は低いが、SVN over HTTPS)です。通常、ユーザーの数は限られており、手がかりのかなりの部分が含まれています。私のgreat祖父がSSL証明書の警告の先頭や末尾を作ることは期待していませんが、特にhirの制御下にあるサーバーの場合は、これを仲間のシステム管理者に間違いなく期待しています。園芸品種のユーザーはknown_hosts、@ MadHatterが参照しているという手掛かりもありません。
-Piskvor

8

ユーザーにCA証明書がインストールされていない外部サイトの場合(最も一般的なケースです)、はい、自己署名証明書は誤ったセキュリティを提供するため、役に立たないよりも悪いです:

  • まず、CA証明書が事前にインストールされていない場合、ユーザーが証明書が攻撃者からではなく実際にあなたからのものであることをどのように確認しますか?もちろん、証明書フィールド(CN、指紋など)を照合することにより-しかし、何に対してですか?そのため、証明書を検証するためにサイドチャネルが必要になります-いくつかの例では、サポートラインオペレーター(検証用のサイドチャネルとして機能するはずだった)は、それが何を意味するのかわかりません。また、そのようなサイドチャネルの操作は、信頼できるCA署名付き証明書を取得するよりも桁違いに高価なので、ユーザーは盲目的にあなたを信頼する必要があります。

  • 第二に、ユーザーが受け取る恐ろしいアラートは、正当な理由で怖いです。ユーザーは提示された証明書を検証できない/検証できないため、Elbonian Haxx0r D00dzにデータを安全に送信している可能性があります。

  • 第三に、そして最悪なことに、あなたはユーザーを鈍感にしている。「彼らは私にhttps://mysite.example.com/の警告を無視するべきだと言ったそして金床頭に落ちなかった。金魚も死にませんでした; sooooo、それは実際の意味のない単なる別の警告ボックスであるため、このボックスに遭遇するたびに無視することができます。

言い換えると、保護レベルはプレーンHTTPに匹敵します(オンザワイヤスニッフィングを除く:データは転送中に暗号化されますが、これはエンドポイント検証のないかなり貧弱な機能です)が、保護は不当に高いです。悪い車のアナロジー:「私はABSを持っているので、悪い状態でも安全に運転できるようになりました」-ABSは車の販売パンフレットにしか存在せず、実際に車にいることはありません。

推奨読書:OWASP SSLベストプラクティス

TL; DR:一般向けのサイトで自己署名証明書を使用することで、一度に1人の無知なユーザーが、ネットをより悪い場所にしています。


2
@downvoter:私の答えが事実上間違っている(「不快で、不便で、実装するのが面倒」ではなく「不正」である)ことを指摘していただければ幸いです。セキュリティは難しく、「聞こえない」と言っても、それを修正することは何もありません。
-Piskvor

2
私はあなたの答えを下票しませんでしたが、下矢印のツールチップテキストは、答えが役に立たないこと以外の理由で下票を示していません。セキュリティの振り子の誤った感覚も、他の方向に揺れる可能性があると思います。最近のコモドRA違反は、「悪者」が完全に正当な証明書を入手することもそれほど難しくないことを証明しています。
mahnsc

@mahnsc:リマインダーをありがとう。私はそれを承知しています:-)「自己署名SSL証明書は誤ったセキュリティ感覚ですか?」「はい、次の理由で...」と思われますか?それで、なぜそうならないのか興味がありました。反対の見方から何かを学ぶことができました。それほど多くはありません。
-Piskvor

1
@mahnsc:侵害されたCAについての良い点。ルートCAリストが明確でハッキング不可能に設定されていると言っているわけではありません-完全なセキュリティは存在しません。それは破るためにかなりの努力とることをネットワークゲートウェイ上で捕捉し、SSLプロキシを設定するよりもを。
-Piskvor

1
@mahnsc:SSLプロキシをセットアップし、偽の証明書要求がCA検証プロセスをすり抜けることを期待するよりも、SSLプロキシをセットアップし、ユーザーが警告をクリックすることを望んでいることを意味しました。これまで見てきたように、どちらも可能ですが、前者の方がはるかに簡単です(そして、ブラウザユーザーは通常監査証跡を保持しないため、後で検出することはより困難です)。
-Piskvor

8

依存します。あなたがそれがあなたをより安全にすると思うなら、それはあなたがあなたの誤った安心感でより危険なことをすることを選ぶのであなたのリスクを増加させます。機能的にHTTPと同等に扱うなら、もう少し安全だと思います。

SSL / HTTPSを使用しない場合、ネットワーク上のWiresharkを使用するユーザー(またはログインするユーザーのローカルネットワーク)は、プレーンテキストとして送信されたユーザー名/パスワードを簡単にリッスンしてキャプチャできます。

自己署名SSLでは、単純に傍受することはできませんが、サイトを偽造し、DNSを変更してman it the middle(MITM)攻撃を行う可能性があります。これは依然として脅威ですが、彼らが達成することはかなり困難です。

自己署名SSLを使用することに関する他の問題は、多くのブラウザが自己署名証明書を主要なセキュリティ脅威として扱い、巨大な赤いページで入力する前に警告することです(たとえば、クロム)。 http://www.sslshopper.com/article-ssl-certificates-in-google-chrome.html これは大きな不便を伴う可能性があります。

要するに、特に安全である必要のないもの(クレジットカードデータや社会保障番号など)を実行せず、適切な証明書を購入できない場合、自己署名証明書が意味をなす可能性があります。 (他のネットワークユーザーがログイン情報を簡単に盗聴できないようにするため)。


0

それはあなたが「セキュリティ」で何を意味するか、そしてどの程度かによって異なります。

たとえば、ブラウザにはデフォルトで受け入れられるCAのセットが付属しています。つまり、このCAによって発行された証明書はすべて(ブラウザがDNS名と一致するまで)受け入れられます。ここで、悪意のある政府がCAを所有しているか、または訪問しているサイトの証明書をCAに強制的に発行させることを想像してください。次に、MITMを実行するのは非常に簡単です。接続をプロキシし、所有している証明書をブラウザに送信できます。ブラウザは「信頼された」CAから送信されるため、それを受け入れます。それらがDNS透過(MITMのベース)になるまではこれでかまいません。

したがって、「承認されたCAのリスト」は、このCAの1つが悪の政府と協力するまで、基本的に大きなセキュリティホールです。独自のCAを持つ方がはるかに優れています。

もちろん、自分のCA証明書をクライアントにインストールできるので、会社またはホームサーバーでそれを行うことができます。パブリックサーバーでは、例外を追加したり、証明書を追加したりするようユーザーに要求することはできません。

したがって、「セキュリティ」の意味とスコープによって異なります。クライアントを所有している場合、確かに、自分自身のCAの証明書をクライアント自体にインストールするまで、自己署名の方が安全です。

もちろん、すべてのクライアントを所有しているわけではないため、公開Webサイトでそれを行うことはできません。そのため、さまざまな動作が危険にさらされますが、これは安全ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.