楊霄彩
廣州大學華軟軟件學院 廣東 510990
隨著無線網絡技術的發展,電子商務的移動模式被爭相引入各行業,Web服務在新的平臺上獲得一個更廣闊的發展空間;另一方面,與傳統網絡不同,無線鏈路的開放性以及客戶端設備計算能力弱、低存儲、帶寬窄等特點制約了Web服務的廣泛應用和創新,因此,極大的商務應用潛力對無線網絡中Web服務的安全與效率提出了更高的要求。
Web服務的安全問題主要在于確定用戶的身份以及確保數據的機密性和完整性。目前,SSL(Secure Socket Layer)和TLS(Transport Layer Security)被用來提供傳輸層的Web服務安全;網絡層的IPSec對于Web服務安全來說,也是一個很重要的標準;因為無法信任中間節點對消息的獲得和處理,IBM和Microsoft等公司在Web服務安全白皮書里給出了一整套安全規范,其中,基于應用層的 WS-Security(Web服務安全)網絡傳輸協議是這些規范的核心,其基本原理是將所有安全信息保存在消息的SOAP部分中,嵌入身份驗證、消息加密及消息數字簽名等安全機制,為Web服務安全性提供了端到端的解決方案。
而要高效地實現Web服務的安全機制,最重要的就是讓服務請求方和服務提供方能夠共享會話密鑰(對稱密鑰)。在無線網絡的安全機制中,密鑰的安全性是所有安全的基礎。因此,兩個或多個實體協商建立會話密鑰成為無線網絡安全研究的熱點。
最初,Bellovin和Merritt首先提出能抵抗字典攻擊的基于口令密鑰協商協議;Bellare等提出了基于口令密鑰協商的一種理論模型;Katz等提出標準模型下可證安全的基于口令認證密鑰協商協議。
近幾年,研究者從不同角度提出各類基于口令的密鑰協商改進方案。在文獻[8]等的基礎上,張學英與楊晉吉在文獻[10]中提出了一種無線環境下的Web服務身份認證密鑰協商協議(以下簡稱Z-Y協議),并證明了協議具有口令私密性、通信雙方認證性和私鑰的秘密性。本文將證明此協議雖提高了效率但因無法抵御中間人攻擊和重放攻擊而存在嚴重的安全問題,并指出導致這種安全缺陷的原因。本文在此協議基礎上,仍以Web服務中預存口令為前提提出一種改進的密鑰協商協議方案,并證明此方案與原協議具有相同的效率以及更高的安全性。
Z-Y協議由用戶和服務器兩個實體經過三輪會話組成,即會話實體用戶(A)和服務器(B)之間傳遞三次信息流:
① 第1個信息流:A→B。A輸入自己的口令p,通過單向函數h(),將用戶的標識IA和口令p進行哈希計算從而得到π,即π=h(p,IA)。同時A選擇一個隨機數,計算m=gx,然后將π和m這兩個值發送給B。
② 第2個信息流:B→A。服務器端首先從數據庫中查找用戶注冊時的口令 p~,并計算 π~=h(p~,IA),判斷 π~是否與所接收到的π相等,若相等,則計算:
B 先選擇一個隨機數 y,計算 μ=gy,σ=(m)y,K1=H1(IA, IB,m, μ, σ, π),將 K1和 μ 發送給 A。
若不相等,B則放棄此次會話。
③ 第3個信息流:A→B。用戶A利用所接收到的μ,計算 σ=(μ)x,計算 H1(IA, IB, m, μ, σ, π),并判斷其值與所接收到的K1是否相等,若相等,則表明A認證了B,說明B是合法的服務端,從而 A 開始計算 K2=H2(IA, IB, m, μ, σ, π),并將K2發送給B。
若不相等,A則放棄此次會話。
④ B 利用 H2函數進行計算 H2(IA, IB, m, μ, σ, π),判斷其值與所接收到的K2是否相等,若不相等,則放棄此次會話;若相等,則表示B對A進行了驗證,說明A是合法的用戶。
⑤ 最后,A 和 B 都計算 K= H3(IA, IB, m, μ, σ, π),協商得出此次會話的密鑰,從而進行之后的信息通信或商業事務處理。
Z-Y證明其密鑰協商協議具有口令的私密性、通信雙方的認證性和會話密鑰的私密性等安全屬性,并沒有提出其協議可以抵抗中間人攻擊和重放攻擊。
中間人攻擊(Man-in-the-middle, MITM)需要達成以下條件:攻擊程式負責在兩受害者中間“轉送”流量,并可以控制整個流量。本章以攻擊者已成功控制一臺虛擬放置于網絡連接中兩臺通信計算機之間的計算機為前提,證明Z-Y協議存在安全缺陷,使攻擊者通過“會話劫持”可掌握兩受害實體進行通信的會話密鑰,從而獲得雙方所有通信內容。
一般性地,將實施中間人攻擊者設為M。A、B的協商過程受到M攻擊的情況描述如下:
① 第1個信息流:A→B。A將π和m這兩個值發送給B被M截獲,M用自己的隨機數x'替換x,重新計算m'=gx',將A的π和修改后的m'發送給B。
② 第2個信息流:B→A。B判斷π~與所接收到的π相等,分別計算 μ=gy,σ=(m')y,K1=H1(IA, IB, m', μ, σ, π),將K1和μ發送給A被M截獲,M用自己的隨機數y'替換y,重新計算μ'=gy';并用m計算σ'=(m)y';因為IA、IB為實體標識因此 M 可輕易獲得,從而可計算 K'1=H1(IA, IB, m, μ', σ', π),然后將μ'與K'1發送給A。
③ 第3個信息流:A→B。用戶A通過判斷σ'、K'1認證了 B,再計算 K2=H2(IA, IB, m, μ', σ', π),將 K2發送給 B 時被M 截獲,M 用 x'重新計算 σ=(μ)x',K'2=H2(IA, IB, m', μ, σ, π),將K'2發送給B。
④ B判斷K'2通過,接受A是合法用戶。
⑤ 最后,M與A達成共同會話密鑰KAM= H3(IA, IB, m, μ',σ', π),M 與 B 達成共同會話密鑰 KBM= H3(IA, IB, m', μ, σ, π),從而作為中間人可獲得A與B之間所有用會話密鑰加密的內容,而A與B無法得知。
攻擊過程可由圖1清楚看出。

圖1 在Z-Y協議下實施中間人攻擊
從上述分析可以得出,采用Z-Y協議產生會話密鑰無法抵抗中間人的惡意攻擊,協議存在一定的安全缺陷。主要原因是協議過程傳輸的用戶A口令與密鑰生成選取參數形式一致,攻擊者獲得明文后,無需破解直接使用,導致最終生成的會話密鑰被攻擊者掌握。
Z-Y協議是基于挑戰/應答方式的協議。當攻擊者以用戶身份用監聽獲得的一次參數π連同用自己隨機數x'計算的m'發起新一輪協商欺騙服務方時,服務器端以新的μ應答,而后攻擊者獲得最后驗證所需的所有參數(IA, IB, m', μ, σ, π),其中σ=(μ)x'。因此,服務器端無法發覺是重放攻擊,接受攻擊者為合法用戶。導致這一安全缺陷的主要原因是Z-Y協議密鑰協商全過程沒有鑒別重放攻擊的機制。
① 第1個信息流:A→B。
A選擇隨機數x,計算:
m=gx
π=h(p,m,IA)
將m和π發送給B。
② 第2個信息流:B→A。
B根據用戶標識從數據庫中查找用戶注冊時的口令p~,計算:
π~=h(p~,m,IA)
判斷π~是否與所接收到的π相等,若不相等,B則放棄此次會話;若相等,則選擇一個隨機數y,計算:
μ=gy
σ=(m)y
K1=H1(IA, IB, m, μ, σ, p)
將μ和K1發送給A。
③ 第3個信息流:A→B。
A計算:
σ=(μ)x
K1~=H1(IA, IB, m, μ, σ, p)
判斷K1~與所接收到的K1是否相等,若不相等,A則放棄此次會話;若相等,則表明A認證了B,說明B是合法的服務端,從而A計算:
K2=H2(IA, IB, m, μ, σ, p)
將K2發送給B。
④ B計算:
K2~=H2(IA, IB, m, μ, σ, p),判斷其值與所接收到的 K2是否相等,若不相等,則放棄此次會話;若相等,則表示B對A進行了驗證,說明A是合法的用戶。
⑤ 最后,A和B均計算K= H3(IA, IB, m, μ, σ, p),作為此次會話的密鑰。
改進方案在具有與Z-Y協議相同安全屬性的同時,可以有效抵抗中間人攻擊和重放攻擊。
① 第1個信息流:A→B。A將m和π發送給B被M截獲,M 用自己的隨機數 x'替換 x,重新計算 m'=gx',但因為M無法得知A的口令p,所以不能重構π,為了避免暴露自己,將沒有修改的m和π發送給B。
② 第2個信息流:B→A。M獲得B發出的μ和K1,可以偽造μ和σ,但因p未知無法構造K1。
③ 第3個信息流:A→B。M因參數σ和p均未知無法構造K2,A認證B為合法服務端。
④ B驗證A是合法的用戶。
⑤ 最后,A和B都計算K建立共同的會話密鑰,M因無法獲得生成密鑰所需的全部參數而無法獲得A和B的會話密鑰。
攻擊者監聽獲得一次參數(m,π),因m與π綁定,因此無法修改直接發送給服務器,服務器計算μ、σ和K1,并將(μ,K1)發給攻擊者,在指數運算足夠安全的前提下,攻擊者不能破譯m獲得x也就無法計算σ,不能生成正確的K2供服務器端驗證,重放攻擊不成功。
改進方案與Z-Y協議同樣采用3次會話,用戶A和服務器B分別進行2次指數運算,為進行驗證和生成密鑰各進行4次哈希計算,沒有采用運算代價較大的ECC等加密解密運算。
Web服務作為一種炙手可熱的技術,在無線網絡環境中的應用前景可觀。本文借鑒前人對密鑰協商協議的研究,指出Z-Y所提出的無線環境下Web服務身份認證密鑰協商協議的安全缺陷,提出了一種改進方案,并證明改進方案不僅具有原協議較高的效率和基本安全屬性,而且能夠有效地抵抗中間人攻擊和重放攻擊,彌補了原協議安全性能的不足。
[1] CHAN H W, IGOR D V, PERR I A, et a1. On the distribution and revocation of cryptographic keys in sensor networks [J].IEEE Transactions on Dependable and Secure Computing.2005.
[2] Bellovin S and Merritt M. Encrypted key exchange: passwordbased protocol secure against dictionary attacks[C].Proceedings of the 1992 Conference IEEE computer society symp.on Research in security and privacy, Oakland.USA.1992.
[3] Bellare M, Pointcheval D, and Rogaway P. Authenticated key exchange secure against dictionary attacks[C]. Proceedings of EUROCRYPT 2000, Bruges, Belgium.LNCS 1807.
[4] Katz J,Ostrovsky R,and Yung M. Efficient passwordauthentication key exchange using humanmemorable passwords[C].Proceedings of EUROCRYPT 2001, Innsbruck, Austria.LNCS 2005.
[5] 李莉,薛銳,張煥國等.基于口令認證的密鑰交換協議的安全性分析[J].電子學報.2005.
[6] 殷胤,李寶.標準模型下可證安全的加密密鑰協商協議[J].軟件學報.2007.
[7] Feng Deng guo and Chen Wei dong. Modular approach to the design and analysis of password-based security protocols[J].Science in China Series F.2007.
[8] 師鳴若,姜中華.一種無線認證密鑰協商協議[J].計算機工程.2009.
[9] 王鶯潔,羅為,徐曉飛.基于身份認證的無線安全密鑰交換[J].通信技術.2009.
[10] 張學英,楊晉吉.無線環境下的 Web服務身份認證密鑰協商協議[J].計算機應用.2011.