IPC は初めてで、安全な IPC メソッド (暗号化とは関係ありません) を実装しようとしています。
私は Visual Studio 2010 を使用して C++ でシステムを開発しています (ただし、他のプラットフォーム Linux/MacOS/FreeBSD に移植される予定です)。同じコンピューターですが、プロセス「A」に XML を送受信する必要がある「B」のような 14 のプロセス (B1、B2、...、B14) が存在します。
プロセス「A」は、すべてのプロセス「B」間のプロキシ/ブリッジとして機能し、プロセス「B」が送信する必要があるすべてのデータ/XML はプロセス「A」に送信され、プロセス「A」のみが送信されます。データ/XML をプロセス「B」に送信します。
プロセス「A」と「B1…B14」の間でこのデータを交換する IPC メソッドを探しています。共有メモリはこれを行うのに適していますが、どのプロセスでもアドレスへの書き込み/読み取りが可能であるため、これは安全ではありません (許可アクセスを設定できることはわかっています)。
次の IPC メソッドを見つけようとしています。
ローカルのみの方法である必要があります。リモート接続を避ける必要があります。
セキュリティ上の理由から、プロセスが「通信用チャネル」を開いてデータを送受信する場合、他のプロセスは同じ「チャネル」を使用できません (このチャネルに書き込み可能な共有メモリや Boost Message Queue とは異なり、または与えられた名前で別のインスタンスを開く可能性のある NamedPipe など)、偽/悪意のあるプロセスを回避したい。2 つのプロセスが同じポートでリッスンすることはできないため (ただし、ローカルのみではない)、TCP はこれに適しています。
3-プロセス「A」はサービスになり、一部のプロセス「B」もサービスとして実行され、他のプロセス「B」は非特権ユーザーとして実行されるため、これは管理者のみの機能であってはなりません.
4- このプロジェクトはコード クローズドになるため、GPL ライセンスに基づくコード/ライブラリを使用できません。
5- 可能であれば、クロスプラットフォーム (Windows/Linux/MacOS/FreeBSD)。
OSに組み込まれている、またはサードパーティのライブラリを必要とする適切なIPC手法を誰かが提案できますか?