0

WindowsサービスとWPFデスクトップアプリケーション(2つのサービス)でそれぞれホストされているWCFサービスを保護する正しい方法を探しています。

私は非常に多くの例とサンプルを試して読んだので、物事を行うさまざまな方法を読んだので、今はとても混乱していて、何をすべきかわかりません.

簡単に言えば、シナリオは次のとおりです...

クライアントアプリケーションが企業LANで接続できるようにするWindowsサービスがあります。

ここでのすべての通信は、企業のファイアウォールの背後にあります。一般向けのものはありません。

今-Windows認証が有効になっているbasichttpBindingを使用して、すべてを正常に機能させることができました。

問題は、http を使用せずに、すべてを安全に送信する必要があることです。

だから-証明書を生成するのは比較的簡単な作業だと思いました(商用証明書である必要はありません-MakeCertを使用した開発証明書だけで十分です)、その証明書をファイルからロードしてトラフィックを保護できます-ああ私はなんて間違っていたのでしょう。私が読んだことから、それは単純ではありません。

大まかに言えば、100 台のサーバーがそれぞれサービスを実行しており、このサービスには 500 台以上のデスクトップ クライアントがアクセスできます。各クライアントは、必要に応じて 100 台のサーバーのいずれかから接続できます。

また、サーバーは、必要に応じて相互に連絡することも許可されており、定期的に連絡しています。

600以上の証明書を生成して各マシンの証明書リポジトリにロードすることは、実際にはオプションではありません.1年か2年で更新をイメージできますか...

私が望んでいたのは、サーバー用の証明書ファイルとクライアント用の証明書ファイルを生成し、証明書ファイルをサーバーまたはクライアント アプリケーションの各インスタンスにそれぞれ配布できるようにすることでした。クライアントまたはサーバーが起動して WCF サービス ホストを開くと、そのパスで証明書を使用してトラフィックを暗号化します。これらは信頼できないソースからの証明書になるため、すべての失効チェックを無効にするつもりでしたが、前述したように、これは問題ありませんでした。

これまでのところ、これを行う方法を見つけることができませんでした.

また、http の代わりに net.tcp のパスを下ってみましたが、Visual Studio サービス参照ジェネレーターを取得してサービスを見つけることができませんでした。または、常にエラーで失敗しました。

上記で概説したシナリオを考えると、誰かがサーバーとクライアントの間で暗号化された通信を実現する正しい方法を教えてくれませんか (逆も同様です)。単一のサーバーまたはクライアント証明書を使用して ssl を有効にするために、basicHttpBindings にいくつかの小さな変更を加えることはできますか?

どんなアドバイスでも大歓迎です。または、私が説明したシナリオに適したガイドへのリンクを提供して、これを分類できるようにします。

どんな助けでも大歓迎

敬具

ロッド。

4

1 に答える 1

1

あなたは何について話していますか?企業ネットワークに 100 台のサーバーと 500 台のデスクトップがあり、これらすべてのマシンから信頼されている内部認証局がありませんか? Active Directory を使用する企業ネットワークでは、これは簡単な作業です。ほとんどの場合、すべてのマシンに独自の証明書が既にあり、そうでない場合は、ローカルの Active Directory 認証局から証明書を要求でき、手動で操作する必要なく証明書を取得するだけです。証明書。また、証明書の更新も処理できます。必要なのは、 netshを使用して各マシンの正しいポートにその証明書を割り当てることだけです。これは何らかの方法で自動化できると思います。企業ネットワークで企業 CA、AD を使用する方法、または証明書の割り当てを自動化する方法に関する質問は、 Server Faultに属します.

セキュリティについて話しながら、同時に同じ証明書と秘密鍵を 600 台のマシンに配布するのはナンセンスです。任意のマシンは、他のマシンを対象としたトラフィックを復号化できます。これは、HTTP を介して base64 でデータを送信するのと同じであり、それをセキュリティと呼びます。

于 2011-09-11T11:42:30.280 に答える