鄔余崎
(湖南城市學院,湖南 益陽 413000)
隨著云技術逐漸滲透到各個領域,云計算安全技術也得到了快速發展。現階段常用的云計算安全技術有Kerberos 認證協議、SAML 協議、自主訪問燮制、非對稱式加密等。在設計云計算安全系統時,首先要結合項目特點和系統運行需求,確定云計算安全策略,在此基礎上選擇相應的云計算安全技術。例如,保證數據的機密性是設計云計算安全系統時的一項核心訴求,為此需要從數據傳輸、數據存儲、數據擦除等環節,分別選擇數據加密解密技術、數字簽名認證技術,從而保證系統數據的安全。
該系統的身份認證流程主要包括3 部分,即用戶與AS 服務器之間的身份認證、用戶與票據認證服務器(TGS)之間的身份認證、用戶與Hadoop 平臺之間的身份認證。這里以AS 服務器認證為例,簡要概述其認證流程:
用戶從客戶端向AS 認證服務器發出一個認證請求,該請求中包含了用戶的ID 信息、當前時間點信息等。在AS 服務器順利接受到認證請求后,執行一個判斷程序“查詢用戶ID”。如果該用戶已經進行了注冊,可以順利查找到用戶ID,則允許認證;如果該用戶未注冊,無法查詢到用戶ID,則拒絕認證請求。在驗證通過以后,該系統會自動生成一個票據(Ticket),除了用戶ID 信息外,還包含了TGS 信息、AS 信息等。AS 認證服務器會將票據信息進行加密處理,同時將加密后的票據以及用于加密的密鑰一同發送至客戶端。用戶在接收到票據后,可通過密鑰對票據做解密處理,并核對信息是否有誤。如果票據內容未出現失真、篡改等問題,則說明身份認證成功。整個認證流程見圖1。

圖1 AS 認證流程
在AS 認證過程中,除了用于解密票據的密鑰外,還會得到用戶與TGS 服務器會話密鑰。使用2 份密鑰對同一票據進行解密,然后對比票據中的用戶ID、時間點、用戶IP 地址等信息是否一致。如果一致,則確認用戶通過身份認證;如果不一致,則用戶未通過身份認證,TGS 服務器將拒絕用戶提交的發送票據的請求[1]。這樣一來,就可以利用AS 服務器和TGS 服務器進行雙重認證,使得該系統的身份認證功能更加精確,徹底杜絕了非相關人員越權操作的情況。
該模塊由4 部分組成,分別是請求服務、用戶管理、角色管理、服務功能管理。這里以請求服務和角色管理為例,具體設計如下:
(1) 請求服務部分。用戶發出請求服務后,系統需要驗證用戶名和密碼,并判斷該用戶是否正常登錄。如果未登錄,則直接跳轉至系統的登錄界面,用戶需要重新輸入配對的賬號、密碼后方可發送請求。如果該用戶已經成功登錄,系統會從后臺調取該用戶的角色權限列表,然后識別用戶請求內容,并對照角色權限列表,判斷用戶提交的請求是否在權限列表的范圍內。如果不在該范圍,則阻止服務請求,結束會話;如果在該范圍內,則系統通過服務請求,結束會話。
(2) 角色管理部分。該部分的主要功能是實現系統內角色信息的添加、修改、刪除等操作。這里以添加新的角色信息為例,進入系統主界面后,選擇“創建角色”選項,在彈出的對話框中分別輸入角色名稱和角色描述。然后執行一個判斷程序“角色ID 是否為0?”如果“為0”,說明該角色未被注冊,可成功創建角色;如果“不為0”,說明系統中已經存在該角色,則需要重新修改角色信息后再次執行判斷,直到角色成功創建。角色創建代碼如下:


數據加密模塊是基于大數據的云計算安全系統的核心部分,無論是數據傳輸還是存儲,均應用數據加密技術保障數據的隱私與安全。本系統的數據加密模塊設計,采用的是AES 算法,所有用戶上傳至系統的數據,會在客戶端提前完成加密處理,這樣既可以減輕系統的運行燮荷,同時也能保證數據在傳輸過程中不會以明文形式出現,從而解決了數據被第三方竊取的問題。服務器端接收數據后,不需要進行解密,可以直接以密文形式進行存儲。只有當用戶調用相關數據時,系統才會使用密鑰將對應的密文解密。
在設計數據加密模塊時,使用AES 算法的優勢在于該算法可以同時生成2 份密鑰,其中一份為保密密鑰,由用戶保管;另一份為公開密鑰,可對外公開[2]。當用戶需要對某一信息進行加密處理時,可以選擇公開密鑰完成加密,操作較為簡便;當用戶需要對加密信息進行解密時,則選擇保密密鑰,從而保證信息的絕對安全。另外,本系統中使用的RSA 密鑰長度最大可以達到512 位,使得密鑰破解難度大幅度增加,數據加密效果得到了可靠保障。
在云計算安全系統中,數據完整性驗證模塊的主要功能是驗證口令、密鑰、身份等數據的完整性;系統通過對比輸入數據是否符合預設參數,來判斷數據是否完整,實現對數據的保護。基于MD5 算法的數據完整性驗證流程見圖2。

圖2 數據完整性驗證流程
MD5 算法的功能是從某一段信息(Message)中提取關鍵數據,然后生成信息摘要(Message-Digest)。在信息存儲、傳輸過程中,只顯示信息摘要以便于系統檢索和識別信息,而隱藏信息的主要內容,從而達到防止信息被篡改的目的。在云計算安全系統運行中,使用MD5 算法將海量數據看作成一個文本集合,然后使用不可逆轉的字符串轉換算法,轉換后得到唯一的MD5 信息摘要,并保存到系統的數據庫中。當用戶登錄該系統后,系統會將用戶登錄時輸入的密碼進行MD5 預算,將運算結果與保存在系統內的MD5 值進行對比[3]。如果兩者一致,說明密碼正確,這樣就保證了用戶登錄訪問系統的合法性,從而避免了第三方惡意登錄破壞數據完整性的情況。
為驗證云計算安全系統各項功能的應用效果,開展了本次測試。測試內容主要分為4 個部分,即RBAC能否限制用戶的訪問權限、Kerberos 能否正常傳遞用戶身份信息、加密模塊能否將明文轉變為密文、MD5能否正常完成數據完整性驗證。本次測試在Windows環境下進行。
在Kerberos 模塊,分別嘗試了3 種不同的輸入信息,測試系統的輸出結果,見表1。

表1 Kerberos 身份認證輸入輸出情況
在本次測試中,輸入錯誤的用戶名后,AS 服務器不能從數據庫中匹配到對應的用戶名,此時AS 服務器拒絕提供身份認證;輸入錯誤的密碼后,AS 服務器首先對用戶注冊時保存的密碼進行解密,經過RSA 算法解密后再與輸入信息進行配對,如果兩者不能匹配,說明當前用戶輸入的密碼錯誤,此時也無法登錄系統。只有用戶名與密碼同時匹配,才能完成身份認證。基于Kerberos 的身份認證見圖3。

圖3 Kerberos 身份認證通過
在RBAC 模塊功能測試中,提前保存3 個角色、5個用戶的信息,然后分別在5 個不同的服務器上進行登錄,并向云計算安全系統發出訪問請求。當用戶Fyh登錄時,由于該用戶屬于系統最高權限的admin 角色,因此能夠在登錄后獲取查看、修改用戶信息的權限;而用戶xp 和wb 登錄時,由于該用戶屬于系統reg-member 角色,只能訪問保存在服務器上的信息,而無法對用戶信息作出修改,說明該系統的訪問燮制功能可以正常實現[4]。
對于經過加密處理后的文件,雖然也能夠從系統中檢索到,但是在未進行解密前,文件內容為亂碼(如圖4),從而避免了文件重要信息的泄露,表明云計算安全系統的數據加密功能正常。

圖4 經過RSA 加密處理過的文本文件
在數據完整性驗證測試中,由系統調用保存在數據庫中的用戶密碼,然后進行MD5 值計算。將計算結果與最近一次登錄時輸入的用戶密碼的MD5 值進行對比。如果兩者的MD5 值一致,說明保存在系統數據庫中的用戶密碼完整未被修改;反之,則說明密碼不正確,禁止通過該密碼登錄系統。同理,該系統還可以通過對比存儲文件MD5 值來判斷文件的完整性。對所有導入系統的文件進行MD5 值計算,將計算結果與系統存儲的MD5 值進行對比。如果兩者一致,說明該文件完整,沒有出現篡改的情況;如果兩者不一致,則文件有損壞或篡改的風險,需要安排相關人員做進一步的查證[5]。如果經查證文件確實損壞,則從其他備份的存儲文件中選擇MD5 值一致的未損壞文件進行覆蓋,從而保證了文件的完整性。
經過系統測試表明,本研究設計的云計算安全系統可以準確識別用戶的身份信息,并對不具備訪問權限的用戶進行禁止登錄的限制。同時,該系統還能將明文加密成密文,在解密后進行數據完整性驗證,以保證文件信息不會泄露。
在云服務逐漸成為一種“剛需”的背景下,如何保障云存儲數據的安全性、完整性,成為用戶和云服務供應商共同關注的焦點問題。本研究設計的一種云計算安全系統,可通過Kerberos 模塊進行用戶身份認證,只有通過認證的用戶才能獲得系統操作權限,從而杜絕了惡意訪問的情況。用戶在進入系統后,利用RBAC 模塊進行訪問燮制,保證了用戶只能在權限范圍內進行數據的檢索、瀏覽,或者是個人信息的更改等操作,避免了用戶越權操作帶來的風險。系統會根據用戶需求對數據進行加密,每個一段時間自動完成數據完整性驗證,通過冗余備份的形式保證了用戶數據的完整性。該系統在保證用戶數據安全的前提下,還能為用戶提供便捷的數據查詢、調用等服務,很好地滿足了設計要求與使用需求。