12

私は現在、CA証明書とそのCA証明書の子証明書をいくつか作成したプロジェクトに取り組んでいます。証明書は、SAMLV2セットアップでサーバー間の通信を保護するために使用されるため、IDプロバイダー用の証明書とサービスプロバイダー用の証明書を用意します。ユーザー/ブラウザーは証明書を検証しないため、カスタムCAを信頼する必要があるのはサーバーのみです。私の証明書ツリーは次のようになります。

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

今では、自家製の証明書を本番環境で使用するのは悪いと多くの人が言っています。しかし、私が理由を尋ねると、人々は通常、セキュリティについて何かをつぶやくだけで、詳細には決して入りません。自分の証明書を本番環境で使用しない技術的な理由はありますか?何も考えられません...もちろん、ルート証明書の制御を失うと、だれでもあらゆる種類の証明書の作成を開始できることに気付きます。ただし、この場合、サーバーに証明書をインストールし、それらを使用するようにsamlアプリケーションを構成する必要があります。そうして初めて、彼らは私のアプリケーションへの偽のsamlリクエストとレスポンスを生成し始めることができました。

これが唯一の問題である場合、このソリューション(本番環境で自家製の証明書を使用)は、現在のログイン設定よりも優れています。

4

4 に答える 4

22

証明書が何を証明するか自問してください。

評判の良い CA によって発行された証明書を取得した場合、証明書の所有者が証明基準に従ってその CA に対して身元を確認したことを証明します。

アドホック CA によって発行された証明書を取得すると、誰かが証明書の作成方法を知っていることが証明されます。

会話の両端を制御する場合は、その目的のために独自のプライベート CA を用意しても問題ないと思います。自分の CA を信頼します。おそらく、これを非常に安全なものにすることができます (CA の秘密鍵をオフラインの安全な場所に保管し、スニーカーネットの演習で署名することにより)。

問題は、CA を信頼するよう他の誰かを説得する必要がある場合です。なぜ彼らはすべきですか?そうすることが安全であることを彼らに納得させる必要があり、クライアントに CA 証明書を追加するという管理オーバーヘッドが発生します。

于 2009-02-09T11:31:13.860 に答える
7

ネットワーク トラフィックを保護するためだけに証明書を使用しており、ユーザー/コンピューターを認証していないため、MakeCert.exe を正当に使用しているように思えます。

特筆すべき点が1つあると感じています。MakeCert.exe インターフェイスの操作にある程度の時間を費やした後は、代わりにスタンドアロン ルート証明書サーバーの使用を検討することをお勧めします。

次の点を考慮してください。

  • (ほぼ) Windows Server のすべてのバージョンには、Certificate Server Services が無料で含まれています
  • Windows スタンドアロン CA サーバーは、インストールと構成が非常に簡単です。
  • Windows スタンドアロン CA サーバーを仮想マシンにインストールし、追加の証明書を発行する必要があるときはいつでもオン/オフにすることができます
  • VM ベースの Windows スタンドアロン CA サーバーは、ごくわずかなメモリ (例: 256mb) を使用して実行できます。
  • Windows スタンドアロン CA サーバーには、証明書の要求を簡素化するための、きれいでクリーンな Web ベースの登録インターフェイスが含まれています。
  • 必要に応じて、CRL チェックを使用することも使用しないこともできます。

以前は、最初は selfssl.exe から始め、最終的には MakeCert.exe に移動してルート証明書を生成し、クライアント証明書を発行していました。しかし、構文に苦労し、そのルート証明書をどこに置いたかを常に覚えておく必要があるため、仮想マシンでスタンドアロンのルート CA を使用することに切り替えました。

于 2009-02-19T08:00:14.323 に答える
5

証明書が自分のサーバー間で内部的にのみ渡される (そして、クライアントによって何らかの方法で使用されない) 場合、独自の内部 CA を使用することは完全に受け入れられます。
ただし、1 つの提案 - ルート CA にプロバイダー証明書を発行させないでください。代わりに、ルート CA を使用して中間 CA を作成し、それを使用してプロバイダー証明書を発行します。これは、証明書の有効期限の管理、システム/インフラストラクチャの拡張、失効リストなどを開始する必要がある場合に、長期的に役立ちます。

于 2009-02-09T11:36:29.323 に答える
3

自作のルート証明書を信頼する必要があるすべてのシステムを制御するときに使用する、私的使用での自己署名証明書の使用に実際の問題はありません。

ルート証明書を信頼する必要がある各システムに手動でインストールします。

これは、ブラウザを使用するために本番環境でも実行できます。たとえば、ルート CA をソフトウェア配布方法で展開できる組織内では、Microsoft がたまたま信頼している認証局に費用を支払う必要はありません。

[編集] セキュリティの観点から言えば、問題はルート証明書の秘密鍵を含むことの 1 つであり、それが秘密のままであることを保証できる限り、そのルートから証明書を検証できます。

于 2009-02-09T11:31:41.660 に答える