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