假设我在Bash shell脚本中有一个包含敏感值(例如密码)的环境变量。在退出脚本之前,如何安全地覆盖保存此变量值的内存?
如果可能,用于这样做的技术将不依赖于我正在使用的Bash的特定实现。我想找到一种符合标准的/规范的方法来实现所有正确的Bash实现。
请注意,以下内容不在问题范围内: 1.如何将敏感值置于环境变量中 2.如何将存储在环境变量中的敏感值传递给使用它的程序
7/10/2017 5:03 AM更新地址评论由rici
rici,感谢您的评论,复制到这里:
“退出脚本实际上是可靠删除的唯一方法 来自脚本驻留内存的环境变量。你为什么 脚本终止后感觉字符串不安全 正在运行?“
我的目的是遵循良好做法,并在我使用它们时立即从内存中主动清除所有加密敏感值。
我不知道Bash在脚本退出时是否主动清理脚本使用的内存。我怀疑它没有。如果确实没有,敏感的加密值将保留在内存中,并且可能被对手捕获。
在C / C ++中,可以轻松擦除值的内存位置。我试图在Bash中发现这是可能的。对于安全敏感的应用程序,Bash可能不是正确的工具。