web-dev-qa-db-ja.com

SSL証明書を自分でホストする危険性は何ですか?

サーバーにActive Directory証明書サービスがあります。これにより、同じサーバーでホストされているWebサイトにSSL証明書を配信できます。

通常、既知の証明機関から証明書を取得する必要があることを知っています。しかし、私にはそれをしない理由があります。それはポイントではありません。

問題は、既知の機関のサービスを使用する代わりに、自分で証明書をホストすることのセキュリティリスク(ある場合)は何であるかということです。


¹その理由は、(1)私はオタクであり、独自の証明書を作成するのが楽しいこと、(2)証明書サービスをテストしたいこと、および(3)ブラウザーが次のことについて不平を言っていることを気にしません。 HTTPSを使用するのは私だけなので、彼らは私のことを知りません。

10

WebサイトにSSL証明書を使用すると、主に次の2つが得られます。

  1. あなたのウェブサイトがそれが言うとおりの人物であることを証明するアイデンティティ
  2. ウェブサーバーとクライアント間のデータのストリーム暗号化

提案すること(通常は自己署名と呼ばれます)を行うことにより、IDの証明に依存することを防ぎます。既知の信頼できるCAを使用することで、クライアントは、提示する証明書からルートレベルの信頼できるCAまでの署名チェーンをたどり、自分が本人であるという確信を得ることができます。 (CAの侵害が発生し、一部のCAは他のCAよりも真剣に証明を行うため、この信頼は本当に信仰に似ていることに注意する必要があります。)

ただし、データは引き続き暗号化されます。したがって、信頼の側面が必要ない場合は、問題ありません。個人的には、自宅に自己署名証明書を使用するいくつかのWebサイトとWebアプリケーションがあります。私は唯一のユーザーなので、自分のデスクの下にあるコンピューターが本当に自分のデスクの下にあるコンピューターであることをサードパーティに知らせなくても、証明書を手動で合理的に検証できます。

25
Scott Pack

発行または署名実際の証明書ではなく、実際にホスティングを意味すると思います。

純粋なセキュリティ(暗号化/データの機密性)の観点からは、X.509c3証明書はX.509c3証明書であり、同じビット数で同じセキュリティを提供します。したがって、Verisignが発行した2048ビットの証明書は、自分が発行した2048ビットの証明書と同じくらい安全です。

信頼(アイデンティティ)の観点から-平均的なインターネットユーザーであるVerisignまたは別のサードパーティは、より信頼できると見なされる場合があります。ただし、すでにあなたを信頼している親密なコミュニティのためにこれを行っている場合は、このアイテムも洗浄されます。

リスク管理の観点から、あなたまたは第三者がねじ込みの可能性が高いかどうか、および利益がコストを上回るかどうかを決定する必要があります。

11
Mark Beadles

これを行う正しい方法は、独自のプライベートCAを実行することです。次に、Active Directoryを使用して、(自己署名された)CAの公開鍵をネットワーク上のすべてのクライアントコンピューターにプッシュできます。これを正しく行うと、ブラウザから証明書の警告が表示されることはありません。

これは、一般に公開されていない場合、内部ネットワーク(エンタープライズネットワークなど)で使用するのに完全に合理的なアプローチです。リスクは次のとおりです。

  • セキュリティは、プライベートCA操作のセキュリティと同じくらい優れています。秘密CAの秘密キーが攻撃者に漏えいしたり、攻撃者がCAの秘密キーが格納されているシステムのセキュリティを侵害したりすると、すべてのクライアントが検出不可能な中間者攻撃に対して脆弱になります。それは悪いでしょう。プライベートCAが信頼されていない公開鍵に署名した場合にも、同様のリスクが適用されます。これらは、主要なCAが対処しなければならない問題です。独自のCAになる場合は、それらにも対処する必要があります。

  • セキュリティは、Active Directoryのセキュリティと同じくらい優れています。 Active Directoryサービスを制御できるシステム管理者がアカウントをハッキングした場合、すべてのクライアントへの攻撃が再び可能になります。したがって、Active Directoryサービスが十分に保護されていることを確認してください。

  • 管理していないマシンから内部Webサービスに接続していて、Active Directory経由で接続していないユーザーがいる場合、ブラウザーが受信していないため、ブラウザーからの証明書エラーが表示されます。 Active Directoryを介したプライベートCAの公開鍵。それは悪いことです。これらのユーザーは、内部Webサービスの信頼性を検証する方法がなく、中間者攻撃から自分自身を保護する方法がないためです。また、証明書のエラーを無視するようにユーザーを訓練するため、インターネットの残りの使用において脆弱になる可能性があるため、これも悪いことです。

    多くの企業が採用している「独自のデバイスを持ち込む」傾向にある今日、これは多くの組織にとってリスクが高まっています。たとえば、多くの従業員は自分のスマートフォン、iPadなどから内部Webサービスにアクセスしたいと考えており、コストを節約するために、多くの企業がそうすることを望んでいます。これらのデバイスはActive Directoryを通じて管理されないため、この種のリスクが発生します。

これらのリスクはすべて適切なプロセスで管理できますが、リスクについて理解し、適切なプロセスを実施してそれらに対処する必要があります。

10
D.W.

独自の証明書をホストすることは確かに問題ではありません。

私はあなたが自分の証明書を発行することを意味していると思います(自己署名または自分のCAを介して)。もちろん、その秘密鍵を保護する必要がありますが、サーバー証明書の場合も同様です。独自のCAを使用している場合、その秘密鍵は原則としてどのサーバーでもホストする必要はありません。

商用CAの代わりに独自のCA(または自己署名証明書)を使用することを選択するかどうかは、確かにセキュリティリスクではありません(実際にそのサーバーでの信頼が向上する可能性があります)。ただし、 この関連回答 で述べたように、CAの選択は常にユーザーの観点から考慮する必要があります。サービスプロバイダーとして重要なのは、サービスの証明書がユーザーから信頼されるようにするためです。

ここでの商用CAの利点は、デフォルトでほとんどのブラウザーに組み込まれていることです。つまり、ユーザーは自分のCAを信頼するために追加の設定を行う必要がありません。証明書について何も知らないユーザーが質問する必要がないので、これは簡単なルートです(これは素晴らしいことではありませんが、利便性が優先されます...)。

4
Bruno

これがプライベートネットワークでのみ使用されると仮定します。

独自のローカルCAを実行することもできます。次に、証明書署名要求を生成し、CAとしてセットアップしたコンピューターで署名します。次に、ネットワーク上のすべてのコンピューターにCA証明書を与えて、CAを信頼するようにします。このようにして、独自に使用するために独自の証明書を発行することができ、ブラウザからその迷惑な警告が表示されなくなります。

http://www.g-loaded.eu/2005/11/10/be-your-own-ca/

2
k to the z

セキュリティ上の問題の1つは、自己署名証明書が危険にさらされている場合、それを取り消すことができないことです。

ただし、特定のシナリオでは、サーバーだけでなくすべてのクライアントを制御するため、これは問題にはなりません。

そしてもちろん、こっけいな楽しみのためにこれをしているので、他の人が示唆しているように、独り占めしてプライベートCAをセットアップする可能性が非常に高くなります。その場合、取り消すことができます。

2
Graham Hill

私がHTTPSを使用するのは私一人だけなので、ブラウザが私のことを知らないというブラウザからの不満は気にしません。

セキュリティリスク(CA証明書がクライアントにインストールされていない場合)は、中間者攻撃にさらされていることです。誰かがサーバーになりすまし、すべての通信を実際のサーバーにトンネルすることができ、クライアントはそれが間違ったサーバーと通信していることを知りません。つまり、実質的にはnoセキュリティを持っています。ブラウザが文句を言うのには理由があります。セキュリティが問題でなければ、問題ありません:-)

銀行のWebサイトでブラウザーをポイントし、自己署名証明書(または検証不可能な証明書)を提示した場合、資格情報を入力しますか?悪いアイデア。

信頼されたルート証明書を持つことは、クライアントがサーバーを確認する方法であり、これは公開鍵システムの重要なコンポーネントです(関係者が安全な方法で公開鍵を交換できない場合)。

既知のCAへの信頼のチェーンがまだある独自の証明書を発行できます。使用するすべての証明書が既知のCAによって発行される必要はなく、必要なのはそのCAへの信頼のチェーンだけです。つまり、基本的には「中間」CAとして機能しています。他の人が指摘したように、独自の「ルート」CAを所有し、それによって署名された証明書を発行することもできます。 ただしキーは、そのルート証明書をクライアントにプッシュする何らかの方法を持つことです。そうすると、ブラウザは警告せず、希望するセキュリティが得られます...

1
Guy Sirton