Apache SSL証明書と秘密鍵を別々のファイルに保存するのはなぜですか?


11

以下のためのApacheのmod_sslのドキュメントSSLCertificateFileSSLCertificateKeyFile同じファイル内の秘密鍵とSSL証明書を保存するために「強く推奨」されていることを指令状態。

秘密鍵ファイルは安全に保管する必要がありますが、その場合、同じファイルに証明書を保存する際に特定のリスクはありますか?この振る舞いがサポートされている理由を知りたいのですが、説明なく強くお勧めします。

回答:


15

SSL証明書ファイルはロックです。
SSL証明書キーファイルがキーです。

この2つを一緒に保管することは、玄関の鍵に鍵をテープで留めることに相当します。
攻撃者が単一のファイルを危険にさらした場合、攻撃者はWebサイトを正常に偽装するために必要なすべてのもの(証明書、秘密キー)を入手します。

これは、SSLキーにパスフレーズがない場合に特に当てはまります(多くのWebサーバーは、クラッシュのイベントで自動的に起動できるようにするため)。


ファイルを分離することで防御しているのは、ApacheのバグでSSLCertificateFileあり、Webクライアントに(公開されているはずの)コンテンツをダンプします。
(私の知る限り、そのようなバグは存在しないか、存在したことがありませんが、Apacheは大きく複雑なソフトウェアです。それは完全に可能です。)

Apacheがこのファイルをダンプし、その中に含まれるのがSSL証明書(ロック)のみである場合、問題はありません。とにかくサーバーにSSLリクエストを行うと、全員がその証明書のコピーを取得します。
ファイルにキーも含まれている場合は、セキュリティのチャンスがあります。暗号化モデル全体が危険にさらされているため、キーを変更する必要があります。


おかげで、Webサーバーが公開証明書と一緒に秘密鍵を提供する原因となる理論上のバグも、私の最良の推測でした。キーと証明書を同じファイルに入れることは、フロントドアのキーをタップすることと同等であることに本当に同意しませんが、同様に、それを行う正当な理由を考えることはできません。
ボルチュラ

1
おそらく、ドアにキーをテープで留めるほど悪くはありません-おそらくドアフレームの上部にキーを貼り付けるか、それらのキーの非表示ロックのいずれかを使用することに近い:
voretaq7

7

古いバージョンのOpenSSLでは、2つの別個のファイル(パブリックおよびプライベート)が必要でした。他の暗号化エンジンの古いバージョンでは、1つのファイルが必要でした(両方とも同じファイルにあります)。互換性の「精神」(別名「管理者による不整合に関する要求と2組の証明書の維持」)では、ほとんどが両方をサポートしています。

証明書ごとにスコープが異なるため、両方の証明書(キーチェーンも)を1つのファイルに保存することはお勧めしません。これは技術的な問題よりも一貫性の問題であり、公開証明書には一般に読み取り可能なファイルのアクセス許可が必要であり、個人の場合はその逆です。システム上で公開証明書をロックおよびキーの下に保持することは危険ではありません。それはその目的と矛盾しているだけです。

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