假设以下示例:
我有一个在线服务,用户可以在其中注册和输入个人数据。现在我想加密这些数据。我有一个私钥 Pr1 和公钥 Pu1。
- 用户在我的在线服务中使用密码登录
- 将登录密码转换为适合私钥格式 = Pr2
- 从 Pr2 获取公钥 Pu2
- 用户输入数据以在线存储在数据库中
- 使用 Pu1 加密用户输入的数据并添加--recipient Pu2类似使用多个不同密钥的加密?
- 现在我可以将在线数据库中的加密数据复制到我的本地机器并使用我本地的 Pr1 解密数据
- 用户可以使用他们的普通密码在线解密他们已经输入的数据,每次登录时都会转换为他们的 Pr2(步骤 2a),但在整个会话期间都有效
使用这种方法,即使攻击者可以访问我的服务器以及所有文件和数据库,也无法解密数据,对吧?当然,暴力攻击是可能的,但每次尝试都需要计算私钥,因此需要一些时间。但是没有私钥在线存储或需要交换。所以这应该很省钱。
这里的问题是:如果这种方法安全且可行,那么肯定已经有类似或更好的东西具有这些功能并使用一些很好的安全标准。它是什么?