【问题标题】:How to secure a private key used by a web server to decrypt string store in a db?如何保护 Web 服务器使用的私钥来解密数据库中的字符串存储?
【发布时间】:2021-02-19 05:55:34
【问题描述】:
我正在开发一个小型应用程序,它可以帮助用户轻松地从他们的 isp 提供商处获取信息,方法是取消他们的 isp 帐户页面。为此,我需要将他们的用户名和密码存储在我的数据库中。为了保证他们的密码安全,我将使用 openssl 公钥在我的数据库中对其进行编码,并在我的爬虫登录到他们的帐户页面之前使用私钥对其进行解码。
我想知道将我的私钥放在哪里,这样即使有人控制了我的网络服务器,密码也是安全的?因为将私钥留在网络服务器上是完全不合适的......
tks
【问题讨论】:
标签:
encryption-asymmetric
【解决方案1】:
如果有人完全控制了您的服务器并且对这些密码感兴趣,他就会成功。始终考虑到这一点,并制定在这种情况下该怎么做的计划。
现在,为了使实现这一点尽可能困难和不可能,我建议将密钥(或者更好的是密码)存储在某种内存表中:就像 Ramdisk,一个只给出一个密码的脚本每分钟,如果调用超过此等,则自行删除。
我没有看到在这里使用公钥加密有什么积极作用,无论你使用什么,解密的密钥都必须存储在服务器上。您可能会寻找描述 https 证书问题的 Howto,它们应该受密码保护,并且必须在服务器启动时阅读 - 问题是相关的。
可能一个好的解决方案是登录服务器,将密码文件存储在 ramdisk 中并注销。重复服务器重启、崩溃或密码更改。