HTTPS与DNS

发布于:2025-07-14 ⋅ 阅读:(55) ⋅ 点赞:(0)

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 详细解析

在这里插入图片描述
两个解析命令:nslookupdig

/ 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三次握手和四次挥手)后将缓存记录在本地。


网站公告

今日签到

点亮在社区的每一天
去签到