添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

随着 HTTP/2 的逐渐普及,以及国内网络环境越来越糟糕(运营商劫持和篡改),HTTPS 已经开始成为主流。HTTPS 在 TCP 和 HTTP 之间增加了 TLS(Transport Layer Security,传输层安全),提供了内容加密、身份认证和数据完整性三大功能,同时也给 Web 性能优化带来新的挑战。

TLS 的前身是 SSL(Secure Sockets Layer,安全套接字层),由网景公司开发,后来被 IETF 标准化并改名。通常没有特别说明时,SSL 和 TLS 指的是同一个协议,不做严格区分。

TLS 握手

在传输应用数据之前,客户端必须与服务端协商密钥、加密算法等信息,服务端还要把自己的证书发给客户端表明其身份,这些环节构成 TLS 握手过程,如下图所示:

可以看到,假设服务端和客户端之间单次传输耗时 28ms,那么客户端需要等到 168ms 之后才能开始发送 HTTP 请求报文,这还没把客户端和服务端处理时间算进去。光是 TLS 握手就需要消耗两个 RTT(Round-Trip Time,往返时间),这就是造成 HTTPS 更慢的主要原因。当然,HTTPS 要求数据加密传输,加解密相比 HTTP 也会带来额外的开销,不过对称加密本来就很快,加上硬件性能越来越好,所以这部分开销还好。

通过 Wireshark 抓包可以清楚地看到完整 TLS 握手过程所需的两个 RTT,如下图:

二、 TLS 握手 协议 TLS 协议是由 TLS 记录协议和 TLS 握手 协议这两层协议叠加而成的,位于底层的 TLS 记录协议负责进行信息传输和 认证 加密,位于上层的 TLS 握手 协议则负责除加密以外的其它各种操作,比如密钥协商交换、身份 认证 等。 TLS 1.2 首次完整 握手 过程 需要2-RTT,会话恢复简短 握手 过程 需要1-RTT, TLS 1.3 在两种情况下均能比前者减少1-RTT。 三、 TLS 性能 优化 TLS 可以通过选择更安全高效的加解密算法、使用硬件加速模块、更新的协议、CDN技术等来提高效率。
1. 握手 目的 为了实现HTTPS通信的机密性,在通信刚开始的时候使用非对称算法,比如RSA、ECDHE,首先解决密钥交换的问题。然后用随机数产生对称算法使用的会话密钥再用公钥加密(session key)。对方拿到密文后用私钥解密,取出会话密钥。这样,双方就实现了对称密钥的安全交换,后续就不再使用非对称加密,全部使用对称加密。 RSA 握手 握手 协议是 TLS 握手 协议的一部分,负载生成共享密钥以及交换证书。其中,生成共享密钥是为了进行密码通信,交换证书是为了通信双方相互进行 认证 握手 协议这一名称中的“ 握手 ”,是服务器和客户端在密码通信之间交换一些必要信息这一 过程 比喻。 由于 握手 协议的信息交换是在没有加密的情况下进行的(即使用“不加密”这一密码套件),也就是说,在这一协议中所收发的所有数据都可能被窃听者窃听,因此在这一过... TLS 的密码规格变更协议是 TLS 握手 协议的一部分,用于密码切换的同步。 那么为什么这个协议不叫密码规格开始协议,而是叫密码规格变更协议呢?这是因为即便在密码通信开始之后,客户端和服务器也可以通过重新 握手 来再次改变密码套件。也就是说,客户端和服务器是使用“不加密”这一密码套件进行通信的,因此通信内容是没有进行加密。 二 警告协议 TLS 的警告协议是 TLS 握手 协议的一部分... 本文是对 HTTPS 安全基础、 TLS /SSL 工作原理及 握手 过程 的总结。第一部分介绍为 HTTPS 提供安全基础的 TLS /SSL 的基础概念,及数据传输 过程 中密钥协商的原因。第二部分介绍密钥协商 过程 中存在的问题,及解决办法,其中会涉及 PKI、CA 等概念。最后介绍 TLS /SSL 的 握手 过程 。 HTTP 和 HTTPS 的区别:https://blog.csdn.net/qq_38289815/article/details/80969419 TLS /SSL 基础概念 概念源自百 net.ipv4.conf.all.arp_ignore=8 net.ipv4.conf.lo.arp_ignore=8 net.ipv4.conf.all.arp_announce=2 net.ipv4.conf.lo.arp_announce=2 使用原来能够ping通的电脑发现还能ping通,那是因为电脑中的arp 缓存导致的,需要通过arp 命令删除这条arp表,再ping就无法ping通了, 然后再使用arp 添加这条arp表,可以发现又可以ping通了。 注意arp 缓存 Linux内核参数之arp_ignore和arp_announce cft56200_ln: http://kb.linuxvirtualserver.org/wiki/Using_arp_announce/arp_ignore_to_disable_ARP http://kb.linuxvirtualserver.org/wiki/Using_arptables_to_disable_ARP https://linux.die.net/man/8/ifconfig 使用docker镜像-如何创建、访问和分享我自己的容器呢? Tisfy: 我唯一能做的,就只有把这个帖子顶上去这件事了。 mysql数据库误删除后的数据恢复方法 Tisfy: 写得太好了!正如那:顽老情怀,都无欢事,良宵爱幽独。