0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

CPU有個禁區(qū) 大部分人不知道!

工程師 ? 來源:編程世界宇宙 ? 作者:編程世界宇宙 ? 2020-09-11 17:37 ? 次閱讀

來源:編程世界宇宙

神秘項目我是CPU一號車間的阿Q,是的,我又來了。

最近一段時間,我?guī)状蜗掳嗉s隔壁二號車間虎子,他都推脫沒有時間,不過也沒看見他在忙個啥。

前幾天,我又去找他,還是沒看到他人,卻意外地在他桌上發(fā)現(xiàn)了一份文件,打開一看是一個代號為SGX的神秘項目,還是廠里領導親自帶頭攻堅。

仔細看了看,原來,自從上次的攻擊事件(詳情:完了!CPU一味求快出事兒了?。┌l(fā)生以來,領導一直憂心忡忡,雖然當時依靠操作系統(tǒng)提供的辦法暫解了燃眉之急,不過治標不治本,我們自身的缺陷一直存在,保不準哪天還要翻車。

這個代號為SGX的神秘項目全稱Software Guard Extensions,志在全面改革,提升咱們CPU的安全能力。

偷聽會議我瞬間不高興了,這么重要的項目,居然沒找我參加?

隨即,我來到了領導的辦公室,果然他們幾個在開著秘密會議,而我就湊在一旁偷聽。

“諸位,你們都是咱們廠里的核心骨干,關于這次安全能力提升的事情,大家回去之后有沒有什么想法,請暢所欲言!”,我聽到領導在講話。

核心骨干?難道我阿Q不是核心骨干嗎?真是氣抖冷!

沉悶了一小會兒,隔壁二號車間虎子才說到:“咱們現(xiàn)在不是有安全訪問級別嗎,從Ring0到Ring3,已經(jīng)可以很好到隔絕應用程序的攻擊了啊”

領導搖了搖頭,“盡管如此,但是一些惡意軟件可以利用操作系統(tǒng)的漏洞可以獲取到Ring0的權限,咱們現(xiàn)有的安全保護就蕩然無存了”

“那也是操作系統(tǒng)的鍋,要改進也該讓他們做啊,關我們什么事呢?”,虎子繼續(xù)說到。

“你忘記前段時間針對咱們CPU發(fā)起的攻擊了嗎?”

此話一出,會場瞬間安靜了。就這水平,領導居然請他來不請我!

領導緩了緩,接著說到:“咱們不能總依賴操作系統(tǒng)的安全保護,咱們自己也得拿出點辦法。我覺得現(xiàn)有的安全機制不夠,操作系統(tǒng)漏洞頻出,很容易被攻破,咱們現(xiàn)在不能信任操作系統(tǒng),得徹底全面的改革!”

這時,五號車間的代表說話了:“領導,我回去調(diào)研了一下,了解到咱們的競爭對手推出了一個叫TrustZone的技術,用于支持可信計算,號稱提供了一個非常安全的環(huán)境專門支持對安全性要求極高的程序運行,像什么支付啊、指紋認證之類的,咱們要做的話可以參考一下”

聽完TrustZone的介紹,三號車間老哥仿佛找到了靈感,激動的說到:“有了!咱們可以在內(nèi)存中劃出一片特殊的區(qū)域,作為最高機密的空間。將高度機密的程序代碼和數(shù)據(jù)放在這里面運行,再引入一種新的工作模式,咱們CPU只有在這種模式下才允許訪問這個安全空間,否則就算是有Ring0的權限也不能訪問!”

引進一個新的工作模式,這種思路倒是很新鮮,大家紛紛議論開來。

“這個安全空間技術上要怎樣實現(xiàn)呢?”

“線程怎么進入和退出安全空間?惡意程序進去了怎么辦?”

“怎么調(diào)用外部普通空間的函數(shù)呢?外部函數(shù)被攻擊了怎么辦?”

“需要系統(tǒng)調(diào)用怎么辦?中斷和異常怎么辦?”

短短一小會兒時間,大家就七嘴八舌提了一堆問題出來···

領導給他們幾個一一分配了任務,下去思考這些問題的解決辦法,過幾天再進行討論。

在他們散會離場前,我匆忙離開了。

主動出擊這可是個表現(xiàn)的好機會,要是能解決上面的問題,領導說不定能讓我加入這個項目組。

對于安全空間實現(xiàn)問題,既然是從內(nèi)存上劃出來的區(qū)域,自然得從內(nèi)存的訪問控制上做文章。我跟咱們廠里內(nèi)存管理單元MMU的小黑還算有些交情,打算去向他請教一番。

聽完我的需求,小黑不以為意,“就這啊,小事一樁,訪問內(nèi)存時我會進行權限檢查,到時候除了之前已有的檢查,再加一道檢查就可以:如果發(fā)現(xiàn)是要訪問安全空間的頁面,再檢查一下當前的工作模式是否正確”

其他幾個問題我也有了自己的想法,安全空間按照創(chuàng)建-初始化-進入-退出-銷毀的順序進行使用。

創(chuàng)建:通過執(zhí)行ECREATE指令創(chuàng)建一個安全空間,

初始化:通過執(zhí)行EINIT指令對剛才創(chuàng)建的安全空間進行初始化

進入 & 退出:通過執(zhí)行EENTER/EEXIT指令進入和退出安全空間,類似于系統(tǒng)調(diào)用的SYSENTER/SYSEXIT指令。提前設置好入口地址,進入安全空間后需要從指定的地方開始執(zhí)行,避免外面的程序亂來。執(zhí)行這兩條指令的同時CPU進行安全模式的切換。

中斷 & 異常:遇到中斷和異常,需要轉(zhuǎn)而執(zhí)行操作系統(tǒng)內(nèi)核處理代碼,而操作系統(tǒng)是不能被信任的。需要執(zhí)行AEX指令退出,將在安全空間執(zhí)行的上下文保存起來,以便回頭繼續(xù)執(zhí)行。

系統(tǒng)調(diào)用:系統(tǒng)調(diào)用有點麻煩,需要進入操作系統(tǒng)內(nèi)核空間,因為不能信任操作系統(tǒng),同樣需要先退出安全空間,執(zhí)行完系統(tǒng)調(diào)用再進來。

函數(shù)調(diào)用:安全空間和外部可以互相調(diào)用函數(shù),普通空間調(diào)用安全空間函數(shù)叫ECALL,安全空間調(diào)用外部空間函數(shù)叫OCALL。調(diào)用的方式類似操作系統(tǒng)的系統(tǒng)調(diào)用,不同的是操作系統(tǒng)的函數(shù)是內(nèi)核提供,安全空間的函數(shù)是應用程序自己定義的

銷毀:通過執(zhí)行EREMOVE指令銷毀一個安全空間

我還給這個安全空間取了一個名字,叫:Enclave,自然而然咱們CPU的工作模式就分了Enclave模式和非Enclave模式。

內(nèi)存加密隨后,我把我的這些想法整理出來,來到了領導辦公室,主動申請加入SGX項目組。

領導顯然對我的到來有些意外,不過看完我準備的材料還是滿意的同意了我的申請,讓我也參與下一次的討論會,真是功夫不負有心人!

很快就到了下一次的會議,我再也不用在門外偷聽了。

會議上我的方案得到了大家的一致認可,只有八號車間的代表不以為然:“安全空間的方案是很好,但是還差一個最重要的東西,要是加上這個,那就完美了!”

“是什么?”,大家齊刷刷的望向了老八。

“這些形形色色的攻擊方式,最終都是要讀寫內(nèi)存數(shù)據(jù),而他們屢屢得手的根本原因在于什么?”,老八說到。

大家一頭霧水,不知道他想表達什么。

“老八,你就別賣關子了,快說吧!”

老八站了起來,說到:“其根本原因就在于內(nèi)存中的數(shù)據(jù)是明文,一旦數(shù)據(jù)泄漏就可能造成嚴重后果。而如果我們把安全空間的內(nèi)存數(shù)據(jù)加密了呢?即便我們的防線都失守了,對方拿到的也只是加密后的數(shù)據(jù),做不了什么!”

老八的話如當頭一棒,我怎么就沒往這個方向考慮。

“加密?那什么時候解密呢?”,虎子問到。

“問得好,我建議咱們廠里內(nèi)存管理部門設置一個內(nèi)存加密引擎電路MEE(memory encryption engine),對安全空間的數(shù)據(jù)進行透明的加解密,數(shù)據(jù)寫入內(nèi)存時加密,讀入咱們CPU內(nèi)部時再解密!”

虎子一聽說到:“唉,這個好,建議全面推廣,干嘛只在安全空間用啊”

老八拍了拍虎子的頭:“說你虎,你還真虎,這玩意對性能影響不可小覷,怎么能隨便用呢,好鋼要用到刀刃上!”

“好!老八這個建議好。我決定這個項目就由老八來牽頭!”,領導拍案而起。

散會后,虎子笑我忙活半天還是沒有當上牽頭人,我倒是很看得開,能一起參與就不錯了,學到技術才是王道~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10813

    瀏覽量

    210880
  • enclave
    +關注

    關注

    0

    文章

    2

    瀏覽量

    2173
收藏 人收藏

    評論

    相關推薦

    法官駁回大部分 GitHub Copilot 版權索賠要求

    在開發(fā)者對 GitHub、微軟和 OpenAI 提起的版權訴訟中,法官駁回了大部分訴訟請求。
    的頭像 發(fā)表于 11-13 12:13 ?8次閱讀

    AGM32VF407的大部分IO可以隨意配置,這是這么做到的?

    AGM32VF407的大部分IO可以隨意配置,除了少數(shù)的專用引腳外,這是這么做到的?這里包括異構的RISC-V內(nèi)核的外設哦。非常感興趣呢。
    發(fā)表于 10-31 19:07

    關于陶瓷電路板你不知道的事

    陶瓷電路板(Ceramic Circuit Board),又稱陶瓷基板,是一種以陶瓷材料為基體,通過精密的制造工藝在表面形成電路圖形的高技術產(chǎn)品,快來看看哪些是您還不知道的事?
    的頭像 發(fā)表于 10-21 11:55 ?130次閱讀
    關于陶瓷電路板你<b class='flag-5'>不知道</b>的事

    THS7001前級放大部分可以正常工作,后級PGA部分如何連接?

    我THS7001前級放大部分可以正常工作,但后級PGA部分不知道如何連接,那個CLAMP (H,L)不知道是什么意思,該如何連接? 我現(xiàn)在的連接方法原本是想按G2 G1 G0=
    發(fā)表于 09-19 06:20

    知道PCB為什么大部分都是綠色的嗎?

    的風險。并且鈷和碳在高溫環(huán)境下容易散發(fā)有毒氣體,無論是使用過程還是后期處理時,都不具備環(huán)保性。 目前市場也有少部分廠家會使用黑色的PCB板,這其中我們認為原因: 1.看起來高端一些 2.黑色
    發(fā)表于 05-30 10:37

    過壓斬波電路哪三大部分組成

    過壓斬波電路是一種用于保護電子設備免受過電壓損害的電路。它主要由三大部分組成,包括過壓檢測電路、觸發(fā)控制電路和繼電器控制電路。 第一部分:過壓檢測電路 過壓檢測電路是過壓斬波電路的核心部分,它負責
    的頭像 發(fā)表于 03-21 17:24 ?643次閱讀

    能用stm32h7為主做絕大部分的功能實現(xiàn),用stm32f1為輔實現(xiàn)一小功能嗎?

    請問能用stm32h7為主做絕大部分的功能實現(xiàn),用stm32f1為輔實現(xiàn)一小功能嗎?
    發(fā)表于 03-20 07:09

    輥壓機軸承位磨損修復你不知道的那些事

    電子發(fā)燒友網(wǎng)站提供《輥壓機軸承位磨損修復你不知道的那些事.docx》資料免費下載
    發(fā)表于 03-12 15:10 ?0次下載

    plc的軟件包含哪兩大部分

    PLC(可編程邏輯控制器)的軟件結(jié)構通常由兩大部分構成:系統(tǒng)程序和用戶程序。這兩部分共同確保了PLC能夠根據(jù)工業(yè)自動化的需求進行有效控制和管理。 系統(tǒng)程序 系統(tǒng)程序是PLC軟件的核心部分,它負責管理
    的頭像 發(fā)表于 01-24 17:45 ?1959次閱讀

    7種MOSFET柵極電路的常見作用,不看不知道

    7種MOSFET柵極電路的常見作用,不看不知道
    的頭像 發(fā)表于 12-15 09:46 ?1788次閱讀
    7種MOSFET柵極電路的常見作用,不看<b class='flag-5'>不知道</b>!

    揭秘pcb是什么物質(zhì):你不知道的“化學戰(zhàn)士”

    揭秘pcb是什么物質(zhì):你不知道的“化學戰(zhàn)士”
    的頭像 發(fā)表于 12-14 10:27 ?939次閱讀

    什么原因可能導致ad7656bstz大部分時間采樣都正確,偶爾一兩次采樣不對的情況?

    什么原因可能導致ad7656bstz大部分時間采樣都正確,偶爾一兩次采樣不對的情況?
    發(fā)表于 12-14 06:09

    verilog中有符號數(shù)和無符號數(shù)的本質(zhì)探究

    不知道有沒有人像我一樣,長久以來將verilog中的符號數(shù)視為不敢觸碰的禁區(qū)
    的頭像 發(fā)表于 12-04 16:13 ?1058次閱讀
    verilog中有符號數(shù)和無符號數(shù)的本質(zhì)探究

    工業(yè)機器人的三大部分六大系統(tǒng)是什么?

    工業(yè)機器人由三大部分和六子系統(tǒng)構成?;谶@三大部分和六大系統(tǒng)的協(xié)同作業(yè),令工業(yè)機器人成為了具備工作精度高、穩(wěn)定性強、工作速度快等特點的高精密度機械設備,進一步為企業(yè)提高生產(chǎn)效率、降低生產(chǎn)成本、提高
    的頭像 發(fā)表于 11-17 08:07 ?4472次閱讀
    工業(yè)機器人的三<b class='flag-5'>大部分</b>六大系統(tǒng)是什么?

    不知道的FPC,它的發(fā)展史竟然是這樣的!

    不知道的FPC,它的發(fā)展史竟然是這樣的!
    的頭像 發(fā)表于 11-15 10:48 ?1089次閱讀