機(jī)密計算能夠增強(qiáng)企業(yè)安全性,但是它們應(yīng)該如何定義?用戶需要做哪些工作?
無論是使用內(nèi)部數(shù)據(jù)中心的企業(yè)還是遷移到云端的企業(yè),安全性始終是最受關(guān)注的三大問題之一。應(yīng)用程序解決方案提供商、機(jī)器供應(yīng)商和云服務(wù)提供商都應(yīng)該竭力提高安全性。
過去,安全措施主要都集中在保護(hù)靜態(tài)數(shù)據(jù)或?qū)?shù)據(jù)進(jìn)行加密傳輸上。實際上,在數(shù)據(jù)庫中、在LAN/WAN上和通過5G網(wǎng)絡(luò)傳輸時都會對數(shù)據(jù)進(jìn)行加密,這也是所有此類系統(tǒng)的關(guān)鍵組成部分。幾乎所有的計算系統(tǒng)(甚至是智能手機(jī))都內(nèi)置有數(shù)據(jù)加密功能,并通過處理器芯片中的專用計算引擎來強(qiáng)化數(shù)據(jù)加密功能。但是,如果一個居心叵測的用戶通過惡意應(yīng)用程序或旁道入侵的方式訪問設(shè)備硬件,那么以上加密功能都將變得蒼白無力,而這卻是一個相對被忽視的領(lǐng)域。在處理加密數(shù)據(jù)時,我們必須清楚這是一個真正的漏洞。如果此時可以訪問機(jī)器內(nèi)存,那么所有的數(shù)據(jù)都可以被輕松查看/復(fù)制。“機(jī)密計算”(CC)的初衷就是要消除這種風(fēng)險隱患。
什么是機(jī)密計算?
Linux基金會在2019年成立了機(jī)密計算聯(lián)盟。其目的是為機(jī)密計算進(jìn)行定義并制定標(biāo)準(zhǔn),以支持和推廣開源CC工具和框架的開發(fā)。聯(lián)盟成員包括阿里巴巴、AMD、Arm、Facebook、Fortanix、谷歌、華為、IBM(紅帽)、英特爾、微軟、甲骨文、瑞士電信、騰訊和VMware等廠商。盡管有的公司已經(jīng)提供了可用的工具,但考慮到Linux基金會的背景,未來這些工具很可能會匯集到更為開放的CC源代碼框架中。Linux基金會指出,聯(lián)盟將專注于正在使用的數(shù)據(jù)領(lǐng)域,傳輸中的數(shù)據(jù)和靜態(tài)數(shù)據(jù)的機(jī)密性不在聯(lián)盟的考慮范圍之內(nèi)。聯(lián)盟對機(jī)密計算的貢獻(xiàn)包括:
Software Guard Extensions(Intel SGX)SDK。旨在幫助應(yīng)用程序開發(fā)人員保護(hù)選定的代碼和數(shù)據(jù),讓它們不在硬件層被泄露或被篡改。
Open Enclave SDK。作為一個開放源代碼框架,允許開發(fā)人員使用單獨的enclaving抽象來構(gòu)建受信任的執(zhí)行環(huán)境(TEE)應(yīng)用程序。當(dāng)出現(xiàn)跨多個TEE架構(gòu)運行的情況,開發(fā)人員也可以構(gòu)建應(yīng)用程序。
Enarx為一個為使用TEE保護(hù)應(yīng)用程序提供硬件獨立性的項目。
由于這是一項正在“進(jìn)行中的”標(biāo)準(zhǔn)化工作,因此未來可能還會有更多的項目。但是所有這些最終都將嵌入到CC的開源框架中。
CC為什么會如此特殊?
與數(shù)據(jù)加密不同,CC使用基于硬件的功能為數(shù)據(jù)、計算功能或整個應(yīng)用程序創(chuàng)建“受信任的執(zhí)行環(huán)境”(TEE)。CC隔離了這個跳板區(qū)域,讓其不被OS或VM訪問,從而防止了任何潛在的交叉隱患,沒有人可以獲得未分配給該TEE的訪問權(quán)限。TEE將阻止任何更改應(yīng)用程序代碼或篡改數(shù)據(jù)的嘗試。這一點在多用戶系統(tǒng)(虛擬化和公有云系統(tǒng))中尤其重要。在這些系統(tǒng)中,數(shù)據(jù)的交叉污染是真正的風(fēng)險。由于這個原因,一些潛在的公有云計算用戶拒絕向云端遷移。如果用戶對硬件進(jìn)行物理訪問,那么“邊道”攻擊的風(fēng)險會變得很低,與非CC系統(tǒng)相關(guān)的潛在風(fēng)險相比,這種風(fēng)險更是微不足道。
為什么是現(xiàn)在?
受信任的執(zhí)行環(huán)境是CC正常運行的關(guān)鍵。如今我們已經(jīng)建立了TEE,包括基于Arm的芯片(信任區(qū))和x86芯片(例如Intel SGX)。這種概念可以追溯到10多年前在許多PC上使用的TPM模塊。TEE的早期版本與現(xiàn)代版本的不同之處在于它們內(nèi)置在芯片的核心中,而不是作為外部附加組件。
盡管我們有了可以啟用TEE的系統(tǒng),但是很少有企業(yè)嘗試使用它們,許多應(yīng)用程序提供商也不支持它們。原因是它們難以部署,并且用戶需要在應(yīng)用程序中啟用特定的代碼才能強(qiáng)制使用TEE環(huán)境。此外,TEE并非在所有處理器上都可以使用(一些Intel Xeon芯片支持SGX,而有些則不支持),TEE也無法在所有芯片系列中兼容。這導(dǎo)致許多企業(yè)沒有部署非常重要的安全措施。
有哪些變化?
隨著數(shù)據(jù)逐漸遷離本地數(shù)據(jù)中心和多租戶云計算的出現(xiàn),保護(hù)客戶數(shù)據(jù)處理流程的完整性,以及保護(hù)流程中的某些專利算法如今已變得更加迫切。云提供商可以輕松啟動新的CC實例并供客戶使用。這消除了企業(yè)運行自己支持CC的系統(tǒng)需求。這是雙贏的局面,客戶可以保護(hù)其數(shù)據(jù)資產(chǎn),而云提供商則為客戶提供了其必要的硬件資產(chǎn)。這不僅帶來了新的可用性,越來越多的處理器也內(nèi)置了CC概念。由于云提供商通常在可用性的初級階段就獲得了新的高端處理能力,因此用戶社區(qū)的訪問速度遠(yuǎn)快于用戶自購設(shè)備。另外,應(yīng)用程序提供商可以通過云端的硬件和工具包,將CC快速地設(shè)計到其產(chǎn)品中,從而使他們能夠更好地從市場中收回開發(fā)投資。
企業(yè)應(yīng)該怎么做?
CC的概念并不是什么新鮮事物,但是TEE和CC在云端的可用性使其對于需要保護(hù)數(shù)據(jù)免受應(yīng)用程序漏洞攻擊的企業(yè)更具吸引力。建議企業(yè)在未來6~12個月內(nèi)探索CC技術(shù)的使用,并要求關(guān)鍵應(yīng)用解決方案提供商遵守CC戰(zhàn)略并在同步完成技術(shù)部署。
CC可以大幅提高企業(yè)安全性。雖然在安全性方面無法做到百分之百,但是CC的部署將安全性又向前推進(jìn)了一大步,所以用戶應(yīng)盡可能地部署,特別是對于在云端上部署應(yīng)用程序的企業(yè)。CC在未來1~2年內(nèi)可能會成為計算的標(biāo)準(zhǔn)方法,尤其是在云端。