IPSec原理(PPT)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
※ IPSec 的两个数据库
● SPD ● SADB
※ 对称算法与非对称算法
※ 增强的 IPSec 特性
● NAT 穿越原理
● 配置 NAT 穿越 ● 空闲超时 ● 抗重放 ● DPD
IKE(Internet Key Exchange,因特网密钥交换)协议在与 Photuris 的 竞争中取得胜利,成为 IPSec 框架下强制推行的密钥管理手段。换句话说, IKE 为 IPSec 协议产生所需的全部密钥,在产生了密钥后,防火墙就可以使 用密钥对用户数据进行加密并传输了。
消息 ID 消息的 ID 值。 长度
指出整个消息的总长度。
ISAKMP 有效负荷的内容很多,具体可以参见相关 RFC 2408。附件中给出 了某厂商防火墙 IPSec 野蛮(积极)模式下 IKE 两个阶段的协商报文分析。
Whitefield Diffie 和 Martin Hellman 于 1976 年首次发表了他们的算法 Diffie-Hellman,该算法是以离散对数难题为基础的。 DH 算法不能防止“中间人”攻击。
wk.baidu.com
500 esp:3des/sha/5b93897a 0 23293
9 792 Active
其他配置:Policy 和 routing 的配置
Policy 和 routing 的配置:
FW-1(config)# show configuration ! ip vrouter trust-vr ip route 0.0.0.0/0 tunnel1 ! policy-global default-action permit !
IKE Phase 2 协商后得到的 IPSec SA:
查看 IPsec SA:
FW-1(config)# show ipsec sa 1 ID: 1 VPN Name: IPSec_tunnel Outbound Gateway: Inbound Gateway:
100.0.0.2
100.0.0.2
IKE Phase 2 的配置:
FW-1(config)# show configuration ! ipsec proposal P2 hash sha encryption 3des ! tunnel ipsec IPSec_tunnel auto isakmp-peer FW2 ipsec-proposal P2 mode tunnel ! interface tunnel1 zone trust ip address unnumber ethernet0/0 tunnel ipsec IPSec_tunnel !
默认情况下,IPSec 隧道的创建是由流量触发的。当配置了自动连接后,设 备将定期(60 秒)检测 SA 是否存在,如果不存在,将会自动进行 IPSec 的协商并创建 IPSec 隧道。
IKE 消息由 ISAKMP 报头和其有效负荷组成,通过交互 IKE 消息来完成 IKE 两个阶段的协商。ISAKMP SA 的报头格式如下:
发起方 Cookie 应答方 Cookie 下一有效负荷 主版本 次版本 消息 ID 长度 ISAKMP 有效负荷 交换类型 标记
Cookie 通过计算对等体身份(IP 地址、端口、协议)、本地生成的密钥数字、日期 和时间的散列值得到,该散列值用于关联协商时需要使用的 ISAKMP SA。
下一有效负荷
Port: Algorithms: SPI: CPI: Lifetime(S): Lifesize(KB): Encrypted packets: Encrypted bytes: Status:
500 esp:3des/sha/2579619c 0 23293
9 792 Active
Port: Algorithms: SPI: CPI: Lifetime(S): Lifesize(KB): Decrypted packets: Decrypted bytes: Status:
IKE 和 ISAKMP 的区别: 虽然在描述时经常混合使用 IKE(Internet Key Exchange)和 ISAKMP (Internet Security Association and Key Mangement Protocol), 但两者还是存在区别的。 IKE 和 ISAKMP 的不同之处在于:IKE 真正定义了一个密钥交换的过程,而 ISAKMP 只是定义了一个通用的可以被任何密钥交换协议使用的框架。 IKE(Internet Key Exchange)是一种混合型协议,由 RFC 2409 定义, 包含了 3 个不同协议的有关部分:ISAKMP、Oakley 和 SKEME 。
IKE Phase 1(第一阶段) IKE Phase 1 协商时使用的 可以通过两种方式获取:
· 预共享密钥(由用户预先在两台对等体设备上配置的对称密钥); · 公钥加密算法,如 RSA 或 DSA(稍后介绍)。 该阶段在协商后将得到 ISAKMP SA (也被称为 IKE SA),用于加密
IKE Phase 2 的协商控制报文(可以暂时将 SA 想成加解密时使用的密钥)。 协商时还通过交换 DH 得到一个“密钥 K”,用于推算出 IPSec 密钥。 该阶段协商过程的安全性高,但算法会消耗大量资源,计算速度慢。
密文 100.0.0.0 /24 e 0/0 FW-2 通过交互 IKE 消息进行 IKE Phase 1 协商
明文 2.2.2.0 /24
IKE Phase 1 协商后得到 ISAKMP SA:
主模式的第 5、6 条消息使用
进行加密
IKE Phase 1 协商后得到 ISAKMP SA:
通过交互 IKE 消息进行 IKE Phase 2 协商 IKE Phase 2 协商后得到 IPSec SA: 在 IPSec tunnel上传输用户数据 用户数据均使用 进行加密 所交互的 IKE 消息均使用 进行加密 IKE Phase 2 协商后得到 IPSec SA:
※ IPSec 协商简述
※ IPSec 的两种模式
● 协商过程图示
● IKE Phase 1 ● IKE Phase 2 ● 自动连接 ※ ISAKMP 报头 ※ DH 密钥交换 ※ SA
※ IPSec 的两种协议
● ESP 协议 ● AH 协议 ※ PKI ● 简述 ● PKI 的构成部分 ● 数字签名、数字证书和 CA
主模式协商过程
发起方 i(Alice) 接收方 r(Bob)
如果参数协商失败,将回 应“拒绝提议”消息。
就参数达成一致
参数 C SA
说明 随机生成的 32 位 Cookie,用于标识本端 Phase 1 的参数提议 DH 协商时可用的公开值 临时值(nonce),是用于确保安全的随机数 对方身份,在使用预共享密钥的主模式中,ID 是发起 方的源 IP 地址 哈希值,公式: HASHi = hash(SKEYID , X | Y | Ci | Cr | SAr | IDi) HASHr = hash(SKEYID , X | Y | Ci | Cr | SAi | IDr)
和管理的方式,由个人开发。
IKE Phase 1 阶段的配置截图:
配置 ISAKMP 对等体
配置 IKE Phase 1 协商参数
IKE Phase 1 的配置命令行:
IKE Phase 1 的配置:
FW-1(config)# show configuration ! interface ethernet0/0 zone trust ip address 100.0.0.1 255.255.255.0 ! isakmp proposal P1 hash sha512 encryption aes ! isakmp peer FW2 isakmp-proposal P1 pre-share 123456 mode main peer 100.0.0.2 interface ethernet0/0 !
交换密钥相关信 息,生成密钥
X&Y N ID
验证成功,第一 阶段协商完成
HASH
野蛮模式协商过程 野蛮模式的协商消息全部以明文方式传输,不能协商 DH 参数。
发起方 i(Alice)
接收方 r(Bob)
协商中的 Cookie Cookie 是一个计算出的 32 位值,用于关联 ISAKMP SA。由于 ISAKMP 没有对 Cookie 的生成方法给出具体规定,因此在实现上,Cookie 中可能 存在一些秘密,例如可以根据设备的厂商、型号、生产批次、licence 有效 期等信息来生成,也可以追加一个时间戳以防止过期的数据包进入。
跟在报头后面的 ISAKMP 有效负荷。 主版本和次版本 用于标识 ISAKMP 的版本,当前主版本为 1,次版本为 0 。
交换类型 用于指出使用的消息类型。 标记
标记字段长 1 字节,低 3 bit 目前被使用。
第 0 bit:加密位,置 1 表明有效负荷已被加密; 第 1 bit:提交位,置 1 确保建立 SA 之后才能收到加密的内容; 第 2 bit:纯验证位,置 1 时说明只做验证,不做加密。该位主要由那些希 望在 ISAKMP 中引入密钥恢复机制的人使用。
IKE Phase 1 有两种协商模式,分别是主模式和野蛮模式: 主模式 共交互 6 条 IKE 消息,第 5、6 条被加密,该方式较安全。 野蛮模式 共交互 3 条 IKE 消息,消息均以明文发送,只能通过散列值判断 IKE 消息 的完整性,不提供机密性,该方以牺牲安全性为代价换来了更快的协商速度。 野蛮模式主要提供给远程接入 IKE 客户使用。
IKE 的协商包含两个阶段:IKE Phase 1 和 IKE Phase 2 。下页图中展示了 IKE 的协商和加密过程,图中“使用 为了便于理解,可以暂时把 SA 想成一把钥匙。 进行加密”的说法并不严谨,
IKE 两个阶段的协商和用户数据的传输,其中
是在协商前预先获得的:
明文 1.1.1.0 /24 FW-1 e 0/0
IKE Phase 1 协商后得到的 ISAKMP SA:
查看 ISAKMP SA:
FW-1(config)# show isakmp sa 100.0.0.2 Cookies: 6685ea6292c7fcb4:0780e823498a1cf9 Status: established Gateway: 100.0.0.2 Port: 500 Algorithms: pre-share sha512/aes Lifetime: 81239 DPD: disable
IKE Phase 2(第二阶段) IKE Phase 2 将进行 IPSec 参数的协商,协商是在 IKE Phase 1 协商后所 提供的安全信道上进行的,IPSec 协商的参数包含传输方式、验证算法、加 密算法和隧道模式等。
由于在 IKE Phase 1 阶段已经获得了“密钥 K”,因此可以推导出当前和后 续将要更新的 IPSec 密钥。通过第二阶段的协商确定了加密方式和密钥等, 最终得到 IPSec SA ,用于加解密用户数据。
因为 IPSec SA 是单向的,因此每个方向都会分别产生一个 IPSec SA 。由 于全部的 IPSec 的密钥是通过“密钥 K”推导出来的,所以不需要用户配置 任何密钥。
IKE Phase 2 阶段的配置截图:
配置 IPSec 隧道
配置 IKE Phase 2 协商参数
IKE Phase 2 的配置命令行:
下图展示了 Alice 和 Bob 交换密钥的过程,最终双方得到了相同的密钥 Kab:
算法需要两个参数参数: (1)p,是一个大型素数; (2)g,常被称为生成器,是一个比 p 小的整数。
· ISAKMP 是一个框架,定义了每一次交换的包结构,每次需要几个包交换 (主模式 6 个包和野蛮模式 3 个包),由美国国家安全处开发; · Oakley:定义 IKE 提供了一个多样化,多模式的应用,让 IKE 可以用在 很多场合,由大学开发; · SKEME:提供了 IKE 交换密钥的算法和方式,即通过 DH 进行密钥交换