<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CPU有個(gè)禁區(qū),內(nèi)核權(quán)限也無法進(jìn)入!

          共 3218字,需瀏覽 7分鐘

           ·

          2020-09-04 22:59

          神秘項(xiàng)目

          我是CPU一號(hào)車間的阿Q,是的,我又來了。

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

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

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

          這個(gè)代號(hào)為SGX的神秘項(xiàng)目全稱Software Guard Extensions,志在全面改革,提升咱們CPU的安全能力。

          偷聽會(huì)議

          我瞬間不高興了,這么重要的項(xiàng)目,居然沒找我參加?

          隨即,我來到了領(lǐng)導(dǎo)的辦公室,果然他們幾個(gè)在開著秘密會(huì)議,而我就湊在一旁偷聽。

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

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

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

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

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

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

          此話一出,會(huì)場(chǎng)瞬間安靜了。就這水平,領(lǐng)導(dǎo)居然請(qǐng)他來不請(qǐng)我!

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

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

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

          引進(jìn)一個(gè)新的工作模式,這種思路倒是很新鮮,大家紛紛議論開來。

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

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

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

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

          短短一小會(huì)兒時(shí)間,大家就七嘴八舌提了一堆問題出來···

          領(lǐng)導(dǎo)給他們幾個(gè)一一分配了任務(wù),下去思考這些問題的解決辦法,過幾天再進(jìn)行討論。

          在他們散會(huì)離場(chǎng)前,我匆忙離開了。

          主動(dòng)出擊

          這可是個(gè)表現(xiàn)的好機(jī)會(huì),要是能解決上面的問題,領(lǐng)導(dǎo)說不定能讓我加入這個(gè)項(xiàng)目組。

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

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

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

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

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

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

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

          系統(tǒng)調(diào)用:系統(tǒng)調(diào)用有點(diǎn)麻煩,需要進(jìn)入操作系統(tǒng)內(nèi)核空間,因?yàn)椴荒苄湃尾僮飨到y(tǒng),同樣需要先退出安全空間,執(zhí)行完系統(tǒng)調(diào)用再進(jìn)來。

          函數(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ù)是應(yīng)用程序自己定義的

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

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

          內(nèi)存加密

          隨后,我把我的這些想法整理出來,來到了領(lǐng)導(dǎo)辦公室,主動(dòng)申請(qǐng)加入SGX項(xiàng)目組。

          領(lǐng)導(dǎo)顯然對(duì)我的到來有些意外,不過看完我準(zhǔn)備的材料還是滿意的同意了我的申請(qǐng),讓我也參與下一次的討論會(huì),真是功夫不負(fù)有心人!

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

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

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

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

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

          “老八,你就別賣關(guān)子了,快說吧!”

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

          老八的話如當(dāng)頭一棒,我怎么就沒往這個(gè)方向考慮。

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

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

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

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

          “好!老八這個(gè)建議好。我決定這個(gè)項(xiàng)目就由老八來牽頭!”,領(lǐng)導(dǎo)拍案而起。

          散會(huì)后,虎子笑我忙活半天還是沒有當(dāng)上牽頭人,我倒是很看得開,能一起參與就不錯(cuò)了,學(xué)到技術(shù)才是王道~

          讀者福利
          《程序員內(nèi)功修煉》第二版強(qiáng)勢(shì)來襲,匯總了高質(zhì)量的算法、計(jì)算機(jī)基礎(chǔ)文章并且每一篇文章,要嘛是漫畫講解,要嘛是對(duì)話講解,一步步引導(dǎo),要嘛是圖形并茂,如果你想學(xué)習(xí)算法,學(xué)習(xí)計(jì)算機(jī)基礎(chǔ),那么我決定這份 PDF,一定會(huì)讓你有所幫助。當(dāng)然,如果一是一位有那么點(diǎn)迷茫的在校生,相信我的個(gè)人經(jīng)歷,可以給你打一份雞血,讓你更好著去尋找自己的目標(biāo)。

          文章整體目錄

          如何獲取

          很簡單,在我的微信公眾號(hào)?帥地玩編程?回復(fù)?程序員內(nèi)功修煉?即可獲取《程序員內(nèi)功修煉》第一版和第二版的 PDF。

          推薦,推薦一個(gè) GitHub,這個(gè) GitHub 整理了幾百本常用技術(shù)PDF,絕大部分核心地技術(shù)書籍都可以在這里找到,GitHub地址:https://github.com/iamshuaidi/CS-Book(電腦打開體驗(yàn)更好),地址閱讀原文直達(dá)

          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女抽插视频 | JIZZ国产丝袜老师18女人 | 黄色视频免费在线观看网站 | 国产亚洲精品成人a v久久网站 | 青青草国产精品视频 |