次のようなセットアップがあります。
Windows 認証を使用して接続を暗号化しています。メイン サービスは安全で、誰もアクセスできないため、各ノード サービスのユーザー名とパスワードを安全に保存して、利用可能なときにいつでも接続できるようにします。
メイン サービスは、機密情報を各 WCF ノード サービスに送信します。接続は暗号化されているため、誰かがそれを解読するのは難しいでしょう. 私が抱えている問題は、他の誰かではなく自分の WCF ノード サービスに接続していることをどのように確認できるかということです。
これが私の問題を説明するシナリオです
。Tom が、WCF ノード サービスが実行されている図の左上のラップトップを使用しているユーザーであるとしましょう。WPF クライアントは管理者 (図の一番下のユーザー) であり、Tom のコンピューターでアクションを実行できます。トムは、暗号化されたファイルの内容を確認する必要があります。Tom には、そのファイルを復号化するためのパスワードを取得する権限がありません。したがって、Tom は管理者にそのファイルを復号化してくれるよう依頼します。次に、管理者は暗号化されたパスワードをメイン サービスに送信します。メインの wcf サービスは Tom のコンピュータを見つけ、Tom のコンピュータでメソッドを実行しUnencryptFile(string location, string password)
ます。
トムがそのパスワードを取得できないようにするにはどうすればよいですか? WCF Node Service を独自のメソッドに置き換えれUnencryptFile(string location, string password) ... MesageBox.Show(password)
ば、パスワードを取得できます。要するに、私はプログラムを逆コンパイルできることを知っているので、Tom が私のプログラムが何をしているかを知っていても構いません。私が気にしているのは、私のものではないサービスに接続することです。また、Tom が WCF Node Service をデバッグするとどうなりますか。実行可能ファイルをデバッグできますか? その場合、彼はその方法でパスワードを見ることができます。