跳至主要內容
HTTPS与SSL/TLS

HTTPS与SSL/TLS

问什么会有HTTP,因为HTTP不安全,是明文,可伪造。

如果通信过程具备了四个特性,就可以认为是“安全”的,这四个特性是:机密性、完整性,身份认证和不可否认。

  • **机密性(Secrecy/Confidentiality)**是指对数据的“保密”,只能由可信的人访问,对其他人是不可见的“秘密”,简单来说就是不能让不相关的人看到不该看的东西。

  • **完整性(Integrity,也叫一致性)**是指数据在传输过程中没有被篡改,不多也不少,“完完整整”地保持着原状。

  • **身份认证(Authentication)**是指确认对方的真实身份,也就是“证明你真的是你”,保证消息只能发送给可信的人。

  • 第四个特性是不可否认(Non-repudiation/Undeniable),也叫不可抵赖,意思是不能否认已经发生过的行为,不能“说话不算数”“耍赖皮”。


Yihui大约 3 分钟NetworkHTTP
HTTPS性能优化方案

HTTPS性能优化方案

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

由于目前流行的 AES、ChaCha20 性能都很好,还有硬件优化,报文传输的性能损耗可以说是非常地小,小到几乎可以忽略不计了。所以,通常所说的“HTTPS 连接慢”指的就是刚开始建立连接的那段时间。

在 TCP 建连之后,正式数据传输之前,HTTPS 比 HTTP 增加了一个 TLS 握手的步骤,这个步骤最长可以花费两个消息往返,也就是 2-RTT。而且在握手消息的网络耗时之外,还会有其他的一些“隐形”消耗,比如:


Yihui小于 1 分钟NetworkHTTP
TLS1.2连接过程解析

TLS1.2连接过程解析

HTTPS 协议,它需要再用另外一个“握手”过程,在 TCP 上建立安全连接,之后才是收发 HTTP 报文。

TLS 协议的组成

**记录协议(Record Protocol)**规定了 TLS 收发数据的基本单位:记录(record)。它有点像是 TCP 里的 segment,所有的其他子协议都需要通过记录协议发出。但多个记录数据可以在一个 TCP 包里一次性发出,也并不需要像 TCP 那样返回 ACK。

**警报协议(Alert Protocol)**的职责是向对方发出警报信息,有点像是 HTTP 协议里的状态码。比如,protocol_version 就是不支持旧版本,bad_certificate 就是证书有问题,收到警报后另一方可以选择继续,也可以立即终止连接


Yihui大约 3 分钟NetworkHTTP