王 嫣,劉 穎,李 健
(1.中州大學 信息工程學院,鄭州450044;2.信息工程大學電子技術學院,鄭州450004)
移動數據庫是能夠支持移動式計算環境的數據庫,它是分布式數據庫的擴展和延伸。[1]與傳統計算環境相比,移動計算環境具有頻繁的斷接性、網絡條件多樣性、系統規模龐大、系統可靠性差、系統資源有限以及網絡通信的非對稱性等特點。[2]與之相應,一般要求移動數據庫具有內核微小化、便于移植、支持斷接操作等多種特點,并對其數據一致性處理、事務處理以及安全性提出了更高的要求。
隨著移動數據庫的發展,其安全問題成為人們關注的焦點。國內外學者開展了廣泛而深入的研究。曾文英等[3]指出移動數據庫應該采用移動主機身份認證,以防止非法主機接入,采用無線鏈路數據加密,以防止攻擊者竊聽。郭旭展等[4]指出應該使用對稱加密算法和非對稱加密算法相結合的策略以及嚴格的審計和訪問控制來提高移動數據庫系統的安全性。駱成樑[5]提出了一種三重加密驗證方法用于驗證用戶的身份并對通信信息進行加密保護。但是這些論文中并沒有對這些機制進行具體的研究。孟小峰等[6]指出移動數據庫容易遭受位置隱私攻擊并給出了抵抗這類攻擊的幾種典型方法。針對位置隱私攻擊,Mokbel[7]和潘曉等[8]分別分析了位置隱私的攻擊原理并概括了現有的位置隱私保護方法。Michael[9],Bugra Gedik 等[10]和 A.J.Solon等[11]分別給出了位置隱私攻擊的實例。由此可見確保移動數據庫系統能夠抵抗位置隱私攻擊對于移動數據庫的安全具有重要意義。
移動數據庫終端認證包括終端用戶的身份認證和終端設備的身份認證,它是移動數據庫系統安全的前提和關鍵點。對于移動環境的身份認證,除滿足普通環境的安全需求外,還要求認證協議的計算和存儲開銷盡量小。針對移動商務計算環境,王洪瑩[12]提出了一種動態身份認證方案,實現了客戶機與服務器的雙向認證,但是該方案難以抵抗中間人攻擊。馮楠等[13]提出一種基于哈希鏈的身份認證方案,但是該方案的認證過程較為復雜。譚利平[14]等提出了一種基于公鑰加密的動態口令身份認證方案,該方案能夠抵抗重放攻擊、中間人攻擊并能實現雙向認證,但是該方案認證消息的傳輸次數較多,認證效率較低。
為了有效地解決移動數據庫終端認證的安全問題和效率問題,本文首先依據移動數據庫的典型結構建立了三級身份認證模型,然后依據該模型,設計了一種移動數據庫終端身份認證方案,并對方案的性能和安全性進行了分析比較。
依據移動數據庫典型系統結構以及對移動數據庫身份認證的功能需求的分析,設計了移動數據庫三級認證模型,如圖1所示。
模型中認證實體包括認證客戶端(Authentica-tion Client,簡稱AC)、認證支持節點(Authentication Support Station,簡稱ASS)和認證服務器(Authentication Server,簡稱AS)三部分。其中AC是運行在移動客戶端上的認證程序,它是認證協議的發起方。ASS是運行在移動支持節點上的認證程序,ASS維護著一個用戶和移動設備身份的副本,它可以直接或通過AS完成對AC的認證。AS是運行在認證服務器上的程序,每個移動數據庫系統有一個認證服務器,該服務器存儲著全部注冊用戶和設備的身份信息以及ASS的身份信息。AS可以對ASS的身份進行認證并能夠接受ASS對移動用戶和設備身份信息的查詢和更新。

圖1 移動數據庫三級身份認證模型
在用戶使用移動客戶機訪問數據庫之前,用戶需要輸入其身份信息,AC利用用戶身份信息和本地設備的身份信息向ASS發起認證。ASS接收到認證信息后,首先查找本地數據庫,如果存在請求認證的用戶和設備的身份信息,則直接進行認證,否則向AS發起認證服務請求。AS提供認證服務之前,首先要對ASS進行認證,以確定ASS身份合法。一旦ASS對AC認證完成后,則ASS在本地數據庫中保存當前用戶和設備身份的備份,以備下一次認證。認證過程完成后,AC、ASS和AS依據具體的協議可以對當前用戶和設備的身份信息進行同步更新。
移動數據庫終端注冊包括終端用戶注冊和終端設備注冊。
用戶注冊要求在安全環境下進行,首先由用戶設定用戶名IDu及口令p,然后AS按如下步驟完成用戶注冊:
(1)隨機選取注冊因子;
(2) 計算 x=H(s,IDu,p);
(3)計算V=x·G,該計算為橢圓曲線上的點乘運算;
(4)AS判斷V是否為無窮遠點,如果不是則注冊完成,否則返回(1)。
注冊成功后,用戶記住其用戶名IDu及口令p,AS丟棄用戶私鑰x,為用戶保存其注冊信息(IDu,s,V)。
終端設備注冊要求在安全環境下進行,其注冊過程如下:
(1)設備選定其私鑰e;
(2)設備計算d=e·G并發送給AS;
(3)AS檢查d是否被占用,如果被占用則返回(1),否則繼續執行;
(4)AS為設備分配設備名IDc和初始位置隱私保護因子k。
注冊完成后,設備中存儲其身份參數(IDc,e,k),AS 中存儲設備認證信息(IDc,d,k,H(IDc,k))。
本文在進行身份認證協議設計時參考了SRP-6(Security Remote Password,安全遠程口令)協議。[15]該協議是目前主流商用數據庫最常用的一種身份認證方法。SRP-6協議的一個顯著特點是客戶機和服務器在進行身份認證的過程中不用在網絡上傳輸用戶口令的明文或密文,從而能夠有效地保護用戶口令的機密性。觀察SRP-6協議可以發現,如果直接移植SRP-6協議會存在以下幾方面的問題。
首先,SRP-6協議的交互次數較多。由于無線信道具有開放性和弱連接性,通信過程容易受到攻擊和干擾,這就要求身份認證協議應該具有較少的交互次數。分析SRP-6協議的執行過程可以發現,其第(1)步和第(3)步沒有依存關系,第(2)步和第(4)步也沒有依存關系,可以將這兩步合并從而減少其交互步驟。
其次,在SRP-6協議中,用戶名固定且明傳,這種方式極易遭到位置隱私攻擊,即攻擊者可以通過監聽用戶的多次認證過程來推測用戶的位置及位置變化。一種有效的解決方法是使用假名方案,終端在每次認證時都只發送用戶的假名給ASS。保證各次使用假名的弱聯系性以及ASS能夠對假名進行正確識別是設計該方案的關鍵。
最后,無法進行設備認證。SRP-6協議是專門為用戶認證所設計的,它保證了用戶只使用用戶名和口令的方式就能完成認證過程。該協議中用戶負擔的減小是以安全強度的降低為代價的,因此不能將這種方式直接移植到設備認證中去。終端設備具有一定的存儲空間和計算能力,因此可以支持更加復雜但安全的認證協議。
通過上述分析,本文以SRP-6協議為基礎,設計如下身份認證協議,以滿足移動數據庫系統對身份認證的功能需求和安全需求。協議執行分四個步驟,如圖2所示。

User+AC ASs(1) IDP=H(IDc,k)D=Ee(IDc‖IDu‖k)A=a·G■■■■) 驗證 IDc,檢查 IDu對應的s和V IDp,D,A→(2) s=Ee(t)⊕k t,←■B t=Ed(s⊕k)B=V+b·G(3) x=H(s,IDu,p)u=H(A,B)S=(a+ux)·(B-x·G)M1=H(A,B,S)■1 u=H(A,B)S=b·(A+u·V)驗證M M→1(4) 驗證M2 M←■2 M2=H(A,M1,S)
(1)用戶向移動終端輸入用戶名IDu和口令p,設備查找當前的位置隱私保護因子k,計算設備臨時名IDp=H(IDc,k)以及用戶和設備的聯合簽名D=Ee(IDc‖k),設備產生用戶臨時私鑰a,計算其臨時公鑰A=a·G,然后設備將IDp、D和A一起發送給ASS。
(2)ASS依據接收到的設備臨時名查找其真實設備名IDc、設備公鑰d和位置隱私保護因子k。如果沒找到則拒絕本次認證,否則計算Ed(D),還原設備名、用戶名和位置隱私保護因子。如果還原出的設備名、位置隱私保護因子與查表得到的設備名、位置隱私保護因子不相同,則確認設備身份不合法,認證失敗。如果相同則查找IDu對應的s和V,計算t=Ed(s⊕k),然后生成臨時私鑰b,計算臨時公鑰B=V+b·G并將t和B一同發送給設備終端。
(3) 設備終端依次計算 x=H(s,IDu,p)、u=H(A,B)和S=(a+ux)· (B -x·G),然后計算挑戰參數M1=H(A,B,S)并發送給ASS。ASS依次計算u=H(AmB)、S=b·(A+uV)、M′1=H(A,B,S)并驗證M1與M′1是否相等,如果不相等則認證失敗,退出認證過程。
(4)ASS 計算 M2=H(A,M1,S)并發送給設備終端。設備終端根據本地產生的S計算M′2=H(A,M1,S),驗證 M2與 M′2是否相等,如果不相等則ASS身份不合法,認證失敗,否則認證成功,身份認證過程結束。
認證完成以后,設備和ASS按照以下公式更新位置隱私保護因子:

終端注銷包括終端設備注銷和用戶注銷。當終端設備或者用戶不再使用時,便應該執行終端注銷策略。終端注銷是保證系統安全的重要步驟。本系統終端設備注銷和用戶注銷的步驟相似,其過程如下:
(1)AS 刪除終端設備注冊信息(IDc,d,k,H(IDc,k))或者用戶注冊信息(IDu,s,V);
(2)AS以廣播的形式通知所有的ASS設備名為IDc的終端設備或者用戶名為IDu的用戶已經注銷;
(3)ASS接收到廣播后,查看本地設備身份信息表或者用戶身份信息表中是否存在該設備或者用戶,如果存在則刪除。
下面從交互次數、用戶存儲開銷、設備存儲開銷、計算量等四個方面對方案的性能進行分析。其中交互次數是指認證過程中通信雙方發送數據的次數,用戶存儲開銷是指用戶需要存儲或者記憶的秘密參數的大小,設備存儲開銷是指終端設備需要存儲的秘密參數的大小,計算量是指認證雙方在一次認證過程中一共需要執行各類密碼學運算的次數。假設r代表一次隨機數生成運算,h代表一次雜湊運算,m代表一次對稱加密運算,g代表一次大數模運算,e代表一次橢圓曲線運算。為簡化對比,假設各個方案所使用的密鑰、隨機數及其他參數的長度相同并且設為u,用戶名和口令長度都為p。各方案的性能比較如表1所示。

表1 各方案性能比較
由表1可以看出,本文方案認證雙方在一次認證過程中只需要發送四次數據,為同類方案最少。由于本文方案同時實現了用戶認證和設備認證,需要用戶和設備均存儲一定數量的認證參數,其中用戶存儲開銷為2p,設備存儲開銷為3u,均與同類方案相仿。在計算量方面,本文方案共用到了三類密碼學算法,分別為隨機數生成運算、哈希運算和ECC運算,在一次認證過程中的計算量是2r+8h+8e,在算法數量和運算次數方面均優于文獻中所設計的方案,與SRP-6方案相仿。綜上所述,本文方案以較小的通信、存儲和計算代價實現了用戶身份和設備身份的雙重認證。
本方案的安全性前提是協議所使用的ECC算法和雜湊算法是安全的,下面從以下幾個方面對方案的安全性進行說明。
(1)支持用戶認證和設備認證。
本方案需要用戶記錄用戶名IDu及口令p,設備中存儲其身份信息(IDc,e,k),認證服務器分別為用戶和設備存儲身份信息(IDu,s,V) 和(IDc,d,k,H(IDc,k)),在認證協議中用戶和設備全部參與,只有ASS驗證用戶和設備的身份全部合法,才允許該用戶通過此設備繼續訪問數據庫,因此本文方案支持用戶和設備的雙重認證。
(2)抗重放攻擊。
本方案在認證過程中通過無線信道傳輸的參數IDp,D,A,t,B,M1,M2是由 a、b 或者 k 計算而來,由于a和b是臨時產生的隨機數,k每次認證后都更新一次,因此上述參數在每次認證時都不同。假設攻擊者截獲了終端某次認證時發送給ASS的所有參數IDp,D,A,M1,之后希望通過重放上述參數再次通過ASS的認證,由于上次認證之后k已經更新,所以設備臨時名IDp已經變化,ASS會發現上次截獲的IDp為不合法設備臨時名,無法通過設備認證。同時,由于ASS每次認證都隨機產生b,兩次認證產生相同的b的概率很小,因此使用上次截獲的M1也無法通過用戶認證。同理,如果攻擊者截獲了某次認證時ASS發送給終端的所有參數t,B,M2,也無法對終端實施重放攻擊。終上所述,本方案能夠有效地抵抗重放攻擊。
(3)抗中間人攻擊。
在本文方案的身份認證協議中,設備私鑰由設備唯一擁有,任何人都無法偽造設備的簽名。每個用戶擁有一個口令p,同時認證服務器為它存儲一個口令認證因子V,用戶和認證服務器分別利用p和V通過不同方式計算M1和M2,任何攻擊者在不知道P和V的前提下偽造M1和M2都等同于解決一個橢圓曲線上的離散對數問題,因此本文方案能夠有效抵抗中間人攻擊。
(4)抗偽裝主機攻擊。
由認證協議的執行過程可以看出,在主機驗證用戶和設備身份的同時,設備也需要檢驗主機身份是否合法。只有主機擁有正確的V、d和k等秘密參數,它才能計算產生正確的M2,而協議的成功是以移動設備驗證M2正確為標志的,因此本文方案能夠抵抗偽裝主機攻擊。
(5)抗位置隱私攻擊。
在本文方案的認證過程中,設備名IDc和用戶名IDu都沒有直接發送給ASS。在每次認證開始時,設備計算一個臨時名IDp發送給ASS,而IDp是由IDc和k通過雜湊運算所得,由于k在每次認證結束后都發生變化,因此IDp在每次認證時也各不相同。IDu與設備名以及位置隱私保護因子k一起經過設備的私鑰簽名后才發送給ASS,由于該簽名中也加入了k,因此每次認證所發送的簽名也各不相同。協議中發送的其他參數均為隨機數或者由隨機數運算產生的參數,因此這些參數在每次認證時也不相同。又因為在協議中使用了ECC算法和雜湊算法,攻擊者由一次認證截獲的參數計算出下次認證使用的參數在計算上不可行的,因此本文方案能夠抵抗位置隱私攻擊。
本文方案與其他方案在安全性方面的比較如表2所示。由該表可以看出,本文方案不僅實現了用戶身份和設備身份的雙重認證,而且能夠抵抗重放攻擊、中間人攻擊、偽裝主機攻擊、位置隱私攻擊等多種攻擊行為。與其他同類方案相比,本文方案具有更高的安全性。

表2 各方案安全性比較
安全問題已經成為制約移動數據庫技術推廣應用的瓶頸。本文提出并設計了一種移動數據庫終端身份認證方案,對移動數據庫系統終端用戶和終端設備的注冊、認證和注銷過程進行了詳細的說明。與其他同類方案相比,本文的方案具有較高的安全性和執行效率。本文的研究成果對于提高移動數據庫系統的安全性和拓展移動數據庫在高安全領域的應用具有一定的意義。
[1]移動數據庫[EB/OL].Available from http://baike.baidu.com/view/1851800.htm.2011.
[2]丁治明.移動數據庫關鍵技術研究[D].北京:中國科學院研究生院,2002.
[3]曾文英,趙躍龍,宋瑋.移動數據庫關鍵技術研究[J].計算機工程與應用,2009,45(14):25 -29.
[4]郭旭展,尤磊.企業移動數據庫安全技術研究[J].福建電腦,2010(6):10.
[5]駱成樑.移動數據庫的安全策略研究[J].科技經濟市場,2007(4):148-149.
[6]孟小峰,丁治明.移動數據管理概念與技術[M].北京:清華大學出版社,2009.
[7]Mokbel M F.Privacy in location-based services:State-of-the- Art and Research Directions[C].MDM ’07 Proceedings of the 2007 Inte.
[8]潘曉,肖珍,孟小峰.位置隱私研究綜述[J].計算機科學與探索,2007,1(3):268 -281.
[9]Michael S.Companies increasingly use GPS - enabled cell phones to track employees.Weblogsinc[EB/OL].Available from http://wifi.weblogsinc.com/2004/09/24/companies-increasingly-use-GPS-enabled-cell-phones-totrack/,2004.
[10]Bugra Gedik,Ling Liu.Protecting Location Privacy with Personalized k-Anonymity:Architecture and Algorithms[J].IEEE Transactions on Mobile Computing,2008,7(1):1-18.
[11]Solon A J,Callaghan M J,Harkin J.Case Study on the Bluetooth Vulnerabilities in Mobile Devices[J].International Journal of Computer Science and Network Security,2006,6(4):125-129.
[12]王洪瑩.移動商務身份認證系統的研究與設計[D].北京交通大學,2007.
[13]馮楠,鐵嶺,李建華.基于哈希鏈表的HAWAII微移動協議認證方案[J].信息安全與通信保密,2006,1:42-46.
[14]譚利平,李方偉.移動通信系統中的認證與密鑰協商協議[J].計算機應用,2007,27(6):1343 -1344.
[15]Wu T.SRP -6:Improvements and refinements to the secure remote password protocol[EB/OL].Available from http://srp.stanford.edu,2002.