网络安全入门 | TCP/IP协议栈核心协议详解(附攻防案例)

ops/2025/2/25 0:21:48/

一、网络模型基础:OSI vs TCP/IP

1.1 经典OSI七层模型

7. 应用层 : HTTP/FTP/DNS  
6. 表示层 : 数据加密/压缩  
5. 会话层 : 建立/维护会话  
4. 传输层 : TCP/UDP  
3. 网络层 : IP/ICMP  
2. 数据链路层 : ARP/PPP  
1. 物理层 : 网线/光纤

1.2 实际应用的TCP/IP四层模型

应用层(HTTP/HTTPS/DNS)  
传输层(TCP/UDP)  
网络层(IP/ICMP)  
网络接口层(ARP/Ethernet)

关键差异

  • TCP/IP将OSI上三层合并为应用层
  • 更注重协议的实际实现而非理论分层

二、应用层核心协议剖析

2.1 HTTP/HTTPS

▶ HTTP特性

# 典型请求头示例
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
  • 明文传输
  • 无状态协议(依赖Cookie/Session)
  • 默认端口80

▶ HTTPS安全机制

graph LR
A[客户端] -->|Client Hello| B(服务端)
B -->|Server Hello+证书| A
A -->|验证证书| CA[证书颁发机构]
A -->|生成会话密钥| B
B -->|加密确认| A
  • SSL/TLS加密隧道
  • 混合加密体系(RSA交换密钥 + AES加密数据)
  • 端口443
  • 证书验证(防中间人攻击)

2.2 DNS域名解析

▶ 查询过程

浏览器缓存 → 本地Hosts → 本地DNS → 根DNS → 顶级DNS → 权威DNS

▶ 记录类型

类型说明安全威胁
AIPv4地址记录DNS劫持
AAAAIPv6地址记录DNS缓存投毒
CNAME别名记录子域名劫持
MX邮件服务器记录钓鱼邮件伪造

防御方案

  • DNSSEC扩展(数字签名验证)
  • 使用DoH(DNS over HTTPS)

三、网络层关键协议

3.1 ARP协议

▶ 工作原理

# ARP请求示例(广播)
Sender MAC: 00:11:22:33:44:55  
Sender IP: 192.168.1.10  
Target IP: 192.168.1.1

▶ ARP欺骗攻击

攻击者伪造ARP响应 → 将网关MAC指向自己 → 流量劫持

防御手段

  • 静态ARP绑定
  • 部署ARP防火墙
  • 启用DHCP Snooping

3.2 ICMP协议

▶ 典型应用

  • Ping命令ping -n 5 www.baidu.com
  • Traceroute:路径追踪(TTL递增)

安全风险

ICMP Flood攻击:伪造大量请求耗尽目标资源

防护建议

  • 限制ICMP流量速率
  • 配置防火墙过滤异常类型

四、高频面试问题

  1. HTTPS握手过程中客户端如何验证证书合法性?
    → 检查颁发机构、有效期、域名匹配、CRL/OCSP吊销状态

  2. 如何检测ARP欺骗攻击?
    → 使用arp -a查看MAC一致性,Wireshark抓包分析异常ARP响应

  3. DNS查询为什么使用UDP协议?
    → 快速响应(单个包完成查询)、降低服务器开销


五、总结与学习建议

协议学习路线

  1. 掌握各协议在模型中的位置
  2. 使用Wireshark抓包分析真实流量
  3. 搭建实验环境复现协议攻击(推荐Kali Linux)
  4. 阅读RFC文档理解技术细节

下期预告:TCP三次握手/四次挥手全解析 & SYN Flood防御实战


✍️ 本文由【mermoy_mumu】原创,转载请注明出处。关注作者获取更多硬核技术干货!

 

 


http://www.ppmy.cn/ops/161067.html

相关文章

vllm部署LLM(qwen2.5,llama,deepseek)

目录 环境 qwen2.5-1.5b-instruct 模型下载 vllm 安装 验证安装 vllm 启动 查看当前模型列表 OpenAI Completions API(文本生成) OpenAI Chat Completions API(chat 对话) vllm 进程查看,kill llama3 deep…

网络运维学习笔记 015网工初级(HCIA-Datacom与CCNA-EI)NAT网络地址转换

文章目录 NAT(Network Address Translation,网络地址转换)思科:1)PAT2)静态端口转换 华为:1)EasyIP2)NAT Server静态NAT:动态NAT:实验1:在R1上配置NAPT让内网…

欢乐力扣:单词规律

文章目录 1、题目描述2、思路2、 代码 1、题目描述 单词规律。  给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对…

Python多线程编程理解面试题解析

一、多线程介绍 Python 的多线程是一种实现并发编程的方式,允许程序同时执行多个任务。然而,由于 Python 的全局解释器锁(GIL)的存在,多线程在某些场景下可能无法充分利用多核 CPU 的性能。以下是对 Python 多线程的理…

DeepSeek掘金——调用DeepSeek API接口 实现智能数据挖掘与分析

调用DeepSeek API接口:实现智能数据挖掘与分析 在当今数据驱动的时代,企业和开发者越来越依赖高效的数据挖掘与分析工具来获取有价值的洞察。DeepSeek作为一款先进的智能数据挖掘平台,提供了强大的API接口,帮助用户轻松集成其功能到自己的应用中。本文将详细介绍如何调用D…

【quicker】调节PPT指定字号字体大小/快速调节WPS的PPT字体大小

在quicker的拓展动作中找不到直接指定字号大小方式的动作。 换个思路,既然无法通过alt键模拟,不如模拟右键菜单触发?尝试过失败了 所以有了第三种方法 ,首先给字体窗口设置快捷键,此处设置的是altshiftf,然…

C#上位机--循环语句

序言 在 C# 编程中,循环语句是非常重要的控制结构,它允许我们重复执行一段代码,直到满足特定的条件。通过使用循环,我们可以高效地处理大量数据,简化代码逻辑。本文将详细介绍 C# 中四种常见的循环语句:Fo…

【Viewer.js】vue3封装图片查看器

效果图 需求 点击图片放大可关闭放大的 图片 下载 cnpm in viewerjs状态管理方法 stores/imgSeeStore.js import { defineStore } from pinia export const imgSeeStore defineStore(imgSeeStore, {state: () > ({showImgSee: false,ImgUrl: ,}),getters: {},actions: {…