HTTPS理解

一个完整的HTTP连接

  1. TCP三次握手
  2. 接受窗口
  3. 发送数据
  4. 关闭连接

接受窗口是用来做什么呢?

它根据自身网络情况设置不同大小的值用来控制对方发送速度,避免对方发送太快,导致网络拥塞。

为什么TCP握手要三次?

1)确认双方的发送和接收能力

2)防止旧连接的数据干扰:

3)性能与可靠性的平衡

例子:有三个山头:A、B、C,A山头要联合B山头晚上8点去攻打C山头,因为如果只有一个山头的人去攻打C的话会阵亡,所以A和B需要进行握手。

1)A就派了只鸽子带上SYN的消息过去找B;

2)B收到后又派了只鸽子带上ACK+SYN的消息回复A;

3)A收到后右派了只鸽子带上ACK去回复B

假设第三次A发的ACK,B没有收到,这个时候B就要犹豫了:会不会A不知道我同意了,如果A不知道我同意那么它可能不会去攻打了,然后我去了就得被灭了。由于A不知道它的回复有没有被收到,所以它可能会想B可能会拍它不会出击,所以A也犹豫了。

为什么挥手要四次?

前两次挥手让连接处于半关闭状态,此时主动关闭方 不可再向被动关闭方 发送数据,而被动关闭方 可继续向主动关闭方发送数据。所以四次的原因是可以有一个处于半关闭的状态。

HTTPS解决什么问题?

HTTPS要解决的问题就是中间人攻击。


中间人攻击:正常的连接是用户和服务器传输数据,中间人攻击了,用户的服务器就会经过一个中间人,这个中间人可以窥探用户的数据或者篡改用户的数据后再发给服务器,相反也可以把服务器的数据修改了之后再发给用户。

中间人攻击的方式(常见的有以下两种)

​ 1)域名污染

我们访问一个域名时需要先进行域名解析,在经过DNS的中间链点可能会抢答,返回给你一个错误的IP地址,这个IP地址就指向中间人的机器。

​ 2)ARP欺骗

基本原理是:攻击者发送伪造的ARP报文,使得受害者的计算机将攻击者的MAC地址误认为是网关或者目标主机的MAC地址,从而使得所有原本应该发送给目标主机的数据都被转发到攻击者的计算机上。

HTTPS是应对中间人攻击的唯一方式。

HTTPS连接的过程

  1. Client Hello(先建立TCP连接)

    客户端会先发一个Client Hello给服务端。数据传输还是用的HTTP,加密用的TLS。

  2. Server Hello

    服务器收到了Client Hello的信息后,就给浏览器发送了一个Server Hello的包。

使用HTTPS的代价

  1. 建立HTTPS需要花费时间(~0.3s);
  2. 数据需要加密和解密,占用更多的CPU;

使用HTTPS的代价

  1. 建立HTTPS需要花费时间(~0.3s);
  2. 数据需要加密和解密,占用更多的CPU;
  3. 数据加密后比原信息更大,占用更多的带宽。
相关推荐
聚美智数9 小时前
网站HTTP状态查询-SEO优化
网络·网络协议·http
是真的小外套10 小时前
第9章:网络层安全协议 IPSec 学习笔记
网络·网络协议·tcp/ip
云梦谭11 小时前
WebSocket 协议详解:从 HTTP 握手到全双工通信
websocket·网络协议·http
中屹指纹浏览器svip12 小时前
静态 IP和动态 IP,搭配指纹浏览器该怎么选?
网络·网络协议·tcp/ip·中屹指纹浏览器
木子n112 小时前
车载以太网与SOME/IP服务化通信实战-02.状态机与订阅:SOME/IP-SD的三态迁移、重传账与上电风暴
嵌入式硬件·网络协议·车载系统·车载以太网·some/ip
ITxiaobing202312 小时前
选型不踩坑:IPinfo 之外,IP 地址定位服务还有哪些可选项
网络·网络协议·tcp/ip
用户27886072856713 小时前
战争雷霆换区记录:字段里的「未知」不能写成正常
网络协议·游戏开发
日常筹谋记15 小时前
仓储监测无线化改造经验:明治无线组网方案与WL系列Master总站落地复盘
网络·网络协议
溜达的大象16 小时前
管家婆远程访问实战:SQL Server 2022配置、PC分机端修改与固定TCP连接
网络·网络协议·tcp/ip
白帽攻防录18 小时前
SRC 挖洞:QUIC 协议栈双 RCE,HTTP/3 的新攻击面怎么挖
网络·网络协议·http·网络安全·http/3