李國興
(中國石油大學(華東),山東 青島 266580)
云計算技術快速發展使互聯網的功能越來越強大,利用各種云計算服務可以讓用戶從網絡上方便迅速地獲取所需的資源[1]。但是當用戶請求服務時,需要驗證用戶的身份,以確保信息安全[2]。目前普遍采用的方法是先注冊用戶,后獲取ID 和相應的密碼,如果用戶要使用該服務,需要用注冊的身份和密碼完成認證[3]。由于每一項云服務都是獨立的,當用戶需要訪問多個云服務時,需要注冊和記住多個密碼,會給用戶帶來極大的不便。為了解決上述問題,已經提出了很多用于單點登錄的認證協議,允許用戶僅通過一個身份和密碼訪問所有服務。但是這種方法容易被黑客攻擊,不能保護用戶的隱私。為此提出了一種基于多重密鑰的用戶登錄網頁安全協議認證方法,多重密鑰協商協議是加密技術的一個重要組成部分,通過在不安全信道中建立安全信道,確保用戶使用的安全性。
設計的用戶登錄網頁安全協議的主要內容如圖1所示。

圖1 用戶登錄網頁流程
如圖1 所示,用戶登錄的詳細過程如下:當用戶通過了第一域名下的網頁認證后,跳轉到第二域名下的網頁,根據用戶本地終端的數據完成驗證后,就可以成功登錄網頁[4]。
目前,幾乎所有被認為是高安全性的協議都能有效地抵抗來自外部的攻擊,但不能抵抗內部攻擊[5]。主要原因是所有協議系統中的讀寫器和標簽共享同一密鑰,導致系統中的合法標簽通過篡改系統中的自身身份信息而偽造出另一個合法標簽,從而獲得了系統的認證[6]。確認協議以密鑰組作為基礎,在共享密鑰的基礎上,向不同的閱讀器和不同的標簽分配不同的確認密鑰,也就是說,每個標簽和閱讀器都有唯一的確認密鑰[7]。
為保證用戶登錄網頁的安全性,該協議進行以下假設:
1)標簽具有運行Hash 功能,可讀可寫,無失真記憶,可以連接字符串,并具有獨立加密解密工作的功能[8]。
2)讀寫程序可進行獨立加密解密操作,并且在運行中產生隨機數[9]。
3)標簽在出廠時存儲唯一標識符,代表自己的身份[10]。
4)安全性信道是RID 閱讀器與后臺數據庫之間存儲的唯一信道,而標簽與閱讀器之間的信道是不安全信道。
讀寫器i中存儲有身份標識和共享密鑰,標簽j中不僅存儲有身份標識和共享密鑰,還存儲系統所有讀寫器的身份標識和與讀寫器對應的初始密鑰[11]。用戶初始密鑰生成算法可以由最高層執行者或者由上層用戶可信的私鑰生成中心執行[12]。
針對最高層執行者直接管理的用戶登錄網頁,給定網頁身份信息ID=(I1) 和登錄主密鑰x,最高層的私鑰生成中心生成用戶初始密鑰[13]。隨機選擇一個頁面k1,該頁面加密結果為h1,輸出用戶的初始密鑰為:

對頁面k1的登錄,需通過安全信道,將登錄指令反饋給用戶;對于其他用戶登錄,需對其身份信息進行驗證。
建立一個數據庫表結構,記錄系統內的認證信息和用戶信息[14]。數據庫包含標簽初值和與閱讀器對應的初始密鑰,背景數據庫將標簽和閱讀器對應的所有私鑰存儲在一個存儲私鑰矩陣中[15],所以根據密鑰數組調用協議,由此獲取的密鑰陣列為:

式(2)中,M表示讀寫器數量;N表示標簽數量。
基于此,雙向認證協議的認證過程包括標簽合法性認證、讀卡器合法性認證和會話密鑰更新3 個方面。圖2 展示了整個協議的認證過程。
由圖2 可知,雙向認證詳細過程為:

圖2 雙向認證過程
步驟一,讀寫器i會產生一個隨機數A,這個隨機數A會被發送到標簽j,標簽j有一個共享密鑰,可以作為一個身份驗證請求進行加密,并且具有唯一身份。
步驟二,接收到認證請求后,標簽j使用共享密鑰解密,并獲得隨機數A和讀取程序唯一的身份信息。根據標簽的唯一身份,可以在讀寫器的內存中找到標簽,如果搜索失敗,標簽將停止響應。在找到閱讀器唯一的身份信息后,提取標簽上閱讀器唯一的身份信息所對應的初始密鑰[16]。標簽j生成隨機數B,該隨機數使用初始密鑰加密,通過散列操作獲得唯一的身份信息h(ID)。然后,標簽將h(ID)和兩個隨機數用共享密鑰加密,并發送到讀寫器之中。
步驟三,讀寫器將接收到的身份、隨機數和加密結果發送到后臺數據庫,可直接不加密發送。
步驟四,使用共享密鑰對后臺數據庫解密,獲得h(ID)和兩個隨機數A和B。發現相應的數據庫信息后,核對該記錄行,并對其進行身份驗證。若未找到記錄行,則標簽無效,整個身份驗證過程停止,身份驗證失敗。
基于安全命令解釋的用戶認證過程如圖3所示。
由圖3 可知,基于安全命令解釋的認證詳細過程為:

圖3 用戶認證過程
步驟一,對每個公鑰在服務器端都配置一個公鑰列表,組成一個公鑰列表。存儲公共密鑰數據,并為每個公鑰配置一個名稱。為方便查找和管理,將用戶名與密鑰名對應起來,密鑰名在一個表中形成一個用戶-密鑰對應的數組,用戶1 與key1 對應,用戶2 與key2 對應,以此類推。
步驟二,當客戶登錄時,客戶根據安全命令解釋協議選擇自己使用的公鑰數據;
步驟三,服務器在公鑰鏈表中搜尋以上公共密鑰資料,如果不存在,則認證失敗;
步驟四,對可用的公鑰數據進行搜索,查看是否與客戶選擇的相同;
步驟五,在公共密鑰數據相同的情況下,服務器生成一個隨機數,對公共密鑰數據進行加密,將加密后的隨機數發送給客戶。
步驟六,接收到隨機加密號碼后,客戶端使用私有密鑰數據進行解密,當確保私有密鑰數據對應步驟二中選定的公共密鑰數據時,再將結果發送給服務器。
步驟七,服務器決定客戶端是否正確解密隨機數,如果表達正確,就可以進行認證,否則就無法進行認證。
為了驗證基于多重密鑰的用戶登錄網頁安全協議認證方法研究的合理性,設置了重傳攻擊和跟蹤攻擊兩種方式,在這兩種攻擊模式下,驗證用戶登錄網頁的安全性。
用戶登錄網頁后,登錄請求指令和接收請求指令結構,如圖4 所示。

圖4 登錄請求指令和接收請求指令結構圖
設登錄請求指令隨機數為A,系統接收到的指令隨機數為B,以此判斷兩個隨機數是否一致,如果一致,則說明用戶安全登錄網頁,反之,則不安全。
針對重傳攻擊,分別使用基于ID 注冊口令協議認證方法、基于單點登錄認證協議方法和基于多重密鑰安全協議認證方法對用戶登錄網頁安全性進行對比分析,結果如表1 所示。

表1 重傳攻擊下不同方法登錄安全性對比
由表1 可知,基于ID 注冊口令協議認證方法在網絡設備序號為1、2、4、6 下的登錄請求指令隨機數A與系統接收到的指令隨機數B不一致,說明這些網絡設備受到了重傳攻擊,導致用戶登錄網頁不安全;使用基于單點登錄認證協議方法在網絡設備序號為2、3、5、6 下的登錄請求指令隨機數A與系統接收到的指令隨機數B不一致,說明這些網絡設備受到了重傳攻擊,導致用戶登錄網頁不安全;使用基于多重密鑰安全協議認證方法不同網絡設備下的登錄請求指令隨機數A與系統接收到的指令隨機數B一致,說明用戶登錄網頁安全。
跟蹤攻擊通常偽裝成讀者發送認證請求,欺騙標簽發送認證響應,根據響應內容跟蹤標簽的移動。
針對跟蹤攻擊,分別使用基于ID 注冊口令協議認證方法、基于單點登錄認證協議方法和基于多重密鑰安全協議認證方法對用戶登錄網頁安全性進行對比分析,結果如表2 所示。

表2 跟蹤攻擊下不同方法登錄安全性對比
由表2 可知,基于ID 注冊口令協議認證方法在網絡設備序號為4、5 下的登錄請求指令隨機數A與系統接收到的指令隨機數B不一致,說明這些網絡設備受到了跟蹤攻擊,導致用戶登錄網頁不安全,但比重傳攻擊影響效果較小;使用基于單點登錄認證協議方法在網絡設備序號為5、6 下的登錄請求指令隨機數A與系統接收到的指令隨機數B不一致,說明這些網絡設備受到了跟蹤攻擊,導致用戶登錄網頁不安全,但比重傳攻擊影響效果較小;使用基于多重密鑰安全協議認證方法不同網絡設備下的登錄請求指令隨機數A與系統接收到的指令隨機數B一致,說明用戶登錄網頁安全。
文中提出的基于多重密鑰的用戶登錄網頁安全協議認證方法,將多個密鑰的雙向認證和基于密鑰組的雙向認證相結合,解決了傳統認證方法難以抵抗臨時密鑰泄露攻擊問題,進一步提高了用戶登錄網頁的安全性,并通過實驗驗證了該認證方法的正確性。該協議在保持一定復雜性前提下,能夠抵御來自系統內部和外部的攻擊威脅,保證了用戶的安全使用。