新聞中心
云計算的安全性的難題,有解還是無解?
2010-05-12 14:04:50
云計算 安全性的難題,有解還是無解?

對于Google來說,如果希望AppEngine能夠獲得商業(yè)上的巨大成功,吸引更多用戶,尤其是企業(yè)用戶,最大的挑戰(zhàn)在于,如何保障客戶的數(shù)據(jù)和私有程序的安全。
舉個例子,譬如Google想勸說某家銀行,用不著銀行自己建數(shù)據(jù)中心,把銀行的數(shù)據(jù)存到Google的云計算平臺,每月給Google一筆數(shù)據(jù)托管費(fèi)即可。銀行很可能會問兩個問題,
1. 如何防范Google員工偷窺銀行的數(shù)據(jù)?
2. 銀行有投資業(yè)務(wù),所以銀行自己開發(fā)了一套軟件,用于評估投資風(fēng)險和收益。如何防范Google員工偷窺這些軟件的代碼?
Google當(dāng)然會派律師去游說,指天畫地地發(fā)毒誓,說如果出現(xiàn)Google偷窺數(shù)據(jù)及代碼的情況,根據(jù)雙方合同,Google必將受到法律嚴(yán)懲,等等。
但是銀行還是不放心,作案取證本來就麻煩,如果Google再做點(diǎn)手腳遮掩,很可能查無實(shí)據(jù)。即便能找到實(shí)據(jù),一個案子辦下來,時間也得拖很長。
這個問題,困擾的不是Google一家,而是所有負(fù)責(zé)數(shù)據(jù)托管的公司面臨的共同問題。所以,現(xiàn)在只有兩類公司,敢把數(shù)據(jù)托管給他人。一種是中小企業(yè),他們或許會覺得自己在競爭對手眼里不那么重要,對手不至于甘冒風(fēng)險去刺探自己的機(jī)密。另一種是數(shù)據(jù)本身機(jī)密性不高的公司,譬如新浪網(wǎng),天涯社區(qū)等等,他們的數(shù)據(jù)內(nèi)容本來就是公開的。
所以,如果Google打算吸引重量級企業(yè)用戶來使用云計算平臺,最好的辦法是從技術(shù)上想出路,保證做到,即便Google挖空心思想偷窺,也看不到。
1. 有人問,為何不用VPN技術(shù)呢?
VPN(Virtual Private Network)虛擬私網(wǎng),解決的是在如何通過公共網(wǎng)絡(luò),遠(yuǎn)程訪問企業(yè)內(nèi)部私網(wǎng)的問題,譬如在家處理公司業(yè)務(wù),需要把自家的電腦,通過公共網(wǎng)絡(luò),接入到公司內(nèi)部網(wǎng)絡(luò)中去。所以,VPN解決的問題主要在于,保證家里電腦和公司電腦傳輸數(shù)據(jù)時,數(shù)據(jù)通過公網(wǎng)時的安全。
經(jīng)常在北京街頭看到振遠(yuǎn)護(hù)衛(wèi)的押運(yùn)車,以及持槍的押運(yùn)員,負(fù)責(zé)運(yùn)輸現(xiàn)鈔,有人戲稱他們是振遠(yuǎn)鏢局。鏢局的任務(wù)之一是,把現(xiàn)鈔從銀行押運(yùn)到各個ATM 自動取錢機(jī),中途通過公共馬路。現(xiàn)鈔安全到達(dá)目的地,鏢局的任務(wù)圓滿完成。但是,如果有誰把ATM取錢機(jī)撬開了,鏢局不負(fù)責(zé)任。
類似的道理,客戶可以通過VPN把數(shù)據(jù)安全地傳輸?shù)紾oogle云計算平臺,但是VPN不能阻止Google的內(nèi)部員工偷窺存放在Google機(jī)器上的數(shù)據(jù)。
[[10916]]
2. 還有人建議,可以給數(shù)據(jù)加密。
客戶在上傳數(shù)據(jù)到Google云計算平臺前,先用私鑰(private key)給數(shù)據(jù)加密,這樣存儲在Google云計算平臺的數(shù)據(jù),是加了密的數(shù)據(jù)。Google員工即便打開了文件,看到的也不過是一堆亂碼。當(dāng)客戶授權(quán)給他的同事看數(shù)據(jù)時,給同事一份公鑰(public key)。同事用這個公鑰解碼,然后就能讀到真實(shí)的內(nèi)容了。
德國人的鑰匙很有意思,辦公室的鑰匙,同時可以打開大樓的門,以及公司的門,但是不能打開隔壁辦公室的門。隔壁辦公室的鑰匙,也可以打開大樓的門,以及公司的門。所以,德國人的鑰匙和鎖,是有層次的。
公鑰也可以這么設(shè)計,一個部門的公鑰,不僅可以解密本部門的文件,而且可以解密公司內(nèi)部公開的文件,但是不能解密其它部門的文件。實(shí)現(xiàn)這樣有層次的公鑰并不難,一個簡單的辦法是把整個公鑰分成幾段,第一段負(fù)責(zé)公司內(nèi)部公開的文件,第二段負(fù)責(zé)某特定部門的文件等等。
這個辦法猛一聽起來似乎可行,但是仔細(xì)想想?yún)s不然。它有四個缺陷,a. 不能給程序加密,b. 不能搜索加了密的數(shù)據(jù),c. 不能給數(shù)據(jù)庫文件加密,d. 公司員工離職后,有可能會造成私鑰和公鑰的外泄。
3. 程序如何加密。
按照前一段的思路,平時給程序加密,只有當(dāng)運(yùn)行程序前,才解密。程序運(yùn)行結(jié)束后,再度加密,同時銷毀解密了的程序。但是這個辦法不可行。
解密和加密,是相當(dāng)耗用CPU的,同時占用時間也比較長。如果實(shí)施平時加密,用時解密的措施,用戶等待時間會相當(dāng)長。更嚴(yán)重的是,通常一段程序不能解決所有問題,一段程序往往會調(diào)用其它程序,其它程序又調(diào)用另外程序。如果平時把所有程序加密,用時再逐個解密,整個流程將占用很長時間,這將嚴(yán)重影響用戶的體驗(yàn)。
現(xiàn)實(shí)中通行的辦法是給程序變形,學(xué)名叫Obfuscation。道理很簡單,把程序中的變量名稱轉(zhuǎn)換掉,同時切割整個程序,并且重新排序,以便混淆耳目。變了型的程序依然可以運(yùn)行。
正常的編譯過程,是把人類可讀的源代碼(譬如用Java寫的程序),翻譯成機(jī)器代碼(譬如Java bytecode)。而反編譯是把機(jī)器代碼,逆向翻譯成人類可讀的源代碼。雖然Obfuscation不能從根本上阻止反編譯,但是卻增加了這個工作的難度。
雖然有難度,但是重賞之下必有勇夫。譬如,如果能盜竊銀行密碼,肯定會有人不辭勞苦地反編譯。
4. 加密與搜索。
“Greatness is never a given, it must be earned”,這句話怎么翻譯?在Google或者百度里搜一搜這句話,一定會發(fā)現(xiàn)這是奧巴馬總統(tǒng)就職演說中的一句。有人翻譯成,“偉大不是憑空而來的,而是贏得的”。意思當(dāng)然不錯,但是覺得不如原句有氣勢,不如翻譯成,“坐等等不來偉大,偉大必定來自于努力”。
Google和百度是如何搜索到這話出自奧巴馬的演講呢?道理說穿了并不復(fù)雜。
首先,Google和百度建一個索引,學(xué)名叫倒排索引(inverted index)。倒排索引中記錄了每個單詞出現(xiàn)在哪些文章中,而且記錄了在這些文章中的什么位置出現(xiàn)過。
其次,當(dāng)用戶搜索“Greatness is never a given”,搜索引擎通過倒排索引,查找“greatness”在哪些文章中出現(xiàn)過,查找“never”在哪些文章中出現(xiàn)過,等等。然后把眾多的搜索結(jié)果合并起來,看看哪些文章中不僅出現(xiàn)過“greatness”,還出現(xiàn)過“never”,“given”等等。
如果把奧巴馬原文加了密,不僅每個詞都變成了亂碼,而且詞與詞之間的空格消失了,甚至連詞序也可能被打亂。這樣一來,就沒有辦法按照通常的做法構(gòu)建倒排索引。
怎么辦?思路有三條。
a. 把加密算法和構(gòu)建倒排索引的算法通盤考慮,重新設(shè)計一套一體化的算法。
這個思路能夠一攬子解決我們面臨的所有問題,但是設(shè)計這套算法的難度很高。目前還沒有人能夠想出有效的算法。
b. 客戶自己動手建倒排索引,然后把索引加密,上傳到云計算平臺。
但是構(gòu)建倒排索引是一件計算量很大的工作,如果客戶能夠自己構(gòu)建倒排索引,那么就沒有必要使用云計算平臺。理由是,云計算平臺的賣點(diǎn)是方便客戶處理繁重的數(shù)據(jù)計算。如果云計算平臺不能幫助客戶構(gòu)建他們專用的倒排索引,那么云計算的賣點(diǎn)就大大失色。
更嚴(yán)重的問題是,在使用索引的時候,必須先解密。如果解密了的索引被Google員工偷看了,那么加密就失去意義了。原因是,索引中透露了正文中出現(xiàn)過那些詞,以及這些詞出現(xiàn)的位置。通過索引中的這些信息,可以復(fù)制原文的。即便不能一字不漏的全文復(fù)制,也能復(fù)制得八九不離十。
所以,這個思路不可行。
c. 在云計算平臺中分離出一部份作為密室,專供企業(yè)用戶存放保密級別很高的數(shù)據(jù),以及運(yùn)行保密級別很高的程序。
信息安全的法則是分離分離再分離。給每個企業(yè)用戶分配一部份機(jī)器作為密室。這些機(jī)器的root權(quán)限掌握在企業(yè)用戶手里。Google的員工只能監(jiān)控密室中的機(jī)器的CPU,RAM和IO的使用情況,但是他們沒有權(quán)限進(jìn)入機(jī)器,查看文件,運(yùn)行程序。
這個辦法雖然技術(shù)含量不高,但是比較容易實(shí)現(xiàn)。缺點(diǎn)是容易造成資源浪費(fèi)。因?yàn)槿绻o每個客戶單獨(dú)開密室,即使密室里的機(jī)器空閑,別人也沒法用。
5. 加密與數(shù)據(jù)庫。
數(shù)據(jù)庫最多只能對字段逐個加密,譬如“greatness”變成“@#¥%”。但是不能整句整段地加密,否則數(shù)據(jù)庫的索引,B+ tree,就沒法構(gòu)建。
所以,對數(shù)據(jù)庫的系統(tǒng)管理員,無法實(shí)施高級別的加密。
6. 私鑰和公鑰的外泄。
公司員工離職后,很可能復(fù)制一份公司的公鑰和在職期間自己使用的私鑰帶走。如果沿用前面所述,用私鑰加密,用公鑰解密的辦法,員工離開公司后,仍然能閱讀公司的文件,甚至篡改當(dāng)年自己在職期間起草的文件。
所以,最妥善的辦法是不讓員工直接接觸公司密鑰。從這個原則出發(fā),作者也好,讀者也好,都沒有密鑰。作者要加密,讀者要解密,讓他們把文件發(fā)給密鑰中心,由密鑰中心統(tǒng)一負(fù)責(zé)加密和解密。
另外,即便由密鑰中心負(fù)責(zé)保管密鑰,如果長期使用同一套密鑰,還是不安全。所以,密鑰中心定期更換密鑰,分批給文件重新加密。
這個辦法可行,但是比較笨拙,因?yàn)?,a. 密鑰中心成為瓶頸,b. 給舊文件重新加密是負(fù)擔(dān)很重的工作。
為Google計,目前能做的,似乎是明確云計算的定位。
1. 鎖定目標(biāo)客戶,這些客戶有一個共性,就是對內(nèi)容和程序的安全性不敏感。
比如各種門戶網(wǎng)站,論壇,B2C網(wǎng)上商店,政務(wù)和各種公共事業(yè)的網(wǎng)站,以及中小型企業(yè)等等。這部分用戶數(shù)量不少,市場相當(dāng)廣闊。
2. 提供特色服務(wù),尤其是海量數(shù)據(jù)處理。
云計算平臺類似于巨型計算機(jī)。客戶利用云計算平臺,處理自己的計算中心很難完成的海量數(shù)據(jù)處理。例如:電腦動畫制作,天氣預(yù)報等等。
3. 根據(jù)不同的保密等級,做分級處理。
實(shí)際上一個企業(yè)的重要秘密信息是不多的,機(jī)密文件存放在企業(yè)自己的機(jī)房里。其它不需要保密的文件,托管到云計算平臺。這個市場也是很大的。
名稱欄目:云計算的安全性的難題,有解還是無解?
標(biāo)題路徑:http://fisionsoft.com.cn/article/dhpphpe.html


咨詢
建站咨詢
