李國興
(中國石油大學(xué)(華東),山東 青島 266580)
云計算技術(shù)快速發(fā)展使互聯(lián)網(wǎng)的功能越來越強大,利用各種云計算服務(wù)可以讓用戶從網(wǎng)絡(luò)上方便迅速地獲取所需的資源[1]。但是當(dāng)用戶請求服務(wù)時,需要驗證用戶的身份,以確保信息安全[2]。目前普遍采用的方法是先注冊用戶,后獲取ID 和相應(yīng)的密碼,如果用戶要使用該服務(wù),需要用注冊的身份和密碼完成認證[3]。由于每一項云服務(wù)都是獨立的,當(dāng)用戶需要訪問多個云服務(wù)時,需要注冊和記住多個密碼,會給用戶帶來極大的不便。為了解決上述問題,已經(jīng)提出了很多用于單點登錄的認證協(xié)議,允許用戶僅通過一個身份和密碼訪問所有服務(wù)。但是這種方法容易被黑客攻擊,不能保護用戶的隱私。為此提出了一種基于多重密鑰的用戶登錄網(wǎng)頁安全協(xié)議認證方法,多重密鑰協(xié)商協(xié)議是加密技術(shù)的一個重要組成部分,通過在不安全信道中建立安全信道,確保用戶使用的安全性。
設(shè)計的用戶登錄網(wǎng)頁安全協(xié)議的主要內(nèi)容如圖1所示。
圖1 用戶登錄網(wǎng)頁流程
如圖1 所示,用戶登錄的詳細過程如下:當(dāng)用戶通過了第一域名下的網(wǎng)頁認證后,跳轉(zhuǎn)到第二域名下的網(wǎng)頁,根據(jù)用戶本地終端的數(shù)據(jù)完成驗證后,就可以成功登錄網(wǎng)頁[4]。
目前,幾乎所有被認為是高安全性的協(xié)議都能有效地抵抗來自外部的攻擊,但不能抵抗內(nèi)部攻擊[5]。主要原因是所有協(xié)議系統(tǒng)中的讀寫器和標(biāo)簽共享同一密鑰,導(dǎo)致系統(tǒng)中的合法標(biāo)簽通過篡改系統(tǒng)中的自身身份信息而偽造出另一個合法標(biāo)簽,從而獲得了系統(tǒng)的認證[6]。確認協(xié)議以密鑰組作為基礎(chǔ),在共享密鑰的基礎(chǔ)上,向不同的閱讀器和不同的標(biāo)簽分配不同的確認密鑰,也就是說,每個標(biāo)簽和閱讀器都有唯一的確認密鑰[7]。
為保證用戶登錄網(wǎng)頁的安全性,該協(xié)議進行以下假設(shè):
1)標(biāo)簽具有運行Hash 功能,可讀可寫,無失真記憶,可以連接字符串,并具有獨立加密解密工作的功能[8]。
2)讀寫程序可進行獨立加密解密操作,并且在運行中產(chǎn)生隨機數(shù)[9]。
3)標(biāo)簽在出廠時存儲唯一標(biāo)識符,代表自己的身份[10]。
4)安全性信道是RID 閱讀器與后臺數(shù)據(jù)庫之間存儲的唯一信道,而標(biāo)簽與閱讀器之間的信道是不安全信道。
讀寫器i中存儲有身份標(biāo)識和共享密鑰,標(biāo)簽j中不僅存儲有身份標(biāo)識和共享密鑰,還存儲系統(tǒng)所有讀寫器的身份標(biāo)識和與讀寫器對應(yīng)的初始密鑰[11]。用戶初始密鑰生成算法可以由最高層執(zhí)行者或者由上層用戶可信的私鑰生成中心執(zhí)行[12]。
針對最高層執(zhí)行者直接管理的用戶登錄網(wǎng)頁,給定網(wǎng)頁身份信息ID=(I1) 和登錄主密鑰x,最高層的私鑰生成中心生成用戶初始密鑰[13]。隨機選擇一個頁面k1,該頁面加密結(jié)果為h1,輸出用戶的初始密鑰為:
對頁面k1的登錄,需通過安全信道,將登錄指令反饋給用戶;對于其他用戶登錄,需對其身份信息進行驗證。
建立一個數(shù)據(jù)庫表結(jié)構(gòu),記錄系統(tǒng)內(nèi)的認證信息和用戶信息[14]。數(shù)據(jù)庫包含標(biāo)簽初值和與閱讀器對應(yīng)的初始密鑰,背景數(shù)據(jù)庫將標(biāo)簽和閱讀器對應(yīng)的所有私鑰存儲在一個存儲私鑰矩陣中[15],所以根據(jù)密鑰數(shù)組調(diào)用協(xié)議,由此獲取的密鑰陣列為:
式(2)中,M表示讀寫器數(shù)量;N表示標(biāo)簽數(shù)量。
基于此,雙向認證協(xié)議的認證過程包括標(biāo)簽合法性認證、讀卡器合法性認證和會話密鑰更新3 個方面。圖2 展示了整個協(xié)議的認證過程。
由圖2 可知,雙向認證詳細過程為:
圖2 雙向認證過程
步驟一,讀寫器i會產(chǎn)生一個隨機數(shù)A,這個隨機數(shù)A會被發(fā)送到標(biāo)簽j,標(biāo)簽j有一個共享密鑰,可以作為一個身份驗證請求進行加密,并且具有唯一身份。
步驟二,接收到認證請求后,標(biāo)簽j使用共享密鑰解密,并獲得隨機數(shù)A和讀取程序唯一的身份信息。根據(jù)標(biāo)簽的唯一身份,可以在讀寫器的內(nèi)存中找到標(biāo)簽,如果搜索失敗,標(biāo)簽將停止響應(yīng)。在找到閱讀器唯一的身份信息后,提取標(biāo)簽上閱讀器唯一的身份信息所對應(yīng)的初始密鑰[16]。標(biāo)簽j生成隨機數(shù)B,該隨機數(shù)使用初始密鑰加密,通過散列操作獲得唯一的身份信息h(ID)。然后,標(biāo)簽將h(ID)和兩個隨機數(shù)用共享密鑰加密,并發(fā)送到讀寫器之中。
步驟三,讀寫器將接收到的身份、隨機數(shù)和加密結(jié)果發(fā)送到后臺數(shù)據(jù)庫,可直接不加密發(fā)送。
步驟四,使用共享密鑰對后臺數(shù)據(jù)庫解密,獲得h(ID)和兩個隨機數(shù)A和B。發(fā)現(xiàn)相應(yīng)的數(shù)據(jù)庫信息后,核對該記錄行,并對其進行身份驗證。若未找到記錄行,則標(biāo)簽無效,整個身份驗證過程停止,身份驗證失敗。
基于安全命令解釋的用戶認證過程如圖3所示。
由圖3 可知,基于安全命令解釋的認證詳細過程為:
圖3 用戶認證過程
步驟一,對每個公鑰在服務(wù)器端都配置一個公鑰列表,組成一個公鑰列表。存儲公共密鑰數(shù)據(jù),并為每個公鑰配置一個名稱。為方便查找和管理,將用戶名與密鑰名對應(yīng)起來,密鑰名在一個表中形成一個用戶-密鑰對應(yīng)的數(shù)組,用戶1 與key1 對應(yīng),用戶2 與key2 對應(yīng),以此類推。
步驟二,當(dāng)客戶登錄時,客戶根據(jù)安全命令解釋協(xié)議選擇自己使用的公鑰數(shù)據(jù);
步驟三,服務(wù)器在公鑰鏈表中搜尋以上公共密鑰資料,如果不存在,則認證失??;
步驟四,對可用的公鑰數(shù)據(jù)進行搜索,查看是否與客戶選擇的相同;
步驟五,在公共密鑰數(shù)據(jù)相同的情況下,服務(wù)器生成一個隨機數(shù),對公共密鑰數(shù)據(jù)進行加密,將加密后的隨機數(shù)發(fā)送給客戶。
步驟六,接收到隨機加密號碼后,客戶端使用私有密鑰數(shù)據(jù)進行解密,當(dāng)確保私有密鑰數(shù)據(jù)對應(yīng)步驟二中選定的公共密鑰數(shù)據(jù)時,再將結(jié)果發(fā)送給服務(wù)器。
步驟七,服務(wù)器決定客戶端是否正確解密隨機數(shù),如果表達正確,就可以進行認證,否則就無法進行認證。
為了驗證基于多重密鑰的用戶登錄網(wǎng)頁安全協(xié)議認證方法研究的合理性,設(shè)置了重傳攻擊和跟蹤攻擊兩種方式,在這兩種攻擊模式下,驗證用戶登錄網(wǎng)頁的安全性。
用戶登錄網(wǎng)頁后,登錄請求指令和接收請求指令結(jié)構(gòu),如圖4 所示。
圖4 登錄請求指令和接收請求指令結(jié)構(gòu)圖
設(shè)登錄請求指令隨機數(shù)為A,系統(tǒng)接收到的指令隨機數(shù)為B,以此判斷兩個隨機數(shù)是否一致,如果一致,則說明用戶安全登錄網(wǎng)頁,反之,則不安全。
針對重傳攻擊,分別使用基于ID 注冊口令協(xié)議認證方法、基于單點登錄認證協(xié)議方法和基于多重密鑰安全協(xié)議認證方法對用戶登錄網(wǎng)頁安全性進行對比分析,結(jié)果如表1 所示。
表1 重傳攻擊下不同方法登錄安全性對比
由表1 可知,基于ID 注冊口令協(xié)議認證方法在網(wǎng)絡(luò)設(shè)備序號為1、2、4、6 下的登錄請求指令隨機數(shù)A與系統(tǒng)接收到的指令隨機數(shù)B不一致,說明這些網(wǎng)絡(luò)設(shè)備受到了重傳攻擊,導(dǎo)致用戶登錄網(wǎng)頁不安全;使用基于單點登錄認證協(xié)議方法在網(wǎng)絡(luò)設(shè)備序號為2、3、5、6 下的登錄請求指令隨機數(shù)A與系統(tǒng)接收到的指令隨機數(shù)B不一致,說明這些網(wǎng)絡(luò)設(shè)備受到了重傳攻擊,導(dǎo)致用戶登錄網(wǎng)頁不安全;使用基于多重密鑰安全協(xié)議認證方法不同網(wǎng)絡(luò)設(shè)備下的登錄請求指令隨機數(shù)A與系統(tǒng)接收到的指令隨機數(shù)B一致,說明用戶登錄網(wǎng)頁安全。
跟蹤攻擊通常偽裝成讀者發(fā)送認證請求,欺騙標(biāo)簽發(fā)送認證響應(yīng),根據(jù)響應(yīng)內(nèi)容跟蹤標(biāo)簽的移動。
針對跟蹤攻擊,分別使用基于ID 注冊口令協(xié)議認證方法、基于單點登錄認證協(xié)議方法和基于多重密鑰安全協(xié)議認證方法對用戶登錄網(wǎng)頁安全性進行對比分析,結(jié)果如表2 所示。
表2 跟蹤攻擊下不同方法登錄安全性對比
由表2 可知,基于ID 注冊口令協(xié)議認證方法在網(wǎng)絡(luò)設(shè)備序號為4、5 下的登錄請求指令隨機數(shù)A與系統(tǒng)接收到的指令隨機數(shù)B不一致,說明這些網(wǎng)絡(luò)設(shè)備受到了跟蹤攻擊,導(dǎo)致用戶登錄網(wǎng)頁不安全,但比重傳攻擊影響效果較??;使用基于單點登錄認證協(xié)議方法在網(wǎng)絡(luò)設(shè)備序號為5、6 下的登錄請求指令隨機數(shù)A與系統(tǒng)接收到的指令隨機數(shù)B不一致,說明這些網(wǎng)絡(luò)設(shè)備受到了跟蹤攻擊,導(dǎo)致用戶登錄網(wǎng)頁不安全,但比重傳攻擊影響效果較??;使用基于多重密鑰安全協(xié)議認證方法不同網(wǎng)絡(luò)設(shè)備下的登錄請求指令隨機數(shù)A與系統(tǒng)接收到的指令隨機數(shù)B一致,說明用戶登錄網(wǎng)頁安全。
文中提出的基于多重密鑰的用戶登錄網(wǎng)頁安全協(xié)議認證方法,將多個密鑰的雙向認證和基于密鑰組的雙向認證相結(jié)合,解決了傳統(tǒng)認證方法難以抵抗臨時密鑰泄露攻擊問題,進一步提高了用戶登錄網(wǎng)頁的安全性,并通過實驗驗證了該認證方法的正確性。該協(xié)議在保持一定復(fù)雜性前提下,能夠抵御來自系統(tǒng)內(nèi)部和外部的攻擊威脅,保證了用戶的安全使用。