应用层协议 -- HTTPS 协议

目录

[一、了解 HTTPS 协议](#一、了解 HTTPS 协议)

[1、升级版的 HTTP 协议](#1、升级版的 HTTP 协议)

2、理解"加密"

二、对称加密

1、理解对称加密

2、对称加密存在的问题

三、非对称加密

1、理解非对称加密

2、中间人攻击

[3、CA 证书和数字签名](#3、CA 证书和数字签名)

四、总结


一、了解 HTTPS 协议

1、升级版的 HTTP 协议

  • HTTPS 也是⼀个应用层协议,是在 HTTP 协议的基础上引入了一个加密层 SSL/TSL。加密是 HTTPS 协议的一个重要的保护措施。

2、理解"加密"

  • "加密"是指将传输的明文经过一些手段转化为密文。
  • "解密"是指将密文再次通过一些手段转化为明文。
  • 在加密和解密的过程中,通常需要一个或多个中间数据进行辅助,这样的数据称为"密钥"。
  • 加密的方式有很多,但整体可以分为"对称加密"和"非对称加密"两大类。

二、对称加密

1、理解对称加密

  • 对称加密是指通过一个密钥,既可以将明文变为密文,也可以将密文变为明文,即对称加密使用的算法是可逆的。
  • 假设数据被截获,由于黑客不知道密钥是什么,因此无法进行解密,数据安全。

对称加密

2、对称加密存在的问题

  • 对于服务器端,需要与许多客户端进行数据交互,如果所有交互都使用同一个密钥,则密钥会非常容易被破解(比如伪装成客户端的黑客)。
  • 这种情况下,一旦密钥被破解,则使用该密钥加密的所有数据,都将暴露。
  • 但如果给每个客户端都提供一个不同的密钥,则服务器需要维护的密钥数据量会变得非常庞大,维护成本也会变大。
  • 为了避免以上情况,我们将采取非对称加密的方法。

三、非对称加密

1、理解非对称加密

  • 非对称加密是指,密钥为一组,分成公钥和私钥。公钥公开,私钥由服务器端持有,不对外公开。
  • 公钥加密的数据只有私钥能解密,私钥加密的数据只有公钥能解密。
  • 在客户端每次与服务器建立连接时,服务器端将持有的公钥发送给客户端。
  • 后续交互中,客户端就可以使用公钥加密数据,并将加密后的数据安全的传输到服务端,而不用担心数据暴露(因为只有私钥能解密)。
  • 但是还有一个问题,非对称加密最大的缺点在于运算速度非常慢。
  • 因此,非对称加密常用在客户端和服务器"协商密钥"的阶段,后续的数据传输,仍使用对称加密。

非对称加密

2、中间人攻击

  • 以上的非对称加密混合对称加密的方法,看似天衣无缝,但实际上仍存在一个问题,即"中间人攻击"。
  • 通过中间人攻击,黑客可以获取到对称密钥。

中间人攻击

3、CA 证书和数字签名

  • CA 证书是指,服务端在使用HTTPS前,需要向 CA 机构申领一份独一无二的数字证书,数字证书里含有证书申请者的信息、公钥信息等。
  • 在申请证书时,CA 机构会将数字证书中的各个字段,通过一系列算法,计算得到校验和。
  • 再使用 CA 机构自己的私钥,加密这个校验和,最终得到的就是数字签名,数字签名包含在 CA 机构发布的证书中。
  • CA 机构的公钥,会被内置到各个客户端中。
  • 在客户端和服务器进行交互时,服务器会将证书发送给客户端。
  • 客户端得到证书后,根据证书的各个字段,使用和CA机构一样的算法,计算得出校验和。
  • 再使用内置的公钥,解密证书中的数字签名,得到又一个校验和。
  • 将两个校验和进行比较,如果相同,则证书没有被篡改,反之则发现证书已经被篡改,发现发生了中间人攻击,并以此采取后续措施。

四、总结

  • 以上过程中,使用了三组密钥,分别是:
    用于加密普通数据的对称密钥;
    由服务端提供的,一组用于加密对称密钥的非对称密钥;
    由CA机构提供的,一组用于加密服务端信息(包括公钥)的非对称公钥。
  • 通过以上步骤,HTTPS协议通过三组密钥,有效的保护了网络数据传输的安全。

相关推荐
AlfredZhao2 小时前
Linux 主机防火墙如何同时开启 80 和 443?
http·https·firewall
云栖梦泽在3 小时前
Claude Code / Codex 使用卡顿怎么办?AI 编程 Agent 连接失败与网络排查思路
网络·人工智能·网络协议·chatgpt·性能优化
子不语1806 小时前
从0开始学习S7-1200+ET200SP(3)——两台S7-1200通过TCP连接
网络协议·学习·tcp/ip
折哥的程序人生 · 物流技术专研6 小时前
Java面试通关⑦:JavaWeb网络核心全集
网络协议·http·javaweb·校招·前后端交互·java面试·社招
小蜗牛的路9 小时前
使用OpenSSL生成本地证书https+nginx
网络协议·nginx·https
FPGA小迷弟10 小时前
vivado中的AXI Interconnect到底应该怎么用,他的底层原理是什么,一篇文档全部理清楚!!!
网络协议·tcp/ip·fpga开发·verilog·fpga
网络攻城狮_10 小时前
网络协议大全
运维·网络·网络协议·http
hbugs0011 天前
【案例分享】全网首个华三数据中心流量可视化实验,基于EVE-NG V7平台
网络·网络协议·安全·devops·eve-ng
yxl874646461 天前
PCTG-1015型Profinet转Ethernet/IP协议转换器
服务器·网络·物联网·网络协议·自动化·信息与通信
pW3g3lLuu1 天前
.NET 高级开发 | http 接口对接和客户端开发技巧
网络协议·http·.net