储存Windows密码
时间:2020-03-05 18:48:38 来源:igfitidea点击:
我正在编写(在Cwith .NET 3.5中)一个管理应用程序,该应用程序将轮询多个Windows系统以获取各种数据。在许多情况下,它将使用WMI,但在某些情况下,它可能需要读取远程注册表或者在被轮询的系统上远程执行某些命令或者脚本。该轮询通常在每晚重复一次的间隔进行,但可以配置为频繁(或者更少)进行。因此,投票可能每10分钟进行一次,而每月一次则很少。它需要以自动化的方式发生,而无需任何人工干预。
这些功能将要求管理员级别访问被轮询的系统。现在,我希望在大多数用例中都会有一个域,并且轮询应用程序可以作为具有域管理员(或者同等权限)特权的服务运行,这意味着我不必担心存储管理员设置密码的问题。应用程序将通过标准Windows机制定义服务的用户名/密码。
但是总是有一些败类。该程序可能在非域环境中运行,或者在某些轮询系统不是域成员的情况下运行。在这种情况下,我们将必须定义一个用户名和密码,安全地存储它们,然后在轮询该系统时调用该用户/密码对。因此,请记住,在这种情况下,正在编写的程序就是向认证系统发送密码的用户。
我不确定是否需要使用可逆哈希,然后在使用时将其解密为纯文本,或者是否有某种Windows机制允许我存储然后仅重用哈希。显然,第二种机制是可取的。我希望我的程序永远不知道密码的明文值,或者在最短的时间内知道它。
我需要有关实现此目标的智能和安全方法的建议。
感谢光临!
解决方案
回答
答案在这里:
如何在Winforms应用程序中存储密码?
回答
好吧,程序似乎需要模拟用户,而不是已经在其下运行的上下文。虽然,它看起来确实像一个相当自动化的过程,但是如果不是,我们是否可以在对这台"黑羊"计算机进行轮询时不要求管理员输入用户名和密码?