HTTP相关知识点

文章目录

  • 1、HTTP和HTTPS的区别
    • [1.1 数据传输安全性](#1.1 数据传输安全性)
    • [1.2 SSL/TLS加密](#1.2 SSL/TLS加密)
    • [1.3 端口号](#1.3 端口号)
    • [1.4 性能](#1.4 性能)
    • [1.5 SEO优势](#1.5 SEO优势)
    • [1.6 浏览器显示](#1.6 浏览器显示)
    • [1.7 证书](#1.7 证书)
    • [1.8 主要区别总结](#1.8 主要区别总结)
    • [1.9 总结](#1.9 总结)
  • 2、HTTPS是如何保证安全性的
    • [2.1 数据加密](#2.1 数据加密)
    • [2.2 身份验证](#2.2 身份验证)
    • [2.3 数据完整性](#2.3 数据完整性)
    • [2.4 TLS握手过程](#2.4 TLS握手过程)
    • [2.5 前向安全性](#2.5 前向安全性)
    • [2.6 HTTPS攻击防御机制](#2.6 HTTPS攻击防御机制)
  • 3、对称加密和非对称加密
    • [3.1 对称加密](#3.1 对称加密)
      • [3.1.1 工作原理](#3.1.1 工作原理)
      • [3.1.2 特点](#3.1.2 特点)
      • [3.1.3 常见的对称加密算法](#3.1.3 常见的对称加密算法)
      • [3.1.4 优点](#3.1.4 优点)
      • [3.1.5 缺点](#3.1.5 缺点)
      • [3.1.6 使用场景](#3.1.6 使用场景)
    • [3.2 非对称加密](#3.2 非对称加密)
      • [3.2.1 工作原理](#3.2.1 工作原理)
      • [3.2.2 特点](#3.2.2 特点)
      • [3.2.3 常见的非对称加密算法](#3.2.3 常见的非对称加密算法)
      • [3.2.4 优点](#3.2.4 优点)
      • [3.2.5 缺点](#3.2.5 缺点)
      • [3.2.6 使用场景](#3.2.6 使用场景)
    • [3.3 对称加密与非对称加密的区别](#3.3 对称加密与非对称加密的区别)
      • [6.3.3 对称加密与非对称加密的区别](#6.3.3 对称加密与非对称加密的区别)
    • [3.4 结合使用(混合加密)](#3.4 结合使用(混合加密))
    • [3.5 总结](#3.5 总结)

1、HTTP和HTTPS的区别

HTTP和HTTPS是用于在客户端和服务器之间传输数据的协议。它们的主要区别在于安全性。

1.1 数据传输安全性

  • HTTP:是一种明文传输协议,所有传输的数据都是未加密的。任何在传输路径上的中间人(如黑客、网络管理员)都可以轻易查看、截取甚至修改传输的数据,因此安全性较差。
  • HTTPS:在 HTTP 的基础上添加了 SSL/TLS 加密层。所有的数据在传输过程中会被加密,即使有人截取到数据,也很难解密,从而保护数据的机密性和完整性。它有效防止了数据被窃听、篡改或伪造。

1.2 SSL/TLS加密

  • HTTP:没有加密机制,数据明文传输
  • HTTPS:使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议进行加密。当前,大部分 HTTPS 使用的是 TLS(较为新的加密协议,SSL 已逐渐被淘汰)。加密机制可以确保:
    • 加密:数据在客户端和服务器之间传输时不会被第三方读取。
    • 数据完整性:传输的数据不会在中途被篡改。
    • 身份验证:确保客户端与通信的服务器是真实可信的,通常通过数字证书验证。

1.3 端口号

  • HTTP:默认使用80端口进行通信
  • HTTPS:默认使用443端口进行加密通信

1.4 性能

  • HTTP:由于没有加密层,通信过程相对简单,速度更快,开销更小
  • HTTPS:加密和解密需要额外的计算资源,所以相比HTTP,HTTPS在连接建立时(如TLS握手)会稍微慢一点,但现代服务器和浏览器对性能做了优化,这种差异已经很小。同时,使用HTTP/2等技术也可以提升HTTPS的性能。

1.5 SEO优势

  • HTTP:搜索引擎(如 Google)对未使用 HTTPS 的网站在排名上可能会有所影响
  • HTTPS:搜索引擎通常会优先考虑安全的站点,因此使用 HTTPS 对网站的 SEO 排名有一定的好处

1.6 浏览器显示

  • HTTP:在现代浏览器中,未加密的 HTTP 网站通常会被标记为"不安全",地址栏前会显示一个"不安全"的提示
  • HTTPS:使用 HTTPS 的网站在浏览器的地址栏上会显示锁形图标,表明该网站是安全的

1.7 证书

  • HTTP:不需要证书,直接提供服务
  • HTTPS:需要数字证书(SSL/TLS 证书),服务器需要经过证书颁发机构(CA)的验证,确保服务器身份的真实性

1.8 主要区别总结

特性 HTTP HTTPS
安全性 不安全,数据以明文传输 安全,数据加密传输
默认端口 80 443
加密 使用 SSL/TLS 加密
性能 较快,但不安全 略慢,但更安全
SEO 优势 有助于提高排名
浏览器显示 显示"不安全"标志 显示锁形图标,表示安全
证书要求 无需证书 需要 SSL/TLS 证书

1.9 总结

  • HTTP:适用于不涉及敏感数据的场景,但由于安全性低,越来越多网站正在弃用HTTP
  • HTTPS:提供了更高的安全性,特别是对用户隐私、支付、登录等敏感数据传输场景至关重要

2、HTTPS是如何保证安全性的

HTTPS 通过多种机制保证数据传输的安全性,主要依赖于SSL/TLS协议来确保数据加密、身份验证和数据完整性。

2.1 数据加密

HTTPS 通过对称加密和非对称加密结合的方式,确保传输数据在网络中是加密的,防止第三方(如黑客)在传输过程中窃听或篡改数据

  • 对称加密:在数据传输过程中,客户端和服务器使用同一个密钥加密和解密数据。由于加密和解密的速度快,因此适合大规模数据的传输。然而,问题在于如何安全地共享这个对称密钥。
  • 非对称加密:通过公钥加密和私钥解密的方式,客户端和服务器可以安全地交换加密信息。非对称加密是 HTTPS 建立连接时用于传输对称密钥的方式,它确保对称密钥的传输是安全的。

2.2 身份验证

为了防止客户端与假冒的服务器通信,HTTPS 使用 数字证书 验证服务器的身份。这是通过 证书颁发机构(CA) 发放的 SSL/TLS 证书来实现的,保证客户端连接到的服务器确实是声称的服务器。

  • 数字证书:证书包含了服务器的公钥,以及由权威的证书颁发机构(CA)签名的信息。当客户端访问服务器时,会检查该证书是否由受信任的 CA 签发,并验证证书是否有效(包括过期时间、域名是否匹配等)
  • 证书链:数字证书是通过一系列信任链验证的。浏览器会信任那些由可信的根证书颁发机构签发的证书,这样就确保客户端与可信服务器之间的通信。

2.3 数据完整性

HTTPS 还使用 消息认证码(MAC)来保证传输的数据在网络中不会被篡改。数据在发送时,会生成一个哈希值并附带在数据包中。接收方在收到数据后,会使用相同的密钥重新生成哈希值,如果哈希值匹配,则说明数据未被篡改。

通过这种机制,HTTPS 确保了传输过程中数据的完整性,防止数据被中途修改。

2.4 TLS握手过程

通过下述步骤,HTTPS 建立了一个安全的加密通信通道,防止数据被窃取或篡改。

  • 客户端问候(Client Hello):客户端发送请求给服务器,包含支持的加密算法和一个随机数。
  • 服务器响应(Server Hello):服务器选择一个加密算法,返回自己的数字证书,并发送一个随机数。
  • 客户端验证证书:客户端检查服务器的数字证书是否合法,是否由可信的 CA 颁发。如果验证通过,客户端生成一个新的随机数,用服务器的公钥加密后发送给服务器。
  • 生成对称密钥:服务器使用私钥解密客户端发送的随机数,至此,客户端和服务器都拥有了三个随机数。客户端和服务器使用这三个随机数生成一个对称加密密钥。
  • 开始加密通信:客户端和服务器使用生成的对称密钥,通过对称加密开始安全通信。

2.5 前向安全性

为进一步提升安全性,HTTPS 支持前向安全性,即每次通信使用不同的加密密钥。即使某个密钥在未来被破解,也不会影响以前的通信记录,因为每次通信都会生成新的会话密钥。

前向安全性通常通过 Diffie-Hellman 密钥交换 或 椭圆曲线 Diffie-Hellman(ECDHE) 协议实现。这种机制确保即便将来的密钥被泄露,过去的通信数据仍然无法解密。

2.6 HTTPS攻击防御机制

虽然 HTTPS 提供了强大的安全性,但仍然存在一些攻击手段,比如:

  • 中间人攻击(MITM, Man-in-the-Middle Attack):攻击者假冒服务器,拦截并修改通信数据。通过正确的证书验证和公钥加密,HTTPS 可以有效防御中间人攻击。
  • 降级攻击:攻击者试图将 HTTPS 连接降级为不安全的 HTTP。现代浏览器通过 HSTS(HTTP Strict Transport Security) 强制使用 HTTPS 连接,防止降级攻击。

3、对称加密和非对称加密

3.1 对称加密

最基础的加密方式,加密和解密使用相同的密钥

3.1.1 工作原理

  • 加密过程:发送方使用一个密钥将明文数据加密为秘文
  • 解密过程:接收方使用相同的密钥将秘文解密为明文

3.1.2 特点

  • 密钥唯一性:加密和解密都使用同一个密钥。
  • 加密速度快:对称加密算法相对简单,计算效率高,适合大规模数据加密。
  • 密钥管理困难:密钥的安全分发是对称加密的最大难题。双方在开始通信之前需要通过安全的渠道交换密钥,如果密钥被泄露,通信安全性就会受到威胁。

3.1.3 常见的对称加密算法

  • AES(Advanced Encryption Standard):高级加密标准,广泛用于各种加密场景。
  • DES(Data Encryption Standard):曾经被广泛使用,但现在已经由于密钥长度太短(56位)而被认为不安全。
  • 3DES(Triple DES):对 DES 的改进版本,通过三次加密提高了安全性。
  • Blowfish:一种速度快且灵活的加密算法,适用于多种加密应用场景。

3.1.4 优点

  • 速度快:对称加密算法比非对称加密快很多,特别适合处理大量数据。

3.1.5 缺点

  • 密钥分发问题:由于加密和解密使用相同的密钥,如何安全地传输密钥是一个难题。
  • 安全性受限于密钥:如果密钥被窃取,攻击者可以轻松解密所有的通信内容。

3.1.6 使用场景

  • 适合本地文件加密、数据库加密,或在已建立安全密钥的通信双方之间使用(如 HTTPS 中的对称加密阶段)

3.2 非对称加密

非对称加密特点是加密和解密使用不同的密钥,即公钥和私钥

3.2.1 工作原理

  • 加密过程:发送方使用接收方的 公钥 对数据进行加密,公钥是公开的,任何人都可以获取。
  • 解密过程:接收方使用自己的 私钥 解密数据,私钥是保密的,只有接收方持有。

3.2.2 特点

  • 公钥和私钥成对出现:公钥用于加密,私钥用于解密。
  • 公钥公开,私钥保密:公钥可以自由分发,私钥必须由持有者妥善保管。
  • 加密速度较慢:非对称加密算法相对复杂,计算效率较低,因此通常只用于加密少量的数据(如密钥交换),而不是大规模数据加密。

3.2.3 常见的非对称加密算法

  • RSA(Rivest--Shamir--Adleman):最常用的非对称加密算法,基于大整数分解的数学难题。
  • ECC(Elliptic Curve Cryptography):椭圆曲线加密算法,相比 RSA 提供更高的安全性和更短的密钥长度。
  • DSA(Digital Signature Algorithm):主要用于数字签名的非对称加密算法。

3.2.4 优点

  • 无需共享私钥:发送方只需知道接收方的公钥即可加密数据,而接收方使用私钥解密,避免了密钥分发问题。
  • 身份验证:非对称加密还可用于数字签名,保证消息的来源和完整性。

3.2.5 缺点

  • 速度慢:非对称加密的加解密过程比对称加密慢得多,不适合加密大量数据。
  • 复杂性较高:算法复杂度较高,硬件开销大。

3.2.6 使用场景

  • 密钥交换:通常用于在不安全的信道中安全地交换对称加密的密钥(如 HTTPS 中的 TLS 握手过程)。
  • 数字签名:用于验证消息的来源和完整性,确保数据在传输过程中未被篡改。

3.3 对称加密与非对称加密的区别

6.3.3 对称加密与非对称加密的区别

特性 对称加密 非对称加密
密钥 相同的密钥用于加密和解密 公钥加密,私钥解密
密钥分发 需要安全的密钥分发渠道 不需要安全分发私钥,公钥可公开
速度 加密速度快 加密速度慢
安全性 安全性取决于密钥的安全性 安全性较高,私钥保密即可
计算复杂性 算法简单,效率高 算法复杂,计算开销大
典型用途 数据加密、大规模数据传输 密钥交换、数字签名、小量数据加密

3.4 结合使用(混合加密)

在实际应用中,对称加密和非对称加密常常结合使用,以利用各自的优势。这种方式被称为 混合加密,主要用于网络通信协议中,如 HTTPS。

  • 非对称加密传输对称密钥:客户端使用服务器的公钥生成一个对称密钥,并将其发送给服务器。
  • 对称加密加速数据传输:服务器接收到密钥后,使用自己的私钥解密,获取对称密钥。随后,客户端和服务器使用该对称密钥加密和解密大规模数据传输。

通过这种方式,系统在确保密钥传输安全的同时,也能利用对称加密的高效性处理大规模数据。

3.5 总结

  • 对称加密:加密和解密使用同一个密钥,速度快但密钥分发存在挑战。
  • 非对称加密:加密和解密使用不同的密钥,安全性更高,但效率较低。
  • 混合加密:结合两者的优势,非对称加密用于安全传输对称密钥,随后使用对称加密处理大规模数据。
相关推荐
任性不起来了5 小时前
宝塔面板点击ssl证书报错:出错了,面板运行时发生错误!ModuleNotFoundError: No module named ‘OpenSSL‘
网络·网络协议·ssl
2501_9160074716 小时前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
stark张宇16 小时前
网络排错全流程:从DNS解析到防火墙,逐层拆解常见问题
linux·网络协议·dns
hour_go16 小时前
TCP/IP协议相关知识点
网络·笔记·网络协议·tcp/ip
Arva .17 小时前
WebSocket实现网站点赞通知
网络·websocket·网络协议
嫄码18 小时前
TCP/IP 四层模型
网络·网络协议·tcp/ip
游戏开发爱好者818 小时前
FTP 抓包分析实战,命令、被动主动模式要点、FTPS 与 SFTP 区别及真机取证流程
运维·服务器·网络·ios·小程序·uni-app·iphone
北京耐用通信19 小时前
破解工业通信瓶颈:耐达讯自动化Modbus转Profinet网关连接驱动器的奥秘
人工智能·物联网·网络协议·自动化·信息与通信
宁小法19 小时前
HTTP 请求中断的深度扩展知识
网络·网络协议·http