冷 冰,龐 飛
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
計(jì)算平臺(臺式機(jī)、服務(wù)器、移動設(shè)備和嵌入式設(shè)備等)作為構(gòu)建信息基礎(chǔ)設(shè)施的基本組成單元,其面臨的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)不斷攀升[1]??尚庞?jì)算是國際可信計(jì)算組織(Trusted Computing Group,TCG)提出的,解決計(jì)算平臺安全問題的一種技術(shù)。我們國家在沈昌祥院士的帶領(lǐng)下,從1992年開始,經(jīng)過長期攻關(guān),形成了我國自主創(chuàng)新的可信體系[2-3]。
中國自2001年開始啟動處理器設(shè)計(jì)項(xiàng)目以來,產(chǎn)生了以龍芯、飛騰等為代表的國產(chǎn)CPU,產(chǎn)品性能逐年提高[4]。近期中美貿(mào)易摩擦加劇,中興、華為事件[5-6]的出現(xiàn)再次為我們敲響了警鐘。利用國產(chǎn)處理器構(gòu)建自主可控計(jì)算平臺才是我國關(guān)鍵信息基礎(chǔ)設(shè)施長治久安之路。
目前我國的可信計(jì)算平臺按照構(gòu)建方法的不同,主要分為兩大類。一類是可信增強(qiáng)型,即不改動現(xiàn)有計(jì)算平臺主板,插入一塊PCI/PCI-E/USB/mini PCI-E/TF等標(biāo)準(zhǔn)接口的可信密碼模塊(Trusted Cryptography Module,TCM),再在操作系統(tǒng)中安裝一套安全軟件,軟硬配合,在計(jì)算平臺上構(gòu)建一個相對可信的運(yùn)行環(huán)境。另一種是高安全型,即定制計(jì)算平臺主板,將可信平臺控制模塊(Trusted Platform Control Module,TPCM)貼在主板上,依靠特殊設(shè)計(jì)的硬件電路使TPCM先于CPU啟動,對CPU度量通過后,才開始后續(xù)啟動過程,以確保TPCM是真正的信任原點(diǎn),實(shí)現(xiàn)高安全。
主板貼TPCM模塊的方法是在上世紀(jì)九十年代我國沒有掌握CPU、操作系統(tǒng)等核心部件的嚴(yán)酷背景下提出的。該方法的出發(fā)點(diǎn)是不信任CPU和操作系統(tǒng),整個計(jì)算平臺可以信任的只有TPCM,它作為唯一的可信根去度量、監(jiān)控計(jì)算平臺其它部件。
隨著國產(chǎn)處理器的快速發(fā)展和走向?qū)嵱?,我國可信?jì)算平臺的設(shè)計(jì)限制條件越來越少,設(shè)計(jì)環(huán)境逐漸改善。本文從核心元器件、基礎(chǔ)軟件自主可控之后可信邊界的變化出發(fā),提出了一種新的可信計(jì)算平臺構(gòu)建方法,該方法優(yōu)化了國產(chǎn)計(jì)算平臺整機(jī)設(shè)計(jì),降低了成本,提升了效率。
基于非國產(chǎn)處理器和操作系統(tǒng)構(gòu)建的可信計(jì)算平臺,由于不能自主可控,我們無法確保其沒有被惡意預(yù)留后門,植入木馬。事實(shí)上,Intel等主流處理器就曾被爆出多個高危漏洞威脅系統(tǒng)安全[7]。如果該植入過程在處理器生產(chǎn)之后由第三方植入,那么根據(jù)可信計(jì)算機(jī)制,還可以發(fā)現(xiàn)處理器已經(jīng)被篡改。如果該后門是處理器生產(chǎn)廠家在處理器生產(chǎn)交付之前預(yù)置的,那么按照當(dāng)前可信計(jì)算的靜態(tài)度量機(jī)制,是無法檢測出來的。對計(jì)算平臺外設(shè)和操作系統(tǒng)而言,同樣如此。
因此,利用非國產(chǎn)軟硬件構(gòu)建的可信計(jì)算平臺,其可信邊界只有一個完全自主可控的TPCM模塊。任何其他軟硬件部件在沒有通過TPCM模塊的度量驗(yàn)證之前都是不可信的。
由于這種不信任關(guān)系,安裝于非國產(chǎn)操作系統(tǒng)內(nèi)的可信軟件基(Trusted Software Base,TSB)必須使用傳統(tǒng)主機(jī)安全防護(hù)軟件的一些技術(shù)實(shí)時(shí)監(jiān)視操作系統(tǒng)及其它軟件,以便發(fā)現(xiàn)計(jì)算平臺的異常行為。因此,其軟硬件結(jié)構(gòu)不可避免地復(fù)雜,成本高、效率低。
在基于國產(chǎn)處理器和操作系統(tǒng)構(gòu)建可信計(jì)算平臺時(shí),情況有了變化。首先,供應(yīng)鏈安全和信息安全是研發(fā)自主可控處理器的一個主要動因,國內(nèi)廠家不會惡意在處理器中預(yù)置后門和木馬。其次,國內(nèi)處理器廠家與國內(nèi)安全廠家一直保持著緊密合作,是相互信任的,處理器一旦被發(fā)現(xiàn)bug,存在安全風(fēng)險(xiǎn),就會很快得到修復(fù)。
因此,采用國產(chǎn)軟硬件構(gòu)建的可信計(jì)算平臺,其可信邊界不僅包括TPCM硬件模塊,還應(yīng)該包括處理器和操作系統(tǒng)的核心部分。不可信的部分是非自主可控的外設(shè)、主板上容易被篡改的部件、操作系統(tǒng)中第三方開發(fā)的驅(qū)動程序和軟件等。例如:用戶在可信計(jì)算平臺上安裝的國外或互聯(lián)網(wǎng)下載的軟件。這些軟件可能惡意的提升權(quán)限,竊取用戶信息,或者非惡意地破壞可信計(jì)算平臺的完整性,影響其它軟件的執(zhí)行。另外,黑客也可能通過物理攻擊方式篡改可信計(jì)算平臺關(guān)鍵核心硬件、外設(shè)和基礎(chǔ)軟件。
以國產(chǎn)處理器和國產(chǎn)操作系統(tǒng)非惡意本質(zhì)為前提,我們可以設(shè)計(jì)出一種新的,運(yùn)算和防護(hù)并存的,簡潔、高效,不增加額外硬件成本的可信計(jì)算平臺。
基于國產(chǎn)處理器的可信計(jì)算平臺設(shè)計(jì)思路一是利用國產(chǎn)處理器內(nèi)嵌的安全功能實(shí)現(xiàn)一個較小的、具備物理安全屬性并可驗(yàn)證的邏輯單元作為可信根,利用信任鏈的傳遞機(jī)制保證整個計(jì)算平臺啟動時(shí)的可信。二是利用國產(chǎn)處理器和基礎(chǔ)軟件提供的隔離機(jī)制確保計(jì)算平臺上各應(yīng)用軟件間以及應(yīng)用軟件和計(jì)算平臺系統(tǒng)軟件之間的互不干擾。
按照我國自主創(chuàng)新的可信雙體系結(jié)構(gòu)[8]要求,提出一種基于國產(chǎn)處理器的可信計(jì)算平臺體系結(jié)構(gòu)如圖1所示。
該計(jì)算平臺體系結(jié)構(gòu)最顯著的特點(diǎn)是利用國產(chǎn)處理器內(nèi)嵌的安全部件實(shí)現(xiàn)TCM功能,與內(nèi)存管理單元、系統(tǒng)總線安全擴(kuò)展等部件一起形成完整的TPCM功能。不再需要在主板上額外貼一個TPCM硬件模塊,從而消除定制,降低成本,提升效率。
雖然不再有獨(dú)立的硬件形態(tài),但TPCM作為可信計(jì)算體系中的可信根,其邏輯上還是完全獨(dú)立的。即安全防護(hù)域和通用計(jì)算域是各自獨(dú)立運(yùn)行的。運(yùn)行于通用計(jì)算域中的軟件是無法訪問安全防護(hù)域的內(nèi)存、安全外設(shè),竊取敏感數(shù)據(jù)的。確保通用計(jì)算域和安全防護(hù)域間的隔離是本體系結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)的關(guān)鍵。
圖1 基于國產(chǎn)處理器的可信計(jì)算平臺體系結(jié)構(gòu)
不同國產(chǎn)處理器內(nèi)嵌的安全功能實(shí)現(xiàn)略有不同。最新的龍芯3A4000SE處理器采用的是集成TPCM硬核的方式。它不僅集成了32位TPCM處理器內(nèi)核、算法引擎、ROM、專用SRAM,甚至連主動度量所需的處理器控制接口和專用IO接口都一應(yīng)俱全。因此它等價(jià)于將原來貼在主板上的TPCM硬件模塊全部封裝進(jìn)了CPU內(nèi)部。其硬件參考設(shè)計(jì)如圖2所示。
圖2 龍芯平臺硬件參考設(shè)計(jì)框圖
由于TPCM硬核具有完全獨(dú)立的ROM和SRAM,獨(dú)立的IO,不需要主板額外處理它與通用計(jì)算域的隔離關(guān)系,因此該硬件設(shè)計(jì)與傳統(tǒng)采用獨(dú)立式TPCM硬件模塊的可信計(jì)算平臺設(shè)計(jì)幾乎一樣。對固件、外設(shè)的度量和控制也由TPCM的專用IO接口直接連接。
飛騰2000/4處理器采用的是TrustZone技術(shù)路線。其硬件參考設(shè)計(jì)如圖3所示。
圖3 飛騰平臺硬件參考設(shè)計(jì)框圖
在TrustZone架構(gòu)下,通用計(jì)算域和安全防護(hù)域是分時(shí)共享CPU的,通過虛擬化CPU核、擴(kuò)展系統(tǒng)總線安全機(jī)制、增加相應(yīng)功能部件實(shí)現(xiàn)了通用計(jì)算域和安全防護(hù)域的隔離。這是與龍芯處理器最大的區(qū)別。
每個飛騰的物理處理器核被虛擬為一個安全核和一個非安全核,安全核運(yùn)行安全防護(hù)域的代碼,非安全核運(yùn)行其它代碼。
帶NS控制位的系統(tǒng)總線是最重要的安全機(jī)制擴(kuò)展之一。通過為系統(tǒng)總線中的每一個讀寫通道添加額外的控制信號位,來判斷當(dāng)前傳輸?shù)臄?shù)據(jù)屬于何種環(huán)境中。如果該位為低,表示數(shù)據(jù)屬于安全環(huán)境,否則就屬于普通環(huán)境。運(yùn)行在非安全核中的軟件是無法拉低NS控制位,非法訪問安全內(nèi)存和安全設(shè)備數(shù)據(jù)的。
可信域地址空間控制器(TrustZone Address Space Controller,TZASC)用于把外部DDR4內(nèi)存分成多個區(qū)域,每個區(qū)域可以單獨(dú)配置為安全或非安全區(qū)域,通用計(jì)算域的代碼只能訪問非安全區(qū)域的內(nèi)存。
可信域保護(hù)控制器(TrustZone Protection Controller,TZPC)用于配置外設(shè)的安全屬性,實(shí)現(xiàn)IO設(shè)備層面的數(shù)據(jù)保護(hù)。它可以在運(yùn)行時(shí)動態(tài)設(shè)置,例如鍵盤平時(shí)作為非安全的輸入設(shè)備,在輸入密碼時(shí)可以配置為安全設(shè)備,只允許安全防護(hù)域軟件訪問。
可信域內(nèi)存適配(Trust Zone Memory Adapter,TZMA)用于把片內(nèi)ROM和RAM隔離出安全和非安全區(qū)域。TZMA最大可以將片內(nèi)存儲的低2MB配置為安全區(qū)域,其余部分配置為非安全區(qū)域。
因此,采用飛騰處理器的可信計(jì)算平臺中,可信根是由虛擬安全核、系統(tǒng)總線安全擴(kuò)展、TZASC、TZPC和TZMA共同組成的。
自主可信固件的基本功能包括:硬件平臺上電后,獲得系統(tǒng)控制權(quán),初始化處理器、內(nèi)存、芯片組等關(guān)鍵部件,枚舉外設(shè)并為其分配資源,初始化顯卡、硬盤、網(wǎng)卡等必要的外設(shè),度量操作系統(tǒng)或可信虛擬機(jī)監(jiān)視器核心代碼,如果通過防篡改驗(yàn)證,則為其建立運(yùn)行環(huán)境,然后移交控制權(quán),如果沒有通過驗(yàn)證,則執(zhí)行可信恢復(fù),重新啟動。其框圖如圖4所示。
圖4 自主可信固件框圖
(1)硬件抽象層,將處理器、芯片組、TPCM等硬件進(jìn)行包裝和抽象,初始化處理器和硬件,為上層模塊提供訪問處理器、硬件設(shè)備的標(biāo)準(zhǔn)接口。
(2)固件核心層,建立統(tǒng)一可擴(kuò)展固件接口(Unified Extensible Firmware Interface,UEFI)的系統(tǒng)服務(wù)表,包括啟動服務(wù)和運(yùn)行時(shí)服務(wù),進(jìn)行固件中所有模塊的統(tǒng)一管理。
(3)固件應(yīng)用層,實(shí)現(xiàn)固件的各項(xiàng)具體功能,如可信度量、配置管理、內(nèi)核加載、可信恢復(fù)等。
當(dāng)可信計(jì)算平臺應(yīng)用在云計(jì)算環(huán)境時(shí),在可信固件和可信操作系統(tǒng)之間有個虛擬化層,運(yùn)行可信虛擬機(jī)監(jiān)視器。
可信虛擬機(jī)監(jiān)視器除具備普通虛擬機(jī)監(jiān)視器的虛擬化資源調(diào)度、管理等功能外,與可信相關(guān)的安全功能主要是虛擬TPCM功能和安全監(jiān)控與恢復(fù)功能。
虛擬TPCM功能主要是將TPCM硬件按需虛擬成多個TPCM供多個虛擬機(jī)客戶操作系統(tǒng)同時(shí)使用。其主要功能包括:數(shù)字簽名與驗(yàn)證、數(shù)據(jù)加解密、真隨機(jī)數(shù)生成、數(shù)字證書管理等。
安全監(jiān)控與恢復(fù)功能主要是安全隔離各虛擬機(jī),監(jiān)控其資源訪問,發(fā)現(xiàn)惡意攻擊行為,執(zhí)行可信恢復(fù)等操作。
鑒于當(dāng)前國產(chǎn)操作系統(tǒng)大多是基于Linux內(nèi)核開發(fā)的,因此可信操作系統(tǒng)基于Linux安全模塊(Linux Security Module,LSM)框架實(shí)現(xiàn)可信軟件基功能,以便可信功能更好地融入操作系統(tǒng)之中。
可信操作系統(tǒng)的運(yùn)行控制原理如圖5所示。其中,可信運(yùn)行控制的主體是進(jìn)程,客體可以是文件、目錄、設(shè)備、IPC 和Socket等對象。通過操作系統(tǒng)的可信運(yùn)行控制機(jī)制,結(jié)合強(qiáng)制訪問控制策略,對通用計(jì)算域中的進(jìn)程實(shí)施細(xì)粒度的運(yùn)行控制和訪問控制,阻止非法程序的運(yùn)行,防止非授權(quán)用戶和進(jìn)程對資源的訪問,保證計(jì)算平臺運(yùn)行環(huán)境的安全可信。
圖5 可信運(yùn)行控制原理框圖
其訪問控制流程如下:
(1)主體通過系統(tǒng)調(diào)用發(fā)起對客體的訪問請求;
(2)策略實(shí)施部件通過嵌入到系統(tǒng)調(diào)用的鉤子收到訪問請求后,向策略判定部件獲取訪問策略;
(3)策略判斷部件收到請求后,從策略庫中查詢安全策略,并向TPCM獲取策略的完整性報(bào)告;
(4)TPCM對策略及權(quán)限進(jìn)行完整性驗(yàn)證后,將完整性狀態(tài)報(bào)告及安全策略返回給策略判斷部件,策略判斷部件再返回給策略實(shí)施部件;
(5)策略實(shí)施部件收到安全策略后,調(diào)用可信服務(wù)接口請求TPCM驗(yàn)證被訪問客體的可信狀態(tài);
(6)TPCM收到驗(yàn)證請求后,首先對主體的身份進(jìn)行認(rèn)證,并對被訪問的客體進(jìn)行完整性度量,將認(rèn)證結(jié)果和度量結(jié)果報(bào)告給策略實(shí)施部件;
(7)策略實(shí)施部件根據(jù)驗(yàn)證結(jié)果決定是否允許主體訪問客體;
(8)策略實(shí)施部件記錄訪問操作審計(jì)日志;(9)策略實(shí)施部件向主體返回訪問結(jié)果。
現(xiàn)代處理器都支持多個特權(quán)運(yùn)行級別,不同處理器有不同的命名方法,支持的數(shù)量也有差異。為表述方便,本文用“EL+數(shù)字”方式表示處理器的特權(quán)級別,數(shù)字越大代表權(quán)限越大。
對支持四個及以上特權(quán)級別(EL0~EL3)的處理器,應(yīng)將最高特權(quán)級別EL3分配給安全防護(hù)域的安全功能實(shí)現(xiàn),例如TPCM功能,安全監(jiān)視與恢復(fù)功能等。將次高特權(quán)級別EL2分配給虛擬機(jī)監(jiān)視器功能,將EL1分配給虛擬機(jī)客戶操作系統(tǒng),將最低權(quán)限級別EL0分配給用戶應(yīng)用軟件。
對只支持三個特權(quán)級別(EL0~EL2)的處理器,可將虛擬機(jī)監(jiān)視器和虛擬機(jī)客戶操作系統(tǒng)分配在同一特權(quán)級別EL1中,仍然將最高特權(quán)級別EL2分配給可信相關(guān)安全功能,確保整個計(jì)算平臺安全防護(hù)域的獨(dú)立和安全。
信任鏈?zhǔn)强尚庞?jì)算中的重要概念。利用它可以將信任域從信任根擴(kuò)展到整個計(jì)算平臺。
基于龍芯3A4000SE等集成TPCM硬核方式處理器構(gòu)建的可信計(jì)算平臺,由于其TPCM完全獨(dú)立,其信任鏈建立過程與傳統(tǒng)可信計(jì)算平臺沒有區(qū)別。都是系統(tǒng)上電后,TPCM作為可信根率先運(yùn)行,對Boot loader固件進(jìn)行可信度量,通過度量后,才控制通用計(jì)算域的處理器核加載固件代碼,執(zhí)行Boot loader引導(dǎo)過程,隨后是虛擬機(jī)監(jiān)視器、客戶操作系統(tǒng)、應(yīng)用程序。
基于飛騰2000/4等采用TrustZone技術(shù)路線處理器構(gòu)建的可信計(jì)算平臺的信任鏈建立過程稍有不同。系統(tǒng)上電后,處理器會首先進(jìn)入安全模式,虛擬安全核讀取片內(nèi)ROM核心代碼完成自檢和TPCM核心功能構(gòu)建,然后在TZASC、TZPC和TZMA的配合下,對存放在主板上的后續(xù)固件代碼進(jìn)行可信度量,通過驗(yàn)證后,引導(dǎo)安全防護(hù)域OS,等安全防護(hù)域構(gòu)建完成后,再對通用計(jì)算域的Boot loader進(jìn)行可信度量,然后切換CPU工作模式,執(zhí)行通用計(jì)算域引導(dǎo),隨后才是虛擬機(jī)監(jiān)視器、客戶操作系統(tǒng)和應(yīng)用程序。
為了支持虛擬化應(yīng)用,可信計(jì)算平臺的信任鏈需要從傳統(tǒng)的線性拓?fù)浣Y(jié)構(gòu)擴(kuò)展為菊花鏈拓?fù)浣Y(jié)構(gòu)。即信任鏈從可信根傳遞到虛擬機(jī)監(jiān)視器后開始分叉,每一個虛擬機(jī)客戶機(jī)都用一個獨(dú)占的虛擬TPCM作為自己的可信根,繼續(xù)在客戶操作系統(tǒng)中進(jìn)行信任鏈的傳遞。
在中美貿(mào)易摩擦愈演愈烈的大背景下,自主可控計(jì)算平臺的選用將會越來越多。本文介紹了一種利用最新的國產(chǎn)處理器構(gòu)建自主可信計(jì)算平臺的方法。相比于傳統(tǒng)方法,本方法可以降低整機(jī)硬件成本,提升運(yùn)行效率,達(dá)到安全防護(hù)與計(jì)算并存的自免疫效果。