zoukankan      html  css  js  c++  java
  • 对于AP中为什么有4个WEP KEY的分析


    这篇文章简要分析一下为什么有4个WEP KEY,及其中的一些原因。


    SPEC

    用过AP的都知道,AP中有4个WEP KEY,但是为什么要设置4个呢,这个是WEP帧的格式决定的:



    图中的keyid是2个比特,可以代表4个keyid,也就是对应AP中的4个keyid,若是AP和STA设置的不一样,就会连不上。


    抓个包来看下吧(用一块便宜的网卡):

    根据AP的设定:

    下面是所抓的包:

    这里可以对应起来了。



    AP

    有兴趣的话可以看下TPLINK写的文档:

    http://service.tp-link.com.cn/detail_article_12.html

    从图中可以看到AP中的四个栏位。



     这里为什么有16进制和ASCII码呢,


    WEP的密钥模式有 

    WEP64(KEY为40bit,即10位HEX或者5位ASCII) 例:12345ABABA 或者 Xpass
    WEP128 (KEY为104bit, 即26位HEX或者13位ASCII) 例:12300000000000000000000000 或者 apppppppppppp

    换算关系
    1位HEX = 4bit
    1位ASCII = 8bit


    总的来说有两种模式:

     Standard -    24 + 40 = 64 bit RC4 key
     Vendors -   24 + 104 = 128 bit RC4 key

    24bit是key的IV


    STA

    下面是win7下面的截图,说明选择key index是不可避免的:




    下面以linux为例,解析一下linux里面是怎么做的

    先给出wpa_supplicant 的配置文件:

    # Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
    # IEEE 802.11 authentication
    #network={
    #	ssid="static-wep-test2"
    #	key_mgmt=NONE
    #	wep_key0="abcde"
    #	wep_key1=0102030405
    #	wep_key2="1234567890123"
    #	wep_tx_keyidx=0
    #	priority=5
    #	auth_alg=SHARED
    #}
    
    

    这里的wep_tx_keyidx就是KeyID,然后里面有分别三个wep key。


    以mac80211的linux driver为例,若这里只填一个wep_key0的时候,上层调用的set_key接口会分别set 4个key

    分别是wep_key0,0,0,0  为什么有三个都是0呢,因为这里没有填其他3个,默认是空的key。当你四个都自己填好之后,set_key就会将

    4个key分别传递到driver,同时,也会将key的index告诉driver,让driver将key放到对应的硬件的四个栏位里面。


    这里有这样一个现象,当你的keyindex和密码填错时,有时候会一直尝试重连,有时候虽然连接成功了,但是dhcp包会一直TX不出去。


    当然了,这里不推荐使用WEP,但是厂商为了做兼容性也只能每次都将WEP的支持考虑进去。

  • 相关阅读:
    人工智能发展与模型定制化趋势
    Merry Christmas-集成华为HMS ML Kit手部关键点识别来接住圣诞老人的礼物吧!
    快速构建ML Kit自定义模型,实现特定领域图像/文本分类
    华为consumeOwnedPurchase消耗接口返回-1错误码
    超简单集成华为恶意URL检测,保障用户访问安全
    深入解析 C# 的 String.Create 方法
    .NET 内存泄漏的争议
    Centos相关介绍 (连接别人)
    阿里云 Nginx.conf文件配置详解
    阿里云使用Nginx部署vue项目
  • 原文地址:https://www.cnblogs.com/tanhangbo/p/4282599.html
Copyright © 2011-2022 走看看