鄧一星,蔡 沂,王文翰
(1.廣州城市理工學院計算機工程學院,廣東 廣州 510800;2.桂林電子科技大學建筑與交通工程學院,廣西 桂林541004)
作為一種將融合數據與處理功能為一體的密集型運算方式,云計算技術結合ICT技術、虛擬化技術、編程技術等實現云平臺的管理,以云的形式將各個技術互相融合分塊,利用小程序方式為用戶提供相應的服務[1-2]。因此云環境用戶密碼安全是保護用戶隱私的關鍵。
在此背景下,眾多學者已經得到了較多的用戶密碼安全認證方法研究成果。其中賈民政等人[3]提出移動云計算數據安全訪問控制方法。該方法通過建立ABE權限模型方式并通過整合該模型完成密文共享。但是,受權限模型收斂性影響,易造成密文丟失,無法做到用戶密碼安全認證。殷秋實等人[4]提出基于橢圓曲線密碼的改進的身份認證方法。該方法利用橢圓曲線方式改進密碼認證協議,完成用戶密碼認證。但是,由于其認證協議口令復雜,計算量巨大,導致通信安全性較低。
為此,本文在云計算技術支持下,設計新的大規模用戶密碼安全認證算法,以有效降低用戶密碼風險。
由基礎設備、平臺、軟件組成的服務模式為云計算,實現用戶大型IT服務需求,其中該服務的云端資源具有較強擴展性[5],用戶可依據需求購買任意類型的服務,本文運用云計算技術實現大規模用戶密碼安全認證。
云計算技術架構主要由服務層、安全管理層、資源層、設備層組成,服務層與用戶需求銜接,經過安全管理層的訪問授權、用戶密碼安全認證后,利用資源層和設備層為用戶提供相應服務,其中用戶密碼安全認證模塊通過構建安全模型結合基于屬性的抗合謀攻擊可追蹤門限簽名安全認證算法實現用戶密碼安全認證[6]。
在上述云計算技術架構中,引入公鑰密碼機制,該機制利用特定用戶公鑰加密數據,通過公鑰認證用戶安全密碼,確定該密碼是否由用戶發出[7]。
在公鑰密碼機制中,對用戶密碼安全認證的加密和解密過程是相對獨立的,加密過程中的秘鑰屬于公開密鑰,解密過程中的秘鑰為私鑰,不具備公開性。公鑰密碼機制由公鑰私鑰、明文、密文、加密算法、解密算法組成[8],其中公鑰私鑰為算法輸入項,也是加密算法的基礎;明文為可讀數據;密文為明文輸出項,;加密算法與解密算法是將明文轉換為不可讀數據并依據密文和密鑰獲取最初明文。
由于公鑰密碼機制計算具有較高強度,且公鑰與私鑰互相獨立,使其在大規模用戶密碼安全認證方面使用范圍較廣[9]。
在大規模用戶密碼安全認證過程中,安全認證特性具有無法偽造和無法區分的特性。無法偽造特性是安全認證發起者在未知私鑰屬性情況下,無法獲取與該屬性相關的認證;無法區分特性是指特定的兩個認證下的合法認證,受主密鑰未知情況影響,安全認證發起者即使擁有私鑰也無法完成密碼安全認證[10]。
本文利用基于屬性的門限認證方法,與門限密碼共享技術相結合,形成基于屬性的抗合謀攻擊可追蹤門限簽名安全認證算法,建立安全認證模型,公鑰密碼機制內的屬性合計代表用戶身份,每個集合內的各個屬性均具有相應密鑰,當同一個屬性內的各個用戶以組合密鑰形式同時偽造機制其他成員認證密碼并通過時,此類攻擊為合謀攻擊,為此,大規模用戶密碼安全認證方法需具有較強的抗合謀性,則大規模用戶密碼安全認證模型如下:
初始化:對挑戰者C初始化,并獲取輸入參數,輸入公開參數和系統密鑰,其中公開參數和系統密鑰分別由params、x表示,將公開參數傳輸給安全認證發起者A,安全認證發起者選取γ作為挑戰斷言。
詢問:安全認證發起者自適應訪問如下:
1)Hash詢問:安全認證發起者訪問Hash數值,挑戰者依據安全認證發起者詢問信息做出相應回應。
2)私鑰解析詢問:安全認證發起者以某用戶uk的密碼信息作為攻擊信息,向挑戰者詢問其公私鑰對信息,此時挑戰者反饋公私鑰對(TKi,SKi)并反饋給安全認證發起者。
3)簽名詢問:安全認證發起者選擇消息m、給定屬性集合t、簽名斷言γ,向挑戰者獲取信息的認證簽名,挑戰者經過計算生成與信息相對應的認證簽名σ,并反饋給安全認證發起者。
4)驗證詢問:安全認證發起者獲取到消息m的認證簽名后,向挑戰者驗證該認證簽名是否有效,挑戰者經過計算后將true或false反饋給安全認證發起者。

重復以上的二、三步驟:安全認證發起者對σ*,(u′,t′)展開詢問。

本文在基于屬性的門限簽名安全認證方法中引入公鑰屬性Ti,并在私鑰內添加用戶私有參數λ,使用戶借著各自屬性組成有效簽名,阻止眾多非法用戶合作形成的簽名通過,可有效避免合謀攻擊情況發生。
假設γk,ω*表示支持的門限簽名斷言,其中斷言屬性集合和門限值分別由t*、k表示,則有
(1)
當屬性集t′和t*的交集大于等于k時,屬性集t′符合簽名斷言γk,t*,本文大規模用戶密碼安全認證算法具體流程如下:
①初始化

params=〈g,g1,g2,e,Z,H1,H2,q〉
(2)
MK=〈t1,…,t|U|,x〉
(3)
PK=〈T1,…,T|U|〉
(4)
②生成密鑰
利用用戶ID和屬性集合,建立新屬性集合,該集合表達公式如下
(5)
屬性授權中心為每個用戶分配具備唯一性的秘密參數λ∈RZQ,則用戶的私鑰表達式如下
(6)
其中,R為用戶私鑰集合,其表達公式如下
R=H1(λ)x
(7)
屬性授權中心為用戶分配唯一密鑰后并將該用戶密鑰參數與用戶的私鑰相結合,以提升用戶通過自身屬性建立簽名的有效性[12],使合謀攻擊建立的簽名無法通過驗證。
③簽名
用戶在簽署消息時其簽名斷言的屬性子集需滿足條件如下
t′={i1,i2,…ik}?t∩t*
(8)
屬性子集表達公式如下
ξ′={ik+1,ik+2,…,id}?ξ
(9)
則任意屬性的認證簽名表達公式如下
σi=ξ′(R·g2)/t′
(10)
④驗證
獲取到用戶消息簽名后,需驗證該簽名的有效性,其表達公式如下
(11)
通過計算式(11)判斷該等式是否成立,若成立則表示該簽名為有效,反之則無效。
⑤追蹤
屬性授權中心負責存儲用戶私鑰集合,當某個用戶的簽名發生沖突時,屬性授權中心的依據用戶私鑰集合建立判斷公式如下
(12)
通過判斷式(12)是否成立,若成立則在用戶私鑰集合內獲取該用戶ID,反之,則拒絕該認證請求。
根據以上內容可知,本文利用基于屬性的抗合謀攻擊可追蹤門限簽名安全認證方法,該方法經過初始化、生成密鑰、簽名等步驟,實現大規模用戶密碼安全認證。
本次實驗利用Matlab仿真軟件,模擬大規模用戶同時使用正確密碼和錯誤密碼同時登錄某網站,驗證本文算法在安全認證方面應用效果,為凸顯本文算法各個方面性能,同時使用文獻[3]提出的移動云計算數據安全訪問控制算法和文獻[4]提出的基于橢圓曲線密碼的改進的身份認證方法算法展開測試,其中文獻[3]算法移動云計算數據安全訪問控制算法表示,文獻[4]算法橢圓曲線密碼的改進的身份認證算法表示。
測試三種算法在大規模用戶密碼安全認證時,不同數據量下算法的認證時間,結果如圖1所示。

圖1 算法的認證時間與數據量關系
分析圖1可知,三種算法的認證時間均隨著數據量的增加而增加,當數據量為104kB之前,三種算法的認證時間曲線呈現平緩上升趨勢,但上升幅度不明顯,當數據量超過104kB時,文獻[3]方法和文獻[4]方法的認證時間曲線迅速上升,當數據量為1010kB時,二者的認證時間均超過25s,而本文方法的認證時間曲線隨著數據量的上升幅度不大,當數據量為1010kB時,其認證時間僅為15s,由此可知,所提算法認證效率較高。
測試三種方法在用戶密碼字節為4字節、6字節、8字節的情況下,認證情況結果如表1所示。

表1 不同字節情況下三種方法認證漏檢情況/個
分析表1可知,當字節數為4時,本文算法和文獻[3]算法的認證數量與數據量相同,均無認證漏檢情況,隨著密碼字節數量的增加,三種算法均出現認證缺失情況,其中本文算法僅在字節數為8時出現1個認證缺失,而文獻[3]算法和文獻[4]算法在字節數分別為6和8時,均出現不同程度的認證缺失,其中當字節數量為6時,文獻[4]算法的認證缺失量是本文算法的30倍,由此可知,本文方法在認證密碼安全時受用戶密碼字節數量影響較小。
由于網絡環境不同,存在噪聲情況也不盡相同,測試三種算法在不同噪聲環境下的漏檢率,結果如圖2所示。

圖2 不同噪聲情況下三種方法漏檢率曲線
分析圖2可知,三種算法的漏檢率與噪聲成正比關系,其中文獻[4]算法在噪聲為950dB左右時期漏檢率為1.0,表明該方法此時已停止運算,較文獻[4]算法而言,文獻[3]算法受噪聲影響稍小,當噪聲為1000dB時,該算法的漏檢率也依然達到0.65,而本文算法此時的漏檢率僅為0.3,在三種算法中漏檢率最低,從而表明本文算法受噪聲影響較小。
保障密碼的安全性是密碼安全認證算法的終極目標,測試不同情況下,三種算法保障密碼的安全性能,測試結果如表2所示。

表2 不同安全隱患下三種方法安全性測試結果
分析表2可知,當存在不同安全隱患時,文獻[3]算法和文獻[4]算法在網絡存在口令攻擊時,均無法完成密碼安全認證,文獻[3]算法在網絡出現重復攻擊時也無法保障密碼安全認證,二者方法均無法保障密碼認證的安全性,而本文方法在所有安全隱患下未出現密碼安全認證失敗的情況,由此表明,本文算法在認證密碼安全時具有較高的安全性。
本文通過云計算架構,利用公鑰密碼機制提出云計算技術下大規模用戶密碼安全認證算法,經過仿真多角度的驗證,證明了與不同傳統算法相比,研究所設計算法的認證效率更高、漏檢率更低低,且抗噪聲干擾能力較強。