1. 程式人生 > 實用技巧 >安全性分析之“面向全場景的鴻蒙系統”

安全性分析之“面向全場景的鴻蒙系統”

2020年9月10日,華為開發者大會上,廣受外界關注的鴻蒙作業系統(HarmonyOS)2.0版本正式釋出。華為宣稱鴻蒙是一款面向未來的、全場景的、分散式作業系統,這意味著鴻蒙系統在手機、電腦,以及更加豐富的物聯網(IoT)裝置上都將是通用的。因此,資料的跨裝置呼叫和流轉在鴻蒙裝置間將非常普遍。呼叫資料的裝置越多,自然面臨的安全風險就越大。在提供優質服務與絕佳使用者體驗的同時,安全與隱私保護問題也就成了使用者無法忽視的焦點。面向全場景的鴻蒙系統在現實中都存在哪些挑戰呢?面對這些挑戰,採用分散式安全技術的鴻蒙系統又是如何應對的呢?本文將從資料和系統等方面來剖析鴻蒙系統的安全機制。

展望未來,在萬物互聯的時代,物聯網裝置和系統勢必在更加廣泛的領域發揮重要作用並深刻地變革我們的生活。國際資料公司(IDC)的報告顯示,2019年智慧家居物聯網裝置的出貨量超過8.15億臺,並預測到2023年,這一數字將達到13.9億。彼時,隨著使用者擁有的裝置越來越多,單一裝置的資料將無法滿足使用者的需求,資料在裝置間的共享與流轉將變得越來越頻密。目前,要實現跨平臺/跨裝置的無線連線,通常都需在資料傳輸的兩端裝置上安裝特定軟體,且這種資料服務都是基於本地的。例如,要將安卓手機連線到Ubuntu或者Mac電腦上,就難免會用到類似KDE Connect這樣的軟體。由於使用者必須參與到軟體安裝與配置等工作中,其體驗自然不佳。而且,由於資料服務在本地完成,安全性也頗受考驗。鴻蒙系統分散式資料管理的目標就是為開發者在系統層面解決這些問題,讓應用開發變得簡單。它能夠保證多裝置間的資料安全,解決多裝置間資料同步、跨裝置查詢和訪問的很多關鍵技術問題。

首先,為了支援資料的跨裝置呼叫,HarmonyOS以分散式軟匯流排為基礎,實現了應用程式資料和使用者資料的分散式管理。使用者資料不再與單一物理裝置繫結,業務邏輯與資料儲存分離,應用跨裝置執行時資料無縫銜接,為打造一致、流暢的使用者體驗創造了基礎條件。在通過可信認證的裝置間,分散式資料服務支援應用資料相互同步,為使用者提供在多種終端裝置上一致的資料訪問體驗。分散式資料管理示意圖如下所示:

華為消費者業務軟體部總裁王成錄認為:“HarmonyOS從誕生的那一天著眼點便與Android不在一條賽道上”。而HarmonyOS的精髓之一就是分散式理念。從資料管理的角度來看,分散式系統可以通過網路整合並管理每臺裝置上的資料和資源,並將這些分散的資料重組成一個超級虛擬終端。正如人們平常所說的:“不要把雞蛋都放在同一個籃子裡”,相比於傳統的集中式資料管理,分散式模式下,資料分散的儲存在各處(而非與單一物理裝置繫結),既為資料的跨裝置流轉提供便利,也顯著提升了資料管理的可靠性和安全性。此外,分散式系統與生俱來的高度內聚性和透明性在HarmonyOS也得以充分體現。業務邏輯與資料儲存相分離,狀態事件、屬性資訊與文字資料相分離,這種相互獨立、彼此隔離的邊界劃分,可以實現彼此影響的最小化,從而使得安全性進一步提升。這種設計思想在計算機領域也是廣泛存在的,就好比沙盒或TrustZone,看點還在於鴻蒙如何將其發揮到淋漓盡致。

可以用WPS文件的跨裝置共享來作為鴻蒙系統分散式資料管理的一個具體案例。在該場景下,文件大小、路徑等屬性資訊儲存到了分散式資料庫中,原始檔則被存放在分散式檔案系統中,資料在跨裝置瀏覽的過程中不會放入單個裝置的儲存器,而是直接通過分散式檔案系統的介面完成跨裝置檔案訪問。

其次,為了實現使用者資料在裝置互聯場景下在各個裝置之間的安全流轉,需要保證裝置之間相互正確可信,即裝置和裝置之間建立信任關係,並能夠在驗證信任關係後,搭建安全的連線通道,實現使用者資料的安全傳輸。裝置互聯支援基於鴻蒙系統的IoT裝置(如AI音箱、智慧家居、智慧穿戴等裝置)與IoT主控裝置間建立點對點的信任關係,並在具備信任關係的裝置間,搭建安全的連線通道,實現使用者資料端到端加密傳輸。裝置之間的信任關係具體而言是指IoT主控裝置和IoT裝置之間建立的可信關係。裝置間可信關係建立的流程如下圖所示:

IoT主控裝置為不同的IoT裝置管理業務生成不同的身份標識,形成不同IoT管理業務間的隔離,該標識用於IoT主控裝置與IoT裝置之間的認證以及通訊。IoT業務身份標識為橢圓曲線公私鑰對。IoT裝置會生成各自的裝置身份標識,用來與IoT主控裝置通訊。該身份標識同樣為橢圓曲線公私鑰對。IoT裝置私鑰不出IoT裝置,裝置每次恢復出廠設定,會重置這個公私鑰對。上述身份標識可用於IoT主控裝置與IoT裝置間的安全通訊,具體來說,當IoT主控裝置與IoT裝置通過信任繫結流程交換業務身份標識或裝置標識後,可以進行金鑰協商並建立安全通訊通道。這類基於非對稱加密的公私鑰體系可以說是當今虛擬世界最為依賴的、且十分成熟的一套安全基石。尤其是在像金融等安全等級要求極高的領域,亦是被廣泛採用。

IoT主控裝置和IoT裝置建立點對點信任關係的過程,實際上是相互交換IoT裝置的身份標識的過程。在點對點建立信任關係的過程中,使用者需要在IoT主控裝置上,輸入IoT裝置上提供的PIN碼:對於有螢幕的裝置,該PIN碼動態生成;對於沒有螢幕的裝置,該PIN碼由裝置生產廠家預置;PIN碼的展示形式,可以是一個使用者可讀的數字,也可以是一個二維碼。隨後,IoT主控裝置和IoT裝置間使用PAKE協議完成認證和會話金鑰協商過程,並在此基礎上,通過協商出的會話金鑰加密傳輸通道用於交換雙方裝置的身份標識公鑰。當建立過信任關係的IoT主控裝置與IoT裝置間進行通訊時,雙方在完成上述信任關係繫結後,基於本地儲存的對端身份公鑰相互進行認證;在每次通訊時基於STS協議完成雙向身份認證以及會話金鑰協商,之後裝置使用此會話金鑰加密雙方裝置間的傳輸通道。

最後,從資料安全的角度,上述IoT裝置間信任關係的建立過程中其實已經涉及到了諸多類似金鑰管理、證書管理和安全儲存等服務。為此,鴻蒙系統提出了基於金鑰管理和儲存服務(HUKS,Huawei Universal Keystore Service)的系列安全機制。HUKS提供了證書管理、金鑰管理、安全儲存和金鑰認證服務,當前在鴻蒙系統上主要是提供金鑰管理和安全儲存服務,同時支撐hichain(裝置身份認證平臺)的基礎裝置認證能力。如下是HUKS的功能結構圖:

HUKS在使用中有如下約束,由於這些約束的共同作用,對於入侵者而言,發動惡意攻擊將變得十分困難:

  • 金鑰安全儲存:金鑰要求儲存於安全儲存區域,資料不可以修改,恢復出廠設定時出廠預置的金鑰不能被刪除。
  • 金鑰訪問安全:鴻蒙系統通過將不同應用資料儲存在不同的位置,來實現應用間資料的隔離。通過引數結構體中包含UID和程序ID,來實現不同應用間的資料隔離。
  • 不支援併發訪問:HUKS本身不考慮多個應用同時呼叫的情況,也不考慮資源的互斥。如果有多個應用都會用到HUKS服務,那麼應該由每個應用各自連結一份HUKS庫,並由業務傳入持久化資料儲存的路徑,以實現應用間的資料儲存分開。資料儲存在各應用各自儲存目錄下。

實際進行鴻蒙系統應用開發時,對於裝置認證功能,推薦使用HiChain來對接HUKS,HUKS可以向HiChain等應用提供金鑰的產生、匯入、匯出、加密/解密、儲存、銷燬,證書的匯入和查詢,祕密資訊的儲存等能力。

當前,全球智慧移動終端市場蓬勃發展,Android以87.6%的市場份額獨佔鰲頭。每個APP都依賴於Android應用程式框架來得以運轉。例如,若沒有框架的LMS(位置管理器服務),APP將無法獲取GPS位置。然而,越來越多的安全漏洞在Android應用程式框架中被發現。一些已知的漏洞可能導致大規模的網路攻擊並嚴重損害使用者的安全和隱私,例如惡意APP可以利用它們來竊取使用者密碼,在後臺拍照,啟動UI欺騙攻擊,並篡改使用者資料。“從誕生的那一天著眼點便與Android不在一條賽道上”的鴻蒙系統具有充分的後發優勢,至少從安全這一角度,顯然是廣闊天地、大有可為的。不僅如此,面向未來,立足萬物互聯,更是機遇與挑戰並存。從以上分析不難看出,在基礎框架搭建時,鴻蒙已經開始佈局,在分散式資料管理、資料安全機制,以及裝置互聯安全等方面都有所著力。讓我們拭目以待,隨著更多搭載鴻蒙的裝置釋出,隨著更多執行在其上的應用被開發出來,鴻蒙將如何變革我們的數字生活吧。

【本文完】


參考文獻

【1】HarmonyOS安全指南