首页 > 解决方案 > 将用户公钥存储在数据库中不会使加密在数据泄露时变得毫无意义吗?

问题描述

我正在研究加密我的数据库的策略。到目前为止,使用公钥/私钥对似乎是我见过的最常用的解决方案。例如,如何在 Firebase 中加密用户数据,建议将用户 A 公钥存储在 Firebase 中,并由任何想要向他发送消息的用户获取。

用户 A 登录后,他的手机上会生成一个随机的公钥私钥对。例如:使用 Ecc Curve25519 来自 A 的私钥安全地存储在他的手机上 来自 A 的公钥存储在 firebase 中,任何与 A 聊天的人都可以访问。如果 X 向 A 发送消息,他会从 A 获取公钥from firebase 在本地加密 A 的消息,并将加密的消息存储在来自 A 的收件箱中的 firebase 上

据我了解,如果攻击者访问数据库,他可以解密整个数据库,因为他可以访问所有公钥。如果是这种情况,那么加密它有什么意义呢?

相反,如果使用的加密/解密密钥没有存储在数据库中,那么攻击者只会获取加密数据,对吗?在第二种情况下,为用户提供此密钥的最安全方法是什么?非常感谢。

标签: databaseencryption

解决方案


推荐阅读