? ? ? ?近期工作中遇到了有關(guān)SIP AKA認(rèn)證的相應(yīng)協(xié)議規(guī)范沟于,目前在IMS中已得到應(yīng)用支持渴丸,本文主要是希望探索一下AKA認(rèn)證的具體機(jī)制,以及相應(yīng)算法庆冕。為簡便起見,暫時(shí)先拋開IMS內(nèi)部架構(gòu)劈榨,從參數(shù)著手分析AKA認(rèn)證访递。
? ? ? ?AKA認(rèn)證主要還是基于DIGEST認(rèn)證方式,在此基礎(chǔ)上加入了對稱加密機(jī)制同辣。先簡單看一下AKA的流程圖與信令:
? ? 如圖所示拷姿,AKA認(rèn)證流程與DIGEST認(rèn)證流程一致惭载,參數(shù)MS新增了RAND和AUTN,加下來看一下具體的信令:
1) Initialrequest
REGISTER sip:home.mobile.biz SIP/2.0
2)Responsecontaining a challenge
SIP/2.0401Unauthorized
? WWW-Authenticate: Digest
realm="RoamingUsers@mobile.biz",
nonce="CjPk9mRqNuT25eRkajM09uTl9nM09uTl9nMz5OX25PZz==",
qop="auth,auth-int",
opaque="5ccc069c403ebaf9f0171e9517f40e41",
? ? ? ? ? ? ? algorithm=AKAv1-MD5
3)REGISTER sip:home.mobile.biz SIP/2.0
? Authorization: Digest
username="jon.dough@mobile.biz",
realm="RoamingUsers@mobile.biz",
nonce="CjPk9mRqNuT25eRkajM09uTl9nM09uTl9nMz5OX25PZz==",
uri="sip:home.mobile.biz",
qop=auth-int,
nc=00000001,
cnonce="0a4f113b",
response="6629fae49393a05397450978507c4ef1",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
4)SIP/2.0200OK
? Authentication-Info:
qop=auth-int,
rspauth="6629fae49393a05397450978507c4ef1",
cnonce="0a4f113b",
nc=00000001
? ? ? ?熟悉SIP DIGEST的會(huì)發(fā)現(xiàn)跌前,參數(shù)表面上看棕兼,除了algorithm指定為AKAv1-MD5之外,沒有什么區(qū)別抵乓,那RAND和AUTN參數(shù)跑哪兒去了呢伴挚?AKA認(rèn)證耍了個(gè)花招,盡量兼容DIGEST灾炭,他將RAND(128位)和AUTN(128位)參數(shù)進(jìn)行BASE64編碼后放置在了nonce參數(shù)中進(jìn)行傳遞茎芋,如下圖所示:
? ? ?RAND為服務(wù)器端生成的128位隨機(jī)值,AUTN的生成算法如下圖所示:
? ? ? AUTN的解析算法如下:
? ? ? 至于f1-f5算法通常采用Milenage算法蜈出,具體不在此贅述田弥,此處解析之后,終端將會(huì)得到RES參數(shù)铡原,然而此RES參數(shù)并非DIGEST認(rèn)證中Authorization頭域的response參數(shù)偷厦,而是使用RES作為DIGEST認(rèn)證時(shí)的密鑰,從而生成最終的response參數(shù)燕刻。
? ? ? ?至此只泼,AKA認(rèn)證流程基本完成,CK和IK參數(shù)是作為IPSec SA的加密密鑰以及完整性密鑰卵洗,有興趣的可以翻閱相應(yīng)的IMS文檔请唱。總的說來AKA認(rèn)證較DIGEST認(rèn)證更為安全可靠:
1. 實(shí)現(xiàn)了雙向認(rèn)證:服務(wù)器對UE的認(rèn)證是通過RES實(shí)現(xiàn)的:如果UE合法过蹂,它能夠正確地計(jì)算出RES十绑,且RES等于XRES;UE對服務(wù)器的認(rèn)證是通過MAC實(shí)現(xiàn)的:UE計(jì)算期望的消息認(rèn)證碼(XMAC)酷勺,如果MAC和XMAC一致本橙,則認(rèn)證成功;
2. 每次使用的MAC是由不斷遞增的SQN作為輸入變量之一脆诉,從而確保了密鑰的新鮮性勋功,有效地防止了重放攻擊;
3. 這種機(jī)制更利于將服務(wù)器分離成認(rèn)證服務(wù)器與鑒權(quán)服務(wù)器库说,認(rèn)證服務(wù)器收到請求后,請求鑒權(quán)服務(wù)器生成AUTN片择、RAND等健全信息從而進(jìn)行認(rèn)證潜的,而鑒權(quán)服務(wù)器也無需將密碼等信息透露給認(rèn)證服務(wù)器。