HTTPS


2020-09-07 上次更新时间:4/29/2022, 9:34:08 AM 0
  • HTTP:HyperText Transfer Protocol,超文本传输协议
  • HTPS:Hyper Text Transfer Protocol over SecureSocket Layer,基于安全层的超文本传输协议

HTTPS(安全的HTTP) 是 HTTP 协议的加密版本。它通常使用 SSL 或者 TLS 来加密客户端和服务器之间所有的通信。

# HTTPS网络协议栈

HTTPS 比 HTTP 多了安全传输层

# SSL和TLS

SSL 和 TLS 是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层与应用层之间对网络连接进行加密。

  • SSL:Secure Sockets Layer 安全套接字协议
  • TSL: Transport Layer Security 传输层安全

TSL 是 SSL 的替代协议。常见术语 SSL 指代 SSL 或者 TLS。

# 查看使用版本

chrome - f12 - security

# OpenSSL

OpenSSL 是一个强大的密码库,它是 SSL 和 TLS 最常见的开源实现。

# HTTPS 工作原理

这里浏览器与服务器互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据。

其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而 HASH 算法用于验证数据的完整性。

由于浏览器生成的密码是整个数据加密的关键,因此在传输的时候使用了非对称加密算法对其加密。非对称加密算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而服务器的私钥用于对数据进行解密,所以服务器都会非常小心的保管自己的私钥,防止泄漏。

TLS握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。

# 非对称与对称加密算法

非对称加密算法需要两个密钥:公钥 和 私钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

对称加密(也叫私钥加密)指 加密 和 解密 使用 相同密钥的加密算法。就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。

# HTTP 与 HTTPS 区别

  • HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  • HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
上次更新时间: 4/29/2022, 9:34:08 AM