來源:互聯網
上載者:User
關鍵字
雲存儲
雲安全
RSA
雲安全
雲存儲
資料威脅
為期兩天的RSA 2010大會在北京落幕了,不過很多業內人士和網路安全愛好者都還覺得意猶未盡。 那麼,51CTO作為特邀媒體,對大會進行了相關報導。 在這裡我們來整理一下大會中精彩的演講。 下面就是復旦大學並行處理研究所助理教授陳海波的演講內容,主題是《道裡可信結構在雲計算服務隱私安全保障方面的應用》。 更多內容請參閱RSA 2010資訊安全國際論壇專題報導。 陳海波:大家下午好! 我是來自復旦大學的陳海波,我給大家介紹的是在雲計算環境裡面,如何用虛擬化保證資料的安全性。 我們在非雲時代,我們的資料是怎麼樣保護的? 在非雲時代,我們資料放在自己個人電腦裡,在自己電腦上裝很多防火牆,然後再加上一些密碼鎖,把資料可以保護起來。 在雲時代,我們又要逐步把個人資料放到雲端裡,放到雲端裡去以後,問題在於我們怎麼樣能夠保護我們的資料。 我們現在不能再像自己本地電腦一樣,給每個資料加一把鎖鎖起來,這樣的話就會給資料帶來一些挑戰。 所以我們看到在雲時代,資料隱私性是非常重要的特性,因為我們不能把資料放到雲端以後,雲的提供者或者雲的租客把我的資料偷走,再對它非法的使用。 在這樣一個雲裡面,對於線上的資料存在哪些威脅? 第一個威脅,從雲裡本身來的。 主要有一些問題,我們可以相信一個雲的供應商,但是由於現在一些技術和法律手段局限性,我們很難有有效的手段保證我們不會使得其中的某個雲的操作者能夠獲取我們這樣一些隱私資料。 在目前這樣的環境裡,大部分情況下,如果一個雲的操作者擁有對你存放資料的電腦有控制權,他就可以把你的資料竊取,然後進行非法使用。 第二個,從網路來的,我們以前把資料放在個人電腦裡,跟其他人的資料完全隔離。 在雲裡面以後,也許你的資料就在我的資料旁邊,可以通過各種各樣的方式來竊取你的資料。 舉例:我現在自己在雲上面部署這樣的服務,現在需要把我的個人資訊放進去,大家都知道現在在人口普查,我要調查一下到底中國有多少有錢人,然後他們對應的婚姻狀態是什麼樣的。 對應這樣一個雲,正確的服務應該是如果把我的資料提供到雲上面以後,他肯定覺得我不是一個有錢人,回答人口普查的結果是我不是有錢人。 而且人口普查的過程不應該把我的個人隱私資料放到網上去。 很不幸的是,現在認為很大威脅對於雲裡面提供者對客戶資料的非法訪問,他可以通過各種手段,把雲平臺竊取,竊取一些隱私資料,同時他可以修改回饋資料。 對我來講,我不是一個有錢人,但是它會干擾調查的結果。 另外來自于你的鄰居甚至網路的攻擊,這種攻擊通過在雲的平臺裡面裝入惡意程式碼,同樣也可以竊取資訊,同時篡改雲的結果。 雲對於資料安全性帶來了一些新的挑戰,包括雲提供者、操作員之間可能造成的一些侵入。 另外你的鄰居很有可能是你的競爭對手,甚至來自網路的攻擊,都可能會導致你的資料會被竊取。 我們講安全,基本上都有一個威脅的模型,我們首先假設這樣的一個攻擊者到底能做什麼。 假設攻擊者能夠去看雲存儲磁片裡面的檔,他可以修改這些檔。 我們知道一個操作者很容易查看磁片裡面的內容,對磁片檔內容進行修改,甚至他把磁片移走。 同樣資料的生命週期有多種多樣的,一種形式,我僅僅存在磁片上面,這種方式非常簡單,在這種方式下面只需要把它加密好,放在磁片上面,攻擊者哪怕把你的硬碟拿走,也不會發生例如"豔照門"這樣的事件。 但是很不幸的是,我們資料需要用來處理的,處理的時候就不可避免要載入到記憶體裡面,然後才能被處理。 所以攻擊者還能做到的一點是能夠檢查並且修改記憶體裡面的內容,比如我們在虛擬機器的環境下,你如果是一個控制虛擬機器管理軟體的人,可以把虛擬機器裡的值讀出來,把記憶體修改,甚至通過一些外設訪問方式把記憶體存到某一個秘密的位置。 資料要進行處理,處理的話就離不開CPU,在CPU裡面也會存在很多這種狀態,因為再處理計算的時候,相當於你的資料就在機器裡面留了一個腳印,這些腳印也會洩露一些隱私資訊。 比如我們上網銀的時候,在某個時間內,你的網銀密碼存在CPU計算機裡面的,這也是攻擊者可以做到的一點。 還有中間人的攻擊,在雲的使用者和雲的提供者之間,很有可能把你的網路通道劫持,劫持以後可以偽裝成我是可信員,請把你的資料放到我這兒來。 另外還有一種很強大的攻擊,就是拒絕服務。 拒絕服務,就可以提供一些錯誤的服務,本來你要做的事情是把這個資料存到這個磁片上面,結果他說他把這個資料丟了。 這種情況可能會出現bug暫停的一些錯誤,作為執行者可以執行任意行為。 攻擊者不能做什麼? 我們認為雲的提供者本意是善意的,因為他的主要目的是提供一個雲,來竊取你的資料,主要目的是賺錢,我給你提供服務,你付費給我。 他的目的是希望提供可信的服務。 所以在這種環境下,大部分機房裡面都有很多攝象頭了,所以你不可能跑到機房裡把主機殼打開,在CPU上插一根線,在操作過程當中把所有資料記錄下來。 這是可以通過攝象頭來防止的。 另外,我們假設它不能把TPM(可信平臺模組)認證在這樣機器上面運行的軟體,是不能夠破壞的,也不能把TPM裡面的P給獲取。 同時我們假設密碼學的演算法是安全的,我們現在不認為比較容易把RSA、AES等密碼給破解。 對於資料在雲裡面線上資料的威脅,現在很多時候操作員、攻擊者可以做到哪些事情? 介紹系統之前我們首先要知道一點,我們要做一些假設,首先沒有絕對的安全,我們只能有相對的安全,相對的安全就是我們假設誰是可信的,誰是不可信的,我們講硬體的根信任是什麼。 現在很多機器上面有很多可信平臺模組,可信平臺模組所做到的事情,其實是主機板上面加了一個副處理器,能夠對這個平臺上面一些運行的軟體進行度量,然後使用者通常很難把這樣一個TPM暴力的拆掉,拆掉以後,電腦也不能用了。 TPM在PC機的設計裡面設計成根信任。 TPM能提供什麼樣的功能? TPM主要提供第一點是它有一些私密金鑰,有了這個私密金鑰就可以做一些認證,這樣的私密金鑰不會離開,只是用來做簽名用的。 還有一個hash,把你要載入的軟體進行hash,會得到唯一的一個資料,這樣一個資料,可以用來跟以往資料判斷,如果是匹配的,就是你所裝載的是你所期望的軟體。 平臺配製的計算機,主要用來存儲這些hash值,有很多,因為我們在度量的時候,不僅僅度量OS,也許我們度量應用,還有度量hypervisor之類的。 還有亂數的序列,如果偽造的話,可能導致密碼被破解。 所以在有TPM環境下,在傳統方式下面,理想的信任鏈模型是什麼樣? 我們首先度量bios,然後把作業系統的載入器進行度量,度量好了以後,會度量hypervisor,就是我們VM可以被度量。 度量好hypervisor以後,再度量作業系統,最終度量應用,這是一個非常完美的故事,這樣我們就可以精確的知道,運行的時候這些都是已知的,都可能是可以被信任的。 我們如何做這樣一件事情? 我們首先要做這樣一個Attestation,防止中間有一個人在裡面偽裝我是一個可信員,請把資料交給我。 它所做的事情就是跟雲的伺服器做一個認證,跟員警盤查路人一樣,說你是誰,你身份證號碼是什麼,如果認證的話,你不是一個壞蛋。 雲的使用者會發一個問題給雲的伺服器,伺服器通過TPM會返回hash值,hash值就表示在這個雲平臺裡面運行的硬體、軟體確實是使用者所期望的,經過這樣以後,我們就可以進行度量。 hash值是獨一能夠反映當前軟體的狀態。 我們既然講到軟體的信任鏈,在這樣信任鏈模式下有哪些問題,我們還需要做什麼? 在這樣一個信任鏈模式下來,中間確實存在這樣一個(gap),因為我們中間度量鏈裡面有一個非常龐大的東西。 OS是一個非常複雜的軟體,windows有幾千行代碼,在這樣複雜的軟體裡面,沒有人能夠說這樣一個作業系統是可信的,這個作業系統是沒有病毒的,沒有間諜軟體的。 基本上只要是一台聯網的機器,沒有人可以確定的說我的機器裡面沒有漏洞、後門或者間諜軟體,所以在一個度量的連裡面,我們只能保證作業系統在載入的時候是可信的,但是一旦你上線以後,不停跟雲的使用者打交道,裡面有好人也有壞人, 也許壞人把這個作業系統裡面加了木馬、病毒以後,你在啟動的時候是怎麼樣,並不代表這個作業系統以後會是可信的。 基於這樣一個假設,有一個Goal的體系結構,我們還是認為資料是雲的核心,我們要保護只是雲中間的資料,尤其是資料隱私性不會被破壞。 現在有很多使用者對雲遲疑態度,我放進去的資料到底能不能保護雲的隱私性。 第二個作用,就是這樣的軟體是不是可能會被破壞掉? 主要有兩個目的,第一個目的,也許這個軟體有版權的,認為這個軟體非常重要,放在雲上面以後,你會擔心把這個軟體放上去以後,會不會你的競爭對手把你的軟體拿過去用。 第二的目的,會不會有人把你的軟體篡改以後再進行服務。 我們系統主要達到這兩個目標。 基於這樣的目標,我們提出一個體系結構。 我們假設這個作業系統本身是不可信的,我們假設這樣一個作業系統裡面可能會被裝了間諜軟體、裝了木馬,甚至有人可以完全控制作業系統這個行為。 儘管假設hypervisor是一個可信的軟體,為什麼我們相信VMM,而不相信OS。 首先我們從實現複雜度來看,VMM通常幾萬行,幾十萬行代碼,但是作業系統是幾千萬行代碼,數量級完全不一樣。 第二,VMM裡面通常是一個靜態的,現在很少有VMM說你可以在啟動以後,在裡面插入一個模組,但是現在作業系統就不一樣,現在把這樣一個作業系統裡面插入一個新的硬體,它也許就裝入一個新的模組,它有比較強大的介面, 病毒也可以插入一個模組,讓你的操作代碼就變成惡意的了。 VMM當中,這個代碼資料是靜態的,你度量它以後,接下來執行的時候,起來原來啟動那樣的情況。 VMM相對來講沒有直接跟使用者交互,只是提供服務整合,遷移,以及我們包含的安全的服務,所以它是比較難被攻克的。 在我們這樣一個作業系統裡面可以運行各種各樣的服務,一種是可以運行可信的雲服務,這種是我們需要保護的。 比如我們可以在裡面運行人口普查軟體,我們把資料提交上去,它會給你一個結果,而且同時不會把資料的隱私性破壞掉。 同時還可以運行其他的服務,這些服務也許是惡意的,也許是善意的。 儘管作業系統是非可信,我們在虛擬機器監控系統裡面加了行為約束層,如果把這樣一個軟體的行為或者一個人的行為約束好以後,他就不太容易做壞事。 在我們這裡,行為約束層所做的事情就是防止非可信的作業系統把這樣一個服務篡改掉。 TPM要去度量bios,VMM,度量到VMM裡面就結束了,不度量上面的OS。 在我們這樣一個保護裡,應用是由使用者提交上去的,使用者提交的應用可能包含一些軟體,一些二進位檔案,一些他要操作的資料檔案。 我們為了保證中間人這種攻擊,或者把這個資料從我的機器放到雲的過程中間被篡改,我們讓使用者的資料和代碼進行加密,他用的加密方式是TPM提供簽名過的金鑰,這種簽名過的金鑰只有TPM才能夠把這樣一個代碼或者資料解密。 儘管有人在中間說我是一個可信員,你把資料交給我,他拿到以後也是沒有用的。 啟動方式,度量到hypervisor,也是VMM。 我們沒有度量作業系統或者應用,因為我們沒有辦法給一個一直變化的壞蛋發一個三好學生的證書,說你是一個三好學生。 儘管這樣的話,你不能根據他在某一個時間點表現成為一個好人,就認為他是一個好人,所以我們就不在這裡度量OS,也不度量Attestation。 hypervisor可以通過我們提供的介面,可以和遠端一些使用者進行通信,可以讓使用者能夠知道這樣一個機器裡面確實運行了我們提供的hypervisor,然後你的資料放在我的hypervisor上面處理是安全的。 還提供安全通信通道,主要為了做遠端驗證所需要的。 1 2 下一頁>>查看全文 內容導航第 1 頁:對於線上的資料存在哪些威脅? 第 2 頁:如何保護雲的應用 原文:RSA中國大會陳海波:道裡可信結構在雲安全保障方面的應用(1) 返回網路安全首頁