我们如何存储除纯文本以外的密码?

19 linux security authentication

我在stackoverflow上发现了很多关于如何存储用户密码的帖子.但是,我需要知道存储密码的最佳方法是什么,我的应用程序需要通过网络与另一个应用程序进行通信?目前,我们的网络应用程序需要将数据传输到远程网站.要上传数据,我们的网络应用程序会从文本文件中读取密码,并创建包含有效负载的标头并通过https提交.

此文件系统上的纯文本密码是问题.有没有办法更安全地存储密码?

这是一个linux操作系统,应用程序是用python编写的,没有编译.

谢谢!

进一步澄清:根本没有用户参与此过程.其他Web应用程序使用存储在文件系统中的密码来验证发出请求的Web应用程序.用下面的评论者的话来说:"在这种情况下,应用程序是另一个远程应用程序的客户端." (感谢Joe帮我澄清.)

Nea*_*eal 5

从这个问题看来,您似乎需要以这种方式存储密码,以便可以在与另一个站点的自动交易中读取和使用它。您可以对密码进行加密并将其加密存储在文件中,然后在使用它之前使用存储在系统其他位置的密钥对其进行解密。这给使用密码访问文件的人带来了困难,因为他们现在必须找到所使用的密钥和加密算法,以便他们可以对其进行解密。

作为防御,越低的防御总是比被突破时失效的强大防御好。而且,我还将保护包含密码而不是密码本身的文件。将您的网络服务器配置为禁用提供包含密码的文件的可能性,并尝试将需要该文件的进程设置为在单独的帐户下运行,因此您可以将对文件的访问限制为仅运行该进程的帐户和admin帐户。

  • -1这不是密码学解决的问题。攻击者将能够像尝试保护的密码一样容易地获取密钥。这是一项用于文件特权和用户访问控制的工作。 (9认同)
  • 同意@Rook-这不是安全的解决方案。如果您的加密密码被盗,则获取密钥很容易。文件系统保护无济于事,因为无论您做什么,Web服务器都需要访问密码。如果Web服务器具有访问权限,那么潜在的攻击者也可以访问。 (2认同)