是否可以使用 DACL 字符串选择这样的安全描述符,使得文件只能由 Windows 服务打开,而不能由普通进程打开,即使该进程由本地管理员帐户运行?
为了澄清,我只需要让非技术用户在记事本中打开它并篡改它相当困难。它不需要与愿意花费一个月时间进行逆向工程和破解它的程序员对抗。
我更喜欢使用 DACL 而不是锁定文件来实现这一点,因为这样我的 Windows 服务就不需要一直运行来保护文件。
是否可以使用 DACL 字符串选择这样的安全描述符,使得文件只能由 Windows 服务打开,而不能由普通进程打开,即使该进程由本地管理员帐户运行?
为了澄清,我只需要让非技术用户在记事本中打开它并篡改它相当困难。它不需要与愿意花费一个月时间进行逆向工程和破解它的程序员对抗。
我更喜欢使用 DACL 而不是锁定文件来实现这一点,因为这样我的 Windows 服务就不需要一直运行来保护文件。
本地管理员帐户 = 上帝(至少在盒子上)。没有办法做到这一点。
您可以为您的服务定义一个特殊的特权帐户来运行,并使受保护文件上的 ACL 只允许该用户(以及所有机器管理员)访问。您可以禁止使用该服务帐户进行交互式登录。
如果您主要关心的是被交互式用户篡改,您可能需要一个策略,使本地用户默认不以本地管理员权限运行。不幸的是,您不能允许“部分”本地管理员权限 - 要么全有,要么全无。
我对 DACL 的了解还不够,无法说明您是否或如何使用这些来完成您想要的。除了将其限制为本地管理员帐户之外,我还可以想到一些可以使某人更难篡改文件的方法:
这些都不是万无一失的,但听起来你的目标只是让它变得更难。没有万无一失的方法可以阻止具有管理员权限的用户。