详解HTTPS连接过程以及中间人攻击劫持
原创
一、HTTPS连接过程
HTTPS(全称:HyperText Transfer Protocol Secure)是保险的超文本传输协议,它基于HTTP协议,通过SSL/TLS协议为数据传输提供加密处理,保障数据传输的保险性。下面是HTTPS连接过程的详细步骤:
1. 客户端发起HTTPS请求
客户端(如浏览器)在地址栏输入HTTPS网址,并按下回车,向服务器发起HTTPS请求。
2. 服务器返回数字证书
服务器收到客户端请求后,会将网站的数字证书(包含公钥)返回给客户端。数字证书通常由第三方权威机构(如CA证书颁发机构)签发,用于证明服务器身份。
3. 客户端验证数字证书
客户端收到数字证书后,会验证证书的合法性,确保证书是由可信任感的CA机构签发,且证书中的公钥属于服务器。
4. 客户端生成对称密钥,并使用服务器公钥加密
客户端生成一个随机的对称密钥(如AES密钥),并用服务器的公钥加密,然后将加密后的对称密钥发送给服务器。
5. 服务器使用私钥解密对称密钥
服务器收到加密的对称密钥后,使用自己的私钥进行解密,得到客户端生成的对称密钥。
6. 服务器和客户端使用对称密钥进行加密通信
双方获得对称密钥后,使用该密钥对通信数据进行加密处理,确保数据传输的保险性。
二、中间人攻击劫持
中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种常见的网络攻击手段。攻击者插入到客户端和服务器之间,拦截并篡改双方的通信数据。以下是中间人攻击劫持的几种行为:
1. DNS劫持
攻击者篡改DNS解析于是,将客户端的请求重定向到恶意服务器。以下是示例代码:
// 正常DNS解析
www.example.com -> IP1
// DNS劫持后
www.example.com -> IP2(恶意服务器)
2. ARP欺骗
攻击者在局域网内发送伪造的ARP回应,将客户端的通信目标MAC地址改为攻击者的MAC地址。以下是示例代码:
// 正常ARP表
IP1 -> MAC1
// ARP欺骗后
IP1 -> MAC2(攻击者)
3. SSLStrip攻击
攻击者篡改客户端的HTTPS请求,将其降级为HTTP请求。以下是示例代码:
// 正常HTTPS请求
GET /index.html HTTP/1.1
Host: www.example.com
// SSLStrip攻击后
GET /index.html HTTP/1.1
Host: www.example.com
4. 钓鱼攻击
攻击者伪造一个与目标网站相似的页面,诱骗用户输入敏感信息。这种行为通常与DNS劫持或ARP欺骗结合使用。
为防止中间人攻击,可以采取以下措施:
- 使用HTTPS协议,确保数据传输加密;
- 验证数字证书,确保服务器身份可信;
- 使用保险的DNS解析,如DoH或DoT;
- 减成本时间网络保险意识,避免点击可疑链接;
- 定期更新操作系统、浏览器和网络保险软件。