openSSLを使用してローカルで生成できるSSL証明書を購入する必要がある理由を理解できません。購入した証明書とローカルで生成したテスト証明書の違いは何ですか?それは単なる大きな詐欺ですか?
openSSLを使用してローカルで生成できるSSL証明書を購入する必要がある理由を理解できません。購入した証明書とローカルで生成したテスト証明書の違いは何ですか?それは単なる大きな詐欺ですか?
回答:
一言-信頼。ブラウザーが信頼するプロバイダーからのSSL証明書は、彼らがあなたがあなたであると言う人であると言うために少なくとも基本的な検証を行ったことを意味します。
それ以外の場合は、google.comまたはyourbank.comの独自の証明書を作成し、それらのふりをすることができます。
有料の証明書は、自己署名(通常)よりも余分なレベルの暗号化を提供しません。ただし、自己署名証明書を使用すると、ブラウザーでエラーがスローされます。
はい、SSLの一部は詐欺(verisign証明書と最大100倍高価なジオトラスト)ですが、すべてではありません。
これがすべて内部のものである場合は、独自の信頼方法を使用できるため、有料の証明書は必要ありません(例:何もしない、または単に指紋をチェックするなど)。
SSL証明書の要点は、ブラウザがHTTPSトランザクション用のサーバーの公開キーを合理的に信頼できるようにすることです。
最初に、証明書を使用しなかった場合にどうなるかを見てみましょう。代わりに、サーバーは公開鍵をプレーンテキストで送信し、ブラウザーはそれを使用して暗号化通信を開始します(最初に行うことは、独自の公開鍵を暗号化して安全に送信することです)。私と攻撃者が真ん中に侵入した場合はどうなりますか?その場で公開鍵を自分のものに置き換え、ブラウザと暗号化された接続を確立し、受け取ったすべてのものを解読し、公開鍵で暗号化して送信します(応答型トラフィックの場合はその逆)。誰も事前に公開鍵を知らなかったので、誰も違いに気付かないでしょう。
さて、ブラウザが私の公開鍵を信頼するための何らかの方法が必要であることを確立しました。これを行う1つの方法は、登録されたすべての公開キーをブラウザに保存することです。もちろん、これは誰かが公開鍵を登録するたびに更新を必要とし、これは膨張につながります。DNSサーバー1の手に公開鍵を保持することもできますが、DNSサーバーもスプーフィングされる可能性があり、DNSは安全なプロトコルではありません。
したがって、残された唯一のオプションは、署名メカニズムを介して信頼を「連鎖」することです。ブラウザはいくつかのCAの詳細を保存し、証明書は他の証明書のチェーンとともに送信されます。各証明書は次の証明書に署名し、ルート/信頼/組み込みCAに進みます。証明書に署名する前に、ドメインがあなたのものであることを確認するのはCAの仕事です。
CAになることはビジネスであるため、この料金を請求します。他のものよりもいくつか。
独自の証明書を作成した場合、次のようなエラーが表示されます。
署名されていない証明書には価値がありません。それは、鉛筆と小冊子を持ち、自分がバラク・オバマであると主張するパスポートを描くようなものです。誰もそれを信用しません。
1.結局、ドメインを登録すると、DNSエントリが作成されます。公開鍵を同時に登録できる、より堅牢なプロトコルを使用することは興味深い概念です。
質問への答えは聴衆によって異なります:証明書のシステム全体が「信頼」に基づいているため、ユーザーは証明書を自分で証明できるか、このチェックを行って署名によって成功を示す第三者を信頼する必要がありますあなたの証明書。私が使用した「証明書を証明する」という用語は少し不正確です。長いバージョンは「あなたが証明書の所有者であり、使用を許可されていることを証明する」必要があります。
すべてのユーザーが個人的にあなたを知っており、証明書が自分で発行されたことを証明する技術的能力がある場合、「認定」プロバイダーからの証明書を使用する技術的な必要性はありません。この場合、自己署名証明書は、そこにあるプロバイダーの証明書よりも優れている場合があります。
しかし、ほとんどの場合、ユーザーが自分でこのプロセスを実行する可能性はありません。ここで、それらのSSLプロバイダーが市場に登場します。これらのサービスは、これらのチェックを行い、証明書に署名することでチェックの結果を表現するサービスを提供します。しかし、心に留めておくべき重要な事実の1つは、証明書に署名することにより、SSLプロバイダーが独自の署名ポリシーに従って証明書発行者のIDを確認したことを表明することです。したがって、ユーザーは、このポリシーが十分に正確であるかどうか、およびプロバイダーを信頼できるかどうかを判断する必要があります。
要点は、証明書が自己生成である場合、一般ユーザーはその真実性を検証する方法がないことです。購入した証明書の場合、彼らは少なくとも証明書内に印刷されているものが正しいことを検証することを想定しています。アイデア:証明書に電話番号と住所を入力すると、CAはそれを検証することを想定しますが、ほとんど行いません。
さらに、購入証明書は追跡可能です。つまり、ユーザーはいつでも証明書の出所を追跡できますが、自己署名証明書はランダムなIDにすぎません。
多くのシステムでは、過去に承認されたCAから「コード署名」が必要でしたが、これはポリシー駆動型ですが、自己署名証明書が非常に多いため、現在は100%施行されていません。
それは信頼に帰着します。「認証された」SSLプロバイダーは、サーバー自体からの自己署名証明書に対して、信頼できる(これは操作できますが)と思われます。
組織に独自の証明書署名がある場合、これは完全に受け入れられ、ユーザーに警告を表示することはありません(信頼できるソースとして証明書キーチェーンを使用している場合)が、外部で使用しようとすると警告が作成されます。
結論:社内で使用する場合は問題ありません。有料の顧客に外部で提供する場合、警告が表示されなくても安心です。認定された情報源を介して金融取引を行っている方が安全だと思いますか、それとも知らない通りに立っている人がいますか?
最近、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はブロックチェーン技術とは関係ありませんが、正しい方向への出発点です。毎年、高価な認証局に高額の料金を支払う必要性は、論理的な終わりに近づいています。
簡単に言えば、自己署名SSL証明書は何の意味もありません。それは外界にとって価値がありません。「私はスペインを所有している」と言っているようなものです。あなたは正直にそう思うと思うかもしれませんが、誰もあなたの主張を認めようとしません。
同様の例えは、何かを発明し、その発明の権利を所有していると主張することですが、オフィスで特許を登録しない限り、あなたの言葉を信じるのは難しいでしょう。
証明書の重要な点は、人々が信頼する機関によって署名されていることです。一部のWebサイトに有効なSSL証明書がある場合、所有者がWebサイトの登録、SSL証明書の支払い、実際の認証局からの公式認証の取得に苦労していることを意味するため、安価なフィッシングWebサイトではない可能性があります。一方、自己署名証明書を信頼する場合、フィッシングWebサイトは、自分で作成した偽造証明書(喜んで受け入れます)を作成することができます。
もちろん、これがプライベートイントラネットの内部ネットワークである場合は、おそらく既に相互に信頼しているため、この場合、信頼できる証明書は実際には何も追加しないので、ブラウザがあなたに投げかける明るい赤信号を安全に無視できます。クライアント/サーバートラフィックを暗号化する必要がある小規模なWebサイトでも同じですが、脅威モデルは強力な認証を保証しません。この場合、自己署名証明書を取得して受け入れます(脅威モデルでは無視できます) MITMのリスク。
信頼できるSSL証明書がどれほど高価であるかを考えると、おそらくこれで十分でしょう。
言い換えれば、自己署名証明書は、「私は自分が誰であるかを証明します- 私を信頼してください!」と言うことになります。