我决定使用 SSL 加密我的整个网站,即使实际上只有部分网站是必要的。最终结果是该网站现在有点慢。所以,我的问题是:
- 我是否应该只加密网站的会员部分(请记住我在首页上有登录表单)?
- 我是否应该将加密降低到 128 位?
如果站点总体较小,速度差异是否显着?
有几个不同的因素会影响 SSL 速度。
服务器负载。通过加密所有流量,您将增加服务器的 CPU 工作负载。然而,特别是在现代硬件上,除了流量非常高的网站之外,这不会导致真正明显的差异。
对称加密的密钥大小。我认为这就是您所说的将加密减少到 128 位的意思。可能这不是整体速度的重要因素。您可以通过运行例如来对 openssl 进行基准测试openssl speed aes
。您可能会发现 AES 256 并不比 AES 128 慢多少。
-
SSL 握手速度。 SSL 握手在客户端和服务器之间引入了一些普通 HTTP 中不需要的额外往返。这意味着,特别是在高延迟链接上,您开始从服务器获取任何数据之前需要更长的时间。为了缓解这种情况,您可以做一些不同的事情:
A。使用 2048 位 RSA 私钥。这是当前推荐的大小,作为安全性和速度之间的权衡。较大的密钥将需要更长的时间在客户端和服务器之间传输,并且会稍微增加 CPU 密集度。 (看openssl speed rsa2048 rsa4096
.)
b.确保您使用 HTTP keepalive 和 SSL 会话恢复。 HTTP keepalive 将允许客户端重复使用与服务器的现有连接来进行多个请求,从而避免再次建立连接的需要。 SSL 会话恢复允许客户端和服务器使用先前商定的 SSL 参数更快地启动新会话,从而减少新请求所需的往返数据包数量。
当只有部分页面通过 SSL 提供服务时,获得正确的保护可能会很困难。您肯定会希望通过 HTTPS 提供登录表单及其发布到的页面。您还应该设置Secure http://en.wikipedia.org/wiki/HTTP_cookie#Secure_and_HttpOnly标记会话 cookie,否则与服务器的任何明文通信都将包含 cookie,并允许窃听者冒充用户的会话。
但总的来说,考虑到加密所有内容是多么容易,尝试找出哪些页面需要受到保护可能不值得。为了获得最佳安全性,您还应该确保您已经设置了 Web 服务器,以便它可以通过SSL服务器测试 https://www.ssllabs.com/ssltest/index.html来自 Qualys SSL 实验室。
好的基准测试工具可能取决于您的平台。如果你使用的是linux,你可以尝试ab
apache自带的命令:http://en.wikipedia.org/wiki/ApacheBench http://en.wikipedia.org/wiki/ApacheBench.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)