RSA中國大會陳海波:道里可信結(jié)構(gòu)在云安全保障方面的應(yīng)用
【51CTO.com 綜合報道】為期兩天的RSA 2010大會在北京落幕了,不過很多業(yè)內(nèi)人士和網(wǎng)絡(luò)安全愛好者都還覺得意猶未盡。那么,51CTO作為特邀媒體,對大會進行了相關(guān)報道。在這里我們來整理一下大會中精彩的演講。下面就是復旦大學并行處理研究所助理教授陳海波的演講內(nèi)容,主題是《道里可信結(jié)構(gòu)在云計算服務(wù)隱私安全保障方面的應(yīng)用》。更多內(nèi)容請參閱RSA 2010信息安全國際論壇專題報道。
陳海波:大家下午好!我是來自復旦大學的陳海波,我給大家介紹的是在云計算環(huán)境里面,如何用虛擬化保證數(shù)據(jù)的安全性。我們在非云時代,我們的數(shù)據(jù)是怎么樣保護的?在非云時代,我們數(shù)據(jù)放在自己個人電腦里,在自己電腦上裝很多防火墻,然后再加上一些密碼鎖,把數(shù)據(jù)可以保護起來。在云時代,我們又要逐步把個人數(shù)據(jù)放到云端里,放到云端里去以后,問題在于我們怎么樣能夠保護我們的數(shù)據(jù)。我們現(xiàn)在不能再像自己本地電腦一樣,給每個數(shù)據(jù)加一把鎖鎖起來,這樣的話就會給數(shù)據(jù)帶來一些挑戰(zhàn)。所以我們看到在云時代,數(shù)據(jù)隱私性是非常重要的特性,因為我們不能把數(shù)據(jù)放到云端以后,云的提供者或者云的租客把我的數(shù)據(jù)偷走,再對它非法的使用。
在這樣一個云里面,對于在線的數(shù)據(jù)存在哪些威脅?
第一個威脅,從云里本身來的。主要有一些問題,我們可以相信一個云的提供商,但是由于現(xiàn)在一些技術(shù)和法律手段局限性,我們很難有有效的手段保證我們不會使得其中的某個云的操作者能夠獲取我們這樣一些隱私數(shù)據(jù)。在目前這樣的環(huán)境里,大部分情況下,如果一個云的操作者擁有對你存放數(shù)據(jù)的計算機有控制權(quán),他就可以把你的數(shù)據(jù)竊取,然后進行非法使用。第二個,從網(wǎng)絡(luò)來的,我們以前把數(shù)據(jù)放在個人電腦里,跟其他人的數(shù)據(jù)完全隔離。在云里面以后,也許你的數(shù)據(jù)就在我的數(shù)據(jù)旁邊,可以通過各種各樣的方式來竊取你的數(shù)據(jù)。
舉例:我現(xiàn)在自己在云上面部署這樣的服務(wù),現(xiàn)在需要把我的個人信息放進去,大家都知道現(xiàn)在在人口普查,我要調(diào)查一下到底中國有多少有錢人,然后他們對應(yīng)的婚姻狀態(tài)是什么樣的。對應(yīng)這樣一個云,正確的服務(wù)應(yīng)該是如果把我的數(shù)據(jù)提供到云上面以后,他肯定覺得我不是一個有錢人,回答人口普查的結(jié)果是我不是有錢人。而且人口普查的過程不應(yīng)該把我的個人隱私數(shù)據(jù)放到網(wǎng)上去。很不幸的是,現(xiàn)在認為很大威脅對于云里面提供者對客戶數(shù)據(jù)的非法訪問,他可以通過各種手段,把云平臺竊取,竊取一些隱私數(shù)據(jù),同時他可以修改反饋數(shù)據(jù)。對我來講,我不是一個有錢人,但是它會干擾調(diào)查的結(jié)果。另外來自于你的鄰居甚至網(wǎng)絡(luò)的攻擊,這種攻擊通過在云的平臺里面裝入惡意代碼,同樣也可以竊取信息,同時篡改云的結(jié)果。
云對于數(shù)據(jù)安全性帶來了一些新的挑戰(zhàn),包括云提供者、操作員之間可能造成的一些侵入。另外你的鄰居很有可能是你的競爭對手,甚至來自網(wǎng)絡(luò)的攻擊,都可能會導致你的數(shù)據(jù)會被竊取。
我們講安全,基本上都有一個威脅的模型,我們首先假設(shè)這樣的一個攻擊者到底能做什么。假設(shè)攻擊者能夠去看云存儲磁盤里面的文件,他可以修改這些文件。我們知道一個操作者很容易查看磁盤里面的內(nèi)容,對磁盤文件內(nèi)容進行修改,甚至他把磁盤移走。同樣數(shù)據(jù)的生命周期有多種多樣的,一種形式,我僅僅存在磁盤上面,這種方式非常簡單,在這種方式下面只需要把它加密好,放在磁盤上面,攻擊者哪怕把你的硬盤拿走,也不會發(fā)生例如"艷照門"這樣的事件。但是很不幸的是,我們數(shù)據(jù)需要用來處理的,處理的時候就不可避免要加載到內(nèi)存里面,然后才能被處理。所以攻擊者還能做到的一點是能夠檢查并且修改內(nèi)存里面的內(nèi)容,比如我們在虛擬機的環(huán)境下,你如果是一個控制虛擬機管理軟件的人,可以把虛擬機里的值讀出來,把內(nèi)存修改,甚至通過一些外設(shè)訪問方式把內(nèi)存存到某一個秘密的位置。
數(shù)據(jù)要進行處理,處理的話就離不開CPU,在CPU里面也會存在很多這種狀態(tài),因為再處理計算的時候,相當于你的數(shù)據(jù)就在機器里面留了一個腳印,這些腳印也會泄露一些隱私信息。比如我們上網(wǎng)銀的時候,在某個時間內(nèi),你的網(wǎng)銀密碼存在CPU計算器里面的,這也是攻擊者可以做到的一點。
還有中間人的攻擊,在云的用戶和云的提供者之間,很有可能把你的網(wǎng)絡(luò)信道劫持,劫持以后可以偽裝成我是可信員,請把你的數(shù)據(jù)放到我這兒來。
另外還有一種很強大的攻擊,就是拒絕服務(wù)。拒絕服務(wù),就可以提供一些錯誤的服務(wù),本來你要做的事情是把這個數(shù)據(jù)存到這個磁盤上面,結(jié)果他說他把這個數(shù)據(jù)丟了。這種情況可能會出現(xiàn)bug暫停的一些錯誤,作為執(zhí)行者可以執(zhí)行任意行為。
攻擊者不能做什么?我們認為云的提供者本意是善意的,因為他的主要目的是提供一個云,來竊取你的數(shù)據(jù),主要目的是賺錢,我給你提供服務(wù),你付費給我。他的目的是希望提供可信的服務(wù)。所以在這種環(huán)境下,大部分機房里面都有很多攝象頭了,所以你不可能跑到機房里把機箱打開,在CPU上插一根線,在操作過程當中把所有數(shù)據(jù)記錄下來。這是可以通過攝象頭來防止的。
另外,我們假設(shè)它不能把TPM(可信平臺模塊)認證在這樣機器上面運行的軟件,是不能夠破壞的,也不能把TPM里面的P給獲取。同時我們假設(shè)密碼學的算法是安全的,我們現(xiàn)在不認為比較容易把RSA、AES等密碼給破解。
對于數(shù)據(jù)在云里面在線數(shù)據(jù)的威脅,現(xiàn)在很多時候操作員、攻擊者可以做到哪些事情?介紹系統(tǒng)之前我們首先要知道一點,我們要做一些假設(shè),首先沒有絕對的安全,我們只能有相對的安全,相對的安全就是我們假設(shè)誰是可信的,誰是不可信的,我們講硬件的信任根是什么。
現(xiàn)在很多機器上面有很多可信平臺模塊,可信平臺模塊所做到的事情,其實是主板上面加了一個協(xié)處理器,能夠?qū)@個平臺上面一些運行的軟件進行度量,然后用戶通常很難把這樣一個TPM暴力的拆掉,拆掉以后,計算機也不能用了。TPM在PC機的設(shè)計里面設(shè)計成信任根。
TPM能提供什么樣的功能?TPM主要提供第一點是它有一些私鑰,有了這個私鑰就可以做一些認證,這樣的私鑰不會離開,只是用來做簽名用的。還有一個hash,把你要加載的軟件進行hash,會得到唯一的一個數(shù)據(jù),這樣一個數(shù)據(jù),可以用來跟以往數(shù)據(jù)判斷,如果是匹配的,就是你所裝載的是你所期望的軟件。
平臺配制的計算器,主要用來存儲這些hash值,有很多,因為我們在度量的時候,不僅僅度量OS,也許我們度量應(yīng)用,還有度量hypervisor之類的。
還有隨機數(shù)的序列,如果偽造的話,可能導致密碼被破解。所以在有TPM環(huán)境下,在傳統(tǒng)方式下面,理想的信任鏈模型是什么樣?我們首先度量bios,然后把操作系統(tǒng)的加載器進行度量,度量好了以后,會度量hypervisor,就是我們VM可以被度量。度量好hypervisor以后,再度量操作系統(tǒng),最終度量應(yīng)用,這是一個非常完美的故事,這樣我們就可以精確的知道,運行的時候這些都是已知的,都可能是可以被信任的。
我們?nèi)绾巫鲞@樣一件事情?我們首先要做這樣一個Attestation,防止中間有一個人在里面?zhèn)窝b我是一個可信員,請把數(shù)據(jù)交給我。它所做的事情就是跟云的服務(wù)器做一個認證,跟警察盤查路人一樣,說你是誰,你身份證號碼是什么,如果認證的話,你不是一個壞蛋。云的用戶會發(fā)一個問題給云的服務(wù)器,服務(wù)器通過TPM會返回hash值,hash值就表示在這個云平臺里面運行的硬件、軟件確實是用戶所期望的,經(jīng)過這樣以后,我們就可以進行度量。hash值是獨一能夠反映當前軟件的狀態(tài)。
我們既然講到軟件的信任鏈,在這樣信任鏈模式下有哪些問題,我們還需要做什么?在這樣一個信任鏈模式下來,中間確實存在這樣一個(gap),因為我們中間度量鏈里面有一個非常龐大的東西。OS是一個非常復雜的軟件,windows有幾千行代碼,在這樣復雜的軟件里面,沒有人能夠說這樣一個操作系統(tǒng)是可信的,這個操作系統(tǒng)是沒有病毒的,沒有間諜軟件的。基本上只要是一臺聯(lián)網(wǎng)的機器,沒有人可以確定的說我的機器里面沒有漏洞、后門或者間諜軟件,所以在一個度量的連里面,我們只能保證操作系統(tǒng)在加載的時候是可信的,但是一旦你上線以后,不停跟云的用戶打交道,里面有好人也有壞人,也許壞人把這個操作系統(tǒng)里面加了木馬、病毒以后,你在啟動的時候是怎么樣,并不代表這個操作系統(tǒng)以后會是可信的。
基于這樣一個假設(shè),有一個Goal的體系結(jié)構(gòu),我們還是認為數(shù)據(jù)是云的核心,我們要保護只是云中間的數(shù)據(jù),尤其是數(shù)據(jù)隱私性不會被破壞。現(xiàn)在有很多用戶對云遲疑態(tài)度,我放進去的數(shù)據(jù)到底能不能保護云的隱私性。
第二個作用,就是這樣的軟件是不是可能會被破壞掉?主要有兩個目的,第一個目的,也許這個軟件有版權(quán)的,認為這個軟件非常重要,放在云上面以后,你會擔心把這個軟件放上去以后,會不會你的競爭對手把你的軟件拿過去用。第二的目的,會不會有人把你的軟件篡改以后再進行服務(wù)。我們系統(tǒng)主要達到這兩個目標。
基于這樣的目標,我們提出一個體系結(jié)構(gòu)。我們假設(shè)這個操作系統(tǒng)本身是不可信的,我們假設(shè)這樣一個操作系統(tǒng)里面可能會被裝了間諜軟件、裝了木馬,甚至有人可以完全控制操作系統(tǒng)這個行為。盡管假設(shè)hypervisor是一個可信的軟件,為什么我們相信VMM,而不相信OS。首先我們從實現(xiàn)復雜度來看,VMM通常幾萬行,幾十萬行代碼,但是操作系統(tǒng)是幾千萬行代碼,數(shù)量級完全不一樣。第二,VMM里面通常是一個靜態(tài)的,現(xiàn)在很少有VMM說你可以在啟動以后,在里面插入一個模塊,但是現(xiàn)在操作系統(tǒng)就不一樣,現(xiàn)在把這樣一個操作系統(tǒng)里面插入一個新的硬件,它也許就裝入一個新的模塊,它有比較強大的接口,病毒也可以插入一個模塊,讓你的操作代碼就變成惡意的了。VMM當中,這個代碼數(shù)據(jù)是靜態(tài)的,你度量它以后,接下來執(zhí)行的時候,起來原來啟動那樣的情況。VMM相對來講沒有直接跟用戶交互,只是提供服務(wù)整合,遷移,以及我們包含的安全的服務(wù),所以它是比較難被攻克的。
在我們這樣一個操作系統(tǒng)里面可以運行各種各樣的服務(wù),一種是可以運行可信的云服務(wù),這種是我們需要保護的。比如我們可以在里面運行人口普查軟件,我們把數(shù)據(jù)提交上去,它會給你一個結(jié)果,而且同時不會把數(shù)據(jù)的隱私性破壞掉。同時還可以運行其他的服務(wù),這些服務(wù)也許是惡意的,也許是善意的。
盡管操作系統(tǒng)是非可信,我們在虛擬機監(jiān)控系統(tǒng)里面加了行為約束層,如果把這樣一個軟件的行為或者一個人的行為約束好以后,他就不太容易做壞事。在我們這里,行為約束層所做的事情就是防止非可信的操作系統(tǒng)把這樣一個服務(wù)篡改掉。
TPM要去度量bios,VMM,度量到VMM里面就結(jié)束了,不度量上面的OS。在我們這樣一個保護里,應(yīng)用是由用戶提交上去的,用戶提交的應(yīng)用可能包含一些軟件,一些二進制文件,一些他要操作的數(shù)據(jù)文件。我們?yōu)榱吮WC中間人這種攻擊,或者把這個數(shù)據(jù)從我的機器放到云的過程中間被篡改,我們讓用戶的數(shù)據(jù)和代碼進行加密,他用的加密方式是TPM提供簽名過的密鑰,這種簽名過的密鑰只有TPM才能夠把這樣一個代碼或者數(shù)據(jù)解密。盡管有人在中間說我是一個可信員,你把數(shù)據(jù)交給我,他拿到以后也是沒有用的。
啟動方式,度量到hypervisor,也是VMM。我們沒有度量操作系統(tǒng)或者應(yīng)用,因為我們沒有辦法給一個一直變化的壞蛋發(fā)一個三好學生的證書,說你是一個三好學生。盡管這樣的話,你不能根據(jù)他在某一個時間點表現(xiàn)成為一個好人,就認為他是一個好人,所以我們就不在這里度量OS,也不度量Attestation。
hypervisor可以通過我們提供的接口,可以和遠端一些用戶進行通信,可以讓用戶能夠知道這樣一個機器里面確實運行了我們提供的hypervisor,然后你的數(shù)據(jù)放在我的hypervisor上面處理是安全的。還提供安全通信信道,主要為了做遠程驗證所需要的。#p#
如何保護云的應(yīng)用
介紹一下如何保護云的應(yīng)用。靜下來看到一個一個數(shù)據(jù)文件,但是在電腦里面運行的時候,通常會體現(xiàn)成三個狀態(tài),第一個是CPU中間的狀態(tài),因為在執(zhí)行的時候必須要到處理器里面去執(zhí)行,處理器執(zhí)行的時候會留下腳印。第二個要執(zhí)行的時候,CPU,特別是要把這些數(shù)據(jù)和代碼放到內(nèi)存里面,還有I/O,因為算好以后會放到磁盤里面去,所以我們要保護的是操作系統(tǒng)不能夠通過CPU、內(nèi)存和這樣一個文件來修改我們的服務(wù)。
我們?nèi)绾伪Wo內(nèi)存里面的數(shù)據(jù)?如果把這個數(shù)據(jù)進行計算的時候,我們首先把這個數(shù)據(jù)進行解密。因為我們前面提到用戶提交數(shù)據(jù)的時候,提交的是一個加密過的數(shù)據(jù)和代碼,他要執(zhí)行的話不能直接執(zhí)行密文,必須進行解密。如果解密了以后,不對它進行保護,這樣操作系統(tǒng)就高興了,說你已經(jīng)變成明文,就可以把你的數(shù)據(jù)給竊取。hypervisor保證的一點是這樣的內(nèi)存是不能被操作系統(tǒng)所看到的,為什么hypervisor能做到這一點?因為hypervisor實現(xiàn)的是計算機系統(tǒng)里面軟件的老大,它能說你不能做這個事情,不能做那個事情,可以做到這一點。
如果操作系統(tǒng)要攻擊的話會通過什么方式?第一種是MMU翻譯,只有通過這個翻譯才能對內(nèi)存進行訪問,我們只要防住對MMU的攻擊,就可以保證這個操作系統(tǒng)不能夠通過這種地址翻譯的方式來攻擊它。第二種是I/O MMU,是把內(nèi)存和外設(shè)進行溝通的渠道。為什么要防住I/O MMU呢?因為很可能里面裝一個惡意的設(shè)備,或者發(fā)了一個惡意的指令,說你應(yīng)該把這個內(nèi)存里面的明文直接存到磁盤上面去,這樣就能夠把明文竊取。
如何防住MMU的攻擊?我們要理解操作系統(tǒng)如何管理內(nèi)存。我們知道每一個操作系統(tǒng)對應(yīng)每一個進程都有頁表,每個頁表里面有地址空間,地址空間里面分用戶的和kernel的,在kernel里面,操作系統(tǒng)獲取處理器控制權(quán)的時候,不能讓他看到用戶的應(yīng)用,就沒有辦法直接訪問應(yīng)用的內(nèi)存。當從用戶模式切換到核心模式的時候,就把用戶的映射全部清掉,就不能直接訪問那塊內(nèi)存。
另外通過一個惡意的應(yīng)用從另外一個地址映射它,我們要知道每個內(nèi)存業(yè)怎么映射的。hypervisor必須要做到能夠跟蹤每一個內(nèi)存頁,當它在映射的時候,檢查一下它是不是一個被保護的應(yīng)用內(nèi)存,如果是的話,它只能被這個被保存的內(nèi)存所映射。它發(fā)現(xiàn)的時候,如果內(nèi)存要映射它的話,就會把這樣的請求去除掉。
I/O MMU,虛擬機管理 I/O MMU表,用戶提供被保護的應(yīng)用上來的時候,hypervisor就把用戶所有的內(nèi)存,因為用戶所有內(nèi)存里面包含隱私的數(shù)據(jù),把它制成設(shè)備不可訪問,這樣設(shè)備就沒有辦法通過 I/O MMU的方式來竊取用戶的數(shù)據(jù)。因為我們嚴格意義上隔離來講會帶來一些問題,操作系統(tǒng)和用戶進程之間會有一些交互,比如用戶掉到內(nèi)核里面的時候會做這樣一些工作,另外要傳遞一些數(shù)據(jù),比如通過操作系統(tǒng)讀一些數(shù)據(jù)的時候,就需要先把這個數(shù)據(jù)讀到內(nèi)核里面。我們在hypervisor里面維護這兩個Buffer。如果這是kernel和用戶的交互可以通過Buffer傳遞,用戶給內(nèi)核的數(shù)據(jù)是經(jīng)過我們認證的。
I/O是如何做的?我們用的一個方式是加密的,我們系統(tǒng)保證只要這個用戶應(yīng)用的隱私數(shù)據(jù)從內(nèi)存到磁盤里,被我們hypervisor加密的,盡管操作系統(tǒng)能看到磁盤里的文件,也只能拿到密文,沒有辦法把這個數(shù)據(jù)進行解密。我們從內(nèi)存到I/O這條通道里面,把它進行了加密。
在我們這樣一個系統(tǒng)里,二進制文件如何做?首先我們對于每一個文件進行加密,然后用TPM的鑰匙把AES進行加密,不僅僅包含被加密文件,而且包含這個密鑰,就保證只有TPM的機器才能把這樣的數(shù)據(jù)給解開。數(shù)據(jù)文件也是類似。如果讀一個文件的時候,如果用戶從存儲里面讀一張銀行報表的時候,首先kernel幫你進行磁盤操作,讀的是密文,hypervisor就會把這個數(shù)據(jù)放到Buffer里面,hypervisor就進行解密,解密以后,就可以把這個數(shù)據(jù)發(fā)給用戶。在這個過程里,加密和解密對于用戶是透明的,用戶不知道我還要對這個數(shù)據(jù)進行加密,其實我們透明的對他提供了這樣的保護個。對于CPU來講,可以自然的保護它。CPU是分時的,從一個進程切換到另外一個進程,可以進行加載。hypervisor就可以說把你之前被可信的應(yīng)用,會被保護的應(yīng)用,踩過的腳印擦掉,把它丟給其他的進程進行運行。
這樣一個系統(tǒng)到底有沒有效果?我們做了一些測試。首先要防止攻擊,運行一個Apache web server,攻擊者能把Linux內(nèi)核控制住,把內(nèi)存驗證的代碼直接映射到內(nèi)存里面,再把代碼改掉。它在內(nèi)存里面,加密的模塊在內(nèi)存里面,就是0101一些二進制數(shù)字。它所做的事情非常簡單,你登陸這個網(wǎng)站,你的密鑰是不是對,對的話,你可以做,不對的話就不能做。我們控制了OS以后,很難去攻擊它。也可以看到直接把這個代碼改掉,直接不要判斷了,直接pass掉就可以了。有了這樣一個保護以后,因為這道內(nèi)存被我們道里認為是被保護應(yīng)用私有的內(nèi)存,操作系統(tǒng)看不到它,即使想映射它也沒有辦法被映射,所以就可以防住攻擊。
有些時候我們看一些編輯器,比如看銀行報表,有些咨詢公司提供的數(shù)據(jù),這些數(shù)據(jù)是非常貴的,沒有攻擊的時候,我們用編輯器就能看到這些東西。如果我們做了這樣一個攻擊軟件,沒有的話就不能做這樣一件事情。
我們在這里講的兩個攻擊非常簡單,實際上我們道里這樣一個平臺也是在使用,在清華大學里有一個云存儲平臺里,有幾千的用戶,為清華提供云存儲的服務(wù)。原來碰到一個問題,我們把數(shù)據(jù)放進去的時候,我們就不確定它會不會把我的數(shù)據(jù)偷掉,我們知道之前高校發(fā)生很多問題,招生名單都泄露出去,導致很多人不敢把數(shù)據(jù)放上去。用道里系統(tǒng)保護他們云存儲平臺,而且在清華里面測試了很久,很多人來攻擊,目前還沒有被攻破。
我們需要注意我們提供這樣的保護,并不限制我們虛擬機的移動性,我們還是可以進行虛擬機的遷移。
性能方面我們進行比較,因為安全不是免費的,一定會帶來性能損失,看看這個性能損失到底有多大。從我們一些應(yīng)用來看,做了好幾個應(yīng)用,比如FTV服務(wù)器,(HTVB)的網(wǎng)絡(luò)服務(wù)器,以及一些計算密集的任務(wù),發(fā)現(xiàn)性能開銷大部分情況是小于10%,對于一些非常安全敏感的應(yīng)用也是比較合適的。
我們之前也做一些相關(guān)工作,在工作的時候需要相信OS,需要使用一些相關(guān)硬件,我們解決方案是基于軟件的方案,我們不需要特殊的硬件,只需要你有TPM。在云里面,用戶數(shù)據(jù)的威脅比在終端上面的威脅越來越多,因為它不僅僅是存在于傳統(tǒng)的網(wǎng)絡(luò)攻擊,還存在這種攻擊,是來自于你的鄰居,你的鄰居也可能是你的競爭對手,也可能來自提供商,也有可能你是一個創(chuàng)業(yè)者,把數(shù)據(jù)放上去以后,云提供者也是創(chuàng)業(yè)者,他把你的數(shù)據(jù)偷走,自己開另外一家公司,這是很多的威脅。
對于這樣的威脅,我們提出這樣一個系統(tǒng),這個系統(tǒng)基于TPM完整性度量,使用VMM對于用戶的隱私數(shù)據(jù)和他的代碼進行保護,通過內(nèi)存的隔離, I/O MMU的隔離,還有透明的I/O加密的方式來做到這一點。
提問環(huán)節(jié)
提問:報告里面有128位的密鑰,就是存儲到磁盤上面的,密鑰放在哪?
陳海波:密鑰在文件的末尾。
剛開始加密的密鑰是用TPM的鑰匙加密嗎,但是剛開始原始密鑰,它存放是隨機的,還是用戶指定的,還是系統(tǒng)給的?就是密鑰怎么生成的?
陳海波:首先有一個Remto Attestation,生成一個隨機的密鑰,用戶用來對他的代碼和數(shù)據(jù)進行加密。
提問:這是系統(tǒng)生成的,所以用戶不知道。
陳海波:用戶不知道。
提問:用戶上傳數(shù)據(jù)是加密的,這個密鑰是怎么回事?這兩個是同一個密鑰嗎?
陳海波:我們通過Attestation,生成128位密鑰,這個密鑰兩方面都會存一份。用戶用AES密鑰對它的數(shù)據(jù)和代碼進行加密,同時用它的公鑰放到末尾。把它的文件放到云平臺上的時候,TPM就能夠知道這個東西是我的,因為它能夠把這個東西解密,避免中間人的攻擊。傳輸密鑰,首先要建立安全的信道。
提問:你的這個平臺提到云概念,我不知道測試數(shù)據(jù)的時候數(shù)據(jù)量有多大,為什么叫云,就是因為數(shù)據(jù)量很大,你的測試有沒有考慮過如果數(shù)據(jù)量很大的時候,反復加密、解密,有可能讓這個系統(tǒng)變得非常慢,而且TPM是硬件+解密比軟件+解密更慢,所以可能性能上不見得就是一個好事。
陳海波:這個問題非常好。首先您提到TPM加密解密非常慢,確實是這樣的,我們沒有TPM去做key,或者常見數(shù)據(jù)的加密,數(shù)據(jù)加密是由CPU來做的,這實際上在hypervisor里面進行運行的。現(xiàn)在CPU非常快,我們發(fā)現(xiàn)加解密帶來的性能并不是那么大。
云里面數(shù)據(jù)量非常大,谷歌Map都是用幾千臺機器算一個任務(wù),我們只是每臺機器上有10%的開銷,并不會因為這樣一個機器數(shù)量的增加而增加,100臺機器還是10%,因為它的開銷是每一臺機器,而不是把所有的任務(wù)都丟到一個機器上面來。所以它一定是非常多的機器來跑應(yīng)用。
【編輯推薦】


















