自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RSA中國(guó)大會(huì)陳海波:道里可信結(jié)構(gòu)在云安全保障方面的應(yīng)用

安全 云安全
對(duì)于數(shù)據(jù)在云里面在線數(shù)據(jù)的威脅,現(xiàn)在很多時(shí)候操作員、攻擊者可以做到哪些事情?我們要做一些假設(shè),首先沒(méi)有絕對(duì)的安全,我們只能有相對(duì)的安全,相對(duì)的安全就是我們假設(shè)誰(shuí)是可信的,誰(shuí)是不可信的,我們講硬件的信任根是什么。

【51CTO.com 綜合報(bào)道】為期兩天的RSA 2010大會(huì)在北京落幕了,不過(guò)很多業(yè)內(nèi)人士和網(wǎng)絡(luò)安全愛(ài)好者都還覺(jué)得意猶未盡。那么,51CTO作為特邀媒體,對(duì)大會(huì)進(jìn)行了相關(guān)報(bào)道。在這里我們來(lái)整理一下大會(huì)中精彩的演講。下面就是復(fù)旦大學(xué)并行處理研究所助理教授陳海波的演講內(nèi)容,主題是《道里可信結(jié)構(gòu)在云計(jì)算服務(wù)隱私安全保障方面的應(yīng)用》。更多內(nèi)容請(qǐng)參閱RSA 2010信息安全國(guó)際論壇專(zhuān)題報(bào)道

陳海波:大家下午好!我是來(lái)自復(fù)旦大學(xué)的陳海波,我給大家介紹的是在云計(jì)算環(huán)境里面,如何用虛擬化保證數(shù)據(jù)的安全性。我們?cè)诜窃茣r(shí)代,我們的數(shù)據(jù)是怎么樣保護(hù)的?在非云時(shí)代,我們數(shù)據(jù)放在自己個(gè)人電腦里,在自己電腦上裝很多防火墻,然后再加上一些密碼鎖,把數(shù)據(jù)可以保護(hù)起來(lái)。在云時(shí)代,我們又要逐步把個(gè)人數(shù)據(jù)放到云端里,放到云端里去以后,問(wèn)題在于我們?cè)趺礃幽軌虮Wo(hù)我們的數(shù)據(jù)。我們現(xiàn)在不能再像自己本地電腦一樣,給每個(gè)數(shù)據(jù)加一把鎖鎖起來(lái),這樣的話就會(huì)給數(shù)據(jù)帶來(lái)一些挑戰(zhàn)。所以我們看到在云時(shí)代,數(shù)據(jù)隱私性是非常重要的特性,因?yàn)槲覀儾荒馨褦?shù)據(jù)放到云端以后,云的提供者或者云的租客把我的數(shù)據(jù)偷走,再對(duì)它非法的使用。

在這樣一個(gè)云里面,對(duì)于在線的數(shù)據(jù)存在哪些威脅?

第一個(gè)威脅,從云里本身來(lái)的。主要有一些問(wèn)題,我們可以相信一個(gè)云的提供商,但是由于現(xiàn)在一些技術(shù)和法律手段局限性,我們很難有有效的手段保證我們不會(huì)使得其中的某個(gè)云的操作者能夠獲取我們這樣一些隱私數(shù)據(jù)。在目前這樣的環(huán)境里,大部分情況下,如果一個(gè)云的操作者擁有對(duì)你存放數(shù)據(jù)的計(jì)算機(jī)有控制權(quán),他就可以把你的數(shù)據(jù)竊取,然后進(jìn)行非法使用。第二個(gè),從網(wǎng)絡(luò)來(lái)的,我們以前把數(shù)據(jù)放在個(gè)人電腦里,跟其他人的數(shù)據(jù)完全隔離。在云里面以后,也許你的數(shù)據(jù)就在我的數(shù)據(jù)旁邊,可以通過(guò)各種各樣的方式來(lái)竊取你的數(shù)據(jù)。

舉例:我現(xiàn)在自己在云上面部署這樣的服務(wù),現(xiàn)在需要把我的個(gè)人信息放進(jìn)去,大家都知道現(xiàn)在在人口普查,我要調(diào)查一下到底中國(guó)有多少有錢(qián)人,然后他們對(duì)應(yīng)的婚姻狀態(tài)是什么樣的。對(duì)應(yīng)這樣一個(gè)云,正確的服務(wù)應(yīng)該是如果把我的數(shù)據(jù)提供到云上面以后,他肯定覺(jué)得我不是一個(gè)有錢(qián)人,回答人口普查的結(jié)果是我不是有錢(qián)人。而且人口普查的過(guò)程不應(yīng)該把我的個(gè)人隱私數(shù)據(jù)放到網(wǎng)上去。很不幸的是,現(xiàn)在認(rèn)為很大威脅對(duì)于云里面提供者對(duì)客戶(hù)數(shù)據(jù)的非法訪問(wèn),他可以通過(guò)各種手段,把云平臺(tái)竊取,竊取一些隱私數(shù)據(jù),同時(shí)他可以修改反饋數(shù)據(jù)。對(duì)我來(lái)講,我不是一個(gè)有錢(qián)人,但是它會(huì)干擾調(diào)查的結(jié)果。另外來(lái)自于你的鄰居甚至網(wǎng)絡(luò)的攻擊,這種攻擊通過(guò)在云的平臺(tái)里面裝入惡意代碼,同樣也可以竊取信息,同時(shí)篡改云的結(jié)果。

云對(duì)于數(shù)據(jù)安全性帶來(lái)了一些新的挑戰(zhàn),包括云提供者、操作員之間可能造成的一些侵入。另外你的鄰居很有可能是你的競(jìng)爭(zhēng)對(duì)手,甚至來(lái)自網(wǎng)絡(luò)的攻擊,都可能會(huì)導(dǎo)致你的數(shù)據(jù)會(huì)被竊取。

我們講安全,基本上都有一個(gè)威脅的模型,我們首先假設(shè)這樣的一個(gè)攻擊者到底能做什么。假設(shè)攻擊者能夠去看云存儲(chǔ)磁盤(pán)里面的文件,他可以修改這些文件。我們知道一個(gè)操作者很容易查看磁盤(pán)里面的內(nèi)容,對(duì)磁盤(pán)文件內(nèi)容進(jìn)行修改,甚至他把磁盤(pán)移走。同樣數(shù)據(jù)的生命周期有多種多樣的,一種形式,我僅僅存在磁盤(pán)上面,這種方式非常簡(jiǎn)單,在這種方式下面只需要把它加密好,放在磁盤(pán)上面,攻擊者哪怕把你的硬盤(pán)拿走,也不會(huì)發(fā)生例如"艷照門(mén)"這樣的事件。但是很不幸的是,我們數(shù)據(jù)需要用來(lái)處理的,處理的時(shí)候就不可避免要加載到內(nèi)存里面,然后才能被處理。所以攻擊者還能做到的一點(diǎn)是能夠檢查并且修改內(nèi)存里面的內(nèi)容,比如我們?cè)谔摂M機(jī)的環(huán)境下,你如果是一個(gè)控制虛擬機(jī)管理軟件的人,可以把虛擬機(jī)里的值讀出來(lái),把內(nèi)存修改,甚至通過(guò)一些外設(shè)訪問(wèn)方式把內(nèi)存存到某一個(gè)秘密的位置。

數(shù)據(jù)要進(jìn)行處理,處理的話就離不開(kāi)CPU,在CPU里面也會(huì)存在很多這種狀態(tài),因?yàn)樵偬幚碛?jì)算的時(shí)候,相當(dāng)于你的數(shù)據(jù)就在機(jī)器里面留了一個(gè)腳印,這些腳印也會(huì)泄露一些隱私信息。比如我們上網(wǎng)銀的時(shí)候,在某個(gè)時(shí)間內(nèi),你的網(wǎng)銀密碼存在CPU計(jì)算器里面的,這也是攻擊者可以做到的一點(diǎn)。

還有中間人的攻擊,在云的用戶(hù)和云的提供者之間,很有可能把你的網(wǎng)絡(luò)信道劫持,劫持以后可以偽裝成我是可信員,請(qǐng)把你的數(shù)據(jù)放到我這兒來(lái)。

另外還有一種很強(qiáng)大的攻擊,就是拒絕服務(wù)。拒絕服務(wù),就可以提供一些錯(cuò)誤的服務(wù),本來(lái)你要做的事情是把這個(gè)數(shù)據(jù)存到這個(gè)磁盤(pán)上面,結(jié)果他說(shuō)他把這個(gè)數(shù)據(jù)丟了。這種情況可能會(huì)出現(xiàn)bug暫停的一些錯(cuò)誤,作為執(zhí)行者可以執(zhí)行任意行為。

攻擊者不能做什么?我們認(rèn)為云的提供者本意是善意的,因?yàn)樗闹饕康氖翘峁┮粋€(gè)云,來(lái)竊取你的數(shù)據(jù),主要目的是賺錢(qián),我給你提供服務(wù),你付費(fèi)給我。他的目的是希望提供可信的服務(wù)。所以在這種環(huán)境下,大部分機(jī)房里面都有很多攝象頭了,所以你不可能跑到機(jī)房里把機(jī)箱打開(kāi),在CPU上插一根線,在操作過(guò)程當(dāng)中把所有數(shù)據(jù)記錄下來(lái)。這是可以通過(guò)攝象頭來(lái)防止的。

另外,我們假設(shè)它不能把TPM(可信平臺(tái)模塊)認(rèn)證在這樣機(jī)器上面運(yùn)行的軟件,是不能夠破壞的,也不能把TPM里面的P給獲取。同時(shí)我們假設(shè)密碼學(xué)的算法是安全的,我們現(xiàn)在不認(rèn)為比較容易把RSA、AES等密碼給破解。

對(duì)于數(shù)據(jù)在云里面在線數(shù)據(jù)的威脅,現(xiàn)在很多時(shí)候操作員、攻擊者可以做到哪些事情?介紹系統(tǒng)之前我們首先要知道一點(diǎn),我們要做一些假設(shè),首先沒(méi)有絕對(duì)的安全,我們只能有相對(duì)的安全,相對(duì)的安全就是我們假設(shè)誰(shuí)是可信的,誰(shuí)是不可信的,我們講硬件的信任根是什么。

現(xiàn)在很多機(jī)器上面有很多可信平臺(tái)模塊,可信平臺(tái)模塊所做到的事情,其實(shí)是主板上面加了一個(gè)協(xié)處理器,能夠?qū)@個(gè)平臺(tái)上面一些運(yùn)行的軟件進(jìn)行度量,然后用戶(hù)通常很難把這樣一個(gè)TPM暴力的拆掉,拆掉以后,計(jì)算機(jī)也不能用了。TPM在PC機(jī)的設(shè)計(jì)里面設(shè)計(jì)成信任根。

TPM能提供什么樣的功能?TPM主要提供第一點(diǎn)是它有一些私鑰,有了這個(gè)私鑰就可以做一些認(rèn)證,這樣的私鑰不會(huì)離開(kāi),只是用來(lái)做簽名用的。還有一個(gè)hash,把你要加載的軟件進(jìn)行hash,會(huì)得到唯一的一個(gè)數(shù)據(jù),這樣一個(gè)數(shù)據(jù),可以用來(lái)跟以往數(shù)據(jù)判斷,如果是匹配的,就是你所裝載的是你所期望的軟件。

平臺(tái)配制的計(jì)算器,主要用來(lái)存儲(chǔ)這些hash值,有很多,因?yàn)槲覀冊(cè)诙攘康臅r(shí)候,不僅僅度量OS,也許我們度量應(yīng)用,還有度量hypervisor之類(lèi)的。

還有隨機(jī)數(shù)的序列,如果偽造的話,可能導(dǎo)致密碼被破解。所以在有TPM環(huán)境下,在傳統(tǒng)方式下面,理想的信任鏈模型是什么樣?我們首先度量bios,然后把操作系統(tǒng)的加載器進(jìn)行度量,度量好了以后,會(huì)度量hypervisor,就是我們VM可以被度量。度量好hypervisor以后,再度量操作系統(tǒng),最終度量應(yīng)用,這是一個(gè)非常完美的故事,這樣我們就可以精確的知道,運(yùn)行的時(shí)候這些都是已知的,都可能是可以被信任的。

我們?nèi)绾巫鲞@樣一件事情?我們首先要做這樣一個(gè)Attestation,防止中間有一個(gè)人在里面?zhèn)窝b我是一個(gè)可信員,請(qǐng)把數(shù)據(jù)交給我。它所做的事情就是跟云的服務(wù)器做一個(gè)認(rèn)證,跟警察盤(pán)查路人一樣,說(shuō)你是誰(shuí),你身份證號(hào)碼是什么,如果認(rèn)證的話,你不是一個(gè)壞蛋。云的用戶(hù)會(huì)發(fā)一個(gè)問(wèn)題給云的服務(wù)器,服務(wù)器通過(guò)TPM會(huì)返回hash值,hash值就表示在這個(gè)云平臺(tái)里面運(yùn)行的硬件、軟件確實(shí)是用戶(hù)所期望的,經(jīng)過(guò)這樣以后,我們就可以進(jìn)行度量。hash值是獨(dú)一能夠反映當(dāng)前軟件的狀態(tài)。

我們既然講到軟件的信任鏈,在這樣信任鏈模式下有哪些問(wèn)題,我們還需要做什么?在這樣一個(gè)信任鏈模式下來(lái),中間確實(shí)存在這樣一個(gè)(gap),因?yàn)槲覀冎虚g度量鏈里面有一個(gè)非常龐大的東西。OS是一個(gè)非常復(fù)雜的軟件,windows有幾千行代碼,在這樣復(fù)雜的軟件里面,沒(méi)有人能夠說(shuō)這樣一個(gè)操作系統(tǒng)是可信的,這個(gè)操作系統(tǒng)是沒(méi)有病毒的,沒(méi)有間諜軟件的?;旧现灰且慌_(tái)聯(lián)網(wǎng)的機(jī)器,沒(méi)有人可以確定的說(shuō)我的機(jī)器里面沒(méi)有漏洞、后門(mén)或者間諜軟件,所以在一個(gè)度量的連里面,我們只能保證操作系統(tǒng)在加載的時(shí)候是可信的,但是一旦你上線以后,不停跟云的用戶(hù)打交道,里面有好人也有壞人,也許壞人把這個(gè)操作系統(tǒng)里面加了木馬、病毒以后,你在啟動(dòng)的時(shí)候是怎么樣,并不代表這個(gè)操作系統(tǒng)以后會(huì)是可信的。

基于這樣一個(gè)假設(shè),有一個(gè)Goal的體系結(jié)構(gòu),我們還是認(rèn)為數(shù)據(jù)是云的核心,我們要保護(hù)只是云中間的數(shù)據(jù),尤其是數(shù)據(jù)隱私性不會(huì)被破壞?,F(xiàn)在有很多用戶(hù)對(duì)云遲疑態(tài)度,我放進(jìn)去的數(shù)據(jù)到底能不能保護(hù)云的隱私性。

第二個(gè)作用,就是這樣的軟件是不是可能會(huì)被破壞掉?主要有兩個(gè)目的,第一個(gè)目的,也許這個(gè)軟件有版權(quán)的,認(rèn)為這個(gè)軟件非常重要,放在云上面以后,你會(huì)擔(dān)心把這個(gè)軟件放上去以后,會(huì)不會(huì)你的競(jìng)爭(zhēng)對(duì)手把你的軟件拿過(guò)去用。第二的目的,會(huì)不會(huì)有人把你的軟件篡改以后再進(jìn)行服務(wù)。我們系統(tǒng)主要達(dá)到這兩個(gè)目標(biāo)。

基于這樣的目標(biāo),我們提出一個(gè)體系結(jié)構(gòu)。我們假設(shè)這個(gè)操作系統(tǒng)本身是不可信的,我們假設(shè)這樣一個(gè)操作系統(tǒng)里面可能會(huì)被裝了間諜軟件、裝了木馬,甚至有人可以完全控制操作系統(tǒng)這個(gè)行為。盡管假設(shè)hypervisor是一個(gè)可信的軟件,為什么我們相信VMM,而不相信OS。首先我們從實(shí)現(xiàn)復(fù)雜度來(lái)看,VMM通常幾萬(wàn)行,幾十萬(wàn)行代碼,但是操作系統(tǒng)是幾千萬(wàn)行代碼,數(shù)量級(jí)完全不一樣。第二,VMM里面通常是一個(gè)靜態(tài)的,現(xiàn)在很少有VMM說(shuō)你可以在啟動(dòng)以后,在里面插入一個(gè)模塊,但是現(xiàn)在操作系統(tǒng)就不一樣,現(xiàn)在把這樣一個(gè)操作系統(tǒng)里面插入一個(gè)新的硬件,它也許就裝入一個(gè)新的模塊,它有比較強(qiáng)大的接口,病毒也可以插入一個(gè)模塊,讓你的操作代碼就變成惡意的了。VMM當(dāng)中,這個(gè)代碼數(shù)據(jù)是靜態(tài)的,你度量它以后,接下來(lái)執(zhí)行的時(shí)候,起來(lái)原來(lái)啟動(dòng)那樣的情況。VMM相對(duì)來(lái)講沒(méi)有直接跟用戶(hù)交互,只是提供服務(wù)整合,遷移,以及我們包含的安全的服務(wù),所以它是比較難被攻克的。

在我們這樣一個(gè)操作系統(tǒng)里面可以運(yùn)行各種各樣的服務(wù),一種是可以運(yùn)行可信的云服務(wù),這種是我們需要保護(hù)的。比如我們可以在里面運(yùn)行人口普查軟件,我們把數(shù)據(jù)提交上去,它會(huì)給你一個(gè)結(jié)果,而且同時(shí)不會(huì)把數(shù)據(jù)的隱私性破壞掉。同時(shí)還可以運(yùn)行其他的服務(wù),這些服務(wù)也許是惡意的,也許是善意的。

盡管操作系統(tǒng)是非可信,我們?cè)谔摂M機(jī)監(jiān)控系統(tǒng)里面加了行為約束層,如果把這樣一個(gè)軟件的行為或者一個(gè)人的行為約束好以后,他就不太容易做壞事。在我們這里,行為約束層所做的事情就是防止非可信的操作系統(tǒng)把這樣一個(gè)服務(wù)篡改掉。

TPM要去度量bios,VMM,度量到VMM里面就結(jié)束了,不度量上面的OS。在我們這樣一個(gè)保護(hù)里,應(yīng)用是由用戶(hù)提交上去的,用戶(hù)提交的應(yīng)用可能包含一些軟件,一些二進(jìn)制文件,一些他要操作的數(shù)據(jù)文件。我們?yōu)榱吮WC中間人這種攻擊,或者把這個(gè)數(shù)據(jù)從我的機(jī)器放到云的過(guò)程中間被篡改,我們讓用戶(hù)的數(shù)據(jù)和代碼進(jìn)行加密,他用的加密方式是TPM提供簽名過(guò)的密鑰,這種簽名過(guò)的密鑰只有TPM才能夠把這樣一個(gè)代碼或者數(shù)據(jù)解密。盡管有人在中間說(shuō)我是一個(gè)可信員,你把數(shù)據(jù)交給我,他拿到以后也是沒(méi)有用的。

啟動(dòng)方式,度量到hypervisor,也是VMM。我們沒(méi)有度量操作系統(tǒng)或者應(yīng)用,因?yàn)槲覀儧](méi)有辦法給一個(gè)一直變化的壞蛋發(fā)一個(gè)三好學(xué)生的證書(shū),說(shuō)你是一個(gè)三好學(xué)生。盡管這樣的話,你不能根據(jù)他在某一個(gè)時(shí)間點(diǎn)表現(xiàn)成為一個(gè)好人,就認(rèn)為他是一個(gè)好人,所以我們就不在這里度量OS,也不度量Attestation。

hypervisor可以通過(guò)我們提供的接口,可以和遠(yuǎn)端一些用戶(hù)進(jìn)行通信,可以讓用戶(hù)能夠知道這樣一個(gè)機(jī)器里面確實(shí)運(yùn)行了我們提供的hypervisor,然后你的數(shù)據(jù)放在我的hypervisor上面處理是安全的。還提供安全通信信道,主要為了做遠(yuǎn)程驗(yàn)證所需要的。#p#

如何保護(hù)云的應(yīng)用

介紹一下如何保護(hù)云的應(yīng)用。靜下來(lái)看到一個(gè)一個(gè)數(shù)據(jù)文件,但是在電腦里面運(yùn)行的時(shí)候,通常會(huì)體現(xiàn)成三個(gè)狀態(tài),第一個(gè)是CPU中間的狀態(tài),因?yàn)樵趫?zhí)行的時(shí)候必須要到處理器里面去執(zhí)行,處理器執(zhí)行的時(shí)候會(huì)留下腳印。第二個(gè)要執(zhí)行的時(shí)候,CPU,特別是要把這些數(shù)據(jù)和代碼放到內(nèi)存里面,還有I/O,因?yàn)樗愫靡院髸?huì)放到磁盤(pán)里面去,所以我們要保護(hù)的是操作系統(tǒng)不能夠通過(guò)CPU、內(nèi)存和這樣一個(gè)文件來(lái)修改我們的服務(wù)。

我們?nèi)绾伪Wo(hù)內(nèi)存里面的數(shù)據(jù)?如果把這個(gè)數(shù)據(jù)進(jìn)行計(jì)算的時(shí)候,我們首先把這個(gè)數(shù)據(jù)進(jìn)行解密。因?yàn)槲覀兦懊嫣岬接脩?hù)提交數(shù)據(jù)的時(shí)候,提交的是一個(gè)加密過(guò)的數(shù)據(jù)和代碼,他要執(zhí)行的話不能直接執(zhí)行密文,必須進(jìn)行解密。如果解密了以后,不對(duì)它進(jìn)行保護(hù),這樣操作系統(tǒng)就高興了,說(shuō)你已經(jīng)變成明文,就可以把你的數(shù)據(jù)給竊取。hypervisor保證的一點(diǎn)是這樣的內(nèi)存是不能被操作系統(tǒng)所看到的,為什么hypervisor能做到這一點(diǎn)?因?yàn)閔ypervisor實(shí)現(xiàn)的是計(jì)算機(jī)系統(tǒng)里面軟件的老大,它能說(shuō)你不能做這個(gè)事情,不能做那個(gè)事情,可以做到這一點(diǎn)。

如果操作系統(tǒng)要攻擊的話會(huì)通過(guò)什么方式?第一種是MMU翻譯,只有通過(guò)這個(gè)翻譯才能對(duì)內(nèi)存進(jìn)行訪問(wèn),我們只要防住對(duì)MMU的攻擊,就可以保證這個(gè)操作系統(tǒng)不能夠通過(guò)這種地址翻譯的方式來(lái)攻擊它。第二種是I/O MMU,是把內(nèi)存和外設(shè)進(jìn)行溝通的渠道。為什么要防住I/O MMU呢?因?yàn)楹芸赡芾锩嫜b一個(gè)惡意的設(shè)備,或者發(fā)了一個(gè)惡意的指令,說(shuō)你應(yīng)該把這個(gè)內(nèi)存里面的明文直接存到磁盤(pán)上面去,這樣就能夠把明文竊取。

如何防住MMU的攻擊?我們要理解操作系統(tǒng)如何管理內(nèi)存。我們知道每一個(gè)操作系統(tǒng)對(duì)應(yīng)每一個(gè)進(jìn)程都有頁(yè)表,每個(gè)頁(yè)表里面有地址空間,地址空間里面分用戶(hù)的和kernel的,在kernel里面,操作系統(tǒng)獲取處理器控制權(quán)的時(shí)候,不能讓他看到用戶(hù)的應(yīng)用,就沒(méi)有辦法直接訪問(wèn)應(yīng)用的內(nèi)存。當(dāng)從用戶(hù)模式切換到核心模式的時(shí)候,就把用戶(hù)的映射全部清掉,就不能直接訪問(wèn)那塊內(nèi)存。

另外通過(guò)一個(gè)惡意的應(yīng)用從另外一個(gè)地址映射它,我們要知道每個(gè)內(nèi)存業(yè)怎么映射的。hypervisor必須要做到能夠跟蹤每一個(gè)內(nèi)存頁(yè),當(dāng)它在映射的時(shí)候,檢查一下它是不是一個(gè)被保護(hù)的應(yīng)用內(nèi)存,如果是的話,它只能被這個(gè)被保存的內(nèi)存所映射。它發(fā)現(xiàn)的時(shí)候,如果內(nèi)存要映射它的話,就會(huì)把這樣的請(qǐng)求去除掉。

I/O MMU,虛擬機(jī)管理 I/O MMU表,用戶(hù)提供被保護(hù)的應(yīng)用上來(lái)的時(shí)候,hypervisor就把用戶(hù)所有的內(nèi)存,因?yàn)橛脩?hù)所有內(nèi)存里面包含隱私的數(shù)據(jù),把它制成設(shè)備不可訪問(wèn),這樣設(shè)備就沒(méi)有辦法通過(guò) I/O MMU的方式來(lái)竊取用戶(hù)的數(shù)據(jù)。因?yàn)槲覀儑?yán)格意義上隔離來(lái)講會(huì)帶來(lái)一些問(wèn)題,操作系統(tǒng)和用戶(hù)進(jìn)程之間會(huì)有一些交互,比如用戶(hù)掉到內(nèi)核里面的時(shí)候會(huì)做這樣一些工作,另外要傳遞一些數(shù)據(jù),比如通過(guò)操作系統(tǒng)讀一些數(shù)據(jù)的時(shí)候,就需要先把這個(gè)數(shù)據(jù)讀到內(nèi)核里面。我們?cè)趆ypervisor里面維護(hù)這兩個(gè)Buffer。如果這是kernel和用戶(hù)的交互可以通過(guò)Buffer傳遞,用戶(hù)給內(nèi)核的數(shù)據(jù)是經(jīng)過(guò)我們認(rèn)證的。

I/O是如何做的?我們用的一個(gè)方式是加密的,我們系統(tǒng)保證只要這個(gè)用戶(hù)應(yīng)用的隱私數(shù)據(jù)從內(nèi)存到磁盤(pán)里,被我們hypervisor加密的,盡管操作系統(tǒng)能看到磁盤(pán)里的文件,也只能拿到密文,沒(méi)有辦法把這個(gè)數(shù)據(jù)進(jìn)行解密。我們從內(nèi)存到I/O這條通道里面,把它進(jìn)行了加密。

在我們這樣一個(gè)系統(tǒng)里,二進(jìn)制文件如何做?首先我們對(duì)于每一個(gè)文件進(jìn)行加密,然后用TPM的鑰匙把AES進(jìn)行加密,不僅僅包含被加密文件,而且包含這個(gè)密鑰,就保證只有TPM的機(jī)器才能把這樣的數(shù)據(jù)給解開(kāi)。數(shù)據(jù)文件也是類(lèi)似。如果讀一個(gè)文件的時(shí)候,如果用戶(hù)從存儲(chǔ)里面讀一張銀行報(bào)表的時(shí)候,首先kernel幫你進(jìn)行磁盤(pán)操作,讀的是密文,hypervisor就會(huì)把這個(gè)數(shù)據(jù)放到Buffer里面,hypervisor就進(jìn)行解密,解密以后,就可以把這個(gè)數(shù)據(jù)發(fā)給用戶(hù)。在這個(gè)過(guò)程里,加密和解密對(duì)于用戶(hù)是透明的,用戶(hù)不知道我還要對(duì)這個(gè)數(shù)據(jù)進(jìn)行加密,其實(shí)我們透明的對(duì)他提供了這樣的保護(hù)個(gè)。對(duì)于CPU來(lái)講,可以自然的保護(hù)它。CPU是分時(shí)的,從一個(gè)進(jìn)程切換到另外一個(gè)進(jìn)程,可以進(jìn)行加載。hypervisor就可以說(shuō)把你之前被可信的應(yīng)用,會(huì)被保護(hù)的應(yīng)用,踩過(guò)的腳印擦掉,把它丟給其他的進(jìn)程進(jìn)行運(yùn)行。

這樣一個(gè)系統(tǒng)到底有沒(méi)有效果?我們做了一些測(cè)試。首先要防止攻擊,運(yùn)行一個(gè)Apache web server,攻擊者能把Linux內(nèi)核控制住,把內(nèi)存驗(yàn)證的代碼直接映射到內(nèi)存里面,再把代碼改掉。它在內(nèi)存里面,加密的模塊在內(nèi)存里面,就是0101一些二進(jìn)制數(shù)字。它所做的事情非常簡(jiǎn)單,你登陸這個(gè)網(wǎng)站,你的密鑰是不是對(duì),對(duì)的話,你可以做,不對(duì)的話就不能做。我們控制了OS以后,很難去攻擊它。也可以看到直接把這個(gè)代碼改掉,直接不要判斷了,直接pass掉就可以了。有了這樣一個(gè)保護(hù)以后,因?yàn)檫@道內(nèi)存被我們道里認(rèn)為是被保護(hù)應(yīng)用私有的內(nèi)存,操作系統(tǒng)看不到它,即使想映射它也沒(méi)有辦法被映射,所以就可以防住攻擊。

有些時(shí)候我們看一些編輯器,比如看銀行報(bào)表,有些咨詢(xún)公司提供的數(shù)據(jù),這些數(shù)據(jù)是非常貴的,沒(méi)有攻擊的時(shí)候,我們用編輯器就能看到這些東西。如果我們做了這樣一個(gè)攻擊軟件,沒(méi)有的話就不能做這樣一件事情。

我們?cè)谶@里講的兩個(gè)攻擊非常簡(jiǎn)單,實(shí)際上我們道里這樣一個(gè)平臺(tái)也是在使用,在清華大學(xué)里有一個(gè)云存儲(chǔ)平臺(tái)里,有幾千的用戶(hù),為清華提供云存儲(chǔ)的服務(wù)。原來(lái)碰到一個(gè)問(wèn)題,我們把數(shù)據(jù)放進(jìn)去的時(shí)候,我們就不確定它會(huì)不會(huì)把我的數(shù)據(jù)偷掉,我們知道之前高校發(fā)生很多問(wèn)題,招生名單都泄露出去,導(dǎo)致很多人不敢把數(shù)據(jù)放上去。用道里系統(tǒng)保護(hù)他們?cè)拼鎯?chǔ)平臺(tái),而且在清華里面測(cè)試了很久,很多人來(lái)攻擊,目前還沒(méi)有被攻破。

我們需要注意我們提供這樣的保護(hù),并不限制我們虛擬機(jī)的移動(dòng)性,我們還是可以進(jìn)行虛擬機(jī)的遷移。

性能方面我們進(jìn)行比較,因?yàn)榘踩皇敲赓M(fèi)的,一定會(huì)帶來(lái)性能損失,看看這個(gè)性能損失到底有多大。從我們一些應(yīng)用來(lái)看,做了好幾個(gè)應(yīng)用,比如FTV服務(wù)器,(HTVB)的網(wǎng)絡(luò)服務(wù)器,以及一些計(jì)算密集的任務(wù),發(fā)現(xiàn)性能開(kāi)銷(xiāo)大部分情況是小于10%,對(duì)于一些非常安全敏感的應(yīng)用也是比較合適的。

我們之前也做一些相關(guān)工作,在工作的時(shí)候需要相信OS,需要使用一些相關(guān)硬件,我們解決方案是基于軟件的方案,我們不需要特殊的硬件,只需要你有TPM。在云里面,用戶(hù)數(shù)據(jù)的威脅比在終端上面的威脅越來(lái)越多,因?yàn)樗粌H僅是存在于傳統(tǒng)的網(wǎng)絡(luò)攻擊,還存在這種攻擊,是來(lái)自于你的鄰居,你的鄰居也可能是你的競(jìng)爭(zhēng)對(duì)手,也可能來(lái)自提供商,也有可能你是一個(gè)創(chuàng)業(yè)者,把數(shù)據(jù)放上去以后,云提供者也是創(chuàng)業(yè)者,他把你的數(shù)據(jù)偷走,自己開(kāi)另外一家公司,這是很多的威脅。

對(duì)于這樣的威脅,我們提出這樣一個(gè)系統(tǒng),這個(gè)系統(tǒng)基于TPM完整性度量,使用VMM對(duì)于用戶(hù)的隱私數(shù)據(jù)和他的代碼進(jìn)行保護(hù),通過(guò)內(nèi)存的隔離, I/O MMU的隔離,還有透明的I/O加密的方式來(lái)做到這一點(diǎn)。

提問(wèn)環(huán)節(jié)

提問(wèn):報(bào)告里面有128位的密鑰,就是存儲(chǔ)到磁盤(pán)上面的,密鑰放在哪?

陳海波:密鑰在文件的末尾。

剛開(kāi)始加密的密鑰是用TPM的鑰匙加密嗎,但是剛開(kāi)始原始密鑰,它存放是隨機(jī)的,還是用戶(hù)指定的,還是系統(tǒng)給的?就是密鑰怎么生成的?

陳海波:首先有一個(gè)Remto Attestation,生成一個(gè)隨機(jī)的密鑰,用戶(hù)用來(lái)對(duì)他的代碼和數(shù)據(jù)進(jìn)行加密。

提問(wèn):這是系統(tǒng)生成的,所以用戶(hù)不知道。

陳海波:用戶(hù)不知道。

提問(wèn):用戶(hù)上傳數(shù)據(jù)是加密的,這個(gè)密鑰是怎么回事?這兩個(gè)是同一個(gè)密鑰嗎?

陳海波:我們通過(guò)Attestation,生成128位密鑰,這個(gè)密鑰兩方面都會(huì)存一份。用戶(hù)用AES密鑰對(duì)它的數(shù)據(jù)和代碼進(jìn)行加密,同時(shí)用它的公鑰放到末尾。把它的文件放到云平臺(tái)上的時(shí)候,TPM就能夠知道這個(gè)東西是我的,因?yàn)樗軌虬堰@個(gè)東西解密,避免中間人的攻擊。傳輸密鑰,首先要建立安全的信道。

提問(wèn):你的這個(gè)平臺(tái)提到云概念,我不知道測(cè)試數(shù)據(jù)的時(shí)候數(shù)據(jù)量有多大,為什么叫云,就是因?yàn)閿?shù)據(jù)量很大,你的測(cè)試有沒(méi)有考慮過(guò)如果數(shù)據(jù)量很大的時(shí)候,反復(fù)加密、解密,有可能讓這個(gè)系統(tǒng)變得非常慢,而且TPM是硬件+解密比軟件+解密更慢,所以可能性能上不見(jiàn)得就是一個(gè)好事。

陳海波:這個(gè)問(wèn)題非常好。首先您提到TPM加密解密非常慢,確實(shí)是這樣的,我們沒(méi)有TPM去做key,或者常見(jiàn)數(shù)據(jù)的加密,數(shù)據(jù)加密是由CPU來(lái)做的,這實(shí)際上在hypervisor里面進(jìn)行運(yùn)行的?,F(xiàn)在CPU非???,我們發(fā)現(xiàn)加解密帶來(lái)的性能并不是那么大。

云里面數(shù)據(jù)量非常大,谷歌Map都是用幾千臺(tái)機(jī)器算一個(gè)任務(wù),我們只是每臺(tái)機(jī)器上有10%的開(kāi)銷(xiāo),并不會(huì)因?yàn)檫@樣一個(gè)機(jī)器數(shù)量的增加而增加,100臺(tái)機(jī)器還是10%,因?yàn)樗拈_(kāi)銷(xiāo)是每一臺(tái)機(jī)器,而不是把所有的任務(wù)都丟到一個(gè)機(jī)器上面來(lái)。所以它一定是非常多的機(jī)器來(lái)跑應(yīng)用。

【編輯推薦】

  1. RSA 2010盛會(huì)大事記
  2. RSA 2010鄭緯民:云存儲(chǔ)安全
  3. RSA2010中國(guó)大會(huì)的亮點(diǎn)和遺憾之處
  4. RSA2010 信息安全國(guó)際論壇主題演講嘉賓
責(zé)任編輯:佟健 來(lái)源: 51CTO.com
相關(guān)推薦

2010-10-29 13:50:23

2010-10-28 15:35:35

2010-11-01 17:59:51

RSA2010報(bào)道

2011-08-18 12:22:55

2011-11-03 17:32:41

安全技術(shù)周刊

2011-10-19 14:44:46

2010-10-29 09:10:58

RSA2010亮點(diǎn)遺憾

2011-11-05 15:48:31

2012-08-08 09:53:42

2011-02-28 17:33:14

2010-07-07 18:00:43

SNMP協(xié)議

2011-11-02 13:28:52

2021-02-06 17:38:55

大數(shù)據(jù)國(guó)防美國(guó)

2011-04-25 17:27:38

投影儀

2017-02-15 10:09:01

2019-08-21 08:48:49

操作系統(tǒng)信息安全網(wǎng)絡(luò)安全

2014-02-28 13:52:29

RSA2014云安全

2022-07-25 14:42:18

SaaS云計(jì)算

2016-10-20 20:17:39

云計(jì)算云安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)