第7章 网络安全
章节概述
本章从威胁分析出发,系统讲解密码学基础(对称/公钥体制)、鉴别机制(散列函数、MAC、数字签名)、密钥分配(KDC/Kerberos/PKI)、各层安全协议(IPSec/TLS/PGP)及系统防护(防火墙/IDS)。第8版新增:椭圆曲线密码(ECC)、TLS 1.3、量子密码展望。
核心概念索引
- [[07-网络安全|安全威胁]]
- [[07-网络安全|对称加密]] — DES / 3DES / AES
- [[07-网络安全|公钥密码体制]] — RSA
- [[07-网络安全|散列函数]] — MD5 / SHA-256
- [[07-网络安全|数字签名]]
- [[07-网络安全|MAC]]
- [[07-网络安全|密钥分配]] — KDC / Kerberos / CA / PKI
- [[07-网络安全|IPSec]] — AH / ESP / SA
- [[TLS握手|TLS/SSL]] — 握手 / 记录协议
- [[07-网络安全|PGP]]
- [[07-网络安全|防火墙]] — 分组过滤 / 应用网关
- [[07-网络安全|IDS]]
7.1 网络安全威胁
两大类攻击
被动攻击(passive attack): - 截获(interception):窃听通信内容 - 流量分析(traffic analysis):分析通信模式 - 特点:通常检测不出来,必须通过加密预防
主动攻击(active attack): - 篡改:故意修改传输的报文 - 恶意程序:病毒、蠕虫、特洛伊木马、逻辑炸弹、后门、流氓软件 - 拒绝服务 DoS:向服务器发送大量分组使其瘫痪 - DDoS(分布式拒绝服务):成百上千网站同时攻击一个目标 - 特点:可以检测,但难以防止
安全目标(四个)
- 保密性:只有收发双方能理解内容(对付被动攻击)
- 端点鉴别:验证通信方真实身份
- 信息完整性:内容未被篡改
- 运行安全性:系统能正常提供服务(访问控制)
加密模型:
7.2 两类密码体制
对称密钥密码体制
加密密钥 = 解密密钥(同一把密钥)
DES(数据加密标准)
- 分组密码,每组64位,密钥64位(有效56位,8位奇偶校验)
- 已不安全:专用芯片可暴力破解56位密钥
3DES(三重DES)
$\(C = E_{K1}(D_{K2}(E_{K1}(P)))\)$ 使用两个56位密钥(有效112位),更安全但速度慢
AES(高级加密标准)
- 2002年成为美国政府标准,现为ISO/IEC 18033-3
- 分组长度128位,密钥128/192/256位
- 比3DES快得多,安全性更强,支持硬件加速
公钥密码体制(非对称)
每个用户有一对密钥: - 公钥(PK,public key):公开发布 - 私钥(SK,secret key):严格保密
五个特性: 1. 密钥对由密钥对产生器生成 2. 发送方用接收方公钥加密 → 只有接收方私钥能解密 3. 从PK无法推导出SK("计算上不可能") 4. 加密密钥不能解密 5. 加解密互逆:\(D_{SK}(E_{PK}(X)) = X\) 且 \(E_{PK}(D_{SK}(X)) = X\)
RSA算法(基于大数分解难题): - 选大素数 \(p, q\),令 \(n = pq\) - \(\phi(n) = (p-1)(q-1)\),选 \(e\) 使 \(\gcd(e, \phi(n)) = 1\) - 计算 \(d\):\(ed \equiv 1 \pmod{\phi(n)}\) - 公钥 \((e, n)\),私钥 \((d, n)\) - 加密:\(C = M^e mod n\);解密:\(M = C^d mod n\)
实用方案:用RSA加密会话密钥,用会话密钥进行对称加密(兼顾安全性与效率)
对称密钥 vs 公钥比较: - 对称密钥:一对一双向保密,\(n\)个用户需要 \(n(n-1)/2\) 个密钥 - 公钥:多对一单向保密,\(n\)个用户只需 \(n\) 对密钥
7.3 鉴别
报文鉴别
方法1:数字签名(原理)
用发送方私钥对报文加密,任何人用发送方公钥可验证:
问题:每次对整个大报文加密,开销太大。方法2:密码散列函数(Hash)
特性: 1. 输出长度短且固定(MD5:128位,SHA-256:256位) 2. 抗碰撞:不同输入产生相同输出(碰撞)极难 3. 单向函数:不能由输出推导输入 4. 雪崩效应:输入微小变化→输出大幅变化
MD5现状:2004年中国学者王小云证明可系统性找出MD5碰撞,仅需15分钟,MD5已被淘汰。
SHA系列: - SHA-1(160位):也被王小云团队和Google攻破,已停用 - SHA-2(SHA-256/384/512):当前标准 - SHA-3:采用完全不同算法(Keccak),更安全
方法3:报文鉴别码 MAC
解决散列函数不能防伪造的问题:
只要攻击者不知道密钥K,就无法伪造MAC。MAC运算比加密快,消耗资源少。
HMAC(Keyed-Hash MAC):与基本MAC的计算方式不同,更安全。
综合方案:已签名的MAC
对散列值(而非整个报文)用私钥签名,兼顾效率和不可抵赖性。
实体鉴别
与报文鉴别的区别: - 报文鉴别:每个报文都要鉴别来源 - 实体鉴别:对通信实体一次性验证身份(整个会话期间有效)
重放攻击(Replay Attack):攻击者C截获A的鉴别报文,直接发给B冒充A。
防重放:不重数(Nonce): - 一次性使用的大随机数 - B发给A一个不重数R,A用密钥加密R回传 - 由于每次不重数不同,重放的旧报文无效
公钥体制的中间人攻击风险: - C可伪造自己的公钥PKC冒充A - 根本解决:可信第三方CA认证公钥的真实性
7.4 密钥分配
对称密钥分配:KDC
密钥分配中心 KDC (Key Distribution Center): - 每个用户与KDC之间有一个主密钥(master key) - KDC临时生成会话密钥(session key) KAB 分配给A和B - 会话密钥是一次性的(一次通信用完即弃) - KDC分配给用户的密钥应定期更换
Kerberos V5: - 同时是鉴别协议和KDC的实现,互联网建议标准 - 使用AES加密 - 两个服务器:鉴别服务器AS + 票据授予服务器TGS - 要求所有主机时钟松散同步(误差不超过5分钟),防重放攻击
公钥分配:CA与数字证书
认证中心 CA (Certification Authority):可信第三方,负责签发数字证书,一般由政府出资建立。
数字证书(= 公钥证书):
验证证书: 1. 用CA公钥对证书的CA签名做E运算 → 得摘要1 2. 对证书内容做散列运算 → 得摘要2 3. 摘要1 = 摘要2 → 证书真实有效
X.509 / PKI(互联网公钥基础设施): - 树状认证层级:根CA → 中间CA → 用户证书 - 信任链(Chain of Trust):从根CA向下的所有链接 - 根CA证书是自签名的(自己的私钥签自己) - 证书可过期(有效期)或吊销(CRL证书撤销列表,用CA私钥签名)
7.5 互联网安全协议
IPSec(网络层)
IPSec是协议族,非单一协议,为IP层提供安全:
三个核心部分: 1. AH(鉴别首部):源点鉴别 + 数据完整性,不加密 2. ESP(封装安全有效载荷):源点鉴别 + 完整性 + 加密(AH功能的超集) 3. IKE(互联网密钥交换):为IP安全数据报创建安全关联SA
安全关联 SA (Security Association): - IPSec把无连接网络层转为有逻辑连接的层 - SA是单向连接,双向通信需建立两个SA - SA包含:SPI(32位标识)、端点IP、加密类型、密钥、完整性检查类型
两种工作模式:
| 模式 | 适用场景 | 加密范围 |
|---|---|---|
| 传输模式(Transport) | 端到端(主机间) | IP数据部分 |
| 隧道模式(Tunnel) | VPN(路由器间) | 整个原始IP数据报 |
隧道模式中,新IP首部的源/目的地址是路由器地址,内部IP首部是主机地址。
IKEv2基于三个协议:Oakley(密钥生成)+ SKEME(公钥鉴别)+ ISAKMP(框架)
TLS/SSL(运输层)
- SSL:Netscape 1994年开发,在TCP之上,为应用层提供安全通道
- TLS 1.0:IETF 1999年基于SSL 3.0设计
- TLS 1.3(2018):使用椭圆曲线密码ECC + AES,添加0-RTT,禁止弱算法
TLS工作位置:TCP之上,应用层(HTTP)之下 - 发送方:应用层数据 → TLS加密 → TCP套接字 - 接收方:TCP套接字 → TLS解密 → 应用层 - HTTPS = HTTP + TLS(端口443)
握手阶段(建立安全连接):
1. 协商加密算法:浏览器A → 服务器B(支持的TLS版本和加密套件列表)
2. 服务器鉴别:服务器B → A(选定算法 + CA数字证书)
3. 密钥生成:A用CA公钥验证证书,生成预主密钥PMS
4. A用服务器公钥加密PMS发给B
5. 双方各自从PMS、客户不重数、服务器不重数生成主密钥MS
6. 主密钥分割为4个会话密钥(发送/接收各一套加密和MAC密钥)
防截断攻击:关闭前发送"关闭TLS记录",防止攻击者用TCP FIN突然中断连接。
TLS记录格式:
序号嵌入MAC计算,防止重排序攻击。PGP(应用层,电子邮件)
发送方A:
① 用A私钥SKA对明文X签名
② 生成一次性对称密钥K
③ 用K加密(X + 签名)
④ 用B公钥PKB加密K
⑤ 发送(加密的K + 加密的签名邮件)
接收方B:
① 用B私钥SKB解出K
② 用K解密邮件得X和A的签名
③ 用A公钥PKA验证签名
7.6 防火墙与入侵检测
防火墙
防火墙定义:安装在网络边界的特殊路由器,实施访问控制策略。
两类技术:
① 分组过滤路由器 - 根据源/目的IP、端口、协议过滤分组 - 无状态(每包独立处理)或有状态(跟踪连接状态) - 优点:简单高效,对用户透明 - 缺点:不能过滤高层数据
② 应用网关(代理服务器) - 在应用层打开报文,理解协议内容 - 所有报文必须经过,逐条检查 - 优点:可深度过滤,支持用户鉴别 - 缺点:每种应用需不同网关,处理开销大,对应用不透明
入侵检测系统 IDS
IDS:在入侵开始但未造成危害前及时检测,发出告警或执行阻断(误报率高,多数情况不自动阻断)。
两种检测方法:
| 方法 | 原理 | 优缺点 |
|---|---|---|
| 基于特征 | 维护已知攻击特征数据库 | 只能检测已知攻击,大多数IDS采用 |
| 基于异常 | 学习正常流量统计特性,检测偏离 | 可检测未知攻击,但区分正常/异常困难 |
7.7 未来发展方向
- 椭圆曲线密码(ECC):已在TLS 1.3握手中占重要地位,用于电子护照、金融系统
- 移动安全:移动支付安全等
- 量子密码:量子计算机将使现有密码体制失效,后量子密码学(Post-Quantum Cryptography)正在研究
参见
- [[04-网络层]] — IPSec运行在IP层
- [[05-运输层]] — TLS运行在TCP之上
- [[06-应用层]] — PGP用于邮件安全,HTTPS用HTTP
- [[07-网络安全|RSA]] — 公钥加密详解
- [[07-网络安全|数字证书]] — PKI体系
- [[TLS握手]] — 详细流程图