IPSEC VPN

安全:{私密性、完整性、不可否认性(合法性:认证)}(黄金三角)

防重放攻击、防中间人攻击

私密性:实现,对称加密算法、非对称加密算法(核心:用非对称加密算法传递对称加密算法的私钥)

对 称:DES 3DES AES,传递K,通过物理传递。

非对称:D iffie-Hellman算法 用来传递公钥

RSA算法 公钥加密私钥解密 1000位以后的质数基本安全,

2000位以后的极其安全。

数字签名(私钥加密公钥解密)

两个功能使用需生成2个钥匙对。

完整性:hash算法。MD5 SHA 单向不可逆

输入不定长,输出定长。雪崩效应(原数据一旦更改,结果完全不同)。

防重放:MD5(原始数据+随机值)=MD5值

随机值检测:如果随机值是被用过的就丢弃。

不可否认性(认证):RSA,预共享 MD5认证的原理

数字签名.

PKI体系(公开密钥体系,Public Key Infrastructure)是一种利用非对称加密技术为电子商务的开展提供一套安全基础平台的技术和规范。

采用证书管理公钥,通过第三方的可信任机构——CA认证中心把用户的公钥和用户的其他标识信息捆绑在一起放在用户证书中,在互联网上验证用户的身份。

IKE:用IPSec保护一个IP包之前,必须先建立安全联盟(SA),

IPSec的安全联盟可以通过手工配置的方式建立。但是当网络中节点较多时,手工配置将非常困难,而且难以保证安全性。这时就可以使用IKE(Internet Key Exchange)自动进行安全联盟建立与密钥交换的过程。Internet密钥交换(IKE)就用于动态建立SA,代表IPSec对SA进行协商。

IKE 第一阶段:在安全的情况下交换密钥,在安全的情况下做认证,做传递双方之间的认证。野蛮模式容易遭受中间人攻击。

主模式:慢,安全 野蛮模式:快,不安全 跨厂商做第一阶段推荐野蛮模式。

IKE第一阶段协商过程:

协商IKE安全通道的各种参数。并建立ISAKMP SA。在主模式下,第一阶段需要发送6个包。需要协商sa信息,密钥交换,ID交换和验证。在野蛮模式下双方只发3个包。但缺点是直接把密钥等信息不加密直接发送给对方。

主模式:

野蛮模式:

两种模式的对比:

第二阶段:为数据部分提供服务。

Ike第二阶段协商过程:双方协商ipsec sa(交换集),主要包括了加密,Hash,安全协议,封装模式,存活时间,DH算法

其中最终要的为安全协议和封装模式

安全协议:

ESP:可以对整个ip包内容进行加密,比较适用于在公网。

ESP在传输模式的包封装:

ESP在隧道模式的包封装:

AH:是一种只对头部进行认证的协议,并不存在对数据的加密,可以用于公司内网。

AH在传输模式下的包封装:

AH在隧道模式下的包封装:

两种模式的比较:

封装模式:

隧道模式:将封装上一个和原ip数据包头部相同的数据包。

传输模式:不对原来的ip数据包头部做改变,而是在ip头部之后插入一层ipsec包头。

Vpn隧道黑洞问题:当对方断开链接后,我方还处于SA有效期内,就造成了对方收不到包我方还向对方发送的情况。在ipsec vpn中使用了DPD来解决这个问题,其核心思想为采用空闲计时器机制,当收到1个ipsec包就重置计时器,如果在计时器到时时还未收到ipsec包,下次发送一个ipsec包给对方时就会先发依次发5次DPD请求去检测对方的存活,如果没有收到对方的回应,则删除SA。

配置:

第一阶段:

crypto isakmp policy 10

encryption 3des

hash md5

authentication pre-share

group 2

exit

crypto isakmp key cisco address x.x.x.x(公网地址扩展性不太好,可以0.0.0.0)

第二阶段:

crypto ipsec transform-set K ESP-3DES esp-md5-hmac

mode transport/tunnel

exit

crypto map K 10 ipsec-isakmp

set transform-set K

match address 100

set peer x.x.x.x(私网地址)

exit

//crypto ipsec profile K

// set transform-set K

IPSEC 路由是针对感兴趣流的路由。

NAT问题:企业在网络出口上通常会部署防火墙等设备,并在网络出 口上实现NAT技术,因为NAT地址转换会将一个正常去外网的被 匹配的ip包中的ip源,和ip目的以及tcp/udp端口进行转换。

对于源目ip改变:带来了一个问题,如果做了NAT,那么ipsec协商 的IKE第一阶段主模式下会导致双方对比身份ID不匹配,导致了 协商的失败。而IPSEC VPN 的主模式身份ID是默认配置的,不能 修改。所以在NAT环境下,对导致ipsec无法建立。

这个问题的根本在于主模式下身份ID固定为ip,(有些厂商的主 模式可能会有一些私有化的修改,可以改变主模式的身份ID,这 个时候可以使用主模式的其他认证方式,则不会有这个问题)。

解决方案:使用野蛮模式,野蛮模式默认可以使用多种身份认证方式, 如:IPV4_ADDR,FQDN,USER_FQDN,证书认证。在不使用ip的 身份认证方式下,即可解决NAT所带来的ip转换问题。

数据传输可行性:

AH的传输模式:

AH的传输模式因为对原始IP包头进行了认证摘要,在NAT后,摘要信息改变,会导致认证失败。

AH的隧道模式:

AH的隧道模式同样有这个问题。在NAT后摘要的信息就会改变。

TCP的伪首部校验机制:

因为TCP有伪首部校验机制,导致TCP包头前的那个IP包头内容不能改变。

ESP的传输模式:

在NAT后整个帧的ip包头会发生改变,导致TCP伪首部校验失败,整个数据包将被丢弃。

ESP的隧道模式:

ESP的隧道模式会将原IP包头加密封装起来。NAT只是对新的IP包头进行修改,原IP包内容不会发生修改,不影响TCP伪首部校验。可以成功通信。

对比:

多VPN数据问题:

1.隧道协商过程中,IKE规定源和目的端口都必须为UDP 500,在多VPN场景下源端口可能会在防火墙设备NAT后发生变化,从而导致IKE协商失败。

2.数据传输过程中,由于ESP在工作在网络层,没有传输层头部,从而无法进行NAT端口转换,导致数据传输失败。

解决方法:NAT-T技术

NAT-T技术:(1)在IKE协商和VPN连接时允许源端口非UDP500端口。使用目的端口为UDP 4500端口。

(2)NAT-T协议为ESP增加了UDP头部