我应该使用 https 托管我的整个 Web 应用程序吗?

我应该使用 https 托管我的整个 Web 应用程序吗?

实际上,我对使用 SSL 加密的唯一要求是,当用户登录时,密码会以加密方式传输。但是在阅读了一些有关协议切换的内容后,我发现 HTTPS 会话不能被接管为 HTTP 会话等。我一直在问自己,让整个应用程序只使用 HTTPS 是否很糟糕。

反对的理由是什么?您认为这些理由的重要性如何?请同时提及:

  • 我在服务器端会损失多少性能(大约)?
  • 我在客户端会损失多少性能(大约)?
  • 服务器/客户端还有其他问题吗?

答案1

反对理由:没有任何。互联网是不安全的网络,必须如此对待。
关于性能:
如果您的性能目标不是 99% 时间内响应时间小于 500 毫秒,则 SSL 不会成为您的瓶颈。大多数时候,有比关闭 SSL 更有益的性能改进。

HTTPS ir 握手的最大性能障碍,但你可以通过以下方式缓解:
- 开启 keepalive
- 启用 TLS 会话恢复,这可以摊销非对称加密的成本,无需会话恢复客户端在每次请求时发送证书(几 kb/s)并且服务器必须进行 RSA 解密...

为了提高客户端/服务器端的性能,减少请求/响应/压缩内容的数量等更为重要。

如果您的服务器和客户端软件没有严重过时,则 SSL 应该不会出现问题,不包括在服务器上安装证书/信任链和更新证书...

请记住,99% 的 Web 应用程序都是 I/O,而不是 CPU 密集型的,因此 SSL 将仅使用空闲的服务器 CPU 周期。

答案2

您没有说明您使用的是哪种身份验证方法。如果您使用的是基本身份验证,请记住,凭据是使用每一个请求直到浏览器关闭。无论如何,所以切换是没有意义的。

对于任何 SSL 连接,唯一影响性能的方面是连接的初始握手。一旦客户端和服务器交换了密钥,客户端和服务器的开销就微不足道了,因此继续 SSL 连接不会有什么坏处,除非您正在处理一个非常大容量的服务器。您预计会有什么样的负载?

答案3

同意 SmallClanger 和 Kristaps 的观点。

我没有关于性能影响的数字,但我会使用完整的 SSL(关键字火羊)。我知道这种攻击技术已经存在多年,但现在人们的意识正在增强,唯一真正的解决方案是完整的 SSL。

相关内容