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

下载本文档

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

文档简介

第四部分第二层(数据链路层)网络安全协议

内容:PPP,LCP,IPCP,PAP,CHAP,L2F,L2TP参考文献:[1]RFC1661:ThePoint-to-PointProtocol(PPP)[2]RFC1172:ThePPPInternetProtocolControlProtocol(IPCP)[3]RFC1994:PPPChallengeHandshakeAuthenticationProtocol(CHAP)[4]RFC1334:PPPAuthenticationProtocols[5]RFC2341:CiscoLayerTwoForwarding(Protocol)“L2F”[6]RFC2661:LayerTwoTunnelingProtocol“L2TP”[7]RFC1549:PPPinHDLC-likeFraming[8]RFC1144:CompressingTCP/IPHeadersforLow-SpeedSerialLinks[9]RFC1663:PPPReliableTransmission[10]RFC2637:Point-to-PointTunnelingProtocol(PPTP)第四部分第二层(数据链路层)网络安全协议内容:PPP,L1第一讲PPP-点到点数据链路层协议内容:[1]数据报封装成PPP帧的方法(考虑传输的高效性);[2]LCP(LinkControlProtocol,链路控制协议):用于建立、配置、测试PPP链路;[3]一组NCP:用于建立和配置不同的网络层协议。第一讲PPP-点到点数据链路层协议内容:21.1PPP封装协议数据FCSF7EAFFC03F7E1.1PPP封装协议数据FCSFACF31.2PPP链路操作Dead:初态和终态,表明物理层尚未准备好;DeadUPOPENEDSUCCESS/NONEFAILCLOSINGDOWNFAIL图1PPP链路状态转换图EstablishEstablish:使用LCP建立和配置链路;AuthenticateAuthentication:身份认证阶段;NetworkNetwork:使用相应的NCP配置网络层协议;TerminateTerminate:终止链路。1.2PPP链路操作Dead:初态和终态,表明物理层尚未41.3LCP

一.LCP报文1.报文格式类型ID长度数据1.3LCP一.LCP报文1.报文格式类型ID长52.链路配置报文(1)Configure-Request:发起方发送的第一个报文;

P1P2Configure-Request图2LCP链路建立报文交换图Configure-NakConfigure-Ack(2)Configure-Ack:如果Confiure-Request中的每个选项都能被接收端识别,而且都被接受;(3)Configure-Nak:如果每个选项都能识别,但是只有部分能接受;

Configure-Reject(4)Configure-Reject:如果Confiure-Request有部分选项不能被识别,或者不能被接受。2.链路配置报文(1)Configure-Request62.链路配置报文类型ID长度选项Options字段:包含0个或多个要协商的选项,同时协商;类型长度数据类型长度认证协议数据选项:类型:(1)认证协议:c023:PAPc223:CHAP

2.链路配置报文类型ID长度选项Options字段:包含0个7c021数据FCSF7EAFFC03F7E1(Configure-Request)11315001(MRU)4CHAP3(认证协议)5MD5c021数据FCSFACF1(Configure-Reque8(2)Magic-Number功能:防止链路回路类型长度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);(2)Magic-Number类型长度Magic-Num93.链路终止报文-Terminate-Request&Terminate-Ack

Terminate-RequestTerminate-AckP1P2图3LCP链路终止报文交换图Terminate-RequestTerminat-Request3.链路终止报文-Terminate-Request&T104.链路维护报文功能:错误报告和检测比如:Code-Reject发送时机:LCP报文的Code字段无法识别相应举措:放弃链路类型ID长度拒绝报文Protocol-RejectEcho-RequestEcho-Replay4.链路维护报文类型ID长度拒绝报文Protocol-R111.4NCP-IPCP

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

发生时机:仅在建立连接的阶段发生;认证方式:一端发送明文口令至对等端,由对方认证;特性:无法防止重放(playback)、穷举(repeatedtrial)等攻击;封装:PPP帧的数据字段;代码ID长度数据第二讲PPP实体认证协议——PAP和CHAP2.1PA13P1P2图4PAP认证过程报文交换图Authenticate-Request……Authenticate-Request1.Authenticate-Request

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

P1P2图4PAP认证过程报文交换图Authenticat142.2CHAP-Challenge-HandshakeAuthenticationProtocol

发生时机:建立连接时和连接建立之后的任何时间AuthenticatorPeer图5CHAP认证过程报文交换图Challenge1.认证端发送“challenge”到对等端

ResponseA1=Hash(c,s)2.对等端根据这个“challenge”和共享密钥,利用一个单向散列函数计算一个散列值并发回给认证端;FailureSuccessA2=Hash(c,s)A1=A2A1≠A23.认证端把这个数字和自己计算出来的数据进行比较,如果匹配,则确认;否则否认;ChallengeResponseFailureSuccess……A2=Hash(c,s)A1=A2A1≠A2A1=Hash(c,s)4.在连接建立后,会随机地重复上述过程。2.2CHAP-Challenge-HandshakeA15一.PPP配置选项格式类型=3;长度=5;认证协议=c223;算法=5;(CHAPwithMD5)

类型长度认证协议算法二.CHAP报文格式封装在PPP帧的数据区ID:匹配challengeresponsereply类型ID长度数据一.PPP配置选项格式类型长度认证协议算法二.CHAP报文格16类型ID长度信息信息:可读文本1.Challenge&ResponseValue=MD5(ID+secret+challenge)Name:表示传输该报文的系统的标识;Challenge要求:唯一性;类型ID长度值长度值名字2.Success&Failure

类型ID长度信息信息:1.Challenge&Resp17三.特点1.CHAP可以防止重放攻击,因为使用了逐渐增加的ID和变化的challenge值;2.这种认证协议依赖于对等双方共享的“秘密”,这个秘密是带外传输的;3.共享的秘密可以用于双向认证;4.CHAP中包含的name域可以作为秘密的索引,还可以支持多个name/secret对,并且在会话过程中更改秘密。5.不适用于大型系统,因为链路的两端都必须维护每个可能的秘密;三.特点18四.说明1.实现时,协议与认证协议并非密不可分2.标准没有对认证失败之后的操作进行规定3.认证具有双向性4.在通信的两个方向上应该使用不同的秘密;如果使用相同的秘密,攻击者可能重放对等端的challenge,接收response,并且用这个response来实施认证;5.每个PPP服务器都维护一个数据库,存放了“用户名”和“秘密”的对应关系;标准建议对于一个用户只使用一种认证协议6.协议本身不涉及密钥存储和分发方案四.说明193.1概述目标:把链路层数据封装在更高层的协议中(隧道),从而拓宽了点到点链路两个对等端的位置;动因:通过Internet基础设施提供安全的虚拟PPP链路;第三讲L2F-CiscoLayerTwoForwarding(Protocol)

HH:HomeGateway

L……L:HomeLAN(s)RRRRR:RouterUUU:RemoteUserNNN:ISPNetwork

AccessServer(“NAS”)

虚拟PPP链路:U拨入H,访问L(隧道,基于UDP,端口1701)实际的PPP链路:U拨入N,再通过Internet基础设置访问3.1概述第三讲L2F-CiscoLayerTwo20说明:提供第二层的服务,但是L2F是应用层协议L2FUDPIP如何实现?把PPP帧封装到UDP报文中UNHLPPP帧PPP帧PPP帧UDP头L2F头L2F尾隧道:NH连接:

UL说明:L2FUDPIP如何实现?UNHLPPP帧PPP帧PP211.U发起到ISP的PPP连接,N接受这个连接并建立PPP链路;……UNRRRRHNUL2.N利用PAP或CHAP对R认证,根据用户名决定是否提供虚拟拨号服务。3.如果还没有建立隧道,则N建立到H的隧道;4.N为本次会话分配一个MID(MultiplexID),向H发送连接指示;5.H创建一个和直接拨号类似的“虚拟接口”,用于帧的传输;封装解封6.数据传输(封装和解封)1.U发起到ISP的PPP连接,N接受这个连接并建立PPP22指示信息:1.认证信息:以便于H认证U

(1)CHAP:challenge+用户名+原始的response(2)PAP:用户名+口令(明文)2.LCP协商阶段的LCPCONFACK作用:H可能用这个信息来初始化自己PPP的状态,从而避免第二轮的协商和认证;

封装和解封:封装:U->N,N剥掉帧订界等字段,封装在L2F中,并且在相应的隧道里转发(N->H);解封:H->L,剥掉L2F相关信息,象正常的进入帧一样用适当的协议和接口进行处理;反之亦然。指示信息:封装和解封:23L2F中的认证:阶段一:N对U认证,根据用户名确定提供的服务阶段二:H和N的相互认证阶段三:H对U的认证(N把U的信息传给H)L2F协议的内容:1.L2F报文封装(封装PPP帧)2.隧道和连接管理(隧道生成、关闭、复用、错误调试)L2F中的认证:243.2L2F封装一.封装后的PPP帧保留的部分:地址(A)控制(C)协议数据去掉的部分:帧定界校验和二.L2F报文格式头部数据(PPP)校验和(可选)报文分类:管理报文:保证可靠性数据报文:不保证可靠性3.2L2F封装一.封装后的PPP帧保留的部分:去掉的部25版本:0x0001协议:序号:S位置‘1’时有效。防止重复报文。重复:小于等于最后接收到的报文的序号,或者在其前面的127个值均认为是重复的。比如:最后收到的一个报文序号是15,则0-15,以及144-255都是重复报文。MID:指示一个隧道里的一条连接。MID=‘0’,专用于L2F管理报文。ClientID:唯一标识隧道对等端。长度:整个报文的长度,包括首部。单字节计。校验和:C位设置时有效,对整个报文的校验。载荷偏移:F位设置时有效,指示数据与首部的距离。优先级:P位设置时表明有较高的优先级。Key:K位设置时有效,验证是否是对等端发来的数据。版本:0x0001协议:序号:26隧道建立阶段对等端回应认证回应数据,其中包含了128比特数据。Key_block1=AuthenticateResponse(0-31)Key_block2=AuthenticateResponse(32-63)Key_block3=AuthenticateResponse(64-95)Key_block4=AuthenticateResponse(96-127)Key=Key_block1xorKey_block2xorKey_block2xorKey_block2隧道建立阶段对等端回应认证回应数据,其中包含了128比特数据273.3隧道及连接建立

一.典型的隧道协商过程包含Key可选项,不使用偏移和校验和选项1.NHProto=L2F,Seq=0,MID=0,CLID=0,Key=0L2F_CONFName:N_nameChallenge:RndAssigned_CLID:222.HNProto=L2F,Seq=0,MID=0,CLID=22,Key=0L2F_CONFName:H_nameChallenge:Rnd2Assigned_CLID:733.NHProto=L2F,Seq=1,MID=0,CLID=73,Key=C(Rnd2)L2F_OPENResponse:C(Rnd2)4.HNProto=L2F,Seq=1,MID=0,CLID=22,Key=C(Rnd)L2F_OPENResponse:C(Rnd)C:MD53.3隧道及连接建立一.典型的隧道协商过程2.HN328二.典型的连接协商过程拨号客户通过NAS建立到HomeGateway的虚拟拨号连接的过程。客户使用CHAP认证方式。1.NHProto=L2F,Seq=2,MID=1,CLID=73,Key=C(Rnd2)L2F_OPENType:CHAPName:CHAP-NameChallenge:<客户端发给N的回应>ID:<challenge中包含的ID>2.HNProto=L2F,Seq=2,MID=1,CLID=22,Key=C(rnd)L2F_OPEN3.NHProto=PPP,Seq=0,MID=1,CLID=73,Key=C(Rnd2)PPP帧4.HNProto=PPP,Seq=0,MID=1,CLID=22,Key=C(Rnd)PPP帧N收到用户呼叫,发送challenge,并收到回应,同时根据用户名判断需要虚拟的拨号服务,则分配MID,并且把challenge/response信息发给H。

二.典型的连接协商过程2.HN3.NH4.HN29三.L2F管理消息格式:0个或者多个选项每个选项:消息类型(1字节)+包含0个或多个子选项每个子选项:消息类型(1字节)+类型相关数据(长度+数据)消息类型:三.L2F管理消息301.NH(建立隧道时发送的配置请求消息)Proto=L2F,Seq=0,MID=0,CLID=0,Key=0L2F_CONFName:kouChallenge:89a3f65096Assigned_CLID:22首部0x010x020x03‘K’‘O’‘U’0x030x0a93056fa9860x040x01221.NH(建立隧道时发送的配置请求消息)首部0x010x31安全性分析:仅提供通信对等端认证功能(CHAP、PAP等)对CHAP而言,依赖于通信双方的共享秘密;对PAP而言,依赖于客户的口令,且明文传递;不提供数据机密性服务不进行数据完整性校验

安全性分析:32第四讲

L2TP-LayerTwoTunnelingProtocol

LAC:L2TPAccessConcentratorLNS:L2TPNetworkServerNAS:NetworkAccessServer

PSTNcloudInternetFrameRelayorATMCloudLACLACLNSLNSLACClientRemoteSystemHomeLANHomeLANHostHost图1L2TP典型应用环境图PPP步骤一:RemoteSystem发起到LAC的连接;

Tunnel步骤二:LAC建立到LNS的隧道;

RemoteSystem获得了访问HomeLan的一条虚拟PPP链路;第四讲L2TP-LayerTwoTunnelingP33L2TP协议层次结构PacketTransport(UDP)L2TPDataChannel(Unreliable)L2TPDataMessagePPPFramesL2TPControlChannel(Reliable)L2TPControlMessage控制信息:用于建立、维护、清除隧道和呼叫(可靠);

数据信息:封装在隧道中传输的PPP帧(不可靠);封装时去掉PPP帧中的校验和、帧定界、填充字段。UDP端口:17011.发起建立隧道的一端向另一端的1701端口发请求,本地端口任意(P1);2.对等端在本地随机分配一个端口,并作为响应的源端口(P2);3.通信双方在P1和P2两个端口上通信。L2TP协议层次结构PacketTransport(UDP34L2TP头结构:

T:类型,T=0,数据;T=1,控制;L:Length字段存在性指示。L=1,有Length字段,控制信息时必须为‘1’;X:预留;对于外出的报文,必须设置为‘0’;S:Sequence,序号字段存在性指示,S=1,有Ns和Nr字段;控制信息时必须为‘1’;

O:Offset,偏移量字段存在性指示,O=1,有OffsetSize字段;控制信息时必须为‘0’;P:优先级,P=1,优先级高,对于控制信息必须为‘0’;Ver:版本字段,Ver=2;(Ver=1,指示L2F);Length:报文的长度,单字节计;TunnelID:控制连接标识符,隧道两端的对等实体可以对其各自命名,报文首部的这个字段指明了报文的接收者;SessionID:会话标识符,与TunnelID属性类似;Ns:指示当前报文的序号,从‘0’开始,以‘1’为单位递增,mod216;Nr:希望接收的下一个控制报文的序号;OffsetSize:数据距离首部的偏移量;L2TP头结构:T:类型,T=0,数据;T=1,控制;354.1隧道及会话建立几个概念:隧道:LACLNS会话:RemoteSystemHomeLAN1.呼叫:RemoteSystem和LAC间的连接(通过电话网)。一个成功的呼叫和一次L2TP会话对应;2.呼入:LAC收到的RemoteSystem的呼叫;3.呼出:LAC代表LNS发出的到RemoteSystem的呼叫;4.被叫号码:被叫方的号码5.主叫号码:主叫方的号码4.1隧道及会话建立几个概念:36隧道与控制连接一一对应一个隧道可包含多个会话每个会话与一个呼叫对应LACLNSL2TP隧道控制连接RemoteSystemL2TP会话呼叫RemoteSystemL2TP会话呼叫PPPPPP隧道与控制连接一一对应LACLNSL2TP隧道控制连接Re37L2TP控制报文类型L2TP控制报文类型38步骤:步骤一:建立控制连接(隧道)步骤二:建立会话

呼入

呼出步骤三:转发PPP帧步骤四:终止会话步骤五:终止控制连接(隧道)L2TP中的保活机制—Keepalive(Hello)

:使用HELLO消息,如果一段时间内没有接收到数据或者控制信息,则发送hello报文,如果没有收到回应,则认为隧道终止,并重置。步骤:L2TP中的保活机制—Keepalive(Hell39一.建立控制连接内容:认证对等端身份确认对等端L2P版本认证:1.SCCRQ

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

SCCRP2.Start-Control-Connection-ReplySCCCN3.Start-Control-Connection-ConnectedZLBACK4.ZeroLengthBody

ACK

可选,队列中没有其它报文时发送该报文

通信双方共享秘密,认证方式与CHAP类似。一.建立控制连接LAC或者LNSLAC或者LNSSCCRQ140二.建立会话

(1)呼入建立LACLNS1.Incoming-Call-Request

ICRQCallDetectedICRP2.Incoming-Call-Reply

ICCN3.Incoming-Call-ConnectedZLBACK4.ZeroLengthBodyACK二.建立会话LACLNS1.Incoming-Call-R41(2)呼出建立LACLNS1.Outgoing-Call-Request

OCRQ2.Outgoing-Call-Reply

OCRP3.Outgoing-Call-ConnectedOCCN4.ZeroLengthBodyACKZLBACKPerformCallOperation(2)呼出建立LACLNS1.Outgoing-Call-R42三.会话终止LAC或者LNSLAC或者LNSCleanup1.Call-Disconnect-NotifyCDN2.ZeroLengthBodyACKZLBACKCleanup四.终止控制连接LAC或者LNSLAC或者LNSCleanupCleanupWaitStopCCN1.Stop-Control-Connection-NotificationZLBACK2.ZeroLengthBodyACK说明:1.Wait:防止ZLBACK丢失,等待31秒2.发送该报文可以终止控制连接和所有会话

三.会话终止LAC或者LNSLAC或者LNSCleanu434.2AVP-ControlMessageAttributeValuePairs

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

L2TP首部控制消息内容MessageTypeAVPProtocolVersionAVPHostNameAVPFramingCapabilitiesAVPAssignedTunnelIDAVPChallengeAVP4.2AVP-ControlMessageAttrib44格式:属性类型+属性值保留字段:设置为全‘0’M:强制位。如果收到该位置‘1’,且无法识别的包,则相应的会话或者隧道都必须终止;否则把这个包丢弃;H:隐藏位,标志AttributeValue字段是否被隐藏;Length:AVP的长度,最小10字节,最多1023字节;VendorID:厂家自己实现L2TP时,如果定义了自己的AVP,则应该填充这个字段;格式:保留字段:设置为全‘0’45AVP分类:1.消息类型和随机向量AVP2.结果和错误代码AVP3.控制连接管理AVP4.呼叫管理AVP5.代理LCP和认证AVP6.呼叫状态AVPAVP分类:46一.消息类型和随机向量AVP1.消息类型AVPAttributeType=‘1’;M=1;必须是第一个AVP。2.随机向量AVPAttributeType=‘36’;M=1;H=0;

消息类型015随机字符串031一.消息类型和随机向量AVP2.随机向量AVP消息类型047二.结果和错误代码AVP1.ResultCode(CDN,StopCDN)

AttributeType=‘1’;M=1;H=0;

(1)StopCCN错误码3:控制连接已经存在4:认证失败5:协议版本错(2)CDN错误码1.载波丢失2.管理员设置结果代码错误代码(可选)错误信息(可选)(3)协议和消息格式错2.长度错3.会话ID错二.结果和错误代码AVP(1)StopCCN错误码结果代码错48三.控制连接管理AVP1.协议版本AVPAttributeType=‘2’;M=1;指明发送方的L2TP版本2.AssignedTunnelIDAttributeType=9;M=1;功能:发送方指定隧道ID

指定的TunnelID015版本(1)015保留(0)3.接收方窗口AVPAttributeType=10;M=1;H=0;向对等端指明接收窗口尺寸窗口大小0154.ChallengeAttributeType=11;M=1;指明使用CHAP作为认证方式;challenge0……5.ChallengeResponse

AttributeType=13;M=1;

对Challenge的响应Response0127三.控制连接管理AVP2.AssignedTunnel49四.呼叫管理AVP1.AssignedSessionID

AttributeType=14;M=1;

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

呼叫标识

呼叫号码0314.CallingNumber

AttributeType=22;M=1;主叫号码主叫号码0……5.PrivateGroupID

AttributeType=22;M=1;

LAC指定本次呼叫于某个特定的组相关;GroupID0……3.CalledNumberAttributeType=21;M=1;被叫号码SessionID015被叫号码0……6.SequencingRequiredAttributeType=39;M=1;通知LNS,传输数据时必须加入序号字段;四.呼叫管理AVP2.CallSerialNumber50五.代理LCP和认证AVP把RemoteSystem在LCP协商过程中的一些参数通知给LNS;

2.LastSentLCPCONFREQAttributeType=27;M=0;把LAC发给RemoteSystem的最后一个CONFREQ发送给LNS;LCPCONFREQ0……LCPCONFREQ0……1.InitialReceivedLCPCONFREQAttributeType=26;M=0;把LAC收到的第一个CONFREQ发送给LNS;五.代理LCP和认证AVP2.LastSentLCPC514.ProxyAuthennTypeAttributeType=29;M=0;

确定是否使用代理认证;认证类型0163.LastReceivedLCPCONFREQAttributeType=28;M=0;把LAC从RemoteSystem接收到的最后一个CONFREQ发送给LNS;4.ProxyAuthennType认证类型0526.ProxyAuthenChallengeAttributeType=31;M=0;

指明LAC发送给PPP对等端的Challenge;认证名字0……challenge0……5.ProxyAuthenNameAttributeType=30;M=0;使用代理认证时,指明被认证客户端的名字;7.ProxyAuthenIDAttributeType=32;M=0;指明LAC和PPP对等端之间的PPP认证ID值;保留015ID6.ProxyAuthenChallenge认证名字53Response0……8.ProxyAuthenResponseAttributeType=33;M=0;功能:使用代理认证时,指明LAC从PPP对等端接收到的PPP认证回应;Response054六.呼叫状态AVPAttributeType=34;M=1;功能:LAC向LNS发送错误信息;016保留CRCErrorsCRCErrorsFramingErrorsFramingErrorsHardwareOverrunHardwareOverrun

BufferOverrunBufferOverrunTime-OutErrorsTime-OutErrors

AlignmentErrorsAlignmentErrors说明:上述字段均指示发生相应错误的报文总数六.呼叫状态AVP055五.代理LCP和认证AVP把RemoteSystem在LCP协商过程中的一些参数通知给LNS;

2.LastSentLCPCONFREQAttributeType=27;M=0;把LAC发给RemoteSystem的最后一个CONFREQ发送给LNS;LCPCONFREQ0……LCPCONFREQ0……1.InitialReceivedLCPCONFREQAttributeType=26;M=0;把LAC收到的第一个CONFREQ发送给LNS;五.代理LCP和认证AVP2.LastSentLCPC56五.代理LCP和认证AVP把RemoteSystem在LCP协商过程中的一些参数通知给LNS;

2.LastSentLCPCONFREQAttributeType=27;M=0;把LAC发给RemoteSystem的最后一个CONFREQ发送给LNS;LCPCONFREQ0……LCPCONFREQ0……1.InitialReceivedLCPCONFREQAttributeType=26;M=0;把LAC收到的第一个CONFREQ发送给LNS;五.代理LCP和认证AVP2.LastSentLCPC574.3控制消息结构一.SCCRQLAC或者LNSLAC或者LNSSCCRQSCCRPSCCCNZLBACK二.SCCRP三.SCCCN4.3控制消息结构一.SCCRQLAC或者LNSLAC58四.ICRQ指示需要在LAC和LNS之间建立一个会话,同时把该会话的相关参数通告给LNS。

六.ICCN五.ICRP必须包含的AVP:MessageTypeAssignedSessionid

LACLNSICRQCallDetectedICRPICCNZLBACK四.ICRQ六.ICCN五.ICRPLACLNSIC59七.OCRQ给LAC提供相应的参数。八.OCRP九.OCCNLACLNSOCRPOCRQOCCNZLBACKPerformCallOperation七.OCRQ八.OCRP九.OCCNLACLNSO60十.CDNLAC或者LNSLAC或者LNSCleanupCDNZLBACKCleanup十一.StopCCNLAC或者LNSLAC或者LNSCleanupCleanupWaitStopCCNZLBACK十.CDNLAC或者LNSLAC或者LNSCleanup61十二.CDNLAC发给LNS,指示错误。必须包含以下AVP:MessageTypeCallErrors十三.StopCCNLNS发给LAC,设置PPP协商选项。这些选项可能在会话生命期的任意时刻改变,LAC必须能够更新自己的内部呼叫信息和行为。必须包含以下AVP:MessageTypeACCM十二.CDN十三.StopCCN624.4隐藏AVP属性值AVP首部H位设置为‘1’时,AVP的属性值要被“隐藏”。隐藏的前提:LAC和LNS之间存在共享秘密,这个秘密和认证时的秘密相同。要求:如果某个控制信息有隐藏AVP,则在第一个隐藏AVP之前必须有一个随机向量AVP(RandomVectorAVP)。HAS:HiddenAVPSubformat

属性值长度属性值属性值…填充…例:最初的属性值长度为4,则AVP长度为6+4=10隐藏后的长度:6+2+4+12(填充)=244.4隐藏AVP属性值AVP首部H位设置为‘1’时,AV63S:共享秘密;RV:随机向量;AV:属性值;pi:HAS按照16字节位单位分段,得到的段依次为p1、p2……

b1=MD5(AV+S+RV)c1=p1XORb1;b2=MD5(S+c1)c2=p2XORb2;……bi=MD5(S+ci-1)ci=piXORbi;隐藏后的结果:c1+c2+…+ci

参考:RFC2138S:共享秘密;b1=MD5(AV+S+RV)c644.4控制消息的可靠传递防丢失:带重传的肯定确认技术Ns:发送的报文序号,从‘0’开始,以‘1’为单位递增。Nr:确认序号,是期望接收到的下一个报文的序号。维护一个队列,先发送对头元素。如果收到对这个元素的确认,才把这个元素删除掉。如果在超时时间间隔到来之前,还没有收到确认,则重传报文。确认方式:捎带确认或采用ZLBACK(不占用序号)防重复:假设上次收到的最后一个报文序号是Nl,本次收到的报文序号是Nc,如果Nc处于Nl和它前面32767个值之间,则认为是重复的数据。例:Nl=15,则序号为0-15,以及32784-65535的报文均被认为是重复的。4.4控制消息的可靠传递防丢失:带重传的肯定确认技术65拥塞控制:指数退避,每次重传发生,重传超时时间间隔加倍,但是不能超过上界(8s);如果在几次重传之后仍然没有得到对方的回应(默认5次),则隧道和所有的会话都必须被终止。滑动窗口机制:窗口大小在ReceiveWindowSizeAVP中指出。禁止使用1窗口。拥塞控制:加速递减和慢启动。拥塞控制:指数退避,每次重传发生,重传超时时间间隔加倍,但是664.5安全性分析对于封装的PPP数据:1.不提供机密性保护2.不提供完整性服务具有端点认证功能(CHAP),依赖于共享秘密,但是对该秘密的生成、管理、分发并没有做出规定。建议:构建于安全的传输层、IP层协议之上。结论:是一个隧道协议,而不算真正意义上的安全协议。4.5安全性分析对于封装的PPP数据:67第四部分第二层(数据链路层)网络安全协议

内容:PPP,LCP,IPCP,PAP,CHAP,L2F,L2TP参考文献:[1]RFC1661:ThePoint-to-PointProtocol(PPP)[2]RFC1172:ThePPPInternetProtocolControlProtocol(IPCP)[3]RFC1994:PPPChallengeHandshakeAuthenticationProtocol(CHAP)[4]RFC1334:PPPAuthenticationProtocols[5]RFC2341:CiscoLayerTwoForwarding(Protocol)“L2F”[6]RFC2661:LayerTwoTunnelingProtocol“L2TP”[7]RFC1549:PPPinHDLC-likeFraming[8]RFC1144:CompressingTCP/IPHeadersforLow-SpeedSerialLinks[9]RFC1663:PPPReliableTransmission[10]RFC2637:Point-to-PointTunnelingProtocol(PPTP)第四部分第二层(数据链路层)网络安全协议内容:PPP,L68第一讲PPP-点到点数据链路层协议内容:[1]数据报封装成PPP帧的方法(考虑传输的高效性);[2]LCP(LinkControlProtocol,链路控制协议):用于建立、配置、测试PPP链路;[3]一组NCP:用于建立和配置不同的网络层协议。第一讲PPP-点到点数据链路层协议内容:691.1PPP封装协议数据FCSF7EAFFC03F7E1.1PPP封装协议数据FCSFACF701.2PPP链路操作Dead:初态和终态,表明物理层尚未准备好;DeadUPOPENEDSUCCESS/NONEFAILCLOSINGDOWNFAIL图1PPP链路状态转换图EstablishEstablish:使用LCP建立和配置链路;AuthenticateAuthentication:身份认证阶段;NetworkNetwork:使用相应的NCP配置网络层协议;TerminateTerminate:终止链路。1.2PPP链路操作Dead:初态和终态,表明物理层尚未711.3LCP

一.LCP报文1.报文格式类型ID长度数据1.3LCP一.LCP报文1.报文格式类型ID长722.链路配置报文(1)Configure-Request:发起方发送的第一个报文;

P1P2Configure-Request图2LCP链路建立报文交换图Configure-NakConfigure-Ack(2)Configure-Ack:如果Confiure-Request中的每个选项都能被接收端识别,而且都被接受;(3)Configure-Nak:如果每个选项都能识别,但是只有部分能接受;

Configure-Reject(4)Configure-Reject:如果Confiure-Request有部分选项不能被识别,或者不能被接受。2.链路配置报文(1)Configure-Request732.链路配置报文类型ID长度选项Options字段:包含0个或多个要协商的选项,同时协商;类型长度数据类型长度认证协议数据选项:类型:(1)认证协议:c023:PAPc223:CHAP

2.链路配置报文类型ID长度选项Options字段:包含0个74c021数据FCSF7EAFFC03F7E1(Configure-Request)11315001(MRU)4CHAP3(认证协议)5MD5c021数据FCSFACF1(Configure-Reque75(2)Magic-Number功能:防止链路回路类型长度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);(2)Magic-Number类型长度Magic-Num763.链路终止报文-Terminate-Request&Terminate-Ack

Terminate-RequestTerminate-AckP1P2图3LCP链路终止报文交换图Terminate-RequestTerminat-Request3.链路终止报文-Terminate-Request&T774.链路维护报文功能:错误报告和检测比如:Code-Reject发送时机:LCP报文的Code字段无法识别相应举措:放弃链路类型ID长度拒绝报文Protocol-RejectEcho-RequestEcho-Replay4.链路维护报文类型ID长度拒绝报文Protocol-R781.4NCP-IPCP

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

发生时机:仅在建立连接的阶段发生;认证方式:一端发送明文口令至对等端,由对方认证;特性:无法防止重放(playback)、穷举(repeatedtrial)等攻击;封装:PPP帧的数据字段;代码ID长度数据第二讲PPP实体认证协议——PAP和CHAP2.1PA80P1P2图4PAP认证过程报文交换图Authenticate-Request……Authenticate-Request1.Authenticate-Request

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

P1P2图4PAP认证过程报文交换图Authenticat812.2CHAP-Challenge-HandshakeAuthenticationProtocol

发生时机:建立连接时和连接建立之后的任何时间AuthenticatorPeer图5CHAP认证过程报文交换图Challenge1.认证端发送“challenge”到对等端

ResponseA1=Hash(c,s)2.对等端根据这个“challenge”和共享密钥,利用一个单向散列函数计算一个散列值并发回给认证端;FailureSuccessA2=Hash(c,s)A1=A2A1≠A23.认证端把这个数字和自己计算出来的数据进行比较,如果匹配,则确认;否则否认;ChallengeResponseFailureSuccess……A2=Hash(c,s)A1=A2A1≠A2A1=Hash(c,s)4.在连接建立后,会随机地重复上述过程。2.2CHAP-Challenge-HandshakeA82一.PPP配置选项格式类型=3;长度=5;认证协议=c223;算法=5;(CHAPwithMD5)

类型长度认证协议算法二.CHAP报文格式封装在PPP帧的数据区ID:匹配challengeresponsereply类型ID长度数据一.PPP配置选项格式类型长度认证协议算法二.CHAP报文格83类型ID长度信息信息:可读文本1.Challenge&ResponseValue=MD5(ID+secret+challenge)Name:表示传输该报文的系统的标识;Challenge要求:唯一性;类型ID长度值长度值名字2.Success&Failure

类型ID长度信息信息:1.Challenge&Resp84三.特点1.CHAP可以防止重放攻击,因为使用了逐渐增加的ID和变化的challenge值;2.这种认证协议依赖于对等双方共享的“秘密”,这个秘密是带外传输的;3.共享的秘密可以用于双向认证;4.CHAP中包含的name域可以作为秘密的索引,还可以支持多个name/secret对,并且在会话过程中更改秘密。5.不适用于大型系统,因为链路的两端都必须维护每个可能的秘密;三.特点85四.说明1.实现时,协议与认证协议并非密不可分2.标准没有对认证失败之后的操作进行规定3.认证具有双向性4.在通信的两个方向上应该使用不同的秘密;如果使用相同的秘密,攻击者可能重放对等端的challenge,接收response,并且用这个response来实施认证;5.每个PPP服务器都维护一个数据库,存放了“用户名”和“秘密”的对应关系;标准建议对于一个用户只使用一种认证协议6.协议本身不涉及密钥存储和分发方案四.说明863.1概述目标:把链路层数据封装在更高层的协议中(隧道),从而拓宽了点到点链路两个对等端的位置;动因:通过Internet基础设施提供安全的虚拟PPP链路;第三讲L2F-CiscoLayerTwoForwarding(Protocol)

HH:HomeGateway

L……L:HomeLAN(s)RRRRR:RouterUUU:RemoteUserNNN:ISPNetwork

AccessServer(“NAS”)

虚拟PPP链路:U拨入H,访问L(隧道,基于UDP,端口1701)实际的PPP链路:U拨入N,再通过Internet基础设置访问3.1概述第三讲L2F-CiscoLayerTwo87说明:提供第二层的服务,但是L2F是应用层协议L2FUDPIP如何实现?把PPP帧封装到UDP报文中UNHLPPP帧PPP帧PPP帧UDP头L2F头L2F尾隧道:NH连接:

UL说明:L2FUDPIP如何实现?UNHLPPP帧PPP帧PP881.U发起到ISP的PPP连接,N接受这个连接并建立PPP链路;……UNRRRRHNUL2.N利用PAP或CHAP对R认证,根据用户名决定是否提供虚拟拨号服务。3.如果还没有建立隧道,则N建立到H的隧道;4.N为本次会话分配一个MID(MultiplexID),向H发送连接指示;5.H创建一个和直接拨号类似的“虚拟接口”,用于帧的传输;封装解封6.数据传输(封装和解封)1.U发起到ISP的PPP连接,N接受这个连接并建立PPP89指示信息:1.认证信息:以便于H认证U

(1)CHAP:challenge+用户名+原始的response(2)PAP:用户名+口令(明文)2.LCP协商阶段的LCPCONFACK作用:H可能用这个信息来初始化自己PPP的状态,从而避免第二轮的协商和认证;

封装和解封:封装:U->N,N剥掉帧订界等字段,封装在L2F中,并且在相应的隧道里转发(N->H);解封:H->L,剥掉L2F相关信息,象正常的进入帧一样用适当的协议和接口进行处理;反之亦然。指示信息:封装和解封:90L2F中的认证:阶段一:N对U认证,根据用户名确定提供的服务阶段二:H和N的相互认证阶段三:H对U的认证(N把U的信息传给H)L2F协议的内容:1.L2F报文封装(封装PPP帧)2.隧道和连接管理(隧道生成、关闭、复用、错误调试)L2F中的认证:913.2L2F封装一.封装后的PPP帧保留的部分:地址(A)控制(C)协议数据去掉的部分:帧定界校验和二.L2F报文格式头部数据(PPP)校验和(可选)报文分类:管理报文:保证可靠性数据报文:不保证可靠性3.2L2F封装一.封装后的PPP帧保留的部分:去掉的部92版本:0x0001协议:序号:S位置‘1’时有效。防止重复报文。重复:小于等于最后接收到的报文的序号,或者在其前面的127个值均认为是重复的。比如:最后收到的一个报文序号是15,则0-15,以及144-255都是重复报文。MID:指示一个隧道里的一条连接。MID=‘0’,专用于L2F管理报文。ClientID:唯一标识隧道对等端。长度:整个报文的长度,包括首部。单字节计。校验和:C位设置时有效,对整个报文的校验。载荷偏移:F位设置时有效,指示数据与首部的距离。优先级:P位设置时表明有较高的优先级。Key:K位设置时有效,验证是否是对等端发来的数据。版本:0x0001协议:序号:93隧道建立阶段对等端回应认证回应数据,其中包含了128比特数据。Key_block1=AuthenticateResponse(0-31)Key_block2=AuthenticateResponse(32-63)Key_block3=AuthenticateResponse(64-95)Key_block4=AuthenticateResponse(96-127)Key=Key_block1xorKey_block2xorKey_block2xorKey_block2隧道建立阶段对等端回应认证回应数据,其中包含了128比特数据943.3隧道及连接建立

一.典型的隧道协商过程包含Key可选项,不使用偏移和校验和选项1.NHProto=L2F,Seq=0,MID=0,CLID=0,Key=0L2F_CONFName:N_nameChallenge:RndAssigned_CLID:222.HNProto=L2F,Seq=0,MID=0,CLID=22,Key=0L2F_CONFName:H_nameChallenge:Rnd2Assigned_CLID:733.NHProto=L2F,Seq=1,MID=0,CLID=73,Key=C(Rnd2)L2F_OPENResponse:C(Rnd2)4.HNProto=L2F,Seq=1,MID=0,CLID=22,Key=C(Rnd)L2F_OPENResponse:C(Rnd)C:MD53.3隧道及连接建立一.典型的隧道协商过程2.HN395二.典型的连接协商过程拨号客户通过NAS建立到HomeGateway的虚拟拨号连接的过程。客户使用CHAP认证方式。1.NHProto=L2F,Seq=2,MID=1,CLID=73,Key=C(Rnd2)L2F_OPENType:CHAPName:CHAP-NameChallenge:<客户端发给N的回应>ID:<challenge中包含的ID>2.HNProto=L2F,Seq=2,MID=1,CLID=22,Key=C(rnd)L2F_OPEN3.NHProto=PPP,Seq=0,MID=1,CLID=73,Key=C(Rnd2)PPP帧4.HNProto=PPP,Seq=0,MID=1,CLID=22,Key=C(Rnd)PPP帧N收到用户呼叫,发送challenge,并收到回应,同时根据用户名判断需要虚拟的拨号服务,则分配MID,并且把challenge/response信息发给H。

二.典型的连接协商过程2.HN3.NH4.HN96三.L2F管理消息格式:0个或者多个选项每个选项:消息类型(1字节)+包含0个或多个子选项每个子选项:消息类型(1字节)+类型相关数据(长度+数据)消息类型:三.L2F管理消息971.NH(建立隧道时发送的配置请求消息)Proto=L2F,Seq=0,MID=0,CLID=0,Key=0L2F_CONFName:kouChallenge:89a3f65096Assigned_CLID:22首部0x010x020x03‘K’‘O’‘U’0x030x0a93056fa9860x040x01221.NH(建立隧道时发送的配置请求消息)首部0x010x98

温馨提示

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

评论

0/150

提交评论