任凌翔,A. Padmapriya,R. Portia
(1.唐山職業(yè)教育中心,河北 唐山 063000;2.阿拉嘎帕大學(xué),印度 泰米爾納德邦 630003)
根據(jù)CNCERT監(jiān)測(cè)數(shù)據(jù),自 2019 年以來(lái),CNCERT在持續(xù)開(kāi)展的MongoDB、 Elasticsearch等數(shù)據(jù)庫(kù)數(shù)據(jù)泄露風(fēng)險(xiǎn)應(yīng)急處置過(guò)程中,發(fā)現(xiàn)存在隱患的數(shù)據(jù)庫(kù)搭建在云服務(wù)商平臺(tái)上的數(shù)量占比超過(guò)40%[1]。這已經(jīng)成為云數(shù)據(jù)泄露的隱性爆發(fā)風(fēng)險(xiǎn)點(diǎn)。
云計(jì)算是可配置的計(jì)算機(jī)系統(tǒng)資源和高級(jí)服務(wù)的共享器,可以通過(guò)互聯(lián)網(wǎng)(通常是通過(guò)Internet)以最少的管理成本快速地提供數(shù)據(jù)資源。云計(jì)算依靠共享數(shù)據(jù)資源和高速處理數(shù)據(jù)的能力來(lái)實(shí)現(xiàn)數(shù)據(jù)交互處理,已實(shí)現(xiàn)在較大規(guī)模經(jīng)濟(jì)投入下的盈利,類似于公共計(jì)算機(jī)設(shè)備[2]。
云計(jì)算環(huán)境是松散耦合的。用戶大致可以分為非法用戶和合法用戶。合法的用戶可以通過(guò)提供的服務(wù)訪問(wèn)存儲(chǔ)在云中的數(shù)據(jù),而非法用戶需要獲取云中數(shù)據(jù)時(shí),就只能花費(fèi)大量精力對(duì)云中存儲(chǔ)的數(shù)據(jù)進(jìn)行惡意入侵和暴力破解。一般情況下,存儲(chǔ)在云中的數(shù)據(jù)是加密的,合法注冊(cè)用戶可以在登陸云時(shí)及時(shí)解密。
云用戶數(shù)據(jù)被加密并存儲(chǔ)在云中(這包括用戶名和密碼以及大量用戶數(shù)據(jù))。根據(jù)加密方法的不同,可分為對(duì)稱加密算法(Symmetric Encryption/Symmetric Algorithm)和非對(duì)稱加密(Asymmetric Encryption/Asymmetric Algorithm)。這2種加密算法都會(huì)用到密鑰(Public-key),一個(gè)較為復(fù)雜的密鑰是數(shù)據(jù)加密后不會(huì)輕易被黑客破解的保障。根據(jù)不同的算法參數(shù),會(huì)形成不同加密密鑰,每種加密方法都會(huì)有自己的優(yōu)點(diǎn)和缺點(diǎn)。其中過(guò)于復(fù)雜的密鑰算法會(huì)占用大量的云計(jì)算資源,導(dǎo)致響應(yīng)時(shí)間過(guò)長(zhǎng),直接影響用戶的使用體驗(yàn)。
云計(jì)算用戶將數(shù)據(jù)信息存儲(chǔ)在云服務(wù)器上,云服務(wù)提供商確??蛻舻男畔踩蛻粜畔⒉淮嬖跀?shù)據(jù)丟失、數(shù)據(jù)被盜等問(wèn)題。還有一種可能性是,非法用戶可以通過(guò)偽裝成合法用戶滲透到云中,從而感染整個(gè)云并獲取云服務(wù)器中的合法數(shù)據(jù)[3]。這將會(huì)影響許多合法用戶的數(shù)據(jù)安全并感染共享數(shù)據(jù)的云客戶[4]。在討論云的安全性時(shí),出現(xiàn)了5種類型的問(wèn)題[5]。
1)數(shù)據(jù)問(wèn)題。在云中所用戶數(shù)據(jù)都要保障其在云存儲(chǔ)中的時(shí)間性、安全性和完整性,也就是云計(jì)算中的存儲(chǔ)正確性;2)隱私問(wèn)題??焖俣ㄎ粩?shù)據(jù)錯(cuò)誤,在云服務(wù)器發(fā)生入侵時(shí)能在有效的時(shí)間內(nèi)地定位故障服務(wù)器并能檢測(cè)出被感染數(shù)據(jù);3)動(dòng)態(tài)數(shù)據(jù)支持。用戶在云計(jì)算中的數(shù)據(jù)文件在云存儲(chǔ)中可以添加、修改、刪除或追加新的數(shù)據(jù)并能保持在相同的存儲(chǔ)級(jí)別下數(shù)據(jù)的正確性、完整性和可逆性;4)安全問(wèn)題和可靠性。盡量減少由數(shù)據(jù)錯(cuò)誤或服務(wù)器故障引起的故障,服務(wù)器串通攻擊故障和惡意數(shù)據(jù)修改故障,增強(qiáng)數(shù)據(jù)可用性防止拜占庭故障;5)信任問(wèn)題。盡可能減少云中合法用戶的使用成本和響應(yīng)時(shí)間,使云計(jì)算服務(wù)商利潤(rùn)最大化。
2011年,NIST對(duì)云計(jì)算的定義是私有云、社區(qū)云、公共云和混合云4種部署模式,如圖1所示。
1)私有云(Private Cloud)也稱為“內(nèi)部云”,它設(shè)置了訪問(wèn)邊界,只允許授權(quán)用戶和組織內(nèi)訪問(wèn)系統(tǒng)和服務(wù)。私有云平臺(tái)是一個(gè)基于云的安全環(huán)境,該環(huán)境是由屬于特定組織的IT部門管理的高級(jí)防火墻進(jìn)行保護(hù)。私有云只允許授權(quán)用戶訪問(wèn),從而為私有云提供了較為安全的運(yùn)維環(huán)境,數(shù)據(jù)安全也有較大的可控性。
2)社區(qū)云(Community Cloud)是另一種類型的云計(jì)算,在屬于同一社區(qū)或區(qū)域的不同組織之間為達(dá)到共享信息的目的所建立起來(lái)的云被稱為社區(qū)云。多租戶設(shè)置是社區(qū)云的用戶特征,在屬于具有類似社區(qū)云關(guān)系的特定社區(qū)或組的不同組織之間,使用多租戶設(shè)置進(jìn)行訪問(wèn)。
3)公共云(Public Cloud)是云托管的一種類型,它允許客戶端/用戶很容易地訪問(wèn)系統(tǒng)及其服務(wù)。云服務(wù)是開(kāi)放式的,提供公共云設(shè)施的公司有IBM、谷歌、亞馬遜、微軟等;還有阿里、百度、騰訊等國(guó)內(nèi)云服務(wù)提供商。這種類型的云計(jì)算是云托管的真實(shí)案例,其中服務(wù)提供商為各種客戶端/用戶提供服務(wù)。從技術(shù)角度看,私有云與公共云在結(jié)構(gòu)設(shè)計(jì)上的差異最小。安全級(jí)別取決于服務(wù)提供者和云客戶端使用的類型。公共云更適合用于管理負(fù)載較大的運(yùn)算項(xiàng)目。因?yàn)闇p少了硬件投資和運(yùn)維云的費(fèi)用,所以這種類型的云是性價(jià)比較高。
4)混合云(Hybrid Cloud)是另一種云計(jì)算類型,它包括社區(qū)云、分布式云、多云、大數(shù)據(jù)云和高性能計(jì)算云,是眾多云服務(wù)的組合。非關(guān)鍵任務(wù)(如開(kāi)發(fā)和測(cè)試工作負(fù)載)可以使用公共云完成,而敏感的關(guān)鍵任務(wù)(如組織數(shù)據(jù)處理)則使用私有云完成。在混合云托管中,這2種部署模型以及社區(qū)部署模型都有是好的模型。
圖1 云計(jì)算的部署模型
加密算法可分為對(duì)稱加密算法(Symmetric Encryption/Symmetric Algorithm)和非對(duì)稱加密(Asymmetric Encryption/Asymmetric Algorithm)。在對(duì)稱加密算法中明文(PlainText)通過(guò)加密程序(Encryption)在加密密鑰(Secret Key)的作用下轉(zhuǎn)換成密文(CipherText)儲(chǔ)存在云存儲(chǔ)中。當(dāng)需要解密時(shí)通過(guò)解密程序(Decryption)在解密密鑰(Secret Key)的作用下再轉(zhuǎn)換成明文(Plain Text)輸出到客戶端/用戶。對(duì)稱加密算法的特點(diǎn)是加密密鑰和解密密鑰相同(Same Key),常用的對(duì)稱加密算法有DES、3DES、AES等[6],如圖2所示。
如圖2 對(duì)稱加密算法
在不對(duì)稱加密算法中明文(PlainText)通過(guò)加密程序(Encryption)在加密密鑰(也稱為公開(kāi)密鑰)的作用下轉(zhuǎn)換成密文(CipherText)儲(chǔ)存在云存儲(chǔ)中。當(dāng)需要解密時(shí)通過(guò)解密程序(Decryption)在解密密鑰(Secret Key)的作用下再轉(zhuǎn)換成明文(Plain Text)輸出到客戶端/用戶。非對(duì)稱加密算法的特點(diǎn)是加密密鑰與解密密鑰不同(Different Key),常見(jiàn)的非對(duì)稱加密算法有RSA、DSA等,如圖3所示。
圖3 非對(duì)稱加密算法
印度阿拉嘎帕大學(xué)研究員Subhasri和Padmapriya提出了一種多級(jí)加密算法,應(yīng)用在云計(jì)算數(shù)據(jù)安全中能使云計(jì)算中的數(shù)據(jù)得到安全保障[7]。該系統(tǒng)的安全體系結(jié)構(gòu)是使用對(duì)稱加密算法模塊,并通過(guò)多級(jí)數(shù)據(jù)加密來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)安全,使得黑客在獲得數(shù)據(jù)后會(huì)花費(fèi)大量的時(shí)間和資源進(jìn)行數(shù)據(jù)解密,從而達(dá)到保護(hù)數(shù)據(jù)安全的目的。Subhasri和Padmapriya提出的多級(jí)加密算法,分如下幾個(gè)步驟實(shí)現(xiàn)數(shù)據(jù)加密和解密。第1步:獲取純文本并分配字母的位置;第2步:生成純文本字母的ASCII值;第3步:分配相同的鍵值被視為鍵;第4步:使用公式加密;第5步:解密是加密算法的逆過(guò)程。
本文的主要貢獻(xiàn)是提出了一種新的基于多級(jí)對(duì)稱加密算法的數(shù)據(jù)加密安全解決方案,對(duì)復(fù)雜安全解決方案的設(shè)計(jì)具有重要的參考價(jià)值。
數(shù)據(jù)加密是對(duì)數(shù)據(jù)或信息進(jìn)行再次編碼的過(guò)程,通過(guò)固定的加密形式對(duì)數(shù)據(jù)或信息(即明文)進(jìn)行再次編碼(即加密方法)已達(dá)到保護(hù)數(shù)據(jù)安全的目的。解密形式如同加密形式的逆運(yùn)算,將加密后的數(shù)據(jù)或信息(即密文)通過(guò)固定的解密形式還原到原始的數(shù)據(jù)或信息(即明文)形式。在云計(jì)算中只有合法用戶才能訪問(wèn)云存儲(chǔ)中的數(shù)據(jù)或信息,而非法用戶是不能進(jìn)行訪問(wèn)的,即使黑客通過(guò)非法的形式獲得信息或數(shù)據(jù)也不能在短時(shí)間內(nèi)進(jìn)行解密(即還原到明文形式)。本文提出了一種多級(jí)加密方法,用來(lái)保護(hù)云計(jì)算存儲(chǔ)中的數(shù)據(jù)安全。
本文提出了以換位加密算法和置換加密算法相結(jié)合的多級(jí)加密算法形式,用來(lái)對(duì)云存儲(chǔ)中數(shù)據(jù)進(jìn)行加密保護(hù)。例如將字母“R”保存到云存儲(chǔ)器中,它將經(jīng)過(guò)如下加密過(guò)程。
首先一級(jí)加密是通過(guò)換位加密算法將字母“R”進(jìn)行換位加密。第1步:獲取明文也就是將明文中的字母“R”提取出來(lái),并確定字母“R”在明文中的位置。第2步:生成字母“R”(的ASCII值為82)在明文中的ASCII值(即ASCII格式)。第3步:將明文中字母“R”的ASCII值轉(zhuǎn)換為二進(jìn)制值(即二進(jìn)制格式)。第4步:將明文中字母“R”的二進(jìn)制值向左移一位(即左移格式)。第5步:將得到的明文字母“R”的左移格式值轉(zhuǎn)換為XOR(即XOR格式)。根據(jù)上面的步驟對(duì)明文字母“R”進(jìn)行加密運(yùn)算,筆者發(fā)現(xiàn)經(jīng)過(guò)4次加密運(yùn)算(Change1-4),明文字母“R”(的ASCII值為82)轉(zhuǎn)換為密文字母“Z”(的ASCII值為90)并存放到云存儲(chǔ)中,這就完成了第一級(jí)數(shù)據(jù)加密過(guò)程,如圖4所示。
圖4 換位加密算法的加密過(guò)程
第2級(jí)數(shù)據(jù)加密過(guò)程為置換加密算法運(yùn)用以下公式對(duì)數(shù)據(jù)進(jìn)行加密運(yùn)算:E =(p + k + i) % 128。公式中“E”為二級(jí)加密后輸出結(jié)果一般為ASCII值以十進(jìn)制形式表示的數(shù)值或?qū)?yīng)的字母值?!皃”為第1級(jí)加密運(yùn)算后得到的加密后文本值,如上文中提到的一級(jí)加密運(yùn)算后字母“Z”的數(shù)值(ASCII值為90)?!発”為密鑰值,這里設(shè)為常量:7?!癷”為置換位移值,這里設(shè)為常量:0。
根據(jù)上述公式可以得到二級(jí)加密的密文。密文為一般以十進(jìn)制表示的ASCII值。例如:
E = (p + k + i) % 128
= (90 + 7 + 0) % 128
= 97
根據(jù)以上加密算法公式,得到密文“E”的值為97是以十進(jìn)制表示的ASCII值。
將第2級(jí)加密得到的密文值“E”進(jìn)行解密運(yùn)算,數(shù)據(jù)解密過(guò)程首先為置換解密算法,運(yùn)用以下公式對(duì)數(shù)據(jù)進(jìn)行解密運(yùn)算:D = ((E - k - i) + 128) %128。公式中“E”為二級(jí)加密后輸出結(jié)果。如上文中提到的二級(jí)加密運(yùn)算后密文“E”的數(shù)值97?!発”為密鑰值,這里設(shè)為常量:7?!癷”為置換位移值,這里設(shè)為常量:0。公式中得到“D”的值為第1級(jí)加密運(yùn)算后得到的密文值,也就是上文中“P”的值。根據(jù)上述公式可以得到二級(jí)加密算法執(zhí)行前的密文值,也就是得到一級(jí)加密算法結(jié)束后的密文值。例如:
D = ((E - k - i) + 128) % 128
= ((97 - 7- 0) +128) % 128
= 90
根據(jù)以上解密算法公式,得到二級(jí)解密明文“D”也就是上文中一級(jí)加密算法得到的密文“P”用十進(jìn)制表示的ASCII值為90轉(zhuǎn)換成明文字母“Z”。
一級(jí)解密算法也就是一級(jí)加密算法的逆運(yùn)算為換位解密算法,第1步:將得到的二級(jí)解密密文“Z”,它的十進(jìn)制ASCII值為90轉(zhuǎn)化為二進(jìn)制(即二進(jìn)制格式)。第2步:解密密文“Z”的二進(jìn)制格式取反轉(zhuǎn)換為XOR格式。第3步:將解密密文中字母“Z”的二進(jìn)制值向右移一位(即右移格式)。第4步:把右移格式中的二進(jìn)制數(shù)轉(zhuǎn)換為ASCII值以十進(jìn)制數(shù)表示為82即字母“R”,解密過(guò)程結(jié)束。根據(jù)上面的步驟對(duì)二級(jí)解密密文字母“Z”進(jìn)行解密運(yùn)算,筆者發(fā)現(xiàn)經(jīng)過(guò)3次解密運(yùn)算(Change1-3),二級(jí)解密密文字母“Z”(的ASCII值為90)轉(zhuǎn)換為明文字母“R”(的ASCII值為82)并輸出到云計(jì)算客戶端/用戶,這就完成了多級(jí)數(shù)據(jù)解密的全過(guò)程,如圖5所示。
圖5 換位加密算法的解密過(guò)程
云計(jì)算是一個(gè)大型的、易于訪問(wèn)的虛擬化資源服務(wù)系統(tǒng),向客戶提供硬件、開(kāi)發(fā)平臺(tái)和各種數(shù)據(jù)處理服務(wù)。云計(jì)算的發(fā)展目標(biāo)是解決廣大云用戶的需求。隨著云技術(shù)應(yīng)用于更多的領(lǐng)域,它的安全問(wèn)題也引起越來(lái)越多人的關(guān)注,所以需要解決云技術(shù)中的安全問(wèn)題。與云計(jì)算相關(guān)的主要數(shù)據(jù)安全問(wèn)題有數(shù)據(jù)隱私性、數(shù)據(jù)完整性和防數(shù)據(jù)竊取等。多級(jí)加密算法可以更好地解決云計(jì)算中的數(shù)據(jù)泄漏問(wèn)題。提高云計(jì)算內(nèi)存儲(chǔ)數(shù)據(jù)的安全水平,解決云計(jì)算提供商的安全威脅。本文提出了一種基于多級(jí)加密、解密算法的新數(shù)據(jù)安全解決方案,該方案使用了ASCII半碼128個(gè)字符加密的反向凱撒密碼算法。本文的主要范圍是解決云提供商和云消費(fèi)者(云用戶)使用多級(jí)加密、解密方法進(jìn)行多級(jí)加密時(shí)的安全問(wèn)題。與其他方法相比,密文的結(jié)構(gòu)較為復(fù)雜,加密、解密過(guò)程中耗費(fèi)的資源較少,降低了云計(jì)算運(yùn)行成本,提高了計(jì)算效率。盡管效率提高了,但是存儲(chǔ)在第三方區(qū)域的數(shù)據(jù),尤其是互聯(lián)網(wǎng)上的數(shù)據(jù)仍然存在安全威脅。由于云計(jì)算的數(shù)據(jù)安全問(wèn)題,許多商業(yè)組織都害怕將數(shù)據(jù)存儲(chǔ)在云中,因?yàn)檫@些數(shù)據(jù)與業(yè)務(wù)相關(guān)。因此,云計(jì)算提供商最具挑戰(zhàn)性的任務(wù)是為其數(shù)據(jù)提供較高的數(shù)據(jù)存儲(chǔ)安全空間。未來(lái),谷歌云SQL將用來(lái)實(shí)現(xiàn)這種多級(jí)加密解決方案。