【发布时间】:2014-12-28 19:06:45
【问题描述】:
假设我想构建一个应用,但我不想在其中注册或无法获得 SSL 证书(无论是什么原因)。
我想知道是否可以通过使用 RSA 来获得 SSL 的安全优势。
我正在使用 CrypticoJS 库 - https://github.com/wwwtyro/cryptico)
例如,假设用户何时向我的应用发布信息。我会做以下事情:
1) 在服务器上拥有 RSA 私钥,并给每个客户端一个 RSA 公钥。
2) 在客户端:在 POST 之前使用 RSA PublicKey 加密数据,以及 POST 加密数据
3) 在服务器上:使用私钥解密 POST 数据。
4) 在服务器上:将解密数据保存到数据库
目标是防止我的用户的敏感信息和密码被黑客入侵。我知道当人们访问我的应用程序时,我不会看到绿色的“信任”横幅,但我的用户的安全是首要任务。请让我知道这是否可能。谢谢。
【问题讨论】:
-
它可以保护正在传输的数据不被嗅探,但中间人攻击可能会修改您的脚本以添加代码,这些代码还将您正在加密的数据发布到另一台服务器。对于security.stackexchange.com,这可能是一个更好的问题。
-
感谢您的回复。为了防止中间人,我还将使用过期的会话,并为每个登录的用户/IP/国家/地区设置最多 1 个会话。
-
会话不能防止中间的自动化人
-
基本上你需要一个 SSL 证书。他们会变得更便宜。 letsencrypt.org
-
StartSSL 提供被广泛接受的免费 SSL 证书。如果您说用户的安全是首要任务时是认真的,那么您应该使用 SSL。