Windows 環境のパスワード ファイルですか?

Windows 環境のパスワード ファイルですか?

私は、自分のアプリケーションが (データベースに接続するために) 読み取ることができるが、管理者権限のないユーザーは読み取ることができないように、データベース パスワードを作業マシンに保存する方法を探しています。管理者がパスワードを変更できるようにする必要があります (できれば自動的に)。

私が考えているのは、PostgreSQL の .pgpass ファイルLinux 環境では、Windows 環境でも同様に可能ですか?

パスワード ファイルは管理者のみがアクセスできるようにできると思います。しかし、ユーザーが実行できるプログラムもこのファイルにアクセスできますか? さらに、グループ ポリシーを使用して、このようなファイルをネットワーク経由で配布することは可能ですか?


私が考えている他の解決策(おそらくもっと手間がかかります):

  1. パスワード ファイルを暗号化します。ファイルを復号化して変更/読み取りできる有効なキーを持っているのは、アプリケーションと管理者だけです。
  2. ネットワーク リソースからパスワードを取得します。パスワードも暗号化されていると思われます。

答え1

管理者のみのアクセスに関するご質問への回答です。

Windows は、ユーザーの権限でサービスを実行します (管理者または別のユーザーとして明示的に実行しない限り)。そのため、ユーザーがファイルにアクセスできない場合は、プログラムもアクセスできません。

グループポリシーの質問に対する回答:

はい、グループ ポリシーを使用して、グループ ポリシーの基本設定を通じてファイルを配布できます。(参照:https://www.adamfowlerit.com/2016/07/group-policy-preferences-replace-existing-file/

答え2

興味のある方のために:私は次の解決策を思いつきました。

パスワードは XML ファイル (「パスワード コンテナ」) に暗号化されて保存されます。コンテナは管理者パスワードを使用して開いたり編集したりできます。暗号化は対称的です。コンテナはネットワーク ディレクトリ内のネットワーク リソースに配置されます。

アプリケーションにはパスワード コンテナーの場所が与えられ、管理者パスワードがコード内に保存されているため、パスワード コンテナーを開くことができます。

パスワードをコード内に保存してはならないため、このソリューションは 100% 安全ではないことは承知しています。ただし、これらの要件 (データベース パスワードはユーザーから隠す必要がある、データベース パスワードは管理可能である必要がある) を満たすには、このソリューションで十分です。

関連情報