RISC-V架構(gòu)芯片安全的簡單研究分析
本文僅供學(xué)習(xí)交流使用
部分圖源自網(wǎng)絡(luò),侵刪

中文摘要
隨著物聯(lián)網(wǎng)等技術(shù)的發(fā)展,硬件安全越來越得到重視。其中,由于相比起其他ISA的復(fù)雜且有昂貴的授權(quán)費(fèi),RISC-V的開源免費(fèi)受到了廣泛的關(guān)注。針對RISC-V架構(gòu)的安全機(jī)制研究是當(dāng)下芯片IP設(shè)計(jì)的研究熱點(diǎn)。本篇文章圍繞RISC-V自身的安全保障機(jī)制與可附加的安全解決方案展開簡單的介紹。
關(guān)鍵詞:RISC-V;硬件安全;物聯(lián)網(wǎng)
英文摘要
With the development of technologies such as the Internet of Things, hardware security is gaining more and more attention. Among them, the open source and free of charge of RISC-V has received a lot of attention due to its complexity and expensive license fees compared to other ISAs. The study of security mechanism for RISC-V architecture is a hot research topic in chip IP design nowadays. This article briefly introduces RISC-V's own security mechanisms and additional security solutions.
第1章 緒論
1.1 背景與研究意義
隨著互聯(lián)網(wǎng)技術(shù)的不斷迭代升級,物聯(lián)網(wǎng)目前正逐漸融入大多數(shù)工業(yè)和商業(yè)運(yùn)營體系中。通過無處不在的物聯(lián)網(wǎng)互聯(lián)智能設(shè)備,企業(yè)能夠創(chuàng)造出真正革命性的技術(shù),從而改善未來人類社會和經(jīng)濟(jì)生活的方方面面。然而,隨著物聯(lián)網(wǎng)等新興行業(yè)的發(fā)展,數(shù)字安全性的漏洞問題,尤其是硬件安全性的漏洞問題愈發(fā)得到關(guān)注。本文中的硬件安全主要討論芯片的安全。
長期以來,硬件一直被視為支持整個智能計(jì)算系統(tǒng)的可信方,通常被視為運(yùn)行從軟件層傳遞來的指令的抽象層。 因此,與硬件相關(guān)的安全性研究通常被稱為密碼算法的硬件實(shí)現(xiàn),其中硬件被用來提高密碼應(yīng)用的計(jì)算性能和效率。但是,這些硬件安全領(lǐng)域的研究人員卻很少關(guān)注硬件本身的保護(hù)。長期以來,網(wǎng)絡(luò)安全研究人員認(rèn)為,集成電路供應(yīng)鏈?zhǔn)艿搅己玫谋Wo(hù),并具有很高的壁壘,以使攻擊者無法輕易破壞已制造的芯片。但是,隨著目前的SoC設(shè)計(jì)越來越復(fù)雜,很多IP內(nèi)核由于能極大地減輕設(shè)計(jì)工作量,降低制造成本,同時還能保證高效和功能,被廣泛用于現(xiàn)代電路設(shè)計(jì)與制造中。[1]但是對這種第三方資源的嚴(yán)重依賴也會滋生安全隱患。第三方資源外包的模式難以確保所有步驟都是可信的,在整個供應(yīng)鏈中,每一步都有可能受到如硬件木馬的攻擊,對集成電路惡意修改。
除了硬件木馬攻擊外,硬件安全關(guān)注的問題還有以下幾種:RTL bugs、物理攻擊和軟件攻擊等。其中,RTL bugs是硬件本身出現(xiàn)漏洞,與其他外界攻擊相比還在可控范圍內(nèi)。物理攻擊則分為針對芯片外存儲的物理攻擊和針對芯片的物理攻擊。而在針對芯片的物理攻擊中,又可分為入侵式攻擊、半入侵式攻擊和非入侵式攻擊。[2]由于非入侵式攻擊具有不需要對被攻擊的設(shè)備進(jìn)行任何處理且其所需設(shè)備的價格低廉的優(yōu)勢,該技術(shù)在近些年得到快速發(fā)展,是目前的研究熱點(diǎn)。而軟件攻擊則包括Rowhammer(內(nèi)核訪問權(quán)限升級)、Meltdown(讀取未經(jīng)授權(quán)的內(nèi)存區(qū)域)以及Foreshadow(竊取私人認(rèn)證密鑰)等。[3]
對RISC-V架構(gòu)的芯片進(jìn)行安全機(jī)制的研究分析,能夠進(jìn)一步了解硬件安全,且由于RISC-V的開源社區(qū),能夠?qū)⒏靼踩鉀Q方案綜合處理,取其精華去其糟粕,得出適合目的場景的設(shè)計(jì)IP。
1.2 國內(nèi)外研究現(xiàn)狀
RISC-V架構(gòu)本身是一個開源的ISA,已經(jīng)包含了特權(quán)機(jī)制、安全中斷和物理內(nèi)存保護(hù)機(jī)制(PMP)。而ISA到商用的具體實(shí)現(xiàn)還需要進(jìn)一步的安全包裝設(shè)計(jì)。
2019年,RISC-V處理器的首個可信執(zhí)行環(huán)境(TEE)——MultiZone Security for RISC-V由HEX-Five Security發(fā)布。
此外,Andes晶心科技與RISC-V社區(qū)合作伙伴也正在一起構(gòu)建完善的生態(tài)體系,其中包括集成多家公司的安全方案。
法國的SECURE-IC發(fā)布了它們基于硬件的網(wǎng)絡(luò)保護(hù)解決方案Cyber Escort Unit(CEU),能夠很好適配Andes的RISC-V處理器。SECURE-IC還在CEU的基礎(chǔ)上推出了他們的旗艦產(chǎn)品:安全子系統(tǒng)Securyzr。
被SECURE-IC收購的Silex Insight則有者高級eSecure IP信任根模塊,對Andes RISC-V CPU內(nèi)核也有很好的支持。
此外,還有Andes增加的堆棧溢出保護(hù)機(jī)制、Tiempo Secure的Secure Element IP、Dover的CoreGuard等安全解決方案,以上的大部分商業(yè)公司都選擇了設(shè)計(jì)提供附加功能的IP。[4]
在設(shè)計(jì)完成后,對芯片的形式驗(yàn)證也是很重要的。在該領(lǐng)域,由Codasip攜手西門子,打造出了RISC-V領(lǐng)域最完整的形式驗(yàn)證。[5]
1.3 主要研究工作與章節(jié)安排
主要研究了RISC-V架構(gòu)的內(nèi)部安全機(jī)制和外部安全解決方案,第二章主要介紹RISC-V架構(gòu)的內(nèi)部安全機(jī)制,第三章則主要介紹外部的安全解決方案。
第2章 RISC-V 架構(gòu)的安全機(jī)制
2.1 RISC-V 架構(gòu)的特權(quán)介紹
RISC-V ISA標(biāo)準(zhǔn)分為兩部分,一個是非特權(quán)架構(gòu),另外一個是特權(quán)架構(gòu)。非特權(quán)部分架構(gòu)主要用于通用計(jì)算,是User(低權(quán)限模式)能夠運(yùn)行的指令。而特權(quán)架構(gòu),提供了硬件上額外的權(quán)限管理機(jī)制,從而能夠限制普通應(yīng)用代碼的行為,防止惡意代碼進(jìn)行的攻擊。
2.2 RISC-V 架構(gòu)的四層特權(quán)環(huán)
雖然說是四層特權(quán)環(huán),但目前的標(biāo)準(zhǔn)中還只用真正設(shè)計(jì)了三層,也就是Machine Mode、Supervisor Mode和User/Application Mode,剩下的一個編碼留給之后擴(kuò)展設(shè)計(jì)。
表1-1 RISC-V特權(quán)等級表
?特權(quán)等級 ? ?編碼 ? ?名稱 ? ?縮寫
? ?0 ? ?00 ? ?User/Application ? ?U
? ?1 ? ?01 ? ?Supervisor ? ?S
? ?2 ? ?10 ? ?Reserved ? ? ? ?
? ?3 ? ?11 ? ?Machine ? ?M ?
Machine Mode權(quán)級最高,也是RISC-V硬件平臺唯一必須有的權(quán)級。在Machine Mode(M-mode)下所運(yùn)行的代碼一般都是默認(rèn)被信任的,因?yàn)樗蓪C(jī)器進(jìn)行最低級的訪問。M-mode可用于管理RISC-V上的安全執(zhí)行環(huán)境(Secure Execution Environment)。User-mode(U-mode)和Supervisor-mode(S-mode)則分別用于傳統(tǒng)應(yīng)用程序以及操作系統(tǒng)。[6]
RISC-V ISA是可擴(kuò)展的。每個權(quán)級都各有一組特權(quán)ISA的核心擴(kuò)展,以及相關(guān)可選擴(kuò)展和變體。例如,由machine-mode支持的一個關(guān)于內(nèi)存保護(hù)的可選標(biāo)準(zhǔn)擴(kuò)展。[6]
如表1-2,在RISC-V ISA具體實(shí)現(xiàn)時,可以選擇提供1至3種特權(quán)模式,具體實(shí)現(xiàn)需要在控制實(shí)現(xiàn)成本和安全之間權(quán)衡,最終在隔離級別上做出取舍。[6]
表1-2 RISC-V ISA支持的特權(quán)模式組合表
?等級數(shù)量 ? ?支持模式 ? ?常用領(lǐng)域
? ?1 ? ?M ? ?Simple embedded systems
? ?2 ? ?M,U ? ?Secure embedded systems
? ?3 ? ?M,S,U ? ?Systems running Unix-like operating systems ?
2.2.1 Machine Mode
Machine Mode(縮寫為 M 模式,M-mode)是 RISC-V 中 hart(hardware thread,硬件線 程)可以執(zhí)行的最高權(quán)限模式。在M-mode下運(yùn)行的 hart 對內(nèi)存,I/O 和一些對于啟動和配置系統(tǒng)來說必要的底層功能有著完全的使用權(quán)。因此它是唯一所有標(biāo)準(zhǔn) RISC-V 處理器都 必須實(shí)現(xiàn)的權(quán)限模式。實(shí)際上簡單的 RISC-V 微控制器僅支持M-mode。
M-mode中,最重要的工作就是處理異常與中斷。關(guān)于處理異常與中斷的具體內(nèi)容詳見2.3。
2.2.2 Supervisor Mode
相比于M-mode的最高權(quán)限和強(qiáng)制手段,監(jiān)管者模式(S-mode)沒有這么高的權(quán)限。一般來說,監(jiān)管者模式就是為對標(biāo)現(xiàn)代操作系統(tǒng)而生的。監(jiān)管者模式通常存在于復(fù)雜的 RISC-V 系統(tǒng)上,其核心功能就是支持內(nèi)存分頁、內(nèi)存保護(hù)、中斷/異常處理等。當(dāng)然,監(jiān)管者模式還是有些地方與機(jī)器模式不同,接下來將會重點(diǎn)介紹。[6]
2.2.2.1 內(nèi)存分頁
在稍微復(fù)雜的 RISC-V 處理器中,僅僅依靠 PMP 模塊來提供內(nèi)存保護(hù)是不夠的。因此,設(shè)計(jì)人員在監(jiān)管者模式中又發(fā)明了基于頁面的虛擬內(nèi)存機(jī)制(分頁機(jī)制)。RISC-V 中監(jiān)管者模式提供了一種傳統(tǒng)的虛擬內(nèi)存系統(tǒng),它將內(nèi)存劃分為固定大小的頁,以此為基礎(chǔ)進(jìn)行地址轉(zhuǎn)換,并提供對內(nèi)存內(nèi)容的保護(hù)。啟用分頁的時候,監(jiān)管者模式和用戶模式下的地址(包括 load 和 store 的有效地址和 PC 中的地址)都是虛擬地址,要訪問物理內(nèi)存,它們必須被轉(zhuǎn)換為真正的物理地址。而實(shí)現(xiàn)這一轉(zhuǎn)換作用,就需要用到satp寄存器。


其中,ASID (Address Space Identifier,地址空間標(biāo)識符) 域是可選的,它用于幫助地址空間的轉(zhuǎn)換,降低上下文切換的開銷。PPN(Physical Page Number of the root page table)存儲了根頁表的物理頁號,以 4 KiB 頁面大小為單位,它在內(nèi)存分頁中起了十分重要的作用。MODE 位則用于選擇地址轉(zhuǎn)換的方式。MODE位的各功能見下圖所示:

我們以 Sv32 分頁模式為例,簡單介紹一下轉(zhuǎn)換過程。當(dāng) satp 啟動分頁時,在監(jiān)管者模式或用戶模式下,虛擬地址 (VA) 會將 satp 寄存器中根頁表地址作為基址 (base),以及自身的頁號作偏移 (VPN[1]),在頁表中通過計(jì)算偏移位置 (base + VPN[1] * 4) 找到頁表項(xiàng)(Page Table Entry,PTE)。如果該 PTE 不是葉 PTE,那么再將剛剛找到的 PTE 作為基址,用虛擬地址攜帶的第二個頁號作偏移,繼續(xù)算出第二個頁表項(xiàng),直到獲得物理地址 (PA) 。[6]
2.2.3 User/Application Mode
U-mode往往是普通用戶或應(yīng)用使用的模式,是在不可信任運(yùn)行環(huán)境下的特權(quán)模式。hart通常在U-mode下運(yùn)行應(yīng)用程序代碼,直到遇到某些trap(如supervisor call或者timer interrupt)而迫使其切換至trap handler,交給更高特權(quán)模式處理異常與安全中斷。
2.3 RISC-V 架構(gòu)的異常與中斷
RISC-V 將 異常分為兩類。一類是同步異常,這類異常在指令執(zhí)行期間產(chǎn)生,如訪問了無效的存儲器地址或執(zhí)行了具有無效操作碼的指令時。另一類是中斷,它是與指令流異步的外部事件有關(guān), 比如鼠標(biāo)的單擊。
在M-mode運(yùn)行期間可能發(fā)生的同步異常有以下五種:
訪問錯誤異常:當(dāng)物理內(nèi)存的地址不支持訪問類型時發(fā)生(例如嘗試寫入 ROM)。
斷點(diǎn)異常:在執(zhí)行 ebreak 指令,或者地址或數(shù)據(jù)與調(diào)試觸發(fā)器匹配時發(fā)生。
環(huán)境調(diào)用異常:在執(zhí)行 ecall 指令時發(fā)生。
非法指令異常:在譯碼階段發(fā)現(xiàn)無效操作碼時發(fā)生。
非對齊地址異常:在有效地址不能被訪問大小整除時發(fā)生,例如地址為 0x12 的 amoadd.w。
關(guān)于中斷,有三種標(biāo)準(zhǔn)的中斷源:軟件、時鐘和外部來源。。軟件中斷通過向內(nèi)存映射寄存器中存 數(shù)來觸發(fā),并通常用于由一個 hart 中斷另一個 hart(在其他架構(gòu)中稱為處理器間中斷機(jī)制)。當(dāng) hart 的時間比較器(一個名為 mtimecmp 的內(nèi)存映射寄存器)大于實(shí)時計(jì)數(shù)器 mtime 時,會觸發(fā)時鐘中斷。外部中斷由平臺級中斷控制器(大多數(shù)外部設(shè)備連接到這個中斷控制器)引發(fā)。[7]
2.3.1 控制狀態(tài)寄存器
八個控制狀態(tài)寄存器(CSR)是機(jī)器模式下異常處理的必要部分:
mtvec(Machine Trap Vector)它保存發(fā)生異常時處理器需要跳轉(zhuǎn)到的地址。
mepc(Machine Exception PC)它指向發(fā)生異常的指令。
mcause(Machine Exception Cause)它指示發(fā)生異常的種類。
mie(Machine Interrupt Enable)它指出處理器目前能處理和必須忽略的中斷。
mip(Machine Interrupt Pending)它列出目前正準(zhǔn)備處理的中斷。
mtval(Machine Trap Value)它保存了陷入(trap)的附加信息:地址例外中出錯 的地址、發(fā)生非法指令例外的指令本身,對于其他異常,它的值為 0。
mscratch(Machine Scratch)它暫時存放一個字大小的數(shù)據(jù)。
mstatus(Machine Status)它保存全局中斷使能,以及許多其他的狀態(tài)。
2.3.1.1 mstatus 寄存器
mstatus 寄存器在處理中斷時會經(jīng)常用到,且較為復(fù)雜,位域包含的信息較多,其結(jié)構(gòu)如下圖所示:


在中斷使能方面,MIE 、SIE 、UIE 分別提供了 machine mode 、supervisor mode 、user mode 的全局中斷使能位,若一個 hart 運(yùn)行在特權(quán)級別 x 下,當(dāng) xIE = 1 (Interrupt Enable in x mode,中斷使能)時中斷全局打開,反之則關(guān)閉。在 hart 于 x 運(yùn)行時,無論 wIE 為何值,低權(quán)限中斷 w < x 總是無效的,而無論 yIE 為何值,高權(quán)限中斷 y > x 總是有效。MPIE 和 MPP 分別存儲了中斷發(fā)生前的中斷使能位和特權(quán)級別位。類比于 mstatus 寄存器,較低權(quán)限的 sstatus 和 ustatus 寄存器也幾乎同理,只不過少了一些東西而已。
2.3.2 處理過程
處理器在M-mode下運(yùn)行時,只有在全局中斷使能位 mstatus.MIE 置 1 時才會產(chǎn)生中斷。此外,每個中斷在控制狀態(tài)寄存器 mie 中都有自己的使能位。例如,mie[7]對應(yīng)于 M 模式中的時鐘中斷??刂茽顟B(tài)寄存器有相同的布局,并且它指示當(dāng)前待處理的中斷。將所有三個控制狀態(tài)寄存器合在一起考慮,如果 mstatus.MIE = 1,mie[7] = 1,且 mip[7] = 1,則可以處理機(jī)器的時鐘中斷。 當(dāng)一個 hart 發(fā)生異常時,硬件自動經(jīng)歷如下的狀態(tài)轉(zhuǎn)換:
異常指令的 PC 被保存在 mepc 中,PC 被設(shè)置為 mtvec。(對于同步異常,mepc 指向?qū)е庐惓5闹噶睿粚τ谥袛?,它指向中斷處理后?yīng)該恢復(fù)執(zhí)行的位置。)
根據(jù)異常來源設(shè)置 mcause(如圖 10.3 所示),并將 mtval 設(shè)置為出錯的地址或 者其它適用于特定異常的信息字。
把控制狀態(tài)寄存器 mstatus 中的 MIE 位置零以禁用中斷,并把先前的 MIE 值保 留到 MPIE 中。
發(fā)生異常之前的權(quán)限模式保留在 mstatus 的 MPP 域中,再把權(quán)限模式更改為 M。圖 10.5 顯示了 MPP 域的編碼(如果處理器僅實(shí)現(xiàn) M 模式,則有效地跳過這 個步驟)。
為避免覆蓋整數(shù)寄存器中的內(nèi)容,中斷處理程序先在最開始用 mscratch 和整數(shù)寄存器(例如 a0)中的值交換。通常,軟件會讓 mscratch 包含指向附加臨時內(nèi)存空間的指針,處理程序用該指針來保存其主體中將會用到的整數(shù)寄存器。在主體執(zhí)行之后,中斷程序會恢復(fù)它保存到內(nèi)存中的寄存器,然后再次使用 mscratch 和 a0 交換, 將兩個寄存器恢復(fù)到它們在發(fā)生異常之前的值。最后,處理程序用 mret 指令(M 模 式特有的指令)返回。mret 將 PC 設(shè)置為 mepc,通過將 mstatus 的 MPIE 域復(fù)制到 MIE 來恢復(fù)之前的中斷使能設(shè)置,并將權(quán)限模式設(shè)置為 mstatus 的 MPP 域中的值。這基本是前一段中描述的逆操作。[7]
2.4 RISC-V 架構(gòu)的PMP機(jī)制
在機(jī)器模式下,我們可以自由地訪問各種硬件平臺。然而,一旦我們將這些艱巨的任務(wù)轉(zhuǎn)給用戶,他們可能會毀了一切。我們需要一種可靠的機(jī)制,保護(hù)系統(tǒng)免受不可信代碼的危害,為不受信任的進(jìn)程提供隔離保護(hù)。這就是RISC-V架構(gòu)的PMP(Phsical Memory Protection,物理內(nèi)存保護(hù)機(jī)制)。
PMP 檢查一般用于 hart 在監(jiān)管者模式或用戶模式下的所有訪問;或者在 mstatus.MPRV = 1 時的 load 和 store 等情況。一旦觸發(fā) PMP 保護(hù),RISC-V 要求產(chǎn)生精確中斷并處理。
PMP 允許機(jī)器模式指定用戶模式下可以訪問的內(nèi)存地址。PMP entry 由一個 8-bit 的 PMP 配置寄存器和一個 32/64 位長的 PMP 地址寄存器組成。整個 PMP 包括若干個(通常為 8 到 16 組)PMP entry 。配置寄存器可以配置讀、寫和執(zhí)行權(quán)限,地址寄存器用來劃定界限。
當(dāng)處于用戶模式的處理器嘗試 load 或 store 操作時,將地址和所有的 PMP 地址寄存器比較。如果地址大于等于 PMP 地址 i,但小于 PMP 地址 i+1,則 PMP i+1 的配置寄存器決定該訪問是否可以繼續(xù),如果不能將會引發(fā)訪問異常。[6] [7]
第3章 基于RISC-V架構(gòu)的安全解決方案
芯片的安全解決方案通常是使用一些獨(dú)立的安全芯片模塊構(gòu)成數(shù)據(jù)安全保護(hù),如一些HSM(Hardware Security Module,硬件安全模塊)、TPM(Trusted Platform Module,可信平臺模塊)等。不過也有使用軟硬件結(jié)合的方式實(shí)現(xiàn)安全解決方案的,一般是專用軟件通過Machine Mode控制硬件實(shí)現(xiàn),下面要介紹的MultiZone Security for RISC-V就是這么一個例子。
3.1 TEE
3.1.1 TEE 簡介
TEE(Trusted Execution Experiment,可信執(zhí)行環(huán)境)。通過軟硬件方法在中央處理器中構(gòu)建一個安全區(qū)域,保證其內(nèi)部加載的程序和數(shù)據(jù)在機(jī)密性和完整性上得到保護(hù)。通常包含TEE的安全解決方案中,將系統(tǒng)的硬件和軟件資源劃分為兩個執(zhí)行環(huán)境——可信執(zhí)行環(huán)境和普通執(zhí)行環(huán)境。兩個環(huán)境是安全隔離的,有獨(dú)立的內(nèi)部數(shù)據(jù)通路和計(jì)算所需存儲空間。普通執(zhí)行環(huán)境的應(yīng)用程序無法訪問TEE,即使在TEE內(nèi)部,多個應(yīng)用的運(yùn)行也是相互獨(dú)立的,不能無授權(quán)而互訪。這樣一來,便將數(shù)據(jù)、特定功能、應(yīng)用程序,同操作系統(tǒng)、系統(tǒng)管理程序或虛擬機(jī)管理器以及其他特定進(jìn)程隔離開來,讓數(shù)據(jù)存儲在受信任的執(zhí)行環(huán)境(TEE)中,即使是使用調(diào)試器,也無法從外部查看數(shù)據(jù)或者執(zhí)行操作。TEE確保只有經(jīng)過授權(quán)的代碼才能訪問數(shù)據(jù),如果代碼被篡改,TEE將阻止其繼續(xù)進(jìn)行操作。
目前最有代表性的基于硬件TEE技術(shù)包括:Arm TrustZone、AMD SEV (Secure Encrypted Virtualization)、Intel SGX (Software Guard eXtensions)、Apple SEP(Secure Enclave Processor)。
而目前傳統(tǒng)的 RISC-V 處理器并沒有提供類似 ARM TrustZone 的隔離技術(shù)。RISC-V 處理器整體運(yùn)行在 REE(Rich Execution Environment)環(huán)境。為此,以HEX-FIVE為首的公司開始了對TEE for RISC-V的研究。
3.1.2 MultiZone Security for RISC-V
Hex Five創(chuàng)建的MultiZone Security,被稱為RISC-V的第一個可信執(zhí)行環(huán)境,是一個針對設(shè)備安全性的解決方案。與傳統(tǒng)的安全解決方案不同,MultiZone是獨(dú)立運(yùn)行的,具有非常小的攻擊面,并且是策略驅(qū)動的,這意味著使用MultiZone不需要重新設(shè)計(jì)軟硬件,也不需要額外的硬件,專用內(nèi)核或編程模型,并允許對無限數(shù)量的安全域進(jìn)行基于策略的硬件強(qiáng)制分離,并完全控制數(shù)據(jù),代碼,中斷和外設(shè)。由于它是開源的,如RISC-V,工程師也可以在MultiZone中實(shí)現(xiàn)開放式課程庫,第三方二進(jìn)制文件,甚至舊的遺留代碼。Hex Five還在GitHub上為MultiZone維護(hù)一個開源存儲庫,為多應(yīng)用領(lǐng)域提供了硬件強(qiáng)制執(zhí)行、軟件定義分隔以及完全可控的數(shù)據(jù),程序和I/O口。[8]
3.1.3 VirtualZone
雖然 RISC-V 架構(gòu)的處理器具備物理內(nèi)存保護(hù)、多層權(quán)限模型、內(nèi)存管理單元等技術(shù)來支持可信執(zhí)行環(huán)境功能的實(shí)現(xiàn),但處理器仍然需要支持其他安全規(guī)范才能創(chuàng)建完全可用的安全執(zhí)行環(huán)境。為了滿足 TEE的隔離要求,阿里平頭哥的玄鐵 C 系列處理器在 RISC-V 架構(gòu)基礎(chǔ)上進(jìn)行了安全擴(kuò)展。

該系列處理器在軟件的協(xié)調(diào)下可以虛擬出多個執(zhí)行域(Zone),每個 Zone 增加了域標(biāo)識,也就是 Zone ID,整體架構(gòu)如 Figure 2 所示。每個 Zone 可以獨(dú)立地運(yùn)行各自的操作系統(tǒng)以及基于該操作系統(tǒng)的應(yīng)用程序。操作系統(tǒng)運(yùn)行在超級用戶特權(quán)模式,應(yīng)用程序運(yùn)行在普通用戶特權(quán)模式。處理器根據(jù)需要在不同的 Zone 里切換運(yùn)行。當(dāng)處理器切換到某一 Zone 運(yùn)行時,他將實(shí)時占用整個物理核,并且處理器的域標(biāo)識也將同時被更新成相應(yīng)執(zhí)行域的標(biāo)識。Zone 的切換由運(yùn)行在最高模式(機(jī)器模式)下的可信固件(TF)來完成。
對部分安全特性進(jìn)行了擴(kuò)展,實(shí)現(xiàn)了基于 Zone 管理的可信執(zhí)行環(huán)境。該技術(shù)方案不需要虛擬化的支持,只需要在支持 U、S 和 M 三種特權(quán)模式的情況下,并在可信固件的管理下,實(shí)現(xiàn)了具備多個可信執(zhí)行環(huán)境的能力。
當(dāng)不同 Zone 之間需要切換時,運(yùn)行在機(jī)器模式的可信固件需要對 Zone 的上下文進(jìn)行保存和切換。雖然看起來這會帶來開銷,但像 ARM TrustZone 的虛擬化技術(shù)同樣需要對世界進(jìn)行切換,這部分切換的工作同樣被隱藏在 Monitor 的可信固件中。不同的是,ARM TrustZone 只虛擬出了 2 個世界,而玄鐵 RISC-V 處理器在安全擴(kuò)展之后,最多允許同時支持 16 個 Zone,這為以后的軟件安全方案提供了更多的可能。
3.2 RoT
信任根 (RoT) 是在加密系統(tǒng)中始終可以信任的來源。由于密碼安全依賴于密鑰來加密和解密數(shù)據(jù)并執(zhí)行生成數(shù)字簽名和驗(yàn)證簽名等功能,因此 RoT 方案通常包括加固的硬件模塊。一個主要的例子是硬件安全模塊 (HSM),它在其安全環(huán)境中生成和保護(hù)密鑰并執(zhí)行加密功能。由于該模塊的所有意圖和目的都無法在計(jì)算機(jī)生態(tài)系統(tǒng)之外訪問,因此該生態(tài)系統(tǒng)可以信任它從信任根模塊接收到的密鑰和其他加密信息是真實(shí)的和經(jīng)過授權(quán)的。隨著物聯(lián)網(wǎng) (IoT) 的激增,這一點(diǎn)尤為重要,因?yàn)闉榱吮苊獗缓诳腿肭?,?jì)算生態(tài)系統(tǒng)的組件需要一種方法來確定它們接收到的信息是真實(shí)的。RoT 保護(hù)數(shù)據(jù)和應(yīng)用程序的安全,并有助于在整個生態(tài)系統(tǒng)中建立信任。
RoT 是公鑰基礎(chǔ)設(shè)施 (PKI) 的關(guān)鍵組件,用于生成和保護(hù)根和證書頒發(fā)機(jī)構(gòu)密鑰;代碼簽名以確保軟件保持安全、不變和真實(shí);并創(chuàng)建數(shù)字證書,用于對物聯(lián)網(wǎng)應(yīng)用程序和其他網(wǎng)絡(luò)部署的專有電子設(shè)備進(jìn)行憑證和身份驗(yàn)證。
3.2.1 eSecure IP
信任根已經(jīng)成為許多設(shè)備和連網(wǎng)服務(wù)的必要特性,Silex Insight的高級eSecure IP模塊可以為安全應(yīng)用提供完整的信任根解決方案,能防止機(jī)密信息外泄,并提供安全啟動、密鑰認(rèn)證與應(yīng)用程序的保護(hù)。AndesCore高效能、低功耗的二級流水線RISC-V CPU內(nèi)核N22與eSecure模塊緊密整合,能完整可靠地控制與執(zhí)行安全保護(hù)功能。eSecure模塊可配置性高,在安全功能、性能、面積和功耗方面提供了多樣的選擇,適合很多應(yīng)用,例如物聯(lián)網(wǎng),儲存設(shè)備與通訊等。
eSecure是最全面的解決方案之一。一個真正的安全保管庫和信任根核心,可以作為保護(hù)幾乎所有應(yīng)用程序(包括IoT、邊緣傳感器、存儲設(shè)備或通信)的基礎(chǔ)。
eSecure可設(shè)置單獨(dú)的RISC-V安全CPU,它為主機(jī)安全存儲、外圍設(shè)備、RAM等提供了安全API,可以調(diào)用身份驗(yàn)證和加密服務(wù),而無需訪問系統(tǒng)機(jī)密。
這里的每一個特性都可以在其他專用解決方案中找到,在這里對它們進(jìn)行整合,來提供全面的安全解決方案:
設(shè)備唯一標(biāo)識
對于每個設(shè)備,可以根據(jù)底層硬件的唯一屬性生成密鑰,這些物理上不可復(fù)制的功能(PUFs)是設(shè)備獨(dú)有的、不可偽造的指紋。
安全啟動
安全的啟動過程可以確保僅運(yùn)行正確且未更改的軟件。
安全儲存
密鑰可以安全地存儲在硬件模塊中。
側(cè)信道攻擊保護(hù)
有針對側(cè)信道攻擊的保護(hù)措施,即攻擊者會嘗試?yán)孟到y(tǒng)的物理屬性(例如能源消耗)來推斷系統(tǒng)的機(jī)密并獲得訪問權(quán)限。
防篡改
檢測并記錄嘗試篡改設(shè)備的行為。
多種密碼功能
一種可以安全地卸載身份驗(yàn)證和加密功能的機(jī)制,基于一個全面的信息庫,該信息庫支持最新的標(biāo)準(zhǔn)和算法,例如,中國市場所需的標(biāo)準(zhǔn)和國密算法。
安全調(diào)試和OTA更新
eSecure提供安全調(diào)試和更新機(jī)制(OTA,無線)。
3.2.2 CEU
Cyber Escort Unit IP是一種針對網(wǎng)絡(luò)攻擊和硬件攻擊的綜合保護(hù)措施。借助Cyber Escort Unit,對代碼或控制流的惡意攻擊可以在執(zhí)行之前被阻止,而且以指令粒度實(shí)現(xiàn)。Cyber Escort Unit能夠及時檢測(實(shí)時檢測)已執(zhí)行代碼損壞和控制流圖(CFG)偏差,并提供強(qiáng)大的保護(hù),防止緩沖區(qū)溢出攻擊和控制流完整性損壞。
Secure-IC的旗艦產(chǎn)品Securyzr是一種集成了CEU的信任根解決方案,可確保設(shè)備安全并提供相應(yīng)的安全服務(wù)(如身份驗(yàn)證、生命周期管理、遠(yuǎn)程配置、云端計(jì)算)。該安全子系統(tǒng)可以嵌入基于標(biāo)準(zhǔn)或強(qiáng)化網(wǎng)絡(luò)安全的AndesCore V5處理器專用處理單元,加強(qiáng)AndesCore高彈性的安全性能 ,有效抵御各種黑客攻擊,包括旁路攻擊、錯誤注入攻擊、網(wǎng)絡(luò)攻擊等。
3.2.3 PUFiot
PUFiot完整的防護(hù)設(shè)計(jì)來自于多層次的設(shè)計(jì)架構(gòu),有別于純軟件安全設(shè)計(jì)的弱點(diǎn),PUFiot是基于硬件的物理隔離所設(shè)計(jì),提供了可靠的安全邊界,為系統(tǒng)創(chuàng)造了完整的可信任執(zhí)行環(huán)境 (TEE)。

上圖是PUFiot的設(shè)計(jì)架構(gòu), 它的最底層是以模擬電路設(shè)計(jì)的硬件安全信任根(藍(lán)色區(qū)域)。在此硬件安全信任根設(shè)計(jì)中應(yīng)用了力旺電子專利技術(shù)的NeoPUF,提供每顆芯片獨(dú)一無二的芯片指紋(UID),并由經(jīng)過Riscure認(rèn)證的抗攻擊安全存儲OTP來存放密鑰,保護(hù)重要數(shù)據(jù)免受物理篡改。
經(jīng)過實(shí)際設(shè)計(jì)驗(yàn)證,PUFiot藉由提供芯片指紋抗攻擊保護(hù)設(shè)計(jì)來強(qiáng)化芯片硬件信任根與密鑰儲存。完整保護(hù)系統(tǒng)運(yùn)作的安全邊界,提供可信任安全環(huán)境、安全啟動以及數(shù)據(jù)儲存安全等功能,同時支持各種硬件加解密算法,且又能提供不同內(nèi)存區(qū)域不同密鑰的PMP保護(hù)與管理機(jī)制,實(shí)現(xiàn)IoT連網(wǎng)裝置應(yīng)用不可或缺的信息傳輸安全與在線安全更新。采用PUFiot的RISC-V系統(tǒng)芯片設(shè)計(jì)架構(gòu)如下圖所示。

參考文獻(xiàn)
[1] JIN, YIER. Introduction to Hardware Security[J]. Electronics,2015,4(4):763. DOI:10.3390/electronics4040763.
[2] Mangard S , Oswald E , Popp T . 能量分析攻擊[M]. 馮登國,周永彬,劉繼業(yè),等譯.北京:科學(xué)出版社,2010:3-24,97-100.
[3] KUMAR VINAY B. Y., DEB SUMAN, GUPTA NAINA, et al. Towards Designing a Secure RISC-V System-on-Chip: ITUS[J]. Journal of Hardware and Systems Security,2020,4(4):329-342. DOI:10.1007/s41635-020-00108-8.
[4] Marco Ciaffi , John Min. Building security into an AI SoC using CPU features with extensions[EB/OL]. https://www.embedded.com/building-security-into-an-ai-soc-using-cpu-features-with-extensions/, 2021-4-12.
[5] 電子工程專輯. Codasip攜手西門子打造RISC-V領(lǐng)域最完整形式驗(yàn)證[EB/OL]. https://www.eet-china.com/info/65807.html, 2022-05-09.
[6] the RISC-V International Technical Working Groups. RISC-V Instruction Set Manual Volume 2, Privileged Spec v. 20211203[EB/OL]. https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf, 2021-12-03.
[7] David Patterson, Andrew Waterman. The RISC-V Reader: An Open Architecture Atlas[M]. the State of California. Strawberry Canyon LLC. 2017.
[8] HEX-FIVE Security. MultiZone Security TEE for RISC-V – Hex Five Security[EB/OL]. https://hex-five.com/multizone-security-tee-riscv/
以及一系列的電子文獻(xiàn)