与非加密连接相比,TLS添加了多少网络开销?

时间:2009-10-23 21:02:20

标签: http networking https ssl

(大约)与未加密的连接相比,在加密连接期间必须通过网络传输多少位数据?

IIUC,一旦TLS握手完成,传输的比特数等于未加密连接期间传输的比特数。这准确吗?

作为后续工作,在快速处理器和相同(理想)的网络条件下,通过https传输大文件比通过http传输该文件要慢得多吗?

5 个答案:

答案 0 :(得分:23)

我已经多次提出这个问题了,所以我决定根据常见情况写一些关于开销的小解释。您可以在我的博客http://netsekure.org/2010/03/tls-overhead/上阅读。

博文摘要

  • 建立新TLS会话的总开销平均约为6.5k字节。
  • 恢复现有TLS会话的总开销平均约为330字节。
  • 加密数据的总开销约为40个字节。

答案 1 :(得分:12)

简短的回答是:你的Milage May Vary(YMMV) - 这一切都取决于你的交通模式。有许多因素需要考虑:

  • 额外的握手和证书将为TCP流添加4-6KB,这将导致更多的以太网帧穿过线路
  • 客户下载certificate revocation list。像cURL这样的工具省略了这一步。 crl可以由浏览器缓存,但是,它通常与它没有很长的年龄关联。 Verisign将他们的设备在四分钟后过期。在我的测试中,我看到Windows上的Safari下载了两次相同的91KB文件。
  • TLS Session resumption可以避免握手的公钥交换部分以及证书验证。
  • HTTP keep-alives将保持套接字打开,与http相同,但在套接字为TLS时节省更多。
  • SSL compression支持开始显示服务器端,但AFAIK,大多数浏览器尚未实现此功能。此外,如果您已经在http层压缩,那么这里不会有太多。如果客户端向服务器发送大量文本(通常不在http层压缩),则可能获得巨大的收益。

答案 2 :(得分:1)

http://netsekure.org/2010/03/tls-overhead/中计算的开销上,你认为你可以在CBC模式下跳过AES的初始化向量(IV)吗?因为它是AES128,我认为需要将16字节的IV添加到开销中,使得总数为56而不是40字节。

答案 3 :(得分:0)

在2020年,TLS 1.2和1.3更典型,而AES-GCM是具有较低开销的流密码模式。

请参见https://tools.ietf.org/id/draft-mattsson-uta-tls-overhead-01.xml#rfc.section.3

每个数据包,AES-GCM的开销为29个字节。 TCP MSS可能高达1460(https://blog.apnic.net/2014/12/15/ip-mtu-and-tcp-mss-missmatch-an-evil-for-network-performance/)。因此,对于大型下载(使用最大MSS),开销为29:1431,占2.03%。

(握手开销是一次性的)

答案 4 :(得分:-2)

一个数量级。见this。如果受保护的信息值得保护,这并不太重要。请记住,处理器速度只会上升,因此性能会不断提高。