ローカルで生成できるのに、なぜSSL証明書を購入する必要があるのですか?


57

openSSLを使用してローカルで生成できるSSL証明書を購入する必要がある理由を理解できません。購入した証明書とローカルで生成したテスト証明書の違いは何ですか?それは単なる大きな詐欺ですか?


17
情報セキュリティのためのCIAトライアドに関しては、自己署名証明書は機密性整合性を提供します(つまり、2者間で暗号化されたメッセージを許可します)が、信頼できるソースによって署名された証明書のみが信頼性を提供します(つまり、暗号化された会話の相手実際にあなたがそう思う人です)。
-apsillers

10
願わくば、DNSSECが登場すると、人々が自分の証明書を作成し、それをDNSレコードに保存できるようになります。DNSSEC信頼チェーンは、証明書がドメインの所有者に属していることを証明するのに十分です。(これは正式な仕様ではありませんが(まだ)いいと思います)
-jackweirdy

2
内部使用の場合は、グループポリシー(Windows)を使用して、信頼できる証明書を展開できます。
ベン

4
私はよく、なぜ人々も自分の印刷されたお金を受け入れないのだろうと思います;)
tgkprog

1
注:無料の基本証明書プロバイダーがあります。これらにより、人々のニーズの90%を満たすことができます。また、一部のCAには非常に低コストの証明書があり、必要なものを何でも問題なく破る理由はありません。(もちろん代表団の短い)
クリスS

回答:


72

一言-信頼。ブラウザーが信頼するプロバイダーからのSSL証明書は、彼らがあなたがあなたであると言う人であると言うために少なくとも基本的な検証を行ったことを意味します。

それ以外の場合は、google.comまたはyourbank.comの独自の証明書を作成し、それらのふりをすることができます。

有料の証明書は、自己署名(通常)よりも余分なレベルの暗号化を提供しません。ただし、自己署名証明書を使用すると、ブラウザーでエラーがスローされます。

はい、SSLの一部は詐欺(verisign証明書と最大100倍高価なジオトラスト)ですが、すべてではありません。

これがすべて内部のものである場合は、独自の信頼方法を使用できるため、有料の証明書は必要ありません(例:何もしない、または単に指紋をチェックするなど)。


8
すべてが内部のものである場合は、グループポリシーを使用して証明書を信頼できるものとして展開できます。
ベン

2
一方、ドライバーの署名は少しの詐欺です。それが何であるかについては、はい、それは巨大な詐欺ですが、私たちには選択肢がありません。 成功
マット

2
@Matt-以前にその記事を読んだことがあります。職場でコード署名を行うことを検討していたとき。自己署名し、署名を確認するようにアドバイスすることにしました。ありがたいことに、非常にハイテクユーザーがいます(ほとんど)。
マークヘンダーソン

そして、自己署名証明書はすべてのブラウザーで警告を生成します。プロバイダーからの証明書は、それらのプロバイダーの公開キーが組み込まれているため、すべての主要なブラウザーで検証できます。また、証明書を検証し、プロバイダーによって実際に署名されたことを確認できます。
マット14年

23

SSL証明書の要点は、ブラウザがHTTPSトランザクション用のサーバーの公開キーを合理的に信頼できるようにすることです。

最初に、証明書を使用しなかった場合にどうなるかを見てみましょう。代わりに、サーバーは公開鍵をプレーンテキストで送信し、ブラウザーはそれを使用して暗号化通信を開始します(最初に行うことは、独自の公開鍵を暗号化して安全に送信することです)。私と攻撃者が真ん中に侵入した場合はどうなりますか?その場で公開鍵を自分のものに置き換え、ブラウザと暗号化された接続を確立し、受け取ったすべてのものを解読し、公開鍵で暗号化して送信します(応答型トラフィックの場合はその逆)。誰も事前に公開鍵を知らなかったので、誰も違いに気付かないでしょう。

さて、ブラウザが私の公開鍵を信頼するための何らかの方法が必要であることを確立しました。これを行う1つの方法は、登録されたすべての公開キーをブラウザに保存することです。もちろん、これは誰かが公開鍵を登録するたびに更新を必要とし、これは膨張につながります。DNSサーバー1の手に公開鍵を保持することもできますが、DNSサーバーもスプーフィングされる可能性があり、DNSは安全なプロトコルではありません。

したがって、残された唯一のオプションは、署名メカニズムを介して信頼を「連鎖」することです。ブラウザはいくつかのCAの詳細を保存し、証明書は他の証明書のチェーンとともに送信されます。各証明書は次の証明書に署名し、ルート/信頼/組み込みCAに進みます。証明書に署名する前に、ドメインがあなたのものであることを確認するのはCAの仕事です。

CAになることはビジネスであるため、この料金を請求します。他のものよりもいくつか。


独自の証明書を作成した場合、次のようなエラーが表示されます。

ここにリンクの説明を入力してください

署名されていない証明書には価値がありません。それは、鉛筆と小冊子を持ち、自分がバラク・オバマであると主張するパスポートを描くようなものです。誰もそれを信用しません。

1.結局、ドメインを登録すると、DNSエントリが作成されます。公開鍵を同時に登録できる、より堅牢なプロトコルを使用することは興味深い概念です。


SSL証明書にDNSSECステープルを使用することもできます。そのため、証明書は(最終的に)別の認証局からではなく、CAとしてICANNから派生します。Chromeは以前は使用していましたが、現在のブラウザーはこれをサポートしていません。
リチャードガズデン14年

そして最近では、特定のサービスを特定のキーまたは特定のCAに制限できるDANEとそのDNS TLSAレコードがあります。
パトリックメヴゼク

5

質問への答えは聴衆によって異なります:証明書のシステム全体が「信頼」に基づいているため、ユーザーは証明書を自分で証明できるか、このチェックを行って署名によって成功を示す第三者を信頼する必要がありますあなたの証明書。私が使用した「証明書を証明する」という用語は少し不正確です。長いバージョンは「あなたが証明書の所有者であり、使用を許可されていることを証明する」必要があります。

すべてのユーザーが個人的にあなたを知っており、証明書が自分で発行されたことを証明する技術的能力がある場合、「認定」プロバイダーからの証明書を使用する技術的な必要性はありません。この場合、自己署名証明書は、そこにあるプロバイダーの証明書よりも優れている場合があります。

しかし、ほとんどの場合、ユーザーが自分でこのプロセスを実行する可能性はありません。ここで、それらのSSLプロバイダーが市場に登場します。これらのサービスは、これらのチェックを行い、証明書に署名することでチェックの結果を表現するサービスを提供します。しかし、心に留めておくべき重要な事実の1つは、証明書に署名することにより、SSLプロバイダーが独自の署名ポリシーに従って証明書発行者のIDを確認したことを表明することです。したがって、ユーザーは、このポリシーが十分に正確であるかどうか、およびプロバイダーを信頼できるかどうかを判断する必要があります。


4

要点は、証明書が自己生成である場合、一般ユーザーはその真実性を検証する方法がないことです。購入した証明書の場合、彼らは少なくとも証明書内に印刷されているものが正しいことを検証することを想定しています。アイデア:証明書に電話番号と住所を入力すると、CAはそれを検証することを想定しますが、ほとんど行いません。

さらに、購入証明書は追跡可能です。つまり、ユーザーはいつでも証明書の出所を追跡できますが、自己署名証明書はランダムなIDにすぎません。

多くのシステムでは、過去に承認されたCAから「コード署名」が必要でしたが、これはポリシー駆動型ですが、自己署名証明書が非常に多いため、現在は100%施行されていません。


4

技術的な違いはありません(独自のセキュリティはそれほど安全ではありません)。ただ組織的な違いです。CAの証明書はブラウザの標準インストールの一部ではありません。これにより、ほとんどの人が証明書に接続するのが不快になります。しかし、内部ネットワークの証明書を購入することは意味がありません。


3

それは信頼に帰着します。「認証された」SSLプロバイダーは、サーバー自体からの自己署名証明書に対して、信頼できる(これは操作できますが)と思われます。

組織に独自の証明書署名がある場合、これは完全に受け入れられ、ユーザーに警告を表示することはありません(信頼できるソースとして証明書キーチェーンを使用している場合)が、外部で使用しようとすると警告が作成されます。

結論:社内で使用する場合は問題ありません。有料の顧客に外部で提供する場合、警告が表示されなくても安心です。認定された情報源を介して金融取引を行っている方が安全だと思いますか、それとも知らない通りに立っている人がいますか?


3

最近、LetsEncryptは、有効な証明書を生成するためのコマンドラインツールの可用性を発表しました。

検証用の電子メール、複雑な構成の編集、有効期限の切れた証明書はありません。もちろん、Let's Encryptは無料で証明書を提供するため、支払いを手配する必要はありません。

これらの証明書が主要なブラウザーで有効かどうか疑問に思う人には、答えは「はい」です。

2015年10月19日、中間証明書はIdenTrustによって相互署名され、Let's Encryptによって発行されたすべての証明書がすべての主要なブラウザーによって信頼されるようになりました。[20]

..... 2016年3月8日に、Let's Encryptは7か月間存在してから100万番目の証明書を発行しました。[39]

2016年4月12日、Let's Encryptはベータを終了しました。

システム管理者と開発者向けのリンク:https : //letsencrypt.org/getting-started/

ブロックチェーン技術とサードパーティの信頼システムの排除の時代に、選択された少数の当局による高価な証明書の発行が疑問視され始めました。

Letsencryptはブロックチェーン技術とは関係ありませんが、正しい方向への出発点です。毎年、高価な認証局に高額の料金を支払う必要性は、論理的な終わりに近づいています。


2

簡単に言えば、自己署名SSL証明書は何の意味もありません。それは外界にとって価値がありません。「私はスペインを所有している」と言っているようなものです。あなたは正直にそう思うと思うかもしれませんが、誰もあなたの主張を認めようとしません。

同様の例えは、何かを発明し、その発明の権利を所有していると主張することですが、オフィスで特許を登録しない限り、あなたの言葉を信じるのは難しいでしょう。


証明書の重要な点は、人々が信頼する機関によって署名されていることです。一部のWebサイトに有効なSSL証明書がある場合、所有者がWebサイトの登録、SSL証明書の支払い、実際の認証局からの公式認証の取得に苦労していることを意味するため、安価なフィッシングWebサイトではない可能性があります。一方、自己署名証明書を信頼する場合、フィッシングWebサイトは、自分で作成した偽造証明書(喜んで受け入れます)を作成することができます。

もちろん、これがプライベートイントラネットの内部ネットワークである場合は、おそらく既に相互に信頼しているため、この場合、信頼できる証明書は実際には何も追加しないので、ブラウザがあなたに投げかける明るい赤信号を安全に無視できます。クライアント/サーバートラフィックを暗号化する必要がある小規模なWebサイトでも同じですが、脅威モデルは強力な認証を保証しません。この場合、自己署名証明書を取得して受け入れます(脅威モデルでは無視できます) MITMのリスク。

信頼できるSSL証明書がどれほど高価であるかを考えると、おそらくこれで十分でしょう。


言い換えれば、自己署名証明書は、「私は自分が誰であるかを証明します- 私を信頼してください!」と言うことになります。


2
これは正しいことですが、有料証明書は、誰かが証明書機関にお金を払うというトラブルを経験したことの証拠にすぎないことまだ注目に値します。Verisign / Namecheap / Whatever-CAの反対側にいる営業担当者は、証明書をhostmaster@example.orgに送信するだけです(例:exqmple.orgにフィッシングサイトを送信する) 。
89c3b1b8-b1ae-11e6-b842-48d705

1
@tristan確かに、彼らはこの種のことにより良い形式の手順を使用することができますが、物流上の要件は不合理だと思います。
トーマス

1
@tristan-それは不完全なシステムですが、認証局は信頼できるインセンティブを持っています。たとえば、ランダムな人にGoogle証明書を与えた場合、すべてのブラウザからすぐに削除されます。また、理論的にはより多くのチェックを行うことを意味する「拡張検証」証明書も提供します。彼らの誰もが、それが彼らの評判を強化し、彼らにビジネスを獲得するだろうと思ったならば、これは対面のDNA検査を必要とすることを決定することができます。
ネイサンロング

1
@NathanLong「Google証明書」を悪意のあるチャップに与えることではなく、EV証明書でさえ「このドメインからの電子メールに応答できる」チェックにすぎません。とにかく、a)ユーザーはまだpayqal.comにお金を渡さないことを知っておく必要がある、b)SSLのコスト障壁は一部の詐欺師にとっては価値がない、c)支払われた証明書はそれ以上であることを意味するそうなサイトは1が欲しかったDNSルックアップである可能性が高い、そしてd)それは「あなたがチェック最後の時間よりも、このサーバが異なる/同じ人が所有している」のシナリオでシード値を提供するための合理的なアプローチだということ
89c3b1b8- b1ae-11e6-b842-48d705

トリスタン、それは費用の一部です。非常に安価な証明書は、非常に安価な検証を行います。非常に高価な証明書(エンタープライズレベル)は、非常に高価な検証を実行できます。(ただし、価格は検証作業がどれだけうまく行われたかを直接示すものではありませんが)一部の証明書は、あなたが誰であるかを完全に保証しますが、ほとんどの場合、発行先のドメインを何らかの形で制御できることを保証します。 。

1

それを短くシンプルに保つために...そして言われたことを少し隠すために...

適切なツールを使用すれば、暗号化の問題ではなく、希望する暗号化のタイプでローカルに証明書を生成し、有効な証明書を取得できます。

証明機関から証明書を購入する際の主な利点は、証明書が有効である間、証明書でオンラインで署名したものを検証するメカニズムをサーバーに保持していることです...

デジタル製品を証明書で検証および検証するために、PCを接続する必要はありません...検証を認証エンティティにリダイレクトする必要があります。


1

この議論に遅刻してごめんなさい-opensslを使用すると、独自のルート証明書を使用してプライベートCAをセットアップし、このCAによって署名されたサーバー証明書を作成できることを指摘する価値があると思いました。CAルート証明書がブラウザーにインポートされ、ブラウザーがそれを受け入れるように指示されている場合、サーバー証明書はコメントなしで受け入れられます。(明らかに、これはユーザーコミュニティが小さく、すべてのユーザーが個人的にお互いを知っている場合にのみ実行可能なオプションです。)


-2

「Trust Me」と言う人を信頼しますか?信頼性は、誰もが信頼する「信頼できる機関」によってのみ提供されます。これが、私たちが証明書に大金をつぎ込まなければならない理由です。


2
その論理によると、無料の証明書プロバイダーはありません。しかし、あります。
クリスS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.