溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中沙箱模型的作用是什么

發(fā)布時間:2021-06-28 15:16:30 來源:億速云 閱讀:115 作者:Leah 欄目:移動開發(fā)

這期內容當中小編將會給大家?guī)碛嘘PAndroid中沙箱模型的作用是什么,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、沙箱模型原理簡介

現(xiàn)實中的沙箱(SandBox),是一種兒童玩具,類如KFC中一個裝滿小球的容器,兒童可以在其中隨意玩耍,起到保護兒童的作用。(也可以理解為一種安全環(huán)境。)

近年來,隨著網(wǎng)絡安全問題的日益突出,人們更多的將沙箱技術應用于網(wǎng)上沖浪方面。從技術實現(xiàn)角度而言,就是從原有的阻止可疑程序對系統(tǒng)訪問,轉變成將可疑程序對磁盤、注冊表等的訪問重定向到指定文件夾下,從而消除對系統(tǒng)的危害。

舉個例子,GreenBorder為IE和FireFox構建了一個安全的虛擬執(zhí)行環(huán)境。用戶通過瀏覽器所作的任何寫磁盤操作,都將重定向到一個特定的臨時文件夾中。這樣,即使網(wǎng)頁中包含病毒,木馬,廣告等惡意程序,被強行安裝后,也只是安裝到了臨時文件夾中,不會對用戶pc造成危害。

對于程序開發(fā)中的Java技術來說,沙箱也具有很重要的安全意義。沙箱無論何時加載遠程網(wǎng)站上代碼并在本地執(zhí)行,安全都是至關重要的問題。點擊一個鏈接可以啟動Java Web Start應用程序。訪問一個網(wǎng)頁時,其中的所有Applet也會自動地啟動。如果再點擊一個鏈接,或者訪問一個網(wǎng)頁時,在用戶的機器上能夠安裝任意的代碼,那么犯罪分子就可能在此時竊聽機密信息、讀取財務數(shù)據(jù)或者接管用戶機器來發(fā)送廣告。 為了確保Java技術不會被邪惡目的所利用,SUN公司在設計Java的時候,設計了一套精密的安全模型;即安全管理器(Security Manager)將檢查有權使用的所有系統(tǒng)資源。在默認的情況下,只允許那些無害的操作,要想允許執(zhí)行其他操作,代碼需得到數(shù)字簽名,用戶必須得到數(shù)字認證。

特別是,在沙箱中的程序有下列限制:

  • 不能運行任何本地可執(zhí)行程序。

  • 不能從本地計算機文件系統(tǒng)中讀取任何信息,也不能往本地計算機文件系統(tǒng)中寫入任何信息。

  • 不能查看除Java版本信息和少數(shù)幾個無害的操作系統(tǒng)詳細信息外的任何有關本地計算機的信息。特別是,在沙箱中的代碼不能查看用戶名、E-mail地址等信息。

  • 遠程加載的程序不能與除下載程序所在的服務器之外的任何主機通信,這個服務器被稱為源主機(originating host)。這條規(guī)則通常稱為“遠程代碼只能與家人通話”這條規(guī)則將會確保用戶不會被代碼探查到內部網(wǎng)絡資源(在Java SE 6 中,Java Web Start 應用程序可以與其他網(wǎng)絡連接,但必須得到用戶的同意)。

因此,近年來,沙箱技術非常盛行,如360瀏覽器等,都宣稱采用了沙箱技術來保證上網(wǎng)安全,而對于Android系統(tǒng)來說,也有意識地引入了這樣一個概念。

二、Android中的沙箱模型

在 Linux 中,一個用戶 ID 識別一個給定用戶;在 Android 上,一個用戶 ID 識別一個應用程序。應用程序在安裝時被分配用戶 ID,應用程序在設備上的存續(xù)期間內,用戶 ID 保持不變。權限是關于允許或限制應用程序(而不是用戶)訪問設備資源。

從本質上來說,Android 通過使用沙箱的概念來實現(xiàn)應用程序之間的分離和權限,以允許或拒絕一個應用程序訪問設備的資源,比如說文件和目錄、網(wǎng)絡、傳感器和 API。為此,Android 使用一些 Linux 實用工具(比如說進程級別的安全性、與應用程序相關的用戶和組 ID,以及權限),來實現(xiàn)應用程序被允許執(zhí)行的操作。

概念上講,沙箱可以表示為 圖 1 所示??梢郧宄乜吹?,兩個 Android 應用程序,各自在其自己的基本沙箱或進程上。

Android中沙箱模型的作用是什么

圖1

Android 應用程序運行在它們自己的 Linux 進程上,并被分配一個惟一的用戶 ID。默認情況下,運行在基本沙箱進程中的應用程序沒有被分配權限,因而防止了此類應用程序訪問系統(tǒng)或資源。但是 Android 應用程序可以通過應用程序的 manifest 文件請求權限。

通過做到以下兩點,Android 應用程序可以允許其他應用程序訪問它們的資源:

1)        聲明適當?shù)?manifest 權限

2)        與其他受信任的應用程序運行在同一進程中,從而共享對其數(shù)據(jù)和代碼的訪問(如圖 2所示)。

Android中沙箱模型的作用是什么

圖2

不同的應用程序可以運行在相同的進程中。對于此方法,首先必須使用相同的私鑰簽署這些應用程序,然后必須使用 manifest 文件給它們分配相同的 Linux 用戶 ID,這可以通過用相同的值/名定義 manifest 屬性 android:sharedUserId 來做到。

上述就是小編為大家分享的Android中沙箱模型的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI