基于CISCO路由器的IPSECVPN目录•VPN简介•IPSecVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置VPN背景总公司租用专线我们有很多分公司,如果用租用专线的方式把他们和总公司连起来,需要花很多钱想节约成本的话,可以用VPN来连接分公司分公司分公司VPN简介IPVPN(VirtualPrivateNetwork,虚拟专用网)就是利用开放的公众IP/MPLS网络建立专用数据传输通道,将远程的分支机构、移动办公人员等连接起来。IP/MPLS网中心站点分支机构移动办公人员隧道机制•IPVPN可以理解为:通过隧道技术在公众IP/MPLS网络上仿真一条点到点的专线。•隧道是利用一种协议来传输另外一种协议的技术,共涉及三种协议,包括:乘客协议、隧道协议和承载协议。被封装的原始IP包新增加的IP头IPSec头乘客协议隧道协议承载协议原始IP包经过IPSec封装后隧道带来的好处•隧道保证了VPN中分组的封装方式及使用的地址与承载网络的封装方式及使用地址无关Internet被封装的原始IP包新增加的IP头IPSec头私网地址公网地址中心站点分支机构Internet根据这个地址路由可以使用私网地址,感觉双方是用专用通道连接起来的,而不是Internet隧道按隧道类型对VPN分类•第二层隧道协议,如L2TP•第三层隧道协议,如IPSec•介于第二层和第三层之间的隧道协议,如MPLSVPNL2TP•L2TP封装的乘客协议是位于第二层的PPP协议。原始数据包新增加的IP头L2TP头可以是IP、IPX和AppleTalkPPP封装原始数据包PPP头L2TP封装原始数据包PPP头可以是IP、ATM和帧中继•L2TP没有对数据进行加密。L2TP的典型应用--VPDNL2TP连接PPP连接用户发起PPP连接到接入服务器接入服务器封装用户的PPP会话到L2TP隧道,L2TP隧道穿过公共IP网络,终止于电信VPDN机房的LNS用户的PPPsession经企业内部的认证服务器认证通过后即可访问企业内部网络资源IPSec•IPSec只能工作在IP层,要求乘客协议和承载协议都是IP协议被封装的原始IP包新增加的IP头IPSec头必须是IP协议必须是IP协议•IPSec可以对被封装的数据包进行加密和摘要等,以进一步提高数据传输的安全性三种VPN的比较L2TPIPSecMPLSVPN隧道协议类型第二层第三层第二层和第三层之间是否支持数据加密不支持支持不支持对设备的要求只要求边缘设备支持L2TP只要求边缘设备支持IPSec要求边缘设备和核心设备都支持MPLS目录•VPN简介•IPSecVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置IPSec概述IPSec是一种开放标准的框架结构,特定的通信方之间在IP层通过加密和数据摘要(hash)等手段,来保证数据包在Internet网上传输时的私密性(confidentiality)、完整性(dataintegrity)和真实性(originauthentication)。通过加密保证数据的私密性•私密性:防止信息泄漏给未经授权的个人•通过加密把数据从明文变成无法读懂的密文,从而确保数据的私密性Internet4ehIDx67NMop9eRU78IOPotVBn45TR土豆批发价两块钱一斤实在是看不懂加密4ehIDx67NMop9eRU78IOPotVBn45TR解密土豆批发价两块钱一斤对称加密•如果加密密钥与解密密钥相同,就称为对称加密•由于对称加密的运算速度快,所以IPSec使用对称加密算法来加密数据对数据进行hash运算来保证完整性•完整性:数据没有被非法篡改•通过对数据进行hash运算,产生类似于指纹的数据摘要,以保证数据的完整性土豆两块钱一斤Hash4ehIDx67NMop9土豆两块钱一斤4ehIDx67NMop9土豆三块钱一斤4ehIDx67NMop9我偷改数据Hash2fwex67N32rfee3两者不一致代表数据已被篡改对数据和密钥一起进行hash运算•攻击者篡改数据后,可以根据修改后的数据生成新的摘要,以此掩盖自己的攻击行为。•通过把数据和密钥一起进行hash运算,可以有效抵御上述攻击。土豆两块钱一斤Hashfefe23fgrNMop7土豆两块钱一斤fefe23fgrNMop7土豆三块钱一斤2fwex67N32rfee3我同时改数据和摘要两者还是不一致Hashfergergr23frewfgh对称密钥交换•对称加密和hash都要求通信双方具有相同的密钥问题:怎样在双方之间安全地传递密钥?密钥哈哈,要是敢直接传递密钥,我就只好偷看了密钥DH算法的基本原理RouterARouterB生成一个整数p生成一个整数q把p发送到对端p把q发送到对端q根据p、q生成g根据p、q生成g生成密钥Xa生成密钥Xb把Ya=g^Xa发送到对端把Yb=g^Xb发送到对端YaYbKey=Yb^Xa=g^(Xb*Xa)Key=Ya^Xb=g^(Xa*Xb)最后得到的对称密钥双方没有直接传递密钥通过身份认证保证数据的真实性•真实性:数据确实是由特定的对端发出•通过身份认证可以保证数据的真实性。常用的身份认证方式包括:Pre-sharedkey,预共享密钥RSASignature,数字签名预共享密钥•预共享密钥,是指通信双方在配置时手工输入相同的密钥。Hash_L+路由器名等本地Hash共享密钥远端生成的Hash_LHash=+对端路由器名Internet共享密钥接收到的Hash_L数字证书•RSA密钥对,一个是可以向大家公开的公钥,另一个是只有自己知道的私钥。•用公钥加密过的数据只有对应的私钥才能解开,反之亦然。•数字证书中存储了公钥,以及用户名等身份信息。数字证书我是RouterA,我的公钥是…….数字签名认证+IDInformation加密Hash_I解密Hash_I私钥公钥本地远端Hash=+身份信息Hash对称密钥数字签名+身份信息Hash12数字证书+Internet对称密钥数字签名数字证书IPSec框架结构ESPAHDES3DESAESMD5SHADH1DH2IPSec框架可选择的算法IPSec安全协议加密数据摘要对称密钥交换IPSec安全协议•AH(AuthenticationHeader)只能进行数据摘要(hash),不能实现数据加密ah-md5-hmac、ah-sha-hmac•ESP(EncapsulatingSecurityPayload)能够进行数据加密和数据摘要(hash)esp-des、esp-3des、esp-md5-hmac、esp-sha-hmac、IPSec安全协议描述了如何利用加密和hash来保护数据安全IPSec封装模式•IPSec支持两种封装模式:传输模式和隧道模式传输模式:不改变原有的IP包头,通常用于主机与主机之间。IP头数据原始IP包IP头数据AH头AHhashAH对除了TTL等变化值以外的整个IP包进行hash运算IP头数据ESP头hashESPtrailerESPauthESP加密hashIPSec封装模式•IPSec支持两种封装模式:传输模式和隧道模式隧道模式:增加新的IP头,通常用于私网与私网之间通过公网进行通信。IP头数据原始IP包IP头数据新IP头AHhashIP头数据ESP头hashESPtrailerESPauthESP加密hashAH头新IP头IPSec与NAT•AH模式无法与NAT一起运行AH对包括IP地址在内的整个IP包进行hash运算,而NAT会改变IP地址,从而破坏AH的hash值。IP头数据AH头hashhashNAT:我要修改源/目的IP地址AH:不行!我对IP地址也进行了hashIPSec与NAT•ESP模式下:只进行地址映射时,ESP可与它一起工作。进行端口映射时,需要修改端口,而ESP已经对端口号进行了加密和/或hash,所以将无法进行。IP头数据ESP头ESPtrailerESPauth加密TCP/UDP端口NAT:端口号被加密了,没法改,真郁闷IPSec与NAT•ESP模式下:启用IPSecNAT穿越后,会在ESP头前增加一个UDP头,就可以进行端口映射。IP头数据ESP头ESPtrailerESPauth加密TCP/UDP端口NAT:可以改端口号了,太棒了新UDP头目录•VPN简介•IPSecVPNIPSec基础端到端IPSecVPN的工作原理及配置EasyVPN(远程接入VPN)的工作原理及配置对上一节的回顾•IPSec协议框架包括加密、hash、对称密钥交换、安全协议等四个部分,这些部分都可以采用多种算法来实现。问题1:要成功建立IPSecVPN,两端路由器必须采用相同的加密算法、hash算法和安全协议等,但IPSec协议中并没有描述双方应如何协商这些参数。问题2:IPSec协议中没有定义通信双方如何进行身份认证,路由器有可能会和一个假冒的对端建立IPSecVPN。端到端IPSecVPN的工作原理•需要保护的流量流经路由器,触发路由器启动相关的协商过程。•启动IKE(Internetkeyexchange)阶段1,对通信双方进行身份认证,并在两端之间建立一条安全的通道。•启动IKE阶段2,在上述安全通道上协商IPSec参数。•按协商好的IPSec参数对数据流进行加密、hash等保护。HostAHostBRouterARouterB什么是端到端的VPN?IKE阶段1HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段1协商建立IKE安全通道所使用的参数协商建立IKE安全通道所使用的参数IKE阶段1•协商建立IKE安全通道所使用的参数,包括:加密算法Hash算法DH算法身份认证方法存活时间IKE阶段1Policy10DESMD5DH1Pre-sharelifetimePolicy15DESMD5DH1Pre-sharelifetimeRouterARouterBhostAhostBPolicy203DESSHADH1Pre-sharelifetimePolicy253DESSHADH2Pre-sharelifetime双方找到相同的策略集上述IKE参数组合成集合,称为IKEpolicy。IKE协商就是要在通信双方之间找到相同的policy。IKE阶段1HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段1协商建立IKE安全通道所使用的参数交换对称密钥双方身份认证建立IKE安全通道协商建立IKE安全通道所使用的参数交换对称密钥双方身份认证建立IKE安全通道IKE阶段2HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段2协商IPSec安全参数协商IPSec安全参数IKE阶段2•双方协商IPSec安全参数,称为变换集transformset,包括:加密算法Hash算法安全协议封装模式存活时间Transform10DESMD5ESPTunnellifetimeTransform203DESSHAESPTunnellifetimeIKE与IPSec安全参数的比较加密算法Hash算法存活时间DH算法身份认证安全协议封装模式IKEIPSecIKE阶段2HostAHostBRouterARouterB10.0.1.310.0.2.3IKE阶段2协商IPSec安全参数建立IPSecSA协商IPSec安全参数建立IPSecSAIPSecSA•IPSecSA(安全关联,SecurityAssociation):SA由SPD(securitypolicydatabase)和SAD(SAdatabase)组成。两端成功协商IPSec参数加密算法hash算法封装模式lifetime安全协议SPD加密SPIHash封装模式lifetimeSAD目的IP地址SPI安全协议IPSecSA•IPSecSA(安全关联,SecurityAss