您好,欢迎访问三七文档
10IPSec本章要点:IPSec的概念、功能和体系结构AH机制和功能ESP机制和功能IKE机制和功能IPSec安全体系结构IPSec(IPSecurity)是一种由IETF设计的端到端的确保IP层通信安全的机制。IPSec不是一个单独的协议,而是一组协议,IPSec协议的定义文件包括了12个RFC文件和几十个Internet草案,已经成为工业标准的网络安全协议。IPSec在IPv6中是必须支持的,而在IPv4中是可选的。IP通信可能会遭受如下攻击:窃听、篡改、IP欺骗、重放……IPSec协议可以为IP网络通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,保证数据的完整性和机密性,有效抵御网络攻击,同时保持易用性。IPSec协议族相关的RFCRFC内容2401IPSec体系结构2402AH(AuthenticationHeader)协议2403HMAC-MD5-96在AH和ESP中的应用2404HMAC-SHA-1-96在AH和ESP中的应用2405DES-CBC在ESP中的应用2406ESP(EncapsulatingSecurityPayload)协议2407IPSecDOI2408ISAKMP协议2409IKE(InternetKeyExchange)协议2410NULL加密算法及在IPSec中的应用2411IPSec文档路线图2412OAKLEY协议IPSec的功能作为一个隧道协议实现了VPN通信第三层隧道协议,可以在IP层上创建一个安全的隧道,使两个异地的私有网络连接起来,或者使公网上的计算机可以访问远程的企业私有网络。保证数据来源可靠在IPSec通信之前双方要先用IKE认证对方身份并协商密钥,只有IKE协商成功之后才能通信。由于第三方不可能知道验证和加密的算法以及相关密钥,因此无法冒充发送方,即使冒充,也会被接收方检测出来。保证数据完整性IPSec通过验证算法保证数据从发送方到接收方的传送过程中的任何数据篡改和丢失都可以被检测。保证数据机密性IPSec通过加密算法使只有真正的接收方才能获取真正的发送内容,而他人无法获知数据的真正内容。IPSec体系结构图IKE协议AH协议ESP协议加密算法验证算法IPSec安全体系DOIAH(AuthenticationHeader)AH为IP数据包提供如下3种服务:数据完整性验证通过哈希函数(如MD5)产生的校验来保证数据源身份认证通过在计算验证码时加入一个共享密钥来实现防重放攻击AH报头中的序列号可以防止重放攻击。ESP(EncapsulatingSecurityPayload)ESP除了为IP数据包提供AH已有的3种服务外,还提供另外两种服务:数据包加密对一个IP包进行加密,可以是对整个IP包,也可以只加密IP包的载荷部分,一般用于客户端计算机数据流加密。一般用于支持IPSec的路由器,源端路由器并不关心IP包的内容,对整个IP包进行加密后传输,目的端路由器将该包解密后将原始包继续转发。加密是ESP的基本功能,而数据源身份认证、数据完整性验证以及防重放攻击都是可选的。AH和ESP可以单独使用,也可以嵌套使用。通过这些组合方式,可以在两台主机、两台安全网关(防火墙和路由器),或者主机与安全网关之间使用。IKE(InternetKeyExchange)IKE协议负责密钥管理,定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法。IKE将密钥协商的结果保留在安全联盟(SA)中,供AH和ESP以后通信时使用。解释域DOI定义IKE所没有定义的协商的内容;DOI为使用IKE进行协商SA的协议统一分配标识符。共享一个DOI的协议从一个共同的命名空间中选择安全协议和变换、共享密码以及交换协议的标识符等,DOI将IPSec的这些RFC文档联系到一起。DOI(DomainofInterpretation)安全联盟&安全联盟数据库SA(SecurityAssociation,安全联盟)是两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种协定,内容包括采用何种IPSec协议(AH还是ESP)、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口、计数器等,从而决定了保护什么、如何保护以及谁来保护。可以说SA是构成IPSec的基础。AH和ESP两个协议都使用SA来保护通信,而IKE的主要功能就是在通信双方协商SA。SA是单向的,进入(inbound)SA负责处理接收到的数据包,外出(outbound)SA负责处理要发送的数据包。因此每个通信方必须要有两种SA,一个进入SA,一个外出SA,这两个SA构成了一个SA束(SABundle)。SA的表示方法每个SA由三元组(SPI,IP目的地址,IPSec协议)来惟一标识SPI(SecurityParameterIndex,安全参数索引)是32位的安全参数索引,用于标识具有相同IP地址和相同安全协议的不同的SA,它通常被放在AH或ESP头中。IP目的地址:IP目的地址,它是SA的终端地址。IPSec协议:采用AH或ESP。SA的管理(1)创建:SA的创建分两步进行——先协商SA参数,再用SA更新SAD。人工密钥协商:SA的内容由管理员手工指定、手工维护。手工维护容易出错,而且手工建立的SA没有生存周期限制,永不过期,除非手工删除,因此有安全隐患。调试过程中有用。IKE自动管理:SA的自动建立、动态维护和删除是通过IKE进行的。而且SA有生命期。如果安全策略要求建立安全、保密的连接,但又不存在与该连接相应的SA,IPSec的内核会立刻启动IKE来协商SA。SA的管理(2)删除:存活时间过期;密钥已遭破解;使用SA加密/解密或验证的字节数已超过策略设定的某一个阈值;另一端要求删除这个SA。必须先删除现有SA,再协商建立一个新的SA。为避免耽搁通信,应该在SA过期之前就协商好新的SA。SAD(SecurityAssociationDatabase,安全联盟数据库)SAD并不是通常意义上的“数据库”,而是将所有的SA以某种数据结构集中存储的一个列表。对于外出的流量,如果需要使用IPSec处理,然而相应的SA不存在,则IPSec将启动IKE来协商出一个SA,并存储到SAD中。对于进入的流量,如果需要进行IPSec处理,IPSec将从IP包中得到三元组(SPI,DST,Protocol),并利用这个三元组在SAD中查找一个SA。有时是四元组,加上源地址(SRC)。SAD中每个SA除了上述三元组之外,还包括:1.序列号(SequenceNumber):32位,用于产生AH或ESP头的序号字段,仅用于外出数据包。SA刚建立时,该字段值设置为0,每次用SA保护完一个数据包时,就把序列号的值递增1,对方利用这个字段来检测重放攻击。通常在这个字段溢出之前,SA会重新进行协商。2.序列号溢出(SequenceNumberOverflow):标识序号计数器是否溢出。用于外出数据包,在序列号溢出时加以设置。安全策略决定一个SA是否仍可用来处理其余的包。3.抗重放窗口:32位,用于决定进入的AH或ESP数据包是否为重发的。仅用于进入数据包,如接收方不选择抗重放服务(如手工设置SA时),则不用抗重放窗口。4.存活时间/生存周期(Lifetime,TTL):规定每个SA最长能够存在的时间。SA生存周期的计算包括两种方式:以时间为限制,每隔指定长度的时间就进行更新;以流量为限制,每传输指定的数据量(字节)就进行更新。(这两种方式可同时使用,优先采用先到期者)可采用两种类型的存活时间:软存活时间:警告内核,通知它SA马上就要到期了;“硬存活时间”:真正的存活时间,当硬存活时间到期之前,内核可以及时协商好一个新SA。5.模式(mode):IPSec协议可用于隧道模式还是传输模式;6.通道目的地(TunnelDestination):对于通道模式的IPSec来说,需指出通道的目的地——即外部头的目标IP地址;7.PMTU参数:路径MTU,以对数据包进行必要的分段。安全策略和安全策略数据库SP(SecurityPolicy,安全策略):决定对IP数据包提供何种保护,并以何种方式实施保护。SP主要根据源IP地址、目的IP地址、入数据还是出数据等来标识。IPSec还定义了用户能以何种粒度来设定自己的安全策略,不仅可以控制到IP地址,还可以控制到传输层协议或者TCP/UDP端口等。SPD(SecurityPolicyDatabase,安全策略数据库)SPD也不是通常意义上的“数据库”,而是将所有的SP以某种数据结构集中存储的列表。(包处理过程中,SPD和SAD两个数据库要联合使用)当接收或将要发出IP包时,首先要查找SPD来决定如何进行处理。存在3种可能的处理方式:丢弃、不用IPSec和使用IPSec。丢弃:流量不能离开主机或者发送到应用程序,也不能进行转发。不用IPSec:对流量作为普通流量处理,不需要额外的IPSec保护。使用IPSec:对流量应用IPSec保护,此时这条安全策略要指向一个SA。对于外出流量,如果该SA尚不存在,则启动IKE进行协商,把协商的结果连接到该安全策略上。IPSec的实施(1)在主机实施OS集成(图a)IPSec作为网络层的一部分来实现堆栈中的块(图b)IPSec作为一个“楔子”插入网络层与数据链路层之间,BITS(Bump-in-the-stack)应用层传输层网络层+IPSec数据链路层图aIPSec与OS集成应用层传输层网络层数据链路层图bBITSIPSecIPSec处理IPSec的实施(2)在路由器中实施原始实施:等同于主机上的OS集成方案,IPSec是集成在路由器软件当中;线缆中的块(BITW:Bump-in-the-wire):等同于BITS,IPSec在一个设备中实施,该设备直接接入路由器的物理接口,不运行路由算法,只保障数据包的安全。应用层传输层网络层+IPSec数据链路层外部IPSec功能实体IPSec运行模式传输模式(TransportMode)和隧道模式(TunnelMode)。AH和ESP都支持这两种模式,因此有四种组合:传输模式的AH隧道模式的AH传输模式的ESP隧道模式的ESPIPSec的传输模式传输模式要保护的是IP包的载荷,通常情况下,只用于两台主机之间的安全通信。正常网络层次处理:传输层数据报IP头AH启用IPSec传输模式之后:传输层数据报IP头应用AHESP传输层数据报IP头应用ESPESP传输层数据报IP头应用AH和ESPAHIPSec的隧道模式隧道模式保护的是整个IP包。通常情况下,只要IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。ESP原始IP包IP头应用ESP内部IP头:由主机创建外部IP头:由提供安全服务器的设备添加嵌套隧道3.3.3.2主机B1.1.1.1主机ARARB3.3.3.12.3.2.22.2.2.11.1.1.2数据包流SA(ESP)SA(AH)AH数据IP头ESPIP头IP头Src=2.2.2.1Dst=2.3.2.2Src=1.1.1.1Dst=2.3.2.2Src=1.1.1.1Dst=3.3.3.2无效嵌套ESP数据IP头IP头Src=RADst=RCSrc=主机ADst=主机B主机B主机ARARBRC通道1(ESP)通道2(AH)AHIP头Src=RBDst=主机BESP数据IP头IP头Src=RADst=RCSrc=主机ADst=主机BRA处理RB处理IPSec处理(1)-外出处理外出处理过程中,传输层的数据包流入IP层。IP层检索SPD数据库,判断应为这个包提供哪些服务。可能有以下几种情况:丢弃:简单丢掉;绕过安全服务:为载荷增添IP头,然后分发IP包;应用安全服务:假设已建立SA,则返回指向该SA的指针;如果
本文标题:IPSec详细介绍
链接地址:https://www.777doc.com/doc-3965916 .html