Parno博士: 要信任一臺(tái)計(jì)算機(jī),你需要同時(shí)信任計(jì)算機(jī)的硬件設(shè)備和它所運(yùn)行的全部軟件。如果這臺(tái)計(jì)算機(jī)是你自己的,那么你可以通過(guò)一系列標(biāo)準(zhǔn)步驟來(lái)確保硬件受信,比如你可以從大品牌的廠商那里購(gòu)買(mǎi)硬件,當(dāng)你離開(kāi)屋子的時(shí)候鎖好門(mén)窗,只讓你所信任的人使用該電腦等等方法。

幸運(yùn)的是,大部分人對(duì)于保護(hù)他們自己的物理資產(chǎn)都非常上心。不過(guò),我們還需要一種方法將對(duì)電腦硬件設(shè)備的信任延伸到該電腦所運(yùn)行的軟件上。一些安全裝置,比如剛才你說(shuō)到的可信平臺(tái)模塊(TPM),就是將硬件信任與軟件信任相連接的紐帶。

不幸的是,這個(gè)設(shè)備所使用的語(yǔ)言是二進(jìn)制,所提供的保護(hù)功能是通過(guò)密碼實(shí)現(xiàn)的,這兩方面都是普通用戶不夠熟悉的。因此,我們打算采用一個(gè)用戶信任的設(shè)備,比如你的手機(jī)或特制的USB密鑰設(shè)備來(lái)與TPM進(jìn)行對(duì)話,并將對(duì)話結(jié)果,也就是安全報(bào)告發(fā)送給用戶,告知用戶該計(jì)算機(jī)是否安全可用。

在論文里我介紹了幾種安全的方法,可以將你自己的可靠設(shè)備(比如手機(jī))與計(jì)算機(jī)中的安全模塊聯(lián)系起來(lái)。包括較復(fù)雜的采用特殊設(shè)備接口連接這兩種設(shè)備,還有最簡(jiǎn)單的在電腦機(jī)箱接縫處貼易損條碼,并通過(guò)手機(jī)軟件來(lái)識(shí)別條碼。每種方法都有自身的優(yōu)勢(shì)和不足。

記者: 接下來(lái),“商用電腦的按需安全代碼執(zhí)行”是指安全的使用未知計(jì)算機(jī)。您建議使用一種叫做Flicker的新方法。這個(gè)Flicker到底是什么,它有什么作用呢?

魚(yú)與熊掌兼得 安全性與便利性如何選擇

Parno博士: Flicker可是說(shuō)是一種安全架構(gòu),它利用了AMD和Intel在CPU中新增添的安全功能,可以根據(jù)需要提供安全的代碼執(zhí)行環(huán)境。該架構(gòu)的目的就是在你的電腦里建立一個(gè)完全獨(dú)立于其它軟件(甚至硬件)的環(huán)境來(lái)執(zhí)行小段的敏感代碼,這樣就算電腦中感染了惡意軟件,這部分敏感代碼的執(zhí)行也不會(huì)受到影響。

比如,假設(shè)你使用公司提供的VPN網(wǎng)絡(luò)從遠(yuǎn)程訪問(wèn)網(wǎng)絡(luò),首先要做的就是在VPN客戶端輸入用戶名和密碼。如果這個(gè)客戶端軟件存在bug,或者你的操作系統(tǒng)存在漏洞,或者電腦中任何設(shè)備驅(qū)動(dòng)程序存在漏洞,任何以管理員權(quán)限運(yùn)行的軟件存在漏洞,都可以被黑客利用獲取你的VPN用戶名和密碼。

通過(guò) Flicker,我們可以將VPN軟件中有關(guān)用戶名和密碼的代碼提取出來(lái),并在一個(gè)獨(dú)立的環(huán)境中執(zhí)行,這樣就算其它軟件(甚至操作系統(tǒng))存在漏洞,也不會(huì)影響在獨(dú)立環(huán)境中運(yùn)行的密碼處理代碼的安全性。

Flicker 還可以顯示出目前隔離環(huán)境中正在執(zhí)行哪個(gè)程序,以及某個(gè)程序是否處于受保護(hù)環(huán)境。換句話說(shuō),通過(guò)Flicker,你可以看到彈出的密碼對(duì)話框確實(shí)是處在 Flicker保護(hù)下的,同時(shí)你的公司也會(huì)知道你在使用正確的VPN客戶端軟件輸入正確的密碼,而不是在使用某個(gè)惡意代碼。

記者: “在網(wǎng)絡(luò)上使用值得信任的基于主機(jī)的信息”是你對(duì)于保護(hù)網(wǎng)絡(luò)數(shù)據(jù)流安全的信條。你提到這個(gè)過(guò)程必須具有以下特性:

· 注釋完整: 惡意主機(jī)或網(wǎng)絡(luò)元素?zé)o法改變或混淆注釋信息中的數(shù)據(jù)。

· 網(wǎng)絡(luò)處理無(wú)狀態(tài): 為了確保那些依賴主機(jī)信息的網(wǎng)絡(luò)元素的可擴(kuò)展性,避免這些設(shè)備上保持per-host 或 per-flow 狀態(tài)。

· 隱私保護(hù): 我們的目標(biāo)是防止任何用戶信息泄露,而不是像目前系統(tǒng)這樣漏洞百出。換句話說(shuō),我們的目標(biāo)不僅僅是當(dāng)用戶訪問(wèn)某個(gè)網(wǎng)站鍵入個(gè)人信息時(shí)才提供保護(hù)。

· 增強(qiáng)的可部署能力: 盡管我們都相信值得信任的主機(jī)信息對(duì)于未來(lái)的網(wǎng)絡(luò)會(huì)有很大的幫助,但是我們目前應(yīng)該努力讓部屬該系統(tǒng)的用戶立即體會(huì)到其優(yōu)勢(shì)所在。

· 效率: 在部署后,該架構(gòu)必須不會(huì)明顯降低客戶端到服務(wù)器的網(wǎng)絡(luò)性能。

您能簡(jiǎn)要的解釋一下上述各點(diǎn)都是如何實(shí)現(xiàn)的嗎?

Parno博士: 很多網(wǎng)絡(luò)協(xié)議,尤其是與安全相關(guān)的協(xié)議,都會(huì)花費(fèi)大量資源試圖改變信息的結(jié)構(gòu),而這些信息對(duì)于信息源來(lái)說(shuō)是已知的。

舉個(gè)例子,研究表明,如果你知道電腦將要發(fā)送多少封電子郵件,以及這些郵件的目的地,你就能明確的知道這些郵件是否是垃圾郵件。任何一個(gè)郵件接收者都很難完成上述統(tǒng)計(jì),但是對(duì)于郵件發(fā)送者來(lái)說(shuō),這種統(tǒng)計(jì)很容易。

通過(guò)諸如Flicker這樣的架構(gòu),我們可以在隔離區(qū)域里進(jìn)行這種統(tǒng)計(jì)運(yùn)算,并將其通過(guò)加密的方式附加在每一封發(fā)出的郵件或網(wǎng)絡(luò)數(shù)據(jù)包中。郵件服務(wù)器在接收到這些郵件后就會(huì)知道郵件發(fā)送源主機(jī)在最近一個(gè)小時(shí)內(nèi)發(fā)送過(guò)多少封郵件,比如發(fā)現(xiàn)在過(guò)去一小時(shí)內(nèi),這臺(tái)主機(jī)只發(fā)送出了兩封郵件,那么這封郵件是垃圾郵件的可能性就很小了。

類似的方法還可以用于其它協(xié)議,比如幫助緩解拒絕服務(wù)攻擊或者網(wǎng)絡(luò)蠕蟲(chóng)的泛濫。當(dāng)然,我們使用這種方法的同時(shí)也要注意保護(hù)用戶隱私,比如通過(guò)組合的匿名技術(shù),仔細(xì)選擇作為標(biāo)記的狀態(tài)參數(shù),以及使用小型的,獨(dú)立的可校驗(yàn)的代碼模塊。

記者: 最后,“可校驗(yàn)的計(jì)算:在不信任的軟件或硬件環(huán)境實(shí)現(xiàn)安全代碼執(zhí)行”。據(jù)我的理解,這方面主要是針對(duì)外包計(jì)算和網(wǎng)絡(luò)方面的安全規(guī)范。您認(rèn)為應(yīng)該使用Yao教授的亂碼電路方案和同態(tài)加密方案。我了解同態(tài)加密,但是Yao教授的亂碼電路方案是什么意思?

Parno博士: 亂碼電路(Garbled circuits)是Andrew Yao教授在上世紀(jì)80年代發(fā)明的一種很聰明的技術(shù)。它可以讓兩個(gè)人針對(duì)某個(gè)算式來(lái)計(jì)算答案,而不需要知道他們?cè)谟?jì)算式所輸入的數(shù)字。

舉個(gè)例子說(shuō),加入你和我都想知道咱們兩個(gè)到底誰(shuí)更年長(zhǎng)一些,但是我們兩個(gè)都比較謹(jǐn)慎,不想直接告訴對(duì)方自己的年齡。使用亂碼電路方案,我們可以通過(guò)交換一些信息的方法來(lái)讓彼此知道答案(比如我說(shuō)我比你年輕),但是這種信息交換并不會(huì)讓我知道你的確切年齡,你也同樣不會(huì)知道我的確切年齡。

通過(guò)我的論文工作,我發(fā)現(xiàn)如果修改一下Yao教授的電路結(jié)構(gòu),我就可以創(chuàng)建一種新的協(xié)議,讓你可以將某個(gè)計(jì)算功能外包給第三方,同時(shí)還能校驗(yàn)他們的計(jì)算工作是否正確。

比如我可以付費(fèi)給你幫助我進(jìn)行一些數(shù)據(jù)的傅里葉變換的計(jì)算工作 ,當(dāng)你將結(jié)果反饋給我后,我需要確保你反饋回的數(shù)據(jù)是確實(shí)進(jìn)行傅里葉變換后得到的數(shù)據(jù),而不是隨便給了我一個(gè)憑空捏造的數(shù)據(jù)。

經(jīng)過(guò)修改后的Yao教授的協(xié)議可以讓我對(duì)你的計(jì)算工作進(jìn)行約束,從而在你完成計(jì)算工作后有效的對(duì)計(jì)算答案進(jìn)行校驗(yàn)。相反,完全同態(tài)加密本身只能保證我所提供的數(shù)據(jù)安全,而不能告訴我第三方到底對(duì)我的數(shù)據(jù)進(jìn)行了什么類型的計(jì)算。

不幸的是,只是修改Yao教授的協(xié)議還不夠。因?yàn)榻⒁粋€(gè)亂碼電路需要很多工作,而每次計(jì)算,都需要重新建立電路。現(xiàn)在我們通過(guò)在協(xié)議上增加一個(gè)加密層的方法來(lái)解決這一問(wèn)題,這樣我們就能多次重復(fù)利用同一個(gè)電路,從而在多次運(yùn)算中平攤電路的設(shè)計(jì)成本。

總結(jié)

便利性與安全性兼得的方案看上去有些復(fù)雜,不過(guò)這確實(shí)是未來(lái)的發(fā)展方向。另外我們還要感謝Parno博士的研究,以及他抽出時(shí)間接受我們這次采訪。

分享到

huanghui

相關(guān)推薦