美文网首页
HTTPS(二)

HTTPS(二)

作者: _1633_ | 来源:发表于2020-12-28 23:45 被阅读0次

HTTPS的优化

HTTPS 连接大致上可以划分为两个部分,第一个是建立连接时的非对称加密握手,第二个是握手后的对称加密报文传输。

    在 TCP 建连之后,正式数据传输之前,HTTPS 比 HTTP 增加了一个 TLS 握手的步骤,这个步骤最长可以花费两个消息往返,也就是 2-RTT

硬件优化

    选择更快的 CPU,选择“SSL 加速卡”,“SSL 加速服务器”

软件优化

    一个是软件升级,一个是协议优化。

        如果有可能,应当尽量采用 TLS1.3,如果暂时不能升级到 1.3,只能用 1.2,那么握手时使用的密钥交换协议应当尽量选用椭圆,椭圆曲线也要选择高性能的曲线,最好是 x25519,次优选择是 P-256曲线的 ECDHE 算法。对称加密算法方面,也可以选用“AES_128_GCM”,在 Nginx 里可以用“ssl_ciphers”“ssl_ecdh_curve”等指令配置服务器使用的密码套件和椭圆曲线,把优先使用的放在前面。

证书优化

    这里就有两个优化点,一个是证书传输,一个是证书验证。

会话复用

    我们再回想一下 HTTPS 建立连接的过程:先是 TCP 三次握手,然后是 TLS 一次握手。这后一次握手的重点是算出主密钥“Master Secret”,而主密钥每次连接都要重新计算,未免有点太浪费了,如果能够把“辛辛苦苦”算出来的主密钥缓存一下“重用”,不就可以免去了握手和计算的成本了吗?

    这种做法就叫“会话复用”(TLS session resumption),和 HTTP Cache 一样,也是提高 HTTPS 性能的“大杀器”,被浏览器和服务器广泛应用。

    会话复用分两种,第一种叫“Session ID”,就是客户端和服务器首次连接后各自保存一个会话的 ID 号,内存里存储主密钥和其他相关的信息。当客户端再次连接时发一个 ID 过来,服务器就在内存里找,找到就直接用主密钥恢复会话状态,跳过证书验证和密钥交换,只用一个消息往返就可以建立安全通信 了第二种“Session Ticket”方案。

它有点类似 HTTP 的 Cookie,存储的责任由服务器转移到了客户端,服务器加密会话信息,用“New Session Ticket”消息发给客户端,让客户端保存。

    重连的时候,客户端使用扩展“session_ticket”发送“Ticket”而不是“Session ID”,服务器解密后验证有效期,就可以恢复会话,开始加密通信。

相关文章

  • HTTPS (二)

    HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS 也会降低用户访问速度,增...

  • HTTPS(二)

    HTTPS的优化 HTTPS 连接大致上可以划分为两个部分,第一个是建立连接时的非对称加密握手,第二个是握手后的对...

  • HTTPS(二):HTTPS原理-内容加密

    HTTPS是如何做到『内容加密』、『身份认证』、『内容完整性』的? 下面从原理角度看一下 HTTPS 原理介绍之内...

  • 二、Https协议

    HTTPS 基本过程 HTTPS 即 HTTP over TLS,是一种在加密信道进行 HTTP 内容传输的协议。...

  • 二、https证书

    certbot阿里云脚本自动续期httpssudo apt-get updatesudo apt-get inst...

  • HTTP协议(二):HTTPS

    HTTPS 协议(HyperText Transfer Protocol over Secure Socket L...

  • HTTP与HTTPS(二)

    一、HTTP与HTTPS发展历程 1、1990年,HTTP诞生,HTTP在WWW全球信息刚起步的时候就得到了应用;...

  • HTTP与HTTPS(二)

    HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一...

  • centos 配置https (二)

    centos 配置 https

  • iOS网络(二)-HTTP、HTTPS

    一、URL URL的全称是Uniform Resource Locator(统一资源定位符)。通过1个URL,能找...

网友评论

      本文标题:HTTPS(二)

      本文链接:https://www.haomeiwen.com/subject/ldmxoktx.html