1、1目录(Contents)虚拟专用网的定义001虚拟专用网的类型010虚拟专用网的工作原理011虚拟专用网的关键技术100如果某组织机构在多个地区有分公司,如何建立公司的安全网络?方案一:租用电信运营商的线路,将各分公司连接起来;组建的网络称为私有网络/专网(private network)价格昂贵方案二:虚拟私有网络/虚拟专用网/VPN2为什么需要VPN?租用线路虚拟专用网(虚拟专用网(Virtual Private Network,VPNVirtual Private Network,VPN)是在公共网络上传输私有通信的方法VPN通常使用(加密的)隧道将两个或多个专用网络连接起来3VPN基
2、础节省开支:使用IP网络连接远程用户和公司的服务器,节省了使用专用WAN的开销安全:利用加密和认证技术,保证数据的私有性和安全性服务质量保证(QoS):以不同要求提供不同等级的服务质量保证可扩展性:允许公司在不用附加重要基础设施的条件下增添功能容易访问:可在任何地方访问公司网络可管理性:可以从用户和运营商角度进行管理4VPN的优点加密VPN(构建安全VPN的首选):采用数据加密实现通信安全例:IPSec,SSL非加密VPN:使两个或多个专用网络连接起来,以便用户可以在各自的网络中无缝的访问资源专用网络间的安全通信无法保证GRE、MPLS(多协议标签交换)5VPN的分类(按是否采用加密技术):1
3、.1.不能保证通信安全性的不能保证通信安全性的VPNVPN类型(如类型(如GREGRE)通常)通常采用上层协议加密(如采用上层协议加密(如SSLSSL)来保证数据机密性)来保证数据机密性2.2.一些情况下,会合并其中的两种,如一些情况下,会合并其中的两种,如IPSec+GREIPSec+GRE6VPN的分类将将VPNVPN如此划分的主要原因如此划分的主要原因是安全策略的差异!是安全策略的差异!Intranet VPNInternet公司网络VPN 集中器移动用户远程工作者合作伙伴分公司Extranet VPNAccess VPN远程访问VPN:移动工作人员、远程办公人员等安全访问企业网络;使用
4、PSTN、ISDN、DSL和移动IP等方式接入企业内部VPN:企业总部、远程办事处和分公司等安全访问企业网络企业外部VPN:外部的客户、合作伙伴等安全访问企业网络企业内部企业内部VPNVPN和外部和外部VPNVPN统称为统称为site-to-site VPNsite-to-site VPN远程访问VPN,又称拨号VPN(VPDN):远程工作人员利用当地ISP的网络接入,使用本机的VPN客户端软件,连接公司的VPN网关建立私有的隧道连接公司内网中的RADIUS等AAA服务器对用户进行验证和授权7VPN的分类SP提供的硬件平台VPN:Cisco,华为,H3C(3Com),锐捷辅助硬件平台VPN:在
5、现有硬件设备的基础上,增添适当的VPN软件VPN路由器,VPN网关基于防火墙的VPN:在防火墙产品的基础上增加VPN功能软件VPN:Windows和Linux系统都可以实现8VPN产品系列隧道化:通过Internet基础设施,在企业网络之间传递数据的方式传递的数据可以是不同协议的数据包隧道协议将不同类型协议的数据包重新封装在新的包中发送一般不提供数据保护加密:对传输的数据进行加密,以确保数据在传输过程中的安全9建立VPN的两个基本问题协议描述描述标准准协议描述描述标准准GRE通用路由封装RFC 1701和2784L2TP第第2层隧道隧道协议RFC 2661MPLS多多协议标签交交换RFC 25
6、47PPTP点点对点隧道点隧道协议MicrosoftRFC 2637IPSecInternet 协议安全安全RFC 2401L2F第第2层转发CiscoSSL/TLS安全套接字安全套接字/传输层安全安全RFC610110主要的VPN隧道协议第三层隧道协议主要用于构建站点到站点VPN第二层隧道协议主要用于构建远程访问VPN第四层隧道协议11二层VPN由Microsoft开发,在其他厂商参与后成为RFC 2637 标准允许PPP通过IP网络被隧道化(封装)客户端/服务器体系结构12点到点隧道协议PPTPPPTP接入集中器PPTP网络服务器PPTP通过PPTP控制连接来创建、维护、终止一条隧道,并使
7、用通用路由封装GRE对PPP帧进行封装。PPTP协议假定在PPTP客户机和PPTP服务器之间有连通且可用的IP网络如果客户机本身已经是某IP网络的组成部分,那么即可通过该IP网络与PPTP服务器取得连接如果客户机尚未连入网络,譬如拨号情形下,客户机必须首先拨打NAS以建立IP连接13点到点隧道协议PPTPPPTP本身不提供加密和身份验证的功能,依靠点对点协议PPP来实现安全功能PPTP协议被内置在Windows系统中,微软通过PPP协议栈提供各种身份验证与加密机制身份认证:扩展身份认证协议(EAP,Extensible Authentication Protocol)、微软的挑战握手协议(MS
8、-CHAP,Challenge Handshake Authentication Protocol)、密码认证协议(PAP,Password Authentication Protocol)加密:Microsoft点对点加密(MPPE,Microsoft Point-to-Point Encryption)14PPTP与PPPnL2TP(Layer 2 Tunneling Protocol):Cisco L2F(Layer 2 Forwarding)和PPTP的结合,RFC3991L2TP用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输15L2TP16L2TP配置L2TP
9、接入集中器接入集中器PPP连接接L2TP隧道隧道L2TP网网络服服务器器L2TP隧道可分为两种类型:强制性隧道自发性隧道17L2TP隧道的类型用户完全不知用户完全不知道道L2TPL2TP连接表连接表现形式现形式用户知道用户知道L2TPL2TP连接表现形式连接表现形式18PPTP与L2TP比较PPTPL2TP数据封装PPP协议PPP协议端点间隧道数目单一隧道针对不同QoS创建不同隧道隧道验证不支持支持需要的网络支持IPIP(使用UDP)帧中继X.25ATM通用路由封装GRE(Generic Routing Encapsulation)通过隧道将通信从一个专用网络传输到另一个专用网络19通用路由封
10、装GRE将任何其它协议嵌入在将任何其它协议嵌入在GREGRE中并用中并用IPv4IPv4作为传作为传输机制的使用!输机制的使用!传输头传输头GRE头部头部负载分组负载分组IPv4的头部GRE的头部GRE允许非IP分组在有效载荷中被传输,如IPX,AppleTalk等连接两个专用网络可以使用两个对等路由器的GRE隧道20连接两个专用网络的简单GRE隧道InternetGRE-1GRE-250.1.1.250.1.1.110.1.1.210.1.2.0/2410.1.1.0/2410.1.2.1对多个站点进行GRE隧道连接时:GRE隧道是点到点连接,即任意两个想交互的路由器都必须有一个专用的GRE
11、隧道来连接每个路由器上可建立多条隧道,使他能直接连接到其他路由器上21多个站点的GRE隧道10.0.0.3150.1.1.0/24InternetRouter 1Router 2Router 310.0.0.210.0.0.1172.14.241.60/24150.1.0.0/24GRE本身不提供安全性,通常与其他加密协议一起提供安全性在Cisco设备中,GRE有时也和网络层加密协议一同使用,如IPSec用GRE封装非IP通信(IPX、Appletalk)并使用IPSec协议来加密GRE分组帮助IPSec支持组播传递,加密组播流量路由协议:OSPF,EIGRP,RIPv2视频,VoIP,音乐流
12、等22GRE的安全性IPSec的类型IPSec的工作模式IPSec的组成IPSec的功能IPSec的工作过程IPSec的分组封装IKE相关安全选项IPSec的设计23IPSecIPSec是用于构建VPN的一系列协议,正在成为创建VPN的标准为提供加密安全服务而开发,支持认证、完整性、访问控制以及数据一致性IPSec只允许IP数据的封装和加密如果为非IP数据流量创建隧道,得同诸如GRE等协议联合使用24IPSec概述访问控制无连接的完整性数据源认证防止重放攻击机密性(加密)25IPSec的功能26IPSec体系结构IP安全体系结构封装安全载荷(ESP)认证头(AH)加密算法验证算法解释域(DOI
13、)密钥管理策略协议功能IKE提供协商安全参数和创建认证密钥等ESP提供加密、认证和数据保护AH提供认证和数据保护27IPSec的组成Internet密钥交换协议(IKE)封装协议:负载安全封装(ESP,Encapsulating Security Payload)认证报头协议(AH,Authentication Header)IPSec在不同应用需求下有不同的工作模式,分别为:传输模式(Transport Mode)两部主机之间(点到点)传递的数据加密:如PC通过POP3协议连接到公司的邮件服务器收取邮件 隧道模式(Tunnel Mode)两个不同的网段(站点到站点)所传送的数据内容加密或者两
14、个私有IP网段穿越Internet连接28IPSec的工作模式 隧 道传输模式传输模式 隧 道隧道模式隧道模式区别:数据包在传输过程中是否需要更改IP报头29IPSec的工作模式30IPSec的工作过程IPSec启动IKE 阶段1IKE SAIKE SAIKE 阶段2IPSec SAIPSec SA IPSec 隧 道IPSec隧道终止分组封装由ESP或AH或两者一起处理AH(认证头,RFC 2402)是为IP数据报提供无连接的完整性和数据源认证的机制使用加密哈希函数(HMAC-MD5-96、HMAC-SHA-96、加密的MD5)ESP提供了AH的大部分保护加上额外的机密性使用DES、3DES
15、、AES、RC5、IDEA一般情况下使用ESP31IPSec中分组的封装32在传输模式下的数据封装 隧 道AR2R1BIPTCPDataAHAH协议验证部分(不包括AH部分)IPTCPDataESP头ESPTrailerESP AuthTrailerESP协议加密部分ESP协议认证部分AH封装ESP封装保护报头中在传送时不被改变的所有域33AH验证数据完整34在网关到网关隧道模式下的数据封装 隧 道AR2R1BAH封装IP SRC=A DST=BTCPDataIP SRC=R1 DET=R2AHAH协议验证部分ESP封装IP SRC=A DST=BTCPDataIP SRC=R1 DET=R2
16、ESPHeaderESP协议验证部分ESPTrailerESP AuthTrailerESP协议加密部分35在主机到网关隧道模式下的数据封装 隧 道AR2R1BAH封装IP SRC=A DST=BTCPDataIP SRC=A DET=R2AHAH协议验证部分ESP封装IP SRC=A DST=BTCPDataIP SRC=A DET=R2ESPHeaderESP协议验证部分ESPTrailerESP AuthTrailerESP协议加密部分问题:密钥是如何生成的那?36回到IPSec的工作过程IPSec启动IKE 阶段1IKE SAIKE SAIKE 阶段2IPSec SAIPSec SA
17、IPSec 隧 道IPSec隧道终止因特网密钥交换协议:用于协商IPSec安全关联(security association,SA),要求IPSec系统首先进行身份认证,并且建立ISAKMP或者IKE共享密钥SA包括两类:IKE SA:双向的IPSec SA:单向的建立双向的VPN需要两个SA主要负责:协商协议的参数交换公共密钥对双方进行认证在交换后对密钥进行管理37Internet Key Exchange(IKE)IKE是ISAKMP,Oakley和SKEME协议的混合ISAKMP(Internet安全关联和密钥管理协议,Internet Security Association and
18、Key Management Protocol,RFC 2408):定义协议框架(认证通信对等体,创建和管理SA,密钥生成技术和减轻威胁的过程)38IKEISAKMP框架框架IKEOakleySKEMEDiffie-HellmanGroupOakley:具体定义ISAKMP框架中的密钥交换和服务使用Diffie-Hellman密钥交换或者密钥许可算法来创建一个唯一的、共享的加密密钥该密钥作为生成身份认证和加密所需的密钥材料SKEME(安全密钥交换机制):通用密钥交换技术,提供匿名性、防抵赖和快速刷新39IKESA:代表两对等体或两主机之间的契约,描述对等体将怎样使用IPSec安全服务来保护网络
19、流量包括对等体之间安全传输数据包所需的安全参数,(也称在IPSec中使用的安全策略)SPI:32位数字,用来标识每个建立的SASPI被写入IPSec报头,用来在接收系统中定位适当的SA40概念:安全关联SA(security Association)安全关联由一些参数值组成,例如目的地址、安全索引参数SPI、用于该会话的IPSec封装、安全密钥以及一些附属属性(如IPSec的生存周期)41安全关联SA192.168.5.17A3655BCAH,HMAC-MD57574CA49FF458245One day or 100MB目的地址/源地址安全参数索引SPIIPSec封装等密钥生存周期存放在SA
20、D中的参数有:SPI目的端IPAH或ESP、AH验证算法、AH验证的加密密钥、ESP验证算法、ESP验证的加密密钥、ESP的加密算法、ESP的加密密钥传输或者隧道模式42安全关联数据库SAD安全策略数据库(SPD)用来存放IPSec的规则,以定义哪些流量需要进行IPSec保护,并搜索与报文分组定义以及相关联的安全策略一致的SA如果SA不存在,就用IKE创建SA如果存在,应用指定的处理和安全协议(AH/ESP)将SA的SPI插入到IPSec首部中当收到报文分组时,通过IP地址、协议和SPI查找该SA,根据SA对报文进行处理43安全策略数据库SPD问题:问题:IKEIKE如何创建如何创建SASA?
21、44IKE运行流程主机主机 A A主机主机 B B应用程序应用程序IPSec 安全策略IP IPSec Driver IP IPSec DriverIPSec 安全策略如果不需要IPSec,直接进入IP层;需要则进入IPSec机制IKEIKE非IPSec数据流IPSec数据流SPDSADIKE是一个两阶段的协议:阶段1:主模式(main mode)或积极模式(aggressive mode/聚集模式)协商并创建一个通信信道(IKE SA),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务阶段2:快速模式(quick mode)使用已建立的IKE SA建立IP
22、sec SA45使用IKE协议建立IPSec隧道阶段模式IKE 阶段 1建立安全、认证的IKE SA主模式(6条消息)保护身份识别信息(*IKE协商标准模式)积极模式(3条消息)明文身份识别信息没有DH组协商选项IKE 阶段 2交换创建IPSec SA 必要的信息快速模式(3条消息)建立IPSec SA参数(ESP,AH,SHA,MD5)SA生命期,会话密钥46使用IKE协议建立IPSec隧道 IKE 阶段1安全通信信道 IKE 阶段2IPSec 隧道主模式/积极模式快速模式47IKE阶段1:主模式1.协商商IKE策略策略2.经过认证的的DH交交换4.认证IKE端点端点身份身份加密的加密的3.
23、计算算DH共享密共享密钥并生成密并生成密钥素材素材InternetIKE 报文 1(SA 提议)IKE 报文 2(接受的SA)IKE 报文 3(DH 公共值,Nonce)IKE 报文 4(DH公共值,Nonce)IKE 报文 5(认证素材,ID)IKE 报文 6(认证素材,ID)481.协商IKE策略Internet加密:DES散列:MD5-HMACDH组:1认证:预共享加密:DES散列:MD5-HMACDH组:1认证:RSA加密加密:DES散列:MD5-HMACDH组:1认证:预共享指定安全通信信道安全策略的属性。协商散列机制、加密机制、认证方法和DH组号等492.DH交换+3.生成密钥素材
24、InternetIKE 报文 3(DH 公共值 ga,Nonce Ni)IKE 报文 4(DH 公共值 gb,Nonce Nj)DH共享密钥Pre-shared Key=gabSKYID=PRF(Pre shard Key,Ni,Nj)=PRF(gab,Ni,Nj)SKYID_d=PRF(SKYID,gab|0)!用于计算后续的IPSec密钥资料SKYID_a=PRF(SKYID,SKYID_d|gab|1)!用于提供IKE消息的完整性和认证 SKYID_e=PRF(SKYID,SKYID_a|gab|2)!用于加密IKE消息该阶段发送两个负载,并都用SKYID_e加密:标识负载包含发起者标识
25、的信息,如发起者的IP地址或主机名散列负载利用散列值进行认证504.端点认证Hash=PRF(SKYID,Pre shared Key,SA payload,ID)认证的是的是设备,而非用,而非用户!51IKE阶段2:快速模式计算加密素材算加密素材报文1:哈希、SA、提议和变换、密钥交换和nonce、ID验证哈希(确保消息的完整性/认证),通过后用报文2响应:哈希、SA、提议和变换、密钥有效载荷和nonce、ID验证报文2中的哈希。双方都生成2个会话密钥(每个方向一个)。以报文3响应:前两个报文nonce的哈希值Internet 报文 1 报文 2 报文3验证报文 1验证报文 2验证报文 3用
26、用SKEYID_dSKEYID_d,DHDH共享密钥,共享密钥,SPISPI等产生真正等产生真正用来加密数据用来加密数据的密钥的密钥52IKE站点到站点考虑:每个IPSec网关都有一个公共可路由的IP地址网关内部使用RFC1918地址,外部使用可路由地址隧道模式允许RFC 1918地址无需修改就可以到达远程站点53NAT54典型的RFC 1918 IPSecInternet10.128.1.0/2410.128.2.0/24.50.50R1R268.1.1.169.1.1.1 隧道模式 IPSec IP源=10.128.1.50目的=10.128.2.50TCPDataIP源=10.128.1
27、.50目的=10.128.2.50TCPDataTCPIP源=10.128.1.50目的=10.128.2.50TCPDataTCP带有ESP的IP数据报ESP头ESP尾ESP认证IP源=68.1.1.1目的=69.1.1.1远程用户考虑:静态NAT不可行,因为远程用户可能一直在改变位置需要多对一NAT。但是多对一NAT不能和IPSec一起工作解决多对一NAT的协议标准正由IETF开发现有的解决办法:Cisco通过隧道将IPSec ESP数据包封装在UDP数据包中,允许数据包通过NAT设备55NAT56GRE+IPSec组合InternetR1R2 隧道模式 IPSec IP源=A目的=B带有
28、ESP的GRE IP数据报ESP头ESP尾ESP认证ABGRE头TCP DataTCPIP源=R1目的=R2GRE头TCP DataTCPTCP DataTCPTCP DataTCPIP源=A目的=BIP源=A目的=BIP源=A目的=BIP源=R1目的=R2TCP DataTCPIP源=R1目的=R2GRE头IP源=A目的=B可以通过允许ICMP 类型3 编码4 的消息来处理分片,MTU发现(PMTUD)功能作用于IP分片57分片和路径最大传输单元发现没有设置DF(Dont Fragment)位时的IP分片MTU 1500MTU 1400MTU 1500主机A主机B1500数据报(没有设置DF
29、位)120分片数据报1400120数据分片数据报到达主机1400主机重新组装数据报150058分片和路径最大传输单元发现基本的PMTUDMTU 1500MTU 1400MTU 1500主机A主机B1500数据报(设置了DF位)ICMP Type 3 Code 4 MTU1400向客户发送“数据报太大”使用较低MTU,重传1400数据报达到主机1400使用GRE时,除了当传输介质MTU为1500时,需要将MTU设置为1476(20字节用于新IP头部和4字节用于GRE封装)外,和基本的分片一样;GRE分片在封装前进行使用IPSec时,分片在加密后进行,同时PMTUD默认是打开的如果数据报到达IPS
30、ec网关时需要分片,但是设置了DF位,则丢弃数据包并发送type 3 Code 4消息59分片和路径最大传输单元发现60使用IPSec+GRE时,分片?MTU 1500MTU 1500主机A主机B1500数据报(没有设置DF位)44分片数据报1476IPSec+GRE隧道GRE 1476IPSec 1500GRE 1476IPSec 150068GRE封装数据报1500120IPSec加密数据报1552120分片IPSec数据报并发送721500120重新组装IPSec数据报155268解密IPSec数据报150044解封装GRE数据报并发送1476主机重新组装数据报1500MTU 15006
31、1MTU 1500MTU 1500主机A主机B1500GRE丢弃数据报(设置DF位)给主机发送ICMP错误(类型3,代码4)1476IPSec+GRE隧道GRE 1476IPSec 1500GRE 1476IPSec 15001476IPSec丢弃GRE数据报15001462到GRE的ICMP错误1462GRE丢弃数据报MTU 15001438到主机的ICMP错误1438IPSec数据报经过解密、路由器解密、解封装并发送给主机14621500使用PMTUD的GRE+IPSec62SSL/TLSvTLS协议组成:底层是TLS记录协议(TLS Record Protocol),基于可靠的传输层协议(如TCP),用于封装各种高层协议高层协议主要包括TLS握手协议(TLS Handshake Protocol)、修改密码格式协议(Change Cipher Spec Protocol)、警告协议(Alert Protocol)等介绍了VPN的相关概念和分类介绍了VPN中常用的隧道协议GREL2TPPPTPIPSec(分类、组成、工作过程、工作模式、拓扑、安全等)IPSec设计实例63Summary感谢聆听感谢聆听BitSec(张立江)中国矿业大学 网络空间安全系64