数据报封装成PPP帧的方法-更多文档分类课件_第1页
数据报封装成PPP帧的方法-更多文档分类课件_第2页
数据报封装成PPP帧的方法-更多文档分类课件_第3页
数据报封装成PPP帧的方法-更多文档分类课件_第4页
数据报封装成PPP帧的方法-更多文档分类课件_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

第四部分

第二层(数据链路层)网络安全协议内容:PPP,LCP,IPCP,PAP,CHAP,L2F,L2TP参考文献:1RFC

1661:The

Point-to-Point

Protocol

(PPP)RFC

1172:

The

PPP

Internet

Protocol

Control

Protocol

(IPCP)RFC

1994:

PPP

Challenge

Handshake

Authentication

Protocol(CHAP)RFC

1334:

PPP

Authentication

ProtocolsRFC

2341:

Cisco

Layer

Two

Forwarding

(Protocol)

“L2F”RFC

2661:

Layer

Two

Tunneling

Protocol

“L2TP”RFC

1549:

PPP

inHDLC-like

FramingRFC

1144:

Compressing

TCP/IP

Headers

for

Low-SpeedSerial

LinksRFC

1663:

PPP

Reliable

TransmissionRFC2637:

Point-to-Point

Tunneling

Protocol

(PPTP)第一讲

PPP-点到点数据链路层协议2内容:数据报封装成PPP帧的方法(考虑传输的高效性);LCP

Link

Control

Protocol

, 链路控制协议):于建立、配置、测试PPP链路;一组NCP:用于建立和配置不同的网络层协议。1.1

PPP封装FAC协议数据FCSF7E7EFF0331.2

PPP链路操作DeadUPOPENEDSUCCESS/NONEFAILCLOSINGDOWNFAIL4图1

PPP链路状态转换图EstablishAuthenticateNetworkTerminateDead:初态和终态,表明物理层尚未准备好;

Establish:使用LCP建立和配置链路;

Authentication:身份认证阶段;Network:使用相应的NCP配置网络层协议;

Terminate:终止链路。1.3LCP一.LCP报文1.报文格式5类型ID长度数据2.链路配置报文P1P2Configure-Request图2

LCP链路建立报文交换图Configure-AckConfigure-Request:发起方发送的第一个报文;Configure-Ack:如果Confiure-Request中的每个选项都能被接收端识别,而且都被接受;Configure-Nak:如果每个选项都能识别,但是只有部分能接受;Configure-NakConfigure-Reject6(4)Configure-Reject:如果Confiure-Request有部分选项不能被识别,或者不能被接受。2.链路配置报文类型ID长度选项Options字段:包含0个或多个要协商的选项,同时协商;类型长度数据选项:类型:(1)认证协议:c023:PAPc223:CHAP类型长度认证协议数据

7FACc021数据FCSF7E7EFF031(Configure-Request)1131(MRU)415003(认证协议)5CHAPMD58(2)

Magic-Number9功能:防止链路回路类型长度Magic-NumberMagic-Number检测步骤:P1:接收到P2的Configure-Request报文(包含MN1),自己最近发的一个Configure-Request(包含MN2),若MN1≠MN2,则不是looped-back;否则P1向P2发送

Configure-Nak报文(包含MN3,且MN1≠MN3);P2:接收到P1的Configure-Nak报文(包含MN3),自己最近发的一个Configure-Nak(包含MN4),若MN3≠MN4,则不是looped-back;否则P2向P1发送

Configure-Request报文(包含MN5,且MN5≠MN3);3.链路终止报文-Terminate-Request

&

Terminate-AckP1P2图3

LCP链路终止报文交换图10Terminate-RequestTerminate-RequestTerminat

-RequestTerminate-Ack4.链路维护报文11功能:错误报告和检测比如:Code-Reject发送时机:LCP报文的Code字段无法识别相应举措:放弃链路类型ID长度拒绝报文Protocol-RejectEcho-RequestEcho-Replay1.4

NCP-IPCP类型长度IP地址IP地址12用途:配置,激活或者禁止一个PPP链路两端对等实体上的IP协议模块;IPCP选项协商:IP-Address选项:用途:协商对等端使用的IP地址;过程:与LCP类似;协商方式:发起协商端在Configure-Request报文中指定;若未指定,则由接收端指派,并附加在Configure-Nak报文中返回给发送端;第二讲

PPP实体认证协议——PAP和CHAP2.1

PAP-Password

AuthenticationProtocol发生时机:仅在建立连接的阶段发生;认证方式:一端发送明文口令至对等端,由对方认证;特性:无法防止重放(playback)、穷举(repeated

trial)等攻击;封装:PPP帧的数据字段;代码ID长度数据13P1P2Authenticate

-Request……图4

PAP认证过程报文交换图Authenticate

-Request类型ID长度对等端ID长度对等端ID口令长度口令类型ID长度描述长度结果描述Authenticate-AckAuthenticate

-Nak14Authenticate-Request

Authenticate-AckAuthenticate-Nak2.2

CHAP-Challenge-Handshake

Authentication

Protocol发生时机:建立连接时和连接建立之后的任何时间AuthenticatorPeer图5

CHAP认证过程报文交换图Challenge1.认证端发送“challenge”到对等端A1=Hash(c,s)2.对等端根据这个“challenge”和共享密钥,利用一个单向散列函数计算一个散列值并发回给认证端;ResponseSuccessFailureA2=Hash(c,s)A1

=

A2A1≠A23.认证端把这个数字和自己计算出来的数据进行比较,如果匹配,则确认;否则否认;ChallengeFailureResponseSuccess……A2=Hash(c,s)A1

=

A2A1≠A2A1=Hash(c,s)4.在连接建立后,会随机地重复上述过程。15类型长度认证协议算法一.PPP配置选项格式类型=3;长度=5;认证协议=c223;算法=5;(CHAP

with

MD5)二.CHAP报文格式封装在PPP帧的数据区ID:匹配challenge

response

reply类型ID长度数据16类型ID长度信息17信息:

可读文本1.

Challenge

&ResponseValue=MD5(ID+secret+challenge)Name:表示传输该报文的系统的标识;

Challenge要求:唯一性;类型ID长度值长度值名字2.

Success

&Failure三.特点CHAP可以防止重放攻击,因为使用了逐渐 增加的ID和变化的challenge值;这种认证协议依赖于对等双方共享的“秘密”, 这个秘密是带外传输的;共享的秘密可以用于双向认证;CHAP中包含的name域可以作为秘密的索引,还可以支持多个name/secret对,并且在会话过程中更改秘密。不适用于大型系统,因为链路的两端都必须 维护每个可能的秘密;18四.说明实现时,协议与认证协议并非密不可分标准没有对认证失败之后的操作进行规定认证具有双向性在通信的两个方向上应该使用不同的秘密;如 果使用相同的秘密,攻击者可能重放对等端的challenge

, 接收

responresponse来实施认证;每个PPP服务器都维护一个数据库,存放了“用 户名”和“秘密”的对应关系;标准建议对于一个 用户只使用一种认证协议协议本身不涉及密钥存储和分发方案193.1概述目标:把链路层数据封装在更高层的协议中(隧道),从而拓宽了点到点链路两个对等端的位置;动因:通过Internet基础设施提供安全的虚拟PPP链路;第三讲

L2F-Cisco

Layer

Two

Forwarding

(Protocol)HL……RRR

RUUNNL:

HomeLAN(s)U:

Remote

UserR:

RouterH:

HomeGatewayN:

ISP

Network

AccessServer

(“NAS”)虚拟PPP链路:U拨入H,访问L

(隧道,基于UDP,端口1701)实际的PPP链路:U拨入N,再通过Internet基础设置访20

问L2FUDPIP如何实现?把PPP帧封装到UDP报文中UNHLPPP帧PPP帧UDP头L2F头PPP帧L2F尾隧道:N

H连接:U

L说明:提供第二层的服务,但是L2F是应用层协议211.

U发起到ISP的PPP连接,N接受这个连接并建立PPP链路;UNRRRRNU封装解封N利用PAP或CHAP对R认证,根据用户名决定是否提供虚拟拨号 服务。如果还没有建立隧道,则N建立到H的隧道;N为本次会话分配一个MID(Multiplex

ID),向H发送连接指示H创建一个和直接拨号类似的“虚拟接口”,用于帧的传输;数据传输(封装和解封)……LH22指示信息:认证信息:以便于H认证U(1)CHAP:challenge+用户名+原始的response(2)PAP:用户名+口令(明文)LCP协商阶段的LCP

CONFACK作用:H可能用这个信息来初始化自己PPP的状态,从而避免第二轮的协商和认证;封装和解封:封装:U->N,N剥掉帧订界等字段,封装在L2F中,并且在相应的隧道里转发(N->H);解封:H->L,剥掉L2F相关信息,象正常的进入帧一样用适当的协议和接口进行处理;反之亦然。23L2F中的认证:24阶段一:N对U认证,根据用户名确定提供的服务阶段二:H和N的相互认证阶段三:H对U的认证(N把U的信息传给H)L2F协议的内容:L2F报文封装(封装PPP帧)

隧道和连接管理(隧道生成、关闭、复用、错误调试)3.2

L2F封装地址(A)控制(C)协议帧定界校验和数据二.L2F报文格式头部数据(PPP)校验和(可选)一.封装后的PPP帧保留的部分:去掉的部分: 报文分类:25管理报文:保证可靠性

数据报文:不保证可靠性协议:26版本:0x0001序号:S位置‘1’时有效。防止重复报文。重复:小于等于最后接收到的报文的序号,或者在其前面的127个值均认为是重复的。比如:最后收到的一个报文序号是15,则0-15,以及144-255都是重复报文。MID:指示一个隧道里的一条连接。MID=‘0’,专用于

L2F管理报文。Client

ID:唯一标识隧道对等端。长度:整个报文的长度,包括首部。单字节计。校验和:C位设置时有效,对整个报文的校验。载荷偏移:F位设置时有效,指示数据与首部的距离。优先级:P位设置时表明有较高的优先级。Key:K位设置时有效,验证是否是对等端发来的数据。隧道建立阶段对等端回应认证回应数据,其中包含了128比特数据。Key_block1=Authenticate

Response(0-31)Key_block2=Authenticate

Response(32-63)Key_block3=Authenticate

Response(64-95)Key_block4=Authenticate

Response(96-127)Key

=

Key_block1

xor

Key_block2

xor

Key_block2

xorKey_block2273.3隧道及连接建立28一.典型的隧道协商过程包含Key可选项,不使用偏移和校验和选项1.N

HProto=L2F,Seq=0,MID=0,CLID=0,Key=0L2F_CONFName:N_nameChallenge:RndAssigned_CLID:222.H

NProto=L2F,Seq=0,MID=0,CLID=22,Key=0L2F_CONFName:H_nameChallenge:Rnd2Assigned_CLID:733.N

HProto=L2F,Seq=1,MID=0,CLID=73,Key=C(Rnd2)L2F_OPENResponse:C(Rnd2)4.H

NProto=L2F,Seq=1,MID=0,CLID=22,Key=C(Rnd)L2F_OPENResponse:C(Rnd)C:MD5二.典型的连接协商过程29拨号客户通过

NAS

建立到

HomeGateway的虚拟拨号连接客户使用CHAP认证方式。1.N

HProto=L2F,Seq=2,MID=1,CLID=73,Key=

C(Rnd2)L2F_OPENType:CHAPName:

CHAP-NameChallenge:<客户端发给N的回应>ID:<challenge中包含的ID>2.H

NProto=L2F,Seq=2,MID=1,CLID=22,Key=C(rnd)L2F_OPEN3.N

HProto=PPP,Seq=0,MID=1,CLID=73,Key=C(Rnd2)PPP帧4.H

NProto=PPP,Seq=0,MID=1,CLID=22,Key=C(Rnd)PPP帧N

收到用户呼叫,发送challenge

,并收到回应,同时根据用户名判断需要虚拟的拨号服务,则分配MID,并且把

challenge/response信息发给H。三.L2F管理消息格式:0个或者多个选项每个选项:消息类型(1字节)+包含0个或多个子选项每个子选项:消息类型(1字节)+类型相关数据(长度+数据)消息类型:1.N

H(建立隧道时发送的配置请求消息)Proto=L2F,Seq=0,MID=0,CLID=0,Key=0L2F_CONFName:kouChallenge:89a3f65096Assigned_CLID:2231首部0x010x020x03‘K’‘O’‘U’0x030x0a89a3f650960x040x0122安全性分析:仅提供通信对等端认证功能(CHAP、PAP等)对CHAP而言,依赖于通信双方的共享秘密;对PAP而言,依赖于客户的口令,且明文传递;不提供数据机密性服务不进行数据完整性校验32第四讲

L2TP-Layer

Two

Tunneling

Protocol33LAC

L2TAccessConcentratorLNS

L2TNetworkServerNAS

NetworkAccessServerPSTNcloudFrameRelayorATMCloudLACLACLNSLNSLAC

ClientRemoteSystemHome

LANHome

LANHostHostPPPInternetTunnel图1

L2TP典型应用环境图步骤一:Remote

System发起到LAC的连接;步骤二:LAC建立到LNS的隧道;Remote

System获得了访问Home

Lan的一条虚拟PPP链路;L2TP协议层次结构3.

通信双方在P1和P2两个端口上通信。34PPP

FramesL2TP

Data

MessageL2TP

Control

MessageL2TP

Data

Channel(Unreliable)L2TP

Control

Channel(Reliable)Packet

Transport(UDP)控制信息:用于建立、维护、清除隧道和呼叫(可靠);数据信息:封装在隧道中传输的PPP帧(不可靠);封装时去掉PPP帧中的校验和、帧定界、填充字段。UDP端口:1701

发起建立隧道的一端向另一端的1701

端口发请求,本地端口任意(P1);

对等端在本地随机分配一个端口,并作为响应的源端口(P2);L2TP头结构:T:类型,T=0,数据;T=1,控制;L:Length字段存在性指示。L=1,有Length字段,控制信息时必须为‘1’;X:预留;对于外出的报文,必须设置为‘0’;S:Sequence,序号字段存在性指示,S=1,有Ns和Nr字段;控制信息时必须为‘1’;O

Offset

偏移量字段存在性指示,

O=1

Offset Size字段;控制信须为‘0’;P:优先级,P=1,优先级高,对于控制信息必须为‘0’;Ver:版本字段,Ver=2;(Ver=1,指示L2F);Length:报文的长度,单字节计;Tunnel

ID

控制连接标识符,隧道两端的对等实体可以对其各自命名,报首部的这个字段指明了报文的接收者;Session

ID:会话标识符,与Tunnel

ID属性类似;Ns:指示当前报文的序号,从‘0’开始,以‘1’为单位递增,mod

216;Nr:希望接收的下一个控制报文的序号;Offset

Size:数据距离首部的偏移量;354.1隧道及会话建立36几个概念:隧道:LAC

LNS会话:Remote

System

Home

LAN呼叫:

Remote System

LAC

间的连接(通过电话)。一个成功的呼叫和一次L2TP会话对应;呼入:LAC收到的Remote

System的呼叫;呼出:LAC代表LNS发出的到Remote

System的呼叫;被叫号码:被叫方的号码主叫号码:主叫方的号码隧道与控制连接一一对应一个隧道可包含多个会话每个会话与一个呼叫对应LACLNSL2TP

隧道控制连接RemoteSystemL2TP

会话呼叫RemoteSystemL2TP

会话呼叫PPPPPP37L2TP控制报文类型38步骤:步骤一:建立控制连接(隧道)步骤二:建立会话呼入呼出步骤三:转发PPP帧步骤四:终止会话步骤五:终止控制连接(隧道)L2TP中的保活机制—Keepalive(Hello):使用HELLO

消息,如果一段时间内没有接收到数据或者控制信息,则发送hello报文,如果没有收到回应,则认为隧道终止,并重置。39一.建立控制连接内容:认证对等端身份确认对等端L2P版本认证:1.

SCCRQ

中包含2.challenge,SCCRP中包含响应;SCCRPChallenge,SCCCN中包含响应双方各自计算challenge的响应,并与对方回应的响应比较,一致则通过认证。LAC或者LNSLAC或者LNSSCCRQSCCRPSCCCNZLB

ACK1.Start-Control-Connection-Request2.Start-Control-Connection-Reply中3.S包tar含t-Control-Connection-Connected4.

Zero

Length

BodyACK可选,队列中没有其它报文时发送该报文通信双方共享秘密,认证方式与CHAP类似。40二.建立会话(1)呼入建立LACLNS1.Incoming-Call-RequestICRQCall

DetectedICRP2.Incoming-Call-ReplyICCN3.

Incoming-Call-ConnectedZLB

ACK4.

Zero

Length

Body

ACK41(2)呼出建立LACLNS1.Outgoing-Call-RequestOCRQ2.

Outgoing-Call-ReplyOCRP3.

Outgoing-Call-ConnectedOCCN4.

Zero

Length

Body

ACKZLB

ACKPerform

Call

Operation42三.

会话终止LAC或者LNSLAC或者LNSCleanupCDNCall-Disconnect-NotifyZero

Length

Body

ACKZLB

ACKCleanup四.

终止控制连接LAC或者LNSLAC或者LNSCleanupCleanupWaitStopCCN1.

Stop-Control-Connection-ZLB

ACKNotification2.

Zero

Length

Body

ACK说明:1.

Wait:

防止

ZLB

ACK

丢失,等待31秒2.

发送该报文可以终止控制连接和所有会话434.2

AVP-Control

Message

Attribute

Value

Pairs控制消息构成:多个AVPAVP:相当于对报文各个字段的标准编码比如:Start-Control-Connection-Request(SCCRQ)控制消息内容44L2TP首部Message

Type

AVPProtocol

Version

AVPHost

Name

AVPFraming

Capabilities

AVPAssigned

Tunnel

ID

AVPChallenge

AVP格式:属性类型+属性值保留字段:设置为全‘0’M:强制位。如果收到该位置‘1’,且无法识别的包,则相应的会话或者隧道都必须终止;否则把这个包丢弃;H:隐藏位,标志Attribute

Value字段是否被隐藏;Length:AVP的长度,最小10字节,最多1023字节;Vendor

ID

厂家自己实现

L2TP

时,如果定义了自AVP,则应该填充这个字段;45AVP分类:消息类型和随机向量AVP结果和错误代码AVP控制连接管理AVP呼叫管理AVP代理LCP和认证AVP呼叫状态AVP46消息类型一.消息类型和随机向量AVP1.消息类型AVPAttribute

Type=‘1’;M=1;必须是第一个AVP

。0

15随机字符串2.随机向量AVPAttribute

Type

=

‘36’;M

=

1;H

=

0;0

3147二.结果和错误代码AVP1.

Result

Code

(CDN,StopCDN)Attribute

Type

=

‘1’

;M

=

1;H

=

0;StopCCN错误码3:控制连接已经存在4:认证失败5:协议版本错CDN错误码载波丢失管理员设置结果代码错误代码(可选)错误信息(可选)(3)协议和消息格式错长度错会话ID错48三.控制连接管理AVP1.协议版本AVP2.

Assigned

Tunnel

IDAttribute

Type

=

9;M

=

1;功能:发送方指定隧道ID指定的Tunnel

ID0

15版本(1)保留(0)3.接收方窗口AVP窗口大小Attribute

Type

=

‘2’;M

=

1;Attribute

Type

=

10;M=1;H=0;指明发送方的L2TP版本

向对等端指明接收窗口尺寸0

15

0

154.ChallengeAttribute

Type

=

11;

M=1;指明使用CHAP作为认证方式;challenge0

……5.

Challenge

ResponseAttribute

Type=13;

M=1;对Challenge的响应Response0

12749四.呼叫管理AVP1.

Assigned

Session

IDAttribute

Type

=

14;

M=1;发送方指定会话ID2.

Call

Serial

NumberAttribute

Type

=

15;

M=1;呼叫标识呼叫号码0

314.

Calling

NumberAttribute

Type=22;

M=1;主叫号码主叫号码5.

Private

Group

IDAttribute

Type

=

22;

M=1;LAC指定本次呼叫于某个特定的组相关;Group

ID0

……3.

Called

NumberAttribute

Type

=

21;

M=1;被叫号码SessionID0

15

0

……被叫号码06.

Sequencing

RequiredAttribute

Type

=

39;

M=1;……

通知LNS,传输数据时必须加入序号字段;50LCP

CONFREQ51LCP

CONFREQ2.Last

Sent

LCP

CONFREQAttribute

Type

=

27;

M=0;把LAC

发给Remote

System

的最后一个CONFREQ

发送给LNS;0

……五.代理LCP和认证AVP把

Remote

System

LCP

协商过程中的一些参数通LNS;1.

Initial

Received

LCP

CONFREQAttribute

Type

=

26;

M=0;把LAC收到的第一个CONFREQ发送给LNS;0

……认证类型3.

Last

Received

LCP

CONFREQAttribute

Type

=

28;

M=0;把

LAC

Remote

System接收到的最后一个

C发送给LNS;4.

Proxy

Authenn

TypeAttribute

Type

=

29;

M=0;确定是否使用代理认证;0

16520

……challenge认证名字6.

Proxy

Authen

ChallengeAttribute

Type

=

31;

M=0;指明LAC发送给PPP对等端的Challenge;0

……5.

Proxy

Authen

NameAttribute

Type

=

30;

M=0;使用代理认证时,指明被认证客户端的名字;保留7.

Proxy

Authen

IDAttribute

Type

=

32;

M=0;指明LAC和PPP对等端之间的PPP认证ID值;0

15ID53Response8.

Proxy

Authen

ResponseAttribute

Type

=

33;

M=0;功能:使用代理认证时,指明LAC从PPP对等端接收到的PPP认证回应;0

……54六.呼叫状态AVPAttribute

Type=34;

M=1;功能:LAC向LNS发送错误信息;016保留CRC

ErrorsCRC

ErrorsFraming

ErrorsFraming

ErrorsHardware

OverrunHardware

OverrunBuffer

OverrunBuffer

OverrunTime-Out

ErrorsTime-Out

ErrorsAlignment

ErrorsAlignment

Errors说明:上述字段均指示发生相应错误的报文总数55LCP

CONFREQLCP

CONFREQ2.Last

Sent

LCP

CONFREQAttribute

Type

=

27;

M=0;把LAC

发给Remote

System

的最后一个CONFREQ

发送给LNS;0

……五.代理LCP和认证AVP把

Remote

System

LCP

协商过程中的一些参数通LNS;1.

Initial

Received

LCP

CONFREQAttribute

Type

=

26;

M=0;把LAC收到的第一个CONFREQ发送给LNS;0

……56LCP

CONFREQLCP

CONFREQ2.Last

Sent

LCP

CONFREQAttribute

Type

=

27;

M=0;把LAC

发给Remote

System

的最后一个CONFREQ

发送给LNS;0

……五.代理LCP和认证AVP把

Remote

System

LCP

协商过程中的一些参数通LNS;1.

Initial

Received

LCP

CONFREQAttribute

Type

=

26;

M=0;把LAC收到的第一个CONFREQ发送给LNS;0

……574.3控制消息结构一.SCCRQLAC或者LNSLAC或者LNSSCCRQSCCRPSCCCNZLB

ACK二.SCCRP三.SCCCN58四.ICRQ指示需要在LAC和LNS之间建立一个会话,同时把该会话的相关参数通告给LNS。六.ICCN五.ICRP必须包含的AVP:Message

TypeAssigned

SessionidLACLNSICRQCall

DetectedICRPICCNZLB

ACK七.OCRQ给LAC提供相应的参数。八.OCRP九.OCCNLACLNSO

温馨提示

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

最新文档

评论

0/150

提交评论