EAP-MD5计算方法
一、说明
领导要求确认设备进行802.1X认证时,是否直接将用户名密码明文传给交换机。配好端口镜像、搭好Radius环境后进行了抓包分析。
二、计算
2.1 802.1X认证过程
完整流程如下:
客户端与交换机间的数据截获如下,5个数据与上图描述一致:
2.2 分析场景复现
配置的用户名密码为test/123456,在客户端发往交换机----Nearest MAC地址01:80:c2:00:00:03,该地址为保留地址,目的地址该地址表示发送二层广播包-----的第二和第四个包中发现了用户名,但未发现密码。
参考网上资料也说密码是加密的,下边第二张图中的EAP-MD5 Value字段的值“51224bd42783bf78e1a5093474122801”即是加密后的密码。
2.3 密码计算
到这已经算完成了领导给的任务:设备将用户名明文传给交换机,密码加密后传给交换机。
但处理问题需要追根究底:密码加密传输到底是怎么个加密法?你确定吗?你能自己把密码重新计算出来吗?
按网上资料来看密码都是经过如下计算:
R = MD5(id||P||C)
“||”是直接拼接在后面的意思,但大多资料都没说清这几个值以什么类型拼接,自己计算时一直算不对,在此总结一下:
id----第三个数据包中的id字段值,以一字节长度整型拼接
P----密码,以ASCII码形式拼接
C----第三个数据包中返回的MD5值,bin十六进制形式。
从上图可以看到交换机返回的id为4,MD5挑战值为"9ec74cf5cbaa27781b1c6203766430fe"。而另外在Radius设置的密码为123456
编写以下代码进行计算:
import hashlib
import binascii # 我这里交换机返回的id为4,注意是整型
id = 4
# 我这里密码是123456
password = ""
# 我这里交换机返回的md5盐值是"9ec74cf5cbaa27781b1c6203766430fe"
challenge = "9ec74cf5cbaa27781b1c6203766430fe" # 将id转为一字节长度整型
id = id.to_bytes(1,"big")
# 将password进行编码
password = password.encode("ASCII")
# 将challenge改成bin十六进制
challenge = binascii.a2b_hex(challenge)
# 拼接
con_value = id + password + challenge # 计算。R = MD5(id||P||C)
md5_value = hashlib.md5(con_value).hexdigest()
pass
计算结果如下,得到的密码串为“51224bd42783bf78e1a5093474122801”,与2.2图二中的密码串一致。
参考:
https://hal.inria.fr/hal-01534313/document
https://www.jianshu.com/p/b8b2b1b75207
https://www.huawei.com/ilink/en/download/HW_311147?Addr=
EAP-MD5计算方法的更多相关文章
- 并发MD5计算方法
MD5与SHA算法一样,利用他们可以计算某段数据的唯一hash值,常用做校验码.而MD5比SHA算法性能高.在我参加的一个项目中,主要用MD5码值来去重,因此对计算性能要求较高.网上有对MD5算法并行 ...
- 演示get、post请求如何算sn,算得sn如何使用
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.UnsupportedEncoding ...
- python查找并删除相同文件-UNIQ File-wxPython-v6
相比第一版,新增:菜单,对话框,文件过滤器,操作结果保存,配置功能(自己写了一个读写配置文件的功能),提示语优化,模块分化更合理. 截图: 源代码: UniqFile-wxPython-v6.py: ...
- python查找并删除相同文件-UNIQ File-script版本
今天用wxPython做了一个GUI程序,实现查找指定目录内的相同文件,主要原理是计算文件的md5值(计算前先找出文件大小相同的文件,然后计算这些文件的md5值,而不是所有文件都计算,大大减少了md5 ...
- python查找并删除相同文件-UNIQ File-wxPython版本
今天用wxPython做了一个GUI程序,我称之为UNIQ File,实现查找指定目录内的相同文件,主要原理是计算文件的md5值(计算前先找出文件大小相同的文件,然后计算这些文件的md5值,而不是所有 ...
- configure.ac
# # Copyright (C) - Tobias Brunner # Copyright (C) - Andreas Steffen # Copyright (C) - Martin Willi ...
- 百度GPSutil
================================================= package com.qcar.benz.biz.common; import com.aliba ...
- 基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件
目录 1. 前言 2. 关于vue-simple-uploader 3. 基于vue-simple-uploader封装全局上传组件 4. 文件上传流程概览 5. 文件分片 6. MD5的计算过程 7 ...
- IEEE 802.1X标准
1.介绍 802.1X是一个IEEE标准,通过对用户进行基于端口的安全认证和对密钥的动态管理,从而实现保护用户用户的位置隐私和身份隐私以及有效保护通信过程中信息安全的目的. 在802.1X协议中,只有 ...
- vue-simple-uploader上传插件
基于vue-simple-uploader封装文件分片上传.秒传及断点续传的全局上传插件 https://www.cnblogs.com/xiahj/p/vue-simple-uploader.htm ...
随机推荐
- Jmeter之Redis读写
Jmeter之Redis读写 奔跑的小小鱼 关注 0.2 2019.03.21 18:25* 字数 1330 阅读 45评论 0喜欢 1 Jmeter插件访问Redis共有3种方式: 1)通过自已 ...
- 51nod1268 和为K的组合(DFS)
1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以 ...
- Linux学习笔记之Linux添加/删除用户和用户组
本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数. 1.建用户: adduser phpq //新建phpq用户 passwd phpq //给phpq用户设置密码 2.建工作组 g ...
- 加域电脑登陆系统后桌面文件丢失,登录系统提示用户名为“Temp”。
注册表中定位到“HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\ProfileList”, ...
- 细数Linux的文件权限
普通权限 普通权限使用ls -l查看,最前面显示的即是,如: # ls -l .txt -rw-r--r-- 1 root root 8338 7月 19 20:27 1.txt 权限介绍: -/d/ ...
- zentao安装升级
------------------------一键安装8.4.1版本-------------------------------------1.查看操作系统版本[root@kvm-180 soft ...
- python多态和规范
python规范(接口类) 接口类可以规范代码,但接口类本身是不实现的 class Payment: def pay(self,money): raise Notlmplemented class W ...
- loj 6008 餐巾计划 - 费用流
题目传送门 传送门 题目大意 (经典题还不知道题意?) 容易想到需要把未使用的餐巾和已经使用的餐巾分开. 设$X_i$表示第$i$天已经的使用餐巾的点,设$Y_i$表示第$i$天还未使用的餐巾的点 我 ...
- topcoder srm 610 div1
problem1 link 计算每个格子向上的最大高度.然后每个格子同一行前面的格子以及当前格子作为选取的矩形的最后一行,计算面积并更新答案. problem2 link 对于两个数据$(x_{1}, ...
- SonarQube安装文档
1.SonarQube 1.1 SonarQube介绍 SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube是否可以使用自定义规则由开发人员的开 ...