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

devtools/2025/2/24 15:04:47/

一、网络模型基础: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/devtools/161384.html

相关文章

【js逆向入门】图灵爬虫练习平台 第七题

地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvNy8 打开f12,立马进入了debugger,处理一下,过debugger 请求接口,page代表第几页,关键是找到x的生成逻辑 再看请求标头,有关键参…

【Ubuntu】GPU显存被占用,但显示没有使用GPU的进程

文章目录 一、问题描述二、解决方案2.1 寻找问题进程2.2 尝试杀死相关进程2.3 投放核弹,一键全杀2.4 再次查看GPU使用情况 参考资料 一、问题描述 今天使用服务器的时候发现gpu被占了很多内存,但是使用 nvidia-smi 命令并没有发现占这么多显存的进程&am…

从零开始玩转TensorFlow:小明的机器学习故事 4

探索深度学习 1 场景故事:小明的灵感 前不久,小明一直在用传统的机器学习方法(如线性回归、逻辑回归)来预测学校篮球比赛的胜负。虽然在朋友们看来已经很不错了,但小明发现一个问题:当比赛数据越来越多、…

Webpack的持久化缓存机制具体是如何实现的?

Webpack 的持久化缓存机制是 Webpack 5 引入的一项重要特性,旨在提高构建速度和性能。通过将构建结果缓存到磁盘上,Webpack 可以在后续构建中重用先前的结果,减少不必要的重新计算。以下是持久化缓存机制的具体实现和工作原理。 一、持久化缓…

基于CNN的FashionMNIST数据集识别2——模型训练

源码 import copy import timeimport torch from torchvision.datasets import FashionMNIST from torchvision import transforms import torch.utils.data as Data import numpy as np import matplotlib.pyplot as plt from model import LeNet import torch.nn as nn impo…

解决videojs在ios端视频无法播放的问题

解决videojs在ios端视频无法播放的问题 问题描述:问题原因116为本地环境,为无缓存37为测试服务器 解决方法 问题描述: 在做多端嵌入的H5页面时,通过videojs插件做视频的播放,发现在web网页,andriod的app端…

苍穹外卖中的模块总结

本文总结苍穹外卖项目中可复用的通用设计 sky-common constant存放常量类&#xff0c;包括消息常量&#xff0c;状态常量 context是上下文对象&#xff0c;封装了threadlocal package com.sky.context;public class BaseContext {public static ThreadLocal<Long> thre…

Automa 浏览器自动化编排 实现自动化浏览器操作

在日常的浏览器使用过程中&#xff0c;我们常常会遇到一些重复繁琐的任务&#xff0c;比如反复填写网页表单、从网页抓取数据、定时截图等&#xff0c;这些工作不仅耗费时间和精力&#xff0c;还容易出错。今天要给大家介绍的Automa&#xff0c;就是一款专门用来解决这类问题的…