首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python:保护脚本中敏感的变量内容

Python:保护脚本中敏感的变量内容
EN

Stack Overflow用户
提问于 2015-10-02 21:46:25
回答 1查看 893关注 0票数 0

我需要用户将他们的密码输入到我的脚本中,这样我就可以使用这个密码在他们的帐户上执行LDAP操作。很简单:

代码语言:javascript
代码运行次数:0
运行
复制
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连接的简短示例,您可以做哪些具体的更改来更好地保护密码变量?

EN

回答 1

Stack Overflow用户

发布于 2015-10-02 22:30:35

使用我上面的LDAP连接的简短示例,您可以做哪些具体的更改来更好地保护密码变量?

没有。你要么:

  • 需要将纯文本发送到LDAP API,。
    • 在这种情况下,您需要获得纯文本,攻击者可以获取该纯文本。
    • 或者您需要解密的加密文本,攻击者可以在您解密之后获得这些文本。

  • 需要密码散列才能发送到LDAP API 。
    • 然后攻击者就可以得到哈希并使用它。这实际上是一个简单的密码。

现有的解决方案是设计一个根本不需要提示用户输入密码的设计,并且不需要向其他服务发送纯文本密码。

例如,您有一个运行正常的Kerberos环境,具有同步时间,用户在第一次登录时就获得Kerberos票证,并且这些票证被用于使用没有密码提示的服务进行身份验证。票证的生命周期有限,并且内置了Kerberos重播检测,因此如果从内存中取出它们,它们比密码的用处要小得多。

因此,用户在整个环境中只点击一次密码提示,而不是他们运行或访问的每个脚本一次,该密码由一个集中的、经过良好审查的低级别OS进程处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32916324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档