1、VPN技术专题讲座VPN专题专题BeginningVPN专题专题VPN VPN 概概概概 述述述述VPNVPN是什么?是什么?是什么?是什么?VPN VPN 的的的的 功功功功 能能能能VPN VPN 的的的的 工工工工 作作作作 原原原原 理理理理VPNVPN是如何工作的?是如何工作的?是如何工作的?是如何工作的?VPNVPN能做什么?能做什么?能做什么?能做什么?VPN VPN 的的的的 具体应具体应具体应具体应 用用用用在什么场合又怎样来使用在什么场合又怎样来使用在什么场合又怎样来使用在什么场合又怎样来使用VPNVPN?第一章 VPN概述 VPN简介及其优点 VPN的安全性 市场上已有的
2、VPN解决方案VPN概述VPN功能VPN工作原理VPN具体应用1.1 VPN简介及其优点简介及其优点vVPN是企业网在因特网等公共网络上的延伸v VPN通过一个私有的通道来创建一个安全的私有连接,将远程用户、公司分支机构、公司的业务伙伴等跟企业网连接起来,形成一个扩展的公司企业网v 提供高性能、低价位的因特网接入VPN概述VPN功能VPN工作原理VPN具体应用远程访问Internet内部网合作伙伴分支机构虚拟私有网虚拟私有网虚拟私有网VPN是企业网在因特网上的延伸VPN的典型应用Clue远程访问Internet内部网分支机构安全网关安全网关ISP接入设备端到端数据通路的典型构成拨入段外部段(公
3、共因特网)内部段公司的内部网络1.2 VPN的安全性的安全性1.2.1 端到端数据通路中存在的安全风险端到端数据通路中存在的安全风险v 拨入段数据泄漏风险v 因特网上数据泄漏的风险v 安全网关中数据泄漏的风险v 内部网中数据泄漏的风险VPN概述VPN功能VPN工作原理VPN具体应用1.2.2 拨入段数据泄漏风险拨入段数据泄漏风险远程访问ISP接入设备拨入段Internetv 拨入段用户数据以明文方式直接传递到ISP:1.攻击者可以很容易的在拨入链路上实施监听2.ISP很容易检查用户的数据3.可以通过链路加密来防止被动的监听,但无法防范恶意窃取数据的ISP。PSTN搭线监听攻击者ISPISP窃听
4、密文传输到了ISP处已解密成明文明文传输1.2.3 因特网上数据泄漏的风险因特网上数据泄漏的风险Internet内部网恶意修改通道终点到:假冒网关外部段(公共因特网)ISP接入设备原始终点为:安全网关1.数据在到达终点之前要经过许多路由器,明文传输的报文很容易在路由器上被查看和修改2.监听者可以在其中任一段链路上监听数据3.逐段加密不能防范在路由器上查看报文,因为路由器需要解密报文选择路由信息,然后再重新加密发送4.恶意的ISP可以修改通道的终点到一台假冒的网关远程访问搭线监听攻击者ISPISP窃听正确通道1.2.4 安全网关中数据泄漏的风险安全网关中数据泄漏的风险Internet内部网ISP
5、接入设备远程访问安全网关1.数据在安全网关中是明文的,因而网关管理员可以直接查看机密数据2.网关本身可能会受到攻击,一旦被攻破,流经安全网关的数据将面临风险Internet1.2.5 内部网中数据泄漏的风险内部网中数据泄漏的风险远程访问内部网安全网关ISP接入设备内部段公司的内部网络1.内部网中可能存在不信任的主机、路由器等2.内部员工可以监听、篡改、重定向企业内部网的数据报文3.来自企业网内部员工的其他攻击方式 在端到端的数据通路上随处都有可能发生数据的泄漏,包括:1.拨入段链路上2.ISP接入设备上3.在因特网上4.在安全网关上5.在企业内部网上。能否提供一个综合一致的解决方案,它不仅能提
6、供端到端的数据保护,同时也能提供逐段的数据保护呢?1.2.6 结论结论1.3 现有的现有的VPN 解决方案解决方案v 基于 IPSec 的VPN解决方案v 基于第二层的VPN解决方案v 非 IPSec 的网络层VPN解决方案v 非 IPSec 的应用层解决方案v 结论VPN概述VPN功能VPN工作原理VPN具体应用1.3.1 基于基于IPSec 的的VPN 解决方案解决方案在通信协议分层中,网络层是可能实现端到端安全通信的最低层,它为所有应用层数据提供透明的安全保护,用户无需修改应用层协议。该方案能解决的问题:1.数据源身份认证:证实数据报文是所声称的发送者发出的。2.数据完整性:证实数据报文
7、的内容在传输过程中没被修改过,无论是被故意改动或是由于发生了随机的传输错误。3.数据保密:隐藏明文的消息,通常靠加密来实现。4.重放攻击保护:保证攻击者不能截获数据报文,且稍后某个时间再发放数据报文,而不会被检测到。5.自动的密钥管理和安全关联管理:保证只需少量或根本不需要手工配置,就可以在扩展的网络上方便精确地实现公司的虚拟使用网络方针 VPN概述VPN功能VPN工作原理VPN具体应用v AH协议v ESP协议v ISAKMP/Oakley协议基于 IPSec 的VPN解决方案需要用到如下的协议:详细情况将在IPSec 协议体系中讲解IPSec 框架的构成VPN概述VPN功能VPN工作原理V
8、PN具体应用1.3.2 基于第二层的基于第二层的VPN解决方案解决方案 公司内部网拨号连接因特网L2 T P 通道用于该层的协议主要有:v L2TP:Lay 2 Tunneling Protocolv PPTP:Point-to-Point Tunneling Protocolv L2F:Lay 2 ForwardingL2TP的缺陷:1.仅对通道的终端实体进行身份认证,而不认证通道中流过的每一个数据报文,无法抵抗插入攻击、地址欺骗攻击。2.没有针对每个数据报文的完整性校验,就有可能进行拒绝服务攻击:发送假冒的控制信息,导致L2TP通道或者底层PPP连接的关闭。3.虽然PPP报文的数据可以加密
9、,但PPP协议不支持密钥的自动产生和自动刷新,因而监听的攻击者就可能最终破解密钥,从而得到所传输的数据。L2 T P 通道1.3.3 非非IPSec 的网络层的网络层VPN 解决方案解决方案 v 网络地址转换由于AH协议需要对整个数据包做认证,因此使用AH协议后不能使用NATv 包过滤由于使用ESP协议将对数据包的全部或部分信息加密,因此基于报头或者数据区内容进行控制过滤的设备将不能使用v 服务质量由于AH协议将IP协议中的TOS位当作可变字段来处理,因此,可以使用TOS位来控制服务质量VPN概述VPN功能VPN工作原理VPN具体应用1.3.4 非非IPSec 的应用层的应用层VPN 解决方案
10、解决方案 v SOCKS位于OSI模型的会话层,在SOCKS协议中,客户程序通常先连接到防火墙1080端口,然后由Firewall建立到目的主机的单独会话,效率低,但会话控制灵活性大v SSL属于高层安全机制,广泛用于Web Browse and Web Server,提供对等的身份认证和应用数据的加密。在SSL中,身份认证是基于证书的,属于端到端协议,不需要中间设备如:路由器、防火墙的支持v S-HTTP提供身份认证、数据加密,比SSL灵活,但应用很少,因SSL易于管理v S-MIME一个特殊的类似于SSL的协议,属于应用层安全体系,但应用仅限于保护电子邮件系统,通过加密和数字签名来保障邮件
11、的安全,这些安全都是基于公钥技术的,双方身份靠X.509证书来标识,不需要Firewall and Router 的支持VPN概述VPN功能VPN工作原理VPN具体应用Network Interface(Data Link)IP(Internetwork)TCP/UDP(Transport)SMIME Kerberos Proxies SET IPSec(ISAKMP)SOCKS SSL,TLS IPSec(AH,ESP)Packet Filtering Tunneling Protocols CHAP,PAP,MS-CHAP TCP/IP 协议栈与对应的VPN协议ApplicationVPN
12、概述VPN功能VPN工作原理VPN具体应用1.3.5 结论结论 1.网络层对所有的上层数据提供透明方式的保护,但无法为应用提供足够细的控制粒度2.数据到了目的主机,基于网络层的安全技术就无法继续提供保护,因此在目的主机的高层协议栈中很容易受到攻击3.应用层的安全技术可以保护堆栈高层的数据,但在传递过程中,无法抵抗常用的网络层攻击手段,如源地址、目的地址欺骗4.应用层安全几乎更加智能,但更复杂且效率低5.因此可以在具体应用中采用多种安全技术,取长补短VPN概述VPN功能VPN工作原理VPN具体应用第二章第二章 VPN功能功能v 数据机密性保护v 数据完整性保护v 数据源身份认证v 重放攻击保护V
13、PN概述VPN功能VPN工作原理VPN具体应用2.1 数据机密性保护数据机密性保护拨号服务器拨号服务器PSTNPSTN Internet Internet 区域区域InternetInternet边界路由器边界路由器内部工作子网内部工作子网管理子网一般子网内部WWW重点子网下属机构下属机构DDN/FRDDN/FRX.25X.25专线专线SSNSSN区域区域WWW Mail DNS密文密文传输明文传输明文传输2.2 数据完整性保护数据完整性保护内部工作子网内部工作子网管理子网一般子网内部WWW重点子网下属机构下属机构DDN/FRDDN/FRX.25X.25专线专线原始数据包对原始数据包进行Has
14、h加密后的数据包加密后的数据包摘要摘要Hash摘要摘要对原始数据包进行加密加密后的数据包加密后的数据包加密加密后的数据包加密后的数据包摘要摘要加密后的数据包加密后的数据包摘要摘要摘要摘要解密原始数据包Hash原始数据包与原摘要进行比较,验证数据的完整性2.3 数据源身份认证数据源身份认证内部工作子网内部工作子网管理子网一般子网内部WWW重点子网下属机构下属机构DDN/FRDDN/FRX.25X.25专线专线原始数据包对原始数据包进行HashHash摘要摘要加密摘要摘要摘要摘要取出DSS原始数据包Hash原始数据包两摘要相比较私钥原始数据包DSSDSS将数字签名附在原始包后面供对方验证签名得到数
15、字签名原始数据包DSS原始数据包DSSDSS解密相等吗?验证通过2.4 重放攻击保护重放攻击保护保留负载长度认证数据(完整性校验值ICV)变长序列号安全参数索引(SPI)下一头部填充(0255字节)下一头部填充长度认证数据(变长的)负载数据(变长的)序列号安全参数索引(SPI)AH协议头ESP协议头SA建立之初,序列号初始化为0,使用该SA传递的第一个数据包序列号为1,序列号不允许重复,因此每个SA所能传递的最大IP报文数为2321,当序列号达到最大时,就需要建立一个新的SA,使用新的密钥。第三章第三章 VPN的工作原理的工作原理v 密码学简介v IPSecv 因特网密钥交换协议v 建立VPN
16、通道的四种方式v 一个完整的VPN工作原理图VPN概述VPN功能VPN工作原理VPN具体应用3.1.1 密码学术语密码学术语1.密码学:一门以保障数据和通信安全为目的的科学,它使用加密、解密、身份认证来实现目的。2.加密:将明文信息变换成不可读的密文形式以隐藏其中的含义3.解密:将密文信息还原成明文的过程。用来加密和解密的函数叫做密码算法。4.身份认证:一种用来验证通信参与者是否真的是他所声称的身份的手段,通过身份认证可以发现那些假冒的顶替的入侵者5.数据完整性:一种用来检查数据再通信过程中是否被修改过的手段,通过它可以检查被篡改过或者通信错误的消息6.不可否认性:证明发送者的确发送过某个消息
17、,如果使用了“不可否认性”算法,一旦因消息发生纠纷,发送者就无法否认他曾经发送过该消息VPN概述VPN功能VPN工作原理VPN具体应用3.1.2 对称密钥算法对称密钥算法加密密钥解密密钥加密密钥解密密钥两者相等可相互推导v 分组密码算法:操作单位是固定长度的明文比特串DES算法:Data Encryption Standard(老算法),密钥=56位CDMA算法:Commercial Data Masking Facility,密钥=40位3DES算法:Triple Data Encryption Standard IDEA算法:International Data Encryption Al
18、gorithm(新算法),密钥=128位v 流密码算法:每次只操作一个比特VPN概述VPN功能VPN工作原理VPN具体应用3.1.3 非对称密钥算法非对称密钥算法公钥私钥 公钥私钥不可相互推导常用的公钥算法:1.RSA公钥算法:用于加密、签名、身份认证等2.Diffie Hellman 算法:用于在非安全通道上安全的建立共享秘密,但无法实现身份认证v公钥算法的缺点:1.速度慢2.难于用硬件实现 因此它很少用于大量数据的加密,主要用于密钥交换和身份认证VPN概述VPN功能VPN工作原理VPN具体应用不相等DiffieHellman 密钥交换算法密钥交换算法 在一个非安全的通道上安全地建立一个共享
19、密钥Internet事先双方协商两个公共数值,非常大的素数m和整数g做计算 X=ga mod m发送X=ga mod m产生一个很大的数 b产生一个很大的数 a做计算 Y=gb mod m发送Y=gb mod mKA=Ya mod m=gab mod mKB=Xb mod m=gab mod m两者相等得出共享密钥得出共享密钥Key=gab mod mHost AHost B3.1.4 哈希函数哈希函数1.特点:输入是变长的数据,输出是定长的数据HASH值;2.主要应用方向:数据完整性校验和身份认证技术3.有用的HASH函数必须是单向的,即正向计算很容易,求逆极其困难,就像还原捣碎的土豆4.常
20、用的HASH函数:MD5、SHA1,这两种HASH函数都没有密钥输入,其中MD5的输出为128位、SHA1的输出为160位5.MAC:输出结果不仅依赖输入消息,同时还依赖密钥的HASH函数叫做消息认证代码;IPSec 中使用的是MAC,而不是直接使用MD5或者SHA1VPN概述VPN功能VPN工作原理VPN具体应用加密MD5填充负 载IP头部AH共享密钥HASH运算(MD5)输入要发送的消息输入共享密钥得到128位的定长输出将输出结果填入到AH头部的认证数据字段加密SHA1填充负 载IP头部AH共享密钥HASH运算(SHA1)输入要发送的消息输入共享密钥得到160位的定长输出将输出结果填入到A
21、H头部的认证数据字段数字签名标准(DSS)填充负 载IP头部私钥进行HASH运算输入要发送的消息用私钥加密HASH输出结果得到定长输出将数字签名附在数据报的后面供对方验证身份得到数字签名3.1.5 数字证书和证书权威机构数字证书和证书权威机构InternetBobAliceHacker将自己的公钥发给Bob,谎称是Alice的将自己的公钥发给Alice,谎称是Bob的用Bob的“公钥”加密消息发给Bob用用Bob的的“公钥公钥”加密消息发给加密消息发给Bob将消息截获,并解密将消息截获,并解密然后用然后用Bob真正的公钥加密,重新发给真正的公钥加密,重新发给Bob收到消息,但已经被黑客看过为了
22、防止这种“中间人”攻击,消除上述安全隐患,提出了数字证书的概念,数字证书将身份标识与公钥绑定在一起,并由可信任的第三方权威机构用其私钥签名,这样就可验证期有效性v 数字证书的国际标准是:ISO X.509 协议v由于一个CA不能无法满足所有的需求,因此形成了一个类似于DNS的层次CA结构3.2.1 IPSec 概念概念v通道 将一个数据报用一个新的数据报封装Security Parameter Index,IP Destination Address,Security Protocol v 安全关联(SA)SA就是两个IPSec系统之间的一个单向逻辑连接v 32比特,用于标识具有相同IP地址和
23、相同安全协议的不同SA。v 可以是普通IP地址,也可是广播或者组播地址v 可以是AH或者ESP负 载IP头部IP头部负 载IP头部3.2.2 IPSec 框架的组成框架的组成v 身份认证报头AH协议 提供数据源身份认证、数据完整性保护、重放攻击保护功能v 负载安全封装ESP协议提供数据保密、数据源身份认证、数据完整性、重放攻击保护功能v 因特网安全关联和密钥管理协议IKE(以前被叫ISAKMP/Oakley)提供自动建立安全关联和管理密钥的功能VPN概述VPN功能VPN工作原理VPN具体应用第四章第四章 VPN的具体应用的具体应用v 用VPN连接分支机构v 用VPN连接业务伙伴v 用VPN连接
24、远程用户VPN概述VPN功能VPN工作原理VPN具体应用4.1 用用VPN连接分支机构连接分支机构Internet分支机构VPN网关AVPN网关B总部通道只需定义在两边的网关上Gateway 必须支持IPSecGateway 必须支持IPSec数据在这一段是认证的数据在这一段是加密的ISPISP4.2 用用VPN连接合作伙伴连接合作伙伴Internet业务伙伴VPN网关AVPN网关B公司A主机必须支持IPSec主机必须支持IPSec通道建立在两边的主机之间,因为业务伙伴内的主机不是都可以信任的数据在这一段是加密的数据在这一段是认证的数据在这一段是认证的数据在这一段是加密的数据在这一段是认证的数据在这一段是加密的ISPISP4.3 用用VPN连接远程用户连接远程用户Internet公司BISP接入服务器VPN网关B主机必须支持IPSecGateway 必须支持IPSecPSTN数据在这一段是加密的数据在这一段是认证的数据在这一段是加密的数据在这一段是认证的通道建立在移动用户与公司内部网的网关处