我需要用户在我的脚本中输入他们的密码,以便我可以使用该密码在他们的帐户上执行LDAP操作。这很简单:
password = getpass.getpass()
ldapconn.simple_bind_s(binddn, password)
即使密码永远不会离开脚本并且永远不会以纯文本显示,它是否仍然容易受到类似内存转储的影响?在脚本中保护此密码的最佳方法是什么,但仍然可以使用它?
这篇文章很有意思:https://security.stackexchange.com/questions/29019/are-passwords-stored-in-memory-safe
主要是因为答案证实我怀疑存储在RAM中的密码不安全。我的问题是,一个人应该如何做需要将敏感信息存储在RAM中的工作?该帖子上没有人真正发布实际的实际解决方案,只是很多确认和详细说明为什么RAM不安全。使用上面的LDAP连接的简短示例,您可以进行哪些具体更改以更好地保护密码变量?
答案 0 :(得分:0)
使用上面的LDAP连接的简短示例,您可以进行哪些具体更改以更好地保护密码变量?
无。你要么:
存在的解决方案是设计不涉及提示用户输入密码,并且不涉及向其他服务发送纯文本密码。
e.g。您有一个正常工作的Kerberos环境,具有同步时间,用户首次登录时获取Kerberos票证,以及这些票证用于在没有密码提示的情况下对服务进行身份验证。门票的有效期有限,并且内置了Kerberos重播detection,因此如果从内存中获取它们,则它们的密码远不如密码。
因此,用户针对整个环境点击一次密码提示,而不是针对他们运行的每个脚本或他们访问的服务点击一次,并且该密码由一个集中的,经过良好审核的低级操作系统进程处理。