安全認(rèn)證并切換至加密域的制作方法
【專(zhuān)利摘要】一種用于在實(shí)施多個(gè)安全域的操作系統(tǒng)中切換至需要認(rèn)證的加密域的設(shè)備和方法。提供與加密域和當(dāng)前域不同的中間域。一旦接收到切換至加密域的請(qǐng)求,系統(tǒng)就切換至中間域。在中間域中顯示針對(duì)對(duì)加密域的訪問(wèn)的認(rèn)證質(zhì)詢(xún)。接收認(rèn)證信息被用于解密用于提供對(duì)加密文件系統(tǒng)的訪問(wèn)的文件系統(tǒng)密鑰。然后,安裝加密文件系統(tǒng),并且啟動(dòng)加密域。
【專(zhuān)利說(shuō)明】
安全認(rèn)證并切換至加密域
技術(shù)領(lǐng)域
[0001]本公開(kāi)一般來(lái)說(shuō)涉及移動(dòng)設(shè)備安全性。更具體地,本公開(kāi)涉及用于移動(dòng)設(shè)備的安全域管理。
【背景技術(shù)】
[0002]在諸如基于Android?、Linux?或任何基于Unix?的操作系統(tǒng)(例如,如iPhone?)的智能手機(jī)、平板電腦和移動(dòng)互聯(lián)網(wǎng)設(shè)備之類(lèi)的移動(dòng)設(shè)備上需要多個(gè)隔離的域,其中駐留在域中的應(yīng)用程序和數(shù)據(jù)與可能由駐留在域外、在網(wǎng)站上、或在同一設(shè)備上的其他域中的應(yīng)用程序產(chǎn)生的安全威脅隔離。這多個(gè)安全域通常會(huì)被單個(gè)用戶、設(shè)備所有者使用以解決與不同的移動(dòng)設(shè)備使用情況關(guān)聯(lián)的變化的訪問(wèn)容易性、私密性和安全性需求。例如,對(duì)于移動(dòng)銀行應(yīng)用和數(shù)據(jù),與游戲應(yīng)用相比,設(shè)備所有者可能具有不同的訪問(wèn)容易性、私密性和安全性要求,或者設(shè)備所有者可能希望與家人或朋友臨時(shí)共享他們?cè)O(shè)備上的某些應(yīng)用程序而不共享諸如個(gè)人郵件、聯(lián)系人和文本消息之類(lèi)的其他應(yīng)用程序和數(shù)據(jù)。此外,存在不同的域由不同的實(shí)體(諸如設(shè)備所有者或諸如機(jī)構(gòu)或公司的外部團(tuán)體)管理的需求,其中每個(gè)實(shí)體可能對(duì)訪問(wèn)和使用他們所管理的域中的應(yīng)用程序和數(shù)據(jù)有不同的安全性要求。例如,對(duì)于在每個(gè)域內(nèi)允許的各個(gè)應(yīng)用程序,以及應(yīng)用程序可以在一域內(nèi)執(zhí)行需依據(jù)的條件(每一種條件都可能需要由對(duì)域進(jìn)行管理的實(shí)體針對(duì)每個(gè)域可唯一配置),各個(gè)域之間的要求可能不同。還存在支持依賴(lài)于域中包含的應(yīng)用程序和數(shù)據(jù)的類(lèi)型的、進(jìn)入不同域所需要的不同用戶認(rèn)證機(jī)制、不同重認(rèn)證時(shí)間幀(或者,可選的不要認(rèn)證)的需求(例如,設(shè)備所有者可能不希望輸入密碼來(lái)玩游戲或者訪問(wèn)Google?地圖,但他們可能希望具有強(qiáng)有力的認(rèn)證來(lái)訪問(wèn)移動(dòng)銀行應(yīng)用)。
[0003]移動(dòng)設(shè)備安全性和域隔離的技術(shù)的當(dāng)前狀態(tài)已經(jīng)使用了傳統(tǒng)個(gè)人計(jì)算機(jī)(PC)和服務(wù)器計(jì)算安全技術(shù),諸如用戶賬戶、管理程序/虛擬化、應(yīng)用程序包裝和反病毒掃描。然而,移動(dòng)設(shè)備的典型使用實(shí)質(zhì)上與這些傳統(tǒng)環(huán)境不同。本質(zhì)上,移動(dòng)設(shè)備是移動(dòng)的,并且通常與設(shè)備所有者一起移動(dòng)。它們聯(lián)網(wǎng),總是開(kāi)啟,并且需要對(duì)短周期任務(wù)的快速訪問(wèn)。它們以實(shí)質(zhì)上與傳統(tǒng)工作站和主機(jī)共享不同的方式共享。功耗也是移動(dòng)設(shè)備的關(guān)鍵,這是耗電的病毒掃描和虛擬化技術(shù)還沒(méi)有在移動(dòng)設(shè)備上得到廣泛使用的一個(gè)原因。
[0004]—個(gè)傳統(tǒng)的域隔離方法是在設(shè)備上創(chuàng)建獨(dú)立的用戶賬戶,憑借該賬戶,每個(gè)用戶必須登錄到已為該用戶配置的賬戶。依賴(lài)于操作系統(tǒng)(OS),這可以強(qiáng)迫另一個(gè)用戶被注銷(xiāo)。這個(gè)方法支持單個(gè)設(shè)備上的多個(gè)用戶,并且隔開(kāi)或隔離每個(gè)用戶的應(yīng)用程序數(shù)據(jù)。全部用戶利用相同的操作系統(tǒng),并且全部用戶具有相同的用戶界面特征。安裝的應(yīng)用程序可由全部用戶訪問(wèn),這是存儲(chǔ)器和中央處理單元(CPU)資源的有效使用。這還允許用戶將他們的賬戶配置有他們希望的外觀和感覺(jué)。
[0005]雖然用戶賬戶提供數(shù)據(jù)隔離以及在不同用戶賬戶間使用相同應(yīng)用程序和OS的功效,但是這個(gè)方法有以下局限性。其提供對(duì)設(shè)備全有或全無(wú)的訪問(wèn),而沒(méi)有臨時(shí)訪問(wèn)的靈活性?!皝?lái)賓”用戶賬戶可以被建立為具有有限訪問(wèn),但是這不利于與移動(dòng)設(shè)備(例如,與家人或朋友)進(jìn)行普通的自發(fā)共享。用戶賬戶在被認(rèn)為是個(gè)人設(shè)備的移動(dòng)設(shè)備上通常不可用。用戶仍舊必須在每個(gè)用戶賬戶之間切換,這不反映人們希望使用他們的移動(dòng)設(shè)備的方式。在切換用戶賬戶時(shí),用戶必須登錄,這使這個(gè)方法更不方便,因?yàn)樵诰哂卸鄠€(gè)用戶賬戶的第一用戶和第二用戶之間不存在隱含關(guān)系。通常不存在使得在切換域時(shí)不總是需要登錄的不活動(dòng)定時(shí)器或類(lèi)似的機(jī)制。用戶(賬戶)之間的隔離處于用戶空間,或者處于應(yīng)用程序級(jí),并且由OS實(shí)施。具有管理員或root訪問(wèn)的任一個(gè)或任意軟件,包括惡意軟件,都可以訪問(wèn)全部用戶的數(shù)據(jù)。一些系統(tǒng)確實(shí)使一些用戶數(shù)據(jù)能夠加密以有助于緩解這個(gè)攻擊,但是通常用戶數(shù)據(jù)仍然十分脆弱,并且任意內(nèi)核級(jí)利用或處理都可以修改應(yīng)用程序、進(jìn)程、攔截?cái)?shù)據(jù)并訪問(wèn)其所期望的任意文件/對(duì)象。
[0006]此外,在大型計(jì)算機(jī)時(shí)代開(kāi)發(fā)并類(lèi)似地?cái)U(kuò)展到臺(tái)式機(jī)的傳統(tǒng)用戶賬戶,不能在諸如智能手機(jī)的真正個(gè)人設(shè)備上很好地工作。移動(dòng)設(shè)備以與大型機(jī)或臺(tái)式機(jī)不同的方式共享。設(shè)備所有者和用戶越來(lái)越希望具有傳統(tǒng)屏鎖或者對(duì)移動(dòng)設(shè)備的“全有或全無(wú)”的訪問(wèn)控制機(jī)制的替代。例如,設(shè)備所有者希望具有被頻繁訪問(wèn)且在不需要用戶認(rèn)證的域中不包含敏感信息的應(yīng)用程序;這與對(duì)個(gè)人受保護(hù)域或工作受保護(hù)域的需求不同。在這些應(yīng)用程序和數(shù)據(jù)的安全性不被用戶認(rèn)為很重要(例如,天氣或?qū)Ш?時(shí),這種開(kāi)放的、共享的或公共域的主要目的是易于使用和快速訪問(wèn)。就這一點(diǎn)來(lái)說(shuō),用戶不想在每次訪問(wèn)這種開(kāi)放域時(shí)都輸入密碼或PIN。此外,這種開(kāi)放域可以包括可能比用戶或域所有者在他們的受保護(hù)域中可以允許的那些應(yīng)用程序更不可靠的應(yīng)用程序。例如,安卓(Android)上的許多應(yīng)用程序被人熟知的是訪問(wèn)聯(lián)系人數(shù)據(jù)庫(kù)。最后,雖然在安裝時(shí)間期間這種權(quán)限必須被授予以實(shí)現(xiàn)應(yīng)用程序的安裝,但是許多用戶不會(huì)嚴(yán)密檢查和理解授予這種權(quán)限的含義。
[0007]現(xiàn)在結(jié)合圖1A至圖1D描述其他傳統(tǒng)的域隔離方法。
[0008]本領(lǐng)域眾所周知,且如圖1A所示,諸如實(shí)施操作系統(tǒng)的移動(dòng)設(shè)備之類(lèi)的計(jì)算設(shè)備可以被理解為包括:硬件、包括內(nèi)核和中間件的操作系統(tǒng)以及應(yīng)用程序空間(或用戶空間)。內(nèi)核管理并提供輸入/輸出(I/O)服務(wù)至軟件應(yīng)用程序供其訪問(wèn)硬件,并且中間件向軟件應(yīng)用程序提供除內(nèi)核提供的那些之外的服務(wù)。
[0009]圖1B和圖1C中示出的一個(gè)傳統(tǒng)域隔離方法采用基于管理程序的虛擬化或虛擬機(jī)。使用虛擬機(jī),操作系統(tǒng)一定程度地被復(fù)制以提供不同的隔離的域。依賴(lài)于管理程序,存在不同類(lèi)型的虛擬機(jī)。圖1B示出的類(lèi)型1(或裸機(jī))管理程序直接在設(shè)備CPU( “裸機(jī)”)上運(yùn)行,并通過(guò)針對(duì)每個(gè)域支持完整且獨(dú)立的操作系統(tǒng)的去特權(quán)實(shí)例來(lái)提供域隔離。隔離只依賴(lài)于管理程序。圖1C中示出的類(lèi)型2管理程序是另一種虛擬化方法,其中第二來(lái)賓OS在主機(jī)OS上運(yùn)行。還存在其他混合操作系統(tǒng)級(jí)虛擬化方法。
[0010]基于管理程序的虛擬化提供域之間的隔離,但有以下局限性。OS和應(yīng)用程序的復(fù)制意味著在設(shè)備存儲(chǔ)器、CPU和功耗方面存在顯著的設(shè)備開(kāi)銷(xiāo)。管理程序方案的高資源需求使得多個(gè)域的支持不切實(shí)際。雖然在被管理程序支持的情況下一些交叉域數(shù)據(jù)共享通過(guò)專(zhuān)門(mén)消息傳送服務(wù)進(jìn)行,但數(shù)據(jù)、應(yīng)用程序共享和進(jìn)程間通信(IPC)通常是不可能的。每個(gè)OS被暴露于可以破壞域之間的隔離的內(nèi)核層惡意軟件。用戶必須在域之間來(lái)回切換(例如,從個(gè)人應(yīng)用切換至工作應(yīng)用),這不反映人們希望使用他們的移動(dòng)設(shè)備的方式。將類(lèi)型I或類(lèi)型2管理程序整合到移動(dòng)設(shè)備上的時(shí)間和開(kāi)銷(xiāo)非常高,使得這種方法對(duì)低成本移動(dòng)設(shè)備來(lái)說(shuō)不可行。在域之間切換的性能影響很高。最后,不管這些方案支持什么,用戶賬戶和用戶認(rèn)證都是被每個(gè)OS提供,這是傳統(tǒng)的全有或全無(wú)的訪問(wèn)。
[0011]圖1D中示出的用于移動(dòng)設(shè)備上的域隔離的第三傳統(tǒng)方法涉及應(yīng)用程序級(jí)的容器化。在這種情況下,應(yīng)用程序容器(或域)共享相同的硬件和OS,但是使用容器化或包裝技術(shù)作為容器中的應(yīng)用程序與OS之間的代理。這通過(guò)提供間接層來(lái)創(chuàng)建多個(gè)獨(dú)立的域,以使較低級(jí)設(shè)備資源、存儲(chǔ)器和文件系統(tǒng)可以被透明地映射為應(yīng)當(dāng)只被容器或域中的應(yīng)用程序訪問(wèn)的較高級(jí)資源。在移動(dòng)設(shè)備資源的消耗方面,容器化是相對(duì)有效的,特別是與虛擬化相比,因?yàn)殡m然應(yīng)用程序通常在容器內(nèi)和容器外被復(fù)制(例如,可以被用于容器內(nèi)的工作和容器外的個(gè)人使用的電子郵件應(yīng)用),但只存在一個(gè)版本的OS。作為應(yīng)用程序級(jí)方案,容器方案具有非常實(shí)際的益處,因?yàn)槠淇梢员幌螺d到已經(jīng)在實(shí)際應(yīng)用中的設(shè)備(例如,逆向兼容性)。
[0012]在容器化中,全部安全性和全部實(shí)施都圍繞著包含應(yīng)用程序的容器包裝。這樣,下載所包含的應(yīng)用程序的任何人不僅接收應(yīng)用程序,而且接收與該應(yīng)用程序關(guān)聯(lián)的全部安全性信息。使用容器化,惡意的個(gè)人仍然可能:(I)對(duì)安全性策略進(jìn)行逆向工程;或(2)在諸如可以從其中提取信息的仿真器上的環(huán)境中執(zhí)行應(yīng)用程序。
[0013]然而,應(yīng)用程序級(jí)容器化作為域隔離方法有以下局限性。從安全性角度看,對(duì)于具有一些基本技能的黑客或駐留在設(shè)備上的惡意軟件來(lái)說(shuō),攔截容器和OS之間的調(diào)用以打破隔離并捕獲數(shù)據(jù)和個(gè)人信息是相對(duì)容易的。容器化不在操作系統(tǒng)或內(nèi)核中實(shí)施,而是被暴露至可能存在于設(shè)備上的惡意軟件。例如,如果操作系統(tǒng)是Linux或Android并且攻擊者獲得root訪問(wèn)特權(quán),則從RAM提取域數(shù)據(jù)或其他關(guān)鍵信息(例如,用于訪問(wèn)域的密碼,或用于加密域中的數(shù)據(jù)的密鑰)很容易,或者對(duì)于這種內(nèi)核層惡意軟件來(lái)說(shuō),對(duì)諸如麥克風(fēng)或幀緩存器的I/O驅(qū)動(dòng)器進(jìn)行竊聽(tīng)很容易。容器隔離被容器“包裝”的應(yīng)用程序和數(shù)據(jù),但是不限制不在容器中的其他應(yīng)用程序訪問(wèn)存儲(chǔ)器、文件或網(wǎng)絡(luò)等。在各個(gè)域之間共享單個(gè)應(yīng)用程序圖像是不可能的,并且這種技術(shù)不允許同一應(yīng)用程序既在容器內(nèi)又在容器外。結(jié)果,容器通常只支持已經(jīng)被修改為容器的預(yù)定應(yīng)用程序,諸如電子郵件、消息傳送、瀏覽、聯(lián)系人、日歷等。這不提供用戶或公司IT部門(mén)希望的應(yīng)用程序選擇。普通應(yīng)用程序必須被修改為支持容器,這復(fù)制設(shè)備上的存儲(chǔ)空間和存儲(chǔ)器,并增加應(yīng)用程序開(kāi)發(fā)者的工作和介入。私人應(yīng)用商店經(jīng)常必須專(zhuān)門(mén)針對(duì)容器方案來(lái)創(chuàng)建,這增加了供應(yīng)商方案的鎖定并需要應(yīng)用程序開(kāi)發(fā)者的介入,進(jìn)一步限制了選擇。使用應(yīng)用程序包裝方法,可執(zhí)行代碼可能需要使用控制數(shù)據(jù)如何被存儲(chǔ)、共享和傳輸?shù)陌踩詭?kù)來(lái)打補(bǔ)丁。這引入了許可證和版權(quán)問(wèn)題,因?yàn)樵S可證通常不會(huì)授權(quán)被許可人修改應(yīng)用程序。用戶必須仍然在域或容器之間來(lái)回切換,這不反映人們使用他們的移動(dòng)設(shè)備的方式。最后,域通常具有其自身的預(yù)定用戶界面,這不同于本地OS用戶體驗(yàn),并且不可能被設(shè)備用戶定制。
[0014]域隔離的又一個(gè)方法是設(shè)備操作系統(tǒng)中的內(nèi)核級(jí)平臺(tái)安全性方法,諸如安全增強(qiáng)式LinuxTYSELiniD^hSELinux為應(yīng)用程序和用戶提供對(duì)諸如文件的對(duì)象和資源的強(qiáng)制訪問(wèn)控制(MAC)。每個(gè)用戶或應(yīng)用程序被賦予安全標(biāo)簽,并且策略可以被賦給全部標(biāo)簽。雖然Android?不以這種方式使用用戶標(biāo)識(shí)符,但SELinux可以被用于與域切換機(jī)制聯(lián)合的基于角色的訪問(wèn)控制。SELinux使用依靠Linux中的Linux安全模塊(LSM)界面的特定內(nèi)核模塊,以基于安全策略實(shí)施進(jìn)程之間的隔離。在加載之前,應(yīng)用程序可以針對(duì)SELinux策略進(jìn)行驗(yàn)證,并且全部進(jìn)程可以被限制為預(yù)定訪問(wèn),以使一個(gè)應(yīng)用程序在不被策略允許的情況下不能啟動(dòng)或訪問(wèn)另一個(gè)進(jìn)程、目錄或數(shù)據(jù)。使用正確的策略機(jī)制,可以防止應(yīng)用程序、惡意軟件甚至內(nèi)核root包訪問(wèn)屬于另一個(gè)用戶或應(yīng)用程序的應(yīng)用程序和數(shù)據(jù)。
[0015]雖然與容器和虛擬化方法相比,本地OS方案在安全性、性能和應(yīng)用程序隔離方面具有許多優(yōu)點(diǎn),但其具有內(nèi)核沒(méi)有對(duì)中間件級(jí)的足夠可見(jiàn)性以能夠?qū)嵤┲虚g件級(jí)所需要的域隔離的缺陷。
[0016]此外,內(nèi)核級(jí)平臺(tái)安全性作為域隔離方法有以下局限性。這種內(nèi)核模塊方法沒(méi)有任何用戶界面或域的概念,但是通常使用現(xiàn)有的傳統(tǒng)用戶賬戶,包括允許具有橫跨全部域的特權(quán)的root賬戶或管理員賬戶。在這個(gè)方法中使用的內(nèi)核模塊在操作系統(tǒng)中是非常低的,并且不具備細(xì)分的、應(yīng)用程序特定的信息以提供為滿足客戶和公司在移動(dòng)設(shè)備上使用隔離域的需求而需要的策略控制(例如,域的用戶認(rèn)證策略)和應(yīng)用程序控制(例如,將應(yīng)用程序限制到某些域)的類(lèi)型。到中間件的擴(kuò)展SELinux型策略語(yǔ)言和實(shí)施顯著增加了方案的復(fù)雜性。這種策略通常是靜態(tài)且不更新的。已經(jīng)存在提供SELinux的遠(yuǎn)程策略更新的項(xiàng)目,但是策略應(yīng)用到整個(gè)設(shè)備,并且對(duì)于每個(gè)域不是唯一的。例如Android上的進(jìn)程間通信(IPC)難于監(jiān)控,因?yàn)闄?quán)限檢查和調(diào)用者/被調(diào)用者檢查在Android中間件中執(zhí)行,并且內(nèi)核不訪問(wèn)足夠的信息以監(jiān)控和控制域之間的IPC。最后,通常不具有對(duì)用戶和應(yīng)用程序訪問(wèn)的細(xì)分的足夠控制以限定域之間的數(shù)據(jù)共享,這帶來(lái)了數(shù)據(jù)泄露的問(wèn)題,數(shù)據(jù)泄露對(duì)于某些類(lèi)型的數(shù)據(jù)是不可接受的。雖然這對(duì)于一些共享應(yīng)用程序(例如,相機(jī)和相冊(cè))來(lái)說(shuō)可能是可接受的,但對(duì)于文件和不可能使用內(nèi)核級(jí)方案的文件閱讀器應(yīng)用程序(例如,Pdf查看器)來(lái)說(shuō)需要更高程度的粒度。
[0017]提供安全性的另一個(gè)傳統(tǒng)方法是加密文件系統(tǒng),諸如密碼堆疊文件系統(tǒng)。例如,企業(yè)加密(eCryptFS)文件系統(tǒng)(http://ecryptf s.0rg)是針對(duì)Linux的POSIX兼容的企業(yè)密碼堆疊文件系統(tǒng)。然而,加密文件系統(tǒng)不是用于提供多個(gè)域的適用手段。
[0018]因此,希望提供用于在移動(dòng)設(shè)備上創(chuàng)建多個(gè)域的手段,其中駐留在域中的應(yīng)用程序和數(shù)據(jù)與可能由駐留在網(wǎng)站上域外部或同一設(shè)備上的另一個(gè)域中的應(yīng)用程序?qū)е碌陌踩{隔離,并且上述手段減輕上面描述的傳統(tǒng)方法中每一個(gè)的一個(gè)或多個(gè)缺點(diǎn),提供優(yōu)于這些傳統(tǒng)方法的優(yōu)點(diǎn),或提供這些傳統(tǒng)方法的替代。
【附圖說(shuō)明】
[0019]現(xiàn)在結(jié)合附圖,僅通過(guò)示例的方式,描述本公開(kāi)的實(shí)施例。
[0020]圖1A、1B、IC和ID示出圖解操作系統(tǒng)結(jié)構(gòu)和用于域隔離的傳統(tǒng)方法的框圖。
[0021]圖2示出圖解用于提供隔離的域的本發(fā)明系統(tǒng)的框圖。
[0022]圖3示出圖解多個(gè)用戶賬戶和多個(gè)域的實(shí)施方式的示意圖。
[0023]圖4示出圖解從第一域切換至第二域的方法的框圖。
[0024]圖5示出圖解域消息傳送方法的框圖。
[0025]圖6示出圖解交叉域執(zhí)行方法的框圖。
[0026]圖7示出圖解域應(yīng)用程序安裝方法的框圖。
[0027]圖8示出圖解更新策略方法的框圖。
[0028]圖9示出圖解從當(dāng)前域切換至另一個(gè)域的方法的框圖。
[0029]圖10示出圖解從當(dāng)前域切換到不在運(yùn)行的、被加密的并需要訪問(wèn)認(rèn)證的目標(biāo)域的方法的框圖。
【具體實(shí)施方式】
[0030]這里公開(kāi)的方案為移動(dòng)設(shè)備提供靈活、有效并安全的隔離域以及這些域的管理,并且減少上面描述的傳統(tǒng)方法中的每一個(gè)的一個(gè)或多個(gè)缺點(diǎn),提供優(yōu)于這些傳統(tǒng)方法的優(yōu)點(diǎn),或者提供這些傳統(tǒng)方法的替代。具體來(lái)說(shuō),該方案提供切換至加密域的安全方法。
[0031]以下因素與克服傳統(tǒng)方法的上述缺點(diǎn)的方案有關(guān)。首先,近年來(lái)已經(jīng)從主要對(duì)移動(dòng)電話和SMS(短消息服務(wù))的移動(dòng)設(shè)備使用轉(zhuǎn)移至用于網(wǎng)站瀏覽、社交網(wǎng)絡(luò)、游戲、電子郵件,即時(shí)通訊、基于位置的服務(wù)和移動(dòng)商務(wù)的移動(dòng)設(shè)備使用。使用經(jīng)由服務(wù)提供者和WiFi的廣泛互聯(lián)網(wǎng)連接,移動(dòng)計(jì)算通常被聯(lián)網(wǎng)并真正具有移動(dòng)性。此外,由于應(yīng)用程序和包括諸如相機(jī)、GPS、加速度計(jì)、氣壓計(jì)等的傳感器的設(shè)備的性能的激增,移動(dòng)設(shè)備存在更多不同的用法。它們被用于娛樂(lè)、社交網(wǎng)絡(luò)、相機(jī)/視頻、導(dǎo)航、兩個(gè)人訪問(wèn)云服務(wù)(例如,照片共享)或針對(duì)工作(例如,企業(yè)CRM系統(tǒng))訪問(wèn)云服務(wù)或者組合(例如,諸如Drop Box的文件共享),加上通過(guò)IP或傳統(tǒng)電話網(wǎng)絡(luò)源于文本、聊天、電子郵件和聲音的許多形式的消息傳送。同樣,隨著能力、連接性以及這些移動(dòng)設(shè)備上應(yīng)用程序數(shù)目的增加,用戶在這些設(shè)備上越來(lái)越多地存儲(chǔ)并追蹤更多的敏感信息(例如,個(gè)人數(shù)據(jù)、證書(shū)、密鑰、信用卡號(hào)碼、密碼、聯(lián)系人、過(guò)去位置、當(dāng)前位置、網(wǎng)上沖浪歷史、所安裝的應(yīng)用程序和設(shè)備的當(dāng)前狀態(tài)(例如,未移動(dòng))等)。這種敏感信息經(jīng)常是惡意用戶和惡意軟件的目標(biāo)。此外,因?yàn)橐苿?dòng)設(shè)備由人攜帶,并且由于它們的擴(kuò)展性能,所以希望能夠快速地訪問(wèn)這些設(shè)備,以進(jìn)行快速回復(fù)、快速網(wǎng)上搜索等。傳統(tǒng)設(shè)備鎖的使用產(chǎn)生了不便。例如,用戶可能不希望輸入密碼來(lái)解鎖設(shè)備以便查找字典中的詞。此外,移動(dòng)設(shè)備經(jīng)常被共享(或者,希望被共享),例如用于臨時(shí)目的,諸如打電話、讓家人玩游戲,或者在設(shè)備所有者開(kāi)車(chē)時(shí)進(jìn)行車(chē)輛導(dǎo)航。這與傳統(tǒng)計(jì)算或服務(wù)器環(huán)境中的傳統(tǒng)用戶賬戶存在很大不同,在傳統(tǒng)計(jì)算或服務(wù)器環(huán)境中,一個(gè)設(shè)備或服務(wù)被在多個(gè)人之間共享,但是用戶事先知道,并且這種共享使用趨向于以持續(xù)和定期為基礎(chǔ)。此外,與筆記本電腦或PC相比,由于移動(dòng)設(shè)備的較小形式因素以及使用的頻率和位置,移動(dòng)設(shè)備更頻繁地丟失或被偷,因此可能落入攻擊者的手中。許多用戶和企業(yè)需要遠(yuǎn)程鎖定、定位和/或“抹掉”(從設(shè)備刪除全部應(yīng)用程序和數(shù)據(jù))丟失或被偷的移動(dòng)設(shè)備的手段,包括一些國(guó)家的智會(huì)K手機(jī)反竊法規(guī)(http: //www.ctia.0rg/policy-1nitiatives/voluntary-guide lines/smartphone-ant1-theft-vol untary-commitment)。此外,普遍的是,員工在公司環(huán)境中對(duì)于個(gè)人和工作都使用一個(gè)設(shè)備。這是另一種形式的共享一一只共享硬件和網(wǎng)絡(luò)服務(wù)一一其中安全性、私密性和數(shù)據(jù)隔離需求更高,因?yàn)楣鞠M麚碛胁⒖刂乒ぷ鲾?shù)據(jù)的散播(例如,特別是在員工解約的情況下),并且用戶可能具有他不想要與雇主共享的私人數(shù)據(jù)。在許多情況下,相同的應(yīng)用程序可以被用于個(gè)人和公司使用兩者一一因?yàn)檫@提高了生產(chǎn)力一一但是,應(yīng)用程序數(shù)據(jù)必須被隔離,以使在不會(huì)影響個(gè)人數(shù)據(jù)的情況下可以刪除(抹掉)公司數(shù)據(jù),或反之亦然。此外,因?yàn)樵O(shè)備性能、敏感信息、共享和雙重使用,越來(lái)越需要私密且靈活的訪問(wèn)控制。通知經(jīng)常顯示設(shè)備所有者通常不想要任何人看到或訪問(wèn)的敏感個(gè)人信息(聊天信息、軟件升級(jí)、廣告)。用戶想要靈活地借出他們的設(shè)備,但是想要將訪問(wèn)限制到諸如只讀、只接收電話呼叫或某些賬戶(例如,F(xiàn)acebook)之類(lèi)的某些功能和/或服務(wù)。許多用戶面對(duì)在全有或全無(wú)的設(shè)備鎖的不夠理想的替代之間進(jìn)行選擇,而完全不能確保設(shè)備的安全。最后,移動(dòng)設(shè)備實(shí)質(zhì)上比PC連接到更多網(wǎng)絡(luò)(例如,飯店、賓館和機(jī)場(chǎng)的WiFi網(wǎng)絡(luò)),這會(huì)將這些設(shè)備暴露至更多的基于網(wǎng)絡(luò)的攻擊、入侵和數(shù)據(jù)包捕獲)。此外,移動(dòng)設(shè)備用戶可以訪問(wèn)使用戶能夠下載可能包含惡意軟件的應(yīng)用程序的第三方應(yīng)用商店。例如,基于Android操作系統(tǒng)的移動(dòng)設(shè)備現(xiàn)在占作為惡意軟件的目標(biāo)的移動(dòng)設(shè)備的超過(guò)90%。
[0032]“±或”在這里可以被認(rèn)為代表一組資源一一例如數(shù)據(jù)文件、應(yīng)用程序和服務(wù)一一與規(guī)則組或“策略”之間的關(guān)系,由此進(jìn)程對(duì)資源的訪問(wèn)至少部分被策略控制。例如,特定域可以被認(rèn)為包括或包含與該域關(guān)聯(lián)的許多數(shù)據(jù)文件,并且對(duì)數(shù)據(jù)文件的訪問(wèn)至少部分被與該域關(guān)聯(lián)限定的策略控制。類(lèi)似地,應(yīng)用程序可以被安裝在特定域或與特定域關(guān)聯(lián),并且對(duì)該應(yīng)用程序(包括執(zhí)行應(yīng)用程序的能力)的訪問(wèn)例如至少部分被與該域關(guān)聯(lián)限定的策略控制。
[0033]例如,希望在單用戶設(shè)備中能夠提供多個(gè)域,多個(gè)域具有對(duì)選擇的應(yīng)用程序和其他資源提供不同訪問(wèn)的不同策略。在一種情況下,希望提供需要認(rèn)證并包含不打算讓兒童訪問(wèn)的數(shù)據(jù)或應(yīng)用程序的受限域,以及不需要認(rèn)證而打算讓兒童訪問(wèn)(以例如玩游戲)的兒童模式域。因此,在開(kāi)放域中操作時(shí),希望受限域的數(shù)據(jù)或應(yīng)用程序?qū)τ谂c該開(kāi)放域關(guān)聯(lián)的進(jìn)程不可訪問(wèn)。
[0034]如上面討論,域的期望功能中的一些可以由通常在多用戶操作系統(tǒng)中實(shí)現(xiàn)的傳統(tǒng)用戶賬戶提供。由于除了別的之外用戶賬戶代表一組資源(例如,用戶的數(shù)據(jù)文件、應(yīng)用程序)和與那個(gè)用戶賬戶關(guān)聯(lián)的控制對(duì)用戶資源的訪問(wèn)的規(guī)則組或策略(例如,權(quán)限、特權(quán)),所以這些用戶賬戶可以被認(rèn)為構(gòu)成一種類(lèi)型的域。
[0035]然而,對(duì)于提供不同域資源的安全隔離的益處以及移動(dòng)設(shè)備上方便且統(tǒng)一的單用戶體驗(yàn)來(lái)說(shuō),傳統(tǒng)用戶賬戶不是適當(dāng)?shù)氖侄?。除了上面的期望功能,提供希望的體驗(yàn)還需要同時(shí)執(zhí)行涉及兩個(gè)域的動(dòng)作的能力,例如從一個(gè)域復(fù)制并粘貼至另一個(gè)域,提供用于同時(shí)訪問(wèn)多個(gè)域的資源的單個(gè)用戶界面,或者從在第一域中操作的郵件客戶端開(kāi)放與第二域關(guān)聯(lián)的電子郵件。傳統(tǒng)的用戶賬戶不打算使能這些功能,因?yàn)橥ǔ1患稍诓僮飨到y(tǒng)服務(wù)中并且在邏輯上遵從不同用戶賬戶打算被不同人使用的假設(shè)的用戶隔離控制,不允許或不輕易使能為了使能期望功能而需要的不同域的進(jìn)程和資源的即時(shí)共享和合作,其中各個(gè)域被個(gè)人同時(shí)使用。
[0036]雖然如上面討論諸如虛擬化和容器化的替代性隔離機(jī)制不會(huì)以與用戶賬戶相同的方式受限,但它們?cè)馐苋缟厦嫠懻摰牟煌秉c(diǎn)。因此,希望提供隔離的域管理作為操作系統(tǒng)的集成方面。并且,雖然如上面討論的一些期望功能可以借助于駐留在操作系統(tǒng)內(nèi)核中的服務(wù)來(lái)提供,但當(dāng)前操作系統(tǒng)內(nèi)核通常不使能或允許足以提供同時(shí)涉及多個(gè)域的動(dòng)作所需要的進(jìn)程共享和合作的域信號(hào)發(fā)送和域管理。
[0037]這樣,所公開(kāi)的方案經(jīng)由對(duì)操作系統(tǒng)的現(xiàn)有部件或服務(wù)的修改或新部件或服務(wù)的引入來(lái)提供域感知。在一些實(shí)施例中,部件和服務(wù)中的至少一些被提供在內(nèi)核外部的操作系統(tǒng)中,也就是在中間件中(這里用于表示內(nèi)核外部且在內(nèi)核與用戶應(yīng)用程序之間的操作系統(tǒng))。在一些實(shí)施例中,部件和服務(wù)中的至少一些被提供在操作系統(tǒng)內(nèi)核中。在一些實(shí)施例中,域的創(chuàng)建和管理通過(guò)操作系統(tǒng)中間件的修改的或新的部件或服務(wù)而被使能,并且域?qū)嵤┯刹僮飨到y(tǒng)內(nèi)核執(zhí)行,并且為此目的提供修改的或新的內(nèi)核模塊或內(nèi)核修改。
[0038]在一個(gè)或多個(gè)域被加密時(shí),希望以不危害期望的加密域隔離的方式提供從當(dāng)前域切換至加密域的方法。
[0039]因此,在一個(gè)實(shí)施例中,在包括處理器和用于存儲(chǔ)可被處理器執(zhí)行(以實(shí)施提供包括當(dāng)前域和目標(biāo)域的多個(gè)域的操作系統(tǒng))的指令的存儲(chǔ)器的設(shè)備中,其中目標(biāo)域至少部分存儲(chǔ)在加密文件系統(tǒng)中,其中對(duì)目標(biāo)域的訪問(wèn)需要對(duì)加密文件系統(tǒng)的認(rèn)證和訪問(wèn),從當(dāng)前域切換至目標(biāo)域的方法可以被執(zhí)行如下。提供與當(dāng)前域和目標(biāo)域不同的中間域。接收切換至目標(biāo)域的請(qǐng)求。確定目標(biāo)域未在運(yùn)行,至少部分存儲(chǔ)在加密文件系統(tǒng)中,并且需要對(duì)訪問(wèn)的認(rèn)證。切換至中間域。用于訪問(wèn)目標(biāo)域的認(rèn)證質(zhì)詢(xún)被顯示在中間域中。接收響應(yīng)于認(rèn)證質(zhì)詢(xún)的認(rèn)證信息。基于認(rèn)證信息,解密用于提供對(duì)加密文件系統(tǒng)的訪問(wèn)的文件系統(tǒng)密鑰?;谖募到y(tǒng)密鑰,提供對(duì)加密文件系統(tǒng)的訪問(wèn)。最后,安裝加密文件系統(tǒng)。
[0040]現(xiàn)在結(jié)合圖2描述用于提供隔離域的示例性系統(tǒng)100。
[0041 ]該系統(tǒng)可以被實(shí)施在包括諸如智能手機(jī)、平板電腦、筆記本電腦或臺(tái)式機(jī)或具有易失性存儲(chǔ)器和處理器的任何其他電子設(shè)備之類(lèi)的移動(dòng)設(shè)備的任何計(jì)算設(shè)備中,易失性存儲(chǔ)器包含可被處理器執(zhí)行以提供操作系統(tǒng)和軟件應(yīng)用程序(或“應(yīng)用程序”或“應(yīng)用”)的計(jì)算機(jī)代碼。計(jì)算設(shè)備可以進(jìn)一步包括接口,該接口可以包括用戶輸入設(shè)備,諸如鍵盤(pán)、指示設(shè)備、觸摸屏,并且計(jì)算設(shè)備可以進(jìn)一步包括用于通過(guò)有線或無(wú)線通信網(wǎng)絡(luò)進(jìn)行通信的諸如音頻和關(guān)聯(lián)控制電路之類(lèi)的通信接口,其中有線或無(wú)線通信網(wǎng)絡(luò)可以是因特網(wǎng)和/或蜂窩式或WiFi鏈路或藍(lán)牙,或近場(chǎng)通信(NFC)。
[0042]操作系統(tǒng)可以被特征化為包括內(nèi)核和中間件,內(nèi)核對(duì)輸入/輸出(I/O)服務(wù)進(jìn)行管理,并且從設(shè)備的處理器和其他硬件部件向軟件應(yīng)用程序提供輸入/輸出(I/O)服務(wù),中間件提供除了內(nèi)核所提供的那些服務(wù)之外的服務(wù)。
[0043]通常,本方案包括修改操作系統(tǒng)級(jí)協(xié)議以使能域感知。多個(gè)域被創(chuàng)建在移動(dòng)設(shè)備上。在此后描述的實(shí)施例中,操作系統(tǒng)是Android?,雖然這種選擇不應(yīng)當(dāng)被認(rèn)為是限制方案的預(yù)期范圍。Android僅被用作示例,并且類(lèi)似于其他多用戶操作系統(tǒng)(例如,QNX、Windows)。
[0044]因此,如圖2所示,系統(tǒng)100包括內(nèi)核,在系統(tǒng)100被實(shí)施在運(yùn)行Android?操作系統(tǒng)的移動(dòng)設(shè)備中時(shí),該內(nèi)核是Linux?內(nèi)核110。核100包括:安全數(shù)據(jù)存儲(chǔ)112、域內(nèi)核模塊116和Linux安全模塊114,在一個(gè)實(shí)施例中,Linux安全模塊114是增強(qiáng)Linux安全模塊,下面會(huì)進(jìn)一步描述實(shí)施Linux安全模塊的相應(yīng)功能。對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以理解的是內(nèi)核110可以進(jìn)一步具有另外的傳統(tǒng)部件(例如,驅(qū)動(dòng)器),或與前面的描述不同的其他部件。
[0045]系統(tǒng)100進(jìn)一步包括操作系統(tǒng)中間件120,操作系統(tǒng)中間件120包括:域消息服務(wù)122、域管理器124、域策略服務(wù)126、用戶管理器128、系統(tǒng)設(shè)置模塊130、密鑰保護(hù)中間器132、活動(dòng)管理器134、包管理器136、以及窗管理器138。用戶管理器128、系統(tǒng)設(shè)置模塊130、密鑰保護(hù)中間器132、活動(dòng)管理器134、包管理器136和窗管理器138對(duì)應(yīng)于并擁有Android?的已知部件或服務(wù)的相應(yīng)功能,但是如以下討論,被修改為能夠感知域。域消息服務(wù)122、域管理器124和域策略服務(wù)126是附加部件,下面討論它們的功能。
[0046]系統(tǒng)100進(jìn)一步包括用于實(shí)施一個(gè)或多個(gè)域的應(yīng)用程序空間140(或用戶空間)。為了說(shuō)明,示出第一域142-1和第二域142-2,但是可以理解的是任意數(shù)目的域可以被實(shí)施。每個(gè)域可以包括域設(shè)置模塊的實(shí)例化,諸如域設(shè)置模塊的第一實(shí)例化144-1和第二實(shí)例化144-2,并且每個(gè)域通常會(huì)包括域?qū)Ш侥K的第一實(shí)例化146-1和第二實(shí)例化146-2以及域管理應(yīng)用程序148-1、148-2。每個(gè)域還可以具有第一應(yīng)用程序的分離的實(shí)例化150-1、150-2,而第一域142-1可以實(shí)例化不同于在第二域142-2中實(shí)例化的第三應(yīng)用程序154的第二應(yīng)用程序152。
[0047]^
[0048]諸如第一域142-1和第二域142-2的域,是保持任意應(yīng)用和分別與這些應(yīng)用關(guān)聯(lián)的數(shù)據(jù)的隔離區(qū)。域可以被遠(yuǎn)程(例如,由企業(yè)信息技術(shù)(IT)管理者)或本地(例如,由設(shè)備所有者)控制以針對(duì)特定域指定應(yīng)用、數(shù)據(jù)、配置、連接和安全策略。例如,來(lái)自特定域的網(wǎng)絡(luò)訪問(wèn)可以被控制。密碼重認(rèn)證時(shí)間可以被控制(例如,以使用戶在特定時(shí)段內(nèi)切換域時(shí)不需要重認(rèn)證)。域的管理員通常具有這種控制。管理員可以是個(gè)人用戶或企業(yè)IT管理者或其他遠(yuǎn)程實(shí)體。
[0049]由于它們的隔離和分離的本質(zhì),這里討論的域可以被認(rèn)為是受保護(hù)的域。例如,如果設(shè)備丟失或被偷,或者如果設(shè)備被設(shè)備所有者下載在另一個(gè)域中的惡意軟件危害,則一個(gè)域可以被不想要其信息和自營(yíng)業(yè)務(wù)應(yīng)用程序被危害的企業(yè)在外部進(jìn)行管理。設(shè)備所有者不想要企業(yè)追蹤它們的偏好、網(wǎng)上沖浪習(xí)慣或個(gè)人通信,因此他也想要他自己的受保護(hù)域。再次,設(shè)備所有者不想對(duì)設(shè)備上所有的應(yīng)用程序和服務(wù)應(yīng)用相同級(jí)別的認(rèn)證,但是能確保受保護(hù)域中的數(shù)據(jù)仍然安全。
[0050]提供多個(gè)域向設(shè)備所有者提供傳統(tǒng)的“全有或全無(wú)”設(shè)備訪問(wèn)控制的替代。使用同時(shí)支持安全域和開(kāi)放域的能力,訪問(wèn)可以被用戶根據(jù)需要而配置不同的注銷(xiāo)時(shí)間和訪問(wèn)控制(例如,PIN、密碼、面部識(shí)別或全無(wú))。這種靈活減小了由于不方便而在設(shè)備上完全不使用任何密碼的可能性,同時(shí)還給予設(shè)備所有者獨(dú)立于遠(yuǎn)程管理員的選擇。
[0051]只通過(guò)示例,圖3示出其中實(shí)施系統(tǒng)100的設(shè)備305被配置有兩個(gè)用戶:用戶A310和用戶B 315的示意圖300,其中三個(gè)域Al 320、A2 325,A3 330被創(chuàng)建為與用戶A關(guān)聯(lián),并且兩個(gè)域BI 335和B2 340被創(chuàng)建為與用戶B關(guān)聯(lián)。如圖所示,域Al的策略可以允許訪問(wèn)選擇的電子郵件賬戶345,而域A2的策略可以允許訪問(wèn)Gmail?賬戶和Facebook?350。
[0052]為了清楚起見(jiàn),實(shí)施系統(tǒng)100的設(shè)備也可以被配置有僅一個(gè)用戶,但是這里所描述的多個(gè)域可以被創(chuàng)建,并且這里還描述的方法和協(xié)議可以與這些多個(gè)域一起被實(shí)施。
[0053]域感知
[0054]域感知可以基于實(shí)施在Unix?和Linux?操作系統(tǒng)中的用戶標(biāo)識(shí)符(UID)和群組標(biāo)識(shí)符(GID)概念而提供。UID和GID在Unix和Linux中用于將權(quán)限賦給進(jìn)程和文件。超級(jí)用戶或root通常被賦予UID 0,并且其他范圍經(jīng)常為系統(tǒng)進(jìn)程預(yù)留。
[0055]然而,在Android?中,UID未被用于表示用戶;相反,每個(gè)應(yīng)用程序在被安裝時(shí),被分配唯一的UID和GID,并且可能被認(rèn)為是應(yīng)用程序標(biāo)識(shí)符的這個(gè)(UID、GID)對(duì)被賦給與該應(yīng)用程序關(guān)聯(lián)的進(jìn)程和數(shù)據(jù)文件。在最新版本的Android? (Android 4.2)中,引入了多用戶能力,該多用戶能力在整個(gè)操作系統(tǒng)中添加信令以指示哪個(gè)用戶賬戶是活動(dòng)的。UID中的某些比特被預(yù)留以表示用戶賬戶,并且因此構(gòu)成用戶標(biāo)識(shí)符。在進(jìn)程被啟動(dòng)時(shí),用戶標(biāo)識(shí)符與在安裝時(shí)賦予應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符組合在一起創(chuàng)建執(zhí)行文本標(biāo)識(shí)符,以表示正在運(yùn)行的進(jìn)程和關(guān)聯(lián)的私密數(shù)據(jù)文件。使用這種信令,應(yīng)用程序數(shù)據(jù)可以基于用戶而獨(dú)立創(chuàng)建并存儲(chǔ)。
[0056]與之前的版本相比較,Androi d?4.2的服務(wù)已被修改為能感知用戶賬戶。例如,并且結(jié)合圖2,Android包管理器136被修改為控制哪些應(yīng)用程序?qū)γ總€(gè)用戶可用。類(lèi)似地,窗管理器138被修改為控制針對(duì)每個(gè)用戶顯示什么,并且活動(dòng)管理器134被修改為針對(duì)每個(gè)用戶控制應(yīng)用程序的啟動(dòng)和權(quán)限的實(shí)施。此外,叫作用戶管理器128的新服務(wù)被添加在Android 4.2中,并操縱用戶之間的創(chuàng)建、認(rèn)證、刪除和切換。
[0057]在本方案的一個(gè)實(shí)施例中,域感知信令機(jī)制被添加至操作系統(tǒng),這類(lèi)似于被添加在AndroidTM4.2中的多用戶能力,同時(shí)現(xiàn)有服務(wù)被修改為變得能感知域。具體來(lái)說(shuō),域信令通過(guò)擴(kuò)展添加至UID,或者作為新字段的添加,其構(gòu)成域標(biāo)識(shí)符或“DID” WID中的預(yù)定比特被預(yù)留以表示域,并且與在安裝時(shí)賦予應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符組合在一起創(chuàng)建執(zhí)行文本標(biāo)識(shí)符,以表示相對(duì)于該域正在運(yùn)行的進(jìn)程和關(guān)聯(lián)的私密數(shù)據(jù)文件。在一個(gè)實(shí)施例中,包管理器136被配置為維護(hù)安裝的每個(gè)應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符和每個(gè)域之間的關(guān)聯(lián)的列表。然后,執(zhí)行文本標(biāo)識(shí)符基于應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符和應(yīng)用程序被執(zhí)行所在的域的域標(biāo)識(shí)符而針對(duì)進(jìn)程被創(chuàng)建。在一個(gè)實(shí)施例中,UID還具有與特定用戶賬戶關(guān)聯(lián)的預(yù)留比特。這種預(yù)留或擴(kuò)展UID字段以同時(shí)表示域的方法減少了操作系統(tǒng)改變的程度,簡(jiǎn)化了實(shí)施方式,并減少部署的時(shí)間。
[0058]在一個(gè)實(shí)施例中,叫作域管理器124的新服務(wù)被實(shí)施為以下描述的對(duì)域的創(chuàng)建、認(rèn)證和刪除進(jìn)行管理。
[0059]使系統(tǒng)能感知域的替代方法是使用安全標(biāo)簽,諸如SELinux如何識(shí)別不同的資源和對(duì)象。在一些實(shí)施例中,SELinux安全標(biāo)簽可以被用于這種目的。在其他實(shí)施例中,標(biāo)識(shí)域的另一個(gè)標(biāo)簽或參數(shù)被添加。
[0060]域創(chuàng)建
[0061]在一個(gè)實(shí)施例中,用戶管理器128的功能被修改為使能添加新用戶以及還添加域,這可以被認(rèn)為類(lèi)似于單用戶的子賬戶。這樣做使得多個(gè)域能夠與每個(gè)用戶賬戶關(guān)聯(lián)。修改用戶管理器128的功能提供了某些優(yōu)點(diǎn)。例如,在具有多個(gè)用戶的實(shí)施方式(例如,在圖3中示出)中,有利的是域創(chuàng)建與用戶創(chuàng)建被整合在用戶管理器128中。在只具有單用戶的替代實(shí)施例(例如,在不支持多個(gè)用戶賬戶的智能手機(jī)上)中,這種功能可以被實(shí)施在域管理器124 中。
[0062]因此,在一個(gè)實(shí)施例中,用戶管理器128被修改以提供以下中的一個(gè)或多個(gè):(i)在不提示典型登錄屏的情況下,允許在單用戶下的域之間容易地切換;(ii)當(dāng)切換至另一個(gè)域的持續(xù)時(shí)間為在域的策略中指定的時(shí)間段時(shí)保持至該域的登錄;以及(iii)保持各個(gè)域是活動(dòng)的以利于各個(gè)域之間的快速切換。使用附加的域信令,用戶管理器128可以被配置為僅在存在不止一個(gè)用戶賬戶時(shí)請(qǐng)求用戶名。
[0063]在創(chuàng)建新域的情況下,用戶管理器128可以調(diào)用域管理器服務(wù)124。創(chuàng)建新域可以類(lèi)似于創(chuàng)建新用戶,區(qū)別在于所應(yīng)用的是域,諸如新用戶歡迎屏?xí)惶^(guò)。在域創(chuàng)建期間,包管理器136可以被自動(dòng)調(diào)用以安裝現(xiàn)有的應(yīng)用程序或下載新應(yīng)用程序至新域。域策略服務(wù)126可以設(shè)置缺陷策略,并且向?qū)Э梢员粓?zhí)行以幫助用戶根據(jù)期望調(diào)整新域的策略。
[0064]在創(chuàng)建工作域(或者其策略至少部分被實(shí)體而不是設(shè)備所有者進(jìn)行外部控制的任意其他域)的情況下,該域可以被登記到用于該特定工作域的遠(yuǎn)程域管理服務(wù)器。這可以要求使用用戶工作證明進(jìn)行登記。服務(wù)器會(huì)同意這種工作域的創(chuàng)建,然后下載專(zhuān)用于用戶組、設(shè)備和工作域的策略、圖標(biāo)、證書(shū)、文件、壁紙和應(yīng)用程序。
[0065]域策略
[0066]—旦創(chuàng)建域,則包括策略規(guī)范或策略數(shù)據(jù)的相應(yīng)的安全策略就與該域關(guān)聯(lián)存儲(chǔ)。在一些實(shí)施例中,至少一些域特定策略和跨域策略在應(yīng)用程序級(jí)和/或中間件級(jí)(例如,認(rèn)證超時(shí))實(shí)施。在一些實(shí)施例中,與每個(gè)域關(guān)聯(lián)的進(jìn)程和實(shí)體的隔離至少部分在內(nèi)核級(jí)并根據(jù)多個(gè)域的相應(yīng)的安全策略而實(shí)施。在一些實(shí)施例中,隔離至少部分在中間件級(jí)實(shí)施,這通過(guò)操作系統(tǒng)服務(wù)和在內(nèi)核外部操作的設(shè)施進(jìn)行。依賴(lài)于域的預(yù)期角色或域與諸如公司企業(yè)服務(wù)之類(lèi)的其他實(shí)體的關(guān)系或關(guān)聯(lián)性,與每個(gè)域關(guān)聯(lián)的相應(yīng)策略可以不同。
[0067]例如,在不同實(shí)施例中,一個(gè)或多個(gè)策略可以是:(i)預(yù)定且靜態(tài)的;(ii)預(yù)定的,但是具有一些運(yùn)行時(shí)配置或選擇;(iii)在管理服務(wù)器上配置之后下載的;或(iv)用戶在設(shè)備上可配置的。相應(yīng)策略的特定參數(shù)可以考慮任何相關(guān)條件或變量,同樣涉及所關(guān)聯(lián)的域的特定角色及其與其他實(shí)體的關(guān)系。例如,不同策略的特征可以在于:(i)某些OS服務(wù)之間的隔離可以是靜態(tài)且預(yù)定的;(ii)可以提供可基于布爾值設(shè)定的預(yù)定的低/中/高安全級(jí)別;(iii)可以下載GPS區(qū)域限定參數(shù)或應(yīng)用程序白名單;或(iv)可在設(shè)備上本地配置用于調(diào)試針對(duì)個(gè)人域的訪問(wèn)的能力。也可以實(shí)施任意組合。
[0068]在一些情況下,可以在設(shè)備上修改策略(例如,經(jīng)由域設(shè)置應(yīng)用144-1、144_2),并且在其他情況下,策略可以從遠(yuǎn)程服務(wù)器(例如,針對(duì)工作域)下載。在一個(gè)實(shí)施例中,域消息服務(wù)122管理策略的下載、驗(yàn)證、認(rèn)證和更新,并且域策略服務(wù)126針對(duì)每個(gè)域管理策略的應(yīng)用。然后,策略可以被分發(fā)給可能處于應(yīng)用程序級(jí)、中間件級(jí)或內(nèi)核級(jí)的應(yīng)用策略的系統(tǒng)部件。
[0069]應(yīng)用程序管理
[0070]上面討論的提供域信令使能了橫跨不同域的應(yīng)用程序的域特定安裝和管理。通常,包管理器136可以被配置為基于當(dāng)前域或選擇的域的DID或者與這個(gè)域關(guān)聯(lián)的策略而允許或禁止程序的安裝或執(zhí)行。
[0071]橫跨不同域的應(yīng)用程序的域特定安裝和管理使能了某些優(yōu)點(diǎn)。例如,域信令使能了橫跨域的不同應(yīng)用程序版本的安裝和管理。目前Android?就是這種情況,在應(yīng)用程序被一個(gè)用戶更新時(shí),其也針對(duì)全部用戶更新。這種結(jié)果并不總是期望的。例如,對(duì)應(yīng)用程序的更新可能請(qǐng)求另外的權(quán)限或包括未被企業(yè)測(cè)試或支持并因此在工作域中不期望的特征。此夕卜,企業(yè)可能想要關(guān)聯(lián)的工作域只允許白名單中所列的應(yīng)用程序,或者特別地允許黑名單中所列的某些應(yīng)用程序。
[0072]提供不同域中的不同應(yīng)用程序訪問(wèn)和控制還提供改進(jìn)的安全選項(xiàng),即使是在域永遠(yuǎn)只被特定個(gè)人訪問(wèn)時(shí)。例如,Android?設(shè)備所有者可能不喜歡在一般不受限制、開(kāi)放的域中建立G00gleTMPlayTM商店賬戶;如果設(shè)備被偷,則該賬戶可能在開(kāi)放的域中可用,并且偷竊可能通過(guò)小偷使用設(shè)備所有者的賬戶而給設(shè)備所有者造成花費(fèi)。因此,設(shè)備所有者可能不希望在開(kāi)放域中,而相反只在具有更多限制性安全策略的、例如通常請(qǐng)求可能被不希望地認(rèn)為應(yīng)用到開(kāi)放域會(huì)不方便的訪問(wèn)密碼的另一個(gè)域中,使能Play?商店應(yīng)用程序。
[0073]因此,本方案可以包括對(duì)Android?包管理器136的一個(gè)或多個(gè)修改,以使其能夠感知域,使得應(yīng)用程序可以根據(jù)域策略而安裝和更新。在一個(gè)實(shí)施例中,包管理器136被配置為以維持安裝的每個(gè)應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符和每個(gè)域的域標(biāo)識(shí)符之間的關(guān)聯(lián)的列表。在進(jìn)程被啟動(dòng)時(shí),針對(duì)進(jìn)程而創(chuàng)建的執(zhí)行文本標(biāo)識(shí)符基于應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符和執(zhí)行應(yīng)用程序所在的域的域標(biāo)識(shí)符。通過(guò)這種方法,包管理器136可以被配置為:(i)允許在選擇域中實(shí)施應(yīng)用程序白名單和/或黑名單,以使只有許可的應(yīng)用程序可以被安裝在域中;
(ii)使應(yīng)用程序能夠從一個(gè)域拷貝或移動(dòng)至另一個(gè)域;(iii)在下載應(yīng)用程序時(shí),提示用戶應(yīng)用程序應(yīng)當(dāng)被安裝到哪個(gè)域或哪些域內(nèi),而不考慮賬戶證書(shū)駐留在哪個(gè)域;(iv)在建立新域時(shí),使能現(xiàn)有的應(yīng)用程序,并且使得它們的配置和數(shù)據(jù)能夠被拷貝或移動(dòng)至該新域中;(V)在應(yīng)用程序更新被下載時(shí),考慮任意應(yīng)用程序白名單或黑名單上的軟件版本,以使得不同域中有應(yīng)用程序的多個(gè)不同版本(因此使得企業(yè)能夠選擇性控制例如經(jīng)測(cè)試并許可的應(yīng)用程序版本的安裝和更新,由此提供與管理程序方案類(lèi)似程度的應(yīng)用程序版本控制);并且(vi)使得能夠基于用戶輸入或基于下載的策略(針對(duì)與該策略有關(guān)的域)從一個(gè)域或多個(gè)域但或許不從其他域選擇性刪除應(yīng)用程序。
[0074]窗管理
[0075]在一個(gè)實(shí)施例中,窗管理器138的默認(rèn)配置為不同域提供不同屏幕,類(lèi)似于現(xiàn)有技術(shù)。各個(gè)域可以使用通知陰影、導(dǎo)航器應(yīng)用程序(例如,域?qū)Ш狡?46-1、146_2)或經(jīng)由按鈕、圖標(biāo)、手勢(shì)或這些的一些組合等來(lái)切換。
[0076]本方案還使得窗管理器138能夠提供具有混合UI的更具創(chuàng)新性的用戶界面,其中與不同域關(guān)聯(lián)的應(yīng)用程序被顯示在單個(gè)屏幕上。例如,在一個(gè)實(shí)施例中,窗管理器138提供對(duì)一個(gè)或多個(gè)應(yīng)用程序圖標(biāo)的覆蓋圖,這個(gè)覆蓋圖指示應(yīng)用程序與哪個(gè)域關(guān)聯(lián)。與不止一個(gè)域關(guān)聯(lián)的應(yīng)用程序可以提供多個(gè)圖標(biāo),每個(gè)圖標(biāo)具有不同的覆蓋圖(例如,不同的顏色、不同的符號(hào)、不同的輪廓等),以表示應(yīng)用程序與哪個(gè)域關(guān)聯(lián)。這個(gè)方法將不需要在域之間切換,其中域訪問(wèn)由圖標(biāo)指示,并且根據(jù)所訪問(wèn)的應(yīng)用程序的域策略的要求,在訪問(wèn)與不同于當(dāng)前域的域關(guān)聯(lián)的應(yīng)用程序時(shí),用戶可能被要求進(jìn)行認(rèn)證。每個(gè)域策略和數(shù)據(jù)隔離被獨(dú)立于顯示機(jī)制進(jìn)行維護(hù)和實(shí)施。本方案的性能不會(huì)受到具有多個(gè)圖標(biāo)的影響。這個(gè)方法的優(yōu)點(diǎn)是在域之間不存在可見(jiàn)的切換。缺點(diǎn)是設(shè)備主屏幕可能因?yàn)閳D標(biāo)而變得混亂,并且存在其中用戶正在操作的域的較少視覺(jué)指示。
[0077]交叉域通信
[0078]系統(tǒng)100可以包括域管理器服務(wù)124,其用于管理交叉域通信,諸如用于剪切和粘貼數(shù)據(jù)、啟動(dòng)電話呼叫、通知、數(shù)據(jù)共享、傳輸數(shù)據(jù)和應(yīng)用程序安裝等功能。域策略服務(wù)126可以作為用于實(shí)施域之間的策略的單個(gè)點(diǎn)。
[0079]例如,用戶可能希望在域之間移動(dòng)或拷貝應(yīng)用程序。工作域策略可以實(shí)施應(yīng)用程序白名單方法以確保惡意軟件不能進(jìn)入工作域盜取公司信息(例如,工作聯(lián)系人或工作文件)。通過(guò)進(jìn)一步示例,一個(gè)域中的通知當(dāng)顯示在另一個(gè)域中時(shí)可能變得不透明,或者可能根本不顯示,除非處于對(duì)應(yīng)的受保護(hù)域內(nèi)部時(shí)。作為另一個(gè)示例,工作域可以限制諸如聯(lián)系人的數(shù)據(jù)離開(kāi)工作域,以防止數(shù)據(jù)泄露。雖然用戶可接受將其個(gè)人聯(lián)系人導(dǎo)入工作域,但是反向可能不被工作域策略所允許。這是由受域策略服務(wù)126管理的策略所配置的域之間的單向數(shù)據(jù)共享的示例。
[0080]外部通信
[0081 ]系統(tǒng)100還可以管理設(shè)備內(nèi)的進(jìn)出通信。為此,在一個(gè)實(shí)施例中,域管理器服務(wù)124管理網(wǎng)絡(luò)連接和可能需要通知的進(jìn)入事件,或者管理針對(duì)多個(gè)域的意圖(intent)。簡(jiǎn)單示例是雙號(hào)(例如,雙SIM卡)智能手機(jī)的情況,其中策略會(huì)規(guī)定對(duì)一個(gè)號(hào)碼的呼叫應(yīng)當(dāng)被路由至特定域,并且對(duì)第二個(gè)號(hào)碼的呼叫應(yīng)當(dāng)被登記到不同的域。在單電話號(hào)碼設(shè)備接收呼入電話的情況下,這種通信更復(fù)雜。策略可以指定為來(lái)電顯示的目的可訪問(wèn)哪些聯(lián)系人,以及指定呼叫日志信息應(yīng)當(dāng)被登記在哪里。在一些實(shí)施例中,域策略服務(wù)126可以是針對(duì)至少一些策略實(shí)施(包括訪問(wèn)諸如VPN、藍(lán)牙和WIFI網(wǎng)絡(luò)資源之類(lèi)的硬件資源)的點(diǎn)。例如,一些受保護(hù)域的策略可以允許只在指定網(wǎng)絡(luò)上時(shí)的通信。
[0082]域?qū)嵤?br>[0083]系統(tǒng)100還提供域和每個(gè)域策略的實(shí)施,這是對(duì)創(chuàng)建并管理域的軟件功能的附加要求。在沒(méi)有域和域策略的實(shí)施的情況下,惡意軟件或黑客程序可以靜態(tài)或動(dòng)態(tài)地修改系統(tǒng)或內(nèi)核代碼以防止策略被實(shí)施,或者以更新策略。
[0084]在一個(gè)實(shí)施例中,系統(tǒng)100使用SELinux?和Linux?安全模塊(LSM)來(lái)實(shí)施強(qiáng)制訪問(wèn)控制(MAC) eMAC確保主體(例如應(yīng)用程序)僅訪問(wèn)被策略允許的對(duì)象(例如,應(yīng)用程序、文件和資源)。這經(jīng)由在每個(gè)應(yīng)用程序被安裝時(shí)唯一創(chuàng)建的UID/GID組合來(lái)實(shí)施。如上討論,在系統(tǒng)100的一個(gè)實(shí)施例中,UID還被擴(kuò)展或分配為表不域。
[0085]然而,SELinux?通常將相同的類(lèi)型(因此相同的策略)應(yīng)用至用戶下載的所有應(yīng)用程序,這意味著其不實(shí)施域。因此,SELinux也可以被修改為變得能夠感知域。在一個(gè)實(shí)施例中,這經(jīng)由策略中的基于角色的訪問(wèn)控制字段或者通過(guò)針對(duì)不同域創(chuàng)建不同策略和動(dòng)態(tài)地使用域管理器124以在運(yùn)行時(shí)期間調(diào)整策略來(lái)實(shí)現(xiàn),或者在Android?的情況下,通過(guò)修改SEAndro id?的合子(Zygote)和/或中間件強(qiáng)制訪問(wèn)控制特征而在進(jìn)程被創(chuàng)建時(shí)將域特定SELinux?安全標(biāo)簽賦予進(jìn)程來(lái)實(shí)現(xiàn),以變得能夠感知域。
[0086]緊緊限制應(yīng)用程序?qū)ο到y(tǒng)級(jí)資源的訪問(wèn)僅僅是可以在內(nèi)核級(jí)實(shí)施的多個(gè)安全增強(qiáng)中的一個(gè)。域內(nèi)核模塊114可以執(zhí)行其他域感知安全性,諸如:控制調(diào)試訪問(wèn)、檢查對(duì)策略的更新(認(rèn)證和完整性驗(yàn)證)、域數(shù)據(jù)的加密、檢查加載時(shí)應(yīng)用程序簽名、訪問(wèn)安全硬件和安全操作系統(tǒng)部件(如果可用)以及控制對(duì)諸如網(wǎng)絡(luò)、像機(jī)和GPS之類(lèi)的硬件資源的訪問(wèn)。域內(nèi)核模塊114還可以提供設(shè)備范圍的安全設(shè)置,諸如:開(kāi)機(jī)時(shí)內(nèi)核的完整性驗(yàn)證、策略的安全存儲(chǔ)、其本身和其他系統(tǒng)級(jí)資源(例如,域策略引擎)的完整性驗(yàn)證、確保SEAndroid?被開(kāi)啟和遠(yuǎn)程證明。
[0087]應(yīng)當(dāng)注意的是,域與用戶和管理員賬戶不同。雖然設(shè)備所有者可以具有被授予創(chuàng)建和刪除賬戶的某些特權(quán)的特別賬戶,但是這些特權(quán)不等效于root訪問(wèn),并且可能針對(duì)被第三方管理員(例如,工作IT管理員)管理的域受到限制。通過(guò)與這里描述的細(xì)分的域信令一起使用SELinux?和SEAndroid?,應(yīng)用程序和應(yīng)用程序數(shù)據(jù)保持隔離,甚至在域之間存在不同的策略和訪問(wèn)控制。一個(gè)域中的惡意軟件不能訪問(wèn)另一個(gè)域中的數(shù)據(jù)和應(yīng)用程序。
[0088]域切換
[0089]示出從第一域142-1至第二域142-2的域切換方法的一個(gè)實(shí)施例的框圖400被示出在圖4中。用戶使用域?qū)Ш狡?46-1錄入請(qǐng)求切換至第二域的輸入。域?qū)Ш狡?46-1發(fā)信號(hào)(動(dòng)作405)至活動(dòng)管理器134以切換至第二域142-2。如果第二域142-2與不同于第一域142-1所關(guān)聯(lián)的用戶的用戶關(guān)聯(lián),(例如從圖3中的域Al至域BI),則活動(dòng)管理器134發(fā)信號(hào)(動(dòng)作410)至用戶管理器服務(wù)128以注銷(xiāo)用戶,否則不這樣做。響應(yīng)于來(lái)自用戶管理器服務(wù)128的調(diào)用(動(dòng)作412),域管理器服務(wù)124與系統(tǒng)設(shè)置模塊130—起檢查與第二域142-2關(guān)聯(lián)的登錄策略(動(dòng)作415),并且針對(duì)使這種切換能夠發(fā)生的任何其他策略(例如,GPS區(qū)域限定、網(wǎng)絡(luò)訪問(wèn)要求、內(nèi)核完整性)檢查域策略服務(wù)126(動(dòng)作420)。活動(dòng)管理器134向密鑰保護(hù)中間器132通知第一域142-1的任何暫停(其可以是立即的或者被延遲預(yù)定時(shí)段)(動(dòng)作425)。密鑰保護(hù)中間器132實(shí)施與第二域142-2關(guān)聯(lián)的策略。如果策略檢查被滿足,則密鑰保護(hù)中間器13 2被通知切換至第二域14 2 - 2并決定基于策略(例如訪問(wèn)所需要的認(rèn)證)的訪問(wèn)(動(dòng)作430),或者直接訪問(wèn)域(例如,在不需要認(rèn)證的情況下)(動(dòng)作435),或替代地可以拒絕切換。在該切換之后,活動(dòng)管理器134執(zhí)行第二域142-2中的應(yīng)用程序啟動(dòng)器424。
[0090]在另一個(gè)實(shí)施例中,如上面提及,在選擇應(yīng)用程序時(shí),域切換可以被暗示,并且不需要域?qū)Ш狡鳌?br>[0091]在一些實(shí)施例中,域切換方法可以被配置為使能到加密域的安全切換。與一個(gè)或多個(gè)域關(guān)聯(lián)的數(shù)據(jù)文件可以被加密,諸如使用密碼堆疊文件系統(tǒng)。例如,eCryptFS文件系統(tǒng)(http: / / ecryptf s.0rg)是用于Linux的POSIX兼容企業(yè)密碼堆疊文件系統(tǒng)。在與域關(guān)聯(lián)的數(shù)據(jù)文件被這樣加密的情況下,該域可以被認(rèn)為是加密域。對(duì)稱(chēng)密鑰可以被用于加密和解密加密域的數(shù)據(jù),并且可以被存儲(chǔ)在Linux內(nèi)核密鑰環(huán)(內(nèi)核存儲(chǔ)器中的安全存儲(chǔ))中,但是也可以被存儲(chǔ)在任意安全存儲(chǔ)中。在密碼堆疊文件系統(tǒng)中,典型的是多個(gè)對(duì)稱(chēng)密鑰被使用,但是可以理解的是,在一些實(shí)施例中,可以使用單個(gè)密鑰。在這種實(shí)施例中,域數(shù)據(jù)文件的加密與塊級(jí)或設(shè)備級(jí)數(shù)據(jù)加密相兼容,其中最后的效果是對(duì)數(shù)據(jù)進(jìn)行雙重加密。
[0092]如上所述,具有多個(gè)域的設(shè)備可以包括需要訪問(wèn)認(rèn)證的一個(gè)或多個(gè)域。例如,在設(shè)備操作系統(tǒng)是Android的情況下,內(nèi)置Android鎖屏認(rèn)證(圖案、PIN、密碼等)可以被用于控制對(duì)域的訪問(wèn)。如果域還被加密,則這個(gè)鎖屏認(rèn)證還可以被用于加密和解密供密碼文件系統(tǒng)使用的密鑰以訪問(wèn)加密域的數(shù)據(jù)。
[0093]由于設(shè)備可以具有多個(gè)域,多個(gè)域中的一個(gè)以上可以被加密,并且多個(gè)域中的一個(gè)以上可能需要認(rèn)證,所以在從當(dāng)前域(當(dāng)前擁有用戶界面焦點(diǎn)的域)切換至不同的目標(biāo)域時(shí)存在四種可能的場(chǎng)景:該域已經(jīng)在運(yùn)行;該域未在運(yùn)行,并且未被加密;該域未在運(yùn)行,被加密,但是不需要認(rèn)證;以及該域未在運(yùn)行,被加密,并且需要認(rèn)證。(如果與域關(guān)聯(lián)的進(jìn)程正在運(yùn)行,則該域被認(rèn)為正在運(yùn)行。)
[0094]鑒于這些可能性,從當(dāng)前域切換至目標(biāo)域的切換方法900被示出在圖9中。如圖所示,可以立即切換至正在運(yùn)行的域。一旦接收到切換至目標(biāo)域的輸入(開(kāi)始902),就確定該域是否正在運(yùn)行(決定904),并且如果是這樣(分支906),則目標(biāo)域被示出在UI中(步驟908)并且切換完成(結(jié)束910)。如果該域未在運(yùn)行(分支912),則確定該域是否被加密(確定914);如果否(分支916 ),則該域被啟動(dòng)(步驟918 ),被示出在UI中(步驟908 ),并且切換完成(結(jié)束910)。如果該域被加密(分支920),則確定該域是否需要認(rèn)證(決定922);如果否(分支924),則解密密鑰可以被加載,并且文件系統(tǒng)被安裝(步驟926),該域被啟動(dòng)(步驟918),被示出在UI中(步驟908),并且切換完成(結(jié)束910)。如果需要認(rèn)證(分支928),則認(rèn)證信息被接收(步驟930),文件系統(tǒng)密鑰基于認(rèn)證信息被解密(步驟932),解密密鑰被加載并且文件系統(tǒng)被安裝(步驟926),該域被啟動(dòng)(步驟918),被示出在UI中(步驟908),并且切換完成(結(jié)束910)。
[0095]因此,如在圖9中可以看到的,當(dāng)前未在運(yùn)行的未加密域可以被啟動(dòng),并立即切換至該域。然而,如果試圖切換至加密域,則密碼文件系統(tǒng)密鑰必須在該域可以被使用之前被載入Linux內(nèi)核密鑰環(huán)中。如果加密域不需要認(rèn)證,則密碼文件系統(tǒng)密鑰可以被加載,并且在用戶不干預(yù)的情況下文件系統(tǒng)被安裝。然而,如果加密域需要認(rèn)證,則在密碼文件系統(tǒng)密鑰可被加載和文件系統(tǒng)被安裝之前,密碼文件系統(tǒng)密鑰自身必須首先被解密。因此,在啟動(dòng)需要認(rèn)證的加密域的最后一種情況下,需要在該域的數(shù)據(jù)可以被訪問(wèn)(安裝)之前收集目標(biāo)域的認(rèn)證數(shù)據(jù)的機(jī)制。
[0096]然而,在許多設(shè)備操作系統(tǒng)中,認(rèn)證進(jìn)程必須在當(dāng)前域中操作或與當(dāng)前域關(guān)聯(lián)操作。例如,內(nèi)置于Android的現(xiàn)有鎖屏認(rèn)證機(jī)制對(duì)當(dāng)前用戶或域進(jìn)行認(rèn)證。在向目標(biāo)域切換時(shí),Android鎖屏從諸如鎖屏微件、動(dòng)態(tài)壁紙和輸入法編輯器(Hffi)之類(lèi)的鎖屏運(yùn)行目標(biāo)域的進(jìn)程。為了保留傳統(tǒng)的Android用戶體驗(yàn),認(rèn)證需要在域切換之后發(fā)生。
[0097]存在提供這個(gè)功能的幾種替代方法,如下。
[0098]在第一替代例中,定制用戶界面(UI)被提供為在切換至目標(biāo)域之前獲取認(rèn)證信息。雖然這個(gè)方法擁有使其適用在一些情形中的若干好處,但是其還是會(huì)有某些缺點(diǎn),如下。例如,這個(gè)方法實(shí)際上需要復(fù)制已經(jīng)內(nèi)置在Android內(nèi)的認(rèn)證機(jī)制,并且需要更新以維持與內(nèi)置Android機(jī)制的更新的互通性。此外,這個(gè)方法引入安全顧慮,因?yàn)槎ㄖ普J(rèn)證UI進(jìn)程會(huì)在用戶從其切換的域中運(yùn)行。富有經(jīng)驗(yàn)的攻擊者可以替換可能不受信任的域中諸如輸入法編輯器(ME)之類(lèi)的重要應(yīng)用程序包,以捕獲受信任的加密域的域認(rèn)證信息。
[0099]在第二替代例中,方法首先切換至目標(biāo)域,但是不安裝目標(biāo)域的數(shù)據(jù)。然后,在安裝目標(biāo)域的數(shù)據(jù)之前,該方法只運(yùn)行鎖屏運(yùn)作必需的那些進(jìn)程,然后完成到目標(biāo)域內(nèi)的切換。雖然這個(gè)方法擁有可以使其適用于一些情形的若干好處,但是其還有某些缺點(diǎn),如下。例如,通常從鎖屏(鎖屏微件、動(dòng)態(tài)壁紙、和輸入法編輯器(IME))運(yùn)行的應(yīng)用程序部件可能需要訪問(wèn)加密的文件系統(tǒng)。通常不可能先驗(yàn)地確定什么包會(huì)運(yùn)行,因?yàn)橛脩艉统跏荚O(shè)備制造商(OEM)都可能改變、升級(jí)或移除這些部件,所以不可能預(yù)期到并補(bǔ)償這些問(wèn)題。此外,域切換操作在域認(rèn)證信息被提供之前不會(huì)完成。這將設(shè)備置于Android沒(méi)有被設(shè)計(jì)為處理的中間的不確定的狀態(tài)。這在Andr ο i d的發(fā)布之間必須要被正確處理、測(cè)試和維護(hù)的Andro i d中間件中,產(chǎn)生了許多附加的邊緣情況。
[0100]在第三個(gè)替代例中,方法切換至在設(shè)備上有意創(chuàng)建的中間域,以促進(jìn)認(rèn)證信息的安全收集并使能域之間的安全過(guò)渡。在切換至未在運(yùn)行的加密域時(shí),中間域被啟動(dòng),并且要求認(rèn)證。這個(gè)方法克服了如上所述的前兩個(gè)替代例所具有的許多缺點(diǎn)。
[0101]因此,圖10中示出了從正在運(yùn)行的第一域切換至不同的目標(biāo)域的方法1000,其中目標(biāo)域是加密域(與包含在加密文件系統(tǒng)中的數(shù)據(jù)文件關(guān)聯(lián)或具有包含在加密文件系統(tǒng)中的數(shù)據(jù)文件)并且未在運(yùn)行。啟動(dòng)到目標(biāo)域的域切換(開(kāi)始1002)。目標(biāo)域未在運(yùn)行,被加密,并且要求認(rèn)證。中間域變成當(dāng)前域(這要向Android中間件報(bào)告)(步驟1004),并且在中間域啟動(dòng)鎖屏進(jìn)程(步驟1006)。鎖屏部件被修改或者被提供為使得在被調(diào)用時(shí)其會(huì)示出目標(biāo)域的認(rèn)證質(zhì)詢(xún),并且示出標(biāo)識(shí)目標(biāo)域的一些指示。
[0102]如果與目標(biāo)域關(guān)聯(lián)的一些UI元件不被存儲(chǔ)在加密的文件系統(tǒng)中,而是被存儲(chǔ)在另一個(gè)位置(例如,未加密文件或數(shù)據(jù)庫(kù)中的元數(shù)據(jù)),則這種UI元件可以與認(rèn)證質(zhì)詢(xún)一起示出。例如,在這種情況下,可以示出與目標(biāo)域關(guān)聯(lián)的壁紙。可替代地,一些其他壁紙或圖像可以被示出以指示到目標(biāo)域的切換正在發(fā)生。類(lèi)似地,如果與目標(biāo)域關(guān)聯(lián)的頂E被另外存儲(chǔ)而不存儲(chǔ)在加密的文件系統(tǒng)中,則其可以被用于接收認(rèn)證信息??商娲?,用于錄入認(rèn)證信息的ME的用戶選擇可以被接收(步驟1008)。(這可以包括例如中間域中的語(yǔ)言不同于目標(biāo)域的語(yǔ)言的情況)。
[0103]然后,使用選擇的頂E接收認(rèn)證信息(步驟1010)。如果用戶提供目標(biāo)域的正確認(rèn)證信息,則目標(biāo)域的密碼文件系統(tǒng)密鑰被解密(步驟1012),密鑰被加載,并且文件系統(tǒng)被安裝(步驟1014)。通常顯示在目標(biāo)域中的鎖屏被摒棄(步驟1016)。(這與用戶已經(jīng)在域中直接被認(rèn)證的情況不同,并且提供了鎖屏認(rèn)證針對(duì)未加密域如何工作的無(wú)縫用戶體驗(yàn))。目標(biāo)域被啟動(dòng)變?yōu)楫?dāng)前域(步驟1018)。新域在UI中示出(步驟1020),并且域切換完成(結(jié)束1022)。
[0104]如上指出,這個(gè)方法克服了切換至未在運(yùn)行的加密域的其他方法的缺點(diǎn)中的至少一些,并且進(jìn)一步提供許多優(yōu)點(diǎn),如下。
[0105]例如,優(yōu)點(diǎn)是認(rèn)證進(jìn)程發(fā)生在任何用戶可控域的外部,使得認(rèn)證信息的收集更加安全。從鎖屏運(yùn)行的進(jìn)程是在不易于受到其他用戶可訪問(wèn)域中的改變的干擾的受控環(huán)境中運(yùn)行的。Andro i d中間件中需要的改變易于維護(hù),并且更容易地與內(nèi)置于Andr o i d的多用戶狀態(tài)機(jī)相兼容。這導(dǎo)致較少的缺陷、較少的維護(hù)和較好的前向兼容性。對(duì)ME的攻擊(例如,替代或特權(quán)提升)或者針對(duì)密鑰保護(hù)的用戶界面更難于執(zhí)行,并與上面列出的其他選項(xiàng)相比會(huì)最小化收益(例如,訪問(wèn)中間域)。所需的附加性能和存儲(chǔ)是最小的。
[0106]許多實(shí)施選項(xiàng)是可用的。中間域可以在操作系統(tǒng)的第一次啟動(dòng)時(shí)創(chuàng)建,或者可替代地可以在第一加密域被創(chuàng)建之前的任意其他時(shí)間創(chuàng)建。中間域可以被鎖定以防止用戶做除了認(rèn)證之外的任何事情。表述“鎖定”可以被理解為意味著禁用任何不需要的應(yīng)用程序、服務(wù)或其他方面,或者替代地只選擇性使能需要的那些特定應(yīng)用程序、服務(wù)或其他方面。例如,其可以包括禁用鎖屏微件和谷歌搜索。中間域可以進(jìn)一步使用策略機(jī)制(包括SELinux和SEAndroid)鎖定以進(jìn)一步最小化安全風(fēng)險(xiǎn)。不像其他域,中間域只在域之間進(jìn)行切換時(shí)短暫運(yùn)行。在運(yùn)行時(shí),針對(duì)Android維持的三個(gè)活動(dòng)運(yùn)行域的最大限制,中間域不算作是運(yùn)行域。因此,移動(dòng)至中間域不會(huì)使其他域被關(guān)閉。在啟動(dòng)和停止中間域時(shí),Andro i d不發(fā)送通常在啟動(dòng)域時(shí)發(fā)送的許多廣播。這顯著改進(jìn)了性能,因?yàn)槠浞乐共槐匾倪M(jìn)程和應(yīng)用被啟動(dòng)。中間域可以具有使用白名單、禁用列表、黑名單等安裝在該域中的最少應(yīng)用,以降低這些應(yīng)用可能出現(xiàn)的安全風(fēng)險(xiǎn)。
[0107]中間域可以被預(yù)配置有允許的應(yīng)用程序、服務(wù)等的某個(gè)選擇,或者可以使用與所有域所使用的實(shí)施機(jī)制相同或類(lèi)似的實(shí)施機(jī)制,例如通過(guò)使用專(zhuān)用于中間域的策略,以類(lèi)似于其他域的方式來(lái)動(dòng)態(tài)配置。中間域可以在加密域被創(chuàng)建或初次啟動(dòng)時(shí)或者在任意其他適當(dāng)?shù)臅r(shí)間創(chuàng)建。
[0108]域消息服務(wù)協(xié)議
[0109]圖5中示出圖解域消息傳送方法的框圖500。與第一域142-1關(guān)聯(lián)的第一進(jìn)程505產(chǎn)生事件消息(例如,消息接收通知(其中消息可以是電子郵件)、剪切和粘貼動(dòng)作、文件復(fù)制)。產(chǎn)生事件的第一進(jìn)程505發(fā)送關(guān)于該事件的消息(其可以采用廣播的形式),并且該消息被域管理器服務(wù)124接收(動(dòng)作510)。在一個(gè)實(shí)施例中,在第二域142-2中操作的第二進(jìn)程515可以是監(jiān)聽(tīng)進(jìn)程,但是可以理解的是,可替代地,可以使用API。域消息服務(wù)122檢查其他域中的監(jiān)聽(tīng)進(jìn)程,諸如第二域142-2中的第二進(jìn)程515,是否被配置為對(duì)接收的事件消息進(jìn)行響應(yīng)。
[0110]在已確定第二域142-2中的第二進(jìn)程515被這樣配置時(shí),域管理器服務(wù)124向域策略服務(wù)126發(fā)關(guān)于事件消息類(lèi)型(例如,通知、剪貼板緩存、文件)的信號(hào)(動(dòng)作520)。域策略服務(wù)126實(shí)施可以產(chǎn)生許多不同動(dòng)作的相關(guān)策略。例如,請(qǐng)求的事件可以被允許(例如,小于100個(gè)字符的緩存可以被傳遞),或者不被允許(例如,策略可以允許文件被傳輸至域,而防止這種文件從該域傳輸)。可替代地,策略可以導(dǎo)致該消息被過(guò)濾(例如,某些字段可以變得不透明,或只提供標(biāo)記通知,諸如電子郵件接收通知,但沒(méi)有諸如發(fā)送者、主題等的細(xì)節(jié))。根據(jù)策略,事件消息被傳遞至第二域142-2中的第二進(jìn)程515 (動(dòng)作525)。
[0111]交叉域執(zhí)行協(xié)議
[0112]圖6中示出圖解交叉域執(zhí)行方法的框圖600。
[0113]在該方法中,第一域142-1中的第一進(jìn)程605產(chǎn)生動(dòng)作,其中該動(dòng)作請(qǐng)求關(guān)于第二域142-2執(zhí)行一些動(dòng)作。例如,新郵件通知可以在第一域中選擇,并且為查看郵件而錄入的請(qǐng)求在第二域中。可替代地,使用第一域142-1中的域設(shè)置144-1服務(wù),可以錄入刪除第二域142-2的請(qǐng)求。或者,在第一域142-1中進(jìn)行操作的同時(shí),可以錄入執(zhí)行來(lái)自第二域142-2的至特定電話號(hào)碼的電話呼叫的請(qǐng)求。
[0114]在由第一域142-1中的第一進(jìn)程505創(chuàng)建動(dòng)作之后,活動(dòng)管理器134接收域切換請(qǐng)求(動(dòng)作610)。如果針對(duì)切換需要認(rèn)證,則在認(rèn)證失敗的情況下,拒絕請(qǐng)求。活動(dòng)管理器134給域策略服務(wù)126發(fā)信號(hào)以檢查與第一域142-1和第二域142-2關(guān)聯(lián)的相應(yīng)策略(動(dòng)作615),以便確定兩個(gè)策略允許發(fā)出請(qǐng)求的第一域142-1啟動(dòng)第二域142-2的請(qǐng)求動(dòng)作。
[0115]如果兩個(gè)策略允許如此,則活動(dòng)管理器134啟動(dòng)與第二域142-2關(guān)聯(lián)的請(qǐng)求的第二進(jìn)程620(動(dòng)作625)。進(jìn)一步繼續(xù)上面引入的示例,郵件服務(wù)可以被啟動(dòng),或者域設(shè)置144-1服務(wù)可以被啟動(dòng),并且提示用戶確認(rèn)第二域142-2的刪除,或者電話服務(wù)可以被啟動(dòng)同時(shí)顯示呼叫的期望號(hào)碼。
[0116]域應(yīng)用程序安裝協(xié)議
[0117]圖7中示出圖解域應(yīng)用程序安裝方法的框圖700,其中安裝在第一域中的應(yīng)用程序被移動(dòng)或拷貝至第二域。
[0118]如上面所討論,應(yīng)用程序可以與選擇的安全域關(guān)聯(lián)安裝,在這種情況下,域的DID與所安裝的應(yīng)用程序的應(yīng)用程序標(biāo)識(shí)符關(guān)聯(lián)存儲(chǔ)。
[0119]使用域設(shè)置144-1服務(wù),用戶可以選擇將應(yīng)用程序移動(dòng)或拷貝至不同域,例如,從第一域142-1至第二域142-2。域設(shè)置144-1服務(wù)給包管理器136發(fā)信號(hào)以將應(yīng)用程序安裝在第二域142-2中(動(dòng)作705)。包管理器136給域管理器124發(fā)信號(hào)以確定第二域142-2的安全標(biāo)簽(動(dòng)作710)。然后,包管理器136使用從域管理器124接收的正確的安全標(biāo)簽,將應(yīng)用程序安裝在第二域142-2中。如果所選擇的動(dòng)作是移動(dòng),而不是拷貝,則域設(shè)置144-1服務(wù)給包管理器136發(fā)信號(hào)以從第一域142-1卸載應(yīng)用程序(動(dòng)作715),并也將應(yīng)用程序用戶數(shù)據(jù)傳輸至新域。
[0120]更新策略協(xié)議
[0121]圖8中示出圖解更新策略方法的框圖800。
[0122]域消息服務(wù)122從遠(yuǎn)程管理服務(wù)器805,或者可替代地經(jīng)由設(shè)備上的設(shè)置屏幕,或經(jīng)由API,接收策略(動(dòng)作810),然后域消息服務(wù)122將策略傳遞至域策略服務(wù)126(動(dòng)作815),然后至域內(nèi)核模塊114(動(dòng)作820),其可以適當(dāng)?shù)貙⒉呗源鎯?chǔ)在安全存儲(chǔ)112中(動(dòng)作825)。策略的起源的完整性和可靠性由域內(nèi)核模塊116驗(yàn)證。防回滾機(jī)制可以被應(yīng)用在域內(nèi)核模塊116或安全存儲(chǔ)112內(nèi),以確保較早的策略不會(huì)被重新使用或重新播放。然后,域策略服務(wù)126加載策略和之前的策略,以便只智能地應(yīng)用已經(jīng)在更新的策略中改變的那些策略。域策略服務(wù)126可以發(fā)信號(hào)至增強(qiáng)Linux安全性模塊116,以加載策略的更新的SELinux部分(動(dòng)作830)。域策略服務(wù)126給系統(tǒng)設(shè)置模塊130服務(wù)發(fā)信號(hào),以更新在系統(tǒng)設(shè)置模塊130中應(yīng)用并被其實(shí)施的策略,諸如密碼強(qiáng)度、壁紙和啟動(dòng)器(動(dòng)作835)。然后,域策略服務(wù)126更新其自身的專(zhuān)用于域的策略,諸如域加密、域調(diào)試訪問(wèn)、交叉域策略和域名。
[0123]魅
[0124]本方案提供手段以安全地建立、維護(hù)和管理分離的受保護(hù)域并限定和隔離這種分離的受保護(hù)域中的應(yīng)用程序和數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本方案在存儲(chǔ)器、空間和計(jì)算能力方面是有效的。其維持了本地操作系統(tǒng)特征,包括應(yīng)用程序的反向兼容性。其維持了一些域中的本地且直觀的設(shè)備用戶界面,又使能了其他域中的許多不同用戶界面選項(xiàng)和策略,而不是傳統(tǒng)的“全有或全無(wú)”的設(shè)備鎖和/或用戶賬戶訪問(wèn)。其使能了具有不同的域所有者的一個(gè)設(shè)備上的多個(gè)人、多個(gè)工作和“開(kāi)放”域之間的雙人、多人、多域使用。其使能了這多個(gè)域的遠(yuǎn)程管理和策略更新。其允許針對(duì)每個(gè)域的不同的訪問(wèn)控制和策略。其允許策略確定數(shù)據(jù)是否可以在域之間傳送。其使能了更適用于移動(dòng)設(shè)備的新的使用模型,包括臨時(shí)共享。與其他方案相比,其使能了可以在每個(gè)域中使用的應(yīng)用程序的更細(xì)分的控制。本方案可以顯著地簡(jiǎn)化或甚至消除與基于管理程序的虛擬化關(guān)聯(lián)的域之間的操作系統(tǒng)級(jí)“硬切換”,在基于管理程序的虛擬化中,每個(gè)域與可以被每個(gè)對(duì)應(yīng)的管理程序復(fù)制的獨(dú)立的操作系統(tǒng)進(jìn)程組關(guān)聯(lián)操作。其在沒(méi)有當(dāng)前方案的弱點(diǎn)的情況下,隔離了域之間的應(yīng)用程序和應(yīng)用程序數(shù)據(jù)。其將域中的應(yīng)用程序和數(shù)據(jù)與域之外的惡意應(yīng)用程序隔離。最后,其解決了移動(dòng)設(shè)備用戶的私密性問(wèn)題和選擇的自由。
[0125]與實(shí)施方式的細(xì)節(jié)無(wú)關(guān),域信令、域管理和域?qū)嵤┮肓孙@著的益處和特征。如下。本方案維持了初始的本地操作系統(tǒng)特征,包括應(yīng)用程序的反向兼容性。全部本地操作系統(tǒng)權(quán)限檢查和IPC機(jī)制會(huì)共存并仍然有效。操作系統(tǒng)的操作不變,并且本方案與之前的操作系統(tǒng)反向兼容。與現(xiàn)有技術(shù)相比,本方案在存儲(chǔ)器、空間和計(jì)算能力方面是有效的。與諸如復(fù)制操作系統(tǒng)堆棧的導(dǎo)致大量(PU和RAM開(kāi)銷(xiāo)的虛擬化之類(lèi)的替代方法相比,設(shè)備性能和存儲(chǔ)及存儲(chǔ)器利用非常高效。因?yàn)楸镜豋S實(shí)施方式,與現(xiàn)有技術(shù)相比,域之間的切換非常快且尚效。
[0126]本方案使能了具有不同的域所有者的一個(gè)設(shè)備上的多個(gè)人、多個(gè)工作和“開(kāi)放”域之間的雙人、多人、多域使用。多個(gè)受保護(hù)域可以容易地被添加并被實(shí)施,而伴隨著可以忽略的存儲(chǔ)器和性能影響。單個(gè)設(shè)備上可以存在多個(gè)受保護(hù)的工作域。例如,如果用戶具有多個(gè)客戶,則在同一設(shè)備上可以存在公司X域和公司Y域??商娲兀O(shè)備可以被配置為具有公司機(jī)密域和公司分類(lèi)域,每個(gè)域具有不同的策略(例如,駐留在公司分類(lèi)域中的應(yīng)用程序的安全性策略可以更有限制性,諸如它們只可以在正常工作時(shí)間期間或者在設(shè)備連接至公司W(wǎng)iFi網(wǎng)絡(luò)時(shí)訪問(wèn))ο設(shè)備可以被配置為具有易于訪問(wèn)的開(kāi)放共享域,并被配置為使能與家人或同事專(zhuān)門(mén)共享開(kāi)放域中的設(shè)備和應(yīng)用程序。用戶可以具有針對(duì)私密性目的的受保護(hù)域,諸如以隔離與秘密關(guān)系有關(guān)的消息傳送和聯(lián)系人信息,或用戶可以具有針對(duì)手機(jī)銀行和商業(yè)目的的受保護(hù)域。不是設(shè)備所有者的雇主的服務(wù)提供者,諸如銀行,可能希望設(shè)備上有包含用于訪問(wèn)其服務(wù)(諸如賬戶訪問(wèn)、信用卡或借記卡服務(wù)、股票交易、諸如保險(xiǎn)、貸款等服務(wù)的報(bào)價(jià))的各種應(yīng)用程序的受保護(hù)域。服務(wù)提供者會(huì)具有它們的應(yīng)用程序和與這些應(yīng)用程序關(guān)聯(lián)的用戶個(gè)人信息是安全的并且倘若設(shè)備丟失也可以被抹掉或鎖定的信心。
[0127]本方案針對(duì)不同域、在域之間以及針對(duì)單個(gè)設(shè)備上的受保護(hù)域的進(jìn)出通信允許不同的訪問(wèn)控制和策略。域策略可以是在本地管理(例如經(jīng)由設(shè)備設(shè)置)或遠(yuǎn)程管理(例如經(jīng)由云服務(wù))。策略還可以由設(shè)備所有者或諸如雇主或服務(wù)提供者的第三方管理。交叉域通信和數(shù)據(jù)共享可以根據(jù)策略被限定和實(shí)施。數(shù)據(jù)加密可以能夠感知域。電話功能、來(lái)電顯示通知和緊急呼叫等可以能夠感知域并基于策略。例如,來(lái)自某些域的呼出電話可以被阻止。網(wǎng)絡(luò)連接性可以能夠感知域,并且可根據(jù)策略實(shí)施。任務(wù)選擇器和進(jìn)程顯示可以能夠感知域。例如,如果域被登錄,則進(jìn)程可以只被顯示。通知可以基于策略能夠感知域。例如,工作域通知只可以從某個(gè)頁(yè)面可見(jiàn),以避免共享期間的數(shù)據(jù)泄露。或者,通知可以指示提供通知的應(yīng)用程序,但具有減少的信息(例如,不公開(kāi)接收的電子郵件的標(biāo)題,或者接收的SMS的發(fā)送者等)。云備份和同步機(jī)制也可以能夠感知域。例如,開(kāi)放域可以被備份,即使不存在關(guān)聯(lián)于該域的專(zhuān)用賬戶。
[0128]本方案維持了本地且直觀的初始用戶界面,又使能了不同域之間的許多不同用戶界面選項(xiàng)和策略,而不是傳統(tǒng)的“全有或全無(wú)”的設(shè)備鎖和/或傳統(tǒng)多用戶賬戶訪問(wèn)。用戶界面和域之間的切換現(xiàn)在可以被定制為域過(guò)渡類(lèi)型。傳統(tǒng)用戶賬戶風(fēng)格界面可以被維持,并且每個(gè)域仍舊可以被個(gè)性化,并針對(duì)每個(gè)域被配置有全部的標(biāo)準(zhǔn)本地OS能力,諸如每個(gè)域具有不同背景和/或不同啟動(dòng)屏幕。每個(gè)域可以配置用戶認(rèn)證機(jī)制(例如,密碼、生物識(shí)別、圖案、沒(méi)有認(rèn)證)。域登錄策略可以被用于在域之間切換時(shí)減少或消除對(duì)用戶進(jìn)行重復(fù)認(rèn)證的需要。訪問(wèn)控制和認(rèn)證技術(shù)可以針對(duì)每個(gè)受保護(hù)域、根據(jù)針對(duì)該域設(shè)置的策略來(lái)實(shí)施(例如,在設(shè)備不活動(dòng)15分鐘之后自動(dòng)注銷(xiāo),或者在域不活動(dòng)5分鐘之后自動(dòng)域注銷(xiāo),或者在特定域內(nèi)時(shí)每10分鐘重新認(rèn)證,等等)。本方案使能了更適用于移動(dòng)設(shè)備的新的使用模型,包括諸如經(jīng)由開(kāi)放域進(jìn)行應(yīng)用程序的專(zhuān)門(mén)共享。這是對(duì)移動(dòng)設(shè)備的最近特征的擴(kuò)展,在這些移動(dòng)設(shè)備中,一些設(shè)備能力可以在設(shè)備鎖屏?xí)r可用,而不需要認(rèn)證(例如,用戶可以仍然拍照或接聽(tīng)呼入電話)。除了對(duì)功能進(jìn)行限制之外,使用域信令和域隔離實(shí)施,開(kāi)放區(qū)域提供對(duì)應(yīng)用程序的全部特征訪問(wèn),雖然可能具有其他特定策略,諸如受限的互聯(lián)網(wǎng)訪問(wèn)(例如,沒(méi)有,或只經(jīng)由WiFi)和受限的電話訪問(wèn)(例如,只來(lái)電或只市話等)。域之間的切換可以通過(guò)使用用于顯示域的其他手段(例如,圖標(biāo)上的覆蓋)來(lái)消除。設(shè)備所有者可以保持域被獨(dú)立地分組(可能為了私密性原因或個(gè)人偏好)在文件夾、標(biāo)簽或操作系統(tǒng)支持的任何其他機(jī)制中。每個(gè)域的認(rèn)證策略仍舊會(huì)在訪問(wèn)標(biāo)簽或特定應(yīng)用程序時(shí)應(yīng)用,但是對(duì)于切換及不同域“主屏”和壁紙等的需求可以被消除。
[0129]在每個(gè)域中可用的應(yīng)用程序可以被控制并且以更加細(xì)分的水平顯示,而在設(shè)備上只存儲(chǔ)一個(gè)拷貝,因此提供存儲(chǔ)器和(PU的非常高效的使用。包管理器可以管理每個(gè)域中的應(yīng)用程序的安裝一一每個(gè)域確實(shí)已經(jīng)在用戶賬戶之間一一但是使用更優(yōu)雅的域特定機(jī)制??捎眯?、顯示和對(duì)應(yīng)用程序的訪問(wèn)可以由策略針對(duì)每個(gè)域進(jìn)行控制。應(yīng)用程序數(shù)據(jù)可以針對(duì)每個(gè)域進(jìn)行隔離(除了每個(gè)用戶賬戶之外),并且可以容易地針對(duì)每個(gè)域進(jìn)行刪除和管理(例如,如果設(shè)備丟失或人事任用終止等)。應(yīng)用程序可以以更直觀且更富創(chuàng)造性的方式在域之間移動(dòng)或刷過(guò),類(lèi)似于在主頁(yè)和標(biāo)簽之間移動(dòng)應(yīng)用程序,而不是在諸如Android 4.2的情況下針對(duì)每個(gè)域執(zhí)行應(yīng)用程序安裝。
[0130]在能夠感知域的SELinux版本的情況下,本方案可以實(shí)施由域指定的應(yīng)用程序和應(yīng)用程序數(shù)據(jù)隔離。其可以確保在一個(gè)域上應(yīng)用程序的訪問(wèn)不可以訪問(wèn)另一個(gè)域。其確保交叉域呼叫只可以經(jīng)由實(shí)施策略的域管理器服務(wù)進(jìn)行。其確保一個(gè)域上的惡意軟件不能影響另一個(gè)域中的應(yīng)用程序和數(shù)據(jù)。其確保在沒(méi)有認(rèn)證的情況下使用域不影響其他域的安全性。
[0131]本方案不影響其他安全性技術(shù)的使用,諸如虛擬化和容器,因?yàn)楸痉桨概c那些技術(shù)反向兼容。具體地,具有修改的類(lèi)型2管理程序可以利用域信息作為不同操作系統(tǒng)之間的切換的一部分。應(yīng)用程序容器方案也可以被部署在本方案中。
[0132]雖然已經(jīng)具體結(jié)合Android和Linux操作系統(tǒng)描述了上面的實(shí)施例,但可以理解的是這里公開(kāi)的原理可應(yīng)用于擁有本公開(kāi)要解決的相關(guān)特征的任意操作系統(tǒng)。
[0133]雖然上面操作操作系統(tǒng)的設(shè)備被認(rèn)為是移動(dòng)設(shè)備,其可以包括智能手機(jī)、平板電腦、個(gè)人數(shù)字助理(PDA)、智能手表或任何類(lèi)似的設(shè)備,但可以理解的是這里公開(kāi)的原理可應(yīng)用于本公開(kāi)要解決的相關(guān)特征的任意設(shè)備,并且在某些實(shí)施例中包括通用計(jì)算機(jī)。
[0134]在前面的描述中,為了解釋?zhuān)愂隽嗽S多細(xì)節(jié),以提供本發(fā)明實(shí)施例的全面理解。然而,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的是,實(shí)踐本發(fā)明不需要這些特定細(xì)節(jié)。在其他實(shí)例中,以框圖的形式示出熟知的電結(jié)構(gòu)和電路,以不模糊本發(fā)明。例如,關(guān)于這里描述的發(fā)明的實(shí)施例是否被實(shí)施為軟件例程、硬件電路、固件或其組合,未提供具體細(xì)節(jié)。
[0135]本發(fā)明的實(shí)施例可以被表示為存儲(chǔ)在機(jī)器可讀介質(zhì)(也被稱(chēng)為計(jì)算機(jī)可讀介質(zhì)、處理器可讀介質(zhì)或具有這里體現(xiàn)的機(jī)器可讀程序代碼的計(jì)算機(jī)可用介質(zhì))中的軟件產(chǎn)品。機(jī)器可讀介質(zhì)可以是任意適合的有形介質(zhì),包括軟盤(pán)、光盤(pán)只讀存儲(chǔ)器(CD-ROM)、存儲(chǔ)器設(shè)備(易失性或非易失性)或類(lèi)似的存儲(chǔ)機(jī)制的磁性、光學(xué)或電性存儲(chǔ)介質(zhì)。機(jī)器可讀介質(zhì)可以包含在被執(zhí)行時(shí)使處理器執(zhí)行根據(jù)本發(fā)明實(shí)施例的方法中的步驟的各種指令集、代碼序列、配置信息或其他數(shù)據(jù)。本領(lǐng)域普通技術(shù)人員會(huì)意識(shí)到實(shí)施所描述的發(fā)明必需的其他指令和操作也可以被存儲(chǔ)在機(jī)器可讀介質(zhì)上。從機(jī)器可讀介質(zhì)運(yùn)行的軟件可以與電路交互以執(zhí)行所描述的任務(wù)。
[0136]本發(fā)明的上面描述的實(shí)施例只作為示例。改變、修改和變化可以由本領(lǐng)域技術(shù)人員對(duì)特定實(shí)施例實(shí)現(xiàn),而不會(huì)偏離所附權(quán)利要求單獨(dú)限定的本發(fā)明的范圍。
【主權(quán)項(xiàng)】
1.在包括處理器和存儲(chǔ)指令的存儲(chǔ)器的設(shè)備中,其中所述指令由所述處理器可執(zhí)行以實(shí)施提供包括當(dāng)前域和目標(biāo)域的多個(gè)域的操作系統(tǒng),其中所述目標(biāo)域被至少部分地存儲(chǔ)在加密文件系統(tǒng)中,其中對(duì)所述目標(biāo)域的訪問(wèn)需要認(rèn)證和對(duì)所述加密文件系統(tǒng)的訪問(wèn),一種從所述當(dāng)前域切換至所述目標(biāo)域的方法,所述方法包括: 提供與所述當(dāng)前域和所述目標(biāo)域不同的中間域; 接收切換至所述目標(biāo)域的請(qǐng)求; 確定所述目標(biāo)域未在運(yùn)行,至少部分存儲(chǔ)在所述加密文件系統(tǒng)中并且需要訪問(wèn)認(rèn)證; 切換至所述中間域; 在所述中間域中顯示針對(duì)對(duì)所述目標(biāo)域的訪問(wèn)的認(rèn)證質(zhì)詢(xún); 接收響應(yīng)于所述認(rèn)證質(zhì)詢(xún)的認(rèn)證信息; 基于所述認(rèn)證信息解密用于提供對(duì)所述加密文件系統(tǒng)的訪問(wèn)的文件系統(tǒng)密鑰; 基于所述文件系統(tǒng)密鑰提供對(duì)所述加密文件系統(tǒng)的訪問(wèn),并且安裝所述加密文件系統(tǒng);以及 啟動(dòng)所述目標(biāo)域。2.根據(jù)權(quán)利要求1所述的方法,其中在沒(méi)有與所述目標(biāo)域關(guān)聯(lián)的進(jìn)程在運(yùn)行時(shí),所述目標(biāo)域未在運(yùn)行。3.根據(jù)權(quán)利要求1所述的方法,其中與所述目標(biāo)域關(guān)聯(lián)的至少一些用戶界面元素被存儲(chǔ)在與所述加密文件系統(tǒng)不同的文件系統(tǒng)中,所述方法進(jìn)一步包括與所述認(rèn)證質(zhì)詢(xún)一起顯示所述用戶界面元素。4.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括與所述認(rèn)證質(zhì)詢(xún)一起顯示標(biāo)識(shí)所述目標(biāo)域的視覺(jué)元素。5.根據(jù)權(quán)利要求4所述的方法,其中所述視覺(jué)元素是壁紙。6.根據(jù)權(quán)利要求1所述的方法,其中與所述目標(biāo)域關(guān)聯(lián)的輸入法編輯器被存儲(chǔ)在與所述加密文件系統(tǒng)不同的文件系統(tǒng)中,并且其中接收響應(yīng)于所述認(rèn)證質(zhì)詢(xún)的認(rèn)證信息包括:通過(guò)所述輸入法編輯器接收所述認(rèn)證信息。7.根據(jù)權(quán)利要求1所述的方法,其中與所述目標(biāo)域關(guān)聯(lián)的輸入法編輯器被存儲(chǔ)在所述加密文件系統(tǒng)中,所述方法進(jìn)一步包括: 在接收所述認(rèn)證信息之前,接收輸入法編輯器的選擇,其中接收響應(yīng)于所述認(rèn)證質(zhì)詢(xún)的認(rèn)證信息包括:通過(guò)所述輸入法編輯器接收所述認(rèn)證信息。8.根據(jù)權(quán)利要求1所述的方法,其中所述操作系統(tǒng)包括Linux內(nèi)核,并且其中基于所述文件系統(tǒng)密鑰提供對(duì)所述加密文件系統(tǒng)的訪問(wèn)包括:將所述文件系統(tǒng)密鑰存儲(chǔ)在內(nèi)核密鑰環(huán)中。9.根據(jù)權(quán)利要求1所述的方法,其中所述加密文件系統(tǒng)是密碼堆疊文件系統(tǒng)。10.根據(jù)權(quán)利要求1所述的方法,其中所述加密文件系統(tǒng)是eCryptFS文件系統(tǒng)。11.根據(jù)權(quán)利要求1所述的方法,其中附加的塊級(jí)數(shù)據(jù)加密被應(yīng)用于所述加密文件系統(tǒng)。12.根據(jù)權(quán)利要求1所述的方法,其中附加的設(shè)備級(jí)數(shù)據(jù)加密被應(yīng)用于所述加密文件系統(tǒng)。13.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:在安裝所述加密文件系統(tǒng)之后摒棄與所述目標(biāo)域關(guān)聯(lián)的鎖屏。14.根據(jù)權(quán)利要求1所述的方法,其中所述中間域被配置為允許只啟動(dòng)來(lái)自應(yīng)用程序或服務(wù)的預(yù)定組的進(jìn)程。15.根據(jù)權(quán)利要求1所述的方法,其中所述中間域的策略被配置為允許只啟動(dòng)應(yīng)用程序或服務(wù)的預(yù)定組。16.根據(jù)權(quán)利要求15所述的方法,其中所述操作系統(tǒng)是SEAndroid操作系統(tǒng),并且其中所述中間域的所述策略包括SEAndro id策略。17.根據(jù)權(quán)利要求1所述的方法,其中提供中間域包括:在所述操作系統(tǒng)的啟動(dòng)或初始配置時(shí)創(chuàng)建所述中間域。18.根據(jù)權(quán)利要求1所述的方法,其中提供中間域包括:響應(yīng)于所述目標(biāo)域的創(chuàng)建而創(chuàng)建所述中間域。19.根據(jù)權(quán)利要求1所述的方法,其中所述操作系統(tǒng)通過(guò)以下提供多個(gè)域,針對(duì)每個(gè)域: (a)將隔離域的資源與唯一域標(biāo)識(shí)符關(guān)聯(lián),所述資源包括至少一個(gè)數(shù)據(jù)文件或至少一個(gè)應(yīng)用程序; (b)存儲(chǔ)與所述唯一域標(biāo)識(shí)符關(guān)聯(lián)的策略,所述策略包括用于控制對(duì)所述資源的訪問(wèn)的規(guī)則組;以及 (C)基于與所述隔離域關(guān)聯(lián)的策略而控制對(duì)所述隔離域的資源的訪問(wèn)。20.根據(jù)權(quán)利要求19所述的方法,其中所述操作系統(tǒng)通過(guò)執(zhí)行所述操作系統(tǒng)的至少部分地位于所述操作系統(tǒng)的內(nèi)核外部的至少一個(gè)服務(wù)來(lái)提供所述多個(gè)域。21.根據(jù)權(quán)利要求20所述的方法,其中所述操作系統(tǒng)通過(guò)執(zhí)行所述操作系統(tǒng)的位于所述操作系統(tǒng)的內(nèi)核內(nèi)的至少一個(gè)進(jìn)一步服務(wù)來(lái)提供所述多個(gè)域。22.根據(jù)權(quán)利要求19所述的方法,其中所述操作系統(tǒng)實(shí)施多個(gè)用戶賬戶,并且其中所述當(dāng)前域和所述目標(biāo)域共同與所述用戶賬戶中的一個(gè)關(guān)聯(lián)。23.根據(jù)權(quán)利要求19所述的方法,其中(c)包括基于與所述目標(biāo)域關(guān)聯(lián)的策略而控制進(jìn)程對(duì)所述目標(biāo)域資源的訪問(wèn),其中所述進(jìn)程與不同于所述目標(biāo)域的其他域中的一個(gè)關(guān)聯(lián)。24.根據(jù)權(quán)利要求23所述的方法,其中所述進(jìn)程基于所述其他域的唯一域標(biāo)識(shí)符而與執(zhí)行文本標(biāo)識(shí)符關(guān)聯(lián),并且其中(c)包括基于所述執(zhí)行文本標(biāo)識(shí)符控制所述進(jìn)程對(duì)所述目標(biāo)域資源的訪問(wèn)。25.根據(jù)權(quán)利要求24所述的方法,其中所述其他域的資源包括所述至少一個(gè)應(yīng)用程序,并且其中所述執(zhí)行文本標(biāo)識(shí)符基于所述其他域的唯一域標(biāo)識(shí)符和與被執(zhí)行以產(chǎn)生所述進(jìn)程的所述至少一個(gè)應(yīng)用程序關(guān)聯(lián)的唯一應(yīng)用程序標(biāo)識(shí)符。26.根據(jù)權(quán)利要求25所述的方法,其中所述操作系統(tǒng)是Android操作系統(tǒng),所述唯一應(yīng)用程序標(biāo)識(shí)符是在安裝時(shí)賦予應(yīng)用程序的Unix型用戶標(biāo)識(shí)符(UID),所述執(zhí)行文本標(biāo)識(shí)符包括應(yīng)用程序的UID,并且所述唯一域標(biāo)識(shí)符被包含在所述UID的預(yù)留比特中。27.—種計(jì)算機(jī)可讀介質(zhì),包括存儲(chǔ)于其上的指令,所述指令在被計(jì)算機(jī)執(zhí)行時(shí)執(zhí)行權(quán)利要求I所述的方法。28.—種包括處理器和存儲(chǔ)指令的存儲(chǔ)器的設(shè)備,所述指令由所述處理器可執(zhí)行以實(shí)施提供包括當(dāng)前域和目標(biāo)域的多個(gè)域的操作系統(tǒng),其中所述目標(biāo)域被至少部分地存儲(chǔ)在加密文件系統(tǒng)中,其中對(duì)所述目標(biāo)域的訪問(wèn)需要認(rèn)證和對(duì)所述加密文件系統(tǒng)的訪問(wèn),其中所述指令進(jìn)一步可執(zhí)行以執(zhí)行從所述當(dāng)前域切換至所述目標(biāo)域的方法,所述方法包括: 提供與所述當(dāng)前域和所述目標(biāo)域不同的中間域; 接收切換至所述目標(biāo)域的請(qǐng)求; 確定所述目標(biāo)域未在運(yùn)行,至少部分被存儲(chǔ)在所述加密文件系統(tǒng)中,并且需要訪問(wèn)認(rèn)證; 切換至所述中間域; 在所述中間域中顯示針對(duì)對(duì)所述目標(biāo)域的訪問(wèn)的認(rèn)證質(zhì)詢(xún); 接收響應(yīng)于所述認(rèn)證質(zhì)詢(xún)的認(rèn)證信息; 基于所述認(rèn)證信息解密用于提供對(duì)所述加密文件系統(tǒng)的訪問(wèn)的文件系統(tǒng)密鑰; 基于所述文件系統(tǒng)密鑰提供對(duì)所述加密文件系統(tǒng)的訪問(wèn),并且安裝所述加密文件系統(tǒng);以及 啟動(dòng)所述目標(biāo)域。
【文檔編號(hào)】H04L9/32GK105981027SQ201480055972
【公開(kāi)日】2016年9月28日
【申請(qǐng)日】2014年8月11日
【發(fā)明人】詹姆士·亨利·阿蘭·普德雷爾, 詹姆斯·亞歷山大·繆爾, 亞歷山大·詹姆斯·邁因
【申請(qǐng)人】哥萊菲特軟件公司