HTTPS

JeremyJone ... 2022-9-9 大约 2 分钟

# HTTPS

# 什么是 HTTPS

HTTPS:(Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道。在 HTTP 的基础上,通过传输加密和身份认证保证了传输过程的安全性。

# HTTP 的缺陷

HTTP 存在如下问题:

  • 请求信息都是明文传输,容易被嗅探
  • 数据没有完整性校验,容易被篡改

针对这些问题,就有了 HTTP + TLS/SSL 构建的可进行加密传输、身份认证的网络协议 HTTPS。它主要通过数字证书、加密算法、非对称秘钥等技术完成互联网数据传输加密,实现互联网传输安全保护。

# 什么是 SSL

SSL 是网景公司为了保证隐私数据的加密传输而设计开发的用于 HTTP 上的协议。它的出现,为数据传输提供了安全支持。

# HTTPS 的工作原理

客户端在使用 HTTPS 方式与服务器通信时,可以分为如下所示:

  • 客户使用 HTTPSURL 访问服务器,要求与服务器建立 SSL 连接
  • 服务器收到客户端请求后,会将网站的证书信息(含公钥)传送一份给客户端
  • 客户端与服务器开始协商 SSL 连接的安全等级,也就是信息加密的等级
  • 客户端根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站
  • 服务器利用自己的私钥解密出会话密钥
  • 服务器利用会话密钥加密与客户端之间的通信

HTTP 不同,HTTPS 使用了 443 端口,而非 HTTP 的 80 端口。

# HTTPS 的优缺点

# 优点

  • 使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户端和服务器
  • HTTPS 协议由 SSL + HTTP 构建,相比单独的 HTTP 协议更加安全,可以防止数据在传输过程中被窃取、篡改,确保数据的完整性
  • HTTPS 是现行架构下最安全的解决方案,它大幅增加的中间人攻击的成本

# 缺点

  • 相同网络环境下,HTTPS 协议会使页面加载时间延长 50%,增加 10%~20% 的耗电。此外,还会影响缓存等
  • HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎不起作用
  • SSL 证书信用链体系并不安全,中间人攻击是可行的,只是成本增加
  • 服务器成本增加。服务器在部署了 HTTPS 协议之后,会频繁的进行加解密工作,但这些成本基本可以接受
  • SSL 证书通常不是免费的,而且功能越强,费用越高,这需要额外一笔开支。