RedisConf 2020 之硬件級Redis數(shù)據(jù)加密

來源:RedisConf 2020 organized by Redis Labs and https://www.anjuna.io/redis-solution

翻譯:Wen Hui

轉(zhuǎn)載:中間件小哥

為什么需要硬件級別的安全技術(shù)

內(nèi)部人員已經(jīng)對企業(yè)IT構(gòu)成了主要威脅。盡管大多數(shù)企業(yè)已經(jīng)采取措施來保護(hù)IT系統(tǒng)免受最終用戶的侵害,但是具有不受限制的訪問權(quán)限和資格證書的內(nèi)部人員可能更加危險。黑客也可以讓他們的侵入看起來像內(nèi)部人員所為。

由于在軟件層面防止IT內(nèi)部威脅的方法和技術(shù)具有嚴(yán)重的局限性,所以現(xiàn)在幾乎所有主要的硬件和云供應(yīng)商都在嘗試硬件級別的安全技術(shù)。Secure Enclaves提供了一種更全面、安全的解決方案,可以保護(hù)數(shù)據(jù)、應(yīng)用程序和存儲不受內(nèi)部和第三方的攻擊,無論是在企業(yè)內(nèi)部數(shù)據(jù)中心、私有云還是在公共云中。

什么是Secure Enclaves

Secure Enclaves(也稱為Trusted Execution Environment或TEE)是安全計算的核心。Secure Enclaves是內(nèi)置在CPU中與安全相關(guān)的指令代碼集。它們保護(hù)使用中的數(shù)據(jù),因為Secure Enclaves僅在CPU中動態(tài)解密,然后才針對Secure Enclaves內(nèi)運行的代碼和數(shù)據(jù)進(jìn)行解密。

Secure Enclaves通過將應(yīng)用程序代碼和數(shù)據(jù)與沒有訪問權(quán)限的任何人隔離,并對其內(nèi)存進(jìn)行加密,從而在每臺服務(wù)器上提供CPU硬件級隔離和內(nèi)存加密。在Secure Enclaves內(nèi)運行時,任何其他實體都無法訪問應(yīng)用程序代碼和數(shù)據(jù)。具有root權(quán)限或physical權(quán)限的內(nèi)部人員都無法訪問內(nèi)存。 甚至guest操作系統(tǒng),系統(tǒng)管理程序或主機(jī)操作系統(tǒng)上的特權(quán)用戶也被阻止。借助附加軟件,Secure Enclaves也可以對存儲和網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密,以實現(xiàn)簡單的全棧安全性。 Intel和AMD的所有新CPU都內(nèi)置了Secure Enclaves硬件支持。

image

l Intel: Software Guard Extensions(SGX)是一組CPU指令,可以提高應(yīng)用程序代碼和數(shù)據(jù)的安全性,從而提供了更多的保護(hù),防止泄露或修改。SGX enclaves內(nèi)部的應(yīng)用程序與運行在同一系統(tǒng)上的其他應(yīng)用程序以及主機(jī)操作系統(tǒng)和虛擬機(jī)管理程序隔離。Secure Enclaves的內(nèi)存已加密,可以防止物理攻擊。Intel SGX提供對密鑰的訪問,這些密鑰可以保障安全地存儲數(shù)據(jù),因此只有運行特定應(yīng)用程序的Secure Enclaves才能讀取它。SGX還能通過遠(yuǎn)程證明向其他方證明該應(yīng)用程序在真正的Intel硬件上的Secure Enclaves中運行,而且已經(jīng)更新了最新的微代碼以確保其安全性。

l AMD: Secure Encrytion Virtualization(SEV)是AMD的硬件加速內(nèi)存加密技術(shù),用于保護(hù)使用中的數(shù)據(jù)。它依靠嵌入到內(nèi)存控制器中的加密引擎以及用于密鑰生成和管理的安全處理器,對整個虛擬機(jī)的內(nèi)存進(jìn)行加密。

image

如何應(yīng)用Secure Enclaves

Intel SGX和AMD SEV都是在CPU硬件中實現(xiàn)的一組功能,應(yīng)用這些功能需要軟件解決方案。

到目前為止,應(yīng)用Secure Enclaves是比較復(fù)雜的,需要對應(yīng)用程序進(jìn)行大量重寫,使其與Secure Enclaves配合使用。另外,每個芯片提供商都有自己的SDK。這個領(lǐng)域有幾種開源方案,包括來自Asylo,Open Enclaves和Intel SGX的產(chǎn)品,不過還是需要重新編譯每個應(yīng)用程序以及使用SDK。

這一次Redis Labs和Anjuna就分別介紹和演示了基于Secure Enclaves技術(shù)的Redis數(shù)據(jù)加密。Anjuna的解決方案不用改動Redis就能使其運行在基于CPU的Secure Enclaves中。Anjuna還提供了Redis運行在Secure Enclaves所需的其他功能,比如遠(yuǎn)程證明,以確保Redis僅在為其分配的主機(jī)上運行。下面就簡單介紹一下Anjuna的解決方案。

image

l 在沒有啟用Secure Enclaves時,Redis的數(shù)據(jù)沒有加密,因此可以通過core dump這種非常規(guī)途徑獲取Redis的數(shù)據(jù)信息:

image

而且RDB文件里的數(shù)據(jù)也是沒有加密的:

image

l 在啟用Secure Enclaves之后,無法再通過core dump的途徑獲取Redis數(shù)據(jù)信息了:

image
image.png

同時RDB文件里的數(shù)據(jù)也被加密了:

image

l Secure Enclaves對Redis的性能還是影響不小的,所以要根據(jù)應(yīng)用場景來決定是否啟用。下面是Redis在Intel SGX和AMD SEV環(huán)境下的性能數(shù)據(jù):

image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容