當前位置:
首頁 > 新聞 > 如何給網路披上鎧甲?

如何給網路披上鎧甲?

遠古互聯網時期有個段子:

官員:給我100萬,在北京沒有辦不成的事。煤老闆:這是1個億,把天安門上的照片換成我爹。

官員拿錢走人。

一周過去,煤老闆看見城樓上的照片沒變,叫著退錢,但官員說事已辦好,煤老闆回派出所一查,發現自己的名字被改成了毛岸英。

這個段子除了告訴我們逆向思維能賺錢外,還在訴說一種隱性需求:身份信息應該上鏈。但這裡有個小問題:政務不是商業項目,不可能為了激勵不作假,而讓公安機關去挖礦。

有沒有技術可以擺平?有,它的名字叫TEE。

一、什麼是TEE?

可信執行環境(TEE,Trusted Execution Environment):在硬體層面划出一塊獨立於操作系統的區域,能無憂無慮地運行代碼。

看名字可能不眼熟,但TEE在我們日常生活中早已普遍,比如手機會把你的指紋和密鑰存在可信環境中,當需要驗證指紋時,在TEE中執行判斷,直接輸出結果,保障隱私。

很多TEE技術基於CPU晶元,而Intel公司的SGX(Software Guard Extensions)則把安全範圍從CPU晶元拓展至內存條。

SGX並不像殺毒軟體那樣監控惡意軟體和篡改行為,而是把合法軟體的安全操作封裝在一個獨立區域中,這個區域的名字叫Enclave。

Enclave ["enkleiv] 原指本國境內隸屬另一國的領土,在TEE中指獨立於操作系統外、安全的硬體區域,相當於一塊被鋼板保護的世外桃源。

即使惡意軟體感染操作系統,也無法篡改代碼。於是,如果在伺服器上使用SGX,這台伺服器就能向其他人證明:它跑的代碼就是它聲稱要跑的代碼,它記的數據就是它本應記的數據

最終很多台伺服器搭建出一個分散式網路,即使沒有激勵,也能正確讀寫數據。但是,以SGX為代表的TEE技術真的如此完美么?

二、沒有絕對可信的執行環境

只要是個裝著金條的保險柜,總會吸引潛在攻擊者,問題是,都已經在硬體上做到隔離了,攻擊者又如何通過軟體執行惡意呢?不過,確實有種攻擊可以穿透硬體防衛,而且多次得手,它的名字叫Rowhammer。

Rowhammer攻擊目前還沒有像樣的中文名字,機械翻譯應該是「用榔頭橫敲豎打」,把內存里本來的0敲成1,本來的1敲成0,聽起來很玄幻,但真的不是說段子,這是怎麼做到的?

計算機的內存由無數個存儲單元組成,存儲單元中的電容充滿電子時表示1,清空電子時表示0。不過電容會漏電,充滿電子後,只需幾毫秒電就會漏光,需要CPU對電容繼續充電,保持1的狀態。

本來好好的,但是最近幾年內存容量大幅上漲,電容排列越來越密,一旦高頻讀寫某段內存區域,相鄰存儲單元很容易因為電容泄漏產生「比特位翻」。

這就好像一張桌子上鋪滿硬幣,本應按正常程序翻轉硬幣的正反面,可是因為翻得太快,桌面一抖,某些硬幣脫離指令翻了身。

一旦因緣際會,關鍵比特位上的0和1發生翻轉,那麼TEE就會被攻破,進而能執行未經授權的代碼。Rowhammer攻擊是一種源自硬體的問題,軟體層面很難解決。

2016年9月,出現一種名叫風水翻轉(Flip Feng Shui)的攻擊技術,本質上就屬於Rowhammer類型。風水翻轉在物理內存上動手腳,把關鍵信息存儲到容易被Rowhammer攻擊的物理內存區域,然後啟動高頻讀寫,幾榔頭下去,就能把TEE的鐵皮盒敲成牛皮紙。

在Rowhammer攻擊面前,Intel公司的王牌產品SGX也未能倖免,2017年10月,有論文指出,SGX炸彈攻擊(SGX-Bomb Attack)可以觸發遠端伺服器enclave進程自鎖,系統出於自我保護會重啟,這對雲端伺服器是一個重大威脅。實測環境中的SGX炸彈攻擊,攻擊者用了64毫秒刷新一次的頻率,不到5分鐘就讓系統掛了。

雖然Intel公司修復過一些同類漏洞,但無論怎麼努力,可信執行設備始終處於看不見的軍備競賽中,道高一尺魔高一丈,天也不知道會從天而降哪些妖怪啃光TEE的安全性,不過區塊鏈技術卻帶來一劑解藥。

三、TEE+BFT:試水無幣區塊鏈

為記錄數據的節點披上TEE的鎧甲,即使個別節點被攻破,執行惡意的代碼,卻依然有條件正確地記賬,因為只要故障節點低於總節點數的1/3,使用BFT的共識機制就能在數學上保證分散式賬本不出錯。

順著這條邏輯,就能推演出無幣區塊鏈:並不需要用幣激勵礦工保護鏈上數據。

大多數區塊鏈的coin或token,客觀上的作用只有一個:保護數據不被篡改。因為幣的存在,惡意篡改者必須先和礦工肉搏,礦工靠幣謀生,如果不賣力抵抗,賬一錯,信任體系奔潰,幣價大跌,自己倒霉。

所以,和普遍認知相反,區塊鏈技術本身並不能必然保證數據準確,最終保護賬本的是礦工的利益。區塊鏈最多只是一種分散式記賬技術,如果有足夠強大的惡意外力,同樣的代碼並不能必然保證數據準確,同樣的正確,可能源自完全不同的爭鬥過程。

而TEE技術的加入,在很大程度上降低了搏鬥成本,使得數據趨向可信。不過任何「可信」都講究成本收益,如果篡改數據的收益大於成本,潛在攻擊者就會冒出,原來擋住惡意者的是礦工,而現在多了一項技術:可信執行環境。

當然,在TEE組成的網路環境中,也能引入傳統礦工獎勵,讓賬本得到雙重呵護,在這方面的試水者很多,讓時間陪著我們靜靜觀察。

結語

實際場景中到底使用TEE還是礦工,歸根到底是個數學問題:誰的成本收益更划算誰就上場:

那些牽扯利益廣泛的底層應用,由礦工牽頭使用礦機挖礦保護安全相對划算,比如比特幣。如果比特幣必須使用TEE技術才能接入記賬,那很難有人可以保證TEE技術的研發者和生產商不在晶元裡面埋後門。所以,比特幣挖礦成本高,可如果使用TEE技術記賬,它的成本會更高。

那些針對特定場景的表層應用,更容易鋪設TEE網路、記錄分散式賬本,比如公司內網和政府機構的資料庫,畢竟TEE技術能提升作惡成本,削減審計費用,比如很難再有內部人員能篡改別人名字了。

區塊鏈應用停留在炒幣階段,鮮有成果落地,不是因為技術難,而是分散式系統本身就很貴。如果一件事一個人能做好,就沒必要攤出去讓大家做,這是很簡單的常識,但卻很容易在山呼海嘯的宣傳會中被人忽略。

只有那些一個人做、必然沒有很多人一起做更有效率的事,才有必要攤出去讓大家一起幫忙,比如發行競爭貨幣,比如確認權利歸屬。

分散式系統節點數多、天生貴,常常不如中心化系統有效率,這是現在很多區塊鏈項目推不動的底層原因:成本貴過收益。站在這個角度想一想,其實90%的項目你根本不用看。

本文於2018年6月30日發佈於微信公眾號:湯強,歡迎關注。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 巴比特資訊 的精彩文章:

比特派創始人文浩:錢包易做難精
烏鎮現場?劉慈欣參加跨界對話:當區塊鏈遇上科幻,會產生什麼?

TAG:巴比特資訊 |