在服务器上安全存储聊天日志的最佳方式



我正在开发的聊天应用程序需要将聊天历史记录存储在服务器上。安全存储这个的最佳方法是什么?我不想将纯文本聊天日志存储在表中。

我最初的想法是根据*users密码加密存储它们,然而,如果用户忘记了自己的密码,最好的处理方法是什么?因为我不知道用新密码解密和重新加密的密码是什么。

另一个解决方案是用公钥加密所有内容,并将私钥存储在一台单独的机器上(以及该服务器的本地内存中),并在需要解密和获取完整聊天历史记录时提取。

任何帮助或案例研究都会很棒。

*添加以避免混淆

因为如果数据库被盗,您需要防止以下情况:

  • 避免使用纯文本消息
  • 密钥不能存储在同一个数据库中
  • 你不想要一把钥匙,因为如果猜对了,他们就会解锁所有东西
  • 您不希望密钥与用户提供的信息绑定(尤其是在很容易猜测或可能更改/忘记的情况下)

因此,如果你有预算,我会使用基于硬件的解决方案。这将提供必要的分离,并为您提供良好的密钥,这些密钥不会存储在文件系统或数据库中,而是会安全存储。您可以从一张卡开始(将所有东西都放在同一台物理服务器上),也可以在必要时扩展到机架式机箱。

最新更新