林學(xué)聰,董 征,劉友武
(1.閩南師范大學(xué) 教務(wù)處,福建 漳州 363000;2.三明學(xué)院 網(wǎng)絡(luò)中心,福建 三明 365000)
云計算是一種通過互聯(lián)網(wǎng)允許用戶隨時隨地以按次付費的方式訪問信息技術(shù)服務(wù)的新模式[1,2],用戶數(shù)據(jù)中可能包含用戶隱私(如企業(yè)客戶信息和醫(yī)院患者信息),因此,數(shù)據(jù)安全和隱私問題是基于云的物聯(lián)網(wǎng)應(yīng)用程序構(gòu)成的重要威脅之一[3,4]。用戶通過共享其敏感數(shù)據(jù)并允許服務(wù)提供商獲取、分析或?qū)⑵鋽?shù)據(jù)貨幣化,從而存在暴露這些數(shù)據(jù)的風(fēng)險[5]。此外,惡意云服務(wù)提供商或攻擊者可以攔截用戶的操作,然后訪問用戶身份信息或篡改用戶數(shù)據(jù),可能造成嚴(yán)重后果[6,7]。在云計算中保證用戶隱私是至關(guān)重要的,使用身份驗證技術(shù)來保護敏感信息免受對手攻擊被認為是保證用戶隱私的有效解決方案[8,9]。然而,現(xiàn)有技術(shù)的驗證性能并沒有達到要求的水平,因為客戶的敏感信息暴露在云端的對手面前[10],實際上,數(shù)百個用戶可以同時訪問云服務(wù)。因此,用戶訪問的認證過程必須盡可能有效,并且計算復(fù)雜性必須最小[11]。因此本文將抑制方法和多階段認證相結(jié)合來實現(xiàn)云計算環(huán)境下數(shù)據(jù)隱私保護的增強。
提出的算法最初由客戶端向云服務(wù)器發(fā)送請求,在接受請求時云服務(wù)器使用客戶端ID和密碼、一次性令牌、條件屬性等進行多階段身份驗證來驗證客戶端身份的真實性,當(dāng)且僅當(dāng)客戶端是合法時,云服務(wù)器允許客戶端獲取所需的數(shù)據(jù)訪問,以最短時間訪問云數(shù)據(jù)的客戶端的驗證性能。圖1給出用于隱私保護數(shù)據(jù)訪問算法的具體架構(gòu)。
圖1 用于隱私保護的數(shù)據(jù)訪問算法架構(gòu)
云服務(wù)器S對系統(tǒng)進行初始化,S選取兩個大素數(shù)p和q以及具有q階加群G的生成器P,隨后選擇非奇異橢圓曲線E(Fq):y2=x3+ax+bmodp,S生成xs∈Fq并將其設(shè)置為密鑰。
在提出的方法中,客戶端在注冊階段將適當(dāng)?shù)纳矸菪畔l(fā)送給云服務(wù)器,云服務(wù)器借助抑制方法將客戶端的身份信息存儲在數(shù)據(jù)庫中,并發(fā)出客戶端ID、密碼和一些條件屬性。注冊是在云環(huán)境中收集有關(guān)客戶的個人信息的過程,有助于本文算法在與客戶端的基于云的文件共享過程中獲得集中控制。在獲得任何數(shù)據(jù)服務(wù)之前,云環(huán)境中的客戶端必須向云服務(wù)器注冊其個人詳細信息。為了做到這一點,每個客戶機通過一個安全通道將他/她的個人詳細信息發(fā)送給云服務(wù)器。
在傳統(tǒng)的加密方案中,密碼僅包括數(shù)值和特殊字符。在提出的算法中,除了包括數(shù)值和特殊字符之外,條件屬性還包括一組問題,這些問題的構(gòu)造是為了在訪問云數(shù)據(jù)時驗證客戶的身份。完成注冊過程后,云服務(wù)器通過以下公式提供客戶端ID和密碼
CS→Cid,PWD
(1)
式中:CS表示云服務(wù)器,Cid表示客戶端ID,PWD為客戶端密碼,云服務(wù)器借助不同數(shù)量的條件為每個客戶定義條件屬性CAi。在此基礎(chǔ)上,使用以下數(shù)學(xué)表達式構(gòu)造條件屬性
Cid→(CA1,CA2,…,CAn)
(2)
依據(jù)等式(2),云服務(wù)器為每個客戶標(biāo)識Cid設(shè)置條件屬性CAi。對于每個注冊個人信息的客戶端,云服務(wù)器生成一個唯一的客戶端ID、密碼和條件屬性,以安全地從云端訪問數(shù)據(jù),構(gòu)造的客戶端ID、密碼和條件屬性存儲在云服務(wù)器數(shù)據(jù)庫中。在云環(huán)境中,向?qū)κ置孛鼙4婵蛻粼敿毤毠?jié)是一個亟待解決的問題。
K-匿名主要通過抑制和泛化的方法來保護需要對外公開的數(shù)據(jù)的隱私性,它以損失發(fā)布信息中的某些屬性值為代價保護一些涉及個人隱私信息的屬性值,盡可能的在發(fā)布數(shù)據(jù)的精確度和隱私保護的安全度之間達到一定的平衡。不僅保證數(shù)據(jù)整體趨勢,對單條數(shù)據(jù)記錄的精確性也加以保護,為發(fā)布的數(shù)據(jù)提供更好的可用性。為了將客戶身份信息安全地保存在云服務(wù)器數(shù)據(jù)庫中,本文首先通過抑制K-匿名方法替換客戶密碼的原始字符或值,以星號“*”替換客戶的條件屬性,然后將替換后的客戶密碼和條件屬性存儲在云服務(wù)器數(shù)據(jù)庫中,使云環(huán)境中沒有人知道客戶端的真實身份。由此,客戶敏感信息被安全地保存下來,并且不會在云環(huán)境中泄露給對手。實驗結(jié)果表明,提出的技術(shù)比現(xiàn)有的技術(shù)提高了數(shù)據(jù)隱私保護率,通過對客戶端身份信息的隱私保護,提高了云端的驗證性能。
當(dāng)客戶端發(fā)送獲取云服務(wù)的請求時,進行多階段驗證過程(即密碼、一次性令牌和條件屬性),以確認客戶端是合法的還是非法的。當(dāng)客戶端使用ID和密碼登錄時,如果密碼有效,則生成一次性令牌,然后將創(chuàng)建的一次性令牌傳輸?shù)皆骗h(huán)境中的相應(yīng)客戶端。借助于一次性令牌,本文以更高的準(zhǔn)確性增強了云計算中的客戶端身份驗證性能。
圖2給出了進行身份認證的具體流程。如圖2所示,提出的算法驗證向云服務(wù)器發(fā)送請求的客戶端的密碼、一次性令牌和條件屬性。如果客戶端是合法的人,則允許客戶端使用加密或解密過程獲得所需的數(shù)據(jù)服務(wù);如果客戶端是非法用戶,則該算法不允許客戶端從云端獲取任何數(shù)據(jù)服務(wù),從而提高認證準(zhǔn)確性。
圖2 身份認證流程
在提出的算法中,一次性令牌用于驗證客戶端,密碼用于保護客戶賬戶的安全和機密性,以防非法訪問。每當(dāng)客戶端登錄系統(tǒng)時,所提方法均提供一個新的一次性令牌。這個一次性令牌是系統(tǒng)本身使用以下公式隨機生成的
Cid→OTT,OTT={r}
(3)
依據(jù)等式(3),通過隨機選擇一個大素數(shù)r來構(gòu)造客戶端ID的一次性令牌OTT。每次為客戶端創(chuàng)建新的一次性令牌時,該客戶端先前的一次性令牌被刪除。生成的一次性令牌只用于本次登錄。因此,只有具有一次性令牌的授權(quán)客戶端才能訪問所需的服務(wù)。
驗證一次性令牌后,將驗證客戶端的條件屬性,如您最喜歡的食物是什么、昵稱是什么等等。在完成多階段身份驗證過程后,提出的技術(shù)只允許授權(quán)的客戶端獲得云服務(wù)。
考慮云計算中表示為Ci=C1,C2,…,Cn的客戶端,對于每個客戶端Ci,多階段身份驗證MFA在數(shù)學(xué)上表示為
(4)
式中:P表示PWD=PWD*,O表示OTT=OTT*,Q表示CA=CA*,一次性令牌和條件屬性,PWD*、OTT*和CA*表示與相應(yīng)客戶端一起存儲在CS數(shù)據(jù)庫中的密碼、一次性令牌和條件屬性。如果密碼、一次性令牌和條件屬性是合法的,則確認客戶端是可信的。否則,將驗證客戶端是否為云中的真實身份。
在對客戶端進行身份驗證之后,使用數(shù)據(jù)訪問階段來為客戶端提供所需的服務(wù)。當(dāng)該技術(shù)在云環(huán)境中獲得授權(quán)后,即可提供所需的云數(shù)據(jù)服務(wù)。如果客戶不是授權(quán)人,該技術(shù)不允許客戶獲取云數(shù)據(jù)服務(wù)。因此,該技術(shù)在較短的時間內(nèi)增加了云中客戶機的認證準(zhǔn)確性。
在給客戶請求的云數(shù)據(jù)之前,執(zhí)行c=diPkimodPki進行數(shù)據(jù)加密以提高數(shù)據(jù)傳輸?shù)陌踩浴F渲衏表示密碼文本,di表示客戶端請求的云數(shù)據(jù),Pki表示客戶端的公鑰(即密碼)。然后,密碼文本發(fā)送給向云服務(wù)器發(fā)送請求的客戶端。在接收端,對加密數(shù)據(jù)進行解密,目的是利用其私鑰獲得原始云數(shù)據(jù)。數(shù)據(jù)解密的數(shù)學(xué)實現(xiàn)方法如下
di=wSki*mod(α*β)
(5)
式中:Ski表示私鑰(即一次性密碼),di表示原始云數(shù)據(jù),α和β表示兩個質(zhì)數(shù)。
基于多階段認證的云計算隱私保護數(shù)據(jù)訪問的具體算法如下:
該算法包含注冊、認證和數(shù)據(jù)訪問3個關(guān)鍵過程。輸入客戶數(shù)量,在注冊過程中,對每個客戶使用式(1)生成客戶端ID和密碼,使用式(2)設(shè)置條件屬性“CA”,然后通過抑制方法將每個客戶的密碼和條件屬性存儲在云數(shù)據(jù)庫中,云服務(wù)器向客戶端發(fā)送密碼和條件屬性。在認證階段,客戶使用客戶端ID和密碼登錄,云服務(wù)器生成一次性令牌,并將其使用式(3)和式(4)傳輸?shù)较鄳?yīng)的客戶端,然后云服務(wù)器驗證客戶端的密碼、一次性令牌和條件屬性。如果客戶端的密碼、一次性令牌和條件屬性有效,則認為客戶端是合法的,否則,客戶將被視為非法訪問。在數(shù)據(jù)訪問階段,如果客戶端經(jīng)過認證,則通過執(zhí)行數(shù)據(jù)加密/解密獲得所需的服務(wù);如果客戶端沒有經(jīng)過認證,客戶將被視為非法訪問,不允許客戶端獲取云數(shù)據(jù)服務(wù)。
為了評估所提出的算法性能指標(biāo),所有實驗均是在一臺配置為Intel Core i7、3.4 GHz CPU和4 GB內(nèi)存的Microsoft Windows 7平臺上進行,所有測試均是用Java語言實現(xiàn)。從UCI機器學(xué)習(xí)庫選取Amazon Access示例數(shù)據(jù)集,該數(shù)據(jù)集提供的匿名化樣本有4個屬性:人員屬性、資源ID、組ID和系統(tǒng)支持ID。將測試結(jié)果與基于屬性的簽名外包ABS協(xié)議和云環(huán)境中基于屬性模糊分組的隱私感知訪問控制方法Priguarder[15]進行對比分析。
為了測量訪問云數(shù)據(jù)服務(wù)時的客戶端身份認證性能,選擇身份認證準(zhǔn)確度(authentication accuracy,AA)對實驗性能進行分析比較。身份驗證準(zhǔn)確度(AA)是指被正確驗證為已授權(quán)或未授權(quán)的客戶端數(shù)量與客戶端總數(shù)的比率。云數(shù)據(jù)訪問的AA是在不同數(shù)量的客戶機上估算的,AA由以下數(shù)學(xué)表達式確定:AA=Mc/n*100%,Mc表示正確認證的客戶端數(shù)量,n表示實驗過程中考慮的客戶端總數(shù)。
計算復(fù)雜性(computational complexity,CC)決定了用于驗證向云服務(wù)器發(fā)送請求的客戶端的時間量。可以看出,用不同數(shù)量的客戶來衡量確認客戶身份所需的時間,可表示為:CC=n*T(ASC),T(ASC)表示用于驗證單個客戶端的時間,n表示客戶端的數(shù)量,CC以毫秒(ms)為單位計算。
為了評估本文算法的安全性,采用隱私保護率(privacy preserving rate,PPR)對實驗性能進行評價。隱私保護率(PPR)衡量的是只有授權(quán)客戶端才能正確訪問的云數(shù)據(jù)數(shù)量與云數(shù)據(jù)總數(shù)的比率。PPR由以下數(shù)學(xué)表達式確定
(6)
式中:LAC表示合法客戶端正確獲取的數(shù)據(jù)數(shù)量,N表示云數(shù)據(jù)的總數(shù)(合法客戶端正確獲取的數(shù)據(jù)數(shù)量和非法客戶端正確獲取的數(shù)據(jù)數(shù)量的總數(shù)),隱私保護率是根據(jù)百分比(%)確定。換言之,PPR是指合法用戶使用加密或解密過程從云端獲取任何數(shù)據(jù)服務(wù)的比率,PPR越高,非法用戶從云端獲取任何數(shù)據(jù)服務(wù)的次數(shù)越少,則算法的認證性能越高。
為了測量訪問云數(shù)據(jù)服務(wù)時的客戶端身份驗證性能,圖3給出了本文算法與基于屬性的簽名外包ABS協(xié)議和云環(huán)境中基于屬性模糊分組的隱私感知訪問控制方法Priguarder[15]的身份驗證準(zhǔn)確性。
圖3 不同算法的身份驗證準(zhǔn)確性
可以看出,在對40個客戶進行實驗過程中,本文算法、Priguarder和ABS算法獲得AA分別為98%、78%和73%。從圖中曲線可以看出,與其它算法相比,本文算法提供了增強的AA,獲得了更好的身份驗證準(zhǔn)確性。這是因為當(dāng)客戶端登錄系統(tǒng)時,構(gòu)造一次性令牌,并在口令正確時將其廣播給相應(yīng)的客戶端,然后驗證客戶端的條件屬性。如果客戶端的密碼、一次性令牌和條件屬性合法,則客戶端被驗證為已授權(quán)。否則,客戶端將被驗證為云中未經(jīng)授權(quán)的人。由此,本文算法增加了被完全認證的客戶端數(shù)量。
圖4給出了客戶端數(shù)量不同時,3種算法的計算復(fù)雜度??梢钥闯觯嬎銖?fù)雜度隨著客戶端數(shù)量的增加而增加。在對60個客戶端完成實驗評估時,本文算法、Priguarder和ABS算法獲得CC分別為28 ms、34 ms和40 ms。從圖中曲線可以看出,與Priguarder和ABS算法相比,本文算法將CC分別減少了19%和32%。這是因為本文借助多階段身份驗證的應(yīng)用,對請求云數(shù)據(jù)服務(wù)的客戶端進行時間利用率的精確驗證,這有助于本文算法在訪問云數(shù)據(jù)時比其它現(xiàn)有工作花費更少的時間來驗證客戶端。
圖4 不同算法的計算復(fù)雜度
圖5給出了云數(shù)據(jù)的數(shù)量不同時,3種算法的隱私保護率??梢钥闯觯趯?00個云數(shù)據(jù)進行實驗時,本文算法、Priguarder和ABS算法獲得的隱私保護率分別為97%、85%和66%。與Priguarder和ABS算法相比,本文算法將隱私保護率分別提高了20%和41%。因此,本文算法在云環(huán)境中實現(xiàn)了更高的隱私保護率。這是因為本文算法通過抑制方法將客戶端數(shù)據(jù)安全地保存在云計算數(shù)據(jù)庫中。同時,在多階段驗證的支持下,只允許合法客戶獲取云數(shù)據(jù)服務(wù)。
圖5 不同算法的隱私保護率
提出了一種基于多階段身份認證的云計算隱私保護數(shù)據(jù)訪問算法,通過避免低計算復(fù)雜度云中的非法訪問來提高云數(shù)據(jù)的隱私保護率。該算法利用抑制方法替換客戶密碼的原始字符或值以將客戶的個人信息安全地存儲在云數(shù)據(jù)庫中,利用密碼、一次性令牌和條件屬性等進行多階段身份認證,提高了認證準(zhǔn)確性,以最短的時間高效地驗證需要云數(shù)據(jù)服務(wù)的客戶端。該算法當(dāng)且僅當(dāng)客戶在密碼、一次性令牌和條件屬性有效時,云服務(wù)器允許客戶使用加密或解密過程獲得所需的云數(shù)據(jù)訪問服務(wù),從而獲得了更高的隱私保護率。實驗結(jié)果表明,與其它方法相比,提出的方法在隱私保護率、計算復(fù)雜度和身份認證精度方面均優(yōu)于所對比的方法。未來的工作是通過采用不同的加密技術(shù)(即簽密)來提高云計算的數(shù)據(jù)完整性和保密性。