目录

🍎 HTTP 与 HTTPS

相关问题

  • 什么是 HTTP / HTTPS?
  • HTTP 与 HTTPS 的区别?
  • 为什么说 HTTPS 比 HTTP 安全?
  • HTTPS 协议的优点 / 缺点?

# HTTP / HTTPS 基本概念

  • HTTP :是互联网最为广泛应用的 超文本传输协议,是客户端和服务器端 请求和应答 的标准(TCP),用于从 WWW 服务器传输文本到本地浏览器的传输协议。HTTP 以明文方式发送内容,不提供任何方式的数据加密。

    特点:

    • 支持 客户端 / 服务器 模式
    • 简单快速。客户向服务器发送请求只需要传送 请求方法和路径。这使得 Web 服务器规模小,通信快;
    • 灵活。HTTP 允许传输任意类型的数据对象,通过请求头的 Content-Type 标记;
    • 无连接。每次连接只处理一个请求。服务器处理完客户的请求并受到客户的应答后,即断开连接。以节省传输时间;
    • 无状态。HTTP 协议无法根据当前的状态进行本次的请求处理。
  • HTTPS:HTTP 协议加入 SSL 层,提高 HTTP 协议的安全性。通过 SSL 证书验证服务器的身份,并为浏览器和服务器之间的通信进行加密。

    SSL 协议位于 TCP / IP 协议与各种应用协议之间,浏览器和服务器在使用 SSL 建立连接时需要选择一组恰当的加密算法来实现安全通信。

# HTTP / HTTPS 区别

  • HTTP 传输的数据未经加密处理,是明文传输信息的超文本传输协议;HTTPS 是具有安全性的 SSL 加密传输协议。
  • HTTP 与 HTTPS 使用不同的连接的方式。HTTP 协议的端口为 80;HTTPS 协议的端口为 443。
  • HTTP 协议是无状态的连接;HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输和身份认证的网络协议,相比于 HTTP 协议更加安全。但是 HTTPS 需要设计加密以及多次握手,性能不如 HTTP;

# HTTPS 的工作原理 / 流程

客户端使用 HTTPS 协议方式与 Web 服务器通信时的步骤:

  • 客户端使用 HTTPS 的 URL 访问服务器,要求 Web 服务器建立 SSL 连接;
  • Web 服务器接收到来自客户端的请求之后,会将网站的证书(包含公钥)传输给客户端;
  • 客户端和 Web 服务器开始协商 SSL 连接的安全等级(加密等级);
  • 客户端浏览器通过双方协商一致的安全等级,建立 会话密钥,然后通过 公钥 加密 会话密钥,并传送给网站;
  • Web 服务器通过自己的 私钥 解密出 会话密钥;
  • Web 服务器通过 会话密钥 加密与客户端之间的通信;

# HTTPS 更加安全

HTTP 通信过程中存在问题(风险):

  • 使用明文通信(不加密)。(内容容易被窃听)
  • 不验证通信方身份。(身份容易被伪装)

SSL 层通过以下手段解决,保障通信安全:

  • 对称加密:保证 加密和解密 使用的密钥是同一个。 解决通信过程的机密性。

  • 非对称加密:存在公钥和私钥用来加密和解密;公钥加密后只能用私钥解密;私钥加密后只能用公钥解密。实现密钥协商。

  • 混合加密:HTTPS 采用对称加密和非对称加密混合,保证了密钥安全;保证了密钥交换的问题;

    发送密文的一方使用对方的公钥进行加密处理「对称的密钥」,然后对方用自己的私钥解密拿到「对称的密钥」,这样确保了交换的密钥是安全的情况下,使用对称加密方式进行通信。

  • 摘要算法:验证信息的完整性

    是一种特殊的压缩算法,把任意长度的数据压缩成固定的长度和独一无二的摘要字符串(给数据生成指纹)。摘要算法确保了数字摘要与原文是完全一致的,只要在原文后加上摘要就能保证信息的完整性。

  • 数字签名:身份验证

    使用私钥加密,公钥解密。签名和公钥一样完全公开,任何人都可以获取。但这个签名只有用私钥对应的公钥才能解开,拿到摘要后,再比对原文验证完整性,就可以像签署文件一样证明消息确实是你发的。

  • CA 证书验证机构:保证了认证服务器的公开密钥的是真实有效的数字证书认证机构;服务器的公开密钥是值得信赖的。

# 参考

📢 上次更新: 2022/09/02, 10:18:16