1. 程式人生 > >Android 安全機制答疑

Android 安全機制答疑

什麼是Android 多使用者模式
        類似PC機器上的多賬號登陸,一臺裝置支援多個使用者複用,在Android 4.2時就已經開始支援多使用者功能;Android為不同的使用者提供獨立的通知、應用、桌布、指紋、密碼、電話、簡訊等個人資料空間,主要應用場景如,父母可能會允許他們的孩子使用家用平板電腦,或應急響應團隊可能會共用一臺移動裝置用於呼叫值班。此外市面上常見的應用雙開、手機分身功能都是基於此種技術實現的。
        Android 裝置管理使用以下使用者型別:
        主要使用者:新增到裝置的第一個使用者。除非恢復出廠設定,否則無法移除主要使用者;此外,即使其他使用者在前臺執行,主要使用者也會始終處於執行狀態。該使用者還擁有隻有自己可以設定的特殊許可權和設定。
        次要使用者:除主要使用者之外新增到裝置的任何使用者。次要使用者可以移除(由使用者自行移除或由主要使用者移除),且不會影響裝置上的其他使用者。這種使用者可以在後臺執行且可以繼續連線到網路。
        訪客   :臨時的次要使用者。訪客使用者設定中有明確的刪除選項,以便在訪客使用者帳號過期時快速將其刪除。一次只能建立一個訪客使用者。
該技術是基於linux 自主式訪問控制擴充套件而來,但不是基於此,且該技術是在一個檔案系統上進行許可權訪問控制的,多使用者模式只是一個標準Android作業系統中的一個安全機制而已。

        *P10的使用者賬號、訪客賬戶、隱私賬戶說的就是這種多使用者模式,它既不是雙android系統,也不是雙域雙系統,可以簡單理解為Android多使用者模式將所有使用者資料互相隔離開來。

什麼是Android沙箱
        沙箱,對使用者來說可以理解為一種安全環境,對惡意訪問者來說是一種限制。
        在Android系統中,應用APP(通常)都在一個獨立的沙箱中執行,即每一個Android應用程式都在它自己的程序中執行,都擁有一個獨立的ART虛擬機器例項。ART經過優化,允許在有限的記憶體中同時高效地執行多個虛擬機器的例項,並且每一個ART應用作為一個獨立的Linux程序執行。
        Android沙箱擴充套件了Linux核心安全模型的使用者與許可權機制,將Linux多使用者(和前面Android多使用者模式不一樣)隔離機制巧妙地移植為應用程式隔離。在linux中,一個使用者標識(UID)識別一個給定使用者;在Android上,一個UID則識別一個應用程式。在安裝應用程式時向其分配UID。因此,應用程式運行於自己獨立的程序空間,與UID不同的應用程式自然形成資源隔離,如此便形成了一個作業系統級別的應用程式“沙箱”。
        *沙箱只是標準Android作業系統中的一個安全機制而已,不能用來做雙系統,可以簡單理解為沙箱將所有應用互相隔離開來。

什麼是雙Android系統,雙域雙系統
        雙Android系統、雙域雙系統肯定不是標準Android作業系統(google官方釋出),它是經過改造的!
        雙Android系統:類似華為鼎橋公司開發的雙Android系統,它的一個典型特點是通過chroot(linux命令)在一個linux核心作業系統上掛載兩個檔案系統,然後分別在不同的檔案系統中啟動Android系統程序樹,構造雙Android形態!可以形象的理解為一棵標準的青松(標準Android),在出土時分叉長出兩棵子樹!
        雙域雙系統:類似上海中標公司開發的ACE雙系統手機,它的一個典型特點是通過複製Android系統核心程序zygote來構建雙Android形態的,並且它只有一個檔案系統,可以形象的理解為一棵標準的青松(標準Android),在長出半米高兒的時候開始分叉長出兩個主幹!
        *至於雙空間、隱私空間應該指的雙Android系統、雙域雙系統中各子系統的別稱吧,類似咱們公司的雙Android系統,其中一個子系統叫普通系統(普通區域)、另一個則叫安全系統(安全區域)。

對比
       *Android多使用者模式、沙箱機制是Android系統內的安全機制
       *雙Android系統、雙域雙系統是Android系統虛擬化技術


      *Android多使用者模式隔離的是使用者資料
      *沙箱機制隔離的是應用資料
      *雙Android系統隔離的是Android系統程序樹(檔案系統)
      *雙域雙系統隔離的是Android系統的framework層(執行時空間)