徐仙偉,錢珺
(南京森林警察學院信息技術學院,江蘇南京 210023)
Open Harmony 是開放原子開源基金會(Open Atom Foundation)的一款運營項目,采用開源方式,目的是構建一款智能化終端設備操作系統框架和平臺,實現全場景、全連接、全智能化的設備應用,真正實現萬物互聯的社會發展需求。華為Harmony OS 正是基于Open Harmony開發,借助分布式技術,將使用人、智能設備以及應用場景有機結合,使人在各種場景中應用的多種智能終端設備實現極速發現與連接,達到設備間硬件資源互助,系統資源共享等體驗效果,真正實現萬物互聯[1-2]。
安卓(Android)是基于Linux 內核(不包含GNU 組件)的開源操作系統框架。當前主要用于一些移動智能終端,如智能手機和平板電腦等。該框架由美國谷歌公司和開放手機聯盟共同管理和開發,因其開放性特點使得眾多開發者參與其中,從而出現許多移動終端廠商加入安卓聯盟。
本文將對上述兩種系統開發框架進行闡述,著重從信息安全角度對其安全機制進行分析,對比分析各自的優勢和不足,為信息安全人員從事相關研究和實踐提供理論依據。
Open Harmony采用分層設計思想,包括:內核層、系統服務層、框架層、應用層。系統功能上主要按照系統→子系統→功能/模塊的方式進行逐級展開,能夠在多設備應用場景下,根據實際需求進行功能/模塊裁剪[3],實現設備互通、應用服務需求滿足的同時降低系統資源消耗。
在內核上該架構主要采用多內核設計,支持針對不同資源受限設備選用適合的OS 內核。其中,系統服務層是系統的核心能力集合,包含了多種服務子系統集,并根據不同設備形態進行環境部署。同時,該層通過框架層向應用層中應用程序提供服務。框架層主要為系統應用開發提供Java/C/C++/JS 等多語言的用戶程序框架、Ability 框架等。應用層主要包括系統應用和第三方非系統應用。
Android 架構主要分為四層,從上到下依次為應用程序層、應用程序框架層、系統運行庫層以及內核層。其中,應用程序層主要提供應用程序,常用Java語言編寫開發,因其簡單易學可被開發人員及時更新與替換,因此具有較高的靈活性和個性化特點。應用程序框架層提供了Android 應用開發的基礎功能,許多核心應用程序功能需要通過該層來實現。同時,該層中簡化了組件的重用,一方面,使得開發人員可直接使用現有的組件進行快速開發,另一方面,也可以通過繼承方式實現功能的個性化拓展。系統運行庫層主要包括系統庫和Android 運行時兩部分,其主要作用是連接應用程序框架層與Linux內核層。最底層為Linux 內核層,其核心系統服務如系統安全性、內存和進程管理以及網路協議等均由該層提供[4]。
盡管兩種框架都是基于Linux 內核開發,但構架仍有許多區別。
安卓系統是基于Linux的宏內核設計。宏內核中包含了操作系統的大多數的功能和模塊,而這些功能和模塊必須都具有最高權限,只要一個模塊出錯,整個系統就會崩潰。此外由于Android是用Java語言編寫的,系統開發難度低[5],由此導致的缺點是不能與系統底層直接進行通信活動,必須通過虛擬機來運行,當虛擬機出現問題整個系統就會卡住,這也是安卓系統容易崩潰的原因。
Open Harmony 主要采用微內核設計。微內核中主要包括操作系統必要的一些功能模塊(如任務管理、內存分配等),處在核心地位,具有最高權限。當其他模塊出現問題,對于整個系統的運行是無礙的。因此,微內核開發難度大,但是系統穩定性高[6]。并且該系統采用加編譯器取代虛擬機,直接編譯為二進制機器碼,無須中轉,執行速度快,但同時需要的內存空間也高。
Android 系統在其架構的各個層面都進行了安全設計,主要包括系統內核、虛擬機、應用程序框架層以及應用層等。其主要目的在于實現開放的同時,也能全面地保護用戶數據、應用程序以及設備的安全性。其安全模型提供的安全機制如下。
2.1.1 訪問控制
訪問控制是保證操作系統安全性的核心方法。在Android 系統中,任何有可能危害到操作系統的操作和程序都應無法正常執行,這些非法操作包括讀、寫用戶隱私數據以及其他應用程序的文件等。該機制可及時限制有害于系統和用戶使用的程序運行,從而進一步保證用戶數據不被非法程序訪問。
2.1.2 應用程序簽名
安卓系統要求其所有的應用程序都必須通過證書簽名機制才可安裝。只有簽名后的apk(應用安裝包)才可發布。一方面,該機制可保證應用安裝包的完整性,使用惡意代碼無法插入和修改apk包;另一方面,對apk包的應用更新也能起到規范管理。
2.1.3 進程防護
在進程管理中為了保障應用程序及其數據、文件的完整性和機密性,Android 一般采用進程隔離以及基于共享內存的Binder 策略加以實現,并且能達到輕量級的遠程進程調用效果。在進程間通信數據安全方面,主要通過接口描述語言定義接口與交換數據的類型,使得數據不會溢出。
2.1.4 權限命名
繼承Linux 權限管理方法,系統中每個權限包括3項信息,分別是:權限的名稱、各個權限所屬的組以及權限的保護等級。權限組是指把權限按照不同的功能要求分成不同集合。每個權限組中包含若干個具體權限,組中的每個權限均具有該組提供的權限等級,不同組中的權限具有不同的權限等級,保護級別使用應用程序訪問時要使用此權限時的認證方式。
2.1.5 內存管理
Android 系統采用Linux 的低內存管理機制,將進程按重要性進行分級、分組。當系統內存不足時,采用獨特的低內存清理方法,自動清理最低級別進程的內存空間。在共享內存空間管理方面主要采用Ashmem機制進行清理。
2.1.6 “沙箱”機制
在Android 系統中,所有的應用程序和系統進程都會被分配一個固定的用戶ID(UID) 進行唯一性標識,該UID 必須與內核層進程的UID保持一致。該方法可保證每個應用程序可以在自己獨立的DVM(Dalvik 虛擬機)中運行,擁有獨立的地址空間和系統資源,這種隔離機制稱為沙箱機制。該方法主要采用重定向技術,實現系統的安全防護。
Open Harmony 是一款面向未來的、全場景的、分布式操作系統框架,在手機、電腦以及更加豐富的物聯網(IoT)設備上具備通用性。數據的跨設備調用和流轉在Harmony OS 設備間非常普遍。在提供優質服務與用戶體驗的同時,保證系統安全與隱私保護[7]。其安全機制如圖1所示。

圖1 Open Harmony安全機制
2.2.1 硬件安全
1) 啟動可信根。Open Harmony 設備采用PKI 體系保護軟件完整性,確保設備運行來源合法、軟件未被篡改。在設備啟動流程中,逐級進行軟件簽名校驗形成安全啟動鏈,任何一個環節的簽名校驗不通過即終止設備啟動。安全啟動鏈中最初執行簽名校驗的軟硬件實體,即為設備的啟動可信根。
2)硬件隔離可信環境。遵循可信計算系統的設計理念,使可信與不可信之間存在清晰而明確的隔離邊界。Open Harmony設備在可信環境中實現核心敏感數據的保護機制,可確保即使不可信的操作系統存在漏洞且被利用也能保證可信環境中敏感數據的安全,該可信環境主要采用基于硬件的安全隔離機制構建。
3)硬件密鑰引擎。利用計算機硬件輔助軟件來處理數據的加解密,由硬件實現加解密處理,將使部分專用硬件資源用于處理加解密計算任務,當加解密引擎工作時,CPU 可并發地繼續執行其他計算任務,可以極大地提升性能,降低CPU 負載。此外,硬件密鑰引擎還可對抗電磁、輻射等物理側信道攻擊。
2.2.2 系統安全
1)進程隔離。進程隔離一般采用虛擬地址空間映射方式,通過MMU配置,將不同進程的虛擬地址映射成各自不同的實際的物理地址段,當進程通過虛擬地址訪問實際內存數據時,在非共享內存條件下,該存儲空間只屬于某一進程,其他進程無法訪問。對于用戶態進程均擁有獨立的VMM空間,相互不可見。
2) 自主訪問控制DAC(Discretionary Access Control)。規定文件權限由文件擁有者來決定其他角色的訪問權限。權限管控粒度分為三類:user(自身)、group(組員)、other(其他人),即UGO。將任意用戶分類為UGO中三者之一,采取相應管控策略,完成DAC權限校驗流程。
3)Capability機制。在多用戶計算機系統中,一般系統管理員(root)會擁有系統的所有權限。Open Harmony將系統中的特權訪問進行管控,系統需要對用戶層訪問內核的特權級系統調用進行限制,僅允許部分高權限應用進行特權操作。
4)安全啟動。通過采用數字簽名和完整性校驗機制,從芯片內部固化的可信啟動根開始,逐級校驗每一層軟件的完整性和合法性,確保最終啟動的操作系統軟件是廠家提供的正確合法的軟件,防止攻擊者對系統軟件進行惡意的篡改和植入,為整個系統提供初始安全的基礎運行環境。
2.2.3 數據安全
HUKS(Open Harmony Universal Keystore Service),提供了密鑰管理、證書管理服務,用于支撐HiChain(設備身份認證平臺)的基礎設備認證。
2.2.4 設備互聯安全
為了實現用戶數據在設備互聯場景下各個設備之間安全流轉,需要保證設備之間相互正確可信,即設備和設備之間建立信任關系,并能夠在驗證信任關系后,搭建安全的連接通道,實現用戶數據的安全傳輸。設備之間的信任關系將涉及IoT(物聯網)主控設備和IoT設備之間的可信關系。
2.2.5 應用安全
1)應用簽名管控。Open Harmony 應用安裝首先需要對包的完整性進行校驗。當安裝應用時首先計算包的Hash 值,然后使用hash 值和服務器上的簽名信息以及預置公鑰進行驗簽,只有驗簽通過的應用才能安裝。
2)應用權限控制。Open Harmony 系統允許安裝第三方應用,需要對第三方應用的敏感權限調用進行管控,具體實現是應用在開發階段就需要在profile.json中指明此應用在運行過程中可能會調用哪些敏感權限,這些權限包括靜態權限和動態權限,當需要運行時讓用戶確認才可調用。
當前,全球智能移動終端市場蓬勃發展,Android仍是主流開發環境,其開放性、不受到運營商制約、豐富的硬件選擇、不受任何限制的開發商等優勢給消費者提供了極大便利,拉近了人與互聯網間距離,改變了人們的生活方式。但同時也出現了許多問題,特別在安全和隱私方面,越來越多的安全漏洞在Android應用程序框架中被發現。一些已知的漏洞可能導致大規模的網絡攻擊并嚴重損害用戶的安全和隱私,例如惡意APP 可以利用它們來竊取用戶密碼,在后臺拍照,啟動UI 欺騙攻擊,并篡改用戶數據。
隨著物聯網技術的需求應用,Open Harmony體現顯著優勢。其以其分布式特點實現業務程序數據和用戶數據的分布式管理,使得業務邏輯與數據存儲分離。通過構建統一的分布式服務管理,達到分布式任務調度目的。利用分布式虛擬化平臺實現不同設備的資源融合、設備管理以及數據處理,并將周邊設備作為能力的延伸,共同形成一個超級虛擬終端。此外,Open Harmony 通過組件化和組件彈性化等設計方法,做到硬件資源的在多種終端設備間,按需彈性部署。同時根據設備的可用資源和主要業務方向進行靈活增減,從而實時地滿足不同形態下的多終端設備對于操作系統的服務需求。在安全性方面,因Harmony 微內核的代碼很少,受攻擊的可能性大大降低,而且無需Root,細粒度權限控制從源頭提升系統安全,通過分布式多端協同身份認證來保證人、設備和數據的正確性。在數據使用中圍繞數據的生成、存儲、使用、傳輸以及銷毀過程進行全生命周期的保護,從而保證個人數據與隱私以及系統的機密數據的安全性。