网络安全期末复习
网络安全概述
网络安全基本属性:机密性、可用性、完整性
PDRR 安全模型
从“静态防护”转向“动态循环”的标志
保护→检测→响应→恢复
- 保护:采用一切手段(静态 防护)保护信息系统的五大特性
- 检测:检测网络安全漏洞和非法信息流
- 响应:对安全事件做出反应,阻止进一步破坏并将损失降至最低
- 恢复:及时 恢复系统服务
攻击类型
被动攻击:传输报文泄露、通信流量分析
根据安全属性,主动攻击分四类 :
- 阻断攻击:破坏系统资产,使其无法使用,针对可用性
- 截取攻击:非授权者获得资产访问权,针对机密性
- 篡改攻击:非授权者不仅访问且修改信息,针对完整性
- 伪造攻击:非授权者在系统中插入伪造信息,针对真实性
阻可用、截机密、篡完整、伪真实
网络信息安全服务
- 机密性服务:防止信息泄露给非授权者
- 完整性服务:提供消息正确性,确保没被改过
- 可用性服务:确保授权用户在需要时能访问资源
- 可审性服务:本身不防攻击,需与其他服务结合,确保行为可审计、可追溯
纵深防御与 IATF
- 纵深防御策略:层层设防,打破一层还有下一层
- IATF (信息保障技术框架):强调人、技术、操作 三要素,构建多层保护
网络攻击
恶意代码
- 病毒 (破坏狂):必须寄生在文件或进程上 ,主要目的是破坏数据
- 蠕虫 (大胃王):独立性强,不需要寄生,主要在网络里跑 ,主要目的是耗尽资源
- 木马 (间谍):不具有传染性,但隐蔽性极强 ,主要目的是窃取信息或留后门
对比
- 病毒看宿主:没文件活不成,见了数据就搞破坏
- 蠕虫看网络:传播能力最强,挤爆带宽是它强项
- 木马看欺骗:不求传染只求隐蔽,偷了你的账号就溜
远线程注入 DLL
木马高级隐藏手段
核心函数 CreateRemoteThread()
提权 → 找进程 → 扩内存 → 写路径 → 找函数 → 启线程
- 拿权限:先把自己的权限提升到调试级别 (SeDebugPrivilege)
- 找目标:通过
OpenProcess()拿到对方进程的控制句柄 - 占地盘:在对方进程里用
VirtualAllocEx()申请一块内存空间 - 塞东西:用
WriteProcessMemory()把你的 DLL 路径写进去 - 找帮手:获取关键函数
LoadLibraryA()的地址 - 点火:调用
CreateRemoteThread()强制让对方进程运行你的 DLL
ARP 欺骗
ARP 协议:地址解析协议,用于根据 IP 地址获取物理 (MAC) 地址,是TCP/IP协议
- 原理:利用 ARP 协议不验证身份的漏洞,发送伪造的应答包
- 动作:告诉 A 我是 B,告诉 B 我是 A
- 结果:形成中间人攻击 (MITM),所有数据都经过攻击者
- 注意:ARP 映射会自动过期,所以攻击者必须持续发包维持骗局
拒绝服务攻击
利用漏洞型
- Ping of Death
- 超大 ICMP Echo 包 (65535字节),内存溢出
- Teardrop
- 分段偏移异常使分片重叠,memcpy 拷贝时堆栈溢出
耗尽连接型
- SYN Flood
- 半开连接,利用 TCP 三次握手
- 只发第一个 SYN 包(通常用假 IP)
- Land 攻击
- 自己打自己
- 源地址和目的地址是受害者服务器
- 死循环
- HTTP Flood
- 快速反复发 HTTP GET
- Web 服务器或数据库进程爆掉
放大流量型
- Smurf 攻击
- 广播放大
- 向广播地址发 ICMP 请求,源地址伪造成受害者
- 网络所有主机同时向受害者回包
web 安全
跨站脚本攻击 XSS
信任你的浏览器
攻击者在网页里“埋雷”(插入恶意 JS 代码),当其他用户访问这个网页时,代码在用户的浏览器里悄悄执行
主要类型
- 反射型 (非持久型):
- 套路:骗你点一个带恶意代码的 URL 链接
- 特点:代码不在服务器存着,点一次火一次
- 存储型 (持久型) —— 威力最大:
- 套路:把恶意脚本通过表单(如留言板)写入服务器数据库
- 特点:谁看谁中招,甚至能发动 DDoS 攻击
- 基于字符集/跳转:利用编码规则漏洞或 302 跳转漏洞执行脚本
危害
盗取 Cookie(以此冒充用户身份)、显示伪造文章、骗取个人信息
跨站请求伪造攻击 CSRF
借你的身份干坏事
利用你已经登录网站 A 的身份 (Cookie),在你不点开 A 站的情况下,诱导你访问恶意网站 B,由 B 站假冒你向 A 站发请求
达成攻击的“三个必要条件”
- 用户在网站 A 登录了,且 Cookie 没过期
- 用户在没登出 A 的情况下,点击了攻击者提供的恶意链接 B
- 网站 A 没有做 CSRF 防御
防御策略
- 规范使用 GET/POST:GET 只读,POST 才能改数据
- 增加 Token (非 GET 请求中):为每个表单生成唯一的伪随机 Token,提交时校验
- 验证码:最有效但用户体验最差
流程
- 用户登录信任网站 A 。
- 验证通过,浏览器产生了 Cookie
- 没登出网站 A 的情况下,访问危险网站 B
- 网站 B 藏有发往网站 A 的请求
- 浏览器执行 B 网站的脚本,带着 Cookie 请求访问网站 A
- 网站 A 看到有效的 Cookie,直接执行非法指令
XSS vs CSRF
- 利用用户 选 XSS
- 利用网站 选 CSRF
SQL 注入
核心逻辑:把 SQL 命令塞进 Web 表单或查询字符串里,骗服务器去执行这些恶意命令
寻找注入点 → 信息采集 → 权限判断 → 攻击系统
- ASP/SQL:利用
' or 1=1结合注释符--绕过登录验证 - PHP/MySQL:利用
1 or 1=1结合注释符#绕过
DNS
查询方式
- 递归查询:客户端与本地 DNS 服务器之间,服务器会代劳直到返回结果或报错
- 迭代查询:服务器与服务器之间,服务器只提供已知信息或告诉你要去问谁
验证准则
- 域名信息一致:应答包与请求包的 question 域信息一致
- Transaction ID 一致:应答包与请求包的Transaction ID(事务ID)一致
- 源 IP 一致:应答包的源 IP 必须是请求包的目的 IP
- 目的信息一致:应答包的目的 IP 和端口必须是请求包的源 IP 和端口
- 先到先得:第一个到达并符合上述四个条件的应答包
域、ID、源、目、快
为什么DNS容易被攻击
- ID 太薄弱:只靠一个 16 位的 Transaction ID 校验,黑客容易猜出来或暴力破解
- 夹带私货:协议允许在应答包里附加无关信息,黑客借机塞入恶意域名记录
- 缓存有毒:为了省事用了缓存,结果一旦存了假信息,所有用户都会被带偏
DNS 欺骗
- 动作:在公网上监听你的请求,抢在真服务器之前给你发个假答案
- 结果:你接受了假包,真包来晚了被你丢掉
- 针对个人用户,核心是抢跑
DNS 缓存投毒
- 动作:给 DNS 服务器发假应答,把错误的域名-IP 映射强行塞进服务器的缓存里
- 结果:这台服务器负责的所有用户全被导向钓鱼网站
- 针对服务器,核心是污染缓存
问题
- 问:怎么防 DNS 欺骗?答:因为欺骗需要监听,重点在加密通信或限制广播域
- 问:DNS 验证中防伪造的核心字段是什么?答:Transaction ID
网络安全扫描
- 核心原理:向目标端口发探测包,根据返回的是 ACK、RST 还是没反应来判断端口状态
- 主要目的:摸清对方开了什么服务,找系统漏洞
| 扫描类型 | 核心标志 | 权限要求 | 隐蔽性 |
|---|---|---|---|
| 全连接扫描 | connect() | 不需要 root | 差(留日志) |
| 半连接 (SYN) | 只发 SYN | 需要 root | 好(无记录) |
全连接扫描
TCP connect 扫描
执行流程:初始化 → 构造套接字 → Connect() 尝试连接 → 成功则端口开启
半连接扫描
TCP SYN 扫描
核心动作:只给对方发一个 SYN 包
- 收到 SYN+ACK:端口打开
- 收到 RST:端口关闭
问:为什么非 root 用户通常只能用全连接扫描?答:因为构造 SYN 半连接包需要原始套接字权限
例题
端口扫描某服务器,若发现53号端口开放,则该服务器可能开放的服务是_DNS_;若发现23号端口开放,则该服务器可能开放的服务是_Telnet_;若发现21号端口开放,则该服务器可能开放的服务是_FTP_
访问控制
三要素
- 主体S:提出访问资源具体请求
- 客体O:被访问资源的实体
- 控制策略A:主体对客体的相关访问规则集合
访问控制策略
- 最小特权原则
- 最小泄漏原则
- 指主体执行任务时,按照主体所需要知道的信息最小化的原则分配给主体权力
- 多级安全策略
- 主体和客体间的数据流向和权限控制按五级划分
- 绝密(TS)、秘密(S)、机密(C)、限制(RS)、无级别(U)
访问控制模型 DAC/MAC
自主访问控制 DAC
- 用户作为资源所有者,可以自主地把权限分给别人
- 靠访问控制列表 (ACL) 实现
强制访问控制 MAC
- 系统强加的硬性规则,用户不能私自更改
- 系统给每个人和每个文件都打上标签(安全级别属性) 主体等级 客体等级放行
MAC 的四种访问方式
- 向下读 (rd):主体级别 > 客体级别(高读低)
- 向上读 (ru):主体级别 < 客体级别(低读高)
- 向下写 (wd):主体级别 > 客体级别(高写低)
- 向上写 (wu):主体级别 < 客体级别(低写高)
| 模型名称 | 核心关注点 | 核心原则 | 应用场景与缺点 |
|---|---|---|---|
| BLP 模型 (Bell-LaPadula) | 机密性(防止泄密) | 无上读、无下写 | 军事系统。缺点:忽略了完整性,可能被非法篡改。 |
| Biba 模型 | 完整性(防止篡改) | 无下读、无上写 | 防止低级别信息污染高级别信息。 |
- BLP 保机密:高不能下传,低不能上偷
- Biba 保完整:低不能上染,高不能下信
问题
问:Windows 属于哪种访问控制模式?答:DAC
问:MAC 判定权限的基本公式是什么?答:若主体等级 大于等于 客体等级,则满足偏序关系
防火墙
速记
- 三原则:必过防火墙、必经策略、自身免疫。
- 四控制:控服务、控方向、控用户、控行为。
- DMZ 区域:在典型形态图中,WWW、Mail、DNS 等对外服务器应放置在 DMZ 区域。
防火墙是位于两个(或多个)网络间实施网间访问控制的一组组件的集合
必须满足
- 全通过性:所有进出被保护网络的通信必须通过防火墙
- 全过滤性:所有通过防火墙的通信必须经过安全策略的过滤或防火墙的授权
- 自身免疫性:防火墙自身应对渗透免疫
功能
- 核心控制:访问控制(最核心)、应用程序代理
- 安全增强:内容过滤、用户认证、VPN
- 监控审计:日志、IDS(入侵检测)与报警
- 网络基础:NAT(地址转换)
防火墙访问控制方法
| 维度 | 控制内容 |
|---|---|
| 服务控制 | 确定可以访问的 服务类型 |
| 方向控制 | 确定特定的 服务请求 可以发起并允许通过防火墙的方向 |
| 用户控制 | 不同 用户 具有不同服务访问的权限 |
| 行为控制 | 控制 怎样使用 特定服务(例如:过滤垃圾邮件) |
防火墙分类
- 从形态上分:软件防火墙、硬件防火墙
- 从技术实现上分:包过滤、应用网关、代理防火墙、状态检测、电路级网关
- 从部署位置上分:主机防火墙、网络防火墙
| 防火墙类型 | 核心层级 | 检查对象(原理关键词) | 核心动作 |
|---|---|---|---|
| 包过滤 | 网络层、传输层 | IP/TCP报头 | 匹配过滤规则(允许/拒绝) |
| 应用网关 | 应用层 | 数据区(Payload) | 代理转发、身份验证 |
| 状态检测 | 网络层、传输层 | 上下文、连接状态 | 连接跟踪、综合分析前后包 |
速记
- 包过滤 看报头 很快但很笨(看不懂数据内容,层级低)
- 应用网关 拆开看数据内容 很安全但很慢(需要代理,层级高)
- 状态检测 盯着前后包的逻辑 聪明一点的包过滤(层级还是低)
包过滤防火墙
核心定义与分类
- 定义:通过检查每一个数据包,并根据安全规则决定“允许”还是“拒绝”该包通过
- 分类:分为静态包过滤(仅看单包报头信息)与动态包过滤(能捕获一个“连接”,对回程包做标记)
工作原理与判断依据
- 原理:防火墙拆开数据包报头,提取信息与控制策略表匹配
- 判断依据:
- 基本信息:源/目的IP、协议类型(TCP/UDP/ICMP/IGMP)、源/目的端口
- 协议细节:IP选项(源路由)、TCP选项(SYN/ACK/FIN/RST标志位)、ICMP消息类型
- 流向接口:in/out 流向、物理网卡接口(eth0/eth1)
优缺点逻辑
- 优点:逻辑简单、成本低、速度快(对性能影响小)、对应用层透明
- 缺点:无法处理应用层数据;安全性较低,不能防IP欺骗,无用户识别机制
应用网关
又称代理防火墙
支持协议:E-mail、Web (HTTP)、DNS、FTP 等
工作原理
- 深度拆包:不仅看报头,还会对数据包的 数据区(Payload) 进行分析
- 代理机制:不允许内外网直接连接。它会对 用户身份 进行验证(认证输入/输出两个方向),并监控用户操作
优缺点逻辑
- 优点:安全性最高(内外网隔离、隐藏IP);支持 认证用户(而非设备);能审计详细的应用层日志
- 缺点:性能最慢;对用户不透明(使用不便);每种协议都需要专门的代理服务
状态检测防火墙
在动态包过滤基础上增加了 状态检测机制,具有 连接跟踪能力
工作原理
- 上下文分析:结合 前后数据包 的信息进行综合分析
- TCP特定检查:除了标志位,还关注 序列号(Sequence Number)、窗口大小等信息,防止逻辑攻击
优缺点逻辑
- 优点:比单纯包过滤安全性更高,逻辑更严密
- 缺点:仍工作在网络层/传输层,无法抵抗应用层攻击;性能比动态包过滤稍差
防火墙体系架构
| 体系结构名称 | 核心组件构成 | 堡垒主机位置 | 关键特征(采分点) |
|---|---|---|---|
| 双重宿主主机 | 1台双网卡主机 | 位于内外网之间 | 禁止IP转发,完全靠代理通信 |
| 屏蔽主机 | 1个过滤路由器 + 1个堡垒主机 | 位于内部网络 | 双重保护;外部访问必须经过堡垒 |
| 屏蔽子网 | 2个过滤路由器 + 1个堡垒主机 | 位于周边网络(DMZ) | 最安全;入侵者需突破3个设备 |
堡垒主机位置
- 在内外网交界线上(没路由器) 双重宿主主机
- 在内部网里面(外侧有1个路由器) 屏蔽主机体系结构
- 在两个路由器中间的“夹层”里 屏蔽子网(周边网络/DMZ)
核心术语
- DMZ (周边网络):放置“牺牲主机”(服务器)的隔离区域
- 禁止IP转发:双重宿主主机的核心防御手段
- 应用层代理:堡垒主机执行的核心任务
- 包过滤规则:路由器实现安全的关键
双重宿主主机
- 物理描述:拥有至少两个网络接口
- 流量路径:主机充当网关,但禁止IP层直接发送数据包;内外网通信必须通过应用层代理
- 安全逻辑:内外网物理断开,用户口令是安全核心
- 短板:单点失效,一旦该主机破防,内网全开
屏蔽主机
- 物理描述:由包过滤路由器和堡垒主机组成
- 流量路径:
- 入站:路由器强迫外部连接必须指向堡垒主机
- 出站:允许内部主机有条件地与外部直接连接
- 安全逻辑:结合了网络层(包过滤)和应用层(代理)的安全
- 短板:配置依赖性高,如果路由器配置错误导致穿透,堡垒主机将失去防护作用
屏蔽子网
- 物理描述:在屏蔽主机基础上增加周边网络(DMZ),使用内、外两个路由器
- 流量路径:外部路由器将流量引入DMZ的堡垒主机;内部路由器严格限制DMZ与内网的通信
- 安全逻辑:
- 三道关卡:外部路由器(防欺骗)、堡垒主机(代理)、内部路由器(防泄密)
- 内部不可见:对外只宣告DMZ地址,内网完全隐身
- 短板:虽然最安全,但配置最为复杂,且如果两个路由器规则不一致会有隐患
网络地址翻译 NAT
速记
- 为什么用?(缺地址、想隐藏)
- 怎么实现?(网关改 IP 头)
- 有哪几类?
- 死板型(静态 NAT):一个坑(私有IP)对应一个死位置(合法IP)
- 排队型(NAT 池):一堆私有 IP 抢一堆合法 IP,谁用谁占
- 极致省钱型(PNAT):几百个私有 IP 共用 1 个合法 IP,靠端口号区分
核心目的
- 解决 IP 不足:让大量私有地址主机共享少数合法 IP
- 隐藏内网:使外界无法获知内部真实 IP 结构
工作原理
- 双向转换:出站时将源地址(私有)换成外部地址(合法);入站时将目的地址换回私有地址
三大类型
- 静态 NAT:1对1永久映射
- NAT 池:M对N动态映射(从合法地址池里抢)
- 端口 NAT (PNAT):M对1映射,通过 不同端口号 区分不同内部主机
入侵检测系统 IDS
速记
- 三核心: 收集信息、分析信息、做出反应
- 两阵营: HIDS (看主机)、NIDS (看网络)
- 两原理: 异常检测 (找不同)、误用检测 (对号入座)
- CIDF 四组件: 生成器 (拿)、分析器 (算)、响应单元 (动)、数据库 (存)
核心定义: 从计算机网络或系统的关键点收集并分析信息,从中发现违反安全策略的行为或被攻击迹象的机制
是一种主动保护自己的网络和系统免遭非法攻击的网络安全技术
入侵检测的分类
| 维度 | 类型 | 核心特征 |
|---|---|---|
| 数据来源 | HIDS (基于主机) | 细、内:监控粒度极细,能看加密/交换环境数据 |
| NIDS (基于网络) | 广、隐:视野宽、不影响系统性能、隐蔽不留痕迹 | |
| 检测原理 | 异常检测 | 找不同:基于“正常轮廓”,偏离即报警(查未知) |
| 误用检测 | 对指纹:基于“已知特征”,匹配即报警(查已知) | |
| 体系结构 | 集中式 | 一点控全网:多处审计,一个服务器统一分析 |
| 等级式 | 层级汇报:分层分区监控,结果逐级上报分析 | |
| 协作式 | 去中心协作:不分等级、各司其职、任务分配给多点 | |
| 工作方式 | 在线 / 离线 | 实时 vs 事后:在线侧重实时防御,离线侧重事后审计 |
- HIDS vs NIDS:
- “哪种能看物理层以上的加密数据?”,选 HIDS
- “哪种不会增加服务器负担?”,选 NIDS。
- 异常 vs 误用
- 异常检测:优点是能发现未知攻击,缺点是误报率高。
- 误用检测:优点是准确率高,缺点是无法发现新攻击。
- 等级式 vs 协作式
- “哪种结构适合处理超大规模网络数据”,优先考虑等级式
- “任务分摊且去中心化”,选协作式
HIDS vs NIDS
| 维度 | HIDS (基于主机) | NIDS (基于网络) |
|---|---|---|
| 数据源 | 日志/审计 (系统内部) | 流量/报文 (网路接口) |
| 核心优点 | 看加密、粒度细、性价比高 | 独立性、隐蔽、不占服务器资源 |
| 核心缺点 | 占性能、依赖日志、视野单一 | 瞎加密(看不见加密)、算力瓶颈 |
- HIDS看内(日志),能破加密,但累死主机
- NIDS看外(流量),身轻如燕,但怕见加密
基于主机系统结构 HIDS
- 原理: 根据主机的审计数据和系统日志发现可疑事件
- 优点: 审计内容全面细腻;视野集中;适用于加密及交换环境;性价比高
- 缺点: 占用服务器性能;依赖日志的完整性;主机多时代价大;无法监控网络整体情况
基于网络系统结构 NIDS
- 原理: 根据网络流量、协议分析及多机审计数据检测入侵
- 优点: 平台独立性(不影响服务器);配置简单(普通网口即可);标识众多(可监视多种协议攻击)
- 缺点: 无法检测跨网段包;难处理复杂/高计算量攻击;协作能力弱;难以处理加密会话
异常 vs 误用
异常检测技术——找不同
- 原理: 建立正常轮廓 → 偏离门限 = 入侵
- 算法: 统计分析(均值、标准偏差、Markov 过程、时间序列)
- 关键词: 未知攻击、检测冒用、高误报、计算量大
误用检测技术——对指纹
- 原理: 匹配已知攻击特征
- 算法: 专家系统、模型推理、完整性分析
- 关键词: 准确率高、低误报、查已知、模式库维护
入侵检测结构
CIDF (通用入侵检测框架):G-A-R-D
- G (Generators):事件产生器 —— 采(采集数据:日志、流量)
- A (Analyzers):事件分析器 —— 算(IDS 的核心,判断入侵)
- R (Response):响应单元 —— 动(告警、切断连接)
- D (Database):事件数据库 —— 存(存结果、存规则)
Denning 模型
- 主体:谁干的?(用户/实体)
- 对象:干谁?(文件/设备)
- 审计记录:干了啥?(原始记录)
- 活动档案:平时啥样?(正常模型)
- 异常记录:哪不对劲?(异常事件)
- 活动规则:怎么判?(判断准则)
检测方法实例:snort
Snort = 规则 = 误用检测 = 准确率高
规则分为两部分:规则头 + 规则选项
| 部分 | 组成要素 (按顺序) | 速记逻辑 |
|---|---|---|
| 规则头 | 行为 协议 源IP 源端口 方向 目的IP 目的端口 |
谁从哪来,去哪干嘛 |
| 规则选项 | (msg; content; flags; flow; classtype; sid; rev; ...) |
抓取特征与元数据 |
- 常用行为:
alert(报警并记录),log(仅记录),pass(忽略) - 常用方向:
->(单向),<>(双向)
Snort 规则选项
| 选项名 | 考试必考点 |
|---|---|
msg |
报警描述,引号包围 |
content |
搜载荷里的特征码(核心中的核心) |
flags |
检查 TCP 标志位(S, A, F, P, U, R, 0) |
flow |
控制流向(如 from_client)和状态 |
classtype |
攻击的分类(让管理员知道轻重缓急) |
sid |
唯一标识,通常 > 1,000,000 是自定义的 |
Snort 规则实例
| 攻击名称 | 攻击目的 | 核心逻辑 | 必填关键词 |
|---|---|---|---|
| DoS Land | 拒绝服务/系统崩溃 | 自己连自己 (死循环) | sameip + flags:S |
| TCP NULL 扫描 | 探测端口/搜集情报 | 发空旗包 (探测反应) | flags:0 |
| SQL 注入 | 窃取数据/绕过验证 | 连接后发非法指令 | flow:established + content |
- 写 Land 攻击规则时,用什么关键字判断内外一致? —— 答:
sameip - TCP NULL 扫描的标志位怎么写? —— 答:
flags:0 - 检测 SQL 注入时,数据流向通常设为什么? —— 答:
from_client或established
虚拟专用网 VPN
- 定义:利用公共网络基础设施,通过隧道技术和访问控制建立的临时、安全、逻辑的专用网络
- 核心逻辑:在公网中挖“隧道”,让外地分支像在局域网内一样通信
三大特点
- 封闭性
- 安全性
- 质量性
三大实现要求
- 透明传输
- 安全功能
- 质量保证
VPN 解决的四大安全问题:机密性、完整性、身份认证、重放攻击保护
VPN 四大核心技术
- 隧道技术:封装。将私有数据包包装在公有数据包中传输
- 加解密技术:保密
- 身份认证技术:合法
- 访问控制:权限
隧道技术
实际是一种数据封装
- 乘客协议:要运输的私有数据(如内部 IP 包)
- 封装协议:用于包装乘客协议的隧道头(如 GRE、IPSec)
- 运载协议:公网中负责搬运的协议(如公网 IP 协议)
“客包装车” —— 乘客(数据)被封装(包装)后由运载协议(车)拉走
VPN 分类
按网络类型差异分
- Client-LAN
- LAN-LAN
按 VPN 业务类型划分
| 类型 | 场景 | 核心受众 | |
|---|---|---|---|
| Access VPN | Client-LAN | 远程接入 | 出差员工、SOHO 办公。 |
| Intranet VPN | LAN-LAN | 内联网 | 公司总部与各分支机构(如异地厂区)。 |
| Extranet VPN | LAN-LAN | 外联网 | 公司与合作伙伴、供应商之间。 |
按 VPN 发起主体划分
- 基于客户的 VPN
- 基于网络的 VPN(客户透明方式)
VPN 协议分层
| 层次 | 协议名称 | 典型特点 |
|---|---|---|
| 第二层 (数据链路层) | L2TP / PPTP | 主要是点对点,支持多种协议 |
| 第三层 (网络层) | IPSec | 最重要。透明性好,安全性最高 |
| 第四层 (传输层/应用层) | SSL / TLS | 无客户端(浏览器即 VPN) |
PPTP vs L2TP(第二层)
- PPTP 封装流:
数据包→PPP→GRE→IP (公网) - L2TP 封装流:
数据包→PPP→L2TP→UDP→IP (公网)
PPTP (点对点通道协议)
- 出身:微软设计的,基于 PPP 协议
- 隧道原理:“PPP 封装在 GRE 里”
- 控制通道:TCP 1723 端口(用于建立、维护隧道)
- 数据通道:采用 GRE (通用路由封装) 协议来封装数据
- 安全/加密:
- MPPE (微软点对点加密):采用 RC4 流加密算法
- 注意:安全性较低,现在基本被淘汰
PPTP 速记:微软家、TCP 1723、GRE 封装、RC4 加密
L2TP (二层通道协议)
- 出身:Cisco 的 L2F + 微软的 PPTP = L2TP
- 隧道原理:“PPP 封装在 UDP 里”
- 控制与数据:都使用 UDP 1701 端口
- 两大核心组件:
- LAC (L2TP 接入集中器):位于用户侧,负责把用户的 PPP 流量打入隧道
- LNS (L2TP 网络服务器):位于企业内网侧,负责接收隧道流量并还原
- 安全/加密:
- 本身不加密:L2TP 只负责挖隧道,不负责加密数据
- 黄金搭档:通常配合 IPSec 使用(即 L2TP/IPSec),由 IPSec 负责加密
L2TP 速记:大杂烩、UDP 1701、LAC 进 LNS 出、没加密(靠 IPSec)
IPSec(第三层)
IP层安全协议
体系结构

核心定位:网络层的“全能保镖”
- 层级:工作在网络层
- 特性:透明性。对上层应用(HTTP、FTP等)完全透明
- 功能:机密性、完整性、身份认证、抗重放攻击
核心协议:AH vs ESP
ESP 是 AH 的加强版
| 协议名称 | 缩写意义 | 核心功能 |
|---|---|---|
| AH | 认证头 | 认证、完整性、抗重放 |
| ESP | 封装安全载荷 | 认证、完整性、抗重放、加密 |
协议号:ESP 是 50,AH 是 51
工作模式:传输 vs 隧道
传输模式 —— 插在中间
- 逻辑:只保护“数据(载荷)”,不改 IP 头。
- 场景:主机到主机(端到端)
隧道模式 —— 全部打包
- 逻辑:把整个原始 IP 包都加密,外面套个新 IP 头
- 场景:网关到网关(站点到站点,隐藏内部真实 IP 地址)
画图
- AH 协议(没尾)
- 传输模式:[原 IP 头] + [AH 头] + [数据]
- 隧道模式:[新 IP 头] + [AH 头] + [原 IP 头] + [数据]
- ESP 协议(有尾)
- 传输模式:[原 IP 头] + [ESP 头] + [数据] + [ESP 尾] + [ESP 认证]
- 隧道模式:[新 IP 头] + [ESP 头] + [原 IP 头] + [数据] + [ESP 尾] + [ESP 认证]
- ESP认证数据不被加密
核心组件与数据库
SA (安全联盟)
- “协议书”:双方商量好用什么算法、什么密钥
- 单向性,两个方向通信需要 2 个 SA
- A→Association→联盟
SPI (安全参数索引)
- “查询号”:一个 32 位的数字,包头里就有,专门用来在 SADB 里找对应的 SA
- I→Index→索引
SPD (安全策略数据库)
- “决策者”:决定哪些包要丢弃、绕过(放行)还是保护(加密)
- 流量进入 IPSec 处理流程的第一站
- P→Policy→策略
- D→Database→数据库
SADB (安全联盟数据库)
- “资料库”:存放所有活跃 SA 具体参数的地方
- 它记录了每个 SA 到底用哪个密钥、哪种算法、寿命还有多久
- A→Association→联盟
- D→Database→数据库
联动逻辑速记
- 发包时:先查 SPD,如果结论是“保护”,则去 SADB 找对应的 SA 和密钥进行加密
- 收包时:根据包头里的 SPI+目的IP地址+安全协议(AH/ESP),直接去 SADB 找对应的 SA 和密钥进行解密
答题
- 问:谁决定包的去留? 答:SPD
- 问:具体的算法密钥存在哪? 答:SADB
- 问:怎么在数据库里秒找 SA? 答:看 SPI
安全套接字层 SSL(第四层)
层级:位于 TCP 协议之上,应用层协议之下
作用:为应用层(HTTP、FTP 等)提供机密性、完整性和认证服务
会话 vs 连接
| 维度 | 会话 (Session) | 连接 (Connection) |
|---|---|---|
| 定义 | 是一组安全参数的集合 | 是具体的对等实体通信过程 |
| 关系 | 一个会话可以包含多个连接 | 它是暂时的、转瞬即逝的 |
| 目的 | 减少握手次数,提高效率 | 执行数据传输 |
会话长,连接短;一个会话多连接
协议结构:两个层次
底层:SSL 记录协议
- 分段、压缩、添加 MAC (消息认证码)、加密
高层:三个辅助协议
- 握手协议:最复杂,负责协商算法和密钥
- 密码变化协议
- 警告协议:传达错误信息 (如证书过期)
握手协议
- 换 Hello:定算法,拿随机数
- 换参数:为了算 premaster secret
- 换证书:为了身份认证(你是谁,我是谁)
- 产密钥:算出最终的 master secret
- 给记录层:把钥匙交给干活的底层
- 做检验:确认双方参数一致
1 步打招呼,2-3 步掏证件给材料,4-6 步算钥匙搞验收
问题
- TLS 1.0 对应 SSL 的哪个版本? 答:SSL 3.1
- TLS 和 SSL 的层次结构一样吗? 答:完全一样 (都在 TCP 和应用层之间)
- 哪个组织负责 TLS 的标准化? 答:IETF
互联网密钥交换 IKE
作用:在通信双方之间通过协商建立SA
- 阶段一:建立 ISAKMP SA (管理通道)
- 目的:为了给后面的协商搭一个安全台子
- 阶段二:建立 IPSec SA (数据通道)
- 目的:在第一阶段的保护下,商量出真正用来加密数据的 SA
主 vs 野蛮(阶段一)
| 维度 | 主模式 | 野蛮模式 |
|---|---|---|
| 消息数 | 6条 | 3条 |
| 协商逻辑 | 先加密,再传身份 | 身份随数据直接传 |
| 优点 | 身份保护,更安全 | 速度极快,开销小 |
| 缺点 | 慢,无法用于动态IP | 不安全,泄露身份 |
- 主模式:协商策略、交换密钥材料(DH共享值)、身份验证(ID)
- 野蛮模式:发起方打包发 → 响应方确认回传 → 发起方确认
主六稳:12谈协议,34换钥匙,56看证件
野三快:全部打包一次清
快速模式(阶段二)
在阶段一建立的 ISAKMP SA(安全隧道)保护下进行,所有的消息都是加密的
- 第一条:发起方提要求。发出一组 SA 提议(加密算法等),带上随机数 (Nonce),如果想开启 PFS,就额外带上一个 DH 公开值
- 第二条:响应方给回复。从提议里选一个好的,也带上自己的随机数 (Nonce) 和 DH 公开值(如果需要)
- 第三条:发起方做确认。发送一个哈希值 (Hash)
躲在隧道里,三条消息定合同,Nonce 防重放,DH 保 PFS,最后 Hash 签个字
问题
- 问:快速模式的安全性靠谁? 答:靠阶段一的保护以及自己的哈希认证
- 问:Nonce 是干嘛的? 答:防重放
- 问:PFS 怎么实现的? 答:在快速模式里增加一次 DH 交换
安全电子邮件系统 PGP
PGP是一个提供保密性、认证、压缩、电子邮件兼容性和分段服务的软件包,可用于电子邮件和文件存储应用
五大基本服务
- 认证:使用数字签名确保来源真实 (DSS/SHA 或 RSA/SHA)
- 机密性:使用对称加密保护内容 (CAST-128、IDEA 或 3DES)
- 压缩:在发送前进行压缩 (ZIP 算法)
- 电子邮件兼容性:将二进制转为 Radix-64 格式 (保证在旧邮件系统中传输不乱码)
- 分段与重组:处理超大邮件的分块传输
PGP 核心符号
| 符号 | 含义 |
|---|---|
| 传统加密中的会话密钥 | |
| 用户 A 的私有密钥 | |
| 用户 A 的公开密钥 | |
| 公开密钥加密 | |
| 公开密钥解密 | |
| 加密 | |
| 常规解密 | |
| 散列函数 | |
| || | 串接操作 |
| ZIP 压缩 | |
| Radix-64 转换 |
- : 或 ,非对称算法
- : 或 ,对称算法
- :私钥
- :公钥
认证 (签名) 流程
- 先算哈希:
- 用私钥加密哈希:
- 拼在消息后面:
机密性 (加密) 流程
- 用会话密钥加密:
- 用公钥加密钥匙:
功能实现
身份认证功能
认证 (签名) 流程
- 先算哈希:
- 用私钥加密哈希:
- 拼在消息后面:
实现认证性 和完整性
核心流程
- 发送方:用私钥 (KRa) 对消息的哈希值进行 EP (公钥加密),把签名挂在消息 M 的后面发送
- 接收方:拆出签名,用 A 的 公钥 (KUa) 解密 DP,对 M 算哈希对比
保密性功能
对称加密传内容 + 非对称加密传钥匙
机密性 (加密) 流程
- 用会话密钥加密:
- 用公钥加密钥匙:
实现机密性
核心流程
- 发送方:生成 Ks 对消息进行 EC (对称加密),再用接收方的 公钥 (KUb) 对 Ks 进行 EP (公钥加密),发送 EP(KUb, Ks) || EC(Ks, M)
- 接收方:用自己的 私钥 KRb 解密得到 会话密钥 Ks,用 Ks 解密内容
签名+压缩+加密
PGP 执行顺序:签名 → 压缩 → 加密
- 先签名后加密:防止他人剥离签名或在加密包上伪造签名
- 先压缩后加密:加密后的数据随机性太强,无法再压缩
- 兼容性处理 (Radix-64):将加密后的二进制流转为 ASCII 字符,防止在只支持文本的旧邮件系统中传输乱码
密钥管理与钥匙环
两大钥匙环
- 私钥环:存储用户自己的公钥/私钥对
- 公钥环:存储用户收集到的所有其他人的公钥
私钥的安全存储
- 口令 哈希(128位) 对称加密私钥 存入私钥环
- 口令短语:人记(长句子)
- 128位密钥:机器算的(口令哈希后的结果)
- 谁锁谁:128 位密钥锁住私钥,存进私钥环
- 怎么开:输入口令 → 还原 128 位密钥 → 解开私钥
KeyID
- 公钥太长,取低 64 位作为标识符,方便在环中查找
信任模型
去中心化
- 所有者信任:手动设置,代表对某人“签署公钥能力”的信任程度
- 密钥合法性:由 PGP 自动计算出,代表公钥可信度
画图
DNS
DNS欺骗

DNS 缓存投毒

ARP
ARP欺骗的原理

XSS
反射型 XSS

存储型 XSS

CSRF

防火墙
屏蔽主机的体系结构

屏蔽子网的体系结构

VPN
IPsec 工作模式
1 | 原始: [ IP 头 ] [ TCP/UDP 数据 ] |
IKE
IKE 第一阶段:主模式

IKE 第一阶段:野蛮模式

IKE 第二阶段:快速模式

SSL
SSL 握手协议

PGP
PGP的验证算法


分析与设计题
威胁分析
- 这事儿哪儿不安全?是人容易被骗?还是系统有漏洞?或者是数据没加密?
技术手段
- 加密:IPSec、SSL、PGP(选一个)
- 认证:所知、所有、特征
- 挡住:防火墙、隔离区(DMZ)
- 监控:入侵检测(IDS)
管理手段
- 要加强员工培训,定期备份数据,法律防范
设计原则
- 动态化:移动目标防御 MTD、动态口令
- 多层化:纵深防御
- 最小特权
- 隔离:加密隧道、屏蔽子网、沙箱
身份认证机制
列举三类身份认证机制,分析其优劣,并设计一个高安全的认证方案
- 所知:如口令、密码。优:实现简单、成本低。劣:易被猜测、撞库、暴力破解
- 所有:如U盾、硬件令牌、手机验证码。优:难以复制。劣:易丢失,依赖硬件
- 特征:如指纹、人脸、声纹。优:随身携带、唯一性高。劣:采集成本高,且一旦泄露无法更改(如脸部数据被窃)
自行设计方案(多因素认证 MFA)
方案:基于“密码 + 动态令牌 + 生物特征”的协同认证系统
社会工程学
分析电信诈骗的成因及其专业防范
- 原理
- 大白话:利用人的害怕(假警察)、贪心(中大奖)、信任(我是你领导)
- 为什么防不住
- 技术原因:黑客有“改号软件”和“伪基站”,看起来像真的一样
- 源头原因:你的个人信息早就在黑客手里卖来卖去了(信息泄露)
- 技术防范
- 给所有电话装个“黑名单库”;关键操作(转账)必须加个双重验证;国家搞大数据监控,发现异常通话直接掐断
高级持续性威胁 APT
描述APT攻击的阶段,并设计一个针对APT的防御体系
- 侦查:通过社工手段搜集目标信息
- 潜伏与渗透:植入后门程序,获取初步控制权
- 权限提升:利用系统漏洞在内网横向移动
- 数据窃取:长期潜伏,分批次加密传出敏感数据
防御体系设计(纵深防御)
- 网络边缘:部署基于行为模式的入侵检测系统(IDS)和高级防火墙
- 数据层面:对敏感数据进行强加密,并监控异常的数据流量流向
- 意识层面:定期进行社工演练,提高员工防范钓鱼邮件的能力
移动目标防御 MTD
针对网络扫描攻击,设计一个基于移动目标防御(MTD)的防御机制
原理:通过主动、随机地改变网络参数,使攻击者收集到的情报(如IP、端口)迅速“过时”
具体机制(随机响应算法):
- 监听流量:当系统收到非法的TCP包(如端口扫描)时。
- 随机化逻辑:系统不再固定返回“端口关闭”,而是从以下方式中随机选择:
- 返回
SYN-ACK(假装开放) - 返回
ACK(假装连接已建立) - 直接
Drop(静默丢弃)
- 返回
效果分析:这种机制让Nmap等扫描工具得到相互矛盾的结果,从而无法判断真实的业务端口。这改变了“防守方静态、攻击者主动”的被动局面,实现了主动防御







