4

誰かがこれについて素晴らしいアイデアを持っているかどうか、私はただ興味があります.

多くの C# Windows サービスがあります。各アプリは複数のマシンにインストールされます (アプリに応じて 2 ~ 80 台の任意の場所)。

ネットワークのセキュリティ設定により、SQL サーバーに対して Windows 認証を (一貫して) 使用できないため、接続文字列と資格情報には実際のユーザー名とパスワードが含まれています。

インフラストラクチャ担当者は、ソフトウェアを展開するときに次のことができるようにしたいと考えています。1) 構成を一度編集します。さまざまなデータベース接続に適切なサーバー、ユーザー、およびパスワードを設定します。2) 接続文字列を (少なくとも) 暗号化するか、肉眼では判読できないようにします。3) その構成ファイルを、特定のソフトウェアのすべてのインストールにコピーします。これは、暗号化を特定のマシンに関連付けることができないことを意味します。

DPAPI はこれを行うことができますか? 1 つのキー セットをすべてのターゲットにインストールして、共通の構成ファイルを解読できるようにすることはできますか? この場合、構成はどのように編集されますか? 同じ方法で、他のユーザーが暗号化された構成を表示できないようにするにはどうすればよいですか?

4

3 に答える 3

2

DPAPI 暗号化では、<machineKey>が秘密鍵として使用されます。

オプション 1) 各サーバーの machine.config でこれを更新し、machineKey同一になるように設定できます。これは、machineKey に依存する無関係なアプリなど、サーバーに大きな影響を与えます。

<machineKey>オプション 2)より狭い範囲で web.config をオーバーライドできます。

セッションと暗号化されたビューステートの検証も に依存する<machineKey>ため、サーバー間で同一のキーを使用することで、セッションとビューステートを相互に読み取ることができます。これは、同一のサーバーの Web ファームと集中型セッション ストアに適している可能性がありますが、それは元の質問の範囲外です。

方法: ASP.NET 2.0 で MachineKey を構成する

于 2009-02-19T03:23:54.783 に答える
0

これは、 X509証明書の仕事のように聞こえます。

于 2009-02-19T04:17:07.213 に答える
0

私が働いている場所ではこのように構成されたサービスがあるので、あなたの質問の少なくとも 1 つの側面についてコメントできます。

構成を編集/作成するとき、最初の文字として特別なトークンを配置します。

<value>:secret_password</value>

コロンは特別なトークンです。サービスが開始して構成を読み取ると、トークンを検索して暗号化されていないすべての値を見つけ、それらを暗号化し、暗号化された値でプレーンテキストを上書きします。

したがって、これにより、秘密を秘密に保ちながらファイルを編集できます。

于 2009-02-19T03:16:26.767 に答える