gpt4 book ai didi

security - 发布时是否可以在 Web 应用程序中使用 RSA 加密而不是 SSL?

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:01 24 4
gpt4 key购买 nike

假设我想构建一个我不想在其中注册或无法获得 SSL 证书(无论出于何种原因)的应用。

我想知道是否有可能通过使用 RSA 来获得 SSL 的安全优势。

我正在使用 CrypticoJS 库 - https://github.com/wwwtyro/cryptico )

例如,假设用户将信息发布到我的应用程序。我会做以下事情:

1) 服务器上有RSA私钥,给每个客户端一个RSA公钥。

2)客户端:POST前使用RSA PublicKey加密数据,POST加密数据

3) 在服务器端:用私钥解密POST数据。

4) 在服务器端:将解密后的数据保存到数据库

目标是防止我的用户的敏感信息和密码被黑客入侵。我知道当人们访问我的应用程序时我不会看到绿色的“信任”横幅,但我的用户安全是重中之重。如果可能,请告诉我。谢谢。

最佳答案

TLS/SSL 提供的安全优势远不止数据加密(通过 RSA 或其他算法)。要详细了解 TLS/SSL 的工作原理及其提供的保护,请参阅真正专家的回答:https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work/20847#20847 .

从技术上讲,您可以使用 JavaScript 加密库在客户端使用 RSA 公钥加密数据,然后将其提交给服务器以通过相应的私钥进行解密。您还需要考虑的许多事情中的一些:

  • 除非您要加密的数据量非常小,否则使用 RSA 进行数据加密/解密可能会很慢。 TLS/SSL 使用非对称算法(如 RSA)进行对称 key 加密,这比基本使用 RSA 进行所有加密/解密的性能要好得多。

  • 如果没有 TLS/SSL,您的最终用户将无法确保他们将加密数据提交到受信任的网络服务器。例如,如果攻击者正处于请求的中间(例如通过公共(public) wifi),他们可以操纵从您的网站发送的响应以更改要使用的 RSA 公钥,以及将加密数据提交到的 URL .在这种情况下,您的最终用户可能不会注意到任何问题。

  • TLS/SSL 的使用附带浏览器级别的保护,您无法单独使用 JavaScript 完全复制。一个例子是网络服务器信任。如果没有来自可信证书颁发机构的 SSL 证书,您的最终用户就很难保证他们的敏感数据受到保护。在安全站点上,浏览器将提供一个挂锁和/或绿色地址栏作为数据正在通过安全连接发送的视觉指示器。如果不存在,用户需要相信您已经实现了替代安全机制。即使您有(我认为这几乎是不可能的),用户也不能保证中间人攻击不会改变您的实现。

如果您说您的用户安全是重中之重,我强烈建议您考虑使用 TLS/SSL 来满足您的需求。

关于security - 发布时是否可以在 Web 应用程序中使用 RSA 加密而不是 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27679675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com