2009-06-23 19 views
9

ミューテックスを使用した単一インスタンスのWPFアプリケーションをセットアップしました。これにより、ユーザー切り替えを使用している場合は、各ユーザーアカウント内でアプリケーションを実行できます。アプリケーションは、WCF名前付きパイプを設定して、別のプロセス(つまり、Mutexによって終了する前に第2のプロセスが実行されるとき)から単一のインスタンスに通信できるようにします。WCFの名前付きパイプセキュリティと複数のユーザーセッション

名前付きパイプを保護するために何かを行うべきか(ベストプラクティス)を知りたいですか?

また、名前付きパイプメッセージがシステム内のすべての実行中のプロセスに到達するか、または現在のユーザーセッション内でのみ到達するかどうかを知りたいと思います。名前付きパイプがシステム全体に送信された場合、通信を現在のユーザーセッションに限定するための最良のインプリメンテーションは何ですか?

答えて

2

名前付きパイプは、通信が同じマシン上でポイントツーポイントであることを意味します。私はそれがデフォルトでセキュリティで保護されていると信じていますが、同じネットワーク上であっても、通信がマシンを離れることは決してないため、セキュリティは最大の問題ではありません - 少なくとも名前付きパイプコンポーネントと消費者。

Juval Lowyの "Programming WCF Services 2nd Edition"を参照してください。第10章では、コンポーネントのセキュリティについて説明します。 514ページでは、「IPCでメッセージセキュリティを使用する意味はありません。なぜなら、IPCでは常にクライアントからサービスへのホップが1つしかないからです。このページの図には、デフォルトでトランスポートセキュリティが名前付きパイプ。

1

このpaper on named pipe securityは、詳細の多くのトピックについて説明します。要するに

、あなたが注意しないなら、あなたがパイプを活用するための標準的なユーザー権限で実行している悪質なプログラムが自身を昇格させる可能性があります名前付きパイプサーバーと同じ特権レベル

WCFの実装が既定でこの種類の攻撃に対して安全かどうかはわかりません。

7

WCFの名前付きパイプはネットワークからアクセスできず、それらを保護するための暗号化は必要ありません。ただし、WCFサービスは、romkynsで言及された攻撃に対して安全ではありません。

私はあなたがこの記事を読むことをお勧め:関与セキュリティの問題について

Exploring the WCF Named Pipe Binding - Part 1

Exploring the WCF Named Pipe Binding - Part 2

Exploring the WCF Named Pipe Binding - Part 3

Exploring the WCF Named Pipe Binding - Part 4

。短いWCFで

は、任意のプロセスがサービスとして自身を装うことを可能にすると:

  1. いずれ不正プロセス自体がサービスに接続すると仮定して、サービスまたは
  2. 盗聴やタンパーデータをシミュレートします。ただし、サービスがアクセスセキュリティを使用して発信ユーザの身元を確認する場合、これは不可能な場合があります。
+0

すべてのリンクが無効です。 – jesusduarte

+0

@jesusduarte遅くなりましたが、リンクが戻ってきました。 –

関連する問題