演講嘉賓 | 杜 東
回顧整理 | 廖 濤
排版校對 | 李萍萍
嘉賓簡介
杜東,上海交通大學(xué)助理研究員。中國計算機學(xué)會CCF會員,ACM會員。研究興趣為操作系統(tǒng)與體系結(jié)構(gòu)、服務(wù)器無感知(Serverless)計算、系統(tǒng)安全。在包括ASPLOS、ISCA、OSDI、SOSP、ACM SoCC、TOCS等國際著名會議和期刊發(fā)表/錄用多篇學(xué)術(shù)論文。
內(nèi)容來源
第一屆開放原子開源基金會OpenHarmony技術(shù)峰會——安全及機密計算分論壇
正 文 內(nèi) 容
OpenHarmony賦能萬物互聯(lián),存在覆蓋從端到云的安全能力需求。蓬萊-OpenHarmony是一個開源機密計算平臺,提供了面向OpenHarmony的可信執(zhí)行環(huán)境,賦能OpenHarmony安全能力。那么,蓬萊-OpenHarmony主要做了哪些安全增強方面的工作,有哪些關(guān)鍵技術(shù)呢?上海交通大學(xué)助理研究員、中國計算機學(xué)會CCF會員、ACM會員杜東在第一屆OpenHarmony技術(shù)峰會上給大家?guī)砹藥c分享。
01?
萬物互聯(lián)計算的安全挑戰(zhàn)
當進入到萬物互聯(lián)的新場景后,存在哪些安全風(fēng)險和挑戰(zhàn),又有哪些解決方案呢?
依靠軟件本身提供系統(tǒng)安全能力是一種方案。但是,依賴形式化驗證、類型安全語言等技術(shù)目前來加強系統(tǒng)安全,目前看來是較為困難的。在萬物互聯(lián)的場景中,開發(fā)者的背景和能力多樣性倍增,各自所依靠開發(fā)軟件本身處理安全風(fēng)險的能力不盡相同。就算能夠?qū)崿F(xiàn),也可能需要更多的輔助工具來配合開發(fā)者完成。
通過軟硬件配合,依賴于硬件提供的安全特性來加固系統(tǒng),為其提供可信執(zhí)行環(huán)境(TEE)是另一種可行的系統(tǒng)安全加固方案。可信執(zhí)行環(huán)境能夠有效增強邊緣設(shè)備的安全能力,例如內(nèi)存隔離、I/O隔離等。依賴該方案進行安全加固的代表系統(tǒng)有Intel SGX、ARM TrustZone和RISC-V蓬萊或Keystone等。目前,已經(jīng)發(fā)布了多個安全特性擴展和完善的可執(zhí)行環(huán)境方案,為什么還要定制化設(shè)計一個蓬萊-OpenHarmony呢?因為OpenHarmony所面臨的萬物互聯(lián)場景是有不一樣的挑戰(zhàn)和風(fēng)險,主要有以下3個方面:
第一,萬物互聯(lián)會導(dǎo)致需要面臨復(fù)雜的硬件環(huán)境。在異構(gòu)的硬件環(huán)境下,通過一套系統(tǒng)把OpenHarmony的安全特性和需求支撐起來,是非常復(fù)雜的一件事。例如,端側(cè)可能存在非常小型的低配設(shè)備,沒有頁表和內(nèi)存隔離,但是TEE很難跑在這種配置下;又例如,在較高配的手機場景,怎么能夠讓小型的、沒有很多基礎(chǔ)安全能力的環(huán)境和有安全能力的環(huán)境進行協(xié)同,也是一個較大的挑戰(zhàn)。
第二,軟件棧存在差異。面向云場景,軟件主要基于Linux內(nèi)核和虛擬機監(jiān)控器等,必要時可引入如安全OS等組件;而面向邊緣及IoT,軟件棧較為簡單,可能基于RTOS(如OpenHarmony小型內(nèi)核)等構(gòu)建整個軟件棧。因此,如何使得二者進行協(xié)同,是軟件異構(gòu)所帶來的問題。
第三,操作系統(tǒng)國產(chǎn)化問題。例如OpenHarmony目前在系統(tǒng)安全方面已經(jīng)有所成果,如何保證它的安全能力自主可控呢?這也是需要思考的一個風(fēng)險和挑戰(zhàn)。
蓬萊-OpenHarmony能夠有效解決上述問題,下圖是蓬萊-OpenHarmony的logo。討論一個有趣的話題:為什么新的系統(tǒng)命名為蓬萊?蓬萊是中國古代神話里面的一座仙島,其被一片黑色的冥河所包圍。我們希望提供一個可信執(zhí)行環(huán)境,它是和外界隔離的,里面的東西不能出來,外面的東西也不能進去。一方面能夠保證內(nèi)部機密數(shù)據(jù)的安全,另一方面也能夠避免內(nèi)部不安全因素因其特殊的地位而對外部造成損害。
02?
蓬萊-OpenHarmony
在蓬萊-OpenHarmony的項目中,開發(fā)了蓬萊可信執(zhí)行環(huán)境并提供了通用的解決方案。目前主要做的四項工作有:(1)提出面向OpenHarmony的通用TEE架構(gòu)和接口,明確架構(gòu)和接口的定義,保證后續(xù)所有的TEE都能夠滿足某一個抽象或某一個核心接口而被納入OpenHarmony體系中;(2)基于 RISC-V v1.10的指令集,開發(fā)了蓬萊安全硬件擴展;(3)開發(fā)固件層(M-mode) Monitor和TEE SDK的軟件層;(4)提供含MMU平臺和無MMU平臺的兩套系統(tǒng)支持。
2.1??
RISC-V生態(tài)
在RISC-V生態(tài)中,開發(fā)者可以自身需求定制化設(shè)計硬件而無需擔(dān)心版權(quán)風(fēng)險,如果硬件的特性足夠好,還可以將其合入到RISC-V的官方指令集中。截至2022年,RISC-V處理器出貨量達到100億,Semico Research預(yù)測到2025年,RISC-V處理器出貨量將達到800億,構(gòu)建了強大的影響力和生態(tài)。
RISC-V設(shè)備的急劇增加,逐步形成了萬物互聯(lián)的端邊場景,RISC-V的CEO Calista Redmond預(yù)測,到2030年將有500億聯(lián)網(wǎng)和物聯(lián)網(wǎng)設(shè)備需要安全和定制處理器加持,需要有足夠多的安全特性以保證身邊的設(shè)備能夠滿足計算和處理器的需求。
2.2??
面向OpenHarmony的通用TEE架構(gòu)和接口
面向OpenHarmony的通用TEE架構(gòu)和接口當前還處于草案的狀態(tài)。如下圖所示,架構(gòu)本身和RISC-V無關(guān),并未涉及到具體的架構(gòu)和特性。我們認為,未來OpenHarmony的通用TEE架構(gòu)和接口可能包含4層:最底層是所需要的硬件特性,其上層為安全固件;可信執(zhí)行環(huán)境操作系統(tǒng)在安全固件的上層;最上層即用戶應(yīng)用層。
2.3??
蓬萊-OpenHarmony:RISC-V指令集下的TEE系統(tǒng)架構(gòu)
蓬萊-OpenHarmony的整體架構(gòu)如下圖所示。蓬萊-OpenHarmony基于上述定義的OpenHarmony TEE參考架構(gòu);在硬件上進行了創(chuàng)新,面向萬物互聯(lián)異構(gòu)的場景,提出了細粒度的輕量隔離,其安全特性是可配置和可選的;在軟件上也進行了創(chuàng)新,面向多元隔離的需求,支持安全OS和輕量安全應(yīng)用;此外,蓬萊-OpenHarmony也支持OpenHarmony標準、小型、輕量等配置。
2.4??
硬件異構(gòu)應(yīng)對案例
在硬件異構(gòu)的場景中,如何實現(xiàn)內(nèi)存隔離呢?RISC-V將整個軟硬件分為硬件層、機器態(tài)、特權(quán)態(tài)以及用戶態(tài)共4層。其中,硬件層RISC-V支持不同的特性及擴展;機器態(tài)即固件層,擁有比特權(quán)態(tài)更高的權(quán)限,通常負責(zé)加載操作系統(tǒng)或者實現(xiàn)安全特性;特權(quán)態(tài)運行操作系統(tǒng)內(nèi)核,支持MMU和no-MMU平臺;用戶態(tài)則運行各類應(yīng)用程序??尚艌?zhí)行環(huán)境的基礎(chǔ)能力,要求內(nèi)核和應(yīng)用之間要內(nèi)存隔離,云邊場景可以通過內(nèi)存管理模塊 (MMU)/頁表實現(xiàn),但IoT和邊緣RISC-V設(shè)備可能沒有MMU,內(nèi)核和應(yīng)用之間缺乏隔離性。
怎么解決呢?如下圖所示為一個臨時解決方案,即將內(nèi)核運行在機器態(tài),機器態(tài)中有一套硬件機制PMP,可以通過PMP控制來隔離內(nèi)核和用戶態(tài)。例如,Linux在沒有 MMU的時候,通過RISC-V機器態(tài)的PMP隔離機制實現(xiàn)粗粒度隔離。但隨之而來出現(xiàn)一個問題,機器態(tài)固件和操作系統(tǒng)之間會存在機器態(tài)爭搶,其問題根本是邊緣設(shè)備硬件情況不同所導(dǎo)致,對于小型硬件經(jīng)常存在這樣的問題和風(fēng)險。
在蓬萊-OpenHarmony中,提出了新的RISC-V硬件擴展:sPMP。sPMP是輕量級的內(nèi)存隔離機制,存在硬件資源開銷低、訪存性能好的優(yōu)勢。有sPMP和沒有sPMP的區(qū)別在什么地方呢?當沒有sPMP時,機器態(tài)是有內(nèi)存隔離的,但是用戶態(tài)和OS態(tài)之間沒有任何隔離,很難在上面運行多個APP;有sPMP后,操作系統(tǒng)依賴sPMP寄存器就可以實現(xiàn)隔離,補齊了機制缺陷。
2.5??
軟件異構(gòu)應(yīng)對方案
在軟件異構(gòu)場景中,隔離域依賴于安全硬件的物理內(nèi)存隔離機制,如RISC-V段隔離機制。其問題是隔離域與硬件強相關(guān),比如PMP,最終的總體隔離數(shù)量與PMP個數(shù)是呈正相關(guān)。段隔離機制本身是有限的 (不超過16個),4組PMP寄存器現(xiàn)在最多只能劃分出4個域,如圖所示。
那么可信執(zhí)行環(huán)境如何提供可擴展的隔離域呢?在云場景中,可以利用軟件隔離出更多隔離域,但在邊端由于內(nèi)存資源不足并不適用。針對此問題,蓬萊-OpenHarmony提供了滑動窗口的隔離域設(shè)計,使一組PMP (邏輯上) 保護多個隔離域,在上下文切換時滑動實際的保護范圍。如圖所示,當隔離域-1被執(zhí)行時,PMP-2能夠?qū)⒏綦x域收縮至隔離域-1的范圍;反之,當隔離域-2被執(zhí)行時,PMP-2也能夠?qū)⒏綦x域收縮至隔離域-2的范圍。如此一來,能夠保證每一個隔離域執(zhí)行時,其內(nèi)存保護的范圍是準確的。
03?
總結(jié)
總的來說,蓬萊-OpenHarmony項目為OpenHarmony在RISC-V架構(gòu)下提供了安全基石,支持OpenHarmony面向萬物互聯(lián)的多場景安全需求。歡迎大家持續(xù)關(guān)注蓬萊-OpenHarmony項目,我們也期待更多的開發(fā)者能夠加入其中,共同賦能OpenHarmony的安全底座。
E N D
點擊下方閱讀原文獲取演講PPT。
關(guān)注我們,獲取更多精彩。
審核編輯黃宇
-
開源
+關(guān)注
關(guān)注
3文章
3126瀏覽量
42070 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3548瀏覽量
15738
發(fā)布評論請先 登錄
相關(guān)推薦
評論