您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 安全协议-第7章-下
安全协议分析与设计第二章(下)卫剑钒2PPP认证与RADIUSPPP(PointtoPointProtocol)是IETF推出的点到点线路的数据链路层协协议。它替代了非标准的SLIP(SerialLineInternetProtocol),成为正式的Internet标准,标准可见RFC1661、RFC1662和RFC1663。PPP支持在各种物理类型的点到点串行线路上传输网络层协议数据,有丰富的可选特性,如支持多种压缩方式、支持动态地址协商、支持多链路捆绑、提供多种身份认证服务等。PAP和CHAP是PPP最初规定的两种认证方法,但这两种认证方法都不安全,故IETF把EAP作为一个可选项加入到了PPP的认证方法之中。RADIUS是一种AAA(Authentication,Authorization,Accounting)协议,它采用客户端/服务器模型,提供了一种较为通用的框架,使得PAP、CHAP、EAP以及其他认证方法都可作为RADIUS所承载的上层认证机制。3RADIUSRADIUS(RemoteAuthenticationDialInUserService)即远程用户拨号认证系统,它是一种在网络接入服务器(NetworkAccessServer)和共享认证服务器间传输认证、授权和配置信息的协议。此外,RADIUS也负责传送网络接入服务器和共享计费服务器间的计费信息。RADIUS由RFC2865、RFC2866定义,是一种应用最广泛的AAA协议。协议最初的目的是为拨号用户进行认证和计费,后来经过多次改进,形成了一项通用的AAA协议,可用于电话拨号、ADSL拨号、小区宽带、IP电话等。IEEE提出的802.1x标准,是一种基于端口的访问控制标准,也将RADIUS协议作为首选的后台认证协议。4RADIUS的客户端和服务器RADIUS是一种客户端/服务器结构的协议,在拨号系统中,RADIUS客户端是NAS(NetAccessServer),RADIUS服务器是AS(AuthenticationServer)。NAS同时又是一个服务器,NAS对应的客户端是拨号用户的终端。事实上,任何运行RADIUS软件的终端都可以是RADIUS客户端或服务器。5RADIUS数据包NAS和AS通过UDP进行通信,AS的1812端口负责认证。采用UDP的基本考虑是因为NAS和AS大多在同一个局域网中,使用UDP更加快捷方便。6RADIUS数据包解释代码(CODE)域用来标识RADIUS包的类型,常用的关于认证的包类型有:接入请求(Access-Request),值为1;接入接受(Access-Accept),值为2;接入拒绝(Access-Reject),值为3;接入质询(Access-Chanllenge),值为4。标识符(ID)域用来辅助匹配请求和回复;长度(Length)指明了整个包的长度(包括属性部分)。认证码(Authenticator)域用来做完整性验证,对于Access-Request包,认证码里的内容是一个随机数RequestAuth,对于其他3种RADIUS服务器发送的Access包,其内容为一个MD5值,是对要发送包的内容(其中认证码域初始为RequestAuth)和一个秘密值Secret(在RADIUS客户端和服务器间共享)进行MD5杂凑而得:ResponseAuth=MD5(Code,ID,Length,RequestAuth,Attributes,Secret)7RADIUS数据包中的属性域属性(Attributes)部分用于传送详细的认证信息以及配置信息,一个包中可以有多个属性,每个属性都由3部分组成,分别是类型(type)、长度(length)及值(value)。属性充分体现了RADIUS的可扩展性,不同的认证方法就是通过不同的属性值体现的,如PAP认证使用类型2,CHAP认证使用类型3,而后来加入的EAP认证使用类型79。8RADIUS认证过程当客户登录网络时,NAS如果采用PAP认证,会要求客户输入用户名和口令,然后,NAS向AS服务器发送Access-Request,提交用户信息,包括用户名和口令信息(经过MD5处理过的口令)。AS对用户名和密码的合法性进行检验。如果采用其他认证方式(如CHAP),当NAS向AS发送完Access-Request后(只包含用户信息),AS返回一个Access-Challenge,并通过NAS中转,来进一步对客户进行认证(这个认证过程也可不由AS发起,而由NAS发起,以提高效率)。如果认证通过,AS给NAS返回Access-Accept数据包,允许用户进行下一步的访问,否则返回Access-Reject数据包,拒绝用户访问。如果认证通过,NAS开始提出计费请求(Accounting-Request),开始计费过程。9PAP和CHAPPPP最初提供了两种可选的身份认证方法:口令验证协议(PasswordAuthenticationProtocol,PAP)和质询握手协议(ChallengeHandshakeAuthenticationProtocol,CHAP)。PAP使用明文的用户名和密码完成认证,密码在NAS传送给AS时,实际上是做了MD5的加密处理,具体方法见RFC2865,这里记作f(MD5,Secret,RequestAuth,password)。图7.26所示为PAP-RADIUS协议示意。PAP中最不安全的地方在于Msg1,name和password都是明文传输的,如果被窃听或者重放,都会给用户带来损失。但在PPP的威胁模型中,电信线路是被假设为足够安全的,这种情况下,明文传输密码并不影响安全性。10PAP-RADIUS协议Msg1和Msg4属于PAP,Msg2和Msg3属于RADIUS协议。C表示拨号用户,用户拨入后,NAS告诉用户它支持PAP认证,然后用户系统向NAS发送用户名name和口令password。NAS向AS发送Access-Request消息,其中name和经过处理后的password是放在属性域里传送的(属性类型分别是1和2)。RequestAuth和ResponseAuth见上节的解释,为简洁起见,并未在Msg2和Msg3中列出RADIUS包中所有的域(如ID,Length等)。11CHAPCHAP使用挑战-响应机制,认证者发起挑战(实现上就是发送一个随机数)对客户进行认证(在RADIUS结构中,认证者是AS)。CHAP的主要两条消息是Challenge和Response,Challenge的值为认证者生成的一个随机数;Response的值是一个单向函数(如MD5)的输出,单向函数的输入为ID、secret和Challenge,其中secret是认证者和客户之间共享的秘密。12CHAP-RADIUS协议示意13扩展认证协议1998年,EAP协议(PPPExtensibleAuthenticationProtocol)加入了PPP的可选认证方法中,即RFC2284,从本质上讲,EAP是提供了一种封装框架,在这个框架下,可以承载多种认证方法,添加新的认证方式时并不影响现有协议的使用,故被称为“可扩展的认证协议”。EAP是一种简单封装协议,可以运行在任何链路层上,可承载多种高层认证方法,如TLS、IKE、GSS-API等。14EAP数据包格式EAP规定了4种可供传送的消息:Request、Response、Success和Failure消息。消息的识别体现在代码段,分别为1、2、3和4;标识符用来匹配消息的发送和应答;长度域用来表示整个EAP消息中的所有字节个数;数据域中含有实际发送的Request和Response数据(Success和Failure消息没有数据)。数据域又分为两个部分:类型(type)和类型数据(typedata),type域表明了认证方法,typedata域则包含了具体的认证数据。15EAP的数据域EAP的扩展性就体现在数据域,如RFC2284中定义了如下6种类型。(1)Identity。(2)Notification。(3)Nak(仅用于Response消息)。(4)MD5-Challenge。(5)One-TimePassword(OTP)(RFC1938)。(6)GenericTokenCard。类型(1)是一种非常简单的认证方法,通过两条消息就可以完成认证,客户发送一个Identity消息,认证者如果认可,就回一个Success消息,如Identity数据可以由智能卡实时生成,并和认证服务器保持同步。类型(2)用来传递一些需要在用户设备上显示的信息,如“请输入密码”等。类型3用来拒绝所不支持的认证算法。RFC中只列出了6种类型,但新的认证方法可以加入,这需要IANA(InternetAssignedNumbersAuthority,Internet号码分配机构)分配一个新的类型号,如TLS认证的类型号为13(PPP-EAP-TLS认证协议由RFC2716定义),LEAP认证的类型号为17。16无线局域网的认证与密钥管理无线局域网(WirelessLocalAreaNetwork,WLAN)主要由计算机终端(STA)、无线网卡、无线接入点(AP)组成,其安全性主要体现在访问控制和保密性上,由于802.11的1999年标准中,WEP设计上存在很多安全问题,IEEE802.11工作组成立了任务组TGi,TGi负责制定IEEE802.11i标准,以增强改善无线局域网的安全性。IEEE802.11是IEEE制定的无线局域网媒体访问控制层(MAC)和物理层(PHY)规范,在其1999年标准中,作为MAC协议部分的安全技术,有线等效保密(WiredEquivalentPrivacy,WEP)协议被设计用来防止非法用户窃听或侵入无线网络。17WEP的加密过程18WEP的加密过程IV是初始向量,长度为24位,对每个数据包加密时,IV都变化一次,并且IV本身作为输出的一部分传递给接收方。SK为密钥,最初标准中规定长度为40位,但在很多实现中都扩展到了104位。||表示连接符,IV和SK连接后,输入RC4序列加密算法中,产生伪随机序列PRKS;对明文M采用CRC算法,计算出消息认证码ICV,长度为32位,将ICV附在M之后,然后将其与PRKS进行模二加运算,获得密文数据C。19WEP的SK密钥SK有两种。一种是AP和所有用户共享的对称密钥,被称为默认密钥(Defaultkeys),WEP允许有4个默认密钥,并用密文中相应的位KeyID来表示;与默认密钥相对应的是映射密钥(Keymappingkey),每个STA和AP之间都有不同的映射密钥。AP每收到一帧或者要发送一帧时,会在密钥表里查找STA对应的映射密钥(通过STA的MAC地址做索引),如果没有找到,就使用默认密钥。由于在管理上的困难,映射密钥并没有得到广泛的应用。20WEP加密的主要问题(1)WEP本身没有防重放的能力,攻击者可能会重放以前捕获的帧,来完成一个会话,达到特定的目的。(2)使用CRC作为认证码并不能起到很好的防篡改能力,因为CRC是一个线性的计算,如果改变明文中的某个位,就可以计算出其CRC会在哪些位发生改变(0变为1或者1变为0),并且,由于加密过程是一个异或运算,攻击者也只需反转密文相应的位就可以完成篡改而不被发觉。(3)初始向量IV的作用是确保两个相同的明文不会产生相同的密文,理想情况下,要求对每个数据帧,IV都不相同。但IV在WEP的设计中,长度为24位,并且IV通常是通过计数器实现的,那么在传输224个帧以后,IV就会重复(在网络较为繁忙的情况下,每过几个小时就会重复一次)。21802.11的两种认证802.11提供两种认证,一种是开放认证,另一种是WEP认证。开放认证事实上相当于没有认证,如果AP处于开放模式,它就总会接受认证请求,返回认证成功的消息。WEP认证则基于
本文标题:安全协议-第7章-下
链接地址:https://www.777doc.com/doc-1256901 .html