绪言 1
第1章 VPN技术及其应用 1
1.1 VPN概念 1
1.2 进一步理解VPN 2
1.3 VPN的应用前景 4
1.4 VPN的应用领域 4
1.4.1 远程访问 4
1.4.2 组建内联网 5
1.4.3 组建外联网 5
第2章 VPN技术及其管理 6
2.1 VPN技术 6
2.1.1 VPN技术概览 6
2.1.2 VPN在TCP/IP协议层的实现 8
2.1.2.1 链路层VPN 9
2.1.2.2 网络层VPN 13
2.1.2.3 传输层VPN 21
2.1.2.4 非IP VPN 21
2.2 VPN的管理问题 21
2.2.1 与技术有关的VPN管理 21
2.2.1.1 配置管理 21
2.2.1.2 运行和维护管理 25
2.2.1.3 VPN安全管理 25
2.2.1.4 性能管理 26
2.2.2 VPN实现中与密码技术有关的管理 30
2.2.2.1 VPN实现中有关加密技术及相关问题 30
2.2.2.2 VPN实现中有关密码技术的法律性问题 31
3.1.2 网络安全的风险及对抗 32
3.1.1 网络安全的意义 32
3.1 网络安全的要素 32
第3章 网络安全与VPN 32
3.2 VPN安全性分析 36
3.2.1 VPN攻击概述 36
3.2.2 密码算法安全 36
3.2.3 随机数生成器(RNG)安全 39
3.2.4 通过密钥恢复进行的攻击 39
3.2.5 互联网安全(IPSec) 40
3.2.6 点对点隧道协议(PPTP)安全 42
3.2.7 简单密钥管理协议(SKIP)安全 43
3.2.8 攻击证书机构 44
3.2.9 RADIUS攻击 45
3.2.10 Kerberos攻击 45
3.2.11 拒绝服务(DoS) 46
3.2.12 其它攻击 48
3.2.13 讨论 49
3.3 安全VPN与网络安全 50
3.3.1 问题的提出 50
3.3.2 安全VPN 50
第4章 链路层隧道封装技术 53
4.1 PPTP协议 53
4.1.1 概述 53
4.1.1.1 PPTP的设计目的 53
4.1.1.2 PPTP协议中的术语解释 53
4.1.1.3 PPTP协议综述 54
4.1.1.4 远程虚拟拨号的工作流程 54
4.1.2 协议部分 55
4.1.2.1 PPTP隧道 55
4.1.2.2 控制连接 57
4.1.2.3 呼叫 64
4.1.2.4 PPTP的有限状态模型 74
4.1.2.5 PPTP的流量控制 75
4.1.3 协议讨论 77
4.2 L2F协议 77
4.2.1 概述 77
4.2.1.1 L2F协议的设计目的 78
4.2.1.2 L2F协议的通信特征 78
4.2.1.3 L2F协议通信环境的网络拓扑 78
4.2.1.4 虚拟拨号流程 79
4.2.2 L2F协议 79
4.2.2.1 L2F封装内容 80
4.2.2.2 L2F分组的封装和传输 80
4.2.2.3 L2F头 80
4.2.2.4 密钥字段的计算 82
4.2.2.5 L2F分组 83
4.2.3 L2F虚拟拨号的消息交换 83
4.2.3.1 隧道建立 84
4.2.3.2 用户会话 86
4.2.3.3 用户数据传输 87
4.2.4 L2F管理消息类型 88
4.2.4.1 对不合法消息的处理 89
4.2.4.2 L2F-CONF选项 90
4.2.4.3 L2F-Open 91
4.2.4.4 L2F-CLOSE 93
4.2.4.5 L2F-ECHO 94
4.2.6.3 与PPTP、L2TP协议的比较 95
4.2.6.1 L2F消息的传送 95
4.2.6.2 PPP特征 95
4.2.6 对L2F的讨论 95
4.2.5 L2F的流量控制 95
4.2.4.6 L2F-ECHO-RESP 95
4.3 L2TP协议 96
4.3.1 概述 96
4.3.1.1 L2TP协议的设计目的 96
4.3.1.2 使用L2TP进行虚拟拨号 97
4.3.2 L2TP协议部分 99
4.3.2.1 L2TP在协议栈中的位置 99
4.3.2.2 L2TP的数据封装 100
4.3.2.3 L2TP控制消息 102
4.3.2.4 L2TP控制连接 108
4.3.2.5 L2TP呼叫 112
4.3.2.6 L2TP的连接状态机 120
4.3.2.7 L2TP的流量控制机制 121
4.3.3 L2TP协议的讨论 123
4.3.3.1 相对标准因特网访问的优势 124
4.3.3.2 L2TP的安全性考察 124
4.3.3.3 L2TP带来的系统开销 125
第5章 链路层密码技术 126
5.1 MPPE协议 126
5.1.1 CCP协议简介 126
5.1.2 MPPE协议 128
5.1.2.1 CCP对MPPE协议的协商 128
5.1.2.2 MPPE分组 130
5.1.2.3 MPPE密码同步 131
5.1.3 MPPE协议的讨论 134
5.2 DESE协议 135
5.2.1 DESE协议的设计目的 135
5.2.2 PPP ECP协议简介 135
5.2.3.1 DESE密钥的生成 136
5.2.3.2 DESE协议的协商和启动 136
5.2.3 DESE协议 136
5.2.3.3 DESE保护的数据范围 137
5.2.3.4 数据填充 138
5.2.3.5 生成密文 138
5.2.3.6 解密密文 139
5.2.3.7 分组丢失恢复 139
5.2.3.8 关于MRU考虑 139
5.2.4 DESE讨论 140
第6章 网络层隧道技术 141
6.1 GRE封装 141
6.1.1 概述 141
6.1.2 GRE封装 141
6.1.2.1 GRE封装在协议栈中的层次 141
6.1.2.2 GRE头 142
6.1.2.3 关于SRE项 143
6.1.2.4 GRE分组的转发 144
6.1.3 实例 144
6.1.3.1 Ipv4作为递交分组 144
6.1.3.2 IP作为载荷协议 144
6.1.4 协议讨论 145
6.2 IP/IP封装 145
6.2.1 概述 145
6.2.2 常用术语说明 146
6.2.3 协议设计动机 146
6.2.4 IP/IP封装 146
6.2.5 隧道管理 147
6.2.5.1 对隧道内的ICMP报文的处理 147
6.2.5.2 利用软状态维护隧道 148
6.2.5.4 拥塞管理 149
6.2.5.3 隧道MTU探测 149
6.2.5 IP/IP的安全性考虑 150
6.3 IPSec协议 150
6.3.1 概述 150
6.3.2 设计IPSec的目的 150
6.3.3 IPSec的组成部分 151
6.3.4 ESP机制 152
6.3.4.1 ESP封装的两种模式 152
6.3.4.2 ESP头在IP分组中的插入位置 154
6.3.4.3 ESP载荷格式 155
6.3.4.4 对分组的ESP处理 158
6.3.4.5 ESP的滑动窗口机制 161
6.3.4.6 ESP协议实现的一致性要求 162
6.3.5.1 AH封装的两种模式 163
6.3.5 AH机制 163
6.3.5.2 AH头在分组中的位置 164
6.3.5.3 AH载荷格式 165
6.3.5.4 对分组的AH处理 167
6.3.5.5 AH的滑动窗口机制 168
6.3.5.6 AH实施的一致性要求 168
6.3.6 密钥协商部分 168
6.3.6.1 密钥协商与密钥管理 168
6.3.6.2 当前密钥管理协议简介 168
6.3.6.3 ISAKMP及IKE 169
6.3.7 IKE交换的实例 178
6.3.8 IPSec SA的安装和调用 179
6.3.9 IPSec协议探讨 179
6.3.9.1 IKE的优化 179
6.3.9.3 关于IPSec安全协议的多协议支持 180
6.3.9.4 关于IPSec中的动态地址分配 180
6.3.9.2 关于IKE的鉴别机制的讨论 180
6.3.10 IPSec与其他协议的结合使用 181
6.4 IPSec和L2TP的结合使用 181
6.4.1 概述 181
6.4.2 传统远程访问配置与安全脆弱性 181
6.4.2.1 传统远程访问配置 181
6.4.2.2 L2TP隧道通信的安全脆弱性 182
6.4.2.3 L2TP安全协议应达到的安全要求 182
6.4.3 使用IPSec保护L2TP通信 182
6.4.3.1 IPSec在L2TP隧道封装中的集成 183
6.4.3.2 分组安全处理流程 184
6.4.4 IPSec与PPP ECP、CCP的协调 186
6.4.4.1 强制模式 186
6.4.4.2 自愿模式 186
6.4.5 IPSec与L2TP的协调实施 187
6.4.6 安全协议的讨论 189
第7章 鉴别协议部分 190
7.1 CHAP协议 190
7.1.1 概述 190
7.1.2 CHAP协议的协商 190
7.1.3 CHAP鉴别流程 191
7.1.4 CHAP分组格式 191
7.1.4.1 质询分组 192
7.1.4.2 鉴别应答 193
7.1.4.3 鉴别成功分组 194
7.1.4.4 鉴别失败分组 194
7.1.5 CHAP分组的传输 195
7.1.6 CHAP协议的讨论 195
7.1.6.1 CHAP协议的实现要求 195
7.1.6.2 CHAP的优势与不足 195
7.2.2.1 S/Key的三个组成部分 196
7.2.2 S/Key协议 196
7.2 S/Key 196
7.2.1 背景描述 196
7.2.2.2 S/Key一次性口令的生成 197
7.2.3 S/Key与一次性口令系统(OTP)的比较 199
7.2.4 协议讨论: 200
7.3 EAP协议 200
7.3.1 概述 200
7.3.2 EAP协议的协商 200
7.3.3 EAP分组的传输 201
7.3.4 EAP协议 201
7.3.4.1 EAP鉴别流程 201
7.3.4.2 EAP分组格式 202
7.3.5 协议讨论 206
7.3.5.1 协议实现要求 206
7.4.1 协议设计背景: 207
7.4.2 RADIUS鉴别协议简介 207
7.3.5.2 协议安全性讨论 207
7.4 RADIUS鉴别协议 207
7.4.3 RADIUS鉴别协议 208
7.4.3.1 RADIUS消息的传输 208
7.4.3.2 RADIUS实现身份鉴别的流程 209
7.4.3.3 RADIUS鉴别协议描述 210
7.4.4 几个实例 221
7.4.4.1 例1 221
7.4.4.2 例2 222
7.4.5 安全性讨论 223
附录1 术语 224
附录2 缩略语 242
附录3 参考文献 257