【发布时间】:2012-07-15 06:02:56
【问题描述】:
用户通过 Rails 应用互相发送消息并为其他用户发布私人信息。
目标是保护消息安全,因此系统管理员和数据库泄漏都无法破坏数据。使用接收方密钥的 Javascript 客户端加密,加密数据存储在数据库中并在接收方解密。密钥不存储在系统中。
有意义吗?有解决办法吗? 非常感谢!
更新:我的意思是非对称加密。每个用户有两个密钥:一个用于加密的公共密钥,一个用于解密的私有密钥。以及应用程序本身的密码。用户使用他的密码登录,创建一条消息,该消息使用收件人公钥(存储在系统中)加密客户端并保存在数据库中。收件人使用他的密码登录,然后输入他的私钥来解码消息。解密也是客户端,私钥不发给服务器。
【问题讨论】:
-
我看到的唯一问题:如果密钥没有存储在系统中,客户端如何保留它们?本地存储?然后我无法从两台计算机(甚至浏览器)登录系统。只是一个简单的密码?存在被暴力破解的危险。 ...
-
@JoachimSauer 我提到了非对称密码学。公钥可以存储在系统中,因为它不能用于解密。问题已更新
-
仍然,client 将如何获取(或保留)私钥?它仍然需要它来解密数据。
-
@Elder Joachim 的论点仍然成立。您必须存储私钥。
-
关于更新:所以您希望用户“输入”私钥?就像“输入”一样?这些东西并不容易记住,更不用说正确输入了。
标签: javascript ruby-on-rails security encryption