演講嘉賓 | 杜 東
回顧整理 | 廖 濤
排版校對(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)分享。
![f6664d02-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7WAQcPtAAkW0gmnuk0563.png)
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ā)者完成。
![f6988600-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7aAONP_AAKnuB7-LSQ334.png)
通過軟硬件配合,依賴于硬件提供的安全特性來加固系統(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ì)外部造成損害。
![f6a27bce-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7aAOGlkAADWCEvrbGg130.png)
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)。
![f6b6403c-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7aAPHqyAARTYnR_Qe4710.png)
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ì)算和處理器的需求。
![f6c335a8-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7aAHedtAAIotd3O8fc542.png)
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)用層。
![f6eacbfe-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7aAKTPRAAFmkHVFtsk262.png)
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)、小型、輕量等配置。
![f709df3a-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7aABUiFAAGUCKtXDKo780.png)
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)。
![f71a53b0-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7eATCn0AAEzFCTVKOY188.png)
在蓬萊-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ī)制缺陷。
![f722d0f8-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7eAG2SAAAB047KHfjc957.png)
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è)域,如圖所示。
![f7331ce2-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7eADRcKAADbyTY0AoI894.png)
那么可信執(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)確的。
![f74e5020-065d-11ee-9c1d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9B/22/wKgZomTnt7eASvQyAADyaTMGTRg653.png)
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)推薦
回顧OpenHarmony社區(qū)2024年度精彩瞬間
OpenHarmony城市技術(shù)論壇第12期——合肥站圓滿舉辦
![<b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇<b class='flag-5'>第</b>12<b class='flag-5'>期</b>——合肥站圓滿舉辦](https://file1.elecfans.com/web3/M00/03/D8/wKgZO2dsrjiAaSqIAAAYzf1wxqE777.jpg)
開源芯片系列講座第24期:基于SRAM存算的高效計(jì)算架構(gòu)
![<b class='flag-5'>開源</b>芯片系列講座<b class='flag-5'>第</b>24<b class='flag-5'>期</b>:基于SRAM存算的高效<b class='flag-5'>計(jì)算</b>架構(gòu)](https://file1.elecfans.com/web2/M00/E5/E7/wKgZomZFcsyAcT-5AAA2A4dQRkQ217.png)
凌蒙派OpenHarmony開源項(xiàng)目榮獲本期Gitee官方推薦
![凌蒙派<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開源</b>項(xiàng)目榮獲本期Gitee官方推薦](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
有方科技亮相開源鴻蒙峰會(huì)和星閃合作峰會(huì)
高燃回顧|第三屆OpenHarmony技術(shù)大會(huì)精彩瞬間
第二屆大會(huì)回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開發(fā)
![第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>25<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b>上的Python設(shè)備應(yīng)用開發(fā)](https://file1.elecfans.com/web2/M00/04/4E/wKgZombNTbKAGXSVAAARd6jESHY243.jpg)
OpenHarmony城市技術(shù)論壇第10期——上海站圓滿舉辦
![<b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇<b class='flag-5'>第</b>10<b class='flag-5'>期</b>——上海站圓滿舉辦](https://file1.elecfans.com//web2/M00/04/86/wKgaombFRFWAJDEtAAIK5_ic29Q491.png)
第二屆大會(huì)回顧第24期 | 面向OpenHarmony的軟件工程研究:機(jī)遇與挑戰(zhàn)
![第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>24<b class='flag-5'>期</b> | 面向<b class='flag-5'>OpenHarmony</b>的軟件工程研究:機(jī)遇與挑戰(zhàn)](https://file1.elecfans.com/web2/M00/01/13/wKgZomazSQ6AQxRJAABlnH7_7F0432.png)
第二屆大會(huì)回顧第20期 OHPM:建設(shè)安全可靠的OpenHarmony生態(tài)軟件倉庫
![第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>20<b class='flag-5'>期</b> OHPM:建設(shè)安全可靠的<b class='flag-5'>OpenHarmony</b>生態(tài)軟件倉庫](https://file1.elecfans.com/web2/M00/F9/05/wKgaomaGeJiAapwTAAASeZvnT3Q883.jpg)
OpenHarmony城市技術(shù)論壇第8期——廈門站圓滿落幕
![<b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇<b class='flag-5'>第</b>8<b class='flag-5'>期</b>——廈門站圓滿落幕](https://file1.elecfans.com//web2/M00/D4/7B/wKgZomYlzZaABgMkAAGXsd3b9NA71.jpeg)
OpenHarmony城市技術(shù)論壇第8期——廈門站圓滿舉辦
![<b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇<b class='flag-5'>第</b>8<b class='flag-5'>期</b>——廈門站圓滿舉辦](https://file1.elecfans.com/web2/M00/D4/4C/wKgaomYk2ryARSB3AAAduX3dAqM211.jpg)
開放原子開源大賽—基于OpenHarmony的團(tuán)結(jié)引擎應(yīng)用開發(fā)賽正式啟動(dòng)!
第二屆大會(huì)回顧第15期 | OpenHarmony性能調(diào)優(yōu)工具介紹
![第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>15<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b>性能調(diào)優(yōu)工具介紹](https://file1.elecfans.com/web2/M00/C2/BD/wKgZomXm79SADTRYAAA4291E-FE110.png)
第二屆大會(huì)回顧第8期 | 智能終端OS的個(gè)人數(shù)據(jù)處理與保護(hù)
![第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>8<b class='flag-5'>期</b> | 智能終端OS的個(gè)人數(shù)據(jù)處理與保護(hù)](https://file1.elecfans.com/web2/M00/C0/69/wKgZomXVc7KADL_HAAA4V49MvWs620.png)
評(píng)論