关闭

绑定手机号

应国家法规对于账号实名的要求,请您在进行下一步操作前,需要先完成手机绑定 (若绑定失败,请重新登录绑定)。了解更多

不绑定绑定手机号

360官网 | 360商城 | 360手机官网 | 社区客户端

推荐 论坛 版块 活动 好奇者试用 商城 积分商城
本帖最后由 whitefiend 于 2017-7-25 09:51 编辑

写在开头:总版大风车已经在其大课堂里,全方位地对360各种智能设备做了详尽教程,这里也就不再重复,所以来说说各家路由一些比较共性的东西,当作大课堂的补充。
友情提示:如果使用中出现什么问题,可以先自行翻看大风车独家秘籍,这样可以节省更多宝贵时间哦~
【大风车大课堂】安全路由版教程 汇总帖

【路由知识小课堂】汇总帖~


=======================================================
前言:
虽然官方已在公开场合表示过校园网的破解,在技术上没任何难度,但与校园网客户端厂商无休止的攻防完全没有意义,所以目前不会校园网领域有所行动。面对校园网这一无底大坑,论坛时不时会有深受其害的小伙伴出现,本版主也是过来人,当然深知其水有多深。而且转眼间又快到一年的新生季了,又有多少良家少男少女要入坑中。
好不容易上了个大学,却不能好好上个网,非要什么一人一号,还要用什么锐捷、安腾之类软件去拨号,烦不烦啊~
废话不多说了,下面就来认识下这个学生恨让校领导爱的802.1x。

一、802.1x起源
以太网结构简单的特性使得其在全世界范围内迅速得到广泛部署,成为当前计算机数据通信网络最主要的接入方式之一,但这种简单机制同时又带来安全隐患,任何一台电脑只要接入网络便有访问网络资源的权限。随着网络的逐渐普及,一方面,越来越多的企业、校园、小区、SOHO用户青睐于以太网这种价格低廉、使用方便、带宽高的接入方式;另一方面可运营新业务的开展需要底层以太网提供必要的安全认证机制。如何正确处理用户访问权限的问题成为日益突出的问题,802.1X就是IEEE为了解决基于端口的接入控制而定义的一个标准。802.1x协议是基于Client/Server结构的访问控制和认证协议,即在局域网接入设备的端口上对所接入的用户设备进行认证,以便设备控制对网络资源的访问。
它在二层网络就可以实现,即仅一个支持802.1x的交换机就能完成802.1x的配置。但是我们买的账号密码不可能都设置在交换机上,这个时候就不得不提它的帮凶——Radius服务器了。Radius全称Remote Authentication Dial-In User Service即远程认证拨号用户服务,我们的账号密码其实都是被设置在这个服务器上。所以在开网的时候,除了提供账号密码之外,多数学校还会有在客户端设置认证服务器IP等操作。

二、802.1x结构

360社区

360社区

IEEE 802.1X协议采用典型的客户端/服务器体系结构,包括三个主要的部分:客户端(Supplicant System)、认证系统(Authenticator System)以及认证服务器(Authentication Server System)。
客户端一般为一个用户终端系统,该终端系统通常需要安装一个客户端软件,用户通过启动这个客户端软件发起802.1X协议的认证过程。为支持基于端口的接入控制,客户端系统必须支持EAPOL(Extensible Authentication Protocol Over LAN,局域网上的可扩展认证协议)。
认证系统也称NAS(Network Access System,即网络接入系统),通常为支持802.1X协议的网络设备。为了便于理解,接下来文中提到的所有\认证系统\均用NAS来进行表述。在启动了802.1X认证的情况下,该设备上用于客户端接入的每个物理端口对应两个逻辑端口:受控端口(Controlled Port)和非受控端口(Uncontrolled Port)。非受控端口始终处于双向连通状态,主要用来传递EAPOL协议帧,保证客户端始终可以发送或接收认证信息。而受控端口只有在认证通过的状态下才打开,用于传递业务信息帧。为适应不同的应用环境,受控端口可配置为单向受控和双向受控两种方式。实行双向受控时,禁止帧的发送和接收;实行单向受控时,禁止从客户端接收帧,但允许向客户端发送帧。如果用户未通过认证,则受控端口处于未认证状态,用户无法访问认证服务器提供的服务。
认证服务器通常为Radius服务器,该服务器可以存储有关用户的认证、计费、业务信息,比如用户所属的VLAN、CAR参数、优先级、用户的访问控制列表等等。这里认证服务器所提供的服务是指通过检验客户端发送来的身份标识,来判断该用户是否有权使用NAS所提供的网络服务。当用户通过认证后,认证服务器会把用户的相关信息传递给NAS,由NAS构建动态的访问控制列表,用户的后续流量就将接受上述参数的监管。本文中提到的认证服务器均以Radius服务器为例进行说明。
以上三个部分,除客户端系统外,NAS和认证服务器之间既可以分布在两个不同的物理实体上,也可以是集中在一个物理实体上,后者指的是由NAS独立完成用户的认证授权,即本地认证。

三、协议实现及报文格式

360社区

360社区

802.1X协议在实现整个安全认证的过程中,其三个关键部分客户端、认证系统(NAS)、认证服务器之间是通过通信协议进行交互的,因此有必要对其相关的通信协议做个介绍。

EAPOL协议
EAPOL(EAP over LANs)是802.1X协议定义的一种报文封装格式,主要用于在客户端和NAS之间承载用户信息,也就是说允许EAP协议报文直接承载于LAN环境中。
EAPOL消息封装格式如所示:

360社区

360社区

EAPOL的帧结构:
PAE Ethernet Type:2字节,该值表示以太网协议类型,802.1X为其分配的协议类型为0x888E。
Protocol Version:1字节,表示EAPOL帧的发送方所使用的协议版本号。
Packet Type:1字节,表示EAPOL数据帧类型,有如下四种帧类型,如图4所示。
Packet Body Length:2字节,表示数据域的长度,也就是Packet Body字段的长度,单位为字节。当EAPOL数据帧的类型为EAPOL-Start或EAPOL-Logoff时,该字段值为0,表示后面没有Packet Body字段。
Packet Body:表示数据内容,根据不同的Type有不同的格式。

360社区

360社区

Packet Body类型及说明

EAP协议
802.1X协议采用EAP(Extensible Authentication Protocol,可扩展认证协议)来实现客户端、NAS和认证服务器之间认证信息的交互。
通过支持EAP协议,NAS只需控制其受控端口的状态,但是并不干涉通过非受控端口在客户端和认证服务器之间传递的认证信息。这样,就实现了认证流和业务流的完全分离。可以使用认证服务器来实现各种认证机制,NAS仅仅需要传送认证信息,并根据认证返回的结果控制受控端口的状态。
当 EAPOL 报文的Packet Type字段值为0000 0000时,表明Packet Body字段封装的是一个EAP 数据包,EAP 协议报文格式在 RFC2284 中有详细描述。下面来看一下EAP报文封装格式。

360社区

360社区

EAP的帧结构:
Code:1字节,该值表示EAP帧类型,共有4种:Request、Response、Success、Failure。
Identifier:1字节,该值用于匹配Request消息和Response消息。Identifier字段和系统端口一起唯一标识一个认证过程。
Length:2字节,该值表示EAP帧的总长度,包含Code、Identifier、Length和Data域,单位为字节。
Data:0或更多字节,表示EAP包的内容,由Code字段决定。
对于Code字段所携带的不同EAP帧类型,其对应Data域的格式也略有不同,这里可分为两类:
一类是指,若Code字段的EAP帧类型为Request或Response的数据包的Data域格。

360社区

360社区

Type常见报文类型:
Type=1 -Identifier(要求客户端程序发送用户输入的用户名信息)
Type=2 -Notification(非必须的一个消息,传送一些警告消息)
Type=3 -Response Only(Request报文中的认证类型不可接受时回应该类型的报文)
Type=4 -MD5-Challenge(类似于CHAP中的MD5-Challenge)
Type=5 -One-Time Password (OTP)(一种密码交互的方式)
Type=6 -Generic Token Card(支持Challenge和Response时使用令牌)
Type=254 -Expanded Types(支持厂商自己扩展的类型)
Type=255 -Experimental use(实验新的类型时做测试用的类型)

另外一类,若Code类型为标准的Success或Failure的数据包,则没有Data域,相应的Length域的值为4。在H3C公司的实现中,在Length域后面增加了字段用于说明下线的原因,故Length域的值可能为其他值。
此外,Radius为支持EAP认证增加了两个属性:EAP-Message(EAP消息)和Message-Authenticator(消息认证码)。
EAP-Message属性用来封装EAP数据包,类型代码为79,Value域最长253字节,如果EAP数据包长度大于253字节,可以对其进行分片,依次封装在多个EAP-Message属性中。该属性必须配合Message-Authenticator属性使用。

360社区

360社区

EAP-Message属性-
而上面提到的Message-Authenticator属性,如下图所示,类型代码为80,主要用于在EAP认证过程中验证携带了EAP-Message属性的Radius报文的完整性,避免接入请求包被窜改。在含有EAP-Message属性的数据包中,必须同时也包含Message-Authenticator,否则该数据包会被认为无效而被丢弃。此外,若接收端对接收到的Radius报文计算出的完整性校验值与报文中携带的Message-Authenticator属性的Value值不一致,该数据包也会被认为无效而丢弃。

360社区

360社区


四、802.1x认证全过程。
(一)认证发起
802.1X的认证发起可以由NAS发起,也可以由客户端主动发起。当NAS探测到未经过认证的用户使用网络时,就会主动发起认证;客户端则可以通过客户端软件主动向NAS发送EAPOL-Start报文发起认证。
• NAS主动触发认证方式
当NAS检测到有未经认证的用户使用网络时,会每隔N秒(系统默认30秒)主动向客户端以组播报文来触发认证。在认证开始之前,端口的状态被强制为未认证状态。
如果客户端的身份标识不可知,则NAS会发送EAP-Request/Identity报文,请求客户端发送身份标识。这样,就开始了典型的认证过程。客户端在收到来自NAS的EAP-Request报文后,将发送EAP-Response报文响应NAS的请求。
这种触发方式用于支持不能主动发送EAPOL-Start报文的客户端,例如Windows XP自带的802.1X客户端。
• 客户端主动触发认证方式
如果用户要上网,则可以通过客户端软件主动发起认证。客户端软件会向NAS发送EAPOL-Start报文主动发起认证。该报文目的地址为IEEE 802.1X协议分配的一个组播MAC地址:01-80-C2-00-00-03。
NAS在收到客户端发送的EAPOL-Start报文后,会发送EAP-Request/Identity报文响应用户请求,要求用户发送身份标识,这样就启动了一个认证过程。
此外,由于网络中有些设备不支持上述的组播报文,使得NAS无法收到客户端的认证请求,因此NAS还支持广播触发方式,即可以接收客户端发送的目的地址为广播MAC地址的EAPOL-Start报文。这种触发方式需要对应客户端配合使用。
(二)退出认证
通过以下几种方式NAS设备可以将端口状态从已认证状态改变成未认证状态:
Ø 与端口对应的MAC地址出现故障(管理性禁止或硬件故障);
Ø 客户端与NAS之间的连接失败,造成认证超时;
Ø 客户端未响应NAS发起的认证请求;
Ø 客户端发送EAPOL-Logoff报文,主动下线。
退出已认证状态的直接结果就是导致用户下线,如果用户要继续上网则需要再发起一个认证过程。
为什么要专门提供一个EAPOL-Logoff机制,主要是出于如下安全的考虑:
当一个用户从一台终端登录后,很可能其他用户不通过发起一个新的认证请求,就可以利用该设备访问网络。因此提供专门的退出机制,以确保用户与NAS专有的会话进程被中止,可以防止用户的访问权限被他人盗用。通过发送EAPOL-Logoff报文,可以使NAS将对应的端口状态改变为未认证状态。


(三)认证过程
当用户通过认证后,认证服务器会把用户的相关信息传递给NAS,而NAS会根据认证服务器的指示,如Accept或Reject,来决定受控端口的授权/非授权状态。
当前802.1X系统支持两种方式与远端认证服务器交互完成认证,即EAP中继方式EAP终结方式


1.EAP中继方式
EAP中继方式是IEEE 802.1X标准规定的,其将EAP承载在其它高层协议中,如EAPOR(EAP over Radius),以便EAP报文穿越复杂的网络到达认证服务器。一般来说,EAP中继方式需要Radius服务器支持EAP属性:EAP-Message(值为79)和Message-Authenticator(值为80),以上两个属性分别用来封装EAP报文及对携带EAP-Message的Radius报文进行保护。
在具有802.1X认证功能的以太网络系统中,当一个用户需要对网络资源进行访问之前必须先要完成以下的认证过程。下面就以EAP-MD5方式为例,介绍802.1X基本认证流程,如图9所示。其中EAP-MD5是一种单向认证机制,可以完成网络对用户的认证,但认证过程不支持加密密钥的生成。

360社区

360社区


(1)当用户有网络连接需求时打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求(EAPOL-Start报文)。此时,客户端程序将发出请求认证的报文给NAS,开始启动一次认证过程。

(2)NAS收到请求认证的数据帧后,将发出一个请求帧(EAP-Request/Identity报文)要求用户的客户端程序发送输入的用户名。

(3)客户端程序响应NAS发出的请求,将用户名信息通过数据帧(EAP-Response/Identity报文)发送给NAS。

(4)而后,NAS则将客户端送上来的数据帧经过封包处理后(RADIUS Access-Request报文)送给认证服务器进行处理。

(5)认证服务器收到NAS转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的密码信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字通过RADIUS Access-Challenge报文传送给NAS,由NAS传给客户端程序。

(6)客户端程序收到由NAS传来的加密字(EAP-Request/MD5 Challenge报文)后,用该加密字对口令部分进行加密处理(此种加密算法通常是不可逆的),生成EAP-Response/MD5 Challenge报文,并通过NAS封装为RADIUS Access-Request报文传给认证服务器。

(7)认证服务器将收到的已加密的密码信息(RADIUS Access-Request报文)和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息(RADIUS Access-Accept报文和EAP-Success报文),并向NAS发出打开端口的指令,允许用户的业务流通过端口访问网络。否则,反馈认证失败的消息(EAP-Failure报文),并保持NAS端口的关闭状态,只允许认证信息数据通过而不允许业务数据通过。

(8)客户端也可以发送EAPOL-Logoff报文给NAS,主动要求下线。设备端把端口状态从授权状态改变成未授权状态,并向客户端发送EAP-Failure报文。

这里要提出的一个值得注意的地方:在客户端与认证服务器交换口令信息的时候,没有将口令以明文直接送到网络上进行传输,而是对口令信息进行了不可逆的加密算法处理,使在网络上传输的敏感信息有了更高的安全保障,杜绝了由于下级接入设备所具有的广播特性而导致敏感信息泄漏的问题。


2.EAP终结方式

EAP终结方式将EAP报文在设备端终结并映射到Radius报文中,通过标准的Radius协议完成认证、授权和计费。设备端与Radius服务器之间可以采用PAP(Password Authentication Protocol,密码验证协议)或者CHAP(Challenge Handshake Authentication Protocol,质询握手验证协议)认证方法。二者主要区别是CHAP密码通过密文方式在客户端和NAS之间传输,而PAP密码通过明文的方式传输。以下以CHAP认证方式为例介绍认证流程,如图10所示。

360社区

360社区

(1)用户有上网需求时打开802.1x客户端,输入已经登记过的用户名和密码,发起连接请求(EAPOL-Start报文)。此时,客户端程序将发出请求认证的报文给NAS,开始启动一次认证过程。
(2)NAS收到请求认证的数据帧(EAPOL-Start)后,将发出一个请求帧(EAP-Request/Identity报文)要求用户的客户端程序发送输入的用户名。
(3)客户端程序将用户名信息通过数据帧(EAP-Response/Identity报文)送给NAS。直到这里,认证过程中的前三步和EVP中继方式完全相同。
(4) 接下来, NAS收到客户端送上来的数据帧(EAP-Response/Identity报文)后,没有上传至认证服务器,而是本地随机生成一个加密字,并将将此加密字的通过数据帧(EAP-Request/MD5 Challenge报文)交给客户端程序。
(5)客户端程序收到加密字(EAP-Request/MD5 Challenge报文)后,用该加密字对密码部分进行加密处理,生成EAP-Response/MD5 Challenge报文发送给NAS。
(6)NAS收到加密密码(EAP-Response/MD5 Challenge)后,用CHAP协议对用户名、加密密码、加密字等认证信息重新封装成标准的Radius报文(RADIUS Access-Requeset报文) ,送给认证服务器进行处理。
(7)认证服务器收到的认证信息(RADIUS Access-Requeset报文)后,根据收到的用户名信息在数据库中查找对应的密码信息,用收到的加密字对密码信息进行加密处理得到自己的加密密码。然后和收到的加密密码信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息(RADIUS Access-Accept报文)给NAS。
(8)NAS向客户端程序反馈认证通过消息( EAP-Success报文),将端口状态改为授权状态,允许用户通过该端口访问网络。
(9)客户端可以发送EAPOL-Logoff报文给NAS,主动终止已认证状态,交换机将端口状态从授权状态改变成未授权状态。


3.两种方式对比
EAP中继方式与EAP终结方式的认证流程十分类似,不同之处主要在于加密字的生成处理及传递方式。在EAP中继方式中,用来对用户口令信息进行加密处理的随机加密字由认证服务器生成,交换机只是负责将EAP报文透传认证服务器,整个认证处理都由认证服务器来完成。而在EAP终结方式中,用来对用户密码信息进行加密处理的随机加密字由NAS生成,NAS会把用户名、随机加密字和客户端加密后的密码信息一起送给认证服务器,进行相关的认证处理;
从上面可以看出,由于认证流程中对于加密字的生成处理及传递方式不同,因此EAP中继与EAP终结两种认证方式其优缺点也很明显:
EAP中继方式优点是NAS设备处理更简单,支持更多的认证方式,缺点则是认证服务器必须支持EAP;而EAP终结方式的优点是认证服务器无需升级,现有的Radius服务器可以继续使用,缺点是NAS设备处理更复杂。
两种方式各有优缺点,企业可根据实际情况自行选择。若为了兼容Radius服务器,节省用户投资,建议NAS选择EAP终结方式。目前相关交换机产品普遍支持这两种认证方式。

综述
802.1X认证系统提供了一种用户接入认证的手段,它仅关注受控端口的打开与关闭。合法用户接入时,该端口打开,而非法用户接入或没有用户接入时,则使端口处于关闭状态。认证的结果在于端口状态的改变,而不涉及其它认证技术所考虑的IP地址协商和分配问题,是各种身份认证技术中最为简化的实现方案,所以深受广大高校喜爱。

PS:有一个大家都很关心的问题,就是能不能一号多人使用?
除了极少数学校自身允许多设备的外,那默认只能一人一号的学校,一般情况下也是可以通过非正常手段实现一号多人使用的
。从上面的认证过程不难发现,客户端部分集成了大部分功能,如果有一定基础,熟悉程序反编的小伙伴,完全可以通过修改、删除客户端特征代码,从而解除多网卡限制、用户二次认证、在线检测等。当然也有一些学校使用了比较贱的客户端,还自带完整性检查等功能,普通修改无法使用,这就要更复杂的手段破解限制了,当然这也不在本期内容,因此不再赘述。
没有这技术的小伙伴就去问问油腻的师姐、师哥之前有木有破解版的客户端吧。

如果是开发大牛,完全可以做个插件集成在路由中,造福广大机油。能做到这个的大神,建议直接联系客服或者版主,360安全路由会因你会更精彩~
http://luyou.360.cn/open_api.html?from=nav


如果看到这还是一脸懵逼的话,那还是该花钱花钱吧~

共 3 个关于【路由知识小课堂】之七 高校圈钱技术之802.1x认证的回复 最后回复于 2017-8-23 20:51

评论

直达楼层

七号海角 产品答疑师 发表于 2017-7-25 09:30 | 显示全部楼层 | 私信
校园网的朋友们看过来
scriptsboy 产品答疑师 发表于 2017-7-25 16:09 | 显示全部楼层 | 私信
代码和原理层的东西相信论坛里面小白用户比较难看懂了,不过感谢版主的分享。希望小白用户可以多多学习~~
头像被屏蔽
任国京 LV2.下士 发表于 2017-8-21 16:27 | 显示全部楼层 | 私信
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

whitefiend VIP认证 版主

粉丝:25 关注:0 积分:9535

精华:2 金币:49180 经验:7373

最后登录时间:2017-10-19

私信 加好友

whitefiend

粉丝:25 关注:0

私信

最新活动

老周邀您参加360公司2017年度感恩用户节!

内容推荐 热门推荐最新主帖

    360社区客户端下载

    快速回复 返回顶部 返回列表