批处理脚本-访问Windows凭据管理器密码(或如何加密和使用密码)



我在SERVER a上有一个批处理脚本,它使用"schtasks"命令激活SERVER B上的计划任务。此命令需要用户名和密码才能访问另一台服务器,但我们不希望以纯文本形式存储这些数据。有没有办法将此密码保存为非纯文本格式?即使密码以纯文本形式传递给"schtasks"命令,也比将其存储在批处理脚本中要好。

您不能使用Kerberos吗?

如果你做不到,试着看看在Java web应用程序中存储密码变量的不同方法?选项3。您可以使用密钥,并共享密钥来解密所需的凭据,但它的安全性仍然很差。

如果可以使用Kerberos,只需检查SERVERB是否允许使用Kerberos令牌。它可以是SERVERA上的本地用户,也可以是域用户。例如,通过"schtasks"以Script_User_A on SERVERA的形式启动"SCRIPT.bat";Script_User_A是域用户,权限较低。SERVERB在收到任何第一个请求后立即启动SERVERA的质询/响应,要求Script_User_A证明其身份。Script_User_A会做,SERVERB很高兴,一切都正常。如果Malicious_User尝试执行"SCRIPT.bat",SERVERB将发送一个Malicious_User无法"响应"的质询,并且SERVERB将知道"SCRIPT.pat"是由其他人执行的。

使用Kerberos,这种挑战/响应机制是免费的:您需要学习一下Microsoft TechNet和API,但这是值得的,尤其是如果您习惯于在Windows上开发。

最新更新