(图片来源网络,侵删)
因特网协议安全IPSec IETF定义一种开放标准的安全框架结构,通信双方在IP层通过加密、完整性校验、数据源认证等方式,可以用来保证IP数据报文在网络上传输的机密性、完整性和防重放;目前IPSec最主要的应用是构造虚拟专用网(VPN);企业远程分支机构可以通过使用IPSec VPN建立安全传输通道,接入到企业总部网络--私密性:指对数据进行加密保护,用密文的形式传送数据--完整性:指对接收的数据进行散列计算,以判定报文是否被篡改--防重放:指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒绝旧的或重复的数据包--防抵赖:指基于签名及签名验证,可以判断数据的发送方是真实存在的用户VPN技术的分类:1、Peer-to-Peer VPN:例如MPLS-VPN,大部分配置在运营商的PE(Provider Edge)路由器上做,在内网CE(Customer Edge)路由器上做少量配置即可;此种是运营商提供的VPN解决方案,需要向运营商申请,费用较高2、Overlay VPN:例如GRE-VPN和IPsec-VPN;GRE-VPN可以支持任何路由选择协议和任意类型的数据流量;IPsec-VPN只能支持IPv4、路由器两端的参数需要完全匹配且只能支持单播流量;目前在两者基础上还有一种GRE over IPSec VPN,数据先通过GRE封装再通过IPSec进行封装,既保证了数据的兼容性又能保障了数据的安全性,是目前比较完善的VPN解决方案3、IPsec-VPN可分为Site-to-Site VPN和Remote-Access VPN--Site-to-Site VPN;一般部署在两个办公场点的边界路由器上--Remote-Access VPN/拨号VPN;一般用于实现单个PC和公司内网之间的通信;需要结合客户端软件使用(easy-vpn)▶散列算法:散列函数HASH哈希计算,进行数据帧的完整性校验计算方法一:CRC(32bit)循环冗余校验 (Layer2的FCS校验)计算方法二:MD5 (128bit) SHA-1(160bit) SHA-2(256bit)计算方法三:HMAC散列信息验证码,原始数据+散列算法+(密钥/签名)HASH的特点:1.不定长输入,定长输出 2.雪崩效应 3.计算不可逆HMAC(HASH Message Authentication Code):散列信息认证码,用于保证流量的完整性,基于DATA和KEY进行计算;一般的HASH算法只针对DATA进行计算MD5输出为128位,SHA-1的输出为160位,SHA-2输出为256位,但是IPSec只能携带前96位,存在着很大的漏洞▶加密算法:对称加密、非对称加密、数字签名和DH算法1、对称加密:使用一把相同的密钥对数据进行加密和解密;加密速度快,报文紧凑,可以用于大流量数据的加密;如DES、3DES、AES(256bit以上);2.1、非对称加密:使用一对密钥对数据进行加密和解密,使用公钥对数据集进行加密,使用私钥对数据进行解密;加密速度慢,密文不紧凑,通常只用于数据签名或加密一些小文件;如RSA、ECC(1024bit以上);2.2、数字签名:私钥加密,公钥解密;先对完整数据数据做HMAC计算,再使用私钥进行加密,用于防数据篡改和用户身份认证;3、DH算法:不用交互密钥本身,通过交互密钥的材料,生成一把相同的密钥;还可以周期性生成新的密钥并自动更换密钥IPSec架构:IPSec体系结构主要由IKE/SA、AH和ESP协议套件组成▶IKE协议:包含三个协议的主要功能,用来完成第一阶段的自动协商加密算法、散列算法和设备身份认证;包含协商参数;产生KEY、交换KEY、更新KEY;对双方进行身份认证;对密钥进行管理;组成协议如下:1.ISAKMP;定义了信息交换的体系结构/格式;基于UDP,源目端口都是5002.SKEME;实现公钥加密认证的机制3.Oakley;提供在两个IPsec对等体间达成相同加密密钥的基于模式的机制▶安全联盟SA:指的一组对等体之间用来保护流量手段的集合,定义了IPSec通信对等体间使用的数据封装模式、认证和加密算法、密钥等参数;SA是单向的,两个对等体之间的双向通信至少需要两个SA,如果两个对等体希望同时使用AH和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一对SASA由一个三元组来唯一标识,包括安全参数索引SPI、目的IP地址、安全协议▶IKE动态协商方式:只需要通信对等体间配置好IKE协商参数,由IKE自动协商来创建和维护SA,动态协商方式建立安全联盟相对简单些;对于中、大型的动态网络环境中,推荐使用IKE协商建立SA▶AH协议:认证报头,协议号51;用来完成第二阶段提供的功能是数据源验证、数据完整性校验和防报文重放功能;AH可以对整个数据包做认证然而AH并不加密所保护的数据▶ESP协议:安全封装载荷,协议号50;用来完成第二阶段提供的功能是数据源验证、数据完整性校验和防报文重放功能;能提供AH的所有功能外,还可提供对数据的加密功能IPsec工作过程:▶第一阶段:协商如何保护流量,协商加密算法、散列算法,使用哪个DH组、协商SA生存周期、协商设备认证方式;通过DH算法交互密钥,密钥供加密算法使用保护连接,此时形成一条双向SA;为了确保两个设备之间避免出现伪装者,在做IPsec的时候需要进行设备认证-预共享密钥(实验室环境中使用,不够安全)-RSA加密的随机数(使用很少)-RSA数字证书/签名(CA颁发的证书,使用范围较广)第一阶段协商的具体内容:1、 协商对等体之间采用何种方式做认证;预共享密钥/RSA加密的随机数/证书2、 协商双方使用何种加密算法;AES/RSA/ECC3、 协商双方使用何种散列算法;HMAC/MD5/SHA4、 协商双方使用何种DH密钥组5、 协商双方使用何种模式;主模式/野蛮模式6、 协商SA的生存周期第一阶段有两种工作模式:主模式和野蛮模式;主模式:在三次交换中总共用到了六条消息,最终建立了SA;主模式的好处:设备验证的步骤发生在安全的管理连接中,因为这个连接是在前两个步骤中构建的,因此,两个对等体需要发送给对方的任何实体信息都可以免受攻击;Site-to-Site VPN默认使用主模式野蛮模式(积极模式):对于两端IP地址不是固定的情况(如ADSL拨号上网),并且双方都希望采用预共享密钥验证方法来创建IKE SA,就需要采用野蛮模式另外如果发起者已知回应者的策略,采用野蛮模式也能够更快地创建IKE SA注:使用Remote-Access VPN时就一定要用野蛮模式来协商,如果用主模式的话,就会出现根据源IP地址找不到预共享密钥的情况,以至于不能生成SKEY_ID两种模式的区别:1、野蛮模式协商比主模式协商更快主模式需要交互6个消息,野蛮模式只需要交互3个消息2、主模式协商比野蛮模式协商更严谨、更安全主模式在5、6个消息中对ID信息进行了加密野蛮模式由于受到交换次数的限制,ID信息在1、2个消息中以明文的方式发送给对端即主模式对对端身份进行了保护,而野蛮模式则没有3、对NAT/PAT的支持:①对预共享密钥认证:主模式不支持NAT转换,而野蛮模式支持②对于证书方式认证:两种模式都能支持4、 两种模式在确定预共享密钥的方式不同;主模式只能基于IP地址来确定预共享密钥;而野蛮'模式是基于ID信息(主机名和IP地址)来确定预共享密钥注:在按需链路中,可以启用IKE Keepalive特性,路由器会周期性10秒/次发送IKE Keepalive报文,用于检测路径的实时连通性;在单向启用即可▶第二阶段:协商使用哪一款安全协议加密数据(ESP或AH)、保护流量;使用ESP/AH的时候,选择哪一种加密算法和散列算法、协商是否需要再次进行DH算法生成新的密钥(PFS)、SA周期和IPSec封装模式;协商完毕形成两条单向SA第二阶段协商的具体内容:1、协商双方使用何种封装模式;隧道模式/传输模式2、协商双方使用何种加密算法;AES/RSA/ECC3、协商双方使用何种散列算法;HMAC/MD5/SHA4、协商双方使用何种DH密钥组5、协商双方使用的密钥更新周期第二阶段只有一种工作模式:快速模式;它定义了受保护数据连接是如何在两个IPsec对等体之间构成的;快速模式有两个主要的功能:1.协商安全参数来保护数据连接2.周期性的对数据连接更新密钥信息.快速模式需要交换3个报文,这些消息都是使用IKE进行保护,这意味着将使用IKE phase1中导出来的SKEYIDe和SKEYIDa对所有分组进行加密和验证注:针对Remote-Access VPN;思科还使用了一个1.5阶段,包含扩展认证Xauth和Mode config两种模式在这个阶段,如果启用了DPD特性,路由器会周期性发送DPD报文,用于检测路径的实时连通性;需要在双向启用IPSec封装模式:传输模式,适用于同一个园区网内的两台主机之间的安全连接1、在IP报头和上层协议之间插入AH或ESP报头;对上层协议数据提供保护--在IP头部之后插入AH头,会对整个IP数据包进行完整性校验--在IP头部之后插入ESP头,在数据字段后插入尾部以及认证字段;只对IP数据包中的ESP报头,上层数据和ESP尾部进行完整性校验2、传输模式中的AH+ESP:在IP头部之后插入AH和ESP头,在数据字段后插入尾部以及认证字段(可选的);对高层数据和ESP尾部进行加密,对整个IP数据包进行完整性校验3、在GRE over IPSec环境中必须使用传输模式,数据封装格式为:Ethernet2|IPV4(新)|ESP|GRE|IPv4|TCP|HTTP|FCSIPSec封装模式:隧道模式,适用于跨园区网的两台边界路由器间建立安全连接1、AH或ESP头封装在原始IP报文头之前,并另外生成一个新的IP报头封装到AH或ESP之前;隧道模式可以完全地对原始IP数据报进行认证和加密,而且可以使用新的IP报头来隐藏内网主机的私有IP地址--在IP头部之后插入AH头,会对整个IP数据包进行完整性校验--在IP头部之后插入ESP头,在数据字段后插入尾部以及认证字段(可选的);只对IP数据包中的ESP报头,上层数据和ESP尾部进行完整性校验2、隧道模式中的AH+ESP:对整个原始IP报文和ESP尾部进行加密,对除新IP头之外的整个IP数据包进行完整性校验注:ESP散列封装的是数据载荷,对新封装的IP报头不会保护,这种在NAT环境中不会影响正常使用,但是在PAT环境中因为四层接口被保护,就无法实现PAT端口转换;为了支持PAT,需要开启NAT穿越功能(IPSec NAT-T),在IPSec封装报文中添加UDP字段,默认端口号为4500,PAT路由器通过记录端口号来放行对应流量;封装格式:Ethernet2|IPV4(新)|UDP|ESP|GRE|IPv4|TCP|HTTP|FCS通过ESP和AH做散列计算时是不包含三层报头中TTL和校验和字段;AH散列保护的是整个数据包,所以是不支持NAT和PAT推荐书籍:思科VPN完全配置手册普通的IPsec-VPN主要适用于不同厂家VPN之间的对接,兼容性非常好,思科路由器和ASA可以和大部分非思科厂家的VPN设备进行IPsec-VPN对接然而这种普通的IPsec-VPN并不适用于复杂的网络环境,主要存在如下问题:1、由于没有虚拟隧道接口,不支持通过运行动态路由协议来实现路由互通;2、由于没有虚拟隧道tunnel接口,不能对通信点之间的明文流量进行控制和监测(如ACL、QOS、NAT、Netflow等);3、配置复杂,每增加一个站点或网段,都要增加许多感兴趣流,排错复杂为了解决IPsec-VPN存在的问题,思科提供的解决方案是GRE over IPsec▶GRE Over IPsec 技术;通过GRE来建立虚拟隧道(tunnel口),运行动态路由协议来学习路由;通过在tunnel接口上配置ACL、QOS等技术来控制数据流,通过IPsec技术将GRE隧道中的数据进行保护首先在两个站点之间,使用GRE在两台路由器之间建立了一条隧道(tunnel口),GRE隧道的作用就是虚拟地把两个站点连接在一起,就像是拉了一根专线一样把站点A和站点B连接起来,中间没有其他设备;这样就可以在这根"线"两端的两个接口上配置IP地址,并且运行动态路由选择协议,使得两台路由器分别学习到对方身后网络的路由;然后在tunnel接口进行数据控制和采集,由于站点A和B分别使用的是两个站点的公网IP地址,即不管GRE封装之前的原始数据如何,封装之后的源IP都是A,目标IP都是B,也就是我们只需要将A到B和B到A的流量分别在A和B上配置为兴趣流量即可,这样就可以把所有的GRE流量都进行了加密;通过GRE over IPSec,即解决了安全问题,也解决了普通IPSEC VPN感兴趣流过多,配置复杂的问题注:GRE over IPSEC,加密点等于通信点,是一个典型的传输模式的IPsec-VPN,因此GRE over IPSEC推荐使用传输模式;如果使用隧道模式,就会增加一个20字节的IP头部,因此,GRE技术经过IPSEC加密使用传输模式更加优化
0 评论