【发布时间】:2019-09-18 01:04:58
【问题描述】:
我正在编写一个 PowerShell 脚本,每隔几个月,第三方应用就会自动调用它来执行以下操作:
- 使用
[System.Web.Security.Membership]::GeneratePassword()随机生成密码,然后将该密码与Export-PfxCertificate和OpenSSL 的passin一起使用。 - 使用静态密码通过 COM API 向不支持 API 密钥或任何东西的第三方系统进行身份验证。
安全地执行此操作的最佳方法是什么?
据我所知,#1 没有任何问题,但我在网上阅读的关于 #2 的所有内容都建议:
- 要求用户在执行脚本时提供凭据,但这违背了自动化流程的意义。
- 使用 PSCredential,但这在此处是不可能的。
- 使用加密的密钥/密码文件,但据我所知,这没有任何意义,因为您实际上仍在将密码存储在脚本文件旁边 - 如果服务器受到威胁,那么他们可以从脚本中读取密码或解密密钥文件中的密码。除非您使用未存储在服务器上的自定义加密密钥,但同样会破坏自动化。
【问题讨论】:
-
可以对文件的密码进行加密,使其只能由同一用户在同一服务器上恢复,因此该文件对其他人实际上是无用的。不是 100% 安全,但可能足以满足您的情况。查看我之前对类似问题的回答:What is the best way to store account credentials ...
标签: powershell security passwords