IPSec ×××基础
英语文化交流 > 技术博客 > IPSec ×××基础
IPSec ×××基础
时间: 分类:技术博客

1×××的产生背景:

随着时代的发展,一家公司的要跟很多分部连接在一起,以便资源共享,协同工作,提高工作效率,但是传统的专线联网方式价格昂贵,这时候低成本的×××技术就孕育而生了。×××Virtual Private Network)虚拟专用网。它可以接入公共网络来传输私有的数据,最主要的就是成本低这一优势。

 

2×××的两种连接方式:

站点到站点(Site-to-Site)和远程访问(Remote Access)连接方式。


*站点到站点×××:对于终端来说,是透明的,即用户感觉不到×××技术的存在,而是觉得相互访问的站点位于同一子网。


主要的×××有:

GREGeneric Routing Encapsulation,通用路由封装)——能对网络层的数据报文进行封装,采用了GRE tunnel技术,是××× 的三层隧道协议。

PSec ×××:可以为IP网络提供透明的安全服务,保护TCP/IP 通信避免咋遭到窃听和篡改。优势在于灵活,安全,经济,扩展性方面。

MPLS ×××:是指采用MPLS技术在宽带IP的骨干网络上构建企业的IP专网,以实现跨地区,安全,高速,可靠的数据通信传输,MPLS ×××结合区分服务和流量工程等相关技术,将公共网络可靠的性能,良好的扩展性,丰富的功能与专用网的安全,灵活,高效的结合在了一起,可以为用户提供高质量的服务。

 

*远程访问:站点对站点的×××技术只能使用在公司站点之间。假如是客户在外部出差,那么就需要使用远程访问的×××技术,这种情况一般需要在客户的计算机上安装×××客户端,并且通过这个客户端拨号到公司的×××网关。拨号成功就建立起虚拟通道连接到公司的×××网关,然后获取公司内网的一个地址,然后用这个地址来来访问公司内部的服务器。


主要的×××有:

PSec ×××:不仅用于站点到站点。

VPDNVirtual Private Dial-up Networks,虚拟私有拨号网络):是×××的一种,包含了PPTPL2TPPPPOE,是基于拨号用户的×××拨号业务。VPDN是利用IP网络的承载功能结合相应的认证和授权机制建立起来的一种安全的×××

SSL ×××Security Socket LayerSSL):是指基于安全套接层协议(SSL)建立远程安全访问通道的×××技术。


3IPSec基本理论:

image.png

IPSec×××流量提供的三方面的保护:私密性(对数据进行加密),完整性(保证数据的传输过程中无第三方篡改),源认证(对发送数据包的源进行认证,确保是合法的发送者)。

IPSec框架:没有定义具体的加密和散列函数。每一次IPSec会话所使用的具体算法都是通过协商确定的。

                         协商通过的不仅是函数算法,还有其他的:

image.png

散列函数(HASH函数)——主要任务,验证数据的完整性。

特点:

1.固定大小:(散列函数可以接收任意大小的数据,并输出固定大小的散列值,例如,不管数据大小,MD5算出的hash值总是128bit,而SHA-1算出的长度则为160bit)。

2.雪崩效应:原始的数据改变一点得到的hash将会发生巨大改变。

3.单向:只能从数据计算出hash;不可能将hash反推数据。

4.冲突避免:几乎不能找到另一个数据和当前数据计算的hash一样,因此hash能够确保数据的唯一性


由于hash只能保证数据而动完整性,而不能保证数据的源认证,所以存在中间人的×××风险,那么用HMAC来弥补这一缺陷(Keyed-hash Message Authentication Code,密钥化散列信息认证代码)这项技术不仅能够实现完整性校验,还能都提供对源的认证。


image.png

加密算法

分类:

对称加密DES3DES ,AESRC4

非对称加密RSA:数字签名和数字证书的主流协议;DHIPSec产生密钥资源的主要协议;ECC:椭圆曲线算法)

 

*对称:相同的密钥(加密密钥和解密密钥一致)视为对称。分为流加密(AES)和块加密(DES3DES

特点:

优点:

速度快,安全,紧凑

 

缺点:

明文传输共享密钥,易出现中途窃听,劫持的问题;

随着参与者数量的增加,密钥数量急剧膨胀(N*(N-1)/2);

因为密钥数量较多,对密钥的存储管理也是一个问题;

不支持数字签名和不可否认性。


1DES:块加密算法,将数据包预先切分成很多大小相同的块(DES算法是每块64bit),之后使用DES算法逐块加密,若不够64比特的数据,那么就需要填充够64比特。加密后的数据会比原始的数据略大,以一个1500B的数据为例,DES加密后,最多增加8B64比特),所以可以认为DES算法加密后是紧凑的。(DES的两种块加密方式:电子代码本 ECB和密码块连接 CBC

ECB:对每一块都是使用相同的DES密钥进行加密。

CBC:会随机产生一个IV(初始化向量)字段,第一个明文块+IV→异或→DES加密→密文1

                                                                                                   密文1+下一明文块→异或→DES加密→密文2

                                                                                                              密文2+·····

(每个数据包都会使用随机产生的IV字段进行扰乱,且整个加密的块是连接在一起的,任何一个块的解密失败,那么其余部分就都失败了)。

 

*非对称:一个密钥的加密信息,必须使用另一个密钥来解密。(私钥加密公钥解密;公钥加密私钥解密)

我们可以使用非对称密钥算法来加密数据对数据进行数字签名

加密数据:非对称加密速度极慢,所以加密数据并不好。所以实际中主要使用非对称算法对密钥加密,以进行密钥的交换。

签名:签名的目的就是对某一份文件进行确认。以保证不可抵赖。数字签名的校验成功,保证了传输的数据的完整性和源认证。

 

非对称密钥步骤:

步骤1——发送方预先获取接收方的公钥;

步骤2——发送方使用接收方的公钥进行加密;

步骤3——中途获取者没有接收者的私钥,不能解密;

步骤4——接收方利用自己的私钥进行解密。

 

使用私钥加密,公钥解密完成数字签名——实现完整性校验,源认证,不可否认性。


image.png

数字签名的安全特性:安全性校验和源认证。

工作特点:用密钥加密的数据只能公钥解密。

优点:安全;

密钥的数目额=和参与者的数目相同;

在交换公钥之前不需要建立某种信任关系;

支持数字签名和不可否认性。

 

缺点:

加密速度极慢;

密文会变长很多。


*综合各自的优点的加密方案:


image.png

image.png

IPSecESPEncapsulation Security Payload)和AHAuthentication Header)两种封装协议

image.png

*ESP

能够保证私密性完整性和源认证;并且能够抵御重放×××

IP协议号50

ESP字段解释:

1SPI(安全参数索引)32bits——处理数据包的安全关联,用于标识唯一的一个IPSec SA

2SN(序列号)32bits——标识一个ESP数据包,序号单调递增

3Initialization Vector(初始化向量)32bits——IV,使用CBC加密的数据包会产生一个随机数(IV),用于加密时对数据进行扰乱(假如IPSec ×××不加密的话这一字段就不存在)

4Payload Data(负载数据)——即IPSec加密所保护的数据(封装模式不同会影响负载数据的内容)

5Padding(垫片)——用于补足块加密时候的块比特不足(假如不加密就没有这一字段)

6pad Length(垫片长度)——告诉接收方,垫片数据的长度,接收方接收后就可以去掉这部分多余的填充

7Next Header(下一个头部)——标识IPSec封装负载数据里面的下一个头部(封装模式不同,下一个头部也会发生变化,例如传输模式的下一头部是TCP/UDP;隧道模式的下一头部肯定是IP)这里可以看出IPSec设计初衷是为IPv6

8Authentication Data(认证数据)——ESP会从ESP头部到ESP尾部的所有数据进行验证(即做HMAC)得到的hash值就会被放到认证数据部分,接收方可以通过这个认证数据部分对ESP数据包进行完整性和源认证的校验。


*AH

只能对数据完整性和源认证做保证;能抵御重放×××

IP协议号51

AH不能广泛使用的原因:1、不提供私密性,2AH要验证原始IP头部(IPv4NAT,地址会改变,抵达目的地之后就不能通过验证)

AHIP头部校验的部分:服务类型;旗标,分段偏移;存活时间;头校验和。


IPSec的两种数据封装模式:

1传输模式:(需要全局可路由)

image.png

2隧道模式:

image.png

&&&&&&密钥有效期:长期使用相同密码来加密数据时不明智的,IPSec ×××的默认密钥有效期的3600秒更新一次。但是Cisco每小时更换的密钥是和上一个密钥有关系的,经过上一个密钥衍生出来的。要实现PFSPerfect Forward Secrecy)完美向前保密的密钥更新的话,就要启用PFS,当每一小时更新的时候,展开一次全新的DH交换,这样就和前面的密钥没有关系了。


互联网交换协议(IKEInternet key EXCHANGE

我们知道IPSec ×××提供的服务需要经过:预先协商加密协议;散列函数;封装协议;封装模式;和密钥有效期等内容。而具体执行协商任务的协议就叫做IKE协议。(对数据进行安全处理的一系列相关参数就叫SA,安全关联参数,用SPI号来区分)。

1IKE的主要完成的3方面(功能):

            *对建立的双方进行认证(需要预先协商认证方式)

            *通过密钥交换,产生用于加密和HMAC的随机密钥(即产生密钥资源和管理密钥资源(有效期))

            *协商协议参数(加密协议,散列函数,封装协议,封装模式和密钥有效期)

         协商完成后的结果叫做安全关联SASA有两种类型,一种是IKE SA,是对IKE的数据流量进行安全处理的一个安全关联参数;另一种是IPSec SAIPSec SA维护的是安全防护实际用户流量(通信点之间流量)的细节。

2IKE有三个协议组成:

            *SKEME:决定了IKE的密钥交换方式;

            *Oakley:决定了IPSec的框架设计;

            *ISAKMPIKE的本质协议,决定了包封装与交换,还有模式切换。(封装在UDP 500上的)

      有时候把ISAKMP看做是IKE,但是如果要区别二者的话,那就是IKE可以决定密钥的交换方式,而ISAKMP不能。

3IKE的两个阶段和三个模式:

image.png

*两个阶段:第一阶段和第二阶段

                         第一阶段协商:可以使用6个包的主模式或者是3个包的主动模式(野蛮模式)

                                           目的:对建立IPSec的双方进行认证,以确保只有合法的对等体才能建立IPSec ×××

                                  协议结果:IKE SA

——使用主动模式的情况:通过预共享密钥认证的远程访问×××Cisco的技术名叫做Ez×××)换言之,使用证书认证的Ez×××也是通过6                                                                                                                        个数据包交换的主模式来完成的。

                         第二阶段协商:使用3个包交换的快速模式来完成;

                                          目的:根据需要加密的实际流量(感兴趣流),来协商保护这些流量的策略;

                                  协商结果:IPSec SA

     一旦双方在第一阶段建立起来了信任关系,那么他们就没有必要一直重复进行认证了,接下来双方的议题就是根据第一阶段协商的IKE SA,给两个站点之间的很多需要被加密的流量协商不同的第二阶段策略(IPSec SA)。

4、主模式的交换的6个数据包需要完成的任务:(双向)


image.png

1-2个:通过核对收到的ISAKMP数据包的源IP地址以确认收到的ISAKMP数据包是否来源于合法的对等体;协商IKE策略(为认证准备好策略)。

 注意,ISAKMP包是使用源目端口为UDP 500传输的。

 策略包含内容:加密策略;散列函数;DH组;认证方式;密钥有效期

3-4个:交换密钥;为保护5-6包的安全算法提供密钥资源

这里使用的是DHDiffie-Hellman)算法,这是一个非对称加密算法,单向函数。

5-6个:在安全的环境下进行认证IKE5-6包开始,后面都是使用IKE1-2包交换所协商的加密和HMAC算法进行安全保护)

    *IPSec有三种认证方式:预共享密钥认证,证书认证,RSA加密随机数认证

 

5、快速模式的1-3个数据包的交换:(单向)

            在快速模式中,1-3个包交换的主要目的就是安全的环境下,基于感兴趣流量协商处理这个感兴趣流的IPSec策略,这些策略包括:

                     感兴趣流,加密策略,散列函数,封装协议,封装模式,密钥有效期。

image.png

可以看到的是接收方决定的SPI号,第二个包中的SPI号维护发起方到接收方的流量;第三个包中的SPI号维护的是接收方到发起方的流量(也就是目的设备决定了SPI值,因为发起方到接收方的IPSec SASPI是由接收方产生的,并通过下一个(第二个)包发送给发起方)


随机阅读

Copyright © 2017 英语文化交流 All Rights Reserved.