近日,中國計算機學會(CCF)在太原晉祠賓館舉行了“2016第二屆自主安全產業生態創新發展論壇”,中國工程院院士倪光南、中國工程院院士沈昌祥、全國信息安全標準化技術委員會副主任委員韓俊、工信部軟件與集成電路促進中心軟件處副處長魏威,以及自主安全產業的專家學者、企業代表出席論壇。在論壇上,參會人員對什么是自主可控,如何發展自主可控核心技術等話題進行了討論。
雖然現在國內對自主可控的標準依舊沒有形成統一的觀點——很多馬甲CPU公司都堅稱自己的產品符合自主可控的標準......但這些導致CPU存在安全風險的因素卻實實在在的擺在眼前。
隱藏于指令集的安全風險
指令集就是一個編碼集合。它是用一些代碼表達讀、寫等操作,命令計算機做各種運算的一套命令標準。指令集可分為復雜指令CISC、精簡指令RISC、超長指令集VLIW。CISC的典型代表是X86,RISC的典型代表有ARM、MIPS、Power。
CISC和RISC在競爭的過程中相互學習、取長補短,CISC指令集在解碼階段實現向RISC類指令的轉化,將后端流水線轉換成類RISC(“類RISC”對intel后端流水線risc化的一種約定俗成的說法)的形式。隨著技術發展,RISC指令集也達到數百條甚至上千條,兩者在指令集上殊途同歸了。而超長指令集的典型代表就是Intel的安騰,由于VLIW與CISC、RISC軟件生態不兼容的原因, VLIW已經很罕見了。
一些網絡文章中將指令集視為“黑科技”,并以中國大多IC設計公司采用國外指令集為理由來貶低國內IC設計公司的技術水平,其實這種言論是非常值得商榷的。在技術上,重新定義指令集難度近乎于零,美國也一度禁止將單獨的指令集申請為專利,而真正有價值的是圍繞指令集建設的軟件生態和指令集的發展權——正如華為海思購買ARM的指令集授權,其本質是為了能夠兼容ARM的軟件生態,并非該指令集有多么高的技術含量。ARM能夠把ARM陣營的IC設計公司變成自己的馬仔,正是因為其嚴禁其他公司修改指令集,掌握了ARM指令集的發展權。
雖然指令集僅僅是一個編碼集合,但并不意味著其不存在貓膩——國內單位經過測試,發現X86指令集存在未公開指令,包括加解密、浮點操作在內共計二十余條。其中,有三條指令在用戶模式就可以使機器死機或重啟,作用機制直接穿透各種軟件保護措施,防護軟件卻不能感知;普通應用程序中嵌入一條即可使系統宕機——Intel可以利用這些未公開指令輕而易舉的黑掉用戶,雖然Intel在和平時期未必會這樣做,但Intel確實擁有黑掉用戶的能力。
隱藏于微結構的安全風險
微結構也被稱為CPU核,很大程度上決定了CPU的性能、功耗、安全性等要素,我們日常所說的雙核、四核、八核CPU芯片,其實是將2、4、8個微結構(CPU核)的接口互聯并集成到一片硅片上。
開發一款優異的微結構有多難呢?我們可以從不可替代性的角度進行分析。目前,雖然國內擁有一大批IC設計公司,但具備高性能微結構開發能力的CPU公司卻寥寥無幾,國內CPU公司大多采取購買國外CPU核授權的方式開發所謂的國產CPU。具體來說,華為海思、展訊、全志、瑞芯微、新岸線等公司雖然已經賣出了數以億計的手機、平板芯片,但已經商用的產品中沒有一片芯片的CPU核是自主開發的,全部都是購買ARM的CPU核授權。
正因此,由于都是購買ARM設計的微結構,所以基于ARM結構的國產芯片的性能、功耗、安全性都由ARM決定,中國ARM陣營IC設計公司在性能、功耗、安全性方面根本不具備話語權,能夠做主的,僅僅是把這些ARM微結構組合成雙核、四核、還是八核的芯片,以及在后端設計方面,在ARM留有的冗余范圍內,將主頻定得高一點,還是低一點。
雖然筆者沒有明確證據證明ARM出售的CPU核是否存在后門,但經過國內單位的測試,X86芯片確實存在功能不明確的“多余”模塊——這些模塊不是一般意義的調試接口,而是由特定的CPU芯片引腳控制,可讀寫CPU內部狀態寄存器、讀寫指定存儲區域、激活特定的微代碼段執行某個處理流程、對CPU進行復位。
另外,有人認為由于能夠拿到源碼,因此ARM芯片就是安全可控的,這種說法其實也是非常值得商榷的。
首先,熟悉IC設計的開發者應該都知道,一個IP設計公司在對第三方提供其設計好的IP時,即便是較開放的軟核授權,也不會做到所有代碼可讀可修改,而是包裝了好多模塊,其中有些可以配置、有些可以修改,而在大部分模塊內部都不可能進行隨意修改。
其次,即便拿到源碼,也存在“看得見,但看不懂”的問題。雖然對研發單位來說,員工在自己寫的代碼里設置后門,可能會在code review的過程中被發現,但第三方在沒有設計文檔和驗證環境等技術支持下,要想發現設計單位埋設的后門卻非常困難。而且設計單位可以對源碼進行變量置亂,所有變量全部用隨機字母和數字代替,在這種情況下,第三方想要破解源碼中埋設的后門近乎是一件不可能完成的任務。因此,國內ARM陣營IC設計公司能夠讀懂源碼的多寡,其實取決于ARM想讓你看懂多少。
在代工生產中的安全風險
上月,來自密歇根大學的研究人員證明了在芯片制造過程中植入硬件木馬的可行性,并在不久前的IEEE隱私與安全大會上,他們的研究獲得了最佳論文獎。
在論文中,研究人員詳細描述了一種惡意、超微型的硬件后門的概念驗證攻擊。在他們的展示中,黑客通過每分鐘在處理器上運行一系列看上去完全無害的命令,能夠有效地觸發處理器的一項功能,獲得操作系統的完整權限。最讓人恐慌的是,極微小的硬件后門基本無法通過任何現代硬件安全分析手段檢測出來,而且只要芯片工廠中的一位員工就能進完成植入。
密歇根大學的研究人員稱,這種木馬不是篡改芯片的“數字”特性,比如更改芯片的邏輯計算功能,而是一種物理入侵,劫持電流穿過二極管的路線,觸發預料之外的結果。
換言之,除了在集成電路設計的過程中可以安插硬件木馬之外,在集成電路的制造過程中,同樣可以對原始電路進行惡意修改,安插微小的惡意電路,以達到在無條件或在特定的觸發條件下實現改變系統功能、泄露機密情報,或摧毀系統的目的。
在論文中,來自密歇根的研究人員堅稱,“他們的本意是防止這類無法檢測的硬件后門攻擊,而不是發明它們。事實上,世界各國的政府有可能已經想到了這種模擬電路攻擊方法......通過發布這篇論文,我們說明了,這種攻擊是真實的、迫在眉睫的威脅。現在我們需要找到一種防御方式。”
因此,國內一些公司在境外流片的所謂的“安全芯片”,很難說安全保密程度到底有多高。
2015年7月27日,國務院總理李克強出席國家科技戰略座談會。李克強說,中國科學實力已經很強大,但仍有不足的地方,比如目前芯片還需要進口,每年要因為芯片進口花費2000多億,這筆錢與每年進口石油花費的金額差不多。
結語
自改革開放以來,中國在信息技術領域一直存在“缺芯少魂”的問題,最近幾年每年的芯片進口費用超過石油進口總額。這不僅嚴重制約了本土技術和產業的成長和發展,還對國家的信息安全造成了巨大的隱患——從海灣戰爭中薩達姆的防空系統突然癱瘓,到2007年以色列轟炸敘利亞東北部的一處潛在核設施時,敘利亞預警雷達因通用處理器后門而失效,再到2012年伊朗布什爾核電站在信息系統物理隔絕的情況下遭到震網病毒的攻擊……殘酷的現實向世人闡釋了只要存在國家和利益斗爭,給CPU或操作系統留后門的行為就永遠存在。
前車之鑒,后事之師,前人無暇自哀,切勿使后人復哀后人也。
相關文章
「 支持烏有之鄉!」
您的打賞將用于網站日常運行與維護。
幫助我們辦好網站,宣傳紅色文化!
歡迎掃描下方二維碼,訂閱烏有之鄉網刊微信公眾號
