鄔余崎
(湖南城市學院,湖南 益陽 413000)
隨著云技術(shù)逐漸滲透到各個領(lǐng)域,云計算安全技術(shù)也得到了快速發(fā)展。現(xiàn)階段常用的云計算安全技術(shù)有Kerberos 認證協(xié)議、SAML 協(xié)議、自主訪問燮制、非對稱式加密等。在設(shè)計云計算安全系統(tǒng)時,首先要結(jié)合項目特點和系統(tǒng)運行需求,確定云計算安全策略,在此基礎(chǔ)上選擇相應的云計算安全技術(shù)。例如,保證數(shù)據(jù)的機密性是設(shè)計云計算安全系統(tǒng)時的一項核心訴求,為此需要從數(shù)據(jù)傳輸、數(shù)據(jù)存儲、數(shù)據(jù)擦除等環(huán)節(jié),分別選擇數(shù)據(jù)加密解密技術(shù)、數(shù)字簽名認證技術(shù),從而保證系統(tǒng)數(shù)據(jù)的安全。
該系統(tǒng)的身份認證流程主要包括3 部分,即用戶與AS 服務器之間的身份認證、用戶與票據(jù)認證服務器(TGS)之間的身份認證、用戶與Hadoop 平臺之間的身份認證。這里以AS 服務器認證為例,簡要概述其認證流程:
用戶從客戶端向AS 認證服務器發(fā)出一個認證請求,該請求中包含了用戶的ID 信息、當前時間點信息等。在AS 服務器順利接受到認證請求后,執(zhí)行一個判斷程序“查詢用戶ID”。如果該用戶已經(jīng)進行了注冊,可以順利查找到用戶ID,則允許認證;如果該用戶未注冊,無法查詢到用戶ID,則拒絕認證請求。在驗證通過以后,該系統(tǒng)會自動生成一個票據(jù)(Ticket),除了用戶ID 信息外,還包含了TGS 信息、AS 信息等。AS 認證服務器會將票據(jù)信息進行加密處理,同時將加密后的票據(jù)以及用于加密的密鑰一同發(fā)送至客戶端。用戶在接收到票據(jù)后,可通過密鑰對票據(jù)做解密處理,并核對信息是否有誤。如果票據(jù)內(nèi)容未出現(xiàn)失真、篡改等問題,則說明身份認證成功。整個認證流程見圖1。
圖1 AS 認證流程
在AS 認證過程中,除了用于解密票據(jù)的密鑰外,還會得到用戶與TGS 服務器會話密鑰。使用2 份密鑰對同一票據(jù)進行解密,然后對比票據(jù)中的用戶ID、時間點、用戶IP 地址等信息是否一致。如果一致,則確認用戶通過身份認證;如果不一致,則用戶未通過身份認證,TGS 服務器將拒絕用戶提交的發(fā)送票據(jù)的請求[1]。這樣一來,就可以利用AS 服務器和TGS 服務器進行雙重認證,使得該系統(tǒng)的身份認證功能更加精確,徹底杜絕了非相關(guān)人員越權(quán)操作的情況。
該模塊由4 部分組成,分別是請求服務、用戶管理、角色管理、服務功能管理。這里以請求服務和角色管理為例,具體設(shè)計如下:
(1) 請求服務部分。用戶發(fā)出請求服務后,系統(tǒng)需要驗證用戶名和密碼,并判斷該用戶是否正常登錄。如果未登錄,則直接跳轉(zhuǎn)至系統(tǒng)的登錄界面,用戶需要重新輸入配對的賬號、密碼后方可發(fā)送請求。如果該用戶已經(jīng)成功登錄,系統(tǒng)會從后臺調(diào)取該用戶的角色權(quán)限列表,然后識別用戶請求內(nèi)容,并對照角色權(quán)限列表,判斷用戶提交的請求是否在權(quán)限列表的范圍內(nèi)。如果不在該范圍,則阻止服務請求,結(jié)束會話;如果在該范圍內(nèi),則系統(tǒng)通過服務請求,結(jié)束會話。
(2) 角色管理部分。該部分的主要功能是實現(xiàn)系統(tǒng)內(nèi)角色信息的添加、修改、刪除等操作。這里以添加新的角色信息為例,進入系統(tǒng)主界面后,選擇“創(chuàng)建角色”選項,在彈出的對話框中分別輸入角色名稱和角色描述。然后執(zhí)行一個判斷程序“角色ID 是否為0?”如果“為0”,說明該角色未被注冊,可成功創(chuàng)建角色;如果“不為0”,說明系統(tǒng)中已經(jīng)存在該角色,則需要重新修改角色信息后再次執(zhí)行判斷,直到角色成功創(chuàng)建。角色創(chuàng)建代碼如下:
數(shù)據(jù)加密模塊是基于大數(shù)據(jù)的云計算安全系統(tǒng)的核心部分,無論是數(shù)據(jù)傳輸還是存儲,均應用數(shù)據(jù)加密技術(shù)保障數(shù)據(jù)的隱私與安全。本系統(tǒng)的數(shù)據(jù)加密模塊設(shè)計,采用的是AES 算法,所有用戶上傳至系統(tǒng)的數(shù)據(jù),會在客戶端提前完成加密處理,這樣既可以減輕系統(tǒng)的運行燮荷,同時也能保證數(shù)據(jù)在傳輸過程中不會以明文形式出現(xiàn),從而解決了數(shù)據(jù)被第三方竊取的問題。服務器端接收數(shù)據(jù)后,不需要進行解密,可以直接以密文形式進行存儲。只有當用戶調(diào)用相關(guān)數(shù)據(jù)時,系統(tǒng)才會使用密鑰將對應的密文解密。
在設(shè)計數(shù)據(jù)加密模塊時,使用AES 算法的優(yōu)勢在于該算法可以同時生成2 份密鑰,其中一份為保密密鑰,由用戶保管;另一份為公開密鑰,可對外公開[2]。當用戶需要對某一信息進行加密處理時,可以選擇公開密鑰完成加密,操作較為簡便;當用戶需要對加密信息進行解密時,則選擇保密密鑰,從而保證信息的絕對安全。另外,本系統(tǒng)中使用的RSA 密鑰長度最大可以達到512 位,使得密鑰破解難度大幅度增加,數(shù)據(jù)加密效果得到了可靠保障。
在云計算安全系統(tǒng)中,數(shù)據(jù)完整性驗證模塊的主要功能是驗證口令、密鑰、身份等數(shù)據(jù)的完整性;系統(tǒng)通過對比輸入數(shù)據(jù)是否符合預設(shè)參數(shù),來判斷數(shù)據(jù)是否完整,實現(xiàn)對數(shù)據(jù)的保護?;贛D5 算法的數(shù)據(jù)完整性驗證流程見圖2。
圖2 數(shù)據(jù)完整性驗證流程
MD5 算法的功能是從某一段信息(Message)中提取關(guān)鍵數(shù)據(jù),然后生成信息摘要(Message-Digest)。在信息存儲、傳輸過程中,只顯示信息摘要以便于系統(tǒng)檢索和識別信息,而隱藏信息的主要內(nèi)容,從而達到防止信息被篡改的目的。在云計算安全系統(tǒng)運行中,使用MD5 算法將海量數(shù)據(jù)看作成一個文本集合,然后使用不可逆轉(zhuǎn)的字符串轉(zhuǎn)換算法,轉(zhuǎn)換后得到唯一的MD5 信息摘要,并保存到系統(tǒng)的數(shù)據(jù)庫中。當用戶登錄該系統(tǒng)后,系統(tǒng)會將用戶登錄時輸入的密碼進行MD5 預算,將運算結(jié)果與保存在系統(tǒng)內(nèi)的MD5 值進行對比[3]。如果兩者一致,說明密碼正確,這樣就保證了用戶登錄訪問系統(tǒng)的合法性,從而避免了第三方惡意登錄破壞數(shù)據(jù)完整性的情況。
為驗證云計算安全系統(tǒng)各項功能的應用效果,開展了本次測試。測試內(nèi)容主要分為4 個部分,即RBAC能否限制用戶的訪問權(quán)限、Kerberos 能否正常傳遞用戶身份信息、加密模塊能否將明文轉(zhuǎn)變?yōu)槊芪?、MD5能否正常完成數(shù)據(jù)完整性驗證。本次測試在Windows環(huán)境下進行。
在Kerberos 模塊,分別嘗試了3 種不同的輸入信息,測試系統(tǒng)的輸出結(jié)果,見表1。
表1 Kerberos 身份認證輸入輸出情況
在本次測試中,輸入錯誤的用戶名后,AS 服務器不能從數(shù)據(jù)庫中匹配到對應的用戶名,此時AS 服務器拒絕提供身份認證;輸入錯誤的密碼后,AS 服務器首先對用戶注冊時保存的密碼進行解密,經(jīng)過RSA 算法解密后再與輸入信息進行配對,如果兩者不能匹配,說明當前用戶輸入的密碼錯誤,此時也無法登錄系統(tǒng)。只有用戶名與密碼同時匹配,才能完成身份認證?;贙erberos 的身份認證見圖3。
圖3 Kerberos 身份認證通過
在RBAC 模塊功能測試中,提前保存3 個角色、5個用戶的信息,然后分別在5 個不同的服務器上進行登錄,并向云計算安全系統(tǒng)發(fā)出訪問請求。當用戶Fyh登錄時,由于該用戶屬于系統(tǒng)最高權(quán)限的admin 角色,因此能夠在登錄后獲取查看、修改用戶信息的權(quán)限;而用戶xp 和wb 登錄時,由于該用戶屬于系統(tǒng)reg-member 角色,只能訪問保存在服務器上的信息,而無法對用戶信息作出修改,說明該系統(tǒng)的訪問燮制功能可以正常實現(xiàn)[4]。
對于經(jīng)過加密處理后的文件,雖然也能夠從系統(tǒng)中檢索到,但是在未進行解密前,文件內(nèi)容為亂碼(如圖4),從而避免了文件重要信息的泄露,表明云計算安全系統(tǒng)的數(shù)據(jù)加密功能正常。
圖4 經(jīng)過RSA 加密處理過的文本文件
在數(shù)據(jù)完整性驗證測試中,由系統(tǒng)調(diào)用保存在數(shù)據(jù)庫中的用戶密碼,然后進行MD5 值計算。將計算結(jié)果與最近一次登錄時輸入的用戶密碼的MD5 值進行對比。如果兩者的MD5 值一致,說明保存在系統(tǒng)數(shù)據(jù)庫中的用戶密碼完整未被修改;反之,則說明密碼不正確,禁止通過該密碼登錄系統(tǒng)。同理,該系統(tǒng)還可以通過對比存儲文件MD5 值來判斷文件的完整性。對所有導入系統(tǒng)的文件進行MD5 值計算,將計算結(jié)果與系統(tǒng)存儲的MD5 值進行對比。如果兩者一致,說明該文件完整,沒有出現(xiàn)篡改的情況;如果兩者不一致,則文件有損壞或篡改的風險,需要安排相關(guān)人員做進一步的查證[5]。如果經(jīng)查證文件確實損壞,則從其他備份的存儲文件中選擇MD5 值一致的未損壞文件進行覆蓋,從而保證了文件的完整性。
經(jīng)過系統(tǒng)測試表明,本研究設(shè)計的云計算安全系統(tǒng)可以準確識別用戶的身份信息,并對不具備訪問權(quán)限的用戶進行禁止登錄的限制。同時,該系統(tǒng)還能將明文加密成密文,在解密后進行數(shù)據(jù)完整性驗證,以保證文件信息不會泄露。
在云服務逐漸成為一種“剛需”的背景下,如何保障云存儲數(shù)據(jù)的安全性、完整性,成為用戶和云服務供應商共同關(guān)注的焦點問題。本研究設(shè)計的一種云計算安全系統(tǒng),可通過Kerberos 模塊進行用戶身份認證,只有通過認證的用戶才能獲得系統(tǒng)操作權(quán)限,從而杜絕了惡意訪問的情況。用戶在進入系統(tǒng)后,利用RBAC 模塊進行訪問燮制,保證了用戶只能在權(quán)限范圍內(nèi)進行數(shù)據(jù)的檢索、瀏覽,或者是個人信息的更改等操作,避免了用戶越權(quán)操作帶來的風險。系統(tǒng)會根據(jù)用戶需求對數(shù)據(jù)進行加密,每個一段時間自動完成數(shù)據(jù)完整性驗證,通過冗余備份的形式保證了用戶數(shù)據(jù)的完整性。該系統(tǒng)在保證用戶數(shù)據(jù)安全的前提下,還能為用戶提供便捷的數(shù)據(jù)查詢、調(diào)用等服務,很好地滿足了設(shè)計要求與使用需求。