免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7702 | 回复: 3
打印 上一主题 下一主题

关于4次握手及握手之前PMK的生成的理解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 02:29 |只看该作者 |倒序浏览

关于成对密钥与组密钥的结构
  1.成对密钥
  PMK 是基本元素
  然后通过 supplicant MAC(SA), supplicant nouces(SN),authenticator MAC(AA),authenticator nouces(AN)
  进行扩展获得PTK (Pairwise Transient Key) 成对传输密码
  公式如下:
     PTK=SHA1_PRF(PMK,Len(PMK),"Pairwise key expansion",MIN(AA,SA)||MAX(AA,SA)||MIN(AN,SN)||MAX(AN,SN))

公式参考了:

http://blog.csdn.net/gueter/article/details/4812822


  PTK 有两种格式,TKIP,和CCMP,
    其中TKIP是动态WEP所用RC4+Michael完整性校验的组成
    CCMP是全新的组密码AES方式


 TKIP和CCMP的PTK被分成下面部分
   1.EAPOL KCK(key confirmation key)
        密钥确认密钥,用来计算密钥生成消息的完整性
   2.EAPOL KEK(key Encryption key)
        密钥加密密钥,用来加密密钥生成消息
   3.TKIP TK(CCMP TK)
        这部分是正真用来进行数据加密的
   4.TKIP MIC key
        用于Michael完整性校验的(只有TKIP有)

   2.组密钥
     GMK主组密钥(group master key)以作为临时密钥的基础
     和成对密钥一样扩展获得GTK (groupTransient Key)
     公式如下:
     GTK=PRF-X(GMK,"Group key expansion",AA||GN)
     GN - Authenticator生成的 Nonce
     AA - Authenticator MAC地址
     注意和成对密钥扩展不同的是没有supplicant的 AA,AN
 
 
 
 
   其中并没有密钥确认密钥,和密钥加密密钥,因为密钥交换是
     以成对EAPOL密钥,来分配密钥的

 
 更新成对密钥的4次握手
    在更新成对密钥前需要进行4次握手,成对密钥是用来加密单播帧的(就是AP与工作站之间的通讯帧),
  4次握手就是为了完成密钥的交换,成对密钥只有1个,通过交换让双方都知道
    
   
    在WPA-PSK中 PMK=PSK 由ssid,和密码等导出,公式如下:
    PMK=PSK= pdkdf2_SHA1(passphrase,SSID,SSID lenth,4096)
    所以第1次Autenticator 将自己的nonce 传给supplicant ,这时候
    supplicatn 就可以计算PTK了
 
    接下来supplicant 将自己的nonce和第1次和网络关联是所取得的
    安全参数传给Authenticator,
    这样Authenticator 获得了supplicant 的nonce ,就可以计算PTK了
    注意第2步的整个消息是用EAPOL 密钥确认密钥(KCK)来进行完整性校验
    值校验的,如果authenticator根据已经算出的PTK中的KCK对整个消息
    进行完整性校验未成功,握手就失败了
    这时消息还不能通过KEK加密,是因为还没有计算出PTK
 
    到了第3步双方的PTK都已经就绪,这时authenticator将一个消息传送
    给supplicant,次消息包含成对密钥的序列号,(可能是生成TK的次数?)
    并且包含GTK(组临时密钥),注意这时authenticator已经可以生成GTK了
    GTK 通过EAPOL KEK加密,然后整个消息通过KCK来认证
 
    第4步supplicant 再次确认,并告诉authenticator已经接收到密钥生成消息,
    可以开始使用TK了,次消息通过KCK认证(因为是ACK,不需要再用KEK加密了)

   更新组密钥握手:
       1.Authenticator送出GTK,这个GTK是利用前面成对密钥4次握手的成果PTK中
         的EPAOL KEK 来加密,EAPOL KCK 来验证
       2. supplicant 送出ACK消息,此消息通过KCK 验证
 
 

PTK的生成元素中的PMK获得
  1. WPA-PSK
     PMK=PSK= pdkdf2_SHA1(passphrase,SSID,SSID lenth,4096)
     其中passphrase,SSID ,是身份验证前authenticator,和supplicant
     都应该知道的

 2. 802.1X+EAP中
    PMK =L(MSK, 0, 256)
    MSK 需要通过802.1X交换获得
   
    其中EAP-Request/Method 中Method 表示EAP认证的方式,如下:
            4 - MD5 Challenge      EAP 中类似CHAP的认证方式
             6 - GTC                原本打算与RSA SecurID之类的token card 一起使用
            13 - EAP-TLS            以数字证书相互认证
            21 - TTLS               隧道式TLS;以TLS加密保护较弱的身份验证方式
            25 - PEAP               防护型EAP;以TLS加密保护较弱的EAP验证方式
            18 - EAP-SIM            SIM卡方式进行身份验证
            29 - MS-CHAP-V2
    Method 之后如果认证成功,authenticator会发出EAP-Success表示授权使用连接端口
    再接下来AP就可以立即使用EAPOL-Key消息将MSK发给supplicant,以后就和WPA-PSK
    一样用MSK最终导出PTK(MSK,PMK就是PTK的密钥生成密钥)

其中EAPOL(EAP over lan)的帧格式如下

-------------------------------------------------------------------------------
| 802.11 header | SNAP header | Ethernet Type (88-8E) |  Version |Packet Type |
-------------------------------------------------------------------------------
        EAPOL 是EAP 的扩展,除了P156相关EAP信息,EAPOL还加入了一些额外的消息
        让EAP 能够适用于基于连接端口的LAN环境

        EAPOL 消息的类型:
        EAP-Packet   包含了1个经过封装的 EAP帧

 
        EAPOL-Start  申请者可以主动送出EAPOL-Start帧,不必等候来自认证者的质询
                     信息,认证者会送出1个 EAP-Request/Identity帧作为响应
        EAPOL-Logoff 当某个系统不再需要使用网络时,便可以发出1个EAPOL-Logoff帧
                     让连接端口回到未授权状态
        EAPOL-Key    EAPOL 可以用来交换加密密钥信息 (0000 0011)
        EAPOL-Encap-sulated-ASF-Alert

 

 

 

 

 

 


 

论坛徽章:
0
2 [报告]
发表于 2012-03-14 10:52 |只看该作者
大致过程清楚,但是还是不能理解为何就可以加密?

如果所有的加密过程,完全取决于PMK的获得,但是PMK的获得,又是取决于鉴权的通过。也就是说,只要鉴权通过,就一定可以加密通信,那么加密又有什么意义呢?

论坛徽章:
0
3 [报告]
发表于 2012-03-14 11:02 |只看该作者
对于AAA,就是说的认证鉴权和计费。

所以,我不能理解为什么还要加密。因为一旦一个attacker能够获取口令和密码,就是否可以公开获取PMK,到最后获取PTK和GTK?能够和正常用户一样通信?

这样,加密又有什么意义呢?

即使公开获取了码流,解密过程也比想办法盗取账号复杂得多。

论坛徽章:
0
4 [报告]
发表于 2012-05-31 13:17 |只看该作者
回复 1# liu090


    了解一下,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP