怎么设置wifi不被蹭网,万能钥匙也打不开,无线网如何防止万能钥匙蹭网
首先,WiFi Protected Access有两个认证标准,WPA WPA2,这是一个保护无线电脑的网络安全系统。
使用:路由器TP_link(AP)访问站计算机。
您必须首先将路由器配置为使用WPA/WPA2-PSK身份验证类型。
加密算法AES的设置
设置密码短语
目前网上的一些解释和书籍比较苦涩难懂,或者有错误。下面总结一下我的理解。
大致分为两个过程。一个是与AP-Station相关的,另一个是认证过程。
相关处理AP发送信标广播分组并指示其SSID。
接下来,AP和客户端关联并发送四个认证管理帧。
1)客户端收到Becon数据包后,发送认证请求。
2) AP响应认证请求
)3)客户端发送相关请求包。
(4) AP响应相关请求
现在,客户端和AP已经关联了。接下来,握手四次,建立联系。
这里用的是EAPOL。
基于EAPOL协议的消息下图显示了数据包的字段。
下图显示了《Kali Linux 无线网络渗透详解》-wjdxb到
解释每个字段的含义。
其中,四次握手中的关键字段包括:
MIC(Message Integrity Code)
:消息完整性代码检查数据是否被篡改,MIC Key等字段的PSK是否计算正确。
Replay Counter
:前两个握手请求和响应对是1,后两个是2。由3358www.Sina.com/:站产生的随机数
WPA Key Nonce
AP产生随机数SNonce
。重要密钥http://www . Sina . com/(pairwisesharedkey):预共享密钥是用于验证L2TP/IPSec连接的Unicode字符串。使用前,请使用安全通道在双方之间共享。预分配的密钥仅用于身份验证过程,不用于数据加密过程。
3558 www . Sina . com/(pairwise master key):成对主密钥是申请人和认证者之间所有密钥数据的最终来源。PMK可以直接从预共享密钥(PSK)或主会话密钥(MSK)中导出。如果PMK导出MSK,PMK计算将使用函数l(PSK,0,256),这是MSK的前256位。
它可以从验证过程中的EAP方法获得,也可以直接由PSK提供。认证者用来生成组临时密钥(GTK)的密钥通常是由认证者生成的随机数集。
在WPA-PSK中,PMK=PSK是整个WPA认证过程中非常重要的密钥。
3558 www . Sina . com/(pairwisetransientkey):加密和完整性协议中使用的密钥,传递动态密钥所需的密钥和最终用于加密单播数据流的加密密钥。
如果WPA采用TKIP加密,PTK就是512位=64字节=128个十六进制字符串(比较常见)
如果WPA由CCMP加密,PTK就是384位。
下图显示了PTK的配置。
通过TKIP议定书
这三个领域也很重要。
3358 www . Sina . com/(KeyConfirmionKey):128用于计算bitswpaeapol密钥消息的MIC本质上是MIC_KEY
3558 www . Sina . com/(keyencryptionkey):128位用于加密发送给客户端的其他数据(WPA Key数据字段))。
358 www.sina.com/(临时密钥):256位用于加密后续通信数据。
通过CCMP议定书(此处不详述))
3558 www . Sina . com/(group master key):组主密钥
3558 www . Sina . com/(group temporalkey):组临时密钥由组主密钥(GMK)通过哈希运算生成,用于加密广播和组播数据流。
**
验证前的初始化任务PSK/PMK使用Wi-Fi的
ANonce
和PSK
。Wi-Fi密码)和基于口令的关键字推导功能2 (pbkdf2))。
PSK=PMK=PBKdf2(密码,SSID,SSID长度,4096)).
python中的计算需要导入
从pbk df 2导入pbk df 2的计算步骤如下
需要(demand的缩写)
Fcalculate _ WPA _ PMK (PSK,SSID): PMK=PBKDF2 (PSK,SSID,4096)。阅读(32)返回PMK认证过程-四次握手
目的
1)验证Wi-Fi密码
2)用于后续通信的加密密码的计算。
流程
第一次握手 AP -- 客户端 Station
AP立刻广播它自己的数据包和随机数。
————————————————————————————————
第二次握手 客户端Station -- AP
客户端(工作站)在收到AP的第一个握手数据包后立即获得SSID AP_MAC(AA)。
使用以下方法开始计算自己的PTK:
1)立即生成您自己的随机数
2)使用PRF512算法
PTK=SHA1_PRF(PMK,伦(PMK),”成对密钥扩展",Min(AA,SA) Max(AA,SA) Min(ANonce,SNonce) Max(ANonce,SNonce))
3)计算最低抑菌浓度
从PTK中提取前16个字节组成一个麦克风键(32个16进制位)即PTK中的北京新兴超越离合器
使用第一次握手包中的整个802.1X报文体(
需要将WPA Key MIC 字段部分替换成0
) 和麦克风键以及HMAC_MD5算法计算最低抑菌浓度值使用求讯息摘要5哈希值的方法:
MIC=HMAC_MD5(MIC_KEY,16,802.1X数据)
最后客户端发送的握手包中包含以下关键值
产生的随机数嗅觉上的——335353435
第三次握手 AP -- 客户端 Station
美国联合通讯社(美联社)接收到客户端的第二次握手包之后
得到客户端的STATION _ MAC(SA)sn once MIC 802.11 x数据
(1)用以前得到的PMK(初始设置),ANonce按照同样的算法产生PTK
(2)按照上述同样的方法产生最低抑菌浓度值
最后发送的握手包中包含以下关键值:
加密后的主题加密的密钥为KEK
麦克风(消息完整性校验码)
第一次产生的随机数匿名给客户端(车站)
————————————————————————————————
第四次握手 客户端Station -- AP
客户端接收到第三次握手包包含麦克风匿名
如果自己的最低抑菌浓度等于美国联合通讯社(美联社)发送过来的麦克风,则第四次握手成功否则失败
会将计算出来的TK(PTK的最后一段)安装到系统,作为后续的通信加密密钥
最后一次握手向美国联合通讯社(美联社)发送确认信息,表示密钥已经安装完毕,
————————————————————————————————
美国联合通讯社(美联社)收到该通信包之后,会进行密钥安装。
至此,双方的密钥安装全部结束,后续通信中按照前面步骤中的密钥进行通信。
测试代码
计算PTK
def customPRF512(key,A,B):blen=64 I=0 R= while I=((blen * 8 159)/160):msg=A chr(0x 00)str(B)chr(I)hmac sha 1=hmac。new(key,bytes(msg,encoding=utf-8 ),hashlib。sha1)I=1 R=R str(hmacsha 1。digest())返回字节(R[:blen),编码=utf-8)#
# return MIC in hex string def calculate _ WPA _ MIC(ptk,payload):MCI _ Key=ptk[:16]payload _ bytes=bytes(payload,encoding= utf-8 )MIC=hmac。new(MCI _ Key,payload _ bytes,hashlib.sha1).hexdigest()[:32] return MIC常见错误类型错误:Unicode-objects必须在hashingTypeError之前编码:只能将str(不是"字节")连接到潜艇用热中子反应堆(submarine thermal reactor的缩写)在《Understanding WPA/WPA2 Hash (MIC) Cracking Process In Python》 中给出了计算PTK的方法
def customPRF512(key,A,B):blen=64 I=0 R= while I=((blen * 8 159)/160):hmac sha 1=hmac。new(key,A chr(0x00) B chr(i),hashlib。sha1)I=1 R=R hmacsha 1。digest()返回R[:blen]然而python3版本以上会出现以上两个问题
计算 MIC 值
第一个:A chr(0x00) B chr(i)是字符串潜艇用热中子反应堆(海底热反应堆的缩写)需要转换成字节字节
第二个:hmacsha1.digest()得到的是字节需要转换成潜艇用热中子反应堆(海底热反应堆的缩写)才能进行字符串的拼接
原因
计算机编程语言中字符串与字节之间相互转换
字符串转字节字节字符串
"你好,世界!"# str objectstr.encode(b)字节(b,编码=utf8 )字节转字符串字符串字节
你好,世界!bytes.decode(a)str(a,encoding=utf-8)a.decode()同时附上字节和十六进制字符串之间的相互转换的方法
data _ bytes=b x820 XB 100 x03 xc3 xb4 strr= 8230 b 1303003 c3b 4 tmp=data _ bytes。hex()num=字节。来自十六进制(strr)引用引用一引用2引用3引用四