HTTPS与DNS

文章目录

  • [1 HTTPS](#1 HTTPS)
    • [1.1 什么是HTTPS?](#1.1 什么是HTTPS?)
    • [1.2 HTTPS 解决了 HTTP 的三大核心安全问题](#1.2 HTTPS 解决了 HTTP 的三大核心安全问题)
    • [1.3 传输过程](#1.3 传输过程)
  • [2 DNS](#2 DNS)
    • [2.1 什么是DNS?](#2.1 什么是DNS?)
    • [2.2 DNS传输过程](#2.2 DNS传输过程)
      • [2.2.1 域名解析原理:](#2.2.1 域名解析原理:)
      • [2.2.2 详细解析](#2.2.2 详细解析)

1 HTTPS

1.1 什么是HTTPS?

HTTPS(HyperText Transfer Protocol Secure)是 HTTP 的安全版本,核心目的是在客户端(如浏览器)和服务器(如网站)之间建立一条加密、可信赖的数据传输通道,以解决传统 HTTP 协议明文传输带来的安全风险。

它的核心本质是:
HTTP + TLS/SSL 加密层

  • HTTP: 负责传输网页内容(文本、图片、视频等)。
  • TLS/SSL: 负责在 HTTP 传输之前,对数据进行加密、验证服务器身份、确保数据完整性(不被篡改)。

1.2 HTTPS 解决了 HTTP 的三大核心安全问题

  • 窃听(机密性):
    HTTP 问题: 数据在网络上像明信片一样传输,任何截获流量的人(黑客、ISP、路由器)都能直接看到内容(密码、信用卡号、聊天记录)。
    HTTPS 方案: 使用 TLS/SSL 加密。传输前将数据"打乱"成密文,只有拥有正确密钥的服务器才能"解开"还原。截获者看到的只是乱码。
  • 篡改(完整性):
    HTTP 问题: 攻击者可以在数据包传输途中修改内容(如插入广告、病毒链接、修改转账金额)。
    HTTPS 方案: 使用 消息认证码(MAC) 或 数字签名。接收方会校验数据的"指纹",如果数据被篡改,指纹就对不上,接收方会丢弃数据并报警。
  • 冒充(身份认证):
    HTTP 问题: 无法确认你连接的是真正的"银行网站"还是黑客伪造的"钓鱼网站"。
    HTTPS 方案: 使用数字证书。
    服务器需要向受信任的第三方机构申请证书。证书包含服务器的域名、公钥,并由 证书颁发机构(CA) 用其私钥签名。

浏览器内置了信任的 CA 公钥列表。连接时:

服务器发送证书。→浏览器用内置的 CA 公钥验证证书签名是否有效。→检查证书中的域名是否与访问的网站一致。→检查证书是否在有效期内、未被吊销。

只有通过这些严格验证,浏览器才会认为服务器身份可信,才会显示安全锁图标。这大大降低了访问到假冒网站的风险。

1.3 传输过程

1.TCP 连接 : 浏览器连接到服务器的 443 端口(HTTPS 默认端口),建立基础的 TCP 连接。

2.TLS/SSL 握手(最关键的安全步骤):

  • 协商加密算法和版本。
  • 服务器发送其数字证书供浏览器验证身份。
  • 安全交换或生成一个只有双方知道的临时会话密钥(核心是 Pre-Master Secret 的交换和 Master Secret 的生成)。

3.生成会话密钥: 双方利用握手过程中的随机数和 Pre-Master Secret,生成相同的对称加密密钥(用于后续高效加密数据)。

4.加密通信: 后续所有的 HTTP 请求和响应数据,都使用第 3 步生成的对称密钥进行加密,并附上完整性校验码(MAC),然后通过 TCP 连接传输。即使数据被截获,也是无法解读的乱码。

5.关闭连接: 通信结束,关闭 TCP 连接。

复制代码
客户端 (浏览器)                              服务器 (网站)
      |                                         |
      | ------------ TCP 三次握手 -------------> | (建立可靠连接)
      | <-------------------------------------- |
      |                                         |
      | ----------- Client Hello -------------> | (支持的版本、加密套件、随机数、SNI等)
      | <-------- Server Hello, Certificate --- | (选定的版本、加密套件、随机数、服务器证书)
      | <--- (可选) Server Key Exchange, etc. -- |
      | <--------- Server Hello Done ---------- |
      |                                         |
      | -- (可选) Client Certificate (如需) -----|
      | ----------- Client Key Exchange ------> | (发送加密的预主密钥或参数)
      | -- (可选) Certificate Verify (如需) ----> |
      | --------- Change Cipher Spec ----------> | (客户端: "切换加密!")
      | ----------- Finished (加密) ------------> | (客户端: "验证握手!")
      |                                          |
      | <-------- Change Cipher Spec ----------- | (服务器: "切换加密!")
      | <------------- Finished (加密) ---------- | (服务器: "验证握手!")
      |                                          |
      | <======== TLS 安全通道建立完成! ==========> | (双方生成相同的会话密钥)
      |                                          |
      | --------- Encrypted HTTP Request ------> | (应用数据记录)
      | <-------- Encrypted HTTP Response ------ | (应用数据记录)
      | --------- Encrypted HTTP Request ------> |
      | <-------- Encrypted HTTP Response ------ |
      |                  ...                     |
      |                                          |
      | ------------- TCP 关闭 -----------------> | (四次挥手)
      | <--------------------------------------- |

2 DNS

2.1 什么是DNS?

DNS 是计算机域名系统 (Domain Name System ) 的缩写,域名服务器是进行域名和与之相对应的IP地址转换的服务器

域名(Domain Name):是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。

FQDN(Fully Qualified Domain Name):即完全合格域名,由两个部分组成:主机名和域名。

正向解析:从FQDN转换为IP地址称为正向解析。

反向解析 :从IP地址转换为FQDN称为反向解析。

区域:正向解析或反向解析中,每个域的记录就是一个区域。

www.xaiu.edu.cn
www:主机名
xaiu.edu.cn:域名

正向解析为域名转换为计算机识别的IP地址

反向解析为IP地址转换为容易记忆的域名

2.2 DNS传输过程

2.2.1 域名解析原理:

域名解析工作通过调用服务器上的解析器软件完成的;

DNS域名解析按照域名空间的分层树状结构自顶至下进行;

2.2.2 详细解析

两个解析命令:nslookup与dig

/ nslookup dig
windows ×
linux

以dig命令为例:
+[no]trace (Trace delegation down from root [+dnssec])(追踪总体的解析流程)

以西安外事学院www.xaiu.edu.cn为例

根域服务器收到来自127.0.0.53的dns域名请求:

收到来自(m.root-servers.net)根域服务器的dns解析

从m.root-servers.net根据.cn返回.cn TLD服务器地址(b.dns.cn)并向b.dns.cn发起查询xaiu.edu.cn的NS记录

TLD服务器地址(b.dns.cn)收到请求,返回xaiu.edu.cn的权威服务器(dns3.edu.cn

收到后向权威服务器(dns3.edu.cn)发送查询www.xaiu.edu.cn的A记录

返回www.xaiu.edu.cn的A记录为61.185.201.14

dns解析第一次将会查询缓存表,缓存表有将不会在解析,若没有则需要解析,找到host文件,因为解析之前需要查找host文件,若host文件没有缓存,则需要去找路由器,路由器则会使用十三台根域服务器,根域服务器根据域名后缀cn转给TLD服务器地址(b.dns.cn),TLD服务器地址(b.dns.cn)将会根据二级域名edu转到权威服务器(dns3.edu.cn),权威服务器(dns3.edu.cn)将会根据xaiu把最终的ip解析出来,服务器将最终解析出来的ip返回路由器,路由器再下发给电脑,电脑访问(经历TCP三次握手和四次挥手)后将缓存记录在本地。

相关推荐
帽儿山的枪手2 小时前
追踪网络流量就这么简单 | 进阶篇 | conntrack
linux·windows·网络协议
yqcoder3 小时前
7. TCP 和 UDP 的区别
网络·网络协议·http
wanhengidc3 小时前
UDP服务器的优缺点都包含哪些?
服务器·网络协议·udp
hrrrrb5 小时前
【TCP/IP】14. 远程登录协议
网络·网络协议·tcp/ip
小镇敲码人6 小时前
【实习篇】之Http头部字段之Disposition介绍
网络·网络协议·http
黎相思6 小时前
应用层协议HTTP
网络·网络协议·http
温贝7 小时前
基于axios的http请求封装,支持数据缓存
http·axios
DoraBigHead8 小时前
第三章 · 数据链路层:打包大师,局域江湖
网络协议
啊森要自信8 小时前
【Linux 学习指南】网络基础概念(一):从协议到分层,看透计算机通信的底层逻辑
linux·运维·服务器·网络·网络协议·tcp/ip·ip