IPSec VPN详解(深入浅出简单易懂)_第1页
IPSec VPN详解(深入浅出简单易懂)_第2页
IPSec VPN详解(深入浅出简单易懂)_第3页
IPSec VPN详解(深入浅出简单易懂)_第4页
IPSec VPN详解(深入浅出简单易懂)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IPSecVPN详解

1.IPSec概述

IPSec(ipsecurity)是一种开放标准的框架结构,特定的通信方之间在IP层通过加密和数据摘要(hash)等手段,来保证数据包在Internet网上传输时的私密性(confidentiality)、完整性(dataintegrity)和真实性(originauthentication)。

1.1.通过加密保证数据的私密性

★私密性:防止信息泄漏给未经授权的个人

★通过加密把数据从明文变成无法读懂的密文,从而确保数据的私密性

4ehlDx67NMop9eRU78IOPotVBn^l5TR

加密

丈在是

看不懂

*

解密

4ehlDx67NMop9eRU78IOPotVBn45TR

1・2■对数据进行hash运算来保证完整性

★完整性:数据没有被非法篡改★通过对数据进行hash运算,产生类似于指纹的数据摘要,以保证数据的完整性

馳改数据

土豆两块钱一斤

Hfish

Hash

fl

m土豆三块钱一斤匚

4diIDx67NMop9

两者不一敎代表

」数曙已披篡改

2fwex67N32rfee3

_.0「:I土豆两块钱一斤

坐h!Dx67NMop9宁□血Dx67NMop9

A

对数据和密钥一起进行hash运算

★攻击者篡改数据后,可以根据修改后的数据生成新的摘要,以此掩盖自己的攻击行为

★通过把数据和密钥一起进行hash运算,可以有效抵御上述攻击。

土豆三块钱一斤

2ftvex67N32rfce3

4

Hash

两者还是不一致

龙土豆两块钱「斤]

[fefe23fgrNMop7蝕曲如NMopY

我:同捕改数据利齒要

>

土豆两块钱一斤4彳

H;ish

密钥

DH算法的基本原理

问题:怎样在双方之间安全地传递密钥?

哈哈十要是敢直接楼递密钥才我就只好倫看了

•密钥

Rontei'A

艮outerB

生成一个整数p:;生成一个整数q

TOC\o"1-5"\h\z

把p发送到对端——」_:,

.―J—i把q发送到对端

根据p、q生成gij根据p、q生成g

生成密钥旳|上;生成密钥Xb

把M智血发送|血J丿

到对端:;

.|Xb|把Xb发送

L1到对端

最后得到的

对称窸钥

Key=5^Xb

F(X泸Xb)

1.3.通过身份认证保证数据的真实性

★真实性:数据确实是由特定的对端发出

★通过身份认证可以保证数据的真实性。常用的身份认证方式包括

Pre-sharedkey,预共享密钥

RSASignature,数字签名

1.3.1.预共享密钥

预共享密钥,是指通信双方在配置时手工输入相同的密钥。

本地

远端

生成的HashL

接收•到的H聒hL

共享密钥

1.3.2.数字证书

★RSA密钥对,一个是可以向大家公开的公钥,另一个是只有自己知道的私钥。

★用公钥加密过的数据只有对应的私钥才能解开,反之亦然。★数字证书中存储了公钥,以及用户名等身份信息。

■+身份信息

数字签名

Hash

2.IPSec框架结构

IPS氏框架

可选择的算法

IPS比安全协议

加密

数据摘要

对称密钥交换

ESP

AH

DES

3DES

MD5

SHA

DH1

DH2

AES

2.1.IPSec安全协议

IPSec安全协议描述了如何利用加密和hash来保护数据安全

★AH(AuthenticationHeader)网络认证协议,只能进行数据摘要(hash),不能实现数据加

ah-md5-hmac、ah-sha-hmac

★ESP(EncapsulatingSecurityPayload)封装安全载荷协议,能够进行数据加密和数据摘要(hash)

esp-des、esp-3des、esp-md5-hmac、esp-sha-hmac

2.2.IPSec封装模式

IPSec支持两种封装模式:传输模式和隧道模式

♦传输模式:不改变原有的IP包头,通常用于主机与主机之间。

IP头

AH头

数据

IP头

数据

AH

hash1

AH对除了TTL等变化值以外的整个IP包进行h亦h运算

IP头

ESP头

[—数据二

ESPtrailer

ESPautli

ESP

原始IP包

♦隧道模式:

i加WI

IhashI

增加新的ip头,通常用于私网与私网之间通过公网进行通信。

3.IPSec与NAT

3.1.AH模式

AH模式无法与NAT—起运行,因为AH对包括IP地址在内的整个IP包进行hash运算,

而NAT会改变IP地址,从而破坏AH的hash值。

hash

AH?不年亍!我对IP地址也讲有了hash

NAT=我勢修改源f目的IP地址

IP头AH头数据

3.2.ESP模式

♦只进行地址映射时,ESP可与NAT—起工作。

♦进行端口映射时,需要修改端口,而ESP已经对端口号进行了加密和/或hash,所以将无法进行。

NAT.網口号被加巒投法改*真郁阀

IP头ESP头Th/wp端口数据ESPtrailerESPauUi

加密

♦启用IPSecNAT穿越后,会在ESP头前增加一个UDP头,就可以进行端口映射。

厂NAT:可以改端

口号了,太捧了

IP头新UDP头ESP头TCP/UDP端口数据ESPtrailei-ESPautli

加密

4.IPSec安全通道协商过程

HostAHostB

r=?RouterARouterB^=^1

什么是端到端的VPN?

♦需要保护的流量流经路由器,触发路由器启动相关的协商过程。

♦启动IKE(Internetkeyexchange,密钥管理协议)阶段1,对通信双方进行身份认证,并在两端之间建立一条安全的通道。

♦启动IKE阶段2,在上述安全通道上协商IPSec参数。

♦按协商好的IPSec参数对数据流进行加密、hash等保护。

4.1.IKE密钥交换协议

Internet密钥交换(IKE)解决了在不安全的网络环境(如Internet)中安全地建立或更新共享密钥的问题。IKE是非常通用的协议,不仅可为IPsec协商安全关联,而且可以为SNMPv3、RIPv2、OSPFv2等任何要求保密的协议协商安全参数。

一、IKE的作用当应用环境的规模较小时,可以用手工配置SA;当应用环境规模较大、参与的节点位置不固定时,IKE可自动地为参与通信的实体协商SA,并对安全关联库(SAD)维护,保障通信安全。

二、IKE的机制IKE属于一种混合型协议,由Internet安全关联和密钥管理协议(ISAKMP)和两种密钥交换协议OAKLEY与SKEME组成。IKE创建在由ISAKMP定义的框架上,沿用了OAKLEY的密钥交换模式以及SKEME的共享和密钥更新技术,还定义了它自己的两种密钥交换方式。

IKE使用了两个阶段的ISAKMP:

第一阶段,协商创建一个通信信道(IKESA),并对该信道进行验证,为双方进一步的IKE通信提供机密性、消息完整性以及消息源验证服务;

第二阶段,使用已建立的IKESA建立IPsecSA。

IKE共定义了5种交换。阶段1有两种模式的交换:对身份进行保护的“主模式”交换以及根据基本ISAKMP文档制订的“野蛮模式”交换。阶段2交换使用“快速模式”交换。IKE自己定义了两种交换:1为通信各方间协商一个新的Diffie-Hellman组类型的“新组模式”交换;2在IKE通信双方间传送错误及状态消息的ISAKMP信息交换。

1.主模式交换主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。三个步骤分别是策略协商交换、Diffie-Hellman共享值、nonce交换以及身份验证交换(如图2所示)。

协用1启寸

的左仝歩勒I

响应方不挨受

呼1N&庁佇;

许护密佇

疑方鲨捋舛

啻出恪式不n确

卄賊.换

寻忖兀寸

童钥搭式不正币方

岳月宰u

身芳曲迁

完成适钏

命护汕年

到*

就绪

IJAKM:瀝丄

兰起方

斯有的提谡选定的协诩下亡

方起方1*送身約訓*'、」

ER

图2.主模式^科焙竣快囲

成功,吐战据

負位:我尖购

衍1)应犬传送

身瞬息

发起方启戢协咼传逑

对云仝蚩敛繼谊追

荒起方发送密

钥垂才才杠必需

响直方发迭童羅耒村

和出帝很服H翔绘

】幅方迭定可接受

由諧肋数年

垂传

圭件

2.野蛮模式交换野蛮模式交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换Diffie-Hellman公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据(如图3所示)。

重传

协商启动

身悅验证

重传

重传

就绪

團3.里瑾模圾换状屎换图

笈起方传送验证载荷

发起方启动协商传送对安

?

圭参数的提谏公开

值.nonce,矗身份數据

咸功,狀态

数据負位孑

或者戋败=

ISAKMF

岌起方身悅环对

口斓方身份环对,

响应方传递选定

的安全参数■值』DH

公开值』rmncej

身份数据,以及

J航载荷

3.快速模式交换快速模式交换通过三条消息建立IPsecSA:头两条消息协商IPsecSA的各项参数值,并生成IPsec使用的密钥;第二条消息还为响应方提供在场的证据;第三条消息为发起方提供在场的证据(如图4所示)。

4.新组模式交换通信双方通过新组模式交换协商新的Diffie—Hellman组。新组模式交换属于一种请求/响应交换。发送方发送提议的组的标识符及其特征,如果响应方能够接收

5.ISAKMP信息交换参与IKE通信的双方均能向对方发送错误及状态提示消息。这实际

4.2.IKE阶段1

协商建立IKE安全通道所使用的翁数

协商建立IKE安全通道所使用的参数

IKE阶段1

HostBRouterB■^0—I-

HostA

RouterA

J-

♦协商建立IKE安全通道所使用的参数,包括:

加密算法、Hash算法、DH算法、身份认证方法、存活时间

Policy10DESMD5

Routei-B

hostB

DH1跃方找到相同的策略集

Pre-share

lifetime

Policy15

DES

MD5

DH1

Pre-share

lifetime

Policy25

3DES

SHA

DH2

Pre-share

lifetime

Policy20

3DES

SHA

DH1Pre-sharelifetime

♦上述IKE参数组合成集合,称为IKEpolicy。IKE协商就是要在通信双方之间找到相同的policy。

HostA

RouterA

”rtouier/■

IKE阶段1

HostB

4・3・IKE阶段2

协商IPSec安全参数——:协^IPSec安全参数

♦双方协商IPSec安全参数,称为变换集transformset,包括:

加密算法、Hash算法、安全协议、封装模式、存活时间

IKE与IPSec安全参数的比较

IKE

圭全协谏

封装複武

加密算法lla曲薦法存活已间

IPSec

身份认证

4.4.IPSecSA

♦iPSecSA(安全关联,SecurityAssociation):

SA由SPD(securitypolicydatabase)和SAD(SAdatabase)组成。

iPSecSA(安全关联,SecurityAssociation):

♦SPI(SecurityParameterIndex),由IKE自动分配

♦发送数据包时,会把SPI插入到IPSec头中

♦接收到数据包后,根据SPI值查找SAD和SPD,从而获知解密数据包所需的加解密算法、hash算法等。

♦一个SA只记录单向的参数,所以一个IPSec连接会有两个IPSecSA

♦使用SPI可以标识路由器与不同对象之间的连接。

BA

□□□□□□□□□□□□□□□

□□□□□ppjir^i□□□□□□□□□□□□□□□

□□□□

□□□□

I

rm.

SPI-12

ESP/3DES/SHA

tunnel

28800

//

PL,——-

□izpll□□r

Internet

**SPZ9

ESP/DES/MD5

28800

♦达到lifetime以后,原有的IPSecSA就会被删除

♦如果正在传输数据,系统会在原SA超时之前自动协商建立新的SA,从而保证数据的传输不会因此而中断。

4.5.IPsecSA示例

Router1t(5hcryptoipsec舌司interface:EthernetB/l

Cryptonaptag:阿map,localsddr^1^2.163.2-1

loca上ident(addr/naGh/prut/pOHtJ:(10.17.36_141/25S-25S-255:.25E;/flZ0)renoteident(addr/nask/prot/port):(18,17.37.152/255*255-255.255/fl/G)current_peer:192*168・2・送

〔中间省略)

inbound曹wpsasz

spi:axflcyB2586.(2S95127(>Xl2)

transforn:es-p-d^s.

inusesettings=<Tunnel,}

slot:科,connid:2S06,Flow_idz1,cryptom^p:训^阳日卩satining:reRai=ningkey1ifetime(k/sec):(U607"999/357^)iusi2^:ebytes

replayd^t&ctionsupport!N

outboundesps^s:

spi:OxCFECD6?0(3^646509?)tr^n5f=orn:esp-ti-esp

inus?-〈Tunnel*}

sl»t:越,connid:2的1*flow_id:2,crypton^p:my耐psatiming:renaiJiingkeylifetimp(k/sec):(46B7,999/3574)Id:8b^tesreplaydetectionsupport:N

5.Ipsecphase1andphase2

(一)IPSecVPN隧道的建立过程分为两个阶段:

第一个阶段:分为两种模式主模式(MainMode和野蛮模式(又称主动模式Aggressive)第二个阶段:快速模式(QuickMode)区别:主模式与野蛮模式的区别:

(1)野蛮模式协商比主模式协商更快。

因为主模式需要交互6个消息,而野蛮模式只需要交互3个消息;

(2)主模式协商比野蛮模式协商更严谨、更安全。

因为主模式在“消息5&消息6”中对ID信息进行了加密。而野蛮模式由于受到交换次数的限制,ID消息在“消息1&消息2”中以明文的方式发送给对端。即主模式对对端身份进行了保护,而野蛮模式则没有。

(二)两个阶段分别完成任务:

(1)第一个阶段IKE设置,有三个任务需要完成:

(a)协商一系列算法和参数(这些算法和参数用于保护隧道建立过程中的数据);

(b)必须计算出两边使用的加密KEY值,例如,两边使用3DES算法加密,3DES算法则需要一个密码,这个密码两端必须一样,但又不能在链路上传递。

(c)对等体的验证,如何才能知道对端就是我要与之通信的对端。这里验证有三种方法:预共享、数字签名和加密临时值。

上面一系列过程都是IKE(Internet密钥交换协议,大多数厂商都把这个叫做VPNsGateway)这个协议来实现。

对于第一阶段需要注意以下几点:

(a1)只有remotevpn和easyvpn是积极模式的,其他都是用主模式来协商的;(a2)让IKE对等体彼此验证对方并确定会话密钥,这个阶段用DH进行密钥交换,创建完IKESA后,所有后续的协商都将通过加密和完整性检查来保护。

(a3)第一阶段帮助在对等体之间创建了一条安全通道,使后面的第二阶段过程协商受到安全保护。

(2)第二阶段:协商IPSecSA使用的安全参数,创建IPSecSA(SA可以加密两个对等体之间的数据,这才是真正的需要加密的用户数据),使用AH或ESP来加密IP数据流。至此IPSecVPN隧道才真正建立起来。

(三)综上,有如下结论:

第一阶段作用:对等体之间彼此验证对方,并协商出IKESA,保护第二阶段中IPSecSA协商过程;

第二阶段作用:协商IPSec单向SA,为保护IP数据流而创建;

(四)举例验证:以主模式,AH协议来简单分析一下IPSecVPN链接建立的过程(附带报文):

第一个阶段三个任务,分别用6个消息来完成,每两个为一组,这些消息的具体格式取决于使用的对等体认证方法,使用预共享密钥进行验证的主模式(6条)协商过程使用ISAKMP消息格式来传递(基于UDP,端口号为500)。6条消息如下:

343.73404300|.10,1.1.2|—

ISAKHP

Idenrlt;-Projection

可al-Moce>x

3礦母翩员£0.1.*洎亢的

:SAKM?

IderirityProiectfon

:dai/.炯谄召曲

|9Ba.7421J30ai10.1.L3

ISAKMP

Idcntit?'Prote匚tiam

[MainMode)

37S.7355S20QH0-1.1.Z10.1.I.3

ISAKUP

IdentityF-*31c-匚ti□口

Melin?.1cde^

353.76198700'

ISAKHP

IdemitProiection|

可al-Meer:

39S.76233900-IO..1.3

:SAD(=

Id£匚lit;-

Xfsi■'q\fnriFi

34

■734043001■

丄■

1.3

10.1.

1.

ISAKMF

Ident二tv

Frote匚ti口n

血in

Mcc.e;

35

s.73452500H0.

1,

1.2

10.1.

1,

3

ISAKMP

Ider)t:tr

Prorection

Wain

Mode?

36

8.74210300110.

1.

1.3

10.1.

1.

2SAKM?

Iden.1:二ty

Fratectisn

.Main

Mede)

3"

s.75558200H0.

j.i

1.2

10”1,

1,

3

ISAKMP

Idemit

Prorection

Main

Mode)

33

9.7619fi700il0.

1.

1.3

10.1.

1.

ISAKMF

Icent二ty

Frote匚ti口n

)11!□

Mede;

39

S.76232900110.

1,

1.2

10.1.

1,

3

ISAKMP

Identity

Prorection

■:Afein

Mode)

MFrame36:370bytejonvire(3160bits),270byre;captured(216Qbits)

田二Src:Rz„zoin_88:33;77.00;Oe;:S3;S3:?7)8Dst:Rai£ecoQ_J2:£3:9e_^.U0zOe:5e:32;J3:

田Int盈:1ETFrotowl,Six:1F1.1.3“0.1.L.劝,Dmt:h1.2【10.1.1,2严^~外层传输的[她址

田|L吕若£•^已二比耳匸虹F=a:t:n匚口二Sr匚P□:rt;is:3Lkan:300;‘.Iht:fart;二:忑翊"基于UDPmSj,端口対5加

@Im^rneiSecurityAssocialionandKeyManagementFrctocoldata部-分

第一血段

(1)准备工作:

在前2条消息发送之前,发送者和接受者必须先计算出各自的cookie(可以防重放和DOS攻击),这些cookie用于标识每个单独的协商交换消息。

cookie――RFC建议将源目的IP、源目的端口、本地生成的随机数、日期和时间进行散列操作。Cookie成为留在IKE协商中交换信息的唯一标识,实际上cookie是用来防止DOS攻击的,它把和其他设备建立IPSec所需要的连接信息不是以缓存的形式包存在路由器里,而是把这些信息HASH成个cookie值。

(2)1&2消息:

消息1:由发送方(协商发起端)发起,携带一些参数,发送方向接收方发送一条包含一组或多组策略提议(Raisecom工业路由器中是多组),在策略提议中包括5元组信息:

加密算法一一DES;

散列算法——MD5-HMAC;

DHDiffie-Hellman组-2;

认证方式——预共享;

IKESA寿命。

如下是Raisecom中高级选项配置的策略

(认证方式采用“预共享”方式)

橫式◎主擴式CffM式

认证■磋

SH\

¥

SH&

3DES

V

3DES

[DESv|

CHGroup2

Jv]

DHGroups

vl

11

|108DO

t

fi=10BDO)

□PDO开启①关闭

(对于DPD,具体作用不知道,默认是关闭)

下面简要介绍一下上述五元组信息:

协商模式:可以选择主模式(MainMode)或者野蛮模式(Aggressive)。当选择主模式时,只能使用IP地址作为ID的类型。当用户端设备的IP地址为动态获取的情况时,需要选择野蛮模式。IKE野蛮模式相对于主模式来说更加灵活,可以选择根据协商发起端的IP地址或者ID来查找对应的身份验证字,并最终完成协商。

验证方法AH(AuthenticationHeader):身份验证确认通信双方的身份。目前在IKE提议中,仅可用pre-shared-key(预共享密钥)身份验证方法,使用该验证方法时必须配置身份验证字,并且两端的密钥要完全一致。

加密算法:包括DES和3DES加密算法;DES算法采用56bits的密钥进行加密,3DES算法采用112bits的密钥进行加密;AES128(AdvancedEncryptionStandard,即高级加密标准)采用128bits的密钥进行加密;AES192(AdvancedEncryptionStandard,即高级加密标准)采用192bits的密钥进行加密;AES256(AdvancedEncryptionStandard,即高级加密标准)采用256bits的密钥进行加密;一般来说,密钥越长的算法强度越高,受保护数据越难被破解,但消耗的计算资源会更多。

Diffie-Hellman组标识(DH):用户可以选择Group1即768bit或Group2即1024bit。

ISAKMP-SA生存周期:IKE使用了两个阶段为IPSec进行密钥协商并建立安全联盟。第一阶段,通信各方彼此间建立了一个已通过身份验证和安全保护的通道,即ISAKMP安全联盟(ISAKMPSA);第二阶段,用在第一阶段建立的安全通道为IPSec协商安全服务,即为IPSec协商具体的安全联盟,建立IPSecSA,IPSecSA用于最终的IP数据安全传送。ISAKMP-SA生存周期可以设定为60-604800之间的一个整数。

定时发送keepalive报文(不是必须携带):IKE通过ISAKMPSA向对端定时发送KeepAlive报文维护该条ISAKMPSA的链路状态。当对端在配置的超时时间内未收到此KeepAlive报文时,如该ISAKMPSA带有timeout标记,则删除该ISAKMPSA及由其协商的IPSecSA;否则,将其标记为timeout。

如下是抓包获取到的信息(设备为Raisecom工业路由器):

34

B.73404300UO.LL3

10B1B

1.2

rProtection

(MainMode.]

35

8-73452500

10”1”

L3

SAKM?

Identit

pProtection

'■■:■■■■'■■■:■■

36

E.-.21020011J.1.1..

10.1.

八二

Ide.ntit

■Fret亡匚ti□口

(Jia11;Jlcc.亡”

37

8-75558200

10”1”

L3

SAKM?

Identit

pProtection

(MainMode)

33

5.?6L96?00lL:l.L.L..

ID.1.

h2

攵KXl?

Identit

rFrcte匚tic::

IMaLi匚Mode;

39

S.76232900

10.1.

1.3

SAtai?

Idenrir

呻Prorecrion

(MainMode

IU

出Fr^zi-?34:293Dyteson-.7:re';238^bits;.293oytescaptured<2394titsaJ

aztn^rn^t二:,Src:Rai5^coni_88?33?7700=5^^33:33:77},Dst:Rsl5eccn_32:f5:9e'OOsOesDezSSzfDsBe}

®InternetFtutocol,Src:16二1」3{:.Cl二二3),Ost:<)

王us-erDi.ti.srin?rotocol・Src?ori:i弓iknp:500>.Ds=t?crt:isal-ZL^*:00)

SZrit^rn^tAeeoc:oriiadRWy匕吕匕□亡dtPe!ctnen1

Ir^t^iorcookie:ef065f32ddf393b2'

□.;:uruLio'.Tnendor__■

3):XAUTH:

3;:RFC37G6D?D<DeadFeer:?erecticn>

由上图可知,模式为主模式,载荷类型为SA。SA的数目和内容详见下图:

将载荷类型SA展开如下:由下图可知,该SA中携带了三组策略,正好Raisecom中web页面配置的三组策略:

裁荷奕型酮中包含了三组黄略畏仪,正好对应*web页面上的

-

7r^ifom

-0

::K

■.亠_•工A鼻

4-K.(JLx»壬^A..■=

■3)

—1

4-

3勺丁■■广|耳二■尊・ta■WHb'rtIt

T忙nr兰F"

■■HTtia■■■..

7

_n

SMAw

1,1D57

SHA—v

13DESv

3DESv

CESv

謝&卿陀7

DH4型滋v

pq~—-U

第一组TypePayload:Transform(3)#0展开如下:

3rtpfPayload:Tran«fora(3)s

N^:-tpa.-Jdii:7ranifcrii3')FayL1l:i£::j■32

(:rn:l;_nui?r:0

T

Transfora

IKE

*

Tr^nsfora

TE"

T

Trinifoni

TK-

TK"

T

Tfcnifdra

TEE

"-::-f.■:.

IK"

"rinsfarr:IC

SA生存时间为10800;加密机制为DES;认证算法为SHA;

认证方法选择PSK(预共享密钥);

DH为Group2;

第二组TypePayload:Transform(3)#1展开如下:

r^«曾匕严■n严先』*・“

-40-亠-Lfa”d一—jj亠d4

TriinzJor=

ID-K5i_IK51:

Trsnxfar!!

rKEJTtri^'.'l^_7

Tran=fom

IKEAxtrlbuie'.

7i£^±f?nx

KEAttJibute7-

Tr&^sfon

IK-^:rrib.iTC>

Zrinzf^r^:

?.*tri3uLtz二

:eeh■二:

Ihi二:

日T\

Psvloac1匕冷耳工匕22

.ran:fcrrnn^tcrt2

Tra^ifcmID:

i礼e(]

_r■圧:葩

AtTTthLt*

?7?e

y

Tranefcrii:Ki

AiTrIbL:e

7jpe

<1=1L

Tnmsfon:KE

Atiri»::e

:-=c

t-L1

7ran:fcr:"Jiz

AciT:bt:e

T-pc

7r4ii:tcnIKi

Attylixu^e

T”X

t-i.:

Traiiif^ri:汇

鼻丁乳:色

:rpe

T=,:

+

■*■F«plfi

#2展开如下:

第三组TypePayload:Transform(3)

:-2.;Llf*-7r?*-

「;life-mraL【加::0300

■A:工二

AjtittritiifiTLiii-jletjiiC:F5^

=2:处片-匸弋址丁謀t;纭-jxlternaT*諒:・弋:匸J[-X?jrajp

报文中的组顺序和web页面上组顺序不一致,这个无所谓,只要能对上即可,因为实际中只要这三个组能匹配上即可。

消息2:由响应者(即对端设备)回应,内容基本一样,主要与发起者比较,是否

与发起者的IKE策略匹配,不匹配则进行下一组比较,如果最终都找不到匹配,隧道就停止建立;

(note:发起者将其所有IKE策略发给接受者,接受者则在自己的策略中寻找与之匹配的策略;对比顺序从优先级号小的到大的;默认策略实际就是个模板没作用,如果认证只配置预共享的话,其他参数就会copy默认策略里的)报文如下:

EInier口亡丁S^n/r-ityA■ationandFretor■'

Initiatorcookieef065f32ddf393b2

ResponderCQQk^:^62cl201df96db2

NextpayLead;Assocla.ti□口1.1?

Vcrsian:1.□

I咯匸仃日「二电ihje:[日启ntityFrotECTiQDMod已).2

SFlag^i0k00

Me5=aSeID:0x00000000

二亡:□巨th;

田ppg

Type穴TypectiTypeBTk~

已yWaJi玄亡匸珂1:亍盒ss□匸:1二1i□旳[I]|

Payload:

?a3rLoad:rayLoad:

v^adorIDv^^dorU

Vender13

037

(IS)

〔13〕

:j^kne^nVendorID

:XALIH

:RFC3706DFD<D?idFeer3eitction;l

Jr4"■一-ua.■+丰—n—-Mr"__”f十_+■一-1~■i*■■

318.7843.300110.1-1.:?10-:.1.ZISA&1FIdem:iyF-:Teciic:i(MainWc^'

^5S.?3452500iL<J.1.1.9]

[SAKMFIdentityPr^teGtion{MaiDMoil?)

368-74210300110-1.1.3KLLk2

SAO1EI(i亡ntzlvP»::1ecTicin.MainMcde':

378.7555820011fl.1.k2SO.Lk3

SAKMFIdemzlyPe-:!eelion3tainMcdej

388.76193700110,1-L3W,L

SAKMP"EnthyFrntectlon(MainMade)

598.762:2900il(j..1„S

S^KM;Idem^iy?r:Teciic:'.Main血心

A7Franc35:].买byteson(.1552bira).—bvtescaptured(1552bits}

szihernexII3SrCrRai3ecoiTL32:fo>9e〔00:%;宛石:9亡人3si:Ra^5^cani_S8r33i"7

EImernetProrocol.Src:().Dst:(?

比UserDatigrajErra:c匚uL5rcFeit;isakzp.500..DstFeet:isakzz;.500.

[<J0:0e:&e:88:38:77*

QTypeParload:SccurilyAzsaciiiiion(1:

Nextps.yrLead:VeciiiorID113)

Farl匚1匕口gth:52

DozEELinofinterpretation:I.FSHC(1)

FSituation:0D0000D1

-TypeFa:.?Lcad:proposal.(2)0

Xesrpayload:NONE/NqNextPaylos.il(.0)Payloadlength:~0

Prcpo±alEiLJi'c!er:0

ProtocolID:ISAKMP⑴

S?ISizes0

Prcposaltransform5:1

Trs-nsfora

ID:

F3Y_n3(1

Tritnsfcrij

2?:Z

AtLribjxe

Type

Transforn

IK3

Attribute

Type

Traniforii

Atrribjre

Type

Transforn

IK3

Attribute

Type

Transform

Atirlbjte

Type

7rinsforal

7K:

Attribute

Tvge

"rinsfora

Xextpayload:NONE•NoN^xt

?ayloadlength:32

nunb亡厂0

Farlcad(0:,

It

.t

f

'-.T

:t

(t

Ct

1131=2)Life-Typ&:Seconds

12?Lif亡-&urarrio口:10&00[

2;[Enteypt:io仃一£CTi1:血:匚BC1

2,1

2?Hash-AlgorithiLi:SHA

2)A.utLenticai1on-Mcthod:?SK

2JGroup_Des匚ripi::ici:i:Alternate1024~bitM02P吕i•匚up

由上图可知,接受端回应的消息中,匹配了发送端的一条策略,如果有一条匹配,则不需要匹配其他策略。

在消息1和消息2中报错可能出现的原因:

(a)peer路由不通(即,外层的IP地址不通,这里对应的是发送发,这里配置简单属于直连,而实际大型组网中,中间会有很多其他网元,往往是通过配置动态路由);

(b)cryptoiskmpkey没有设置(即,没有配置预共享密钥);

(c)一阶段的策略不匹配(这时需要检查两端设备的策略有不一致地方么)

(3)3&4消息:密钥交换过程

消息3:由发起者(即,隧道建立的发起者)发出,但是在发出消息3之前,有个过程必须要完成,就是Diffie-Hellman算法过程。

Diffie-Hellman算法过程目的:在消息1和消息2中所协商的算法,它们必须需要一个KEY(即,共享密钥中设置的密码),这个KEY在两个对等体上必须一样,但同时这个KEY不能在链路中传递,因为传递KEY是一个不安全的手段。所以,该过程的目的是分别在两个对等体间独立地生成一个DH公共值,该公共值有什么作用?因为两个对等体上都生成该DH公共值后,它们会在接下来的消息3和消息4中传送给对方,打个比方,A收到了B的DH公共值,B收到了A的DH公共值。当A、B都收到了对方的该公共值后,问题就好解决了。因为有一个公式在数学中被论证成立,那么现在借助公式,就可以在两个对等体上生成一个只有它们两个对等体知道的相同的KEY,该公式为:

发起者密钥=(Xb)amodp=(Xa)bmodp=响应者密钥

note:这个密钥不是最终算法中使用的KEY,但两个对等体通过该KEY材料来生成另外三个密钥,分别是:

SKEYID_d——此密钥被用于计算后续IPSec密钥资源;

SKEYID_a——此密钥被用于提供后续IKE消息的数据完整性以及认证;

SKEYIDe——此密钥被用于对后续IKE消息进行加密;

所以,由发起者发起的第三条消息主要是向对等体发送自己的DH公共值和Nonce随机数;

实际报文如下:

証S,

73404300'10

.1….3

10.1.

--r

Ir£

:3AKMF订

Ickmitr

Protection

<Main

Mode)

35&

73453500110

.1.1.i

10.L

L3

ISAKMP诟竝1

暮Idemilv

Pro~e匚tjen

{Main

Mode)

363,

74210G00H0.1-1.3

10.1.

--r』r£

ISAF31P

匚defiiltv

Projection

(MainModel

37出

75550200110

.1.1.i

10.L

L3

ISAf^lP

2dentilv

Projecticn

{Main

Mjde.1

38S,

76198700110-1.1.3

io.i.

--r

£

:SAKMF

Ickmitr

Protection

<Main

Mode)

39&

76232900110

.1.1.i

10.L

L3

ISAI31P

Ide口Hilv

Projecticn

{Main

Mode)

aFranc-36:270byt亡三口口wire{2160bils).270bytes匚apfured{2160bits)

玉EiheraerSrc:Raisecofl_33:33;77;00:0己:吞亡:55:弓3:7门:,Dst:Raisecom_32^f5;9c^C0:9e;;5e:32:f3:9e

也InlernetFrotcccl,ire:(10.kk3)rDst:IQ.LL2()SIj^erDaiagramrrctccal,Src?ari:IsELkca口(500?,D=irori:25-iknip500SInlernetE亡匚urityAssociztionandR亡丁Managra亡nt耳::口1:口cal

Iniriarorcackle:ef065f32ddI393b2

Pespendercccki亡:4562c1204df96db2

Nexrpaylead:KeytschsAEe(4j

Version:k0

ExchangeriTe:Identity?roieciio^(MainMode?ffiFlaga:0x00

MenageID:0x00000000

由上述报文可知,发送方开始向接收方发送自己的DH公共值以及随机数;

对端收到后,可以根据“消息1&消息2”中协商的DH算法,以及发送端在消息3中给

出的DH和nonce值来生成SKEYID_d、SKEYID_a、SKEYID_e三个密钥;

消息4:同消息3,告知发送端自己的DH公共值和Nonce随机数;

报文如下:

34S.734D43DOI1D.1.1.3

1SAKMF

Id上ntitr

Fr

(MainMode.

358^73452500

1C.1.1.3

:SAF3F

沽亠j."*二j-j

t已匚TiCEl

MainMode

363.7^=210300110・3L1.3

10.L1.2

'冃Identitr

Fr

t:亡匚tion

.?JaiDMode

378,75558200HO.L3,2

10.L1.3

ISAF3P

lldenrir;-

Pr

(MainMade?|

383.76L98700na.:.1.3

10.:.1.亠

Ldentif

-1-

tci:ti□□

.M^inilc«d亡

&232900HO.:

.MainMode.-

^说门疋载荷:NonceDn伯用于向发

由上述报文可知,接受方开始向发送方发送自己的DH公共值以及随机数;

对端收到后,可以根据“消息1&消息2”中协商的DH算法,以及接受端在消息4中给

出的DH和nonce值来生成SKEYID_d、SKEYID_a、SKEYID_e三个密钥;

(3)5&6消息:用于双方彼此验证。由“于消息1&消息2”的算法,以及“消息3&消息4”生成的三个KEY,所以在后续的“消息5&消息6”就能被加密传送,这个过程是受SKEYID_e加密保护的。

预共享密钥的作用:为了正确生成密钥,每一个对等体必须找到与对方相对应的预共享密钥,当有许多对等体连接时,每一对对等体两端都需要配置预共享密钥,每一对等体都必须使用ISAKMP分组的源IP来查找与其对等体对应的预共享密钥(此时,由于ID还没到,彼此先用HASH来彼此验证对方)HASH认证成分——SKEYID_a、cookieA、cookieB、preshare_key、SApayload、转换集和策略。

消息5:由发起者向响应者发送,主要是为了验证对端自己就是自己想要与之通信的对端。这可以通过预共享、数字签名、加密临时值来实现。

Fmhtu3S110tarre-sanuBire>555htre:5lidhyieseapziifcd130fcirs?

aEtheme:ILSrc:蘇竺敢工_88:33:蔷笛;韓门軒開;33;—xD«:Ral5«tw_52;f5:Be(QO:0*:5e:3S:f5;9e)隍IntciMtProtcicaliSrc:L1>31-1-3L:10-LLZtiOU;-1-即

wI'serD-i'ajrairFr:T^:al.SrcFeri-!salonpmA;』DstFort::阳;珂5C:?

bInttfne:Sectilt-Aiiocitfcicn.Key?rc:c<

Jn:l:aToreackie:efO6flf3Zddf391^2

JUEXn恥F亡加和斡4弱玄iZCUdf袖df?.

lb曲twlz己:hmt詰詬印处为宴证

Version:L0

■rXh^asetrpe;idMZlxrFrcteciiwOkinMede:2

J=Eiktypt佃n:BnctT^ad

…・・..Q.No

」…--0..瓷h?n■:icaTicnic&ti-sa

MessxseID:Q:<00000000

stmEE用于吿却对林清息俏,己枷密

亡忑■:<!柯:•二巴三F

消息6:由响应者向发起者发送,主要目的和第五条一样:

ISAKJ^

工3二”吃,9.::0Si-Ctdu'::0b::ei匚昭t®rgiSObiti!

・ETherseTII,环:Rafi*—.a^X:f=-9c汀馭g&2;!:=:^^!.Bit:351icc^3S-33:77ioa:0.?!3e&E--33:?rl

=7^e*neiFr&zocoLSrct"0*M-2订乩nx?」D轧:iQtls,3•IO-b1-3:

■tier2&lc*r£CPrezee-=1^r-:Fm=:500Ditrsrt:sJODI

-7n-fr^?i:S#etr*T:aAss~:!!:aT,:flnKurUaniE电mni:Fret34:ol

I^Uiatorcookie;er063f32ddf99SbZ

較云SSSSjSSHUSSd

Yeriioa;L0

E-c.-sfi^;*-ECenTiTyPrd*ec"ien.「血:*舫饥>2>

RY…・:r:二三口£匸丫*仁4:1,:EK*学粘|

7.0**Ccntit*Xbconrfr

+»3r+=Auche^cicKo^LtnenticAiio^

15essar?ID:OeOOOCIOOOO

住二“:二“之Pah衣_It卅

在消息5和消息6中报错可能出现的原因:

(1)cryptoiskmpkey设置错了;(即,两端的预共享密钥值设置的不一样)

五)第二阶段:

匕DataFranPrDtccol.Src?orci1曲(50DhDstPorv:1500)

slaternezSecuriadKeyyinastnie-ni

对应设备上需要配置的参数(以R202i-VM为例)

透Frszez'Z:2-z6oytez:n亠963bitz2±6byt=;cap:ursl

rHth*rn=tIIBSre:Rai«css_ES:33:77>DO:Or:3e:S3:33:77),Ds

■sO3i>h6>JL1u'Ou!la亠・,3

Quick?-kxe

f氏直嘰产旳=卜

413.76,10700*

10.1.1.:

lSxxBF

Quick«Qde|

孝a

48&"644970011C.1.右3

mi”:.2

-:T3P

Quid;-i7-:r

第2阶段用三个消息来完成,目标是协商IPSecSA,而且只有一种模式,快速模式(QuickMode,快速模式的协商是受第1阶段建立的IKESA保护的。

苇二"栈

5J?

第二斛淨即■齐頁制

NXot

®!(130吗"DQ*紀箱口*BKI

牛弼t5-52«a7M1儿冲电i£_1;:4替W>

66jiatttnai*

[审砧订

-TlH'J”a•丄

「环卜]

奇m

(1)1&2消息:发送IPSecSA的属性,协商IPSecSA

消息1:发起者会在第一条消息中发送IPSecSA的转换属性。其中包含:HASH、IPSec策略提议、Nonce可可选的DH以及身份ID。

(a)HASH:是用于给接受方作为完整性检验的,用于再次认证对等体(必须)HASH的成分和5-6阶段一样;

(b)IPSec策略提议:其中包括了安全协议(AH、ESP或AH-ESP)、SPI、散列算法、模式(隧道模式或传输模式)、IPSecSA生命周期(必选);

(c)Nonce:用于防重放攻击,还被用作密码生成的材料,仅当启用PFS时用到;

(d)ID:描述IPSecSA是哪些地址、协议和端口建立的,即感兴趣流中的IP地址;

(e)PFS(利用DH交换,可选):用了PFS后,就会在第二阶段重新DH出一个数据加密KEY,这个KEY和以前IKE协商出来的KEY没有任何关系,然后由这个新KEY来加密数据,只有到这个IPSecSA的生命周期后,会再次DH出新的KEY,这样,安全性就提高了(普通IPSecSA过期或密钥超时时,重新生成的数据加密密钥还是根据第一阶段DH出来的SKEYID_d

衍生出来的),PFS启用后,数据加密部分使用的密钥就没有了衍生的过程。

(f)DH:重新协商IPSecSA时使用的密钥(正常情况下,IPSec阶段使用的密钥都是由

SKEYID_d衍生而来的,密钥之间都有一定的关系,就算IPSecSA超时,新的KEY还是和SKEYIDd有一定的关系)。

408.763:1500110.M.?.

10-1-],2

:SAKM?

lQu.ick

418.7&410700

ISAKM?

Quick

426.76445700110.1.L3

L0Z.Z.2

3KM?

Quick

Xkde

HFraae40:2^6bytescnwire11968bits)s2-^6hyt匕mcaptured{196Sbzts)

SEth-ernetII,Src:Raisecoa_3Ss7;OT:0e:5e:88:33:77)sDst:Ralseco[n_32:f5:9e[(H}:0e:5e:32:f5s9ej

®InternetProtocol,Src:().Dst:<)

UserDatagramPrctccDl,SrcP口r:!iEikzp(500J?DstPori::E3kmp'500)

SIoi-?zn亡tE亡匚xityAFroto匚口1

:nRiarorcookie:ef065132dflfS93b2

“0・・二丄iun:Nojon

ID:Oxcf775af5|

Length::204

hncr?pt?c.Lili:176bytrs.t|

fciokiE:』&62i

z-1204cif&6db2

Neitpayload:Hash(B)

V?rsinn:l.a0

|Zxc-ia:igeiy»e:&uickMode'32'|

F:a-3:0x01

|1=Encrj~piion:Encrifled|

--0-="Hmit;Mu匚匸znrnit

以上数据均被加密处理;基于以上,第二阶段有几个概念需要理清:

(a)封装模式:包括传输模式(Transport)和隧道模式(Tunnel)。

传输模式:不使用新的IP头部,IP头部中的源/目的IP为通信的两个实点(当通信点等于加密点时,使用传输模式);

隧道模式:需要封装一个新的IP头部,新的IP头部中源/目的IP为中间的VPN网关设备地址(当通信点不等于加密点时使用隧道模式);

J

U

Remcrteoffice

intptppt

torporateoffice

HR<;prvpr$

HK©r?pr<

雀道檢式

Remoteoffice

3nternet

匚orporateoffice

二者比较:

从安全性来讲,隧道模式优于传输模式,隧道模式可以完全地对原始IP数据报进行验证和加密以及可以使用IPSec对等体的IP地址来隐藏客户机的IP地址;

从性能来讲,隧道模式比传输模式占用更多带宽,一个额外的IP头;

因此,到底使用哪种模式需要按照实际的应用场景进行权衡。

IPHDR

Transportmode

IPHDR

VPNHDR

Tunnelmode

VPNHDR

IPHDR

Data

VPN

TVa.e.-

NewIPHDR

(b)安全联盟生存周期:

所有在安全策略视图下没有单独配置生存周期的安全联盟,都采用全局生存周期。IKE(因特网密钥交换协议)为IPSec协商建立安全联盟(SA)时,采用本地设置的和对端提议的生存周期中较小的一个(即,当两端配置的生存周期不一致时,那么就用最小的那个值)。安全联盟生存周期的输入范围:30〜604800;所以,两端设备配置的生存周期不一致不会导致隧道无法建立。

(c)采用的安全协议:

安全提议中需要选择所采用的安全协议,用于为IP数据包提供安全。目前可选的安全协议有AH(验证报头)和ESP(封装安全有效负载),也可以指定同时使用AH和ESP(AH-ESP)。安全隧道两端所选择的安全协议必须一致。

所以,第二阶段协商不起来,两端协议是否一致是一个排查重点。

AH协议:类似于ICMP、TCP、UDP的IP协议,分配给它的协议号为51。提供如下安全功能:数据完整性服务、提供抗数据回放攻击、不提供数据加密性(不加密)。

RouterB

RouterA

Alldataincleartext

(note:AH是不提供数据的加密的,所以在报文中可以看到完整的DATA部分)AH报文头格式:

认狂范團(IPHeede申可旳爲外1

乃葩境二:

NextHeuderPaykiadLenyQiIResurvud

SequenceNumber

AOlli&nticatiuriDala

AH在两种模式下的封装:

IPHDR

TCPHDR

Authentfcated

AHHDR

Authenticated倫丁昜船字段

传输模式:“除了易变字段”指的是:对IP报文中可变域以外的数据进行认证隧道模式:“除了易变字段”指的是:对新IP报文头部中可变域以外的数据进行认证

ESP协议:协议号为50,提供如下功能:提供数据加密性(支持加密)、提供数据完整性、提供抗回放攻击能力;

ESP的数据验证和完整性服务只包括ESP的头和有效载荷(不包括外部的IP头部(note:ESP是提供加密的,所以抓取的ESP报文,是看不到原来被封装的数据部分)

RouterA

RouterB

Datapayloadisencrypted

IPHDR

Encrypted

Authentici

Internet

!裤电菸驶那密了

・逼S嬉提供就据机密性;

・通过认证提供數搗葩整性;

•遽觀沖列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论