神州数码802.1x认证协议简析

 
神州数码 802.1x 认证协议简析
一.   前言
本次神州数码802.1x认证协议的分析有这么几个前提:
1.       使用神州数码客户端进行上网认证。
2.       协议选择的是神州数码私有报文。
3.       使用的静态IP地址而不是DHCP分配。
4.       不涉及计时计费。
5.       分析的版本基于3.3/3.4
 
二.基本认证流程
 
1.     客户端向认证系统发送 EAPOL-Start数据包发起认证。
2.     认证系统向客户端发送 EAP-Request/Identity数据包,请求客户端发送身份标示。
3.     客户端接收到认证系统发来的 EAP-Request/Identity后,发送包含身份标示信息(用户名)的EAP-Response-Identity数据包。
4.     认证系统接收到客户端发送的 EAP-Response/Identity后,查询用户名,如果验证成功,继续,否则返回错误信息,客户端执行步骤11。
5.     认证系统向客户端发送 EAP-Request/Md5-Challenge数据包,数据包中包含客户端进行Md5加密时所需的16字节Md5-Challenge。
6.     客户端接收到认证系统发送的 EAP-Request/Md5-Challenge,从中取出所需要的Md5-Challenge字段和Id字段,结合密码,运算得到16字节的加密结果,用于合成EAP-Response/Md5-Challenge数据包。合成完毕,发送数据包。
7.     认证系统接收到客户端发送的 EAP-Response/Md5-Challenge,进行验证,如果通过,则继续,否则返回错误信息,执行步骤11。
8.     认证系统向客户端发送 EAP-Success数据包,同时将Port状态置为Enable,客户端所在的电脑就此得到上网权限。
9.     认证系统每隔一段时间主动向客户端发送 EAP-Keepalive数据包。
10. 客户端接收到 EAP-Keepalive数据包后(与EAP-Request/Identity数据包内容相同),客户端执行步骤3,完成连接的保持工作。重复步骤10。
11. 接收到错误信息,发送 EAP-Logoff数据包,中止认证。
 
三.协议具体分析
神州数码 802.1x认证协议并不是完全的私有协议,只是在标准协议的基础上进行了自己的扩展,为了叙述方便,对于标准802.1x的描述,附上一部分关于标准802.1x,EAP,EAPOL的相关说明 , 不再赘述:
 
1.以太网协议帧头描述:
destination
6 字节
目的MAC 地址
source
6 字节
源MAC 地址
type
2 字节
协议类型,802.1x 的类型是88 8E
神州数码客户端在发送认证包的时候,无论是否可以得到认证服务器的MAC 地址,都采用802.1x 协议分配的组播地址 01-80-c2-00-00-03 作为目的MAC 地址。
 
 
 
4. 神州数码私有报文部分的分析
 
在标准 802.1x认证协议的基础上,神州数码进行了扩展。具体表现如下:
A.从 EAP-Response-Identity数据包开始,客户端发送的数据包中均包含一段45字节的私有数据。与标准数据之间用一个值为0的字节进行分隔【当该字节为01时表示是DHCP认证模式……后面的IP地址就是网卡信息中那个非法IP,子网掩码是FF FF 00 00,后面八个字节全零,这种认证方式目前还没有好好研究】。该数据段的意义如下:
 
IpAdress
4字节
Ip地址
SubnetMasks
4字节
子网掩码
GateWay
4字节
网关
Dns
4字节
Dns地址
UsernameMd5
16字节
用户名的 Md5
VerInfor
13字节
版本信息的 ASCII码
例如,我见到的最新的版本号是: 0x33 ,0x2e ,0x34 ,0x2e ,0x32 ,0x30 ,0x30 ,0x36 ,0x2e ,0x31 ,0x30 ,0x32 ,0x37
相应的文本就是:
3        .   4       .   2       0   0       6   .       1   0       2    7
 
 
 
B.EAP-Response/Md5-Challenge数据包中加密信息的形成
在 EAP-Response/Md5-Challenge数据包中,有16字节的数据是通过md5加密形成的,该过程用C语言描述如下:
            //读取 md5 challenge,存储于m_digiMd5中
            memmove(m_digiMd5,pkt_data+0x18,16);
           
            //计算 md5值
            MD5_CTX md5;
            md5.MD5Update(pkt_data+0x13,1);
            md5.MD5Update(m_password,strlen((const char*)m_password));
            md5.MD5Update(m_digiMd5,16);
            md5.MD5Final(m_digiMd5);
            //结果保留在 m_digiMd5中
 
其中 pkt_data是EAP-Request/Md5-Challenge数据包的起始位置,pkt_data+0x18起的16个字节是Md5-Challenge,pkt_data+0x13起的一个字节是Id,也就是对Id+密码+Md5-Challenge进行md5运算。
 
 
C.神州数码反馈信息的解析(目前只了解了少量信息的格式)
1 .认证成功时的信息格式:
认证成功时,认证系统有可能返回相关信息,该信息的格式目前不是很清楚,只知道有时在 pkt_data[0x82]处出现0x12标志,有时在pkt_data[0x99]处出现该标志,所以现在程序中的考虑是这样的:
if(pkt_data[0x82]==0x12)
{
     char *msg=(char*)malloc(pkt_data[0x83]-2+1);
     memmove(msg,pkt_data+0x84,pkt_data[0x83]-2);
     msg[pkt_data[0x83]-2]=0;
     printf(" 系统消息 :/n[%s]/n",msg);
    free(msg);
}
else
{
     if(pkt_data[0x99]==0x12)
     {
         char *msg=(char*)malloc(pkt_data[0x9A]-2+1);
         memmove(msg,pkt_data+0x9B,pkt_data[0x9A]-2);
         msg[pkt_data[0x9A]-2]=0;
         printf(" 系统消息 :/n[%s]/n",msg);
         free(msg);
     }
}
标志位 0x12后面的那一个字节就是附加信息的长度,但是这个长度是包含标志位以及长度自身的,所以信息真正的长度应该是pkt_data[0x83]-2或者pkt_data[0x9A]-2。因为协议使用一个字节来表示信息长度,所以信息的最大有效长度为254字节。信息使用GB2312编码,所以在linux下直接显示的话,可能会出现问题。
2 .失败信息的格式。
在神州数码的失败信息,已经了解的有两个:用户名验证失败,用户名或密码错误。与成功的消息一样,都是在找到一个标志位 0x12后,读取接下来一个字节中存储的长度信息,从而获取消息字符串。
在用户名验证失败的消息中,标志位位于 pkt_data[0x2A]
在用户名或密码错误消息中,标志位位于 pkt_data[0x42]
 
 
目前为止对神州数码 802.1x认证协议的了解就是这些。
 
 
 
 
 
附加材料:
1 .EAP协议
 
802.1x 协议在实现整个认证的过程中,其三个关键部分(客户端、认证系统、认证服务器)之间是通过不同的通信协议进行交互的,其中认证系统和认证服务器之间是EAP报文。
EAP 帧结构如下表所示:
字段
字节
Code
1
Identifier
2
Length
3-4
Data
5-N
 
 
EAP 帧格式中各字段含义如下:
 
字段
占用字节数
描述
Code
1 个字节
表示EAP帧四种类型:1.Request;2.Response
3 .Success;4.Failure
Identifier
1 个字节
用于匹配Request和Response。Identifier的值和系统端口一起单独标识一个认证过程
Length
2 个字节
表示EAP帧的总长度
Data
0 或更多字节
表示EAP数据
其中Code的取值如下:
1 :        Request
2 :        Response
3 :        Success
4 :        Failure
 
 
802.1x 协议定义了一种报文封装格式,这种报文称为EAPoL(EAP over LANs局域网上的扩展认证协议)报文,主要用于在客户端和认证系统之间传送EAP协议报文,以允许EAP协议报文在LAN上传送。
标准EAPoL帧结构如下表所示:
字段
字节
PAE Ethernet Type
1-2
Protocol Version
3
Packet Type
4
Packet Body Length
5-6
Packet Body
7-N
 
 
 
EAPoL 帧格式中各字段含义如下:
 
字段
占用字节
描述
PAE Ethernet Type
2 个字节
表示协议类型,802.1x分配的协议类型为888E
Protocol Version
1 个字节
表示EAPOL 帧的发送方所支持的协议版本号。本规范使用值为0000 0001
Packet Type
1 个字节
表示传送的帧类型,如下几种帧类型:
a) EAP-Packet. 值为 0000 0000
b )EAPOL-Start.值为0000 0001
b) EAPOL-Logoff. 值为0000 0010
Packet Body Length
2 个字节
表示Packet Body的长度
Packet Body
0/ 多字节
如果Packet Type为EAP-Packet,取相应值。对于其他帧类型,该值为空。
 
EAPOL 帧在二层传送时,必须要有目标MAC地址,当客户端和认证系统彼此之间不知道发送的目标时,其目标MAC地址使用由802.1x协议分配的组播地址01-80-c2-00-00-03。
 
 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 神州数码无线AC基本配置.txt文件是一份用于配置无线网络的文本文件,主要包含了无线网络名称(SSID)、密码、安全协议、信道、带宽等基本参数的设置和说明。 在SSID中,用户可以设置无线网络名称的名称,密码的设置可以保证无线网络的安全性。安全协议有WEP、WPA和WPA2等选择,信道设置一般推荐选择自动,带宽则根据网络所需进行选择。 此外,神州数码无线AC基本配置.txt文件还包含了一些高级设置,比如MAC地址过滤、端口转发等,这些设置可以让用户更好地控制和管理自己的无线网络。 总之,神州数码无线AC基本配置.txt文件是一份必要的文本文件,它提供了一些基本的设置和说明,让用户能够快速轻松地配置自己的无线网络,同时还能够提供更多的高级设置,满足用户更为复杂的需求。 ### 回答2: 神州数码无线AC基本配置.txt是一份配置文件,用于对神州数码推出的无线AC设备进行基本设置。该文件主要包括如下几个设置项: 1. 管理地址:通过该设置项可以对设备的管理地址进行配置。一般情况下,该地址是设备的IP地址或MAC地址,用户可以通过该地址对设备进行管理和监控。 2. 网络模式:用户可以通过该设置项选择设备的网络模式,包括路由模式和桥接模式。路由模式可以为用户提供更多的功能和管理选项,而桥接模式更加简单和稳定。 3. SSID设置:SSID是指在无线网络中设备的标识符,用户可以通过该设置项对设备的SSID进行自定义,以便用户方便地识别和管理设备。 4. 加密方式:用户可以通过该设置项对设备的加密方式进行配置,以确保无线网络的安全性。常见的加密方式包括WEP、WPA和WPA2等。 5. DHCP设置:用户可以通过该设置项对设备的DHCP服务器进行配置,以实现自动网络地址分配。 总体而言,神州数码无线AC基本配置.txt提供了一系列必要的设置项,可以帮助用户轻松地配置和管理无线AC设备。在使用该文件时,用户需要按照实际情况进行相应的设置,以实现最佳的网络性能和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值