1
计算机系统安全
第十二章
IP安全
2
Internet安全协议
IETF的各个工作小组从不同角度解决互连网
安全问题,形成一些 RFC和草案:
? DNSSEC工作组 RFC2137,2535,2541
研究 DNS安全及 DNS动态更新
? WTS(Web Transaction Security)工作组
建立 SHTTP 认证、完整性保护; RFC2084
? SECSH工作组 安全 Shell
? IPSEC工作组
? TLS工作组 (SSL协议)
3
IP安全面临的问题
一,IP安全概述
伪造 IP包的地址;修改其内容
重播以前的包;拦截并查看包的内容
如何确保收到的 IP数据报:
1) 来自原先要求的发送方 (IP头内的源地址 );
2) 包含的是发送方当初放在其中的原始数据;
3) 原始数据在传输中途未被其它人看过 。
4
IPSec协议
一,IP安全概述
IP安全是整个 TCP/IP安全的基础与核心 。 它可对
上层的各种应用服务提供透明的安全保护 。 IPv4
没有考虑安全性, 缺乏对通信双方身份的认证,
缺乏对传输数据的保护, 并且容易受窃听, IP地
址欺骗等攻击 。 IPSec工作组于 1994年成立,
1995年 8月公布了一系列建议标准:
RFC2401,IP安全结构 RFC2406,AH;
RFC2406,ESP RFC2409,IKE
RFC2403,HMAC-MD5-96 RFC2404:HMAC-SHA-96
5
IPSec概述
一,IP安全概述
IPSec可保障主机之间, 网络安全网关 ( 如路
由器或防火墙 ) 之间或主机与安全网关之间
的数据包的安全 。
由于受 IPSec保护的数据报本身不过是另一种
形式的 IP包, 所以完全可以嵌套提供安全服
务, 同时在主机之间提供像端到端这样的认
证, 并通过一个隧道, 将那些受 IPSec保护的
数据传送出去 ( 隧道本身也通过 IPSec受到安
全网关的保护 ) 。
6
IPSec的协议
一,IP安全概述
对 IP数据报或上层协议进行保护的方法是使
用某种 IPSec协议:, 封装安全载荷 ( ESP:
Encapsulating Security Payload),或者, 认证
头 ( AH,Authentication Header),。
AH可证明数据的起源地, 保障数据的完整性,
防止相同数据包的重播 。
ESP除具有 AH的所有能力之外, 还可选择保
障数据的机密性, 以及为数据流提供有限的
机密性保障 。
7
IPSec的安全业务
AH ESP
(加密 )
ESP
(加密并认证 )
访问控制 √ √ √
无连接完整性 √ √
数据来源认证 √ √
对重放数据的
拒绝
√ √ √
保密性 √ √
受限业务流的
保密性
√ √
8
密钥管理协议 IKE
一,IP安全概述
密钥管理协议 IKE( Internet Key Exchange)
用于动态地认证 IPSec参与各方的身份, 协商
安全服务以及生成共享密钥等 。 IPSec提供的
安全服务需要用到共享密钥, 它既可用于保
障数据的机密性, 亦可用于数据完整性 ( 消
息认证码 MAC), 或者同时应用于两者 。
IPSec的运算速度必须够快, 而现有公共密钥
技术 ( 如 RSA或 DSS) 的速度均不够快 。 公
共密钥技术仍然限于在密钥交换期间完成一
些初始的认证工作 。
9
IPSec协议组成
二、结构
安全关联 SA ( Security Association)
安全策略数据库 SPD (Security Policy Database)
认证头 AH ( Authentication Head )
封装安全载荷 ESP(Encapsulation Security Payload)
IKE( Internet密钥交换 )
ISAKMP/Oakley( 密钥管理协议 )
ISAKMP,Internet Security Association and Key
Management Protocol
Oakley,是 D-H密钥交换协议的改进
10
结构图
二、结构
11
IPSec实施
二、结构
IPSec既可在终端系统上实现, 亦可在某种安全
网关上实现 ( 如路由器及防火墙 ) 。
在主机中实施可以有两种方式:
1,与操作系统的集成实施 。
2,在协议堆栈中的网络层和数据链路层之间
实施 。
12
操作系统集成
二、结构
IPSec作为网络层协议, 可在网络层实现, 由 IP
层的服务构建 IP头 。 这个模型与其它网络层协
议 ( 比如 ICMP) 的实施等同 。
应用
TCP/UDP
IP+ IP sec
数据链路层
13
在协议堆栈中实施
二、结构
应用
TCP/UDP
IP
IP sec
数据链路层
14
在主机实施的特点
二、结构
a,保证端到端的安全性
b,能够实现所有的 IPSEC安全模式
c,能够对每个数据流提供安全保障
d,在建立 IPSEC的过程中, 能够维持用户身
份的认证 。
15
在路由器中实施
二、结构
如果在路由器中实施, 可在网络的一部分中
对传输的数据包进行安全保护 。
例如某公司只打算对传给地理位置分散的那
些部门的数据实施保护, 而且只在数据流经
Internet的时候进行保护, 从而构建自己的
VPN或者内联网 。 IPSec实施方案通过对数据
包进行, 隧道传输,, 从而实现了对它们的
保护 。
16
IPSec两种不同的使用模式
二、结构
传送模式:保护上层协议;用于两主机之间;
隧道模式:保护整个 IP数据报;当一方为网关时 。
原始 IP包,IP头 + TCP头 + 数据
传送模式,IP头 + IPSec头 + TCP头 + 数据
隧道模式:新 IP头 + IPSec头 + IP头 + TCP头 +
数据
17
安全关联
二、结构
为正确封装及提取 IPSec数据包, 要将安全服务,
密钥与要保护的通信数据联系到一起;同时要将
远程通信实体与要交换密钥的 IPSec数据传输联
系起来 。 这样的方案称为安全关联 ( Security
Association,SA) 。
SA是构成 IPSec的基础 。 它由两个通信实体协商
建立 。 它们决定了用来保护数据包安全的 IPSec
协议, 密钥以及密钥的有效存在时间等 。 任何
IPSec实施方案都会构建一个 SA数据库 ( SAD),
由它来维护保障数据包安全的 SA记录 。
18
安全关联
二、结构
SA是单向进行的, 它仅朝一个方向定义安全服务,
要么对通信实体收到的包进行, 进入, 保护, 要么
对实体外发的包进行, 外出, 保护 。 SA由一个三元
组唯一标识:
1) 安全参数索引 ( SPI), 存在于 IPSec协议头内;
2) 安全协议 ( AH,ESP) 标识符;
3) 目标 IP地址:它同时决定了关联方向 。
通常 SA是以成对的形式存在的, 每个朝一个方向 。
既可人工创建它, 亦可采用动态创建方式 。 SA驻留
在, 安全关联数据库 ( SAD),内 。
19
SA创建
二、结构
若用人工方式加以创建, SA便会一直存在下
去, 除非再用人工方式将其删除 。
若用动态方式创建, 则 SA有一个存活时间与
其关联在一起 。 存活时间 ( TTL) 由 IPSec通
信双方在密钥管理协议中协商 。 TTL非常重
要, 因为受一个密钥保护的通信量必须加以
谨慎地管理 。 若超时使用一个密钥, 会为攻
击者侵入系统提供更多的机会 。
20
安全关联数据库 SAD
SAD用于定义每个 SA的参数值:
? 顺序号:以 AH/ESP报头中 32位 bit值表示
? 顺序号溢出标记:防止溢出数据报的传送
? 反重放窗口:收到的 AH/ESP数据报是否重放
? AH/ESP信息:认证 /加密算法、密钥、有效期
? SA有效期:该时间间隔之后,SA结束 /被替代
? IPSec协议模式:传输模式 /隧道模式
? 路径最大传输单元:最大数据报长度 (不分段 )
21
安全策略数据库 SPD
二、结构
SPD ( Security Policy Database) 定义了对所有出
/入业务应采取的安全策略, 为 IP数据项提供什么
服务以及以什么方式提供 。 对所有出 /入包括非
Ipsec业务的处理必须咨询 SPD,处理有三种可能:
1) 丢弃:不允许在此主机上存在, 或不允许通
过此网关 。
2) 绕过 Ipsec,允许通过而无需 Ipsec保护
3) 采用 Ipsec,对这种业务流, SPD要指明提供
的安全服务, 采用的协议及使用的算法等 。
22
安全策略
二、结构
用户可以根据自己的要求, 对不同的通信设定
不同级别的安全策略 。
例:在一个网络安全网关上制订 IPSec策略, 对
本地子网与远程网关的子网间通信数据采用 DES
加密, 并用 HMAC-MD5进行认证;对从远程子
网发给一个邮件服务器的所有 Telnet数据用 3DES
进行加密, 同时用 HMAC-SHA进行认证;对于
需要加密的, 发给另一个服务器的所有 Web通信
数据, 则用 IDEA满足其加密要求, 同时用
HMAC-RIPEMD进行认证 。
23
安全参数索引( SPI )
二、结构
SPI长度为 32位, 用于唯一地标识出接收端上的一个
SA。 作为两个主机秘密通信的协定, SA决定了密钥
和加密算法等参数 。 必须采用某种机制, 让通信源指
出用哪个 SA来保护数据包;而对通信的目的地, 则需
指出用哪个 SA来检查收到的包是否安全 。 SPI是个任
意数, 一般是在 IKE交换过程中由目标主机选定的 。
SPI被当作 AH和 ESP头的一部分传送 。 接收主机使用
<SPI,DST,Protocol>这个字元组来唯一地标定 SA
( DST是 IP头中的目标地址;而 protocol代表协议是
AH或 ESP) 。
24
消息认证码 MAC
二、结构
MAC,使用一个保密密钥生成固定大小的小数
据块,并加入到消息中,称 MAC,或加密和。
用户 A和用户 B,共有保密密钥 K,消息 M,
MAC=CK(M)
1、接收者可以确信消息 M未被改变。
2、接收者可以确信消息来自所声称的发送者;
3、如果消息中包含顺序码, 则接收者可以保证
消息的正常顺序;
MAC函数类似于加密函数,但不需要可逆性。
因此在数学上比加密算法被攻击的弱点要少。
25
MAC的基本应用方式
二、结构
1)消息认证
A?B,M||CK(M)
2)消息认证 +保密
A?B,EK2[ M||CK1(M)]
3)消息认证 +保密
A?B,EK2 [M]||CK1(EK2 [M])
26
封装安全载荷 概述
三、封装安全载荷
ESP( Encapsulating Security Payload) 属于
IPSec的一种协议, 可用于确保 IP数据包的机密
性, 数据的完整性以及对数据源的身份认证 。
此外, 它也要负责对重播攻击的抵抗 。
具体做法是在 IP头之后, 需要保护的数据之前,
插入一个新头 —— ESP头 。 受保护的数据可以
是一个上层协议, 或者是整个 IP数据报 。 最后,
还要在最后追加一个 ESP尾 。 ESP是一种新的 IP
协议, 对 ESP数据包的标识是通过 IP头的协议
字段来进行的 。
27
ESP原理
ESP保护示意图
IP头 ESP尾ESP头 受保护数据
验证保护
加密保护
28
ESP格式
三、封装安全载荷
SPI( 安全参数索引)
序列号
初始化向量
受保护的数据
填充项 填充项长度 下一个头
认证数据
29
ESP格式
三、封装安全载荷
作为 IPSec头, ESP头中会包含一个 SPI字段 。
它和 IP头之前的目标地址以及协议结合在一
起, 用来标识用于处理数据包的特定的 SA。
通过序列号, ESP具有了抵抗重播攻击的能
力 。 序列号是一个不重复的, 单向递增的,
由发送端插在 ESP头的一个号码 。
ESP保护的实际数据包含在载荷数据字段中 。
因此, 这个字段的长度由数据长度决定 。 某
些加密算法要用到初始化向量 ( IV), 它也
受到保护 。
30
隧道模式
三、封装安全载荷
隧道模式下受 ESP保护的一个 IP包, 下一个头是 TCP
加密
认证
新 IP头
SPI
序列号
初始化向量
IP头
TCP头
数据
填充项 填充项长 度 下一个头
认证数据 ICV
31
传输模式
三、封装安全载荷
IP头
SPI
序列号
初始化向量
TCP头
数据
填充项 填充项长度 下一个头
认证数据
32
加密与认证
三、封装安全载荷
由于 ESP同时提供了机密性以及身份认证机制,
所以在其 SA中必须同时定义两套算法 —— 用
来确保机密性的算法叫作 cipher( 加密器 ),
而负责身份认证的叫作 authenticator( 认证
器 ) 。 每个 ESP SA都至少有一个加密器和一
个认证器 。
33
处理外出数据包:传送模式
三、封装安全载荷
对在 IPv4上运行的传送模式应用来说, ESP头跟在
IP头后, IP头的协议字段被复制到 ESP头的, 下一
个头, 字段中, ESP头的其余字段则被填满 — SPI字
段分配到的是来自 SAD的, 用来对这个包进行处理
的特定 SA的 SPI; 填充序列号字段的是序列中的下
一个值;填充数据会被插入, 其值被分配;同时分
配的还有填充长度值 。 随后, IP头的协议字段得到
的是 ESP的值, 50。
除了头插入位置不同之外, IPv6处理规则基本上类
似于 IPv4。 ESP头可插在任意一个扩展头之后 。
34
处理外出数据包:隧道模式
三、封装安全载荷
对隧道模式应用来说, ESP头是加在 IP包前面
的 。 如果封装的是一个 IPv4包, 那么 ESP头的
,下一个头, 字段分配到值 4;如果封装的是
一个 IPv6包, 则分配到值 41。 其他字段的填
充方式和在传送模式中一样 。 随后, 在 ESP头
的前面新增了一个 IP头, 并对相应的字段进
行填充 ( 赋值 ) — 源地址对应于应用 ESP的那
个设备本身;目标地址取自于用来应用 ESP的
SA; 协议设为 50;其他字段的值则参照本地
的 IP处理加以填充 。
35
加密认证
三、封装安全载荷
不管哪种模式下, 接下去的步骤都是相同的 。
从恰当的 SA中选择加密器 ( 加密算法 ), 对
包进行加密 ( 从载荷数据的开头, 一直到
,下一个头, 字段 ) 。 随后, 使用恰当的 SA
中的认证器, 对包进行认证 ( 自 ESP头开始,
中间经过加密的密文, 一直到 ESP尾 ) 。 随后,
将认证器的结果插入 ESP尾的, 认证数据, 字
段中 。
对外出数据包进行处理的最后一步是:重新
计算位于 ESP前面的 IP头的校验和 。
36
处理进入数据包
三、封装安全载荷
接收端在收到一个 ESP包之后, 若不对这个包
进行处理, 就无法得知它究竟处于隧道模式,
还是传送模式 。 根据对这个包进行处理的 SA,
便可知道它到底处在什么模式下 。 但除非完
成了对它的解密, 实际上不可能知道 ESP保护
的是什么 。
如果收到的 IPSec包是一个分段, 必须把它保
留下来, 直到这个包的其他部分收完为止 。
37
处理进入数据包
三、封装安全载荷
收到 ESP包后, 首先要检查处理这个包的 SA是
否存在 —— 这是基本的 IPSec要求, 而不是
ESP专有的 。 如果没有 SA,这个包就会被丢弃 。
一旦认证通过了一个有效的 SA,就可用它开
始对包的处理 。
首先检查序列号 。
由于 ESP身份认证密文而不是明文, 接下来进
行的便是对这个包进行身份认证 。
38
处理进入数据包
三、封装安全载荷
然后是解密 。 通过取自 SA的密钥和密码算法,
就可对 ESP包进行解密, 这个 ESP包从载荷数
据开始到下一个头结束 。
传送身份认证和解密检查成功之后, 就可对
结果数据包进行初步的有效性检验 。 如果用
来处理这个数据包的 SA表明在某一特定模式
下 —— 要么是隧道模式, 要么是传送模式 —
只能处理 ESP包, 那么还必须检验这个包的适
用性 。 如果这个包与要求的模式不符, 就必
须把它丢弃 。
39
处理进入数据包
三、封装安全载荷
对于传送模式, 上层协议头与 IP头是同步的, ESP头的
下一个头字段被复制到 IP头的协议字段中, 并计算出
一个新的 IP校验和;
对于隧道模式, 就抛开外部 IP头和 ESP头 —— 我们需要
的是这个解开封装的包 。
为进行下一步的处理, 可将一个经过改造和认证的包
转发出去 。 如果它是一个传送模式包, 就会转发到一
个高一级的协议层 ( 比如 TCP或 UDP), 由它们对这个
包进行处理;如果它是一个隧道模式包, 就会重新插
入到 IP处理流中, 继续转发到它的最终目的地 。
40
认证头概述
四、认证头
认证头 ( AuthenticationHeader,AH) 是一
种 IPSec协议, 用于为 IP提供数据完整性, 数
据原始身份认证和一些可选的, 有限的抗重
播服务 。 它定义在 RFC2402中 。 除了机密性之
外, AH提供 ESP能够提供的一切东西 。 不需要
加密算法 ( 加密器 ), 而需要一个认证器
( 身份认证器 ) 。 AH定义保护方法, 头的位
置, 身份认证的覆盖范围以及输出和输入处
理规则, 但没有对所用的身份认证算法进行
定义 。
41
认证头概述
认证头的保护
IP头 AH头 受保护数据
验证保护
42
认证头概述
四、认证头
AH是另一个 IPSec协议 。 在 IPv4中数据报的协议字段
值是 51,表明 IP头之后是一个 AH头 。 在 IPv6中, 下一
个头字段的值由扩展头的存在来决定 。 如果没有扩展
头, 下一个头字段将是 51。 如果 AH头之前有扩展头,
紧靠在 AH头前面的扩展头中的下一个头字段就会被设
成 51。 将 AH头插入 IPv6的规则与 ESP插入规则类似 。
AH和 ESP保护的数据相同时, AH头会一直插在 ESP头之
后 。 AH头比 ESP头简单, 因为它不提供机密性 。 由于
不需要填充和一个填充长度指示器, 因此也不存在尾 。
另外, 也不需要一个初始化向量 。
43
认证头格式
四、认证头
AH格式
下一个头 载荷长度 保留
SPI
序列号
认证数据
44
认证头格式
四、认证头
下一头字段表示 AH头之后是什么 。 在传送模式
下, 将是处于保护中的上层协议的值, 如 UDP或
TCP协议的值 。 在隧道模式下, 值为 4,表示 IP-
in-IP( IPv4) 封装或 IPv6封装的 41这个值 。
载荷长度字段表示采用 32位的字减 2表示头本身
的长度 。 AH头是一个 IPv6扩展头, 按照 RFC2460,
它的长度是从 64位字表示的头长度中减去一个
64位字而来的 。 但 AH采用 32位字来计算, 因此,
我们减去两个 32位字 ( 或一个 64位字 ) 。 没有
使用预留字段时, 必须将它设成 0。
45
认证头格式
四、认证头
SPI和外部 IP头的目的地址一起, 用于识别对这
个包进行身份认证的 SA。
序列号是一个单向递增的计算器, 等同于 ESP中
使用的序列号 。 序列号提供抗重播功能 。
认证数据字段长度不固定, 其中包括完整性校
检的结果 。 AH没有定义身份认证器, 但有两个
强制实施身份认证器,HMAC-SHA-96和 HMAC-
MD5-96。 和 ESP一样, 输出结果被切短成 96个位 。
同时, 也没有针对 AH的使用, 定义公共密钥身
份认证算法 ( 比如 RSA和 DDS) 。
46
模式
四、认证头
和 ESP一样, AH可用于传送模式和隧道模式 。
不同之处在于它保护的数据要么是一个上层
协议, 要么就是一个完整的 IP数据报 。 任何
一种情况下, AH都要对外部 IP头的固有部分
进行身份认证 。
47
传送模式
四、认证头
AH用于传送模式时, 保护的是端到端通信 。
通信终点必须是 IPSec终点 。 下一个头是 TCP。
IP头
下一
个头
载荷长度 保留
SPI
序列号
认证数据
数据
已认证
48
隧道模式
四、认证头
AH用于隧道模式时, 它将自己保护的数
据报封装起来, 另外, 在 AH头之前, 另添了
一个 IP头 。, 里面的, IP数据报中包含了通
信的原始寻址, 而, 外面的, IP数据报则包
含了 IPSec端点的地址 。 隧道模式可用来替换
端对端安全服务的传送模式, AH只用于保证
收到的数据包在传输过程中不会被修改, 保
证由要求发送它的当事人将它发送出去, 以
及保证它是一个新的非重播的数据包 。
49
隧道模式
四、认证头
IP头
下一
个头
载荷长度 保留
SPI
序列号
认证数据
IP头
数据
已认证
下一个头是 IP-in-IP
50
AH处理
四、认证头
外出数据包与一个 SPD条目 ( 表示采用 AH保护 )
匹配时, 要求 SAD查看是否存在一个合适的 SA。
如果没有, 可用 IKE动态地建立一个 。 如果有,
就将 AH应用到这个与之相符的数据包, 该数
据包在 SPD条目指定的那个模式中 。 如果它是
一束 SPD,应用顺序就由它所涉及的协议而定 。
AH始终保护的是 ESP,别无它物 。
51
输出处理
四、认证头
创建一个外出 SA时可通过手工或 IKE将序列号计
算器初始化成 0。 在利用这个 SA构建一个 AH头之
前, 计算器就开始递增 。 这样保证了每个 AH头中
的序列号都是一个独一无二的, 非零的和单向递
增的数 。
AH头的其余字段都将填满恰当的值 。 SPI字段分
配的值是取自 SA的 SPI; 下一个头字段分配的是
跟在 AH头之后的数据类型值;载荷长度分配的是
,32位字减二, ;, 身份认证数据, 字段设成 0。
52
输出处理
四、认证头
和 ESP不一样, AH将安全保护扩展到外部 IP头的
原有的或预计有的字段 。 因此, 要将完整性检
查值 (ICV)之前的不定字段调成零 。 对没有包含
在身份认证 ICV中的 IPv4头来说, 它的不定字段
包括 Type of service( 服务类型 ), Flags( 标
志 ), Fragment offset( 分段偏移 ),Time to
live(存活时间 )和 Header checksum(头校验和 )。
对 IPv4选项或 IPv6扩展头来说, 如果它们是固
定的或预定的, 都会包含在 ICV计算之中 。 否则,
必需在计算 ICV之前, 把它们调成零 。
53
输出处理
四、认证头
身份认证可能要求进行适当的填充 。 对有些 MAC来说,
比如 DES-CBCMAC,要求在其上面应用 MAC的数据必须是
算法的块尺寸的倍数 。 因此, 必须进行填充, 以便正
确地使用 MAC( 注,两种强制算法均无此要求 ) 。 这个
填充项是隐式添加的 。 它必须一概为零, 其大小不包
括在载荷长度中, 并且不随数据包一起传送 。
对于 IPv4,AH头必须是 32个字节的一倍, IPv6则是 64
个字节的一倍 。 若 MAC的输出和这项要求不符, 就必须
添加 AH头 。 对于填充项的值, 必须包括在 ICV计算中,
并在载荷长度中反映出填充项的大小 。 如果强制实施
身份认证程序正确对齐了, 在用 HMAC-MD5-96或 HMAC-
SHA-96时, 就不再需要填充项 。
54
输出处理
四、认证头
通过把密钥从 SA和整个 IP包 ( 包括 AH头 ) 传到
特定的算法 ( 它被认作 SA中的身份认证程序 )
这一方式, 对 ICV进行计算 。 由于不定字段已设
成零, 不会包括在 ICV计算中 。 接下来, ICV值
被复制到 AH的, 身份认证数据, 字段中, IP头
中的不定字段就可根据 IP处理的不同得以填充 。
现在, AH处理结束, AH保护的 IP包可以输出了 。
根据包的大小, 在放到线上之前, 可将它分段,
或在两个 IPSec同级之间的传送过程中, 由路由
器进行分段 。
55
输入处理
四、认证头
如果一个受安全保护的包在被收到之前分成了几
段, 就要在 AH输入处理前对这些分段进行重组 。
接收 IPSec包首先要找出用来保护这个包的 SA。
然后, IP头的目的地址, 特定协议 ( 这里是 51)
和取自 AH头的 SPI这三者再对 SA进行识别 。 如果
没有找到合适的 SA,这个包就会被丢弃 。
找到 SA之后, 进行序列号检查 。 抗重播检查会决
定这个包是新收的还是以前收到的 。 如果检查失
败, 这个包就会被丢弃 。
56
输入处理
四、认证头
现在必须检查完整性检查值 ( ICV) 了 。 对整
个数据包应用, 身份认证器, 算法, 并将获
得的摘要同保存下来的 ICV值进行比较 。 如相
符, IP包就通过了身份认证;如不符, 便丢
弃该包 。
57
Internet密钥交换
五,Internet密钥交换
IKE的用途是在 IPSec通信双方之间, 建立起共
享安全参数及认证过的密钥 ( 即建立, 安全关
联, ) 。
IKE协议是 Oakley和 SKEME协议的混合, 并在由
ISAKMP规定的一个框架内运作 。 ISAKMP是
,Internet安全关联和密钥管理协议, 的简称,
即 Internet Security Association and Key
Management Protocol。 ISAKMP定义了包格式,
重发计数器以及消息构建要求 。 它定义了整套
加密通信语言 。
58
Internet密钥交换
IKE的用途
Oakley和 SKEME定义了通信双方建立共享密
钥的步骤 。 IKE利用 ISAKMP语言描述这些步
骤以及其它信息交换措施 。
59
建立 IKE的两个阶段
五,Internet密钥交换
阶段 1:协商创建并认证一个通信信道 (IKE
SA),为双方下一步通信提供保密, 完整以及
数据源认证服务 。 本阶段有两种运行模式:
Main mode和 aggressive模式 。
阶段 2:对 Sa可提供的服务及所需密钥进行协
商 。 IKE支持四种认证方式:基于数字签名的
认证, 两种基于公钥的认证, 基于共享密钥
的认证 。 IKE使用 UDP协议和 500端口 。
60
六,IPSec的应用
? IPSec是 IPv6必须支持的功能,它与防火墙、安全
网关结合可形成各种安全解决方案;与其他协议
相结合将使安全性更高;能使企业将其 Extranet
扩展到贸易伙伴进行电子商务,而不用担心安全
协议的兼容性。
? IPSec的典型应用是构建虚拟专用网 VPN
VPN通过保密隧道在非信任公共网络上产生安全私
有连接。它能把远程用户、分支机构和商业伙伴
连接组成一个自治网络,达到与专用网同样的安
全、可靠、可扩充、可管理、服务质量。 IPSec为
VPN的互操作性、管理、通信提供了有力手段。
计算机系统安全
第十二章
IP安全
2
Internet安全协议
IETF的各个工作小组从不同角度解决互连网
安全问题,形成一些 RFC和草案:
? DNSSEC工作组 RFC2137,2535,2541
研究 DNS安全及 DNS动态更新
? WTS(Web Transaction Security)工作组
建立 SHTTP 认证、完整性保护; RFC2084
? SECSH工作组 安全 Shell
? IPSEC工作组
? TLS工作组 (SSL协议)
3
IP安全面临的问题
一,IP安全概述
伪造 IP包的地址;修改其内容
重播以前的包;拦截并查看包的内容
如何确保收到的 IP数据报:
1) 来自原先要求的发送方 (IP头内的源地址 );
2) 包含的是发送方当初放在其中的原始数据;
3) 原始数据在传输中途未被其它人看过 。
4
IPSec协议
一,IP安全概述
IP安全是整个 TCP/IP安全的基础与核心 。 它可对
上层的各种应用服务提供透明的安全保护 。 IPv4
没有考虑安全性, 缺乏对通信双方身份的认证,
缺乏对传输数据的保护, 并且容易受窃听, IP地
址欺骗等攻击 。 IPSec工作组于 1994年成立,
1995年 8月公布了一系列建议标准:
RFC2401,IP安全结构 RFC2406,AH;
RFC2406,ESP RFC2409,IKE
RFC2403,HMAC-MD5-96 RFC2404:HMAC-SHA-96
5
IPSec概述
一,IP安全概述
IPSec可保障主机之间, 网络安全网关 ( 如路
由器或防火墙 ) 之间或主机与安全网关之间
的数据包的安全 。
由于受 IPSec保护的数据报本身不过是另一种
形式的 IP包, 所以完全可以嵌套提供安全服
务, 同时在主机之间提供像端到端这样的认
证, 并通过一个隧道, 将那些受 IPSec保护的
数据传送出去 ( 隧道本身也通过 IPSec受到安
全网关的保护 ) 。
6
IPSec的协议
一,IP安全概述
对 IP数据报或上层协议进行保护的方法是使
用某种 IPSec协议:, 封装安全载荷 ( ESP:
Encapsulating Security Payload),或者, 认证
头 ( AH,Authentication Header),。
AH可证明数据的起源地, 保障数据的完整性,
防止相同数据包的重播 。
ESP除具有 AH的所有能力之外, 还可选择保
障数据的机密性, 以及为数据流提供有限的
机密性保障 。
7
IPSec的安全业务
AH ESP
(加密 )
ESP
(加密并认证 )
访问控制 √ √ √
无连接完整性 √ √
数据来源认证 √ √
对重放数据的
拒绝
√ √ √
保密性 √ √
受限业务流的
保密性
√ √
8
密钥管理协议 IKE
一,IP安全概述
密钥管理协议 IKE( Internet Key Exchange)
用于动态地认证 IPSec参与各方的身份, 协商
安全服务以及生成共享密钥等 。 IPSec提供的
安全服务需要用到共享密钥, 它既可用于保
障数据的机密性, 亦可用于数据完整性 ( 消
息认证码 MAC), 或者同时应用于两者 。
IPSec的运算速度必须够快, 而现有公共密钥
技术 ( 如 RSA或 DSS) 的速度均不够快 。 公
共密钥技术仍然限于在密钥交换期间完成一
些初始的认证工作 。
9
IPSec协议组成
二、结构
安全关联 SA ( Security Association)
安全策略数据库 SPD (Security Policy Database)
认证头 AH ( Authentication Head )
封装安全载荷 ESP(Encapsulation Security Payload)
IKE( Internet密钥交换 )
ISAKMP/Oakley( 密钥管理协议 )
ISAKMP,Internet Security Association and Key
Management Protocol
Oakley,是 D-H密钥交换协议的改进
10
结构图
二、结构
11
IPSec实施
二、结构
IPSec既可在终端系统上实现, 亦可在某种安全
网关上实现 ( 如路由器及防火墙 ) 。
在主机中实施可以有两种方式:
1,与操作系统的集成实施 。
2,在协议堆栈中的网络层和数据链路层之间
实施 。
12
操作系统集成
二、结构
IPSec作为网络层协议, 可在网络层实现, 由 IP
层的服务构建 IP头 。 这个模型与其它网络层协
议 ( 比如 ICMP) 的实施等同 。
应用
TCP/UDP
IP+ IP sec
数据链路层
13
在协议堆栈中实施
二、结构
应用
TCP/UDP
IP
IP sec
数据链路层
14
在主机实施的特点
二、结构
a,保证端到端的安全性
b,能够实现所有的 IPSEC安全模式
c,能够对每个数据流提供安全保障
d,在建立 IPSEC的过程中, 能够维持用户身
份的认证 。
15
在路由器中实施
二、结构
如果在路由器中实施, 可在网络的一部分中
对传输的数据包进行安全保护 。
例如某公司只打算对传给地理位置分散的那
些部门的数据实施保护, 而且只在数据流经
Internet的时候进行保护, 从而构建自己的
VPN或者内联网 。 IPSec实施方案通过对数据
包进行, 隧道传输,, 从而实现了对它们的
保护 。
16
IPSec两种不同的使用模式
二、结构
传送模式:保护上层协议;用于两主机之间;
隧道模式:保护整个 IP数据报;当一方为网关时 。
原始 IP包,IP头 + TCP头 + 数据
传送模式,IP头 + IPSec头 + TCP头 + 数据
隧道模式:新 IP头 + IPSec头 + IP头 + TCP头 +
数据
17
安全关联
二、结构
为正确封装及提取 IPSec数据包, 要将安全服务,
密钥与要保护的通信数据联系到一起;同时要将
远程通信实体与要交换密钥的 IPSec数据传输联
系起来 。 这样的方案称为安全关联 ( Security
Association,SA) 。
SA是构成 IPSec的基础 。 它由两个通信实体协商
建立 。 它们决定了用来保护数据包安全的 IPSec
协议, 密钥以及密钥的有效存在时间等 。 任何
IPSec实施方案都会构建一个 SA数据库 ( SAD),
由它来维护保障数据包安全的 SA记录 。
18
安全关联
二、结构
SA是单向进行的, 它仅朝一个方向定义安全服务,
要么对通信实体收到的包进行, 进入, 保护, 要么
对实体外发的包进行, 外出, 保护 。 SA由一个三元
组唯一标识:
1) 安全参数索引 ( SPI), 存在于 IPSec协议头内;
2) 安全协议 ( AH,ESP) 标识符;
3) 目标 IP地址:它同时决定了关联方向 。
通常 SA是以成对的形式存在的, 每个朝一个方向 。
既可人工创建它, 亦可采用动态创建方式 。 SA驻留
在, 安全关联数据库 ( SAD),内 。
19
SA创建
二、结构
若用人工方式加以创建, SA便会一直存在下
去, 除非再用人工方式将其删除 。
若用动态方式创建, 则 SA有一个存活时间与
其关联在一起 。 存活时间 ( TTL) 由 IPSec通
信双方在密钥管理协议中协商 。 TTL非常重
要, 因为受一个密钥保护的通信量必须加以
谨慎地管理 。 若超时使用一个密钥, 会为攻
击者侵入系统提供更多的机会 。
20
安全关联数据库 SAD
SAD用于定义每个 SA的参数值:
? 顺序号:以 AH/ESP报头中 32位 bit值表示
? 顺序号溢出标记:防止溢出数据报的传送
? 反重放窗口:收到的 AH/ESP数据报是否重放
? AH/ESP信息:认证 /加密算法、密钥、有效期
? SA有效期:该时间间隔之后,SA结束 /被替代
? IPSec协议模式:传输模式 /隧道模式
? 路径最大传输单元:最大数据报长度 (不分段 )
21
安全策略数据库 SPD
二、结构
SPD ( Security Policy Database) 定义了对所有出
/入业务应采取的安全策略, 为 IP数据项提供什么
服务以及以什么方式提供 。 对所有出 /入包括非
Ipsec业务的处理必须咨询 SPD,处理有三种可能:
1) 丢弃:不允许在此主机上存在, 或不允许通
过此网关 。
2) 绕过 Ipsec,允许通过而无需 Ipsec保护
3) 采用 Ipsec,对这种业务流, SPD要指明提供
的安全服务, 采用的协议及使用的算法等 。
22
安全策略
二、结构
用户可以根据自己的要求, 对不同的通信设定
不同级别的安全策略 。
例:在一个网络安全网关上制订 IPSec策略, 对
本地子网与远程网关的子网间通信数据采用 DES
加密, 并用 HMAC-MD5进行认证;对从远程子
网发给一个邮件服务器的所有 Telnet数据用 3DES
进行加密, 同时用 HMAC-SHA进行认证;对于
需要加密的, 发给另一个服务器的所有 Web通信
数据, 则用 IDEA满足其加密要求, 同时用
HMAC-RIPEMD进行认证 。
23
安全参数索引( SPI )
二、结构
SPI长度为 32位, 用于唯一地标识出接收端上的一个
SA。 作为两个主机秘密通信的协定, SA决定了密钥
和加密算法等参数 。 必须采用某种机制, 让通信源指
出用哪个 SA来保护数据包;而对通信的目的地, 则需
指出用哪个 SA来检查收到的包是否安全 。 SPI是个任
意数, 一般是在 IKE交换过程中由目标主机选定的 。
SPI被当作 AH和 ESP头的一部分传送 。 接收主机使用
<SPI,DST,Protocol>这个字元组来唯一地标定 SA
( DST是 IP头中的目标地址;而 protocol代表协议是
AH或 ESP) 。
24
消息认证码 MAC
二、结构
MAC,使用一个保密密钥生成固定大小的小数
据块,并加入到消息中,称 MAC,或加密和。
用户 A和用户 B,共有保密密钥 K,消息 M,
MAC=CK(M)
1、接收者可以确信消息 M未被改变。
2、接收者可以确信消息来自所声称的发送者;
3、如果消息中包含顺序码, 则接收者可以保证
消息的正常顺序;
MAC函数类似于加密函数,但不需要可逆性。
因此在数学上比加密算法被攻击的弱点要少。
25
MAC的基本应用方式
二、结构
1)消息认证
A?B,M||CK(M)
2)消息认证 +保密
A?B,EK2[ M||CK1(M)]
3)消息认证 +保密
A?B,EK2 [M]||CK1(EK2 [M])
26
封装安全载荷 概述
三、封装安全载荷
ESP( Encapsulating Security Payload) 属于
IPSec的一种协议, 可用于确保 IP数据包的机密
性, 数据的完整性以及对数据源的身份认证 。
此外, 它也要负责对重播攻击的抵抗 。
具体做法是在 IP头之后, 需要保护的数据之前,
插入一个新头 —— ESP头 。 受保护的数据可以
是一个上层协议, 或者是整个 IP数据报 。 最后,
还要在最后追加一个 ESP尾 。 ESP是一种新的 IP
协议, 对 ESP数据包的标识是通过 IP头的协议
字段来进行的 。
27
ESP原理
ESP保护示意图
IP头 ESP尾ESP头 受保护数据
验证保护
加密保护
28
ESP格式
三、封装安全载荷
SPI( 安全参数索引)
序列号
初始化向量
受保护的数据
填充项 填充项长度 下一个头
认证数据
29
ESP格式
三、封装安全载荷
作为 IPSec头, ESP头中会包含一个 SPI字段 。
它和 IP头之前的目标地址以及协议结合在一
起, 用来标识用于处理数据包的特定的 SA。
通过序列号, ESP具有了抵抗重播攻击的能
力 。 序列号是一个不重复的, 单向递增的,
由发送端插在 ESP头的一个号码 。
ESP保护的实际数据包含在载荷数据字段中 。
因此, 这个字段的长度由数据长度决定 。 某
些加密算法要用到初始化向量 ( IV), 它也
受到保护 。
30
隧道模式
三、封装安全载荷
隧道模式下受 ESP保护的一个 IP包, 下一个头是 TCP
加密
认证
新 IP头
SPI
序列号
初始化向量
IP头
TCP头
数据
填充项 填充项长 度 下一个头
认证数据 ICV
31
传输模式
三、封装安全载荷
IP头
SPI
序列号
初始化向量
TCP头
数据
填充项 填充项长度 下一个头
认证数据
32
加密与认证
三、封装安全载荷
由于 ESP同时提供了机密性以及身份认证机制,
所以在其 SA中必须同时定义两套算法 —— 用
来确保机密性的算法叫作 cipher( 加密器 ),
而负责身份认证的叫作 authenticator( 认证
器 ) 。 每个 ESP SA都至少有一个加密器和一
个认证器 。
33
处理外出数据包:传送模式
三、封装安全载荷
对在 IPv4上运行的传送模式应用来说, ESP头跟在
IP头后, IP头的协议字段被复制到 ESP头的, 下一
个头, 字段中, ESP头的其余字段则被填满 — SPI字
段分配到的是来自 SAD的, 用来对这个包进行处理
的特定 SA的 SPI; 填充序列号字段的是序列中的下
一个值;填充数据会被插入, 其值被分配;同时分
配的还有填充长度值 。 随后, IP头的协议字段得到
的是 ESP的值, 50。
除了头插入位置不同之外, IPv6处理规则基本上类
似于 IPv4。 ESP头可插在任意一个扩展头之后 。
34
处理外出数据包:隧道模式
三、封装安全载荷
对隧道模式应用来说, ESP头是加在 IP包前面
的 。 如果封装的是一个 IPv4包, 那么 ESP头的
,下一个头, 字段分配到值 4;如果封装的是
一个 IPv6包, 则分配到值 41。 其他字段的填
充方式和在传送模式中一样 。 随后, 在 ESP头
的前面新增了一个 IP头, 并对相应的字段进
行填充 ( 赋值 ) — 源地址对应于应用 ESP的那
个设备本身;目标地址取自于用来应用 ESP的
SA; 协议设为 50;其他字段的值则参照本地
的 IP处理加以填充 。
35
加密认证
三、封装安全载荷
不管哪种模式下, 接下去的步骤都是相同的 。
从恰当的 SA中选择加密器 ( 加密算法 ), 对
包进行加密 ( 从载荷数据的开头, 一直到
,下一个头, 字段 ) 。 随后, 使用恰当的 SA
中的认证器, 对包进行认证 ( 自 ESP头开始,
中间经过加密的密文, 一直到 ESP尾 ) 。 随后,
将认证器的结果插入 ESP尾的, 认证数据, 字
段中 。
对外出数据包进行处理的最后一步是:重新
计算位于 ESP前面的 IP头的校验和 。
36
处理进入数据包
三、封装安全载荷
接收端在收到一个 ESP包之后, 若不对这个包
进行处理, 就无法得知它究竟处于隧道模式,
还是传送模式 。 根据对这个包进行处理的 SA,
便可知道它到底处在什么模式下 。 但除非完
成了对它的解密, 实际上不可能知道 ESP保护
的是什么 。
如果收到的 IPSec包是一个分段, 必须把它保
留下来, 直到这个包的其他部分收完为止 。
37
处理进入数据包
三、封装安全载荷
收到 ESP包后, 首先要检查处理这个包的 SA是
否存在 —— 这是基本的 IPSec要求, 而不是
ESP专有的 。 如果没有 SA,这个包就会被丢弃 。
一旦认证通过了一个有效的 SA,就可用它开
始对包的处理 。
首先检查序列号 。
由于 ESP身份认证密文而不是明文, 接下来进
行的便是对这个包进行身份认证 。
38
处理进入数据包
三、封装安全载荷
然后是解密 。 通过取自 SA的密钥和密码算法,
就可对 ESP包进行解密, 这个 ESP包从载荷数
据开始到下一个头结束 。
传送身份认证和解密检查成功之后, 就可对
结果数据包进行初步的有效性检验 。 如果用
来处理这个数据包的 SA表明在某一特定模式
下 —— 要么是隧道模式, 要么是传送模式 —
只能处理 ESP包, 那么还必须检验这个包的适
用性 。 如果这个包与要求的模式不符, 就必
须把它丢弃 。
39
处理进入数据包
三、封装安全载荷
对于传送模式, 上层协议头与 IP头是同步的, ESP头的
下一个头字段被复制到 IP头的协议字段中, 并计算出
一个新的 IP校验和;
对于隧道模式, 就抛开外部 IP头和 ESP头 —— 我们需要
的是这个解开封装的包 。
为进行下一步的处理, 可将一个经过改造和认证的包
转发出去 。 如果它是一个传送模式包, 就会转发到一
个高一级的协议层 ( 比如 TCP或 UDP), 由它们对这个
包进行处理;如果它是一个隧道模式包, 就会重新插
入到 IP处理流中, 继续转发到它的最终目的地 。
40
认证头概述
四、认证头
认证头 ( AuthenticationHeader,AH) 是一
种 IPSec协议, 用于为 IP提供数据完整性, 数
据原始身份认证和一些可选的, 有限的抗重
播服务 。 它定义在 RFC2402中 。 除了机密性之
外, AH提供 ESP能够提供的一切东西 。 不需要
加密算法 ( 加密器 ), 而需要一个认证器
( 身份认证器 ) 。 AH定义保护方法, 头的位
置, 身份认证的覆盖范围以及输出和输入处
理规则, 但没有对所用的身份认证算法进行
定义 。
41
认证头概述
认证头的保护
IP头 AH头 受保护数据
验证保护
42
认证头概述
四、认证头
AH是另一个 IPSec协议 。 在 IPv4中数据报的协议字段
值是 51,表明 IP头之后是一个 AH头 。 在 IPv6中, 下一
个头字段的值由扩展头的存在来决定 。 如果没有扩展
头, 下一个头字段将是 51。 如果 AH头之前有扩展头,
紧靠在 AH头前面的扩展头中的下一个头字段就会被设
成 51。 将 AH头插入 IPv6的规则与 ESP插入规则类似 。
AH和 ESP保护的数据相同时, AH头会一直插在 ESP头之
后 。 AH头比 ESP头简单, 因为它不提供机密性 。 由于
不需要填充和一个填充长度指示器, 因此也不存在尾 。
另外, 也不需要一个初始化向量 。
43
认证头格式
四、认证头
AH格式
下一个头 载荷长度 保留
SPI
序列号
认证数据
44
认证头格式
四、认证头
下一头字段表示 AH头之后是什么 。 在传送模式
下, 将是处于保护中的上层协议的值, 如 UDP或
TCP协议的值 。 在隧道模式下, 值为 4,表示 IP-
in-IP( IPv4) 封装或 IPv6封装的 41这个值 。
载荷长度字段表示采用 32位的字减 2表示头本身
的长度 。 AH头是一个 IPv6扩展头, 按照 RFC2460,
它的长度是从 64位字表示的头长度中减去一个
64位字而来的 。 但 AH采用 32位字来计算, 因此,
我们减去两个 32位字 ( 或一个 64位字 ) 。 没有
使用预留字段时, 必须将它设成 0。
45
认证头格式
四、认证头
SPI和外部 IP头的目的地址一起, 用于识别对这
个包进行身份认证的 SA。
序列号是一个单向递增的计算器, 等同于 ESP中
使用的序列号 。 序列号提供抗重播功能 。
认证数据字段长度不固定, 其中包括完整性校
检的结果 。 AH没有定义身份认证器, 但有两个
强制实施身份认证器,HMAC-SHA-96和 HMAC-
MD5-96。 和 ESP一样, 输出结果被切短成 96个位 。
同时, 也没有针对 AH的使用, 定义公共密钥身
份认证算法 ( 比如 RSA和 DDS) 。
46
模式
四、认证头
和 ESP一样, AH可用于传送模式和隧道模式 。
不同之处在于它保护的数据要么是一个上层
协议, 要么就是一个完整的 IP数据报 。 任何
一种情况下, AH都要对外部 IP头的固有部分
进行身份认证 。
47
传送模式
四、认证头
AH用于传送模式时, 保护的是端到端通信 。
通信终点必须是 IPSec终点 。 下一个头是 TCP。
IP头
下一
个头
载荷长度 保留
SPI
序列号
认证数据
数据
已认证
48
隧道模式
四、认证头
AH用于隧道模式时, 它将自己保护的数
据报封装起来, 另外, 在 AH头之前, 另添了
一个 IP头 。, 里面的, IP数据报中包含了通
信的原始寻址, 而, 外面的, IP数据报则包
含了 IPSec端点的地址 。 隧道模式可用来替换
端对端安全服务的传送模式, AH只用于保证
收到的数据包在传输过程中不会被修改, 保
证由要求发送它的当事人将它发送出去, 以
及保证它是一个新的非重播的数据包 。
49
隧道模式
四、认证头
IP头
下一
个头
载荷长度 保留
SPI
序列号
认证数据
IP头
数据
已认证
下一个头是 IP-in-IP
50
AH处理
四、认证头
外出数据包与一个 SPD条目 ( 表示采用 AH保护 )
匹配时, 要求 SAD查看是否存在一个合适的 SA。
如果没有, 可用 IKE动态地建立一个 。 如果有,
就将 AH应用到这个与之相符的数据包, 该数
据包在 SPD条目指定的那个模式中 。 如果它是
一束 SPD,应用顺序就由它所涉及的协议而定 。
AH始终保护的是 ESP,别无它物 。
51
输出处理
四、认证头
创建一个外出 SA时可通过手工或 IKE将序列号计
算器初始化成 0。 在利用这个 SA构建一个 AH头之
前, 计算器就开始递增 。 这样保证了每个 AH头中
的序列号都是一个独一无二的, 非零的和单向递
增的数 。
AH头的其余字段都将填满恰当的值 。 SPI字段分
配的值是取自 SA的 SPI; 下一个头字段分配的是
跟在 AH头之后的数据类型值;载荷长度分配的是
,32位字减二, ;, 身份认证数据, 字段设成 0。
52
输出处理
四、认证头
和 ESP不一样, AH将安全保护扩展到外部 IP头的
原有的或预计有的字段 。 因此, 要将完整性检
查值 (ICV)之前的不定字段调成零 。 对没有包含
在身份认证 ICV中的 IPv4头来说, 它的不定字段
包括 Type of service( 服务类型 ), Flags( 标
志 ), Fragment offset( 分段偏移 ),Time to
live(存活时间 )和 Header checksum(头校验和 )。
对 IPv4选项或 IPv6扩展头来说, 如果它们是固
定的或预定的, 都会包含在 ICV计算之中 。 否则,
必需在计算 ICV之前, 把它们调成零 。
53
输出处理
四、认证头
身份认证可能要求进行适当的填充 。 对有些 MAC来说,
比如 DES-CBCMAC,要求在其上面应用 MAC的数据必须是
算法的块尺寸的倍数 。 因此, 必须进行填充, 以便正
确地使用 MAC( 注,两种强制算法均无此要求 ) 。 这个
填充项是隐式添加的 。 它必须一概为零, 其大小不包
括在载荷长度中, 并且不随数据包一起传送 。
对于 IPv4,AH头必须是 32个字节的一倍, IPv6则是 64
个字节的一倍 。 若 MAC的输出和这项要求不符, 就必须
添加 AH头 。 对于填充项的值, 必须包括在 ICV计算中,
并在载荷长度中反映出填充项的大小 。 如果强制实施
身份认证程序正确对齐了, 在用 HMAC-MD5-96或 HMAC-
SHA-96时, 就不再需要填充项 。
54
输出处理
四、认证头
通过把密钥从 SA和整个 IP包 ( 包括 AH头 ) 传到
特定的算法 ( 它被认作 SA中的身份认证程序 )
这一方式, 对 ICV进行计算 。 由于不定字段已设
成零, 不会包括在 ICV计算中 。 接下来, ICV值
被复制到 AH的, 身份认证数据, 字段中, IP头
中的不定字段就可根据 IP处理的不同得以填充 。
现在, AH处理结束, AH保护的 IP包可以输出了 。
根据包的大小, 在放到线上之前, 可将它分段,
或在两个 IPSec同级之间的传送过程中, 由路由
器进行分段 。
55
输入处理
四、认证头
如果一个受安全保护的包在被收到之前分成了几
段, 就要在 AH输入处理前对这些分段进行重组 。
接收 IPSec包首先要找出用来保护这个包的 SA。
然后, IP头的目的地址, 特定协议 ( 这里是 51)
和取自 AH头的 SPI这三者再对 SA进行识别 。 如果
没有找到合适的 SA,这个包就会被丢弃 。
找到 SA之后, 进行序列号检查 。 抗重播检查会决
定这个包是新收的还是以前收到的 。 如果检查失
败, 这个包就会被丢弃 。
56
输入处理
四、认证头
现在必须检查完整性检查值 ( ICV) 了 。 对整
个数据包应用, 身份认证器, 算法, 并将获
得的摘要同保存下来的 ICV值进行比较 。 如相
符, IP包就通过了身份认证;如不符, 便丢
弃该包 。
57
Internet密钥交换
五,Internet密钥交换
IKE的用途是在 IPSec通信双方之间, 建立起共
享安全参数及认证过的密钥 ( 即建立, 安全关
联, ) 。
IKE协议是 Oakley和 SKEME协议的混合, 并在由
ISAKMP规定的一个框架内运作 。 ISAKMP是
,Internet安全关联和密钥管理协议, 的简称,
即 Internet Security Association and Key
Management Protocol。 ISAKMP定义了包格式,
重发计数器以及消息构建要求 。 它定义了整套
加密通信语言 。
58
Internet密钥交换
IKE的用途
Oakley和 SKEME定义了通信双方建立共享密
钥的步骤 。 IKE利用 ISAKMP语言描述这些步
骤以及其它信息交换措施 。
59
建立 IKE的两个阶段
五,Internet密钥交换
阶段 1:协商创建并认证一个通信信道 (IKE
SA),为双方下一步通信提供保密, 完整以及
数据源认证服务 。 本阶段有两种运行模式:
Main mode和 aggressive模式 。
阶段 2:对 Sa可提供的服务及所需密钥进行协
商 。 IKE支持四种认证方式:基于数字签名的
认证, 两种基于公钥的认证, 基于共享密钥
的认证 。 IKE使用 UDP协议和 500端口 。
60
六,IPSec的应用
? IPSec是 IPv6必须支持的功能,它与防火墙、安全
网关结合可形成各种安全解决方案;与其他协议
相结合将使安全性更高;能使企业将其 Extranet
扩展到贸易伙伴进行电子商务,而不用担心安全
协议的兼容性。
? IPSec的典型应用是构建虚拟专用网 VPN
VPN通过保密隧道在非信任公共网络上产生安全私
有连接。它能把远程用户、分支机构和商业伙伴
连接组成一个自治网络,达到与专用网同样的安
全、可靠、可扩充、可管理、服务质量。 IPSec为
VPN的互操作性、管理、通信提供了有力手段。