Chinaunix

标题: EAP-SIM协议研究 [打印本页]

作者: platinaluo    时间: 2011-12-22 08:53
标题: EAP-SIM协议研究
    由于工作中用到EAP-SIM,在看rfc4186的过程中,把点滴记录下来(长时间看协议,容易困)。
    虽然本文章是根据rfc4186而来,但不会完全翻译。如有需要,还是需要参考rfc4186
    http://www.ietf.org/rfc/rfc4186.txt
   
   【EYUALUO】另外参考:中移动WLAN与2G/3G网络融合统一认证流程规范(EAP-SIM AKA)
    http://wenku.baidu.com/view/ed64b5260722192e4536f670.html

    RFC4186是在EAP框架基础上,使用SIM进行认证和会话密钥分发。

    GSM认证使用挑战/响应机制。运行在SIM之上的A3/A8算法可以接受一个128bit的随机数(RAND),这作为一个挑战。SIM卡使用运营商提供的算法,以RAND和存储在SIM之上的Ki作为输入,计算出32bit长的相应(SRES)和64bit长密钥Kc作为输出。Kc用于产生密钥,对这个协议的安全性来说至关重要。
    EAP-SIM的安全特征在11节说明,强烈建议各位看一下第11节,是否满足自己的安全要求

总体介绍
    下图说明了EAP-SIM的认证过程,后台的AAA server在这里没有绘制。

    下面具体说明一下
    1. Authenticator发起EAP-Request/Identity认证请求

    2. 终端的响应应包含IMSI或者临时ID。响应为EAP_Response/Idntity报文
    
    3. Authenticator发送类型为SIM(18)的报文,这个报文包含一个子类型10(Start)。这个报文同时会包含一个属性AT_VERSION_LIST,标明支持的版本。(这是为了以后升级的方便)

    4. 终端响应报文EAP-Request/SIM/Start。报文包含两个属性,AT_NONCE_MT包含一个随机数MONCE_MT。AT_SELECTED_VERSION包含一个终端选择的版本。

    5. 服务器端可以根据GSM三元组产生密钥等。发送的报文包含一个属性AT_RAND,是上面的随机数,一个属性AT_MAC,是计算出来的认证码

    6. 终端同样计算认证码,然后比较两个认证码是否相同。发送报文包含属性AT_MAC,包含终端的SRES响应

    7. 服务器端比较MAC后,发送EAP-Success






欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2