Android、鴻蒙系統安全
一、資訊安全概念
資訊安全涉及資訊論、計算機科學和密碼學等多方面的知識,它研究計算機系統和通信網路內資訊的保護方法,是指在資訊的產生、傳輸、使用、存盤程序中,對資訊載體(處理載體、存盤載體、傳輸載體)和資訊的處理、傳輸、存盤、訪問提供安全保護,以防止資料資訊內容或能力被非法使用、篡改,
資訊安全的基本屬性包括機密性、完整性、可用性、可認證性和不可否認性,主要的資訊安全威脅包括被動攻擊、主動攻擊、內部人員攻擊和分發攻擊,主要的資訊安全技術包括密碼技術、身份管理技術、權限管理技術、本地計算環境安全技術、防火墻技術等,資訊安全的發展已經經歷了通信保密、計算機安全、資訊安全和資訊保障等階段,資訊安全本身包括的范圍很大,包括如何防范商業企業機密泄露、防范青少年對不良資訊的瀏覽、個人資訊的泄露等,資訊安全達到的其核心目標包括保密性、完整性、可用性、可控性和不可否認性五個安全目標
狹義的安全是建立在以密碼論為基礎的計算機安全領域,早期中國資訊安全專業通常以此為基準,以下將分別從密碼理論,Android安全,鴻蒙安全介紹,
- 密碼學相關的基本概念

圖1.0 資訊安全所面臨的威脅與應對這些威脅的密碼技術

圖2. 密碼學家的工具集合
· 散列函式(散列(hash)、指紋、訊息摘要、摘要演算法、雜湊函式):把任意長度的輸入訊息資料轉化成固定長度的輸出資料的一種密碼演算法,
· 訊息驗證代碼:驗證資料完整性,即資料沒有被篡改,
· 數字簽名:RSA私鑰加密,公鑰解密,結合散列函式,驗證訊息真實性,
· 偽隨機函式(PRF):生成任意數量的偽隨機資料,
· RSA:可以同時用于密鑰交換和身份驗證(數字簽名),
· DHE_RSA:DHE 演算法:密鑰協商,RSA 演算法:身份驗證(數字簽名),
· ECDHE_RSA: ECDHE 演算法:密鑰協商,RSA 演算法:身份驗證(數字簽名),
· ECDHE_ECDSA :ECDHE 演算法:密鑰協商,ECDSA 演算法:身份驗證(數字簽名)
三、PKI體系概述
PKI 的本質是把非對稱密鑰管理標準化,PKI 是 Public Key Infrastructure 的縮寫,其主要功能是系結證書持有者的身份和相關的密鑰對(通過為公鑰及相關的用戶身份資訊簽發數字證書),為用戶提供方便的證書申請、證書作廢、證書獲取、證書狀態查詢的途徑,并利用數字證書及相關的各種服務(證書發布,黑名單發布,時間戳服務等)實作通信中各物體的身份認證、完整性、抗抵賴性和保密性,
專門負責頒發數字證書的系統稱為CA系統,負責管理并運營 CA 系統的機構稱為CA中心,
· KMC:解決私鑰的備份與恢復問題;
· 雙證書機制:「簽名證書及私鑰」只用于簽名驗簽,「加密證書及私鑰」只用于加密解密,
· LDAP:解決數字證書查詢和下載的性能問題,避免 CA 中心成為性能瓶頸,
· CRL(證書作廢串列) 和 OSCP(在線證書狀態協議):方便用戶快速獲得證書狀態,
· RA:方便證書業務遠程辦理、方便證書管理流程與應用系統結合,
· 電子認證服務機構:保證 CA 系統在數字證書管理方面的規范性、合規性和安全性,
四、Android系統安全體系
Android 將安全設計貫穿系統架構的各個層面,覆寫系統內核、虛擬機、應用程式框架層以及應用層各個環節,力求在開放的同時,也能保護用戶的資料、應用程式和設備安全,
Android安全模型主要提供以下幾種安全機制:
- 行程沙箱隔離機制
- 應用程式簽名機制
- 權限宣告機制
- 訪問控制機制
- 行程通信機制
- 記憶體管理機制
從功能模塊上來劃分主要有:硬體安全,系統安全,資料應用安全,安全更新,如下圖所示:

圖3.0 Android 系統安全體系
4.1 Android行程沙箱隔離機制
行程沙箱隔離機制,使Android應用程式在安裝時被賦予獨特的用戶標識(UID),并永久保持,應用程式及其運行的Dalvik虛擬機運行在獨立的Linux行程空間,與其他應用程式完全隔離,如下圖3.1所示;在特殊情況下,行程間還可以存在相互信任關系,如源自同一開發者或同一開發機構的應用程式,通過Android提供的共享UID(Shared UserId)機制,使具備信任關系的應用程式可以運行在同一行程空間,
4.1 Android行程沙箱隔離機制
行程沙箱隔離機制,使Android應用程式在安裝時被賦予獨特的用戶標識(UID),并永久保持,應用程式及其運行的Dalvik虛擬機運行在獨立的Linux行程空間,與其他應用程式完全隔離,如下圖3.1所示;在特殊情況下,行程間還可以存在相互信任關系,如源自同一開發者或同一開發機構的應用程式,通過Android提供的共享UID(Shared UserId)機制,使具備信任關系的應用程式可以運行在同一行程空間,
圖4. Android 應用程式沙箱機制
Android從Linux繼承了已經深入人心的類Unix行程隔離機制與最小權限原則,同時結合移動終端的具體應用特點,進行了許多有益的改進與提升,具體而言,行程以隔離的用戶環境運行,不能相互干擾,比如發送信號或者訪問其他行程的記憶體空間,因此,Android沙箱的核心機制基于以下幾個概念:
- 標準的Linux行程隔離
2. 大多數行程擁有唯一的用戶ID(UID)
3. 以及嚴格限制檔案系統權限
4.2. 應用程式簽名機制
規定 APK 檔案必須被開發者進行數字簽名,以便標識應用程式作者和在應用程式之間的信任關系,在安裝應用程式APK時,系統安裝程式首先檢查APK是否被簽名,有簽名才能安裝,當應用程式升級時,需要檢查新版應用的數字簽名與已安裝的應用程式的簽名是否相同,否則,會被當作一個新的應用程式,Android 開發者有可能把安裝包命名為相同的名字,通過不同的簽名可以把它們區分開來,也保證簽名不同的安裝包不被替換,同時防止惡意軟體替換安裝的應用(Android Keystore),
4.3 權限宣告機制
要想在物件上進行操作,就需要把權限和此物件的操作進行系結,不同級別要求應用程式行使權限的認證方式也不一樣,Normal級申請就可以使用,Dangerous級需要安裝時由用戶確認,Signature和SignatureOrSystem級則必須是系統用戶才可用,
4.4 行程通信機制
基于共享記憶體的 Binder 實作,提供輕量級的遠程行程呼叫(RPC),通過介面描述語言(AIDL)定義介面與交換資料的型別,確保行程間通信的資料不會溢位越界,如下圖所示,

圖5. Android Binder 機制通訊
5. 記憶體管理機制
基于Linux的低記憶體管理機制,設計實作了獨特的LMK,將行程重要性分級、分組,當記憶體不足時,自動清理級別行程所占用的記憶體空間,同時,引入的 Ashmem 記憶體機制,使Android具備清理不再使用共享記憶體區域的能力,
Android還增加了一些面向移動設備的特有功能,如低記憶體管理LMK(Low Memory Killer)、匿名共享記憶體(Ashmem: Anonymous Shared Memory),以及行程間通信Binder機制,這些功能的增強進一步提升了Android在記憶體管理、行程間通信等方面的安全性,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333595.html
標籤:其他
上一篇:網頁加載程序+性能優化+安全
