您的位置:首页 > 其它

EAP和EAP AKA算法

2016-06-27 14:15 429 查看
AKA Authentication and Key Agreement

CK cipher key

IK integrity key

RAND random number

AUTN authentication token

AMF authentication management field

RES response

XRES expected response


1 EAP



code : 1 Request; 2 Response; 3 Success; 4 Failure

identifier: 用来匹配请求与响应

1) EAP只支持一个未确认的消息。

2) EAP不提供顺序的保证。EAP假设乱序由底层协议排除。

3) EAP 不支持分片和重组。EAP authentication methods提供了分段和重组的能力,比如EAP-TLS.

4) EAP支持消息重传,因为EAP假设底层是不可靠的。但是EAP Success and Failure是不会重传的。responce是不会被重传的,因为request可以重传。

5) 在一次EAP会话中,只能支持一种认证算法。针对一个EAP会话,AAA必须返回一个SUCCESS或者FAILURE.

EAP支持的算法包括EAP-TLS/EAP-MD5/EAP-SIM/EAP-AKA/EAP-PSK/EAP-MSCHAPv2,等。


2 EAP AKA

EAP-SIM用于GSM网络,只支持单向认证,即支持网络认证UE,但是不支持UE认证网络。EAP-AKA是EAP-SIM的升级版本,用于3G网络中的用户认证,支持双向认证。注意,EAP-SIM和EAP-AKA都可以运行在SIM卡上。



图1 EAP AKA认证成功

首先需要在UE和AAA端进行配置相同的shared key.

1) AAA向UE请求用户USER ID

2) AAA根据USER ID/shared key/sequence,产生一个五元组。计算完成后,把RAND/AUTN/MAC发送给UE,IK用于认证成功后进行完整性建议,CK用于认证成功后进行加密。计算过程见下图,图中的K表示shared secret。

AMF(authentication management field)字段用于扩张一些额外的功能,比如限制CK和IK的有效期。



图 计算5元组的过程

3) UE收到challenge后,从AUTN抽取SQN,然后计算MAC,判断MAC是否等于XMAC,若不相等,则UE认证网络失败,发送user authentication reject。若MAC于XMAC匹配,判断SEQ是否合法,若不合法,则发送AUTS进行sequence同步,AUTS参见TS 33.102。

AAA为每个UE维护了一个seq,由于UE和AAA之间同步seq可能失败,所以UE必须允许seq有一定程度的乱序。UE在实现中,允许seq乱序的最大限度是32。例如, UE当前所知道的seq值是1,UE收到AKA-challenge中seq是33,则认为是这个seq是合法的,如果UE收到的seq是34,则认为是非法的,需要触发seq同步。

计算出的IK和CK分别用于认证成功后进行完整性校验和加密,并且IK/CK应该与AAA计算所得到的一致。



4) AAA验证MAC,然后比较XRES和收到的RES,如果一致,则认证成功。向UE发送EAP-SUCCESS。
定制函数

为了生成个性化的函数(f1~f5),引入了参数OP(运营商密匙),OP由运营商直接烧到SIM卡中。每个SIM卡的OP是不一样的,所以每个用户的函数f1~f5也是不一样的,进一步的加强了安全性。
参数的长度

shared secret 128bit,RAND 128bit ,SQN 128bit,AK 128bit,AMF 16 bit,MAC 64bit,CK 128 bit,IK 128bit,RES 32bit--128 bit。


3 diameter-eap数据包解析

1 SGSN到AAA



2 AAA到SGSN



3 SGSN到AAA



4 AAA到SGSN

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: