描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302467588丛书名: 网络空间安全重点规划丛书
第1篇 网络安全基础
第1章 引言 3
1.1 对网络安全的需求 5
1.1.1
网络安全发展态势 5
1.1.2
敏感信息对安全的需求 6
1.1.3
网络应用对安全的需求 7
1.2 安全威胁与防护措施 7
1.2.1
基本概念 7
1.2.2
安全威胁的来源 8
1.2.3
安全防护措施 10
1.3 网络安全策略 11
1.3.1
授权 12
1.3.2
访问控制策略 12
1.3.3
责任 13
1.4 安全攻击的分类 13
1.4.1
被动攻击 13
1.4.2
主动攻击 14
1.5 网络攻击的常见形式 15
1.5.1
口令窃取 16
1.5.2
欺骗攻击 16
1.5.3
缺陷和后门攻击 17
1.5.4
认证失效 18
1.5.5
协议缺陷 19
1.5.6
信息泄漏 19
1.5.7
指数攻击——病毒和蠕虫 20
1.5.8
拒绝服务攻击 21
1.6 开放系统互连安全体系结构 22
1.6.1
安全服务 23
1.6.2
安全机制 25
1.6.3
安全服务与安全机制的关系 26
1.6.4
在OSI层中的服务配置 27
1.7 网络安全模型 27
习题 28
第2章 计算机网络基础 30
2.1 计算机网络的定义 30
2.2 计算机网络体系的结构 30
2.2.1
网络体系结构的定义 30
2.2.2
两种典型的网络体系结构 32
2.2.3
网络协议及协议封装 34
2.3 分组交换技术 35
2.3.1
分组交换技术的概念 35
2.3.2
分组交换的特点 35
2.4
Internet的基本知识 36
2.4.1
Internet的构成 36
2.4.2
服务类别 37
2.4.3
IPv4地址 37
2.4.4
端口的概念 40
习题 41
第3章 Internet协议的安全性 43
3.1
Internet协议概述 43
3.2 网际层协议 43
3.2.1
IP协议 43
3.2.2
ARP协议 45
3.2.3
ICMP协议 46
3.2.4
IGMP协议 47
3.2.5
OSPF协议 48
3.2.6
BGP协议 49
3.3 传输层协议 50
3.3.1
TCP协议 51
3.3.2
UDP协议 52
3.4 应用层协议 53
3.4.1
RIP协议 53
3.4.2
HTTP协议 54
3.4.3
TELNET协议 55
3.4.4
SSH协议 56
3.4.5
DNS协议 57
3.4.6
SMTP协议 58
3.4.7
MIME协议 60
3.4.8
POP3协议 60
3.4.9
IMAP4协议 61
3.4.10
PGP协议 63
3.4.11
FTP协议 64
3.4.12
TFTP协议 65
3.4.13
NFS协议 65
3.4.14
SNMP协议 66
3.4.15
DHCP协议 67
3.4.16
H.323协议 68
3.4.17
SIP协议 69
3.4.18
NTP协议 70
3.4.19
FINGER协议 71
3.4.20
Whois协议 72
3.4.21
LDAP协议 73
3.4.22
NNTP协议 74
习题 75
第2篇 密码学基础
第4章 单(私)钥密码体制 79
4.1 密码体制的定义 79
4.2 古典密码 80
4.2.1
代换密码 81
4.2.2
换位密码 83
4.2.3
古典密码的安全性 84
4.3 流密码的基本概念 85
4.3.1
流密码框图和分类 86
4.3.2
密钥流生成器的结构和分类 87
4.3.3
密钥流的局部统计检验 88
4.4 快速软、硬件实现的流密码算法 89
4.4.1
A5 89
4.4.2
加法流密码生成器 90
4.4.3
RC4 91
4.4.4
祖冲之密码 92
4.5 分组密码概述 98
4.6 数据加密标准 101
4.6.1
DES介绍 101
4.6.2
DES的核心作用:消息的随机非线性分布 103
4.6.3
DES的安全性 103
4.7 高级加密标准 104
4.7.1
Rijndael密码概述 105
4.7.2
Rijndael密码的内部函数 106
4.7.3
AES密码算法 109
4.7.4
AES的密钥扩展 111
4.7.5
AES对应用密码学的积极影响 112
4.8 中国商用分组密码算法SM4 113
4.8.1
SM4密码算法 113
4.8.2
SM4密钥扩展算法 116
4.8.3
SM4的安全性 117
4.9 分组密码的工作模式 117
4.9.1
电码本模式 118
4.9.2
密码分组链接模式 118
4.9.3
密码反馈模式 119
4.9.4
输出反馈模式 120
4.9.5
计数器模式 122
习题 122
第5章 双(公)钥密码体制 124
5.1 双钥密码体制的基本概念 125
5.1.1
单向函数 125
5.1.2
陷门单向函数 126
5.1.3
公钥系统 126
5.1.4
用于构造双钥密码的单向函数 126
5.2
RSA密码体制 128
5.2.1
RSA密码体制 129
5.2.2
RSA的安全性 130
5.2.3
RSA的参数选择 133
5.2.4
RSA体制应用中的其他问题 135
5.2.5
RSA的实现 135
5.3
ElGamal密码体制 136
5.3.1
密钥生成 136
5.3.2
加解密 136
5.3.3
安全性 136
5.4 椭圆曲线密码体制 137
5.4.1
实数域上的椭圆曲线 137
5.4.2
有限域Zp上的椭圆曲线 138
5.4.3
GF(2m)上的椭圆曲线 140
5.4.4
椭圆曲线密码 141
5.4.5
椭圆曲线的安全性 142
5.4.6
ECC的实现 143
5.4.7
当前ECC的标准化工作 143
5.4.8
椭圆曲线上的RSA密码体制 144
5.4.9
用圆锥曲线构造双钥密码体制 144
5.5 基于身份的密码体制 145
5.5.1
引言 145
5.5.2
双线性映射和双线性D-H假设 146
5.5.3
IBE方案 147
5.5.4
IBE方案的安全性 148
5.6 中国商用密码SM2算法 151
5.6.1
SM2椭圆曲线推荐参数 151
5.6.2
辅助函数 151
5.6.3
密钥生成 152
5.6.4
加密 152
5.6.5
解密 153
5.6.6
实例与应用 155
5.7 公钥密码体制的安全性分析 155
习题 157
第6章 消息认证与杂凑函数 159
6.1 认证函数 159
6.1.1
消息加密 159
6.1.2
消息认证码 163
6.1.3
杂凑函数 165
6.2 消息认证码 166
6.2.1
对MAC的要求 167
6.2.2
基于杂凑函数的MAC 168
6.2.3
基于分组加密算法的MAC 169
6.3 杂凑函数 169
6.3.1
单向杂凑函数 169
6.3.2
杂凑函数在密码学中的应用 170
6.3.3
分组迭代单向杂凑算法的层次结构 170
6.3.4
迭代杂凑函数的构造方法 171
6.3.5
应用杂凑函数的基本方式 172
6.4 常用杂凑函数 174
6.4.1
MD系列杂凑函数 174
6.4.2
SHA系列杂凑函数 178
6.4.3
中国商用杂凑函数SM3 181
6.5
HMAC 184
6.5.1
HMAC的设计目标 184
6.5.2
算法描述 185
6.5.3
HMAC的安全性 186
习题 187
第7章 数字签名 189
7.1 数字签名基本概念 189
7.2
RSA签名体制 190
7.2.1
体制参数 190
7.2.2
签名过程 191
7.2.3
验证过程 191
7.2.4
安全性 191
7.3
ElGamal签名体制 191
7.3.1
体制参数 191
7.3.2
签名过程 192
7.3.3
验证过程 192
7.3.4
安全性 192
7.4
Schnorr签名体制 193
7.4.1
体制参数 193
7.4.2
签名过程 193
7.4.3
验证过程 193
7.4.4
Schnorr签名与ElGamal签名的不同点 194
7.5
DSS签名标准 194
7.5.1
概况 194
7.5.2
签名和验证签名的基本框图 195
7.5.3
算法描述 195
7.5.4
DSS签名和验证框图 196
7.5.5
公众反应 196
7.5.6
实现速度 196
7.6 中国商用数字签名算法SM2 197
7.6.1
体制参数 197
7.6.2
签名过程 197
7.6.3
验证过程 198
7.6.4
签名实例 199
7.7 具有特殊功能的数字签名体制 200
7.7.1
不可否认签名 200
7.7.2
防失败签名 200
7.7.3
盲签名 201
7.7.4
群签名 201
7.7.5
代理签名 202
7.7.6
指定证实人的签名 202
7.7.7
一次性数字签名 203
7.7.8
双有理签名方案 203
7.8 数字签名的应用 203
习题 203
第8章 密码协议 205
8.1 协议的基本概念 205
8.1.1
仲裁协议 205
8.1.2
裁决协议 207
8.1.3
自动执行协议 207
8.2 安全协议分类及基本密码协议 209
8.2.1
密钥建立协议 209
8.2.2
认证建立协议 214
8.2.3
认证的密钥建立协议 218
8.3 秘密分拆协议 226
8.4 会议密钥分配和秘密广播协议 228
8.4.1
秘密广播协议 228
8.4.2
会议密钥分配协议 229
8.5 密码协议的安全性 229
8.5.1
对协议的攻击 230
8.5.2
密码协议的安全性分析 233
习题 235
第3篇 网络安全技术与应用
第9章 数字证书与公钥基础设施 239
9.1
PKI的基本概念 239
9.1.1
PKI的定义 239
9.1.2
PKI的组成 239
9.1.3
PKI的应用 241
9.2 数字证书 242
9.2.1
数字证书的概念 243
9.2.2
数字证书的结构 243
9.2.3
数字证书的生成 245
9.2.4
数字证书的签名与验证 247
9.2.5
数字证书层次与自签名数字证书 249
9.2.6
交叉证书 251
9.2.7
数字证书的撤销 252
9.2.8
漫游证书 257
9.2.9
属性证书 258
9.3
PKI体系结构–PKIX模型 259
9.3.1
PKIX服务 259
9.3.2
PKIX体系结构 259
9.4
PKI实例 260
9.5 授权管理设施–PMI 261
9.5.1
PMI的定义 261
9.5.2
PMI与PKI的关系 262
9.5.3
实现PMI的机制 263
9.5.4
PMI模型 264
9.5.5
基于PMI建立安全应用 265
习题 266
第10章 网络加密与密钥管理 268
10.1
网络加密的方式及实现 268
10.1.1
链路加密 268
10.1.2
节点加密 269
10.1.3
端到端加密 269
10.1.4
混合加密 270
10.2
硬件、软件加密及有关问题 271
10.2.1
硬件加密的优点 271
10.2.2
硬件种类 272
10.2.3
软件加密 272
10.2.4
存储数据加密的特点 272
10.2.5
文件删除 273
10.3
密钥管理基本概念 273
10.3.1
密钥管理 273
10.3.2
密钥的种类 274
10.4
密钥生成 275
10.4.1
密钥选择对安全性的影响 276
10.4.2
好的密钥 276
10.4.3
不同等级的密钥产生的方式不同 276
10.5
密钥分配 277
10.5.1
基本方法 277
10.5.2
密钥分配的基本工具 279
10.5.3
密钥分配系统的基本模式 279
10.5.4
可信第三方TTP 279
10.5.5
密钥注入 281
10.6
密钥的证实 281
10.6.1
单钥证书 282
10.6.2
公钥的证实技术 283
10.6.3
公钥认证树 283
10.6.4
公钥证书 284
10.6.5
基于身份的公钥系统 285
10.6.6
隐式证实公钥 286
10.7
密钥的保护、存储与备份 287
10.7.1
密钥的保护 287
10.7.2
密钥的存储 288
10.7.3
密钥的备份 288
10.8
密钥的泄漏、吊销、过期与销毁 289
10.8.1
泄漏与吊销 289
10.8.2
密钥的有效期 289
10.8.3
密钥销毁 289
10.9
密钥控制 290
10.10
多个管区的密钥管理 291
10.11
密钥管理系统 293
习题 295
第11章 无线网络安全 296
11.1
无线网络面临的安全威胁 296
11.2
无线蜂窝网络的安全性 299
11.2.1
GSM的安全性 299
11.2.2
CDMA的安全性 302
11.2.3
3G系统的安全性 304
11.3
无线数据网络的安全性 306
11.3.1
有线等效保密协议 306
11.3.2
802.1x协议介绍 308
11.3.3
802.11i标准介绍 309
11.3.4
802.16标准的安全性 312
11.3.5
WAPI标准简介 315
11.3.6
WAP的安全性 316
11.4
Ad hoc网络的安全性 319
11.4.1
Ad hoc网络保密与认证技术 320
11.4.2
Ad hoc网络的安全路由 323
11.4.3
Ad hoc网络的入侵检测 323
11.4.4
Ad hoc网络的信任建立 324
习题 324
第12章 防火墙技术 326
12.1
防火墙概述 326
12.2
防火墙的类型和结构 328
12.2.1
防火墙分类 329
12.2.2
网络地址转换 331
12.3
静态包过滤器 336
12.3.1
工作原理 336
12.3.2
安全性讨论 340
12.4
动态包过滤防火墙 341
12.4.1
工作原理 341
12.4.2
安全性讨论 343
12.5
电路级网关 345
12.5.1
工作原理 346
12.5.2
安全性讨论 348
12.6
应用级网关 349
12.6.1
工作原理 350
12.6.2
安全性讨论 351
12.7
状态检测防火墙 353
12.7.1
工作原理 353
12.7.2
安全性分析 354
12.8
切换代理 356
12.8.1
工作原理 356
12.8.2
安全性讨论 356
12.9
空气隙防火墙 357
12.9.1
工作原理 357
12.9.2
安全性分析 358
12.10
分布式防火墙 359
12.10.1
工作原理 359
12.10.2
分布式防火墙的优缺点 360
12.11
防火墙的发展趋势 360
12.11.1
硬件化 360
12.11.2
多功能化 361
12.11.3
安全性 362
习题 362
第13章 入侵检测技术 364
13.1
入侵检测概述 364
13.1.1
入侵检测的概念 365
13.1.2
IDS的主要功能 366
13.1.3
IDS的任务 367
13.1.4
IDS的评价标准 368
13.2
入侵检测原理及主要方法 369
13.2.1
异常检测基本原理 369
13.2.2
误用检测基本原理 370
13.2.3
各种入侵检测技术 370
13.3
IDS的结构与分类 373
13.3.1
IDS的结构 374
13.3.2
IDS的分类 375
13.4
NIDS 376
13.4.1
NIDS设计 377
13.4.2
NIDS关键技术 378
13.5
HIDS 381
13.5.1
HIDS设计 382
13.5.2
HIDS关键技术 383
13.6
DIDS 385
13.7
IDS设计上的考虑与部署 386
13.7.1
控制台的设计 386
13.7.2
自身安全设计 387
13.7.3
IDS的典型部署 388
13.8
IDS的发展方向 389
习题 391
第14章 VPN技术 392
14.1
VPN概述 392
14.1.1
VPN的概念 392
14.1.2
VPN的特点 392
14.1.3
VPN的分类 393
14.1.4
VPN关键技术 394
14.2
隧道协议与VPN 395
14.2.1
第2层隧道协议 396
14.2.2
第3层隧道协议 398
14.3
IPSec VPN 399
14.3.1
IPSec协议概述 399
14.3.2
IPSec的工作原理 400
14.3.3
IPSec中的主要协议 401
14.3.4
安全关联 404
14.3.5
IPSec VPN的构成 405
14.3.6
IPSec的实现 406
14.4
SSL/TLS VPN 406
14.4.1
TLS协议概述 406
14.4.2
TLS VPN的原理 407
14.4.3
TLS VPN的优缺点 409
14.4.4
TLS VPN的应用 410
14.4.5
TLS VPN与IPSec VPN比较 410
14.5
PPTP VPN 411
14.5.1
PPTP概述 411
14.5.2
PPTP VPN的原理 412
14.5.3
PPTP VPN的优缺点 413
14.6
MPLS VPN 413
14.6.1
MPLS协议概述 414
14.6.2
MPLS VPN的原理 415
14.6.3
MPLS VPN的优缺点 416
习题 418
第15章 身份认证技术 420
15.1
身份证明 420
15.1.1
身份欺诈 420
15.1.2
身份证明系统的组成和要求 421
15.1.3
身份证明的基本分类 422
15.1.4
实现身份证明的基本途径 422
15.2
口令认证系统 423
15.2.1
概述 423
15.2.2
口令的控制措施 425
15.2.3
口令的检验 425
15.2.4
口令的安全存储 426
15.3
个人特征的身份证明技术 427
15.3.1
手书签字验证 427
15.3.2
指纹验证 428
15.3.3
语音验证 429
15.3.4
视网膜图样验证 429
15.3.5
虹膜图样验证 429
15.3.6
脸型验证 430
15.3.7
身份证明系统的设计 430
15.4
一次性口令认证 431
15.4.1
挑战/响应机制 431
15.4.2
口令序列机制 432
15.4.3
时间同步机制 432
15.4.4
事件同步机制 433
15.4.5
几种一次性口令实现机制的比较 434
15.5
基于证书的认证 435
15.5.1
简介 435
15.5.2
基于证书认证的工作原理 435
15.6
智能卡技术及其应用 438
15.7
AAA认证协议与移动IP技术 440
15.7.1
AAA的概念及AAA协议 441
15.7.2
移动IP与AAA的结合 444
习题 446
参考文献 448
前言
为了加强网络空间安全专业人才的培养,*已正式批准在29所大学设立网络空间安全一级学科博士点,全国已有128所高校相继设立了信息安全或信息对抗本科专业。为了提高网络空间安全人才培养质量,急需编写出版一批高水平的网络空间安全优秀教材。作者作为*高等学校信息安全专业教学指导委员会委员和中国密码学会理事,参与编写了*高等学校信息安全专业教学指导委员会编制的《高等学校信息安全专业指导性专业规范》。在本书的编写过程中,力求使本教材的知识体系和知识点符合《高等学校信息安全专业指导性专业规范》的要求,并加入了对国产密码算法的阐述。全书共分3篇15章。第1篇为网络安全基础,共3章,主要介绍网络安全的基本概念、计算机网络的基础知识,以及TCP/IP协议族的安全性。第2篇为密码学基础,共5章,主要介绍密码学中的各种密码算法和协议。第3篇为网络安全技术与应用,共7章,主要介绍PKI/CA、密钥管理、无线网络安全,以及防火墙、VPN、IDS和身份认证等网络安全技术与应用。本书主要有以下特色:(1)基本概念清晰,表述深入浅出。在基本概念的阐述上,力求准确而精练;在语言的运用上,力求顺畅而自然。作者尽量避免使用晦涩难懂的语言描述深奥的理论和技术知识,而是借助大量的图表进行阐述。(2)内容全面,涵盖密码学和网络安全技术。本书既介绍了现代密码学的知识,又阐述了网络安全的理论与技术,特别适合于将密码学和网络安全合并为一门课进行授课的高校。(3)理论与实践相结合。针对某些网络安全技术和产品,本书给出相应的网络安全解决方案,从而使读者能够深入而全面地了解网络安全技术的具体应用,以提高读者独立分析问题和解决问题的能力。(4)每章后面都附有精心斟酌和编排的思考题。通过深入分析和讨论思考题中所列问题,读者可加强对每章所学基本概念和理论的理解,从而进一步巩固所学的知识。(5)本书详细列出了大量的参考文献。这些参考文献为网络空间安全学科的研究生和密码学、信息安全、信息对抗技术等专业的本科生,以及其他网络安全技术人员提供了深入研究相关专题的途径和资料。
本书可作为密码学、信息安全和信息对抗技术等专业的本科生教材和网络空间安全学科的研究生教材,也可以作为网络安全工程师的参考书和培训教材。本书由刘建伟主编,刘建伟和王育民对全书进行了审校。第1章由刘建伟编著,第2章由杜瑞颖编著,第3章由杜瑞颖和刘建伟编著,第11~14章由刘建伟编著,第4~10章和第15章由王育民和刘建伟编著。感谢伍前红教授、尚涛副教授、毛剑老师、关振宇老师、修春娣老师、张宗洋老师给予的支持与帮助。感谢陈杰、刘巍然、毛可飞、周星光、王蒙蒙、何双羽、程东旭、刘哲、李大伟、程昊苏、钟林、王朝、姜勇、周林志等博士研究生,以及宋晨光、苏航、冯伯昂、周修文、陶芮、夏丹枫、樊一康、齐婵、刘懿中、王培人、马寒军、雷奇、李珂、崔键、史福田、杜岗、王沁、梁智等硕士研究生在书稿的整理过程中给予作者的大力支持与帮助。由于作者水平所限,书中难免会存在错误和不妥之处。敬请广大读者朋友批评指正。
作 者 于北京
图3-1 TCP/IP协议族不同层次划分示意图网际层协议3.2.1 IP协议1.概述网际协议(Internet Protocol,IP)是TCP/IP协议族的核心,也是网际层中重要的协议。IP数据报构成了TCP/IP协议族的基础。典型的IP数据报有几百个字节,其中占20~60字节,其余为数据净荷部分。IP层接收由更低层(例如网络接口层)发来的数据包,对数据包进行处理后交付到更高层(TCP或UDP协议);相反,IP层也把从TCP或UDP协议来的数据包传送到更低层。IP采用尽努力交付的服务,是一种不可靠的无连接数据报协议。每个IP数据报独立路由,各个数据报可能沿不同路径由发送方传送到接收方,因此,IP无法确认数据报是否丢失、失序或延迟到达。另外,虽然IP中存在校验位,但此校验位只用于检测IP数据报的正确性,并没有使用任何机制保证数据净荷传输的正确性,因此,无法确认IP数据报是否损坏。较高层的协议(如TCP)负责处理这些问题,以便为应用程序提供一条可靠的网络通信链路。2.IP协议的安全问题及防护措施IP协议存在一系列典型的安全问题。(1)IP数据报在传递过程中易被攻击者监听、窃取。此种攻击是一种被动的攻击方式,攻击者并不改变IP数据报的内容,但可截取IP数据报,解析数据净荷,从而获得数据内容。这种类型的攻击很难被检测,因为攻击过程并不影响IP数据报的正确传递。针对这种攻击的方法是对IP数据报进行加密。(2)由于IP层并没有采用任何机制保证数据净荷传输的正确性,攻击者可截取IP数据报,修改数据报中的内容后,将修改结果发送给接收方。针对这种攻击的方法是对IP数据报净荷部分实行完整性检测机制。接收方在收到IP数据报时,可先应用完整性检测机制检测数据报的完整性,从而保证收到的IP数据报在传输过程中未被恶意篡改。(3)高层的TCP和UDP服务在接收IP数据报时,通常假设数据报中的源地址是有效的。事实上,IP层不能保证IP数据报一定是从源地址发送的。任意一台主机都可以发送具有任意源地址的IP数据报。攻击者可伪装成另一个网络主机,发送含有伪造源地址的数据包以欺骗接收者。此种攻击称为IP欺骗攻击。针对此种攻击可以通过源地址鉴别机制加以防御。一般来说,认证需要采用高层协议中的安全机制来实现。(4)IP数据报在传递过程中,如果数据报太大,该数据报就会被分段。也就是说,大的IP数据报会被分成两个或多个小数据报,每个小数据报都有自己的,但其数据净荷仅是大数据报净荷的一部分。每个小数据报可以经由不同的路径到达目的地。在传输过程中,每个小数据报可能会被继续分段。当这些小数据报到达接收方时,它们会被重组到一起。按照协议规则,中间节点不能对小数据报进行拼装组合。一般来说,包过滤器完成IP数据报的分段和重组过程。然而,正是由于IP数据报在传输过程中要经历被分段和重组的过程,攻击者可在包过滤器中注入大量病态的小数据报,来破坏包过滤器的正常工作。当重要的信息被分成两个IP数据报时,过滤器可能会错误地处理数据报,或者仅传输第2个IP数据报。更糟的是,当两个重叠的IP数据报含有不同的内容时,重组规则并不提示如何处理这两个IP数据报。许多防火墙能够重组分段的IP数据报,以检查其内容。(5)使用特殊的目的地址发送IP数据报也会引入安全问题。如发送目的地址是直接广播地址的IP数据报,发送这样的数据包是非常危险的,因为它们可以很容易地被用来攻击许多不同类型的主机。许多攻击者已将定向广播作为一种网络攻击手段。其实许多路由器具有阻止发送这类数据包的能力,因此,强烈建议网络管理员在配置路由器时,一定要启用路由器的这个功能。3.2.2 ARP协议1.概述在通常情况下,当我们访问一台机器的时候一定可以知道它的逻辑地址,而物理地址就不一定知道。如果不知道物理地址则不能把网络层的数据包封装成MAC帧,完不成通信。ARP协议正是为了解决这个问题而设置的。在每台主机上都设置有一个所在网段上的各主机和路由器的 IP 地址到硬件地址的映射表,也称为ARP高速缓存。在数据发送方,当网络层的数据报要封装成MAC帧时,首先在高速缓存中查看有无该数据报的目的地址所对应的硬件地址,若有,则将该硬件地址写入MAC帧的目的地址中,完成数据报的封装。若无,ARP协议则在本局域网上广播发出一个ARP请求分组。在ARP请求分组中,发送方的IP地址和发送方硬件地址,以及目标IP地址都是应该写入已知的数据,要寻找的目标硬件地址写入全0。当该请求分组到达每一个机器上时,每一台机器都要拿自己的IP地址和请求分组中的目标IP地址进行比较,如果不同则不做任何动作;若相同则发送一个ARP相应分组给请求方(这里不再使用广播,而是单播)。在相应分组中发送方写明了自己的硬件地址。当这一通信过程完成时,通信双方都要对自己的ARP高速缓存进行修改,添加上一条记录。2.ARP协议的安全问题及防护措施通过上述ARP协议的工作原理可知,一名黑客只要能把他的主机成功插入某个网段,这台主机就能够接收到所在网段的ARP请求分组,从而获知该网段上主机IP和MAC地址的对应关系。从这里也可以看出,ARP攻击仅仅在内网进行,它无法对外网(互联网、非本区域内的局域网)进行攻击。局域网中有一台主机C,其MAC地址为00-aa-00-F2-c8-04,现在假设它感染了ARP木马。 那么主机C将会向某主机A发送一个伪造的ARP响应,告知主机A:主机B的IP地址192.168.10.8对应的MAC地址是00-aa-00-F2-c8-04(其实是主机C的MAC地址),于是,主机A将这个对应关系写入自己的ARP缓存表中。以后当主机A向主机B发送数据时,都会将本应发往主机B的数据发送给攻击者(主机C)。同样地,如果攻击者向主机B也发送一个伪造的ARP响应,告诉主机B:主机A的IP地址192.168.0.1对应的MAC地址是00-aa-00-F2-c8-04,主机B也会将数据发送给攻击者。至此攻击者就控制了主机A和主机B之间的流量,他可以选择被动地监测流量,获取密码和其他涉密信息,也可以伪造数据,改变主机A和主机B之间的通信内容。这种攻击称为ARP欺骗。为了解决ARP攻击问题,可以在网络中的交换机上配置802.1x协议。IEEE 802.1x是基于端口的访问控制协议,它对连接到交换机的用户进行认证和授权。在交换机上配置802.1x协议后,攻击者在连接交换机时需要进行身份认证(结合MAC、端口、账户、VLAN和密码等),只有通过认证后才能向网络发送数据。攻击者未通过认证就不能向网络发送伪造的ARP报文。另外,建立静态ARP表,也是一种有效地抵抗ARP攻击的方法,而且对系统影响不大。缺点是破坏了动态ARP协议。3.2.3 ICMP协议1.概述Internet控制报文协议(Internet Control Message Protocol,ICMP)是一个重要的错误处理和信息处理协议,运行在网际层。它可以用来通知主机到达目的地的路由,报告路由故障,或者因网络故障中断某个连接。ICMP的主要功能之一是向IP节点发送一个简单消息,并将消息回显到发送主机。因而,它可以提供目的节点的可达性和到达目的节点所采用的传输路径等信息,在网络监控和故障诊断方面具有重要作用,是网络管理员常用的两个监控工具——Ping和Traceroute的重要组成部分。ICMP提供了IP路由和交付问题的关键反馈信息,以及重要的IP诊断和控制能力,可用于网络的可达性分析、拥塞控制、路由优化和超时错误报告等方面[Jeffrey等 2014]。ICMP典型的用途是差错报告。例如,当某个网关发现传输错误时,该协议会立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应处理措施。在运行Telnet、FTP或HTTP会话时,通常会遇到如“目的网络不可达”之类的错误报文,这些报文就是在ICMP中产生的。IPv6有新版本的ICMP。ICMPv6与ICMPv4的很多消息是相似的,如Echo请求与应答消息、路由请求和公告等,但ICMPv6也新增了一些消息,如路由器重编号等。2.ICMP协议的安全问题及防护措施ICMP能够提供有关网络配置和连接状态等信息,为网络监控和故障诊断提供了重要依据。然而,黑客也能够利用ICMP提供的这些信息,进行各种网络攻击和信息侦察。例如,一些黑客会滥用ICMP来中断某些连接,网上流行的nuke.c黑客程序就采用了这类攻击方式。此外,ICMP还存在一些典型的安全问题。(1)ICMP重定向攻击。ICMP可以用来对主机之间的消息进行重定向,同样,黑客也能够用ICMP对消息进行重定向,进而使得目标机器遭受连接劫持和拒绝服务等攻击。一般来说,重定向消息应该仅由主机执行,而不是由路由器来执行。仅当消息直接来自路由器时,才由路由器执行重定向。然而,网络管理员有时可能会使用ICMP创建通往目的地的新路由。这种非常不谨慎的行为终会导致非常严重的网络安全问题。(2)ICMP路由器发现攻击[James等 2014]。在进行路由发现时,ICMP并不对应答方进行认证,这使得它可能遭受严重的中间人攻击。例如,在正常的路由器响应ICMP询问之前,攻击者可能会假冒正常的路由器,使用伪造的响应信息应答ICMP询问。由于在路由发现的过程中,ICMP并不对应答方进行认证,因此接收方将无法知道这个响应是伪造的。(3)防火墙穿越攻击。通过防火墙穿越攻击技术(Firewalking),攻击者能够穿越某个防火墙的访问控制列表和规则集,进而确定该防火墙过滤的内容和具体的过滤方式。尽管防火墙面临着启用ICMP所带来的风险,但在防火墙上封堵所有的ICMP消息并不妥当。这是因为主机常采用一种称为Path MTU的机制,来测试究竟多大的数据包可以不用分段发送,而这种测试需要依赖于地址不可达的ICMP数据包穿过防火墙。3.2.4 IGMP协议1.概述IGMP(Internet Group Management Protocol)作为因特网组播管理协议,是TCP/IP协议族中的重要协议之一,所有IP组播系统(包括主机和路由器)都需要支持IGMP。IGMP运行于主机和组播路由器之间,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。到目前为止,IGMP共有三个版本,即IGMP v1、v2和v3。IGMP实现的主要功能包括:主机通过IGMP通知路由器希望接收或离开某个特定组播组的信息;路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。2.IGMP协议的安全问题及防护措施IGMP组播报文在IP数据包的基础上封装了组播地址等信息,鉴于组播报文基于UDP进行传输并缺少用户认证措施,网络中任何主机都可以向组播路由器发送IGMP包,请求加入或离开,导致非法用户很容易加入组播组,窃听组播数据或者发动其他针对计算机网络系统的攻击。目前,针对IGMP协议的攻击主要有以下几种:(1)利用查询报文攻击。利用具有较低数值的 IP 地址路由器发送伪造的查询报文,由当前的查询方转变为响应查询请求,并且不再发出查询报文。攻击产生的效果包括:组播路由器对子网内各主机的加入请求不做任何响应,将屏蔽合法用户;组播路由器对子网内主机撤离报文不做响应,造成该子网内不存在组播用户,但是,组播数据又不断向该子网组播路由器发送请求报文,浪费有限的带宽和资源。(2)利用离开报文进行 DOS 攻击。子网内非法用户通过截获某个合法用户信息来发送伪造的 IGMP 离开报文,组播路由器接收到报文后误认为该合法用户已经撤离该组播组,则不再向该用户发送询问请求,导致该合法用户不能再接收到组播数据包,造成拒绝服务攻击。(3)利用报告报文攻击。非法用户伪装报告报文,或截获合法用户的报告报文向组播路由器发送伪造报文,使组播路由器误以为有新用户加入,于是将组播树扩展到非法用户所在的子网,此后非法用户就可以接收到来自组播路由的组播报文,并分析该报文以展开新的攻击。IGMP安全性的基本要求是只有注册的合法主机才能够向组播组发送数据和接收组播数据。但是,IP 组播很难保证这一点。首先,IP 组播使用UDP,网络中任何主机都可以向某个组播地址发送UDP 包;其次,Internet缺少对于网络层的访问控制,组成员可以随时加入和退出组播组;后,采用明文传输的IGMP组播报文很容易被窃听、冒充和篡改,使得组播安全性问题仍然是一个技术难点。针对以上安全问题,一种有效的安全增强措施是利用IGMP v3的扩展性在组播报文中未使用的辅助字段部分增加认证信息,即在每个首次加入组播的报文中添加关联主机身份的认证信息,组播路由器接收到认证信息并通过公钥密码技术实现成员身份的认证,随后,在发送给组播成员的查询信息中添加成功/失败标识的认证信息。通过此认证机制来保证IGMP的安全运行。3.2.5 OSPF协议1.概述由于Internet规模太大,所以常把它划分成许多较小的自治系统(Autonomous System,AS)。自治系统内部的路由协议称为内部网关协议,自治系统之间的协议称为外部网关协议。常见的内部网关协议有RIP协议和OSPF协议;外部网关协议有BGP协议。OSPF协议和BGP协议都位于网络层,但RIP协议位于应用层。OSPF协议是分布式的链路状态路由协议。链路在这里代表该路由器和哪些路由器是相邻的,即通过一个网络是可以连通的。链路状态说明了该通路的连通状态以及距离、时延、带宽等参数。在该协议中,只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送路由信息。所发送的信息是与本路由器相邻的所有路由器的链路状态。为了保存这些链路状态信息,每个路由器都建立有一个链路状态数据库,因为路由器交换信息时使用的是洪泛法,所以每个路由器都存有全网的链路状态信息,也就是说每个路由器都知道整个网络的连通情况和拓扑结构。这样每个路由器都可以根据链路状态数据库的信息来构造自己的路由表。路由表内包含有数据包去往目的地地址的下一跳路由信息。OSPF协议是TCP/IP工作的基础。2.OSPF协议的安全问题及防护措施OSPF的报文中包含了认证类型以及认证数据字段,如图3-2所示。其中主要有密码认证、空认证以及明文认证这3种认证模式。明文认证是将口令通过明文的方式来进行传输,只要可以访问到网络的人都可以获得这个口令,易遭受来自网络内部的攻击。密码认证则能够提供良好的安全性。为接入同一个网络或者是子网的路由器配置一个共享密钥,然后这些路由器所发送的每一个OSPF报文都会携带一个建立在这个共享密钥基础之上的消息认证码。当路由器接收到报文之后,根据路由器上的共享密钥以及接收到的报文通过MD5 Hash函数生成一个消息认证码,并将生成的消息认证码与接收到的消
图3-2 OSPF报文结构息认证码进行对比,如果两者一致就接收,反之则丢弃。OSPF协议规定了认证域,但其作用非常有限。主要原因有:(1)即使OSPF提供了较强的认证,但某些节点仍然使用简单的口令认证。那些能够戏弄路由协议的人也就有能力收集到本地以太网上传送的口令。(2)在路由对话中,如果有一个合法的用户遭到破坏,那么它的消息就不再可信。(3)在许多路由协议中,每台机器只对它邻近的计算机对话,而这些邻近的计算机将会重复旧的会话内容。这样,欺骗就会得到传播扩散。路由信息确定了两条通道:一条是从主叫机器到目标主机,另一条是从目标主机返回到主叫机器。第2条通道可以是第1条的逆通道,也可以不是。当它们不是逆通道的时候,就叫非对称路由。这种情况在Internet上非常普遍。当网络有多个防火墙时,就会产生问题。从安全的角度看,返回通道通常更加重要。当目标主机遭到攻击的时候,反向流动的数据包是通过什么通道到达攻击主机的呢?如果敌人能够破坏路由机制,那么目标主机就会被欺骗,使其相信敌人的机器是一台真正可信赖的机器。如果这种情况发生,那么依赖于源地址验证的认证机制将会失败。3.2.6 BGP协议1.概述BGP(Border Gateway Protocol)是边界网关协议,它将单一管理的网络转化为由多个自治系统分散互联的网络。它通常工作于ISP内部或ISP之间,有时也工作于Intranet内部。BGP使用TCP作为路由交换的底层传输协议,其以增量的更新实现路由信息交换。首个BGP协议版本在RFC1105中规定,目前实际运行版本为BGP-4(RFC1771)。有关BGP的详细描述可参阅相关文献[Stewart 1999]。2.BGP协议的安全问题及防护措施BGP协议主要的安全问题在于:每个自治系统向外通告自己所拥有的CIDR(Classless Inter-Domain Routing)地址块,并且协议无条件信任对等系统的路由宣告,这就导致一个自治系统向外通告不属于自己的前缀时,也会被BGP用户认为合法,从而接受和传播。有研究人员[Li等2013]将问题归结为BGP缺乏一个安全可信的路由认证机制,即BGP无法对所传播的路由信息的安全性进行验证。为了抵抗针对BGP协议的攻击,研究人员主要提出了两类方案:路由认证类方案和前缀劫持检测类方案。路由认证类方案利用数字证书、签名和其他密码学技术来保护路由信息的真实性和完整性。(1)首先出现的是针对劫持BGP TCP会话的MD5 BGP认证技术[Heffernan 1998]。会话者通过验证TCP伪、、数据段和共享秘密的MD5杂凑值,来实现认证。这种方法比较成熟,也具有很高的效率,但是其安全性随着MD5算法的安全性减弱已经逐渐降低。(2)S-BGP方案[Kent等2000a,2000b]利用PKI技术来增强BGP的安全性。该方案在BGP会话者接收到的整个路径上提供数字签名链。这种方案受到PKI技术的制约,存在计算开销大等问题。同时,受制于各厂商和管理机构的标准难于统一,该方案推广与部署困难。(3)为了解决S-BGP方案不易部署等缺陷,出现了许多基于S-BGP的改进方案。如Cisco公司的soBGP方案[White 2003]、IRV(Interdomain Routing Validation)方案[Goodell等 2003]以及IETF的SIDR工作组开发的RPKI(Resource Public Key infrastructure)& BGPsec方案[Lepinski 2012a,2012b]。前缀劫持检测类方案利用异常检测(Anomaly Detection)技术提取BGP协议运行中的异常信息,对前缀劫持行为进行检测,从而提高BGP的安全性。(1)多源AS(Multiple Origin AS,MOAS)检测技术[Zhao等 2001]通过获取网络中控制平面的信息,对比MOAS列表的一致性,来区分有效的MOAS和攻击的MOAS。PHAS(Prefix Hijack Alert System)检测技术通过审查BGP协议获得的路由数据,发现前缀劫持威胁,并向管理者通报路由异常[Lad等 2006]。(2)主动探测技术是利用数据平面反馈的信息来发现前缀劫持行为。根据观测点(Vantage Point)与被测自治系统位置的对应关系,可以分为由外及内探测[Zheng等 2007]和由内及外探测[Zhang等 2010]两类主动探测技术。为了综合利用以上两类检测技术的优点,研究人员也提出了将主动探测技术和MOAS检测技术结合的前缀劫持混合检测技术[Hu等 2007]。传输层协议本节主要讨论传输层协议及其安全性分析。传输层的任务是在源主机和目的主机之间提供可靠的、性价比合理的数据传输功能,向下利用网络层提供给它的服务,向上为其用户(通常为应用层中的进程)提供高效、可靠和性价比合理的服务。传输层的存在使得传输服务有可能比网络服务更加可靠,丢失的分组和损坏的数据可以在传输层上检测出来,并进行纠正。Internet传输层有两个主要协议,一个是面向连接的TCP协议,一个是无连接的UDP协议。3.3.1 TCP协议1.概述TCP是一个面向连接的可靠传输协议,提供了一些用户所期望的而IP协议又不能提供的功能。如IP层的数据包非常容易丢失、被复制或以错误的次序传递,无法保证数据包一定被正确递交到目标端。而TCP协议会对数据包进行排序和校验,未按照顺序收到的数据包会被重排,而损坏的数据包也可以被重传。TCP协议的原始正式定义位于RFC793中,此外在RFC1122中详细阐述了一些错误的修补方案,在RFC1323中又进一步作了扩展。
2.TCP协议的安全问题及防护措施目前针对TCP协议的攻击主要可以划分为以下三类。类攻击是针对TCP连接建立阶段的三次握手过程。TCP是一个面向连接的协议,即在数据传输之前要首先建立连接,然后传输数据,当数据传输完毕后释放所建立的连接。TCP使用三次握手来建立连接,这种方式大大增强了传输的可靠性,如防止已失效的连接请求报文段到达被请求方,产生错误造成资源的浪费。具体过程如图3-3所示。但与此同时,三次握手机制却给攻击者提供了可以利用的漏洞,这类攻击中常见的就是SYN FLOOD攻击,攻击者不断向服务器的监听端口发送建立TCP连接的请求SYN数据包,但收到服务器的SYN包后却不回复ACK确认信息,每次操作都会使服务器端保留一个半开放的连接,当这些半开放连接填满服务器的连接队列时,服务器便不再接受后续的任何连接请求,这种攻击属于拒绝服务(DoS)攻击。防御这类攻击的主要思路是在服务器前端部署相应的网络安全设备(如防火墙设备)对SYN FLOOD攻击数据包进行过滤。第二类攻击针对TCP协议不对数据包进行加密和认证的漏洞,进行TCP会话劫持攻击。TCP协议有一个关键特征,即TCP连接上的每一个字节都有它自己独有的32位序列号,数据包的次序就靠每个数据包中的序列号来维持。在数据传输过程中所发送的每一个字节,包括TCP连接的打开和关闭请求,都会获得的标号。TCP协议确认数据包的真实性的主要根据就是判断序列号是否正确,但这种机制的安全性并不够,如果攻击者能够预测目标主机选择的起始序号,就可以欺骗该目标主机,使其相信自己正在与一台可信主机进行会话。攻击者还可以伪造发送序列号在有效接收窗口内的报文,也可以截获报文并篡改内容后再发送给接收方。防御此类攻击的思路是在TCP连接建立时采用一个随机数作为初始序列号,规避攻击者对序列号的猜测。第三类攻击是针对TCP的拥塞控制机制的特性,在TCP连接建立后的数据传输阶段进行攻击,降低网络的数据传输能力。拥塞控制是TCP的一项重要功能,所谓拥塞控
图3-3 TCP三次握手连接建立过程制就是防止过多的数据注入网络,使网络中的链路和交换结点(路由器)的负荷不致过载而发生拥塞,TCP的拥塞控制主要有以下4种方法:慢启动、拥塞避免、快重传和快恢复。发送端主机在确定发送报文段的速率时,既要考虑接收端的接收能力,又要考虑网络的传输能力。因此,每一个 TCP 连接都需要维护接收窗口和拥塞窗口两个状态变量,接收窗口是接收端主机根据其目前的接收缓存大小所许诺的窗口值;拥塞窗口的大小表示了当前网络的传输能力,由发送端设置。发送窗口取这两者中的较小值。攻击者会利用发送端计算拥塞窗口的漏洞,通过降低拥塞窗口大小来降低发送窗口的大小。拥塞窗口的计算采用了所谓的慢启动(slow start)算法,其具体特征就是拥塞窗口在传输正常时成指数增长,增长到一定阈值后按线性增长,一旦出现数据包传输超时,则拥塞窗口变为小值,阈值变为原来一半。有经验的攻击者可以利用这种特性,周期性地制造网络关键节点的拥塞,不断触发拥塞窗口的慢启动过程,终达到降低正常数据传输能力的目的。因为此类攻击的具体手段比较灵活,防御此类攻击的难度较大,需要网络管理人员实时监测网络的异常流量,避免攻击者制造网络关键节点的拥塞。3.3.2 UDP协议1.概述相较于TCP提供的丰富功能,UDP协议只在IP的数据报服务之上增加了很少的一点功能,即端口的功能和差错检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点:,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延;第二,不使用拥塞控制,也不保证可靠交付,因此,主机不需要维持许多参数的、复杂的连接状态表;第三,UDP 用户数据报只有8个字节的开销;第四,由于没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。表3-1列出了常用的几种使用UDP协议进行传输的应用层协议及相应端口号。表3-1 常用的使用UDP协议进行传输的应用层协议序?号应用名称应用层协议端口号1域名系统DNS532简单文件传输协议TFTP693网络时间协议NTP1234动态主机配置协议DHCP67、685简单网络管理协议SNMP1616网络文件系统NFS2049
2.UDP协议的安全问题及防护措施DoS攻击是一种常见的UDP攻击,而UDP Flood攻击又是DoS攻击中普遍的流量型攻击。其攻击原理:攻击源发送大量的UDP小包到攻击目标,目标可以是服务器或者网络设备(前提是攻击目标已经开放UDP端口),使其忙于处理和回应UDP报文,系统资源使用率飙高,后导致该设备不能提供正常服务或者直接死机,严重的会造成全网瘫痪。可以说UDP攻击是一种消耗攻击目标资源,同时也消耗自己资源的攻击方式,技术含量较低。使用UDP进行传输的应用层协议之间差异极大,因此不同情况下的UDP攻击需要采取不同的防护手段:(1)如果攻击包是大包,则根据攻击包大小设定包碎片重组大小,通常不小于1500,情况下可以考虑丢弃所有UDP碎片;(2)当攻击端口为业务端口,根据该业务UDP包长设置UDP包以过滤异常流量;(3)当攻击端口为非业务端口,通常通过设置UDP连接规则,要求所有去往该端口的UDP包,必须首先与TCP端口建立TCP连接,不过这种方法需要借助专业安全设备。应用层协议3.4.1 RIP协议1.概述RIP(Routing Information Protocol)是一种动态内部路由/网关协议,适用于简单的IP网络。该协议虽然解决的是网络互联的路由问题,但它是应用层协议。RIP协议早在RFC 1058中提出,RIPv2(RFC1723)是它的改进方案。RIPv2新增了变长子网掩码的功能,支持无类域间路由、支持组播、支持认证功能,同时对RIP路由器具有后向兼容性。RIP采用距离矢量算法与相邻的路由器交换路由信息,它以“跳数”(即metric)来衡量到达目的地的距离。路由器到直连网络的metric标记为0,每经过一个路由器到达下一网络时metric增加1。为限制收敛时间,RIP规定一条有效路由信息的metric不能超过15,这就使得该协议不能应用于大型的网络。RIP的工作原理如下:(1)路由器初启动时只包含了其直连网络的路由信息,随后定期(30s)和相邻路由器交换路由信息(就是路由器当前的路由表),路由信息以RIP报文传送。(2)路由器根据接收到的RIP报文来更新路由表,具体方法是添加或更新自己的路由表项。(3)如果接收到与已有表项的目的地址相同的路由信息,则分为三种情况对待:种情况,已有表项的来源端口与新表项的来源端口相同,那么根据的路由信息更新其路由表;第二种情况,已有表项与新表项来源于不同的端口,那么比较它们的metric值,将metric值较小的一个作为自己的路由表项;第三种情况,新旧表项的metric值相等,通常的处理方法是保留旧的表项。(4)若接收到的目的网络不在自己的路由表中,则把该项目加到路由表中,并将其metric值加1。经过一系列路由更新,网络中的每个路由器都具有一张完整的路由表,这个过程称为收敛。RIP协议使用UDP的520端口来发送和接收RIP报文。路由器每隔30s向其邻居路由器发送本地路由表。如果经过180s都没有接收到更新报文,那么将其标记为不可达,即metric值标记为16。如果在其后的120s仍然没有收到更新信息,就将该路由从路由表中删除。2.RIP协议的安全问题及防护措施RIPv1有其固有的不安全因素, 它没有使用认证机制并使用不可靠的UDP协议进行传输。RIPv2的分组格式中包含了一个选项可以设置16个字符的明文加密字符串或者对MD5杂凑值的签名。虽然RIP报文很容易伪造, 但RIPv2中对MD5杂凑值的签名与认证使得欺骗的操作难度大大提高。攻击者可以伪造RIP路由更新信息,并向邻居路由器发送,伪造内容为目的网络地址、子网掩码地址与下一条地址,经过若干轮的路由更新,网络通信将面临瘫痪的风险。此外,攻击者会利用一些网络嗅探工具(如tcpdump和rprobe等),来获得远程网络的RIP路由表,通过欺骗工具(如srip)伪造RIPv1或RIPv2报文,再利用重定向工具(如fragroute)截取、修改和重写向外发送的报文,以控制网络中的报文信息。针对RIP的不安全因素,中小型网络通常采取以下的两种防范措施:(1)将路由器的某些接口配置为被动接口,配置为被动接口后,该接口停止向它所在的网络广播路由更新报文,但是允许它接收来自其他路由器的更新报文。(2)配置路由器的访问控制列表,只允许某些源IP 地址的路由更新报文进入列表。目前,大多数企业网络使用的是采用MD5安全机制的RIPv2协议, 或者是移植了安全认证机制的OSPF协议来提高安全性。3.4.2 HTTP协议1.概述超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一种承载于TCP协议之上的应用层协议,能够从服务器传输超文本到本地浏览器,是互联网上应用广泛的一种网络协议。HTTP协议是一个客户端终端和服务器端之间请求和应答的标准,具体过程:首先由客户端发起一个请求,建立到服务器指定端口(默认是80端口)的连接,HTTP服务器接收请求后,会向客户端返回一个状态,包括协议版本号、成功或错误的代码和返回内容等信息,客户端收到信息后通过浏览器显示内容,后断开连接。2.HTTP协议的安全问题及防护措施由于HTTP协议设计之初未进行安全方面的考虑,数据是直接通过明文进行传输的,不提供任何方式的数据加密,因此存在较大的安全缺陷。(1)攻击者可以通过网络嗅探工具轻易获得明文的传输数据,从而分析出特定的敏感信息,如用户的登录口令、手机号码和信用卡号码等重要资料。(2)HTTP协议是一种无状态的连接,在传输客户端请求和服务器响应时,的完整性检验就是在报文头部包含了数据传输长度,而未对传输内容进行消息完整性检测,攻击者可以轻易篡改传输数据,发动中间人攻击,因此HTTP协议不适合传输重要信息。针对HTTP协议的这些安全问题,超文本传输安全协议(Hyper Text Transfer Protocol Secure,HTTPS)在HTTP协议和TCP协议之间增加了安全层来增强安全性,安全层主要通过安全套接层(Secure Sockets Layer,SSL)及其替代协议传输层安全协议(Transport Layer Security,TLS)实现。与HTTP协议不同,SSL协议通过443端口进行传输,主要包含记录协议(SSL Record Protocol)和握手协议(SSL Handshake Protocol),记录协议确定了对传输层数据进行封装,具体实施加密解密、计算和校验等安全操作。握手协议使用X.509认证,用于验证传送数据,协商加密算法,并利用非对称加密算法进行身份认证和生成会话密钥等操作,从而对通信双方交换的数据加密,保证客户与服务器应用之间的通信不被攻击者窃听。HTTPS协议通过增加安全层,可实现双向身份认证、生成会话密钥、传输数据加密、数据完整性验证和防止数据包重放攻击等安全功能,主要改进在于使用非对称加密算法在不可信的互联网上安全传输了用来对称加密的会话密钥,从而建立了安全信道,因此很多银行和邮箱等安全级别较高的服务都使用HTTPS协议。但由于HTTPS协议会额外增加握手过程并对数据进行加密,因此会在一定程度上拖慢网页加载速度。由于SSL使用了非对称加密算法来传输会话密钥,在大多数情况下,HTTPS协议本身不会直接遭遇威胁,针对HTTPS协议的攻击方式主要是发生在SSL连接还未发生时的中间人攻击,利用SSLstrip工具可攻击从非安全连接到安全连接的通信,即从HTTP到HTTPS的过程中发起中间人攻击,模拟客户端向服务器提供证书,再从安全网站收到流量提供给客户端,进而窃取敏感信息。多数SSL加密的网站都使用名为OpenSSL的开源软件包,2014年4月曾爆发著名的心脏滴血(Heartbleed)漏洞,影响了全球绝大多数使用HTTPS协议的安全网站,目前该漏洞已被修补。3.4.3 TELNET协议1.概述远程登录(Telnet)协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议。Telnet协议可以让用户使用的本地计算机成为远程主机系统的一个终端。用户可以在本地终端上使用Telnet协议远程访问服务器并输入命令,命令会在服务器上执行,并将执行结果返回给用户。Telnet协议侧重于访问远程主机所拥有的信息资源,如果希望在本地计算机与远程主机间传递文件,那么相较而言FTP协议会更加快捷有效。Telnet协议默认采用TCP 23号端口。2.Telnet协议的安全问题及防护措施Telnet协议现今并不多用,许多服务器都禁止了Telnet服务。因为在注重安全性的现代网络环境中,我们不再假设通信网络与通信各方是可信任的,大多数Telnet会话都来自不可信的终端,这些终端与服务器之间的网络也是不可信任的。而工作在上述环境下的Telnet协议是一种明文传输协议,它明文传输用户的通信内容,包括用户名和密码。因此Telnet协议缺乏对数据保密性与完整性的保护,具体存在以下两类主要安全问题:(1)攻击者可以通过嗅探器(Sniffer)监听Telnet会话,并记录用户名和口令组合甚至所有会话内容。事实上,近年来在许多主要ISP的主机上都发现存在嗅探器。这些嗅探器捕获Internet业务流的成功率相当高,它们记录Telnet,FTP和rlogin会话的前128个字符,这足以记录目标主机的地址、登录用户名和口令。(2)除了监听Telnet会话等被动的攻击方式,攻击者还可以采取主动的攻击方式,比如从通信线路着手劫持Telnet会话并在认证完成后篡改或插入一些命令,或者在会话结束后仍然保持已建立的连接。事实上,已经有黑客团体掌握了使用TCP劫持工具的方法,他们能够在某种条件下劫持TCP会话。对黑客团体而言,Telnet和rlogin会话是极具吸引力的目标。在Telnet会话遇到上述的主动攻击时,即使用户没有采用传统的静态口令,而是采用一次性口令(One-Time Password,OTP)或称动态口令的机制(它采用密码学中的HMAC算法构造的动态口令,这部分内容将在后续章节中详细讨论)认证登录,也只能避免泄露用户名与静态口令的组合,而不能避免会话被劫持。对Telnet会话进行加密是解决上述安全问题的可行方案。但是,如果通信双方互不信任,单钥加密(在后续章节中会详细介绍)则有害无益,因为通信一方必须将密钥提供给不可信的另一方,这样会泄漏该密钥。目前存在多种Telnet的加密解决方案,比如stel,SSLtelnet,stelnet和SSH。虽然也已经出现了对Telnet加密的标准化版本,但是尚不清楚有多少用户使用它。而SSH已经成为远程登录事实上的标准协议。3.4.4 SSH协议1.概述安全壳(Secure Shell,SSH)协议是一种在不安全的网络上建立安全的远程登录或其他安全网络服务的协议,由IETF的网络工作小组(Network Working Group)所制定。SSH是建立在应用层和传输层基础上的安全协议。SSH设计的原意是为了取代原UNIX系统上的rcp,rlogin和rsh等不安全的指令程序,现被用来取代Telnet实现安全的远程登录,并可以为POP,FTP甚至PPP等网络应用程序提供一个安全的”隧道”。SSH提供多种身份认证和数据加密机制,并采用“挑战/响应”机制替代传统的主机名和口令认证。SSH对所有传输的数据进行RSA公钥加密算法进行处理,避免了如Telnet等传统的网络服务程序明文传输口令和数据带来的信息泄露隐患,同时能够有效防止“中间人攻击”(Man-in-the-middle Attack)、DNS欺骗和IP欺骗。SSH协议默认采用TCP 22端口。SSH的通信流程主要分为6步:建立TCP连接、版本协商、算法协商、密钥建立和服务器认证、用户认证、通信会话。2.SSH协议的安全问题及防护措施SSH协议主要由3层协议组成:传输层协议、用户认证协议和连接协议,其中高层协议要运行在底层协议的基础上,因此远程登录过程的安全性是由3个安全协议共同保证的。SSH协议虽然为目前来讲较可靠,专为远程登录会话和其他网络服务提供安全性的协议,但仍有一些安全性问题需要关注,并会面临多种网络攻击。(1)服务器认证。SSH协议主要面向互联网网络中主机之间的互访与信息交换,拥有一套以主机密钥为基础的完备的密钥机制。然而在某些安全性不高的网络环境中,没有可信的认证机构对服务器的真实性进行验证;同时为了用户的客户端使用方便,SSH协议提供了一个可选功能,即在客户机次连接到服务器时,可以不对服务器的主机密钥进行验证。这一功能会产生一些安全问题,虽然此时客户端与服务器之间的通信仍然是加密的,第三方不可能获得双方通信的内容,但攻击者可能假冒成真正的服务器,从而使得整个系统的安全都受到威胁。因此,在系统中,应尽量避免把该功能设为默认配置,即必须尽可能检验主机密钥,使用验证服务器正确性的方法,例如要求传送SHA-1哈希算法生成的主机公钥的MAC值等。(2)协议版本协商。SSH协议运行的步是进行服务器与客户端协议版本的协商。服务器会打开端口22与客户端建立TCP连接,之后发送的包含协议版本号的TCP报文至客户端,客户端接收报文并解析,之后返回服务器一个包含协议版本号的报文。如果双方的版本号不同,由服务器决定是否可以运行;如果可以,则双方都以较低的版本运行。如果攻击者采用有安全漏洞的版本建立连接,协商的结果是采用有安全漏洞的SSH协议版本,则可能会采取进一步的攻击。所以在SSH协议软件的配置中需考虑版本问题,对于采用的软件版本有安全问题的通信方,可以采用中断TCP连接的办法。SSH是Client /Server结构,并且有两个不兼容的版本,分别是1.x和2.x,其中1.x存在许多安全问题,已很少使用。(3)主机密钥文件安全。SSH协议在工作时,服务器的主机密钥存储在一个root用户可读的主机密钥文件中,如果该文件被窃取或篡改,则会对协议的认证机制造成严重威胁。攻击者可以利用有效的主机密钥实施一系列攻击,如假冒攻击、重放攻击和中间人攻击等。因此,主机密钥文件必须用非常安全的机制进行管理。OpenSSH是SSH的替代软件,其源代码是开放的,而且是免费的,且同时支持SSH 1.x和2.x,预计将来会有越来越多的人使用OpenSSH。现在已经有各种基于Windows的SSH版本,这些版本的功能和价格各不相同。PuTTY是一个不错的免费自由软件,该软件不需要安装就可以运行。3.4.5 DNS协议1.概述域名系统(Domain Name System,DNS)是一个分布式数据库系统,用来实现域名到IP地址或IP地址到域名的映射。在Internet上,域名与IP地址之间是一一对应的。域名虽然便于人们记忆,但机器之间只能通过IP地址互相识别,它们之间的转换工作称为域名解析,域名解析的工作需要由专门的域名解析服务器来自动完成。域名解析服务器也称作DNS服务器,DNS服务使用的是53号端口。2.DNS协议的安全问题及防护措施从安全的角度看,DNS存在一定的问题。在正常工作模式下,备份服务器可使用“区转移”来获得域名空间中所属信息的完整备份,黑客也常使用这种方式快速获得攻击目标列表。如果将前向命名和后向命名分离,则可能会带来安全问题,黑客若能够掌控部分反向映射树,就能实施欺骗,也就是说,反向记录中可能含有可信赖的那台机器的名称(伪造)。针对DNS的攻击还有破坏力更强的变种,攻击者在发起呼叫之前,会扰乱目标机器中DNS响应的高速缓存,当目标机器进行交叉检验时,验证结果似乎是成功的,但此时黑客却已经获得了访问权。另外,黑客采用呼叫响应的方式来淹没目标的DNS服务器,可使其陷入混乱,此类攻击案例十分常见,黑客只需用非常简单的程序就可以捣毁DNS的高速缓存。虽然我们无法阻止黑客对DNS的不断攻击,但是可以通过采取相应的措施加以控制,如可以对授权的第二级服务器限制 “区转移”功能的使用。DNSsec是DNS的安全扩展(Domain Name System Security Extensions),由IETF提供的一系列DNS安全认证机制组成,它可以对DNS记录进行数字签名,是消除欺骗性DNS记录的简便的方法。当某个区的所有者有不良动机时,DNSsec就会签署一个欺骗性的记录,进而可以有效防止此类欺骗。此外,对域的签名可以离线进行,从而降低了域签名私钥泄漏的风险。虽然DNSsec对付以上欺骗攻击很有效,但也有一些不足之处,所以它迄今还没有成为主流的DNS查询方式。3.4.6 SMTP协议1.概述E-mail是Internet上使用广泛的服务之一。尽管网络上有多种邮件收发服务,但常用的就是简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)[Klensin 2001]。SMTP协议属于TCP/IP协议族,SMTP服务使用的是25号端口。传统SMTP使用简单的协议传输7b ASCII文本字符,SMTP会话样本日志记录如图 3-4所示,箭头表明数据的流向。它还有一种扩展形式,称为ESMTP,允许扩展协商,包括8b的传输。这样,它就不仅能够传输二进制的数据,还可以传输非ASCII字符集。从图3-4中可以看出:远程站点sales.mymegacorp.com向本地主机fg.net发送了一封电子
图3-4 SMTP会话样本日志记录邮件。这是一个简单的协议,网络管理员和黑客都知道如何使用这些命令,他们可以手工输入这些命令。注意:主叫方在MAIL FROM命令中指明了一个返回地址。在这种情况下,本地主机没有可靠的办法来验证该返回地址的正确性。你确实不知道是谁用SMTP给你发送了邮件。如果你需要更高的可信度或保密性,就必须使用更高级的安全机制。一个组织机构至少需要一个邮件服务器。内部网络用户的邮件服务器通常设置在网关上。这样,内部的管理员只须从网关上的邮件服务器上获得他们的邮件。此网关能够保证外出的邮件头部符合标准。如果本地的邮件服务器出现问题,管理员可以方便、及时地解决邮件服务器故障。通过采用邮件网关,公司内部的每个人都可以有一个单独设立的邮箱。但是这些邮件账户列表必须严加保护,以防被人窃取而成为黑客攻击的目标。2.SMTP协议的安全问题及防护措施从安全的角度看,基本的SMTP自身是完全无害的,但是它可能成为拒绝服务攻击的发源地。攻击者可以采用拒绝服务攻击阻止用户合法使用该邮件服务器。假设攻击者能控制50台机器,每台机器都向邮件服务器发送1000个1MB大小的邮件,恐怕邮件系统很难处理数量如此之多的邮件。邮件的别名有时也会给黑客提供一些有用的信息。像下面的一些命令VRFY VRFY
通常可以把邮件别名翻译成实际的登录名称。它可能提供一些关于谁是系统管理员、攻击成功后哪个账户有价值等线索。这些信息是敏感的还是不敏感的,完全是安全策略问题。EXPN子命令扩展了邮件列表的别名。这个命令存在很大的问题,这可能会导致机密性的丧失。要避免这种风险,一种有用的做法是将暴露的邮件服务器主机的别名指向一台内部的机器,这台机器从外部是不可达的,从而消除这种扩展所带来的风险。不管运行何种邮件服务程序,应该将其配置成仅接受那些要么来自你的网络中的邮件,要么是那些发给你的用户的邮件。所谓的“开放中继”(Open Relay)就是允许在任何人之间进行邮件传递,这是非常危险的。许多网站都拒绝接收那些来自已知“开放中继”的电子邮件。SMTP攻击者(spammer)寻找SMTP服务器是为了传递他们的spam(垃圾邮件)。他们需要连接到高带宽的E-mail服务器上,将简单的信息传递到不同的地址。SMTP服务(尤其是Sendmail)是入侵系统的常用方法之一,因为它们必须完整地暴露于Internet,且邮件的路由是复杂的(暴露 复杂=弱点)。如果想支持移动用户,可以使用SMTP认证。它好与加密SMTP会话结合起来使用[Hoffman 2002]。SMTP认证的主要目的是要避免“开放中继”的存在。因为“开放中继”能吸引spammer,并导致在网站上添加一条reject all mail from this clowns信息。这种SMTP的用法有时被称为“邮件托付”(Mail Submission),以便与更通用的邮件传输相区别。3.4.7 MIME协议1.概述多用途网际邮件扩充协议(Multipurpose Internet E-mail Extension,MIME)早于1992年就应用于电子邮件系统,后来也用于浏览器。服务器通过说明发送的多媒体数据的MIME类型,来告诉浏览器该多媒体数据的类型,从而让浏览器知道接收到的哪些信息是MP3文件,哪些是Shockwave文件等。2.MIME协议的安全问题及防护措施当MIME应用于浏览器时,浏览器收到文件后,会进入插件系统进行查找,查出哪种插件可以识别并打开收到的文件。如果浏览器不确定调用哪种插件系统,它可能会告诉用户缺少某插件,或者直接选择现有的某个插件来尝试打开收到的文件。传输的信息中缺少MIME标识可能导致的情况很难估计,因为某些计算机系统可能不会出现故障,但某些计算机系统可能会因此崩溃。当MIME应用于电子邮件系统时,撇开邮件客户端软件的缺陷不谈,自动运行MIME编码消息就潜藏着巨大的风险,因为这些消息中被编码的结构信息能够指示客户端软件要采取何种行动。对于MIME还存在一种分段攻击。有一种MIME类型,它允许将单个电子邮件消息分成几段。如果消息的分段做得很巧妙,就可以用来逃避基于网关的病毒检测。当然,如果邮件客户端软件不能重组这些分段的消息,这种攻击也是无效的,然而微软的Outlook Express确实可以重组这些分段的消息。解决这个问题有两种方法,一是在网关上重组这些消息,二是拒绝那些分段发来的邮件。MIME存在的其他风险包括邮寄可执行程序和含有危险动作的PostScript文件。通过电子邮件发送可执行程序是传播蠕虫和病毒的主要根源。当然,攻击者也可能通过电子邮件发送一条含有伪造的“From:”命令行的MIME消息。许多流行的蠕虫和病毒就是采用这种方式传播的。上述这些问题和其他一些安全问题在MIME技术文档中已有详细说明。但是,很多基于Windows系统的邮件服务器几乎都忽视了这些建议。3.4.8 POP3协议1.概述邮局协议(Post Office Protocol,POP)是一个邮件接收协议,它的第3个版本称为POP3。它规定了如何将个人计算机连接到遵循POP3协议的接收邮件服务器并下载电子邮件,是Internet电子邮件的个离线协议标准。其具体过程是:电子邮件发送到邮件服务器,客户机通过邮件客户端软件连接服务器,并下载所有未阅读的电子邮件,同时删除保存在邮件服务器上的邮件(目前很多POP3服务器在邮件被下载后,并不删除邮件)。当客户机长时间保持在线时,邮件客户端软件会每隔一定的时间就获取一次新的邮件。POP3服务允许用户设置本地浏览器的接收/发送邮件服务器名称,客户机采用POP3和SMTP,用同一个或不同的邮件服务器来收发电子邮件。在TCP/IP中,POP3服务采用的TCP端口号为110。2.POP3协议的安全问题及防护措施POP3非常简单,服务器可用Perl脚本程序非常容易地实现它。正是因为它简单,所以它也非常不安全。在使用USER/PASS组合的旧版本中,用户在访问邮箱时采用的口令是以明文传输的,攻击者很容易窃取到用户名和口令,从而获取用户邮箱中的所有邮件。近开发的邮件客户端软件采用APOP命令来收取邮件,以安全地传输用户口令。APOP基于口令认证中常用的“挑战/响应”机制,对用户名和口令进行加密。但APOP对邮件内容不作保护,即使得不到用户名和口令,攻击者也很容易窃取到以明文形式传输的邮件内容。以上两种协议均将口令以明文形式存储在服务器上,一旦服务器遭到攻击,则可能造成用户名和口令的泄露。此外,攻击者也可能对认证交换的口令发起字典攻击。为保障邮件安全传输,可以利用SSL/TLS协议对传输的数据进行加密。目前,很多站点支持基于SSL/TLS的POP3服务,但有些客户端不支持这一服务。如果邮件服务器运行的是UNIX操作系统,那么POP3服务器软件在认证结束前通常以root用户权限运行,用户必须在服务器上开设一个账号。其实这很不利:一方面它增加了邮件服务器的管理难度,另一方面意味着用户可以登录到邮件服务器上。这种设计思想非常危险,因为用户可能给服务器带来非常大的安全风险。尽管如此,仍然可以使用POP3服务器收发邮件,但要保证POP3服务器仅对其用户数据库和电子邮件进行维护。3.4.9 IMAP4协议1.概述Internet消息访问协议(Internet Message Access Protocol,IMAP)是由美国华盛顿大学所研发的一种邮件获取协议,当前的权威定义是RFC3501。它的主要作用是邮件客户端(如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息并下载邮件。正如POP3是POP的第3个版本一样,IMAP4是IMAP的第4个版本,它提供了同POP3一样方便的邮件下载服务,而且在对邮箱的访问控制功能上比POP3更加强大。IMAP4运行在TCP/IP之上,使用的端口号是143。IMAP4同样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP4还有其他一些功能。首先,IMAP4提供的摘要浏览功能可让用户在阅读完所有邮件的到达时间、主题、发件人、大小等信息后才做出是否下载的决定;其次,用户还可以享受选择性下载附件服务。例如一封邮件里含有5个附件,用户可以选择下载其中的两个附件;第三,在支持离线阅读的同时,IMAP4既允许用户把邮件存储和组织在服务器上,也允许用户把邮箱作为信息存储工具。IMAP4协议适用于C/S构架中, IMAP4协议是对提供邮件访问服务且使用广泛的POP3协议的另一种选择,基本上两者都是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件。IMAP4协议支持对服务器上的邮件进行扩展性操作,IMAP4也支持ASCII码明文传输密码。与POP3不同的是,IMAP4能支持离线和在线两种模式来传输数据:①在离线方式中,客户端程序会不间断地连接服务器下载未阅读过的邮件到本地磁盘,当客户端需要接收或者发送邮件时才会与服务器建立连接,这就是离线访问模式。POP3典型地以离线方式工作。②在线模式中,一直都是由客户端程序来操作服务器上的邮件,不需要像离线模式那样把邮件下载到本地才能阅读(即使用户把邮件下载到本地,服务器上也会保存一份副本,而不会像POP协议那样把邮件删除)。用户可以通过客户端程序或者Web在线浏览邮件。一些POP3服务器也提供了在线功能,但是,它们没有达到IMAP4的浏览功能的级别。IMAP4是分布式存储邮件方式,本地磁盘上的邮件状态和服务器上的邮件状态,可能和以后再连接时不一样。此时,IMAP4的分布式存储机制解决了这个问题。IMAP4邮件的客户端软件能够记录用户在本地的操作,当连上网络后会把这些操作传送给服务器。当用户离线的时候服务器端发生的事件,服务器也会告诉客户端软件,比如有新邮件到达等,以保持服务器和客户端的同步。IMAP4协议处理线程都处于4种处理状态的其中一种。大部分的IMAP4命令都只会在某种处理状态下才有效。如果IMAP4客户端软件企图在不恰当的状态下发送命令,则服务器将返回协议错误的失败信息,如BAD或NO等。总的来说,IMAP4同时兼顾POP3和WebMail的优点,是当前一种较好的通信协议。目前支持IMAP4的免费邮件系统并不多,较常见的有777免费电子邮箱(http: // mail.777.net.cn)等。IMAP4使用户可以对服务器上的邮箱进行远程访问。它可以使客户机和服务器的状态同步,并支持多重文件夹。如同POP3一样,邮件仍然通过SMTP发送。典型的UNIX IMAP4服务器提供了与POP3服务器相同的访问方式,同时还增加了许多功能。虽然POP3服务器已能满足用户的需求,但是IMAP4服务器的应用也很有潜力。2.IMAP4协议的安全问题及防护措施IMAP4能够支持一些认证方法,并且有些方法非常安全。前面提到的“挑战/响应”机制很有用,但是它并没有达到人们预期的安全性。在“挑战/响应”机制中使用了一个共享的秘密,这个秘密信息必须存储在服务器上。如果将该秘密与域字符串进行杂凑运算,这对消除口令的等值性可能会更有利。对于IMAP4来说,的牺牲是协议的复杂度太高,它当然也需要一个更复杂的服务器。如果该服务器能够采用小而简单的认证模块恰当地实现,认证的安全性将会得到保障。但是,这需要对服务器的设计进行验证。
评论
还没有评论。