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