您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)由CPU保護您的數(shù)據(jù)和隱私不被惡意代碼竊取的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
英特爾 SGX 基礎(chǔ)介紹
英特爾 SGX(Intel Software Guard Extension)是英特爾指令集架構(gòu)的一個擴展。SGX 為您提供了圍圈(Enclave),即內(nèi)存中一個加密的可信執(zhí)行區(qū)域,由 CPU 保護您的數(shù)據(jù)和隱私不被惡意代碼竊取。
原理
SGX 利用新增的處理器指令,在內(nèi)存中分配一部分區(qū)域 EPC(Enclave Page Cache),通過 CPU 內(nèi)的加密引擎 MEE(Memory Encryption Engine)對其中的數(shù)據(jù)進行加密。EPC 中加密的內(nèi)容只有進入 CPU 后才會被解密成明文。因此,在 SGX 中,您可以不信任操作系統(tǒng)、VMM、甚至 BIOS,只需要信任 CPU 便能確保隱私數(shù)據(jù)不會泄漏。
應(yīng)用
實際應(yīng)用中,您可以把隱私數(shù)據(jù)加密后以密文形式傳遞至云上的圍圈中,并通過遠程證明把對應(yīng)的秘鑰也傳入圍圈。然后在 CPU 的加密保護下利用數(shù)據(jù)進行運算,結(jié)果會以密文形式返回給您。這種模式下,您既可以利用云計算強大的計算力,又不用擔(dān)心數(shù)據(jù)泄漏。
EDL(Enclave Definition Language)
EDL 是 SGX 編程的核心,其中定義了所有圍圈里對外讀寫、處理數(shù)據(jù)的函數(shù)。在編譯階段,SDK 提供的 Edger8r 工具會根據(jù) EDL 中定義的函數(shù)生成圍圈和普通內(nèi)存的橋接函數(shù),并做相應(yīng)的安全檢測。
函數(shù)分為信任函數(shù)(ecall)和不可信函數(shù)(ocall):
ecall:定義在信任區(qū)域(trusted),在圍圈外被調(diào)用,并在圍圈內(nèi)執(zhí)行。
ocall:定義在不可信區(qū)域(untrusted),在圍圈內(nèi)被調(diào)用,并在圍圈外執(zhí)行。
// demo.edl enclave { // Add your definition of "secret_t" here trusted { public void get_secret([out] secret_t* secret); }; untrusted { // This OCALL is for illustration purposes only. // It should not be used in a real enclave, // unless it is during the development phase // for debugging purposes. void dump_secret([in] const secret_t* secret); }; };
安裝 SGX
您可以通過安裝文件或者源代碼安裝 SGX,包括驅(qū)動、PSW 和 SDK 等。兩種安裝方式都需要安裝對應(yīng) Linux 內(nèi)核版本的頭文件。
感謝各位的閱讀!關(guān)于由CPU保護您的數(shù)據(jù)和隱私不被惡意代碼竊取的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。