资源预览内容
第1页 / 共70页
第2页 / 共70页
第3页 / 共70页
第4页 / 共70页
第5页 / 共70页
第6页 / 共70页
第7页 / 共70页
第8页 / 共70页
第9页 / 共70页
第10页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
.IPSec实现分析目 录1引言11.1编写目的11.2编写背景11.3预期读者和阅读建议11.4文档约定11.5参考资料12详细设计12.1IPSec介绍12.2IPSec实现62.3IPSec发包和收包212.4内核与IKE进程通信253IKE协商介绍273.1主模式(第一阶段)283.2野蛮模式(第一阶段)343.3快速模式(第二阶段)353.4IKE进程状态转换及调用关系384哈希的计算414.1哈希计算414.2DH计算434.3加密材料(RFC2409 Appendix B)485IPSEC穿NAT505.1穿NAT讨论505.2NAT穿越原理535.3NAT穿越实现575.4两种模式对比59精品.精品.引言1.1 编写目的编写该文档的目的是为了更好地理IPSec模块。为了能更好地理解IPSec,本详细设计报告描述了IPSec介绍、数据结构、IPSec策略匹配、SA的查找&安全路由的安装、发包和收包过程和IPSec IKE。1.2 编写背景无1.3 预期读者和阅读建议本文档的预期读者包括网关安全模块开发人员。开发人员应重点理解函数实现和数据结构之间的关系。1.4 文档约定IPSec Internet Protocol Security SASecurity Association (安全联盟)SPISecurity parameter index(安全参数索引)AHAuthentication Header (认证头)ESPEncapsulating Security Payload (加密安全载荷)IKEInternet Key Exchange HMAC Keyed-hash Message Authentication Code1.5 参考资料RFC 2401 Security Architecture for the Internet ProtocolRFC 2402 IP Authentication HeaderRFC 2406IP Encapsulating Security Payload (ESP)RFC 2407 The Internet IP Security Domain of Interpretation for ISAKMPRFC 2408 Internet Security Association and Key Management Protocol (ISAKMP) RFC 2409 The Internet Key Exchange (IKE) RFC 3947 Negotiation of NAT-Traversal in the IKERFC 3948 UDP Encapsulation of IPsec ESP Packets2 详细设计2.1 IPSec介绍IPSEC(Internet Protocol Security)是IETF指定的一个IP层安全框架协议。它提供了在未提供保护的网络环境中传输敏感数据的保护。它定义了IP数据包格式和相关基础结构,以便为网络通信提供端对端、加强的身份验证、完整性、防重放和保密性等。IPSec到底是如何起作用的呢?为了更直观的理解IPSec VPN,图2-1到图2-3说明了:当两个机构通信的重要内容不想被中间人截获到,可以采用的方法。图2-1是最原始的方法,两个机构直接通过Internet进行通信,但是这样的话,很容易遭受中间黑客的截获和对内容的篡改,而两边都无法知道,很可能会造成重要损失。图2-2,两边的机构通过架设自己的专用网络进行通信,这样的话,黑客不修改物理的连接是无法接触到两边的通信内容的,所以比较安全,但是这样的方式会耗费巨大的投资。精品.图2-3,通过架设虚拟的VPN通道就可以使得:1.黑客能截获到报文,但也无法得知内容;2.即便是修改了内容,但两边机构是能检测到报文有无修改。图2-1 普通通信方式图2-2 架设专用网络图2-3 开辟虚拟通道当然VPN有多种,本文着重从IPSec VPN的角度介绍IPSec的原理及实现。IPSec通过两种协议来实现对IP数据包的保护,分别是AH和ESP(下文介绍)。IPSec既可以保护一个完整的IP载荷,也可以保护某个IP载荷的上层协议(例如TCP)。这两种方式的保护取决于两种不同的模式来提供的,如图2-4。图2-4 两种模式传输模式用来保护上层协议,而隧道模式则用来保护整个IP报文。两种协议均能使用两种模式进行数据传输。精品.IPSec提供以下的安全特性: 数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密。 数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。 数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法。 防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。2.1.1 封装协议ESPESP(Encapsulating Security Payload)属于IPSec的一种协议,可用于确保IP数据包的机密性(未被别人看过)、数据的完整性以及对数据源的身份验证。ESP的协议号是50,ESP的协议头的格式如图2-5所示。图2-5 ESP头SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。Sequence Number是单调递增的数值,用来防止重放攻击。Payload Data可变长度,实际要传输的数据。Padding 填充数据,以字节为单位,为了保证数据的对齐。Pad length 填充长度Next Header 下一个头的协议号Authentication Data 可变长度,认证数据ESP同时提供了机密性以及完整性,所以在其SA中必须同时定义两套算法用来确保机密性的算法叫作一个cipher(加密器),而负责完整性的算法叫作authenticator(验证器)。ESP作用的方式,如图2-6。通过加密算法(对称加密DES/3DES/AES)对数据进行加密,然后使用散列函数MD5/SHA-1对报文进行摘要计算,最后把摘要放入ESP校验的部分。精品.图2-6 ESP头的使用通过加密来实现数据的机密性,保证传输过程中,即便是有人截获报文,也无法得知报文的内容;通过ESP校验来实现数据的完整性,如果一旦在传输过程中对内容进行篡改,则校验不通过。当接收方收到包以后,首先检查序列号(防止重放),其次校验数据完整性,最后解密数据成明文。2.1.2 封装协议AHAH(AuthenticationHeader) 协议,用来向 IP通信提供数据完整性和身份验证,同时可以提供抗重播服务。AH的协议号是51,AH的协议头的格式如图2-7所示。图2-7 AH认证头Next Header 占8bit,下一个头的协议号;Payload Len 占8bit,表示AH头的长度,单位是4字节,计算完要减2为什么?;Reserved 占16bit,保留SPI 占32bit,安全参数索引,用来定位SASequence Number 占32bit,序列号,用来抗重播攻击Authentication Data 可变长度,认证数据AH提供了完整性校验、数据源认证及抗重播攻击的能力,但不提供机密性,传输过程中以明文方式进行。AH头作用的方式如图2-8所示。精品.图2-8 AH头的使用跟ESP一样,通过对报文进行散列(MD5/SHA)计算来得到认证数据,有所不同的是加入了HMAC(Keyed-hashed Message Authentication Code,密钥化散列认证代码)的方式。图2-9所示是普通散列认证方式,第步是对明文进行散列计算得到一个散列值,并把散列值和明文一起传送给用户B;第步,当用户B收到信息后,也对明文进行散列计算;第步,用计算得到的散列值2与散列值1进行比较,如果发现不一样,则丢弃数据包(说明传输过程中,有人改动数据包),如果发现一致,则数据包未被改动。但这样的方式,中间人可以篡改信息,并同样计算散列值来实现改动数据包的目的。图2-10所示是HMAC的方式,和图2-9不一样的是,通过加入共享密钥来计算散列值,这样的话,中间人是没有办法改动数据包的。同时HMAC的方式实现了完整性校验和源认证。图2-9 普通散列认证精品.图2-10 HMAC方式认证2.1.3 IPSec应用场景IPSec VPN的应用场景分为3种:1. Site-to-Site(站点到站点或者网关到网关):企业内网(若干PC)之间的数据通过这些网关建立的IPSec隧道实现安全互联。这种方式只能使用隧道模式。2. End-to-End(端到端或者PC到PC): 两个PC之间的通信由两个PC之间的IPSec会话保护,而不是网关。这种方式既可使用传输模式也可使用隧道模式。3. End-to-Site(端到站点或者PC到网关):两个PC之间的通信由网关和异地PC之间的IPSec进行保护。这种方式只能使用隧道模式。图2-11 应用场景从上图可以看出来,隧道模式可应用于任何场景,传输模式只适用于端到端的模式;但是 隧道模式会多一层IP头的开销,所以当使用端到端的情况,建议使用传输模式。2.2 IPSec实现2.2.1 IPSec大体实现思想SA(Security Association):安全联盟。SA是构成IPSec的基础,是两个通信实体协商建立起来的一种协定。它决定了用来保护IPSec协议的加密算法、认证算法、密钥以及密钥存活时间等内容。SA 由三个元素定义:安全协议、唯一安全参数索引 (security 精品.parameter index, SPI) 和 IP 目标。SA是单向的,发送需要一个SA,接收也需要一个SA;SA由手工或者通过IKE自动协商两种方式创建。IPSec的主要处理流程,如图2-12所示。图2-12 处理流程图(左:发包 右:收包)安全策略是用来匹配看哪些流需要进行IPSec的处理,如果匹配上安全策略则进行IPSec处理。策略的意义在于,可以把想通过IPSec处理的流(感兴趣流)区分出来,其余的不处理。安全路由,如图2-13所示,以隧道模式(ESP+AH)为例来说明安全路由,其实就是用路由结构体存放一些处理函数(SA),然后每走一层处理一层,这样的话,扩展性会很好。被称之为安全路由,后面会详细介绍这方面,所以到这里为止,先有个大体概念。图2-13 安全路由示意图图2-14 所示为IPSEC对于数据包的处理所经过的钩子点,本例中均为隧道模式,由于传输模式只支持点对点,网关上启用IPSEC的情况,基本上用不到传输模式。数据流经过FORWARDING的时候,会匹配IPSEC安全策略,然后会经过ESP/AH头的处理以及封装外层IP头,封装完后,属于本地发包(正常发包),然后经过LOCAL_OUT精
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号