[计算机硬件及网络]IPsec技术.doc_第1页
[计算机硬件及网络]IPsec技术.doc_第2页
[计算机硬件及网络]IPsec技术.doc_第3页
[计算机硬件及网络]IPsec技术.doc_第4页
[计算机硬件及网络]IPsec技术.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IPsec 技术技术手册手册 目目 录录 第第 1 章章 简介简介.1 1.1对称密钥密码学.1 1.2散列函数.3 1.3公钥密码系统.4 1.4公钥基础设施(PKI) 5 第第 2 章章 IPSEC 体系结构体系结构1 2.1需要 IPSEC的原因1 2.2IPSEC提供的服务.1 2.3安全关联(SECURITY ASSOCIATION, SA).2 2.4安全策略数据库(SECURITY POLICE DATABASE, SPD) 4 第第 3 章章 IPSEC 协议内容协议内容1 3.1AH 协议1 3.2ESP 协议.2 3.3传输模式.4 3.4隧道模式.4 3.5IPSEC数据包的处理.5 第第 4 章章 IKE 协议协议.1 4.1简介.1 4.2DPD 基本原理4 4.3IPSEC穿越 NAT .6 4.4DHCP OVER IPSEC7 4.5MODE-CFG8 4.6XAUTH.9 第第 5 章章 VRF-AWARE IPSEC .1 第第 6 章章 IPSEC 调试信息调试信息1 6.1IPSEC报文调试信息.1 6.2IKE 协商过程调试信息.2 6.2.1正常协商过程.2 6.2.2协商失败信息.4 6.2.3配置下载信息.7 6.3IPSEC和 IKE 配置信息13 6.3.1显示 ID 别名.13 6.3.2显示 ID 组.14 6.3.3显示 IKE 提议14 6.3.4显示 IPsec 提议14 6.3.5显示隧道配置.15 6.3.6显示策略信息.15 6.3.7显示 IKE 协商状态信息16 6.3.8显示 IPsec SA 信息17 6.3.9显示 IPsec 安全策略库18 6.3.10显示 IPsec 报文的统计信息18 6.3.11其他.21 第第 1 章章简介简介 密码学是研究数据的加密、解密以及认证的学科。有两种加密数据的基本方法:一种是使用对称密 钥;另一种是使用非对称密钥。前者就是所谓的对称密钥密码学,而后者就是公钥密码学。对称密码系 统使用相同的密钥来对数据进行加密和解密;而非对称密码系统则使用一个密钥加密,而使用另一个密 钥解密。 散列函数是一种接受任意长的消息为输入,并产生固定长的输出的算法,这个输出称为消息摘要或 指纹。 1.1对称密钥密码学对称密钥密码学 密码学的历史可以追述到 2000 多年以前,人们认为,最开始的密码是一个被称为“恺撒密码”的移 位密码,它将原始的字符串消息(密码学上称为“明文” )进行简单的移位形成另一串字符串消息(密码 学上称为“密文” ) ,它的密钥就是字符移动的间隔,密钥的范围(密码学上称为密钥空间)是 26(由于 字符串由 AZ 之间的字符组成) 。这种密码虽然简单,但其从此将人类带入辉煌的密码时代。移位密码的 下一代密码称为代换密码。事实上,移位密码是代换密码的一个子集。代换密码与移位密码的不同在于: 它不是把字母移动某个确定的间隔,而是将每一个字母用另一个字母来代替。它的密钥也不是一个整数, 而是一个代换。对代换密码进行穷举密钥搜索是很困难的,因为密钥空间含有 26 个字母的所有可能代换, 共有 26 的阶乘(26!)种可能的代换,即穷举密钥需进行 26!次尝试。对代换密码的密钥进行穷举搜索 需要费很大的力气。然而,用统计密码分析技术却可以很容易的破解代换密码。密码分析学是研究破译 密码系统的技术。统计密码分析学使用统计信息对密码进行攻击。 另一种在几百年前就使用的密码是置换密码,也称为换位密码。在置换密码中,并不改变字母本身, 而是改变字母的相对位置;而移位或代换密码这是用其他字母来代替明文中的字母。置换密码技术在现 代密码技术中广泛使用。 许多人将 Claude Shannon(先农)誉为现代密码学之父,他提出的扩散和混淆是构造密码体制基本要素。 使用统计分析来攻破一个代换密码是比较容易的。Shannon 提出了一种挫败这种攻击的方法;使用某种形 式的扩散技术,使密文的统计成分与明文之间不存在关系;同时结合混淆技术,使密文的统计成分和加 密密钥的取值之间的关系尽可能的复杂。通过使用复杂的代换算法来确保密文的每一个字符都是由尽可 能多的明文字符决定的。Feistel 密码结构是 IBM 公司的 Horst Feistel 于 1973 年公开的,它是第一个体现 Shannon 思想的密码系统。现在,Feistel 密码结构仍然广泛应用与大量的密码系统中。Feistel 密码结构独 特的设计特征可以概括如下: 它利用乘积密码,即顺序执行两个或更多各基本的代换密码和/或置换密码。 它利用一个代换函数执行几轮代换。 它利用一个密钥编排算法使密钥比特数转化为一些子密钥,以供密码在不同的迭代中使用。 目前,几乎所以的对称密码系统都使用了这些特征。 曾经一段时间使用最广泛的加密方法都基于 1977 年被美国标准局(National Bureau of Standards,现在 的美国标准与技术协会,NIST)作为第 46 号联邦信息处理标准而采用的数据加密标准 DES(Data Encryption Standard) 。在 DES 中数据以 64bit 分组进行加密,密钥长度为 56bit。加密算法经过一系列的 步骤把 64bit 的输入变换成 64bit 的输出,解密过程中使用同样的步骤和同样的密钥。DES 得到了广泛的 使用,它的安全性也是许多争论的主题。DES 的批评者的火力集中在两个方面。第一个方面是 IBM 原来 的 LUCIFER 算法(DES 的初期版本)的密钥长度是 128bit,而提交作为标准的系统却只有 56bit,足足 减少了 72bit 的密钥长度。批评者担心,这个密钥长度不足以抵御穷举式攻击。第二个方面是 DES 的内 部结构即 S 盒子(用于提供非线性变换)的设计标准是保密的,这样用户就无法确信 DES 的内部结构不 存在任何隐藏的弱点,利用这种弱点 NSA(美国国家安全局)能够在不知道密钥的情况下解密报文。后 来在差分密码分析上所做的工作似乎说明 DES 有着非常强的内部结构。无论争论的是非曲直究竟怎样, DES 实际上很成功,它得到广泛的使用,特别是在金融领域。现在一般认为,除极端敏感的场合外, DES 在商业应用上使用现在还不必担心。 假设 DES 的设计不存在后门,那么 DES 的问题就主要在于它的密钥长度。攻击者可以在 255次运算 内找到 56 比特的 DES 密钥 K。随着计算机系统运算速度的增加,在有限的时间内进行大量运算将变得更 可行。为了适当程度的安全性,需要一个密钥长度至少为 128 比特的算法。意识到 DES 已经快完成它的 历史使命,NIST 于 1997 年 1 月宣布了一项选择一个用作高级加密标准(AES)的候选算法的计划:这个 标准将取代 DES。有关各方在 1998 年上半年提交了 15 个密码算法。1999 年 8 月 9 日,NIST 宣布已经选 出 5 个最终候选算法来参加第二轮的角逐。最终,NIST 在 2000 年 10 月 2 日披露,它选择了 5 个最终候 选算法之一的 Rijndael 作为 AES 候选算法。 Rijndael 是一个使用可变分组和密钥长度的迭代分组密码。它是由比利时的 Joan Daemen 和 Vincent Rijmen 设计的。Rijndael 支持长度为 128、192、256 比特分组和密钥。但是 AES 只选了 128 比特的分组 和 128、192、256 比特的密钥。对 Rijndael 的 192 比特、256 比特的分组没有进行评估。Rindael 使用的 轮数依赖于分组和密钥的长度。如果分组长度是 128 比特,k 是密钥长度的比特数,则轮数 r 为 k/32+6。 也就是说,若密钥长度分别为 128、192 和 256 比特,则对应的轮数分别为 10、12、和 14。 Rijndael 是一个面向字节的密码。用一个 128 比特的明文分组作为初始状态。此状态经过许多次依赖 于密钥的变换,最后的状态是一个 128 比特的密文分组。需要特别指出的是 AES 不是基于 Feistel 结构的 (尽管 Feistel 结构在分组密码中占据着及其重要的地位),而是基于一种叫做“置换代换”网络的结构, 它是分层的。 1.2散列函数散列函数 散列函数用于消息或文件的完整性检验。比如,可以对一个二进制文件计算摘要,将结果与可靠站 点或媒介中的同一文件的摘要进行比较,如果文件没有改变,这两个摘要是相同的。散列函数的另一个 常用方面是数字签名:对要签名的消息先进行散列,形成一个固定长的摘要,然后对这个摘要签名。 散列值以如下形式的函数 H 产生的:h=H(x),其中 x 是变长的报文,H(x)是定长的散列值。要用于报 文鉴别,散列函数 H 必须具有如下性质: 1、 H 能用于任何长度的消息。 2、 H 产生定长输出。 3、 对任何给定的 x,H(x)要相对易于计算,使得硬件和软件实现成为实际可行。 4、 对任何给定的码 h,寻找 x 使得 H(x)=h 在计算是不可行的。即单向性质。 5、 对任何给定的消息 x,寻找不等于 x 的消息 y,使得 H(y)= H(x)在计算上是不可行的。即弱抗碰 撞。 6、 寻找任何消息对(x,y),使得 H(x)=H(y)在计算上是不可行的。即强抗碰撞。 MD5 报文摘要算法是由 Ron Rivest(RSA 算法Rivest-Shamir-Adleman中的“R”)在麻省理工学院提 出的。MD5 曾是使用最普遍的安全散列算法,但是现在它的安全性受到了置疑。该算法以一个任意长度 的报文作为输入,产生一个 128 比特的报文摘要作为输出。输入是按 512 比特的分组进行处理的。 SHA 安全散列算法由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准在 1993 年 公布;1995 年又发布了一个修订版 FIPS PUB180-1,通常称之为 SHA-1。SHA 是基于 MD4 算法的,并 且它的设计在很大程度上是模仿 MD4 的。而 MD4 是 MD5 的先驱,它们均由 Ron Rivest 设计。 RIPEMD-160 报文摘要算法是在欧洲 RACE 的 PIPE 项目中由研究人员开发而成的,这些研究人员曾 经对 MD4 和 MD5 部分进行了成功的攻击。他们最初开发 128 比特的版本 PIPEM。在 RIPE 项目结束后, H.Dobbertin(他不是 RIPE 项目成员)发现了对两循环 RIPEMD 的攻击方法以及随后对 MD4 和 MD5 的攻击 方法。正因为这些攻击,PIPE 项目的部分成员决定对 RIPEMD 进行修改。该算法可以接收任意长度的输 入报文,产生的输出是一个 160 比特的报文摘要。输入是按 512 比特分组进行处理的。 1.3公钥密码系统公钥密码系统 公开密钥密码编码学的发展是整个密码编码学历史上最大的而且也许是唯一真正的革命。从最初一 直到现代,几乎所以的密码编码系统都建立在基本的代换和置换工具的基础上。在用了数千年的本质上 可以手算完成的算法之后,常规的密码编码学随着转轮加密/解密机的发展才出现了一个重大的进步。机 电式变码旋转件使得极其复杂的密码系统被研制出来。有了计算机之后,更加复杂的系统被设计出来, 其中最有名的就是 Lucifer 在 IBM 进行的最终设计出数据加密标准 DES 的工作。但是不管是转轮机还是 DES,虽然代表了重要的进展,却仍然依赖于代换和置换这样的基本工具。 公开密钥密码编码学则与以前的所有方法都截然不同。一方面公开密钥算法基于数学函数而不是代 换和置换,更重要的是,公开密钥密码编码学是非对称的,它用到两个不同的密钥,而对称的常规加密 则只是使用一个密钥。使用两个密钥对于保密通信、密钥分配和鉴别等领域都有着深远的影响。 公开密钥算法用一个密钥进行加密,而用另一个不同但是有关的密钥进行解密。这些算法有以下重 要特性: 仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的。另外,某些算法,比 如 RSA,还具有下列特性。 两个相关密钥中任何一个都可以用作加密而让另外一个用作解密。 公开密钥系统的特点是他们使用具有两个密钥的编码解码算法,这两个密钥一个是保密的,一个则 可以公开得到。根据应用的需要,发送方可以使用发送方的私有密钥、接受方的公开密钥,或者两个都 使用,以完成某种类型的密码编码解码功能。大体来说,可以将公开密钥密码系统分为三类: 加密/解密:发送方用接收方的公开密钥加密报文。 数字签名:发送方用它自己的私有密钥“签署”报文。签署功能是通过对于报文,或者作为报 文的一个函数的一小块数据应用密码算法完成的。 密钥交换:两方合作以便交换会话密钥。这有几种可能的方法,其中涉及到一方或两方的私有 密钥。 和对称密钥加密体制一样,公开密钥加密体制可能受到强行攻击。防范措施也一样:采用长密钥。 然而应该考虑一个折衷。公开密钥系统依赖于使用某种不可逆的数学函数,计算这些函数的复杂性与密 钥比特数多少的关系可能不是一个线性关系而是增长得更快。因而密钥强度必须足够大,以便使得强行 攻击不切实际,但是又要足够小以便加密解密可以实用。 RSA 是一种分组密码,其中的明文和密文都是对应于某个 n 的从 0 到 n-1 之间的整数。RSA 算法描 述如下: 7、 选择两个大素数 p 和 q 8、 计算 n=pq 9、 计算 (n)=(p-1)(q-1) 10、选择一个 e,它小于 (n)且与 (n)互素 11、求出 d,使得 ed = 1 mod (n) 12、得到公开密钥 KU=e,n,私有密钥 KRd,n Diffie-Hellman 算法是用于密钥交换的。其有效性依赖于计算离散对数的难度。算法描述如下: 13、选择全局公开的参数 q 和 a,q 是一个大素数,a 是 q 的一个原根(生成元、本原元) 14、用户 A 的密钥产生:选择私有的 XA,XA三元组对 SAD 数据库进行检索(还可能加上 源地址) 。协议值要么是 AH,要么是 ESP。根据这个协议值,这个包的处理要么由 AH 层,要么由 ESP 层进行。协议载荷处理完之后,需要查询策略,对载荷进行校验。选择符则用作获取策略的依据。验证 过程包括:检查 SA 的使用是否得当(也就是说,SA 中的源和目标地址是否与策略对应) ,以及 SA 保护 的传输层协议是否和要求的相符。对隧道包来说,源和目的选择符字段属于内部头;假若根据外部源和 目标地址值来检索 SPD 数据库,会得到无效的结果,因为条目是根据真实的源和目标地址构建的,而非 根据隧道终点。 我们来看看这个例子,网关以隧道方式将一个数据包从主机 B 传输到主机 A。在主机 A 上,我们根 据策略知道:对发自主机 B 的包而言,它将有一个隧道化的 ESP,而且隧道源将是安全网关。那么,如 果将网关作为源来检索 SPD 数据库,而不是用主机 B,就会得到错误的结果。IPsec 完成了对策略的校验 (查实)后,会将 IPsec 头剥离下来,并将包传递到下一层。下一层要么是一个传输层,要么是网络层。 比如,假如这个包是 IPESPTCP,那么下一层就应是传输层;而假如这个包是 IPAHESPTCP,那 么下一层就应是从属于网络层的 IPsec 层。 第第 4 章章IKE 协议协议 4.1简介简介 IKE(Internet Key Exchange,因特网密钥交换)协议是一个以受保护的方式为 SA 协商并提供经认证 的密钥信息的协议。IKE 是一个混合协议,它使用到了三个不同协议的相关部分:Internet 安全关联和密 钥管理协议(ISAKMP) 、Oakley 密钥确定协议和 SKEME。IKE 不同于 ISAKMP:IKE 实际上定义了一 个确定的密钥交换,而 ISAKMP 仅仅提供了一个可由任意密钥交换协议使用的通用密钥交换框架。 IKE 为 IPsec 双方提供用于生成加密密钥和认证密钥的密钥信息。IKE 使用 ISAKMP 为其他 IPsec(AH 和 ESP)协议协商 SA。对 IPsec 来说,IKE 提供的是一种安全的自动密钥生成、更新和管理 的服务。 IKE 定义了两个阶段的交换:第一阶段建立一个保密和验证无误的通信通道(IKE SA) ,以及建立验 证过的密钥,为双方的 IKE 通信提供机密性、消息完整性以及消息源验证服务;第二阶段则是利用这个 既定的安全关联为 IPsec 协商具体的安全关联,此外还包括对 IPsec SA 进行管理的交换过程,如信息交换 等。IKE SA 与 IPsec SA 不同,它是双向的,一个 IKE SA 可以为多组 IPsec SA 的协商服务。 1 阶段阶段 1 交换交换 阶段 1 交换有两种可能的交换模式:主模式和积极模式。 主模式提供协商双方的身份保护。它包括一个经认证的 Diffie-Hellman 密钥交换。这个交换模式将密 钥交换信息与身份、认证信息分离,如此保护了身份信息,交换的身份信息受到了前面生成的 Diffie- Hellman 共享秘密的保护。主模式的结构如下示: HDRSA HDRSA HDR*IDirAUTH HDRKENr HDRKENi HDR*IDiiAUTH 发起者响应者 (1) (2) (3) (4) (5) (6) 图 9 IKE 主模式 消息 1发起者向响应者发送一个封装有基于其安全策略的提议载荷的 SA 载荷,而提议载荷中 又封装有变换载荷,变换载荷标明的是本地能够提供的安全机制和操作模式,如加密算法、认 证算法、Diffie-Hellman 群等。 消息 2响应者发送一个 SA 载荷,该载荷表明它所接受的正在协商的 SA 的提议。 消息 3 和消息 4发起者和响应者交换 Diffie-Hellman 公开值和辅助数据,如 nonce。Nonce 是 计算共享秘密(用来生成加密密钥和认证密钥)所必需的。 消息 5 和消息 6发起者和响应者交换身份信息并认证 Diffie-Hellman 交换。这两个消息中传递 的信息是加密的,用于加密的密钥使用消息 3 和 4 中交换的密钥信息生成,因此身份信息受到 了保护。 积极模式不能提供身份保护,它提供了一种比较迅速的阶段 1 交换模式,允许同时传送与 SA、密钥 交换和认证相关的载荷,因而减少了消息的往返次数。其结构如下示: HDRSA HDRSAIDirAUTHKENr KENi HDR* IDii AUTH 发起者响应者 (1) (2) (3) 图 10 IKE 积极模式 消息 1发起者向响应者发送一个封装有单个提议载荷的 SA 载荷,而该提议载荷中只封装有一 个变换载荷,Diffie-Hellman 公开值、需要的随机数据和身份信息也在第一条消息中传送。由此 可见积极模式的协商能力弱于主模式,同时由于身份信息是明文传送,因此也不能提供身份保 护。 消息 2如果响应者接受发起者的提议,它发送一个如上所述的 SA 载荷,同时传送 Diffie- Hellman 公开值、需要的随机数据和身份信息。该消息还受到协商一致的认证函数保护。 消息 3发起者发送应用一致同意的认证函数生成的结果。实际上,这个消息认证发起者并且 证明它是交换的参与者。这个消息使用前两个消息交换的密钥信息生成的密钥进行加密。 IKE 阶段 1 交换一个很重要的功能是身份认证,也就是协商双方通过约定的方式相互进行身份认证, 同时我们也可以看出,IKE 的这种身份认证只是一种基于设备级的身份认证,而不是更细粒度的基于用 户级的身份认证。IKE 的身份认证方式常用的有两种,预共享密钥认证和 RSA 签名认证。由此产生不同 的密钥材料 SKEYID 生成方式: 对于预共享密钥认证而言: SKEYID = prf( Preshared-key, Ni_b | Nr_b ) 对于 RSA 签名认证而言: SKEYID = prf( Ni_b | Nr_b, g xy) SKEYID 是后续所有密钥的基础,用于 IKE 消息完整性保护的密钥(SKEYID_a)和加密保护的密钥 (SKEYID_e)以及为 IPsec 衍生加密或认证密钥的秘密信息均来源于 SKEYID。 2 阶段阶段 2 交换交换 阶段 2 交换主要有以下交换模式:快速模式和信息交换等。 快速模式用于为 IPsec 协商 SA,这个协商过程受到阶段 1 协商好的 IKE SA 的保护。在快速模式下交 换的载荷都是加密的。快速模式可以如下描述: 发起者响应者 (1)HDR*, HASH(1), SA, Ni , KE , IDci, IDcr (2) 图 11 IKE 快速模式 消息 1发起者向响应者发送一个散列载荷、一个 SA 载荷(其中封装了一个或多个提议载荷, 而每个提议载荷中又封装一个或多个变换载荷) 、一个 nonce 载荷、可选的密钥交换信息和标识 信息。密钥交换信息用于保证完美前向保密(PFS)特性。PFS 描述的是这样一种现象,对于密 钥信息的衍生而言,如果一个单独的密钥被攻破,将不会危及其他密钥保护的数据的安全性。 散列载荷中包含消息摘要,它是使用前面协商好的伪随机函数(prf)对消息头中的消息 ID(M- ID)连同散列载荷后面的全部消息部分进行计算的结果。即: HASH(1) = prf( SKEYID_a, M-ID | SA | Ni | KE | IDci | IDcr ) 消息 2这个消息中的载荷和消息 1 中的载荷类似,只是散列载荷的生成稍有不同,增加了除 去通用载荷头的发起者 nonce。即: HASH(2) = prf( SKEYID_a, M-ID | Ni_b | SA | Nr | KE | IDci | IDcr ) 消息 3该消息用于对前面的交换进行认证,其散列载荷的构成与上述不同,即: HASH(3) = prf( SKEYID_a, 0 | M-ID | Ni_b | Nr_b ) 阶段 2 交换中还有一种比较重要的交换类型,即信息交换。这种交换提供了发送单向信息的方法, 它可以用于安全关联的管理。发起者或响应者发给对方一个消息,其中包含一个通知或删除载荷。信息 交换不需要响应,其形式如下: HDR*N/D 发起者响应者 (1) 图 12 IKE 信息交换 4.2DPD 基本原理基本原理 DPD(Dead Peer Detection) ,死亡对端探测,是一种基于通信流的探测 IKE 对端状态的方法。它对 协调通信双方的状态同步以保障 IPsec 通信的正常进行具有重要意义。 在两台安全网关之间通过 IKE 协商使用 IPsec 进行安全通信,当网络和网关工作正常的情况下,两个 网关之间可以正确通信,删除 SA 时可以发出通知/删除消息,通知对端作相应处理。当网络不通或其它 原因导致数据包不能正确到达对端,或者对端网关由于非正常原因删除了 SA 但没有发送通知删除/消息 (比如因故障重启) ,或者本端网关因网络故障没有收到对端发来的通知/删除消息,在上述情况下本端网 关不知道对端所发生的状况,会继续使用原来的 SA 处理与对端网关的安全通信直到手工删除 SA 或者 SA 超时或者对端重新发起协商。上述情况可能会导致两个安全网关在相当长的一段时间内不能进行正常 的安全通信,这在某些情况下可能会导致严重后果。而 IKE 协议本身对此无能为力。DPD(Dead Peer Detection)设计目的就是能够及时探测对端网关可能存在的这种非正常状态,并且在探测到对端不能正常 进行 IPsec 通信时能够主动删除本端 SA,重新发起 IKE 协商,恢复正常通信。 提到 DPD 的原理,首先要谈到的是 KEEPALIVE(保活),它是一种通过定时查询来确定通信对端状 态正常的一种机制。双方都要维护一个自己的定时器,通过查询报文和应答报文的交互来确定对端状态 是否正常。发起方每隔一定的时间发送一个查询报文,接收方收到后返回一个应答报文,于是双方能够 确定对端状态正常,更新定时器,如此反复。其作用是防止和避免通信双方由于故障或其它不确定因素 引起状态不一致,从而导致不可预知或无法忍受的后果。这也就为通信系统从不正常状态自恢复提供了 一种可能的手段。 DPD 的实现原理主要参考了 Keepalive(保活)的有关方法,同时结合 IPsec 技术本身的特点,进行 了适当的修改和完善,它充分利用了通信流的存在即对端仍然正常的工作这一点,也就是说,当收到对 端发过来的 IPsec 通信报文,并能正常响应时,是不需要发送 DPD 探测报文的,这就无疑大大减少了探 测报文所带来的额外网络开销。其主要原理和特点可以概括如下: 1、 采用了 Keepalive 的查询和应答机制,通过查询报文和应答报文两条消息的交互来确定对端状态。 2、 通信双方都要维护自己的定时器,发送探测报文的时间间隔和重试次数可以根据对端状态变化 所导致后果的严重程度来自行设置。 3、 和 Keepalive 定时发送查询消息不同,DPD 通常并不需要定时发送查询报文,它会首先检查对端 是否有持续的 IPsec 数据报向自己发送,如果有说明对端正常,则无需发送查询报文。只有当 IPsec 数据流空闲超过设定时间间隔时,才会发送查询报文,检查对端状态,这种机制有效地减 少了双方报文交换的数量,避免了在某些情况下可能导致的网络阻塞。 4、 DPD 报文采用标准的 ISAKMP 通知消息来实现,报文交换形式如下: HDR*NOTIFY(R-U-THERE) 发送者响应者 (1)HASH HDR*NOTIFY(R-U-THERE-ACK)HASH(2) 图 13 DPD 交换 5、 DPD 双方采用已经建立的 IKE SA 对报文进行加密和认证保护,如果 IKE SA 不存在或出现故障, 则无法发送或响应 DPD 报文,也就意味着需要重新协商建立新的 IKE SA 以及相关的 IPsec SA,以恢复正常状态。 6、 在 DPD 报文中采用序列号标识报文顺序,从而能够有效地防止重放攻击,也能表明正常通信状 态的连续性。 7、 在 IKE 第一阶段协商中,为了表明自己支持 DPD 功能,协商双方都必须发送 DPD 特有的 Vendor ID 载荷。 4.3IPsec 穿越穿越 NAT 现实网络环境中 NAT(网络地址转换)的使用较为普遍,而 IPsec 技术与之存在一些兼容性问题。 例如 AH 和 NAT 之间的不兼容,由于 AH 头的完整性校验中包括了 IP 源和目的地址,NAT 和反向 NAT 设备对地址的改变会导致完整性破坏;而 ESP 的完整性校验不包括 IP 源和目的地址,也就不存在这个问 题,因此可以采用 ESP 实现 NAT 穿越。此外还存在一些实现上的问题,如某些 NAT 设备不能处理非 TCP/UDP 通信流,不能处理进出的报文分片等。 为使 IPsec 能顺利穿越 NAT,IKE 协商过程必须进行一定程度的修改,下图是关于阶段 1 主模式协商 过程在穿越 NAT 环境下的一个示例。 发起方 响应方 - - (1)HDR, SA, VID (2) (4) (6) 用于为远程主机分配虚 IP 地址(内网 IP 地址)及可选 的 WINS、DNS 等。这些信息的交换是在 IKE SA 建立之后进行的,使用 IKE SA 进行保护,因此是安全 的。地址的获取使用 PULL 模式,即由远程主机主动请求网关分配 IP 地址。网关分配给远程主机的地址 可以是静态配置的也可以是从地址池中动态分配的。远程主机获得虚 IP 地址后,与网关协商保护该虚 IP 到内网的通信流的 IPsec SA,后续与内网的通信使用该虚 IP 地址进行。 远程主机A (MODE-CFG 客户) VPN网关 主机B 虚拟主机A Internet IPsec隧道 主机C 图 16 MODE-CFG 示例图 如上图所示,远程主机 A 与 VPN 网关建立 IPsec 隧道,以访问网关后的局域网 LAN。通过 MODE- CFG,远程主机 A 可以获得属于 LAN 的 IP 地址和其他相关配置,以模拟一种远程主机 A 真实存在于 LAN 的情境,如形成上述虚拟主机 A,这样 A 与其他主机如 B 可以进行局域网内的通信。A 到 LAN 中 其他主机的通信流受 A 与 VPN 网关之间建立的 IPsec 隧道保护。 根据这种使用场景,典型的,作为 MODE-CFG 客户的远程主机 A 有两个地址,一个是真实连接到 Internet 的接口获得的可路由的 IP 地址(Internet interface address) ,一个是虚拟接入 VPN 网关后的 LAN 的虚拟接口获得的 IP 地址(Intranet interface address) ,而后者是通过 MODE-CFG 获得的。 首先,远程主机 A 通过 Internet interface 与 VPN 网关建立一个 IKE SA。随后远程主机使用 MODE- CFG 请求网关为其分配 IP 地址等,该过程受前面协商的 IKE SA 的保护。MODE-CFG 消息交换完成之后, 主机 A 的 Intranet 接口就获得了一个虚地址以及其他相关配置参数,这样主机 A 通过 Intranet 接口就可以 与 VPN 网关后的主机 B、主机 C 等进行通信,就像主机 A 位于局域网内一样。 当 Intranet 接口获得 IP 地址后,主机 A 就为 Intranet 接口到 LAN 的通信建立 IPsec SA,用于保护主 机 A 访问 LAN 的通信流。 注:就 IP 地址分配而言,MODE-CFG 的作用 DHCP over IPsec 相同,可作为 DHCP over IPsec 替代 机制;MODE-CFG 可以与 XAUTH 结合使用,通过 AAA 服务器(RADIUS、TACACS+)认证远程用户 并为远程主机分配虚地址。 4.6XAUTH XAUTH 提供了一种在 IKE 中使用传统的单向认证机制如 RADIUS、SecurID、OTP 等来对用户进行认证的方法。首先,使用 IKE 本身的认证机制完成远程主机和 网关之间的相互认证,然后,使用 XAUTH 完成网关对用户的认证。 图 17 XAUTH 示例图 首先,远程主机 A 通过 Internet interface 与 VPN 网关建立一个 IKE SA。随后网关要求远程用户提供 用户名、密码以完成对用户的认证,该过程受前面协商的 IKE SA 的保护。认证通过后,主机 A 和网关 进行阶段 2 协商以建立用于保护通信流的 IPsec SA XAUTH 可以和 MODE-CFG 配合使用,如下图: 图 18 同时使用 XAUTH 和 MODE-CFG 示例图 首先,远程主机 A 通过 Internet interface 与 VPN 网关建立一个 IKE SA。随后网关要求远程用户提供 用户名、密码以完成对用户的认证,该过程受前面协商的 IKE SA 的保护;网关根据用户提供的信息使用 RADIUS 服务器完成对用户的认证。认证通过后,主机 A 使用 MODE-CFG 请求网关为其分配 IP 地址等, 该过程受前面协商的 IKE SA 的保护。获得虚 IP 地址后,主机 A 和网关进行阶段 2 协商以建立用于保护 通信流的 IPsec SA 第第 5 章章VRF-Aware IPsec VRF aware IPsec 是将 IPsec 隧道和 VRF 相关联,提供一种安全的 MPLS 接入方式。通过这种接入方 式,可为 MPLS VPN 带来如下的好处: 1、 通过 IPsec 隧道与 VRF 之间的映射使多个 CE 或移动用户通过一个接口完成 MPLS 的接入; 2、 通过 IPsec 隧道提供了 MPLS 的一种安全接入方式; 3、 通过 IPsec 隧道提供的隧道备份功能可完成接入的备份。 MPLS Network 移动接入用户 CE CE Internet IPsec隧道MPLS VPN 192.168.1.0 /24 10.0.1.0/24 192.168.2.0 /24 10.0.2.0/24 IPsec+PEPE 1.1.1.1 2.2.2.2 3.3.3.3 图 19 VRF aware IPsec 应用原理图 图 19 中 CE 设备通过 Internet 接入 MPLS 骨干网,走 IPsec 隧道,在接入的 PE 设备上定义 IPsec 策 略,将不同的策略与 VRF 相对应。 每个 IPsec 隧道与两个 VRF 相关联。经 IPsec 封装后的报文所属的 VRF 称为前向 VRF(Front Door VRF,缩写 FVRF) ,而 IPsec 内部封装的报文所属的 VRF 称为内部 VRF(Inside VRF,缩写 IVRF) 。 多个 IPsec 隧道的终点可以在同一个接口上,那么这些隧道的 FVRF 是相同的,都是输入接口所对应 的 VRF,而 IVRF 是不同的,根据用户在 IPsec 策略和隧道中的配置将映射到不同的 IVRF 中。 从 IP 向 MPLS 流向的报文,先做 IPsec 的解封装,并由此获得该 SA 对应的 VRF 索引,通过 IPsec 内部封装的 IP 目的地址在对应的 VRF 中完成路由转发。 从 MPLS 向 IP 流向的报文,在 MPLS 处理可获得 VRF 索引,去掉 MPLS 标签,交 ipintr 队列,在 ip_output 中 IPsec 根据通常的五元组加 VRF 索引完成策略匹配,进一步完成 IPsec 封装,再根据 IPsec 的 外部头路由到对应 CE 设备上。 第第 6 章章IPsec 调试信息调试信息 下述调试信息以下图所示网络环境为例: f0:128.255.40.211/22 f0:128.255.40.212/22 f1:10.1.2.1/24 f1:10.1.1.1/24 VPNA VPNB 图 20 调试信息测试环境示例 VPNA 与 VPNB 通过 f0 口直接建立 IPsec 隧道,保护的数据流是从 10.1.2.0(掩码 255.255.255.0)网 段到 10.1.1.0(掩码 255.255.255.0)网段,IPsec 报文封装模式使用的是隧道模式,采用的变换形式为 ESP 协议,NULL 加密算法和 SHA1-HMAC 认证算法。 6.1IPsec 报文调试信息报文调试信息 1使用如下命令 debug crypto ipsec address rx | tx可以显示 IPsec 报文的地址信息,其中关键字 rx 表示只显示输入方向报文,tx 表示只显示输出方向报文。如: 00:11:45: DEBUG: outbound: outbound 表示是输出报文,src 是源地址,dst 是目的地址,proto 是协议号,50 表示是 ESP,也就是 说该报文是 ESP 报文,如果是 51 就表明是 AH 报文。 00:11:45: DEBUG: inbound: inbound 表明该报文是输入报文。 2使用如下命令 debug crypto ipsec packet |rx | tx显示 IPsec 报文详细内容,其中关键字的含义与上 述相同。如: 输出报文: ipsec out: 下划线部分是 96 位的采用 SHA1-HMAC 算法得到的认证数据,其作用是对报文进行完整性保护。 输入报文: ipsec in: 6.2IKE 协商过程调试信息协商过程调试信息 使用命令 debug crypto ike normal 可以观察到 IKE 协商过程中的详细调试信息。 6.2.1正常协商过程正常协商过程 示例如下:(阶段 1 协商以主模式为例,积极模式与之类似) 1主模式主模式 02:28:08: %IKE-DBG-initiating Main Mode 发起主模式协商 02:28:08: %IKE-DBG-instantiate local local_id with 128.255.40.223 本地 ID 为 128.255.40.223 02:28:08: %IKE-DBG-received Vendor ID payload draft-ietf-ipsec-nat-t-ike-03 接收到对端发送的响应消息中有支持 NAT 穿越的 Vendor ID 02:28:08: %IKE-DBG-received Vendor ID payload Dead Peer Detection 响应方支持 DPD 02:28:08: %IKE-DBG-transition from state STATE_MAIN_I1 to state STATE_MAIN_I2 第一次交换完成,进入第二次交换 02:28:08: %IKE-DBG-NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: no NAT detected 第二次交换发现双方之间不存在 NAT 02:28:08: %IKE-DBG-transition from state STATE_MAIN_I2 to state STATE_MAIN_I3 第二次交换完成,进入第三次交换 02:28:08: %IKE-DBG-Main mode peer ID is ID_IPV4_ADDR: 128.255.40.222 02:28:08: %IKE-DBG-instantiate peer id (none) with 128.255.40.222 确认对端 ID 为 128.255.40.222 02:28:08: %IKE-DBG-transition from state STATE_MAIN_I3 to state STATE_MAIN_I4 02:28:08: %IKE-DBG-ISAKMP SA established IKE SA 协商成功 响应方的消息处理与之类似,这里不再赘述。 2快速模式快速模式 02:28:08: %IKE-DBG-initiating Quick Mode PSK+AUTOUP 发起快速模式协商 02:28:09: %IPSEC-DBG-KERN : success to setup the esp inbound ipsec sa of state 13 02:28:09: %IPSEC-DBG-KERN : success to setup the esp outbound ipsec sa of state 13 02:28:09: %IKE-DBG-Dead Peer Detection (RFC3706) enabled 为阶段二 IPsec SA 启动 DPD 02:28:09: %IKE-DBG-transition from state STATE_QUICK_I1 to state STATE_QUICK_I2 发出阶段二的第二条消息 02:28:09: %IKE-DBG-sent QI2, IPsec SA established IPsec SA 协商成功。 响应方的消息处理与之类似,这里不再赘述。 6.2.2协商失败信息协商失败信息 关于 IKE 协商失败常见的有如下几种:阶段 1 协商 IKE 提议不一致,预共享密钥不匹配(采用预共 享密钥认证方式) ,IPsec SA 的提议(使用的协议、算法等变换方式)不匹配,双方提议的受 IPsec 保护 的数据流不一致等。 1双方阶段双方阶段 1 协商策略不一致协商策略不一致 当协商双方关于 IKE SA 的提议配置不一致的时候,例如加密算法配置不一致,会导致主模式第一回 合(第一二条消息交换)协商失败,以响应方为例:(以主模式为例,积极模式与之类似) 00:24:20: %IKE-DBG-received Vendor ID payload draft-ietf-ipsec-nat-t-ike-03 00:24:20: %IKE-DBG-ignoring Vendor ID payload draft-ietf-ipsec-nat-t-ike-02 00:24:20: %IKE-DBG-ignoring Vendor ID payload draft-ietf-ipsec-nat-t-ike-00 00:24:20: %IKE-DBG-received Vendor ID payload Dead Peer Detection 00:24:20: %IKE-ERR-no acceptable Oakley Transform 由于对方提议的 SA 载荷中的变换算法(如加密算法)与本地策略不符,因而拒绝对方的协商请求, 协商失败,删除产生的状态信息。 2预共享密钥不匹配预共享密钥不匹配 当采用预共享密钥认证方式时,如果协商双方预共享密钥不匹配,会导致主模式第三回合(第五六 条消息交换)协商失败,以响应方为例: 00:26:24: %IKE-DBG-received Vendor ID payload draft-ietf-ipsec-nat-t-ike-03 00:26:24: %IKE-DBG-ignoring Vendor ID payload draft-ietf-ipsec-nat-t-ike-02 00:26:24: %IKE-DBG-ignoring Vendor ID payload draft-ietf-ipsec-nat-t-ike-00 00:26:24: %IKE-DBG-received Vendor ID payload Dead Peer Detection 00:26:24: %IKE-DBG-responding to Main Mode from unknown peer 128.255.40.223 00:26:24: %IKE-DBG-instantiate local local_id with 128.255.40.222 00:26:24: %IKE-DBG-transition from state STATE_MAIN_R0 to state STATE_MAIN_R1 主模式第一次交换完成 00:26:24: %IKE-DBG-NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: no NAT detected 00:26:24: %IKE-DBG-transition

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论