在 Powershell SecureString 中将凭据存储在磁盘上有多危险?

在 Powershell SecureString 中将凭据存储在磁盘上有多危险?

基本上,我想缓存 New-PSSession 所需的凭据并使其可供脚本使用,这样它们就不必打扰人类。

如果我使用 export-clixml 或类似方法将 PSCredential 存储在磁盘上,那么与将其保存在会话变量中相比,这会增加多大的风险?

答案1

PSCredential 使用该机器的私钥加密字符串。加密的数据具有相同的保护级别静止时和运动时一样。加密级别取决于所使用的证书,因此请检查您环境的证书模板以了解机器自动注册(如果您使用它)。或者,您也可以只查看相关机器上的证书。

话说回来,该字符串很容易被解密使用 powershell 单行代码(使用 .Net 而不是内置 cmdlet)。某人需要的只是访问系统和文件。我强烈建议您考虑其他替代方案,例如本地托管的密码管理工具。

答案2

从访问角度来看,您的服务器锁定程度如何?谁有权访问服务器,如果有人获得该密码,该怎么办?大多数人都可以阅读您的脚本,找出密码的用途,并最终将其用于恶意目的。即使它是加密的。

如果是我,我会考虑几个不同的选择:

  1. 如果您还没有这样做,请将脚本作为具有所需凭据的计划任务运行。如果由于凭据类型不同而无法执行此操作。选项 2/3 更可取。

    1. 看看“秘密服务器”之类的东西http://thycotic.com/products/secret-server/ 此类解决方案具有 API,因此您可以从 API 访问凭据。

    2. 有像“JAMS”这样的工具http://www.jamsscheduler.com/它也可以存储凭据并以特定帐户身份运行任务/脚本。您也可以执行诸如构建工作流程之类的操作。

相关内容