1、×××的产生背景:
随着时代的发展,一家公司的要跟很多分部连接在一起,以便资源共享,协同工作,提高工作效率,但是传统的专线联网方式价格昂贵,这时候低成本的×××技术就孕育而生了。×××(Virtual Private Network)虚拟专用网。它可以接入公共网络来传输私有的数据,最主要的就是成本低这一优势。
2、×××的两种连接方式:
站点到站点(Site-to-Site)和远程访问(Remote Access)连接方式。
*站点到站点×××:对于终端来说,是透明的,即用户感觉不到×××技术的存在,而是觉得相互访问的站点位于同一子网。
主要的×××有:
GRE(Generic Routing Encapsulation,通用路由封装)——能对网络层的数据报文进行封装,采用了GRE tunnel技术,是××× 的三层隧道协议。
PSec ×××:可以为IP网络提供透明的安全服务,保护TCP/IP 通信避免咋遭到窃听和篡改。优势在于灵活,安全,经济,扩展性方面。
MPLS ×××:是指采用MPLS技术在宽带IP的骨干网络上构建企业的IP专网,以实现跨地区,安全,高速,可靠的数据通信传输,MPLS ×××结合区分服务和流量工程等相关技术,将公共网络可靠的性能,良好的扩展性,丰富的功能与专用网的安全,灵活,高效的结合在了一起,可以为用户提供高质量的服务。
*远程访问:站点对站点的×××技术只能使用在公司站点之间。假如是客户在外部出差,那么就需要使用远程访问的×××技术,这种情况一般需要在客户的计算机上安装×××客户端,并且通过这个客户端拨号到公司的×××网关。拨号成功就建立起虚拟通道连接到公司的×××网关,然后获取公司内网的一个地址,然后用这个地址来来访问公司内部的服务器。
主要的×××有:
PSec ×××:不仅用于站点到站点。
VPDN(Virtual Private Dial-up Networks,虚拟私有拨号网络):是×××的一种,包含了PPTP,L2TP,PPPOE,是基于拨号用户的×××拨号业务。VPDN是利用IP网络的承载功能结合相应的认证和授权机制建立起来的一种安全的×××
SSL ×××(Security Socket Layer,SSL):是指基于安全套接层协议(SSL)建立远程安全访问通道的×××技术。
3、IPSec基本理论:
①IPSec对×××流量提供的三方面的保护:私密性(对数据进行加密),完整性(保证数据的传输过程中无第三方篡改),源认证(对发送数据包的源进行认证,确保是合法的发送者)。
②IPSec框架:没有定义具体的加密和散列函数。每一次IPSec会话所使用的具体算法都是通过协商确定的。
协商通过的不仅是函数算法,还有其他的:
③、散列函数(HASH函数)——主要任务,验证数据的完整性。
特点:
1.固定大小:(散列函数可以接收任意大小的数据,并输出固定大小的散列值,例如,不管数据大小,MD5算出的hash值总是128bit,而SHA-1算出的长度则为160bit)。
2.雪崩效应:原始的数据改变一点得到的hash将会发生巨大改变。
3.单向:只能从数据计算出hash;不可能将hash反推数据。
4.冲突避免:几乎不能找到另一个数据和当前数据计算的hash一样,因此hash能够确保数据的唯一性
由于hash只能保证数据而动完整性,而不能保证数据的源认证,所以存在中间人的×××风险,那么用HMAC来弥补这一缺陷(Keyed-hash Message Authentication Code,密钥化散列信息认证代码)这项技术不仅能够实现完整性校验,还能都提供对源的认证。
④、加密算法
分类:
对称加密(DES,3DES ,AES,RC4)
非对称加密(RSA:数字签名和数字证书的主流协议;DH:IPSec产生密钥资源的主要协议;ECC:椭圆曲线算法)
*对称:相同的密钥(加密密钥和解密密钥一致)视为对称。分为流加密(AES)和块加密(DES,3DES)
特点:
优点:
速度快,安全,紧凑
缺点:
明文传输共享密钥,易出现中途窃听,劫持的问题;
随着参与者数量的增加,密钥数量急剧膨胀(N*(N-1)/2);
因为密钥数量较多,对密钥的存储管理也是一个问题;
不支持数字签名和不可否认性。
1、DES:块加密算法,将数据包预先切分成很多大小相同的块(DES算法是每块64bit),之后使用DES算法逐块加密,若不够64比特的数据,那么就需要填充够64比特。加密后的数据会比原始的数据略大,以一个1500B的数据为例,DES加密后,最多增加8B(64比特),所以可以认为DES算法加密后是紧凑的。(DES的两种块加密方式:电子代码本 ECB和密码块连接 CBC)
ECB:对每一块都是使用相同的DES密钥进行加密。
CBC:会随机产生一个IV(初始化向量)字段,第一个明文块+IV→异或→DES加密→密文1;
密文1+下一明文块→异或→DES加密→密文2;
密文2+·····
(每个数据包都会使用随机产生的IV字段进行扰乱,且整个加密的块是连接在一起的,任何一个块的解密失败,那么其余部分就都失败了)。
*非对称:一个密钥的加密信息,必须使用另一个密钥来解密。(私钥加密公钥解密;公钥加密私钥解密)
我们可以使用非对称密钥算法来加密数据和对数据进行数字签名。
加密数据:非对称加密速度极慢,所以加密数据并不好。所以实际中主要使用非对称算法对密钥加密,以进行密钥的交换。
签名:签名的目的就是对某一份文件进行确认。以保证不可抵赖。数字签名的校验成功,保证了传输的数据的完整性和源认证。
非对称密钥步骤:
步骤1——发送方预先获取接收方的公钥;
步骤2——发送方使用接收方的公钥进行加密;
步骤3——中途获取者没有接收者的私钥,不能解密;
步骤4——接收方利用自己的私钥进行解密。
使用私钥加密,公钥解密完成数字签名——实现完整性校验,源认证,不可否认性。
数字签名的安全特性:安全性校验和源认证。
工作特点:用密钥加密的数据只能公钥解密。
优点:安全;
密钥的数目额=和参与者的数目相同;
在交换公钥之前不需要建立某种信任关系;
支持数字签名和不可否认性。
缺点:
加密速度极慢;
密文会变长很多。
*综合各自的优点的加密方案:
⑤、IPSec有ESP(Encapsulation Security Payload)和AH(Authentication Header)两种封装协议
*ESP:
能够保证私密性,完整性和源认证;并且能够抵御重放×××。
IP协议号50;
ESP字段解释:
1、SPI(安全参数索引)32bits——处理数据包的安全关联,用于标识唯一的一个IPSec SA
2、SN(序列号)32bits——标识一个ESP数据包,序号单调递增
3、Initialization Vector(初始化向量)32bits——IV,使用CBC加密的数据包会产生一个随机数(IV),用于加密时对数据进行扰乱(假如IPSec ×××不加密的话这一字段就不存在)
4、Payload Data(负载数据)——即IPSec加密所保护的数据(封装模式不同会影响负载数据的内容)
5、Padding(垫片)——用于补足块加密时候的块比特不足(假如不加密就没有这一字段)
6、pad Length(垫片长度)——告诉接收方,垫片数据的长度,接收方接收后就可以去掉这部分多余的填充
7、Next Header(下一个头部)——标识IPSec封装负载数据里面的下一个头部(封装模式不同,下一个头部也会发生变化,例如传输模式的下一头部是TCP/UDP;隧道模式的下一头部肯定是IP)这里可以看出IPSec设计初衷是为IPv6
8、Authentication Data(认证数据)——ESP会从ESP头部到ESP尾部的所有数据进行验证(即做HMAC)得到的hash值就会被放到认证数据部分,接收方可以通过这个认证数据部分对ESP数据包进行完整性和源认证的校验。
*AH:
只能对数据完整性和源认证做保证;能抵御重放×××。
IP协议号51;
AH不能广泛使用的原因:1、不提供私密性,2、AH要验证原始IP头部(IPv4过NAT,地址会改变,抵达目的地之后就不能通过验证)
AH做IP头部校验的部分:服务类型;旗标,分段偏移;存活时间;头校验和。
⑥、IPSec的两种数据封装模式:
1、传输模式:(需要全局可路由)
2、隧道模式:
&&&&&&密钥有效期:长期使用相同密码来加密数据时不明智的,IPSec ×××的默认密钥有效期的3600秒更新一次。但是Cisco每小时更换的密钥是和上一个密钥有关系的,经过上一个密钥衍生出来的。要实现PFS(Perfect Forward Secrecy)完美向前保密的密钥更新的话,就要启用PFS,当每一小时更新的时候,展开一次全新的DH交换,这样就和前面的密钥没有关系了。
⑦、互联网交换协议(IKE)Internet key EXCHANGE
我们知道IPSec ×××提供的服务需要经过:预先协商加密协议;散列函数;封装协议;封装模式;和密钥有效期等内容。而具体执行协商任务的协议就叫做IKE协议。(对数据进行安全处理的一系列相关参数就叫SA,安全关联参数,用SPI号来区分)。
1、IKE的主要完成的3方面(功能):
*对建立的双方进行认证(需要预先协商认证方式)
*通过密钥交换,产生用于加密和HMAC的随机密钥(即产生密钥资源和管理密钥资源(有效期))
*协商协议参数(加密协议,散列函数,封装协议,封装模式和密钥有效期)
协商完成后的结果叫做安全关联SA;SA有两种类型,一种是IKE SA,是对IKE的数据流量进行安全处理的一个安全关联参数;另一种是IPSec SA,IPSec SA维护的是安全防护实际用户流量(通信点之间流量)的细节。
2、IKE有三个协议组成:
*SKEME:决定了IKE的密钥交换方式;
*Oakley:决定了IPSec的框架设计;
*ISAKMP:IKE的本质协议,决定了包封装与交换,还有模式切换。(封装在UDP 500上的)
有时候把ISAKMP看做是IKE,但是如果要区别二者的话,那就是IKE可以决定密钥的交换方式,而ISAKMP不能。
3、IKE的两个阶段和三个模式:
*两个阶段:第一阶段和第二阶段
第一阶段协商:可以使用6个包的主模式或者是3个包的主动模式(野蛮模式)
目的:对建立IPSec的双方进行认证,以确保只有合法的对等体才能建立IPSec ×××
协议结果:IKE SA
——使用主动模式的情况:通过预共享密钥认证的远程访问×××(Cisco的技术名叫做Ez×××)换言之,使用证书认证的Ez×××也是通过6 个数据包交换的主模式来完成的。 |
第二阶段协商:使用3个包交换的快速模式来完成;
目的:根据需要加密的实际流量(感兴趣流),来协商保护这些流量的策略;
协商结果:IPSec SA
一旦双方在第一阶段建立起来了信任关系,那么他们就没有必要一直重复进行认证了,接下来双方的议题就是根据第一阶段协商的IKE SA,给两个站点之间的很多需要被加密的流量协商不同的第二阶段策略(IPSec SA)。
4、主模式的交换的6个数据包需要完成的任务:(双向)
1-2个:通过核对收到的ISAKMP数据包的源IP地址以确认收到的ISAKMP数据包是否来源于合法的对等体;协商IKE策略(为认证准备好策略)。
注意,ISAKMP包是使用源目端口为UDP 500传输的。
策略包含内容:加密策略;散列函数;DH组;认证方式;密钥有效期
3-4个:交换密钥;为保护5-6包的安全算法提供密钥资源
这里使用的是DH(Diffie-Hellman)算法,这是一个非对称加密算法,单向函数。
5-6个:在安全的环境下进行认证(IKE5-6包开始,后面都是使用IKE1-2包交换所协商的加密和HMAC算法进行安全保护)
*IPSec有三种认证方式:预共享密钥认证,证书认证,RSA加密随机数认证
5、快速模式的1-3个数据包的交换:(单向)
在快速模式中,1-3个包交换的主要目的就是安全的环境下,基于感兴趣流量协商处理这个感兴趣流的IPSec策略,这些策略包括:
感兴趣流,加密策略,散列函数,封装协议,封装模式,密钥有效期。
可以看到的是接收方决定的SPI号,第二个包中的SPI号维护发起方到接收方的流量;第三个包中的SPI号维护的是接收方到发起方的流量(也就是目的设备决定了SPI值,因为发起方到接收方的IPSec SA的SPI是由接收方产生的,并通过下一个(第二个)包发送给发起方)
转载于:https://blog.51cto.com/momentsli/2130072