Chinaunix首页 | 论坛 | 博客
  • 博客访问: 806838
  • 博文数量: 142
  • 博客积分: 3505
  • 博客等级: 中校
  • 技术积分: 1501
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-30 19:30
文章分类

全部博文(142)

文章存档

2012年(33)

2011年(109)

分类: 网络与安全

2011-08-20 11:43:06

    由于工作中用到EAP-SIM,在看rfc4186的过程中,把点滴记录下来(长时间看协议,容易困)。
    虽然本文章是根据rfc4186而来,但不会完全翻译。如有需要,还是需要参考rfc4186
   
   
   【EYUALUO】另外参考:中移动WLAN与2G/3G网络融合统一认证流程规范(EAP-SIM AKA)
    

    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

阅读(6156) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~