我需要用户将他们的密码输入到我的脚本中,这样我就可以使用这个密码在他们的帐户上执行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连接的简短示例,您可以做哪些具体的更改来更好地保护密码变量?
发布于 2015-10-02 22:30:35
使用我上面的LDAP连接的简短示例,您可以做哪些具体的更改来更好地保护密码变量?
没有。你要么:
现有的解决方案是设计一个根本不需要提示用户输入密码的设计,并且不需要向其他服务发送纯文本密码。
例如,您有一个运行正常的Kerberos环境,具有同步时间,用户在第一次登录时就获得Kerberos票证,并且这些票证被用于使用没有密码提示的服务进行身份验证。票证的生命周期有限,并且内置了Kerberos重播检测,因此如果从内存中取出它们,它们比密码的用处要小得多。
因此,用户在整个环境中只点击一次密码提示,而不是他们运行或访问的每个脚本一次,该密码由一个集中的、经过良好审查的低级别OS进程处理。
https://stackoverflow.com/questions/32916324
复制相似问题