我在stackoverflow上找到了很多关于如何存储用户密码的帖子。但是,我需要知道存储密码的最佳方式是什么,我的应用程序需要通过web与另一个应用程序通信。目前,我们的web应用程序需要将数据传输到远程网站。为了上传数据,我们的web应用程序从文本文件中读取密码,并创建具有有效负载的头文件,然后通过https提交。
文件系统上的纯文本密码就是问题所在。有没有更安全地存储密码的方法?
这是一个linux操作系统,并且应用程序是用python编写的,并且没有编译。
进一步澄清:这个过程中根本没有用户参与。其他web应用程序使用存储在文件系统中的密码对发出请求的web应用程序进行身份验证。用下面评论者的话说:“在这种情况下,应用程序是另一个远程应用程序的客户端。”
发布于 2010-04-19 06:36:21
从这个问题上看,你似乎需要以这样一种方式存储密码,以便它可以被读取并在与另一个网站的自动交易中使用。您可以加密密码并将其加密存储在文件中,然后在使用它之前使用系统中其他位置存储的密钥对其进行解密。这给使用密码访问文件的人带来了困难,因为他们现在必须找到使用的密钥和加密算法,以便能够解密它。
作为防御,更少的防御总是比一个强大的防御在被攻破时失败要好。此外,我还会保护包含密码的文件,而不是密码本身。配置您的set服务器以禁用为包含密码的文件提供服务的可能性,并尝试将需要该文件的进程设置为在单独的帐户下运行,以便您可以将对该文件的访问限制为仅运行该进程的帐户和管理员帐户。
发布于 2010-04-19 05:51:05
您可以使用像RSA这样的双向密钥加密算法,密码是加密存储在文件系统上(通过密钥,存储在用户的大脑中),但是要解码密码,用户必须输入密钥。
发布于 2010-04-19 05:51:58
至少,您应该使用权限(如果您在支持权限的文件系统上),以确保您是唯一能够读取该文件的人。
此外,如果您的应用程序是编译的,那么使用硬编码的密码短语加密密码并不是太难。如果代码没有编译,这个方法不会真正有帮助,因为潜在的攻击者可能只需要读取源代码并确定加密即可。
https://stackoverflow.com/questions/2664099
复制相似问题