中文字幕无码日韩视频无码三区

集成操作系統的域管理的制作方法

文檔序號:10476257閱讀:408來源:國知(zhi)局
集成操作系統的域管理的制作方法
【專利摘要】一種提供多個安全域的計算設備操作系統。域管理器選擇性地創建多個安全域,并且選擇多個安全域中的一個作為當前域。域策略服務針對每個安全域存儲并執行包括規則集的策略,該規則集控制與該域關聯的文件和應用的訪問。程序包管理器針對每個安全域執行與該域關聯的應用的安裝。域消息服務提供與多個安全域中的不同安全域關聯的運行進程之間的通信。活動管理器選擇性地切換當前域。實現了域隔離,同時啟用了提供對多個域的資源的并行訪問的統一用戶界面。
【專利說明】
集成操作系統的域管理
技術領域
[0001]本公開大體地涉及移動設備安全。更具體地,本公開涉及用于移動設備的安全域管理。
【背景技術】
[0002]在諸如智能電話,平板和移動互聯網設備之類的以安卓?、LinUX?或任意基于Unix?的操作系統(例如,iPhone?)為基礎的移動設備上需要多個隔離域,其中位于域中的應用和數據與可能由位于該域之外、位于網站上或位于同一設備的其它域中的應用產生的安全威脅隔離。這樣的多個安全域通常將由單個用戶、設備擁有者使用,以解決與不同移動設備使用情況關聯的不同訪問容易度、隱私要求和安全要求。例如,設備擁有者可能對游戲應用具有與對移動銀行應用和數據不同的訪問容易度、隱私要求和安全要求,或者設備擁有者可能期望暫時與家庭成員或朋友共享其設備上的特定應用,而不共享其它應用和數據,如個人電子郵件、聯系人和文本消息。此外,存在由諸如設備擁有者或外部團體(如機構或公司)之類的不同實體管理不同域的要求,其中每個實體可能對他們管理的域中的應用和數據的訪問和使用具有不同的安全要求。例如,對于在每個域中允許的應用以及應用可以在域中執行的條件,這些要求可能在域之間不同,每個要求可能需要是可由管理每個域的實體針對該域唯一地配置的。根據在域中包含的應用和數據的類型,還需要支持為進入不同域所需要的不同用戶認證機制、不同的重認證時間范圍(或可選地沒有認證)(例如,設備擁有者可能不希望輸入密碼來玩游戲或訪問谷歌?地圖,但他們可能希望具有對訪問移動銀行應用的強認證形式)。
[0003]移動設備安全和域隔離領域的現有技術已經使用傳統個人計算機(PC)和服務器計算安全技術,如用戶賬戶、管理程序/虛擬化、應用程序包裝器和防病毒掃描。然而,移動設備的典型使用實質上與這些傳統環境不同。移動設備本質上是移動的,并且總是伴隨設備擁有者。他們是連接的,總是開機的并且需要對短持續時間的任務的快速訪問。它們以實質上與傳統工作站和大型機共享不同的方式共享。功耗對移動設備也是至關重要的,這是耗電的病毒掃描和虛擬化技術也必須在移動設備上廣泛使用的一個原因。
[0004]—種傳統的域隔離方法是在設備上創建單獨的用戶賬戶,由此,每個用戶必須登錄已經為該用戶配置的賬戶。根據操作系統(OS),這可能迫使另一用戶注銷。此方法支持單個設備上的多個用戶,并且分離或隔離每個用戶的應用數據。在所有用戶之間利用相同的操作系統,并且所有用戶具有相同的用戶界面特征。所有用戶可訪問已安裝的應用,這是存儲器和中央處理單元(CPU)資源的有效使用。這也允許用戶以他們期望的外觀和感覺配置他們的賬戶。
[0005]雖然用戶賬戶提供數據隔離以及在不同用戶賬戶之間使用相同應用和OS的效率,但是此方法受以下限制。其提供對設備的全部訪問或全部不訪問,而沒有臨時訪問的靈活性。“來賓”用戶賬戶可以被設置有限的訪問權,但這不能幫助對移動設備而言(例如,對家庭成員或朋友而言)常見的自發共享。用戶賬戶在被認為是個人設備的移動設備上通常不可用。用戶仍然必須在每個用戶賬戶之間切換,這不能反映人們期望使用他們的移動設備的方式。在切換用戶賬戶時用戶必須登錄,這進一步造成該方法的不方便,因為在多用戶賬戶情況中的第一用戶和第二用戶之間沒有隱含關系。通常不存在不活動的計時器或類似機制,使得在切換域時不總是需要登錄。用戶(賬戶)之間的隔離位于用戶空間或應用級,并且由OS執行。具有管理員或根權限的任何人或任何軟件(包括惡意軟件)可以訪問所有用戶的數據。一些系統確定能夠加密一些用戶數據來幫助緩解此侵害,但是用戶數據通常仍極易受攻擊,并且任何內核級開發或處理能夠修改應用、進程,攔截數據并且訪問其期望的任何文件/對象。
[0006]此外,(在大型計算機上開發的且類似地擴展至臺式機的)傳統用戶賬戶在真正的個人設備(如智能電話)上不能很好地工作。移動設備與大型計算機或臺式計算機不同地共享。設備擁有者和用戶日益想要具有移動設備上的傳統鎖屏或‘全部或全部不’訪問控制機制的替代方式。例如,設備擁有者在不需要用戶認證的域中具有頻繁地訪問的且不包含敏感信息的應用,是令人期望的;這與個人保護域或工作保護域的要求不同。這種開放的、共享的或公共的域的主要目標是在這樣的應用和數據的安全被用戶視為不重要時(例如,天氣或導航)的使用方便和快速訪問。因此,用戶不想每次他們訪問這樣的開放域時都輸入密碼或PIN。此外,這樣的開放域可以包括與用戶或域擁有者可以在他們的保護域中允許的那些應用相比可能不那么可信的應用。例如,安卓上的許多應用已知會訪問聯系人數據庫。最后,雖然這種權限必須在安裝時被授權以能夠安裝應用,但是許多用戶對此不嚴密地進行檢查或不理解授予這樣權限的含義。
[0007]現在參照圖1A至ID描述其它傳統域隔離方法。
[0008]如本領域已知的且在圖1A中圖示的,實現操作系統的計算設備(如移動設備)可以被理解為包括:硬件、包括內核和中間件的操作系統、以及應用空間(或用戶空間)。內核管理軟件應用并且向軟件應用提供輸入/輸出(I/O)服務以訪問硬件,并且中間件向軟件應用提供除由內核提供的那些服務之外的服務。
[0009]圖1B和圖1C中圖示的一種傳統域隔離方法使用基于管理程序的虛擬化或虛擬機。利用虛擬機來某種程度地復制操作系統,以提供不同的隔離域。根據管理程序,存在不同類型的虛擬機。圖1B中圖示的類型1(或裸機)管理程序直接在設備CPU上運行(‘裸機’),且通過針對每個域支持完整的且分離的無特權的操作系統實例,提供域隔離。隔離僅依賴于管理程序。圖1C中圖示的類型2管理程序是另一虛擬化方法,其中第二來賓OS在主OS之上運行。還存在其它混合操作系統級虛擬化方法。
[0010]基于管理程序的虛擬化提供域之間的隔離,但受到以下限制。OS和應用的復制意味著在設備存儲器、CPU和功耗方面存在顯著設備開銷。管理程序方案的高資源需求使得支持多個域不現實。數據、應用共享和進程間通信(IPC)通常是不可能的,盡管提出了如果管理程序支持特殊消息服務則通過特殊消息服務進行某種跨域數據共享。每個OS被暴露給內核級惡意軟件,內核級惡意軟件可能破壞域之間的隔離。用戶必須在域之間來回切換(例如,從個人應用切換至工作應用),這不反映人們期望使用他們的移動設備的方式。將類型I或類型2管理程序集成到移動設備上的時間和開銷是非常高的,使得此方法對于低成本的移動設備不可行。在域之間切換的性能影響高。最終,這樣的方案支持由每個OS提供任何用戶賬戶和用戶認證,這是傳統的全部或全部不訪問。
[0011]圖1D圖示的移動設備上的域隔離的第三種傳統方法涉及應用級容器化(containerizat1n)。在這樣的情況中,應用容器(或域)共享相同的硬件和OS,但使用容器化或包裝器技術來作為容器和OS中的應用之間的代理。這通過提供間接的一層產生多個獨立域,使得較低級設備資源、存儲器和文件系統可以透明地映射至僅應當由容器或域中的應用訪問的更高級資源。盡管應用在容器內和容器外通常被復制(例如,在容器內可以用于工作和在容器外可以用于個人使用的電子郵件應用),但是由于僅存在一個版本的OS,所以容器化在移動設備資源的消耗方面(尤其與虛擬化相比)是相對高效的。作為應用級方案,容器方案具有非常實際的好處,因為其已經在本領域中(例如,反向兼容)被下載到設備上。
[0012]在容器化中,所有安全和所有執行都被包裝在容納應用的容器周圍。因此,下載被容納的應用的任何人不但接收該應用,而且接收與該應用關聯的所有安全信息。利用容器化,壞人仍然可能:(I)對安全策略進行反向工程;或(2)在環境中(如在可以從其中提取信息的仿真器上)執行該應用。
[0013]但是,應用級容器化作為一種用于域隔離的方法受到以下限制。從安全角度看,具有一些基礎技能的黑客或者位于設備上的惡意軟件相對容易地攔截容器和OS之間的調用,從而破壞隔離并捕獲數據和個人信息。容器化不是在操作系統或內核中執行的,并且暴露于可能在設備上存在的惡意軟件。例如,如果操作系統是Linux或安卓且黑客獲得根訪問特權,那么相對簡單的是從RAM中提取域數據或其它重要信息(例如,用于訪問域的密碼,或用于加密域中的數據的密碼術密鑰),或這樣的內核級惡意軟件在I/O驅動(如麥克風或幀緩沖器)上竊聽。容器隔離由該容器“包裝”的應用和數據,但不限制不在容器中的其它應用訪問存儲器、文件或網絡等。跨域共享單個應用映像是不可能的,這樣的技術不允許相同的應用既在容器內又在容器外。結果,容器通常僅支持已對該容器修改的預定應用,如郵件、消息、瀏覽、聯系人、日歷等。這不提供用戶或公司IP部門期望的應用選擇。公共應用必須被修改以支持容器,這成倍增加設備上的存儲器和內存并且增加應用開發者的努力和參與。通常,必須為容器方案專門創建私人應用儲存庫,這增加了對供應商方案的鎖定且需要應用開發者的參與,從而進一步限制選擇。利用應用包裝方法,可能需要用對如何存儲、共享和發送數據進行控制的安全庫對可執行的代碼打補丁。這引入了許可和版權問題,因為通常不授權許可擁有者修改應用。用戶必須仍在域或容器之間來回切換,這不反映人們使用其移動設備的方式。最后,域通常具有其自己預定的用戶界面,該預定用戶界面不同于本地OS用戶體驗且不能由設備用戶定制。
[0014]域隔離的又一種方法是設備操作系統中的內核級平臺安全方法,如Secur i tyEnhanced Linux?(SELinux?) AELinux提供應用和用戶對對象和資源(如文件)的強制訪問控制(MAC)。為每個用戶或應用分配安全標簽,并且可以為所有標簽分配策略。SELinux可以用于與域切換機制相結合的基于角色的訪問控制,但是安卓?不以這樣的方式使用用戶標識符。SELinux使用特殊內核模塊,該特殊內核模塊依賴于Linux中的Linux安全模塊(LSM)接口來基于安全策略執行進程之間的隔離。在加載之前可以針對SELinux策略驗證應用,并且所有進程可以局限于預定訪問,使得如果策略不允許那樣,那么一個應用不能啟動或訪問另一進程、目錄或數據。利用正確的策略機制,可以防止應用、惡意軟件以及甚至內核根套件(root kits)訪問屬于另一用戶或應用的應用和數據。
[0015]雖然與容器相比以及與虛擬化方法相比,本地OS方案從安全、性能和應用隔離角度具有許多優點,但是其受到如下缺陷:內核對中間件級不具有用以能夠執行在中間件級要求的域隔離的可見性。
[0016]此外,內核級平臺安全作為用于域隔離的方法受到以下限制。這樣的內核模塊方法不具有任何用戶界面或域的概念,但是通常使用已有的傳統用戶賬戶,這包括允許具有跨所有域的特權的根或管理員賬戶。在此方法中使用的內核模塊在操作系統中是非常低的,且不具有如下的細化的應用特定信息:該細化的應用特定信息用于提供為滿足移動設備上的隔離域的消費者需求和共同使用所需的那類策略控制(例如,用于域的用戶認證策略)以及應用控制(例如,對特定域的應用約束)。將SELinux類型策略語言和執行擴展至中間件顯著提高了方案的復雜性。這樣的策略通常是靜態的且不是最新的。已存在用于為SELinux提供遠程策略更新的計劃,但策略應用于整個設備且對于每個域不是唯一的。例如,安卓上的進程間通信(IPC)難以監控,因為權限檢查以及調用方/被調用方檢查是安卓中間件中實施的,并且內核不能訪問足夠的信息來監視和控制域之間的IPC。最終,通常沒有對限定域間數據共享的用戶和應用訪問的足夠細化控制,這引起數據泄露問題,這對于特定類型的數據是不可接受的。雖然這可能對于一些共享應用(例如,攝像頭和圖片庫)是可接受的,但是存在用內核級方案不可能實現的對文件和文件閱讀器應用(例如,PDF查看器)需要的更高程度細化。
[0017]用于提供安全的另一傳統方法是加密的文件系統,如密碼術的堆疊文件系統。例如,eCryptFS文件系統(http: //ecryptfs.0rg)是用于Linux的POSIX兼容的企業密碼術堆疊文件系統。但是,加密的文件系統不是提供多個域的合適方式。
[0018]因此,期望提供用于在移動設備上創建多個域的方式,其中位于域中的應用和數據與安全威脅隔離(安全威脅可能產生自網站上的位于該域之外或相同設備上位于另一域中的應用),且該方式緩解上述傳統方法中每個傳統方法的一個或多個缺陷,提供了相對于這些傳統方法上的優點,或提供了這些傳統方法的替代方法。
[0019]附圖圖示
[0020]現在將參照附圖,僅通過示例來描述本公開的實施例。
[0021]圖1A、圖1B、圖1C和圖1D示出圖示用于域隔離的操作系統結構和傳統方法的框圖。
[0022]圖2示出圖示用于提供隔離域的本發明的系統的框圖。
[0023]圖3示出圖示多個用戶賬戶和多個域的實現方式的示意圖。
[0024]圖4示出圖示從第一域切換至第二域的方法的框圖。
[0025]圖5示出圖示域消息方法的框圖。
[0026]圖6示出圖示跨域執行方法的框圖。
[0027]圖7示出圖示域應用安裝方法的框圖。
[0028]圖8示出圖示更新策略方法的框圖。
[0029]圖9示出圖示從當前域切換至另一域的方法的框圖。
[0030]圖1O示出圖示從當前域切換至未運行的、加密的、且要求訪問認證的目標域的方法的框圖。
【具體實施方式】
[0031]本文公開的方案向移動設備提供靈活的、有效的且安全的隔離域以及這樣的域的管理,并且減輕上面描述的傳統方法中的每個傳統方法的一個或多個缺陷,提供相比于這些傳統方法的優點,或提供這樣的傳統方法的替代方法。
[0032]下面的要素與克服上面的傳統方法的缺點的方案有關。首先,近些年已經從主要將移動設備用于移動電話和SMS(短消息服務)轉移至將移動設備用于網頁瀏覽、社交網絡、游戲、電子郵件、即時消息、基于定位的服務和移動商務。利用經由服務提供商和WiFi的寬互聯網連接,移動計算一直是連接的,且是真正地移動的。此外,由于應用激增以及包括諸如像攝像頭、GPS、加速度計、氣壓計等之類的傳感器的設備的能力,移動設備具有更加多樣的用途。它們通過IP網絡或傳統電話網絡用于娛樂,社交網絡,攝像頭/視頻,導航,訪問用于個人(例如,照片共享)或工作(例如,公司CRM系統)或二者結合(例如,文件共享(如DropBox))的云服務,以及來自文本、聊天、電子郵件和語音的許多形式的消息。此外,隨著不斷增加的這種移動設備上的應用的功率、連接和數量,用戶日益在這些設備上存儲和追蹤更敏感的信息(例如,個人數據、憑證、密碼術密鑰、信用卡號、密碼、聯系人、過去的位置、當前位置、網頁瀏覽歷史、安裝的應用以及當前設備狀態(例如,未移動)等)。此敏感信息通常是惡意用戶和惡意軟件(電腦病毒)的目標。此外,由于移動設備隨人一起攜帶且由于它們的可擴展能力,所以希望能夠快速地訪問這些設備以進行快速回復、快速網頁搜索等。傳統設備鎖定程序的使用帶來不方便。例如,為了查找詞典中的詞,用戶可能不希望輸入密碼來解鎖設備。此外,經常例如為了臨時目的而共享移動設備(或期望共享移動設備),如為了進行電話呼叫、讓家庭成員玩游戲或在設備擁有者正在開車時在車輛導航過程中。這大大不同于傳統計算或服務器環境中的傳統用戶賬戶,其中在多人之間共享一個設備或服務,但提前知道這些用戶,且這樣的共享使用往往是在持續不斷的和規則的基礎上的。此外,由于移動設備的較小形狀因子以及使用頻率和位置,移動設備比便攜式計算機或PC大大頻繁地丟失或被偷,因此可能落入黑客手中。許多用戶和企業需要遠程地鎖定、定位和/或“擦除”(從設備上刪除所有應用和數據)丟失或被偷的移動設備的方式,該方式包括一些國家的智能電話防盜條例(http: //www.ctia.0rg/poI icy-1nitiatives/voluntary-guidel ines/smartphone-ant1-theft-voluntary-commitment)。此外,公司環境中的員工針對個人用途和工作用途使用單個設備是常見的。這是共享的另一形式一但僅是硬件和網絡服務的共享一其中由于公司期望擁有和控制工作數據的傳播(例如,尤其在員工離職時),所以安全、隱私和數據隔離要求較高,且用戶可能具有他不想要與雇主共享的隱私數據。在許多情況下,相同的應用可以用于個人使用和公司使用一一因為這樣提高生產率一一然而,應用數據必須隔離,使得可以刪除(擦除)公司數據而不影響個人數據,或者可以刪除(擦除)個人數據而不影響公司數據。此外,由于設備能力、敏感信息、共享和雙重使用,所以越來越需要隱私和靈活的訪問控制。通知常常顯示設備擁有者不總是希望每個人看到或訪問的敏感個人信息(聊天消息、軟件更新、廣告)。用戶想要借出其設備的靈活性,但期望限制訪問特定能力和/或服務,如只讀、僅接聽電話呼叫或特定賬戶(例如,臉書(Facebook))。許多用戶面對在全部或全部不設備鎖定的不滿意替代和根本不保護設備之間進行選擇。最后,移動設備本質上比PC連接至更多的網絡(例如,飯店、酒店和機場中的WiFi網絡),這使這些設備暴露于更多基于網絡的攻擊、入侵和分組捕獲。此外,移動設備用戶可訪問第三方應用儲存庫,第三方應用儲存庫使用戶能夠下載可能包含惡意軟件(電腦病毒)的應用。例如,基于安卓操作系統的移動設備現在占以移動設備為目標的惡意軟件的90%以上。
[0033]在本文中,‘域’可以被認為代表一組資源(例如數據文件、應用和服務)和規則集或‘策略’之間的關系,由此進程對資源的訪問至少部分地受策略控制。例如,可以認為特定域包括或包含與該域關聯的多個數據文件,并且對這些數據文件的訪問至少部分地受與該域關聯地限定的策略控制。類似地,可以安裝應用或者應用可以與特定域關聯,并且對該應用(包括例如執行應用的能力)的訪問至少部分地受與該域關聯地限定的策略控制。
[0034]例如,在單用戶設備中能夠提供具有對選擇的應用和其它資源提供不同訪問權的不同策略的多個域,是令人期望的。在一個情況中,可能令人期望的是,提供需要認證且包含希望孩子不可訪問的數據或應用的受限域,以及不需要認證且希望孩子可訪問(以例如玩游戲)的兒童模式域。因此,當在開放域中操作時,受限域的數據或應用不可由與開放域關聯的進程訪問,是令人期望的。
[0035]上面討論的域的期望功能中的一些可以由通常在多用戶操作系統中實現的傳統用戶賬戶提供。可以認為這樣的用戶賬戶構成一種域,因為用戶賬戶代表一組資源(例如,用戶的數據文件、應用)以及與控制對用戶資源的訪問的該用戶賬戶(例如,權限、特權)關聯的規則集或策略,等等。
[0036]但是,針對在移動設備上提供不同域資源的安全隔離的益處以及方便且統一的單用戶體驗,傳統用戶賬戶不是恰當的方式。除上面的期望功能之外,提供期望體驗還需要并行實施涉及兩個域的動作的能力,例如從一個域向另一域進行復制并粘貼、提供并行訪問多個域的資源的單用戶界面、或從在第一域中操作的郵件客戶端打開與第二域關聯的郵件。傳統用戶賬戶不旨在支持這樣的功能,因為用戶隔離控制(通常集成在操作系統服務中的且邏輯上符合不同用戶賬戶旨在由不同個體使用的假設)不允許或者不容易地支持不同域的多個進程和資源的現成共享和協作,該現成共享和協作是由個體并行地使用多個域以啟用期望功能所需要的。
[0037]雖然如上面討論的那樣,可能不以與用戶賬戶相同的方式限制諸如虛擬化和容器化之類的替代隔離機制,但它們具有上面討論的不同缺陷。因此,希望提供隔離域管理作為操作系統的集成特征。此外,雖然仍如上面討論的那樣,一些期望功能可以由位于操作系統的內核中的服務提供,但是當前操作系統內核通常不能支持或允許足夠的域信令和域管理來提供為同時涉及多個域的動作所需的進程共享和協作。
[0038]因此,所公開的方案經由對操作系統的現有組件或服務的修改或新的組件或服務的引入,來提供域感知。在一些實施例中,組件和服務中的至少一些設置在內核外的操作系統中,即在中間件中(中間件在本文中用于表示內核外部且在內核和用戶應用之間的操作系統)。在一些實施例中,組件和服務中的至少一些設置在操作系統內核中。在一些實施例中,由操作系統中間件的經修改或新的組件或服務啟用域創建和管理,并且域執行由操作系統內核實施,并且為此目的提供經修改或新的內核模塊或內核修改。
[0039]因此,在第一實施例中,在包括處理器和存儲可由該處理器執行以實現安卓操作系統的存儲器的移動設備中,改進包括:用戶管理器,該用戶管理器用于選擇性地創建與在安卓操作系統中實現的任意用戶賬戶不同的多個域;域管理器,該域管理器用于選擇多個域中的一個作為當前域;域策略服務,該域策略服務用于針對每個域,存儲和執行包括規則集的策略,該規則集控制對與該域關聯的文件和應用的訪問;程序包管理器,該程序包管理器用于針對每個域,基于該域的策略和當前域的策略,選擇性地允許或阻止與該域關聯的應用的安裝或執行;域消息服務,該域消息服務用于基于多個域中不同域的相應策略,提供與多個域中該不同域關聯的運行進程之間的通信;以及活動管理器,該活動管理器用于選擇性地切換當前域,其中用戶管理器、域管理器、域策略服務、程序包管理器、域消息服務以及活動管理器在安卓操作系統的內核外部在該安卓操作系統中實現。改進可以進一步包括:域內核模塊,該域內核模塊用于針對每個域,執行與該域關聯的策略,其中域內核模塊在安卓操作系統的內核中實現。
[0040]在第二實施例中,由計算設備的處理器實施的用于在該計算設備的操作系統中提供多個安全域的方法包括:(a)針對每個安全域:(al)將該安全域的資源與唯一域標識符關聯,該資源包括至少一個數據文件或至少一個應用;以及(a2)與該唯一域標識符關聯地存儲策略,該策略包括用于控制對該資源的訪問的規則集;(b)接收該多個安全域中選擇的一個作為當前域,其中該多個安全域包括與當前域不同的目標域;以及(C)基于與當前域關聯的策略以及與目標域關聯的策略,控制對目標域資源的訪問。
[0041]在第三實施例中,用于在計算設備的操作系統中提供多個安全域的方法包括:(a)針對每個安全域:(al)將該安全域的資源與關聯于該安全域的唯一域標識符關聯,該資源包括至少一個數據文件或至少一個應用;以及(a2)與該唯一域標識符關聯地存儲策略,該策略包括用于控制對該資源的訪問的規則集;(b)生成與關聯于該多個安全域中的第一安全域的初始進程關聯的事件消息;(C)確定與該多個安全域中的第二安全域關聯的目標進程被配置為對該事件消息做出響應;(d)基于與該第一域關聯的策略以及與該第二域關聯的策略,處理該事件消息,以產生經處理的事件消息;以及(e)基于與該第一域關聯的策略和與該第二域關聯的策略,向該目標進程傳遞該經處理的事件消息或對該目標進程阻止該經處理的事件消息。
[0042]在第四實施例中,在計算設備的操作系統中提供多個安全域的方法包括:(a)針對每個安全域:(al)將該安全域的資源與關聯于該安全域的唯一域標識符關聯,該資源包括至少一個數據文件或至少一個應用;以及(a2)與該唯一域標識符關聯地存儲策略,該策略包括用于控制對該資源的訪問的規則集;(b)從與多個安全域中的第一安全域關聯的初始進程接收用于啟動與多個安全域中的第二安全域關聯的目標進程的請求;以及(C)基于與該第一域關聯的策略和與該第二域關聯的策略,處理該請求。
[0043]在第五實施例中,在具有處理器和用于存儲包括內核和位于該內核之外的中間件的操作系統的存儲機制的數據處理系統中,一種方法包括:在該中間件中提供第一裝備,該第一裝備用于創建多個域并且將該多個域與用于控制對該多個域的訪問的對應策略關聯;在該中間件中提供第二裝備,該第二裝備用于在該多個域之間切換;以及至少部分地在該中間件中提供第三裝備,該第三裝備用于執行該多個域的對應策略。
[0044]在第六實施例中,一種計算設備包括處理器和存儲指令的存儲器,該指令可由該處理器執行以實時提供多個安全域的操作系統,并且該操作系統包括:域管理器,該域管理器用于選擇性地創建該多個安全域,并且用于選擇該多個安全域中的一個作為當前域;域策略服務,該域策略服務用于針對每個安全域,存儲并執行包括規則集的策略,該規則集控制對與該域關聯的文件和應用的訪問;程序包管理器,該程序包管理器用于針對每個安全域,執行與該域關聯的應用的安裝;域消息服務,該域消息服務用于提供與該多個安全域中的不同安全域關聯的運行進程之間的通信;以及活動管理器,該活動管理器用于選擇性地切換當前域。
[0045]現在參照圖2描述用于提供隔離域的示例性系統100。
[0046]該系統可以在任何計算設備中實現,該計算設備包括移動設備,如智能電話、平板、便攜式計算機或臺式機、或具有易失性存儲器和處理器的任意其它電子設備,易失性存儲器包含可由處理器執行以提供操作系統和軟件應用(或者應用)的計算機代碼。計算設備可以進一步包括接口,該接口可以包括用戶輸入設備,如鍵盤、指點設備、觸摸屏,并且該計算設備可以進一步包括通信接口,如用于通過有線通信網絡或無線通信網絡通信的無線電和關聯的控制電路,有線通信網絡或無線通信網絡可以是互聯網和/或蜂窩或WiFi鏈路或藍牙或近場通信(NFC)。
[0047]操作系統的特征可以在于包括內核以及中間件,內核管理軟件應用并且向軟件應用提供來自設備的處理器和其它硬件組件的輸入/輸出(I/o)服務,中間件提供除由內核提供的那些服務之外的服務。
[0048]一般而言,本發明的方案包括:修改操作系統級協議以使能域感知。在移動設備上創建多個域。在此后描述的實施例中,操作系統是安卓?,但是這樣的選擇不應被認為限制本發明的方案的期望范圍。安卓僅用作示例,并且類似于其它多用戶操作系統(例如,QNX、視窗)。
[0049]因此,如圖2所示,系統100包括內核,在系統100在運行安卓?操作系統的移動設備中實現時,該內核是Linux?內核110。內核100包括:安全數據儲存庫112、域內核模塊116和Linux安全模塊114,在一個實施例中,Linux安全模塊114是增強的Linux安全模塊,下面將進一步討論它們各自的功能。本領域技術人員將理解,內核110可以進一步具有其它傳統組件(例如,驅動)或與前述組件不同的其它組件。
[0050]系統100進一步包括操作系統中間件120,操作系統中間件120包括:域消息服務122、域管理器124、域策略服務126、用戶管理器128、系統設置模塊130、密鑰保護中介132、活動管理器134、程序包管理器136以及窗口管理器138。用戶管理器128、系統設置模塊130、密鑰保護中介132、活動管理器134、程序包管理器136以及窗口管理器138對應于并且擁有安卓7?的已知組件或服務的相應功能,但被修改為如下面討論的那樣是域感知的。域消息服務122、域管理器124和域策略服務126是其它組件,它們的功能在下面討論。
[0051]系統100進一步包括用于實現一個或多個域的應用空間140(或用戶空間)。為了圖示,示出第一域142-1和第二域142-2,但是將理解,可以實現任意數量的域。每個域可以包括域設置模塊的實例化,如域設置模塊144-1、144-2的第一實例化和第二實例化,并且通常將包括域導航器模塊146-1、146-2和域管理應用148-1、148-2的第一實例化和第二實例化。每個域還可以具有第一應用的分離實例化150-1、150-2,而第一域142-1可以實例化與在第二域142-2中實例化的第三應用154不同的第二應用152。
[0052]^
[0053]諸如第一域142-1和第二域142-2這樣的域是將任何應用和與那些應用關聯的數據保持分離的隔離區域。可以遠程地(例如,由企業信息技術(IT)管理者)或本地(例如,由設備擁有者)控制域,以針對特定域規定應用、數據、配置、連接和安全策略。例如,可以控制來自特定域的網絡訪問。可以控制密碼重認證時間(例如,使得當在指定時間段內切換域時用戶不需要重新認證)。域的管理員通常具有這樣的控制。管理員可以是個人用戶、或公司IT管理者或其它遠程實體。
[0054]由于域的隔離和分隔性質,本文討論的域可以被認為是受保護的域。例如,一個域可以由企業外部地管理,該企業不希望在設備丟失或被偷時或者在由另一域中的設備擁有者下載的惡意軟件危害該設備時該企業的信息或私有業務應用被泄露。設備擁有者不希望企業追蹤其偏好、網絡瀏覽習慣或個人通信,因此他也希望有他自己的受保護的域。此外,設備擁有者不希望對設備上的所有應用和服務施加相同級別的認證,但保證受保護的域中的數據仍然是安全的。
[0055]提供多個域使設備擁有者具備傳統的“全部或全部不”的設備訪問控制的替代方案。利用支持安全域和開放域的能力,訪問可以由用戶根據需要來配置,具有可變的注銷時間和訪問控制(例如,PIN、密碼、面部識別或什么也沒有)。這樣的靈活性降低了由于不方便而在設備上根本不使用任何密碼的可能性,同時仍賦予擁有者獨立于遠程管理員的設備選擇。
[0056]僅通過示例,圖3示出示意圖300,其中實現系統100的設備305配置有兩個用戶:用戶A 310和用戶B 315,其中三個域Al 320、A2 325,A3 330是與用戶A關聯地創建的,并且兩個域BI 335和B2 340是與用戶B關聯地創建的。如圖示出的,域Al的策略可以允許訪問選擇的電子郵件賬戶345,±1)^2的策略允許訪問GmaiI?賬戶和臉書? 350。
[0057]為了清晰,實現系統100的設備還可以配置有僅一個用戶,且還可以創建本文描述的多個域,并且本文描述的方法和協議與這樣的多個域關聯地實現。
[0058]域感知
[0059]可以基于在Unix?操作系統和Linux?操作系統中實現的用戶標識符(UID)概念和組標識符(GID)概念來提供域感知。UID和GID在Unix和Linux中用來向進程和文件分配權限。超級用戶或根通常被分配UID 0,而其它范圍通常為系統進程保留。
[0060]但是,在安卓?中,UID不用于表示用戶;相反,每個應用在安裝時被分配唯一的UID和GID,并且此(UID,GID)對(可以認為是應用標識符)被分配給與該應用關聯的進程和數據文件。在最近版本的安卓?(安卓4.2)中,引入多用戶能力,該多用戶能力在整個操作系統各處中增加信令來表示哪個用戶賬戶是活躍的。UID中的特定位被保留用于表示用戶賬戶,因此構成用戶標識符。當啟動進程時,此用戶標識符與在安裝時分配給該應用的應用標識符結合,以產生執行環境標識符來表示正在運行的進程和關聯的私人數據文件的環境。利用這樣的信令,可以基于用戶獨立地創建并存儲應用數據。
[0061 ]與之前的版本相比,安卓?4.2的服務已被修改成是用戶賬戶感知的。例如且參照圖2,安卓程序包管理器136被修改為控制每個用戶可利用哪些應用。類似地,窗口管理器138被修改為控制向每個用戶顯示什么,并且活動管理器134被修改為控制每個用戶的應用啟動和權限執行。此外,稱為用戶管理器128的新服務被增加到安卓4.2中,并且處理創建、認證、刪除以及用戶之間的切換。
[0062]在本方案的一個實施例中,通過將現有服務修改成域感知的,向操作系統增加與在安卓?4.2中增加的多用戶能力類似的域感知信令機制。特別地,通過對UID的擴展或作為新字段的添加,增加構成域標識符或“DID”的域信令。UID中的預定位被保留以表示域,并且與在安裝時向應用分配的應用標識符結合,以創建執行環境標識符,執行環境標識符表示與該域相關的正在運行的進程和關聯的私有數據文件的環境。在一個實施例中,將程序包管理器136配置為維護每個安裝的應用的應用標識符和每個域之間的關聯的列表。隨后,基于應用的應用標識符以及該應用在其中執行的域的域標識符,為進程創建執行環境標識符。在一個實施例中,UID還具有與特定用戶賬戶關聯的保留位。這樣的保留或將UID字段擴展為還表示域的方法降低了操作系統改變的程度,簡化了實現方式,并且縮短了部署時間。
[0063]在一個實施例中,實現被稱為域管理器124的新服務以管理下面描述的域的創建、認證和刪除。
[0064]使系統成為域感知的可選方法是使用安全標記,如SELinux如何識別不同的資源和對象。在一些實施例中,SELinux安全標記用于這樣的目的。在其它實施例中,增加識別域的其它標記或參數。
[0065]域創建
[0066]在一個實施例中,將用戶管理器128的功能修改為能夠增加新用戶和還能夠增加新域,這可以認為類似于單個用戶的子賬戶。這樣做使多個域能夠與每個用戶賬戶關聯。修改用戶管理器128的功能提供特定優勢。例如,在具有多個用戶的實現方式中(例如,如圖3所示),將域創建與用戶管理器128中的用戶創建集成在一起是有利的。在(例如,在不支持多個用戶賬戶的智能電話上)僅具有單個用戶的替代實施例中,可以在域管理器124中實現這樣的功能。
[0067]因此,在一個實施例中,對用戶管理器128進行修改,以便提供以下一個或多個:
(i)允許在單個用戶下在域之間容易切換,而不用提示典型的登錄屏幕;(ii)當在針對這樣的域的策略中規定的時間段內切換至另一域時,保持登錄一個或多個域;以及(iii)保持域活躍,以有助于域之間的快速切換。利用其它域信令,用戶管理器128可以被配置為在存在一個以上的用戶賬戶時僅詢問用戶名。
[0068]在創建新域的情況下,用戶管理器128可以調用域管理器服務124。創建新域可以類似于創建新用戶,同時施加域特有的區別,如將跳過新用戶歡迎屏幕。在域創建期間,可以自動地調用程序包管理器136,以安裝預先存在的應用或將新應用下載至新域。域策略服務126可以設置默認策略,并且可以執行向導以幫助用戶如期望的那樣調整新域的策略。
[0069]如果創建工作域(或其策略是至少部分地由除設備擁有者之外的實體外部地控制的任何其它域),那么向用于該特定工作域的遠程域管理服務器注冊該域。這可能要求使用用戶的工作憑證進行注冊。服務器將批準這樣工作域的創建,并且隨后下載用戶組、設備和工作域專用的策略,圖標,憑證,文件,壁紙和應用。
[0070]域策略
[0071]在創建域時,與其關聯地存儲包括策略規定或策略數據的相應安全策略。在一些實施例中,在應用級和/或中間件級執行至少某種域特有的和跨域的策略(例如,認證超時)。在一些實施例中,至少部分地在內核級且依照多個域的相應安全策略來執行與每個域關聯的進程和實體的隔離。在一些實施例中,至少部分地在中間件級執行隔離,即由在內核之外操作的操作系統服務和裝備執行隔離。與每個域關聯的相應策略可以依據該域的期望角色或其與其它實體(如,公司企業服務)的關系或關聯而不同。
[0072]例如,在不同實施例中,一個或多個策略可以是:(i)預定的且靜態的;(ii)預定的,但具有一些運行時配置或選擇;(iii)在管理服務器上配置之后下載的;或(iv)用戶可在設備上配置的。相應策略的特定參數可以考慮任何有關的條件或變量,任何有關的條件或變量再次與關聯的域的特定角色及其與其它實體的關系有關。例如,不同策略的特征可以在于:(i)特定OS服務之間的隔離可以是靜態的且預定的;(ii)可以提供可以基于布爾值設置的預定低/中/高安全級別;(iii)可以下載GPS地理圍欄(geo-fencing)參數或應用白名單;或(iv)可以在設備上本地配置用于調試對個人域的訪問的能力。還可以實現任意結入口 ο
[0073]在一些情況下,可以在設備上(例如,經由域設置應用144-1、144-2)修改策略,而在其它情況下,可以從遠程服務器(例如,用于工作域的遠程服務器)下載策略。在一個實施例中,域消息服務122管理策略的下載、驗證、認證和更新,并且域策略服務126管理每個域的策略應用。隨后,可以將策略分配至施加該策略的系統組件,該系統組件可以在應用級、中間件級或內核級。
[0074]應用管理
[0075]上面討論的提供域信令使得能夠跨不同的域進行應用的域專屬安裝和管理。通常,程序包管理器136可以被配置為基于當前的域或選擇的域的DID,或基于與其關聯的策略,允許或禁止程序的安裝或執行。
[0076]跨不同的域進行應用的域專屬安裝和管理能夠具有特定優點。例如,域信令使得能夠跨多個域進行不同應用版本的安裝和管理。安卓?當前的情況是:當一個用戶更新應用時,也為所有用戶更新該應用。這樣的結果不總是期望的。例如,對應用的更新可能需要其它權限,或者包括未由企業測試或支持的特征,因此不是在工作域中期望的。此外,企業可能想要關聯的工作域,以僅允許以白名單列出的應用或專門將特定應用列為黑名單。
[0077]在不同的域中提供不同的應用訪問權和控制還提供改善的安全選項,即使在域總是僅由特定個人訪問時。例如,安卓?設備擁有者可能更希望不在通常無限制的開放的域中設置谷歌? Play?商店賬戶;如果設備被竊,那么賬戶將在該開放域中可獲得,并且通過竊賊使用設備擁有者的賬戶,該偷竊可能對設備擁有者帶來損失。因此,設備擁有者可能期望不在開放域中而作為替代僅在具有更加約束的安全策略的另一域中啟用Play?商店應用,例如通常需要訪問密碼的安全策略,安全密碼可能被認為對應用于該開放域是惱人地不方便的。
[0078]因此,本方案可以包括對安卓?程序包管理器136的一個或多個修改,以使其是域感知的,使得能夠根據域策略安裝和更新應用。在一個實施例中,對程序包管理器136進行配置,以便維護每個安裝的應用的應用標識符和每個域的域標識符之間的關聯的列表。當啟動進程時,為該進程創建的執行環境標識符基于該應用的應用標識符以及應用在其中執行的域的域標識符。通過這樣的方式,程序包管理器136可以被配置為:(i)允許在選擇的域中實現應用白名單和/或黑名單,使得在該域中僅可以安裝批準的應用;(ii)使應用能夠從一個域復制或移動至另一域;(iii)在下載應用時,提示用戶應當將應用安裝到哪個或哪些域中,而不管賬戶憑證位于哪個域;(iv)在設置新域時,使現有應用和現有應用的配置和數據能夠被復制或移動至該新域;(V)在下載應用更新時,考慮任意應用白名單或黑名單上的軟件版本,以使在不同的域中具有應用的多個不同版本(因此,使企業能夠選擇性地控制例如測試的和批準的應用版本的安裝和更新,由此提供與管理程序方案相似程度的應用版本控制);以及(vi)使能夠基于用戶輸入或基于下載的策略(關于涉及該策略的域)從一個域或多個域(但可能不從其它域)選擇性地刪除應用。
[0079]窗口管理
[0080]在一個實施例中,用于窗口管理器138的默認配置與現有技術類似地為不同域提供不同屏幕。可以使用通知區(notificat1n shade)、導航器應用(例如,域導航器146-1、146-2)或經由按鈕、圖標、姿勢或這些的某種組合等來切換域。
[0081]本方案還使窗口管理器138能夠提供具有混合UI的更具創新性的用戶界面,其中與不同域關聯的應用在單個屏幕上顯示。例如,在一個實施例中,窗口管理器138對表示應用與哪個域關聯的一個或多個應用圖標提供覆蓋。與一個以上的域關聯的應用可以提供多個圖標,每個圖標具有不同的覆蓋(例如,不同的顏色、不同的符號、不同的輪廓等),以表示應用與哪個域關聯。這樣的方法將消除在域之間進行切換的需要,其中由圖標表示域訪問,并且在訪問與不同于當前域的域關聯的應用時,如由被訪問的應用的域策略要求的,可能要求用戶進行認證。與顯示機制無關地維護和執行每個域的策略和數據隔離。本方案的性能不受具有多個圖標影響。此方法的優勢是在域之間沒有可見的切換。不足是設備主屏幕可能變得充斥圖標,并且用戶在其中操作的域具有較少可視表示。
[0082]跨域通信
[0083]系統100可以包括域管理器服務124,域管理器服務124用于管理跨域通信,如用于剪切和粘貼數據、啟動電話呼叫、通知、數據共享、發送數據和應用安裝等功能。域策略服務126可以用作用于在域之間執行策略的單個點。
[0084]例如,用戶可能希望在域之間移動或復制應用。工作域策略可以實現應用白名單方法,以確保惡意軟件不能進入工作域來竊取公司信息(例如,工作聯系人或工作文件)。作為進一步的示例,除了當在對應的受保護的域中時以外,可以使一個域中的通知在另一域中顯示時變得不透明,或者可能根本不顯示。作為另一示例,工作域可以限制數據(如聯系人)離開工作域,以防止數據泄露。雖然用戶將其個人聯系人導入工作域中可能是可接受的,但是工作域策略可能不允許相反的情況。這是由將由域策略服務126管理的策略配置的域之間的單向數據共享的示例。
[0085]外部通信
[0086]系統100還可以管理設備內的入站(in-bound)和出站(out-bound)通信。為此,在一個實施例中,域管理器服務124管理可能需要通知或以多個域為目的的網絡連接和入站事件。簡單的示例是雙號碼的(例如,雙SIM卡)智能電話的情況,在這樣的情況下,策略規定對一個號碼的呼叫應當被轉發至特定域,對第二號碼的呼叫應被注冊至不同的域。這樣的通信在接聽入站電話呼叫的單電話號碼設備的情況中要復雜得多。策略可以指示針對主叫方id的目的可以訪問哪些聯系人,以及應當注冊呼叫日志信息。在一些實施例中,域策略服務126可以是至少某一策略執行的點,這包括對諸如VPN、藍牙和WiFi網絡資源之類的硬件資源的訪問。例如,一些受保護的域的策略可以僅在指定網絡上時才允許通信。
[0087]域執行
[0088]系統100還提供域和每個域策略的執行,這是對創建和管理域的軟件功能的附加要求。在沒有域和域策略的執行的情況中,惡意軟件或根套件可以靜態地或動態地修改系統或內核代碼,以防止執行被執行或以更新該策略。
[0089]在一個實施例中,系統100使用SELinux?和Linux?安全模塊(LSM),以實現強制訪問控制(MAC)。MAC確保主題(例如,應用)僅訪問由策略允許的對象(例如,應用、文件和資源)。這通過在安裝每個應用時唯一地創建的UID/GID組合執行。如上面討論的,在系統100的一個實施例中,UID還被擴展或被分配來表示域。
[0090]但是,SELinux?通常對所有用戶下載的應用施加相同類型(因此施加相同策略),這意味著其不執行域。因此,SELinux還可以被修改,以變成域感知的。在一個實施例中,這是通過以下方式實現的:經由策略中基于角色的訪問控制字段,或通過針對不同域創建不同策略并且動態地使用域管理器124來在運行時期間調整策略,或者在安卓?的情況下通過在創建進程時通過修改Zygote和/或SEAndroid?的中間件強制訪問控制特征來向進程分配域專屬SELinux?安全標記以變成域感知的。
[0091]嚴格地限制對系統級資源的應用訪問僅是可以在內核級實現的多個安全增強中的一個。域內核模塊114可以實施其它域感知安全,如控制調試訪問、檢查策略更新(認證和完整性驗證)、加密域數據、檢查加載時間應用簽名、訪問安全硬件和安全操作系統組件(如果可用)并且控制對諸如網絡、攝像頭和GPS之類的硬件資源的訪問。域內核模塊114還可以提供整個設備的安全設置,如在啟動時內核完整性驗證、策略的安全存儲、其本身和其它系統級資源(例如,域策略引擎)的完整性驗證、確保SEAndroid?被開啟、以及遠程證明。
[0092]應注意,域與用戶和管理員賬戶不同。雖然設備擁有者可以具有準許用于創建和刪除賬戶的特定特權的特殊賬戶,但是這樣的特權不等同于根訪問且可能對由第三方管理員(例如,工作IT管理員)管理的域是受限的。通過使用SELinux?和SEAndroid?以及本文描述的細化域信令,應用和應用數據保持隔離,即使在不同域之間存在不同的策略和訪問控制時。一個域中的惡意軟件不能訪問另一域中的數據或應用。
[0093]域切換
[0094]圖4示出框圖400,框圖400圖示從第一域142-1至第二域142-2的域切換方法的一個實施例。用戶使用域導航器146-1輸入請求切換至第二域的輸入。域導航器146-1向活動管理器134發送信號(動作405),以切換至第二域142-2。如果第二域142-2關聯于與關聯于第一域142-1的用戶不同的用戶,(例如,從圖3中的域Al至域BI),那么活動管理器134向用戶管理器服務128發信號(動作410),以注銷該用戶,但或者不這樣做。響應于來自用戶管理器服務128的調用(動作412),域管理器服務124向系統設置模塊130詢問與第二域142-2關聯的登錄策略(動作415),以及向域策略服務126詢問用于使這樣的切換能發生的任何其它策略(例如,GPS地理圍欄、網絡訪問要求、內核完整性)(動作420)。活動管理器134向密鑰保護中介132通知第一域142-1的任何超時(這可以是立即的或延遲預定的時間段)(動作425)。密鑰保護中介132實現與第二域142-2關聯的策略。如果滿足該策略檢查,那么向密鑰保護中介132通知切換至第二域142-2,并且基于策略(例如為訪問所需要的認證)決定訪問(動作430),或直接訪問域(例如,如果不要求認證)(動作435),或可選地,可以拒絕切換。在切換之后,活動管理器134在第二域142-2中執行應用啟動器424。
[0095]在另一實施例中,如上所述的,在選擇應用時可以暗示域切換,并且將不需要域導航器。
[0096]在一些實施例中,可以配置域切換方法,以使能夠進行向加密域的安全切換。可以加密與一個或多個域關聯的數據文件,如使用密碼術堆棧文件系統進行加密。例如,eCryptFS文件系統(http: / / ecryptfs.0rg)是用于Linux的兼容POSIX的企業密碼術堆桟文件系統。在這樣加密與域關聯的數據文件的情況下,可以認為域可是加密的域。對稱密鑰可以用于加密和解密被加密的域的數據,并且可以存儲在Linux內核密鑰環(內核存儲器中的安全儲存器)中,但還可以存儲在任意安全儲存器中。在密碼術堆棧文件系統中,使用多個對稱密鑰是典型的,但是將理解,在一些實施例中,可以使用單個密鑰。
[0097]如上所述的,具有多個域的設備可以包括需要訪問認證的一個或多個域。例如,在設備操作系統是安卓的情況下,內建的安卓鎖屏認證(圖案、Pin、密碼等)可以用于控制對域的訪問。如果域也是加密的,那么此鎖屏認證還可以用于加密和解密由密碼術文件系統使用的密鑰,以訪問加密的域數據。
[0098]由于設備可以具有多個域,所以多個域中的一個或多個可以是加密的,并且多個域中的一個或多個可能需要認證,在從當前域(當前擁有用戶界面(UI)焦點的域)向不同目標域切換時存在四種可能的場景:域已經運行;域未運行,且不是加密的;域未運行,是加密的,但不要求認證;以及域未運行,是加密的,且要求認證。(如果與域關聯的進程正在運行,那么該域被認為正在運行)。
[0099]鑒于這些可能性,圖9圖示從當前域向目標域切換的方法900。如所圖示,可立即切換至正在運行的域。在接收到向目標域切換的輸入(開始902)時,確定該域是否正在運行(決策904),且如果“是”(分支906),則在UI中示出目標域(步驟908)且切換完成(結束910)。如果該域未運行(分支912),那么確定該域是否被加密(決策914);如果“否”(分支916),則啟動該域(步驟918),在UI中示出該域(步驟908),并且切換完成(結束910)。如果該域被加密(分支920),那么確定該域是否要求認證(決策922);如果“否”(分支924),那么可以加載解密密鑰并且裝載文件系統(步驟926),啟動該域(步驟918),在UI中顯示該域(步驟908),并且切換完成(結束910)。如果要求認證(分支928),那么接收認證信息(步驟930),基于該認證信息解密文件系統密鑰(步驟932),加載解密密鑰并且裝載文件系統(步驟926),啟動該域(步驟918),在UI中顯示該域(步驟908),并且切換完成(結束910)。
[0100]因此,如圖9中可以看到的,可以啟動并立即切換至當前未運行的未加密的域。但是,如果嘗試切換至加密的域,則在可以使用該域以前必須將將密碼術文件系統密鑰加載至IjLinux內核密鑰環內。如果加密的域不要求認證,則可以加載密碼術文件系統密鑰,且在沒有用戶干預的情況下裝載文件系統。但是,如果加密的域要求認證,那么在可以加載密碼術文件系統密鑰以前必須首先解密密碼術文件系統密鑰本身,并且裝載文件系統。因此,在最后的啟動需要認證的加密域的情況中,在可以訪問(裝載)目標域的數據之前,需要一種機制來收集目標域的認證數據。
[0101]但是,在許多設備操作系統中,認證過程必須在當前域中操作或與當前域關聯。例如,在安卓中內置的已有鎖屏認證機制對當前用戶或域進行認證。在切換至目標域時,安卓鎖屏從鎖屏(如鎖屏小工具、實時壁紙以及輸入方法編輯器(IME))起運行針對目標域的進程。為了保留傳統的安卓用戶體驗,認證需要在域切換之后發生。
[0102]存在提供此功能的幾種替代方法,如下。
[0103]在第一替代中,提供定制用戶界面(UI)以在切換至目標域之前獲取認證信息。雖然此方法擁有可以使其在一些情況下適宜的多個好處,但是其還忍受如下特定缺陷。例如,此方法需要有效地努力以復制已在安卓中內置的認證機制,并且將要求更新以維持與對內置的安卓機制的更新的互操作性。此外,此方法引入安全隱患,因為定制認證UI進程將在用戶正從其切換的域中運行。老練的攻擊者可能替換可能不可信的域中的重要應用程序包(如,輸入方法編輯器(me)),以捕獲可信加密域的域認證信息。
[0104]在第二替代中,方法首先切換至目標域,但不裝載目標域的數據。隨后,在裝載目標域的數據之前,該方法僅運行使鎖屏起作用需要的那些進程,然后完成切換至目標域。雖然此方法擁有可以使其在一些情況中適宜的多個好處,但是其還受到如下特定缺陷。例如,從鎖屏起正常地運行的應用組件(鎖屏小工具、實時壁紙以及輸入方法編輯器(ME))可能要求訪問加密的文件系統。事先確定什么程序包將運行通常是不可能的,因為用戶和原始設備制造商(OEM)都可能改變、更新或移除這些組件,因此這些問題不能被預料到和被補償。此外,域切換操作直至已提供域認證信息才完成。這使設備處于安卓未被設計處理的中間的未限定的狀態。這在整個安卓中間件中形成了在安卓發布之間必須正確地處理、測試以及維護的許多其它邊緣情況。
[0105]在第三替代中,方法切換至在設備上有目的地創建的中間域,以有助于認證信息的安全收集以及使在域之間能夠進行安全轉變。中間域在切換至未運行的加密域時啟動,并且要求認證。此方法克服了由上面描述的前兩個替代擁有的許多缺點。
[0106]因此,圖10示出從第一正在運行的域切換至不同的目標域的方法1000,其中目標域是加密域(與在加密的文件系統包含的數據文件關聯或具有在加密的文件系統中包含的數據文件)且未正運行。發起至目標域的域切換(開始1002)。目標域未在運行,被加密,且要求認證。中間域成為當前域(向安卓中間件報告的)(步驟1004),并且在中間域中開始鎖屏進程(步驟1006)。修改鎖屏組件或另外提供鎖屏組件,使得鎖屏組件在被調用時將示出用于目標域的認證盤問,并且顯示識別目標域的某種指示。
[0107]如果與目標域關聯的一些UI要素未存儲在加密的文件系統中,而是作為替代存儲在另一位置(例如,未加密的文件或數據庫中的元數據),那么可以與認證盤問一起顯示這樣的UI要素。例如,在這樣的情況下可以顯示與目標域關聯的壁紙。可選地,可以顯示某一其它壁紙或可視物,以指示正發生向目標域的切換。類似地,如果在與加密的文件系統不同的其它位置存儲與目標域關聯的頂E,那么其可以用于接收認證信息。可選地,可以接收用戶對用于輸入認證信息的頂E的選擇(步驟1008)。(這可以包括例如中間域中的語言不同于目標域的語言的情況)
[0108]然后,使用所選擇的頂E接收認證信息(步驟1010)。如果用戶提供目標域的正確認證信息,則解密目標域的密碼術文件系統密鑰(步驟1012),加載這些密鑰,并且裝載文件系統(步驟1014)。解除通常在目標域中顯示的鎖屏(步驟1016)。(這與用戶已經直接在該域中認證完全相同,并且提供對鎖屏認證將如何對未加密的域起作用的無縫用戶體驗)目標域啟動,成為當前域(步驟1018)。新域在UI中顯示(步驟1020),并且域切換完成(結束1022)。
[0109]如所提到的,此方法克服了切換至未運行的加密域的其它方法的至少一些缺陷,并且進一步提供了如下多個優點。
[0110]例如,優點是:認證進程在任意用戶可控的域之外發生,以使認證信息的收集更安全。從鎖屏起運行的進程在不易受到從其它用戶可訪問的域的改變中產生的干擾影響的受控環境中運行。安卓中間件中需要的改變更容易維持,并且更容易與安卓中內置的多用戶狀態機兼容。這引起更少缺陷、更少維護以及更好的前向兼容性。與上面提到的其它選項相比,對ME的攻擊(例如,替換、或特權提升)或用于密鑰保護的用戶界面更難以實施,并且將使受益最小化(例如,對中間域的訪問)。需要的附加性能和存儲最低。
[0111]多個實現方式選項是可獲得的。中間域可以在操作系統的最早啟動時創建,或可選地可以在創建第一加密域之前的任意其它時間創建。可以鎖定中間域,以防止用戶進行除認證之外的其它操作。表述“鎖定”可以被理解為表示禁用不需要的任意應用、服務或其它特征,或作為替代地選擇性地僅啟用需要的那些特定應用、服務或其它特征。例如,可以包括禁用鎖屏小工具和谷歌搜索。可以使用策略機制(包括SELinux和SEAndorid)進一步鎖定中間域,以進一步最小化安全風險。與其它域不同,中間域僅簡單地在域之間進行切換時運行。在運行時,其相對于由安卓維護的三個活躍運行域的最大限制不被當做運行域。因此,移動至中間域不引起其它域關閉。在啟動和停止中間域時,安卓不發送在啟動域時通常發送的廣播中的許多廣播。這產生顯著的性能改善,因為其防止啟動不必要的進程和應用。使用白名單、禁用列表、黑名單等,中間域可以具有在域中安裝的最少應用,以減少這些應用可能存在的安全風險。
[0112]中間域可以被預配置為具有允許的應用、服務等的特定選擇,或可以使用與由所有域使用的機制相同或相似的執行機制以類似于其它域的方式(例如通過使用專用于中間域的策略)來動態地設置中間域。
[0113]域消息服務協議
[0114]圖5示出框圖500,框圖500示出域消息方法。與第一域142-1關聯的第一進程505生成事件消息(例如,消息接收通知(其中,消息可以是電子郵件)、剪切并粘貼動作、文件復制)。生成該事件的第一進程505發送關于該事件的消息(可以采用廣播的形式),并且該消息由域管理器服務124接收(動作510)。在一個實施例中,在第二域142-2中操作的第二進程515可以是偵聽進程,但將理解可選地可以使用API。域消息服務122檢查在其它域中的偵聽進程(如第二域142-2中的第二進程515)被配置為對接收到的事件消息做出響應。
[0115]在確定第二域142-2中的第二進程515是這樣配置的以后,域管理器服務124向域策略服務126發送關于事件消息類型(例如,通知、剪貼板緩沖區、文件)的信號(動作520)。域策略服務126實現相關策略,這樣可以引起多個不同動作。例如,所請求的事件可以被允許(例如,可以通過不超過100個字符的緩沖),或不被允許(例如,策略可以允許將文件轉移至域,但阻止從該域進行這樣文件轉移)。可選地,策略可以引起消息被過濾(例如,可以使特定字段不透明,或者僅提供標志通知,如沒有像發送方、主題等之類的細節的電子郵件接收通知)。依照該策略,將事件消息傳遞給第二域142-2中的第二進程515(動作525)。
[0116]跨域執行協議
[0117]圖6中示出框圖600,框圖600圖示跨域執行方法。
[0118]在該方法中,第一域142-1中的第一進程605生成動作,其中該動作請求實施與第二域142-2相關的某一動作。例如,可以在第一域中選擇新電子郵件的通知,并且輸入請求以在第二域中查看該電子郵件。可選地,使用第一域142-1中的域設置144-1服務,可以輸入刪除第二域142-2的請求。或者,當在第一域142-1中操作時,可以輸入請求,以實施從第二域142-2向特定電話號碼的電話呼叫。
[0119]在由第一域142-1中的第一進程505產生動作之后,活動管理器134接收來自第一進程505的域切換請求(動作610)。如果該切換需要認證,那么如果認證失敗,則拒絕該請求。活動管理器134向域策略服務126發送信號,以檢查與第一域142-1和第二域142-2關聯的相應策略(動作615),以便確定兩個策略允許做出請求的第一域142-1向第二域142-2發起所請求的動作。
[0120]如果這兩個策略允許這樣,那么活動管理器134啟動與第二域142-2關聯的所請求的第二進程620(動作625)。關于上面介紹的示例,可以啟動電子郵件服務,或者可以啟動域設置144-1服務,并且提示用戶確認第二域142-2的刪除,或者可以通過顯示要呼叫的期望號碼來啟動電話服務。
[0121]域應用安裝協議
[0122]圖7示出框圖700,框圖700圖示域應用安裝方法,其中在第一域中安裝的應用被移動或被復制至第二域。
[0123]如上面討論的,可以與選擇的安全域關聯地安裝應用,在這樣的情況下與所安裝的應用的應用標識符關聯地存儲域的DID。
[0124]使用域設置144-1服務,用戶可以選擇將應用移動或復制至不同的域,如從第一域142-1移動或復制至第二域142-2。域設置144-1服務向程序包管理器136發送信號,以在第二域142-2中安裝該應用(動作705)。程序包管理器136向域管理器124發送信號,以確定第二域142-2的安全標記(動作710)。隨后,程序包管理器136利用從域管理器124接收的正確安全標記在第二域142-2中安裝該應用。如果所選擇的動作是移動而不是復制,那么域設置144-1服務向程序包管理器136發送信號,以從第一域142-1卸載應用(動作715)且還向新域發送應用用戶數據。
[0125]更新策略協議
[0126]圖8示出框圖800,框圖800圖示更新策略方法。
[0127]域消息服務122接收來自遠程管理服務器805的策略(動作810),或可選地,經由設備上的設置屏或經由API接收該策略,隨后域消息服務122將該策略傳遞給域策略服務126(動作815),隨后根據情況傳遞給域內核模塊114(動作820 ),域內核模塊114可以將策略存儲在安全儲存庫112中(動作825)。由域內核模塊116驗證策略的起源的完整性和真實性。可以在域內核模塊116或安全儲存庫112中施加防回滾(ant1-rollback)機制,以確保不能重新使用或重演較舊的策略。域策略服務126隨后加載策略和之前的策略,以便智能地僅施加所更新的策略中已改變的那些策略。域策略服務126可以向增強的Linux安全模塊116發送信號,以加載策略的更新的SELinux部分(動作830)。域策略服務126向系統設置模塊130月艮務發送信號,以更新在系統設置模塊130中施加且由系統設置模塊130執行的策略,如密碼強度、壁紙和啟動器(動作835)。域策略服務126隨后更新專屬于的域的其自身的策略,如域加密、域調試訪問、跨域策略和域名。
[0128]魅
[0129]本發明的方案提供一種方式來安全地建立、維護和管理獨立的受保護的域并且限定和隔離這樣的獨立的受保護的域中的應用和數據。與現有技術相比,本發明的方案在存儲器、空間和計算功耗方面是有效的。其保持本地操作系統特征(包括應用的后向兼容性)。其在一些域中保持本地、直觀的設備用戶界面,還使能其它域中許多不同的用戶界面選項和策略,而不是傳統的“全部或全部不”設備鎖定和/或用戶賬戶訪問。其利用不同域擁有者使能一個設備上的兩個人、多個人、多個人之間的多個域使用、多個工作和“開放”域。其使能這樣的多個域的遠程管理和策略更新。其允許每個域的不同訪問控制和策略。其允許策略確定是否能在域之間轉移數據。其使新的使用模式(包括臨時共享)更適于移動設備。其使與其它方案相比能進行每個域中可用的應用的更細化控制。本方案可以顯著地簡化或甚至消除與基于管理程序的虛擬化關聯的域之間的操作系統級“硬切換”,其中每個域與可以由每個對應的管理程序復制的獨立的一組操作系統進程關聯地操作。其在域之間隔離應用和應用數據,而沒有當前方案的弱點。其將域中的應用和數據與該域外部的惡意應用隔離。最后,其解決隱私顧慮和移動設備用戶的選擇自由。
[0130]獨立于實現細節,存在通過域信令、域管理和域執行引入的顯著優勢和特征。這些如下。本方案保持原始本地操作系統特征(包括應用的后向兼容性)。所有本地操作系統權限檢查和IPC機制將共同存在,并且仍將有效。操作系統不變地操作,并且本方案與之前的操作系統后向兼容。與現有技術相比,本方案在存儲器、空間和計算能力方面是有效的。與像虛擬化這樣的可選方法相比,設備性能和存儲以及存儲器利用是非常有效的,虛擬化對操作系統堆棧進行復制,這引發大量CPU和RAM開銷。由于本地OS實現,所以與現有技術相比,域之間的切換非常快且有效。
[0131]本方案利用不同域擁有者使在一個設備上的多人域、多個工作和“開放”域之間能夠有兩個人、多個人、多個域使用。能夠以可忽略的存儲器和性能影響增加和執行多個受保護的域。在單個設備上可以存在多個受保護的工作域。例如,如果用戶具有多個客戶,那么在相同的設備上可以存在公司X域和公司Y域。可選地,設備可以被配置為具有公司機密域和公司分類域,每個域具有不同的策略(例如,位于公司分類域中的應用的安全策略可能更受限制,如它們可以僅在正常工作期間或在設備連接至公司WiFi網絡時訪問)。設備可以被配置為具有用于方便訪問的開放共享域,且被配置為使能設備和開放域中的應用與家庭成員或同事的自組織(ad-hoc)共享。用戶可以具有用于私人目的的保護域,如以便隔離針對秘密關系或用于移動銀行和商業目的的消息和聯系人信息。不是設備擁有者的雇主的服務提供商(如銀行)可能期望在設備上具有受保護的域,該受保護的域包含用于訪問他們的服務的各種應用,如賬戶訪問、信用卡或借記卡服務、資本交易、服務(如保險、貸款等)報價。服務提供商將具有以下信息:他們的應用和與這樣的應用關聯的用戶的個人信息是安全的且可以在設備丟失時被擦除或被鎖定。
[0132]本方案針對不同的域、在多個域之間以及針對單個設備上受保護的域的進站通信和出站通信,允許不同的訪問控制和策略。域策略可以在本地(例如,經由設備設置)管理或(例如,經由云服務)遠程地管理。策略還可以由設備擁有者或第三方管理,如雇主或服務提供商。跨域通信和數據共享可以是限定和執行的策略。數據加密可以是域感知的。電話功能、主叫方通知和緊急呼叫等可以是域感知的和基于策略。例如,可以阻止特定域的向外呼口 H。網絡連通性可以是域感知的和策略執行的。任務選擇器和進程顯示可以是域感知的。例如,可以僅在登錄域時顯示進程。通知可以是域感知的和基于策略。例如,工作域通知可以僅從特定頁面可見,以避免共享期間的數據泄露。或者,通知可以指示提供該通知的應用,但具有精簡的信息(例如,不公開接收到的電子郵件的標題,或接收到的SMS的發送方,等等)。云備份和同步機制也可以是域感知的。例如,開放域可以被備份,即使沒有與該域關聯的特定賬戶。
[0133]本方案保持原始本地的且直觀的用戶界面,還啟用不同域之間的許多不同用戶界面選項和策略,而不是傳統的“全部或全部不”設備鎖定和/或傳統的多用戶賬戶訪問。用戶界面和域之間的切換現在可以被定制為域轉移的類型。可以保持傳統的用戶賬戶型界面,并且每個域可以仍然被個性化并且針對每個域配置有所有標準本地OS能力,如每個域有不同的背景和/或不同的啟動屏幕。每個域可以配置用戶認證機制(例如,密碼、生物特征、模式、無認證)。域登錄策略可以用于減少或消除當在域之間切換時重復地認證用戶的需要。可以依照針對每個受保護的域設置的策略(例如,在設備不活動15分鐘后自動注銷,或在域不活動5分鐘之后自動域注銷,或當在特定域中時每10分鐘重新認證,等),對每個受保護的域執行訪問控制和認證技術。本方案使新使用模式更適于移動設備(包括應用的自組織共享,如經由開放域的自組織共享)。這是移動設備中的最近特征的擴展,其中一些設備能力從設備鎖屏起可用,而不要求認證(例如,用戶可以仍然拍攝照片或接聽呼入)。不是限制功能,利用域信令和域隔離執行,開放區域可以提供對應用的全部特征訪問,盡管可能具有其它特殊策略,如受限的互聯網訪問(例如,沒有或僅通過WiFi)以及受限的電話訪問(例如,僅呼入、或僅本地呼叫等)。可以通過使用其它用于顯示域的方式(例如,圖標上的覆蓋)來消除域之間的切換。設備擁有者可以保持域在文件夾、標簽(tab)或由操作系統支持的任意其它機制中單獨地分組(可能出于隱私原因或個人偏好)。在訪問標簽或特定應用時仍將施加每個域的認證策略,但可以不需要切換和不同的域“主屏”和壁紙等。
[0134]與其它方案相比,可以以更細的粒度控制和顯示每個域中可用的應用,而在設備上僅存儲一個副本,因此提供存儲器和CPU的非常有效使用。程序包管理器可以管理每個域中的應用的安裝一一它已在用戶賬戶之間進行的一一但以更簡潔的域專屬機制。可以由策略控制每個域的應用的可用性、顯示和訪問。可以每個域(除每個用戶賬戶以外)地隔離應用數據,并且(例如,如果設備丟失或終止雇傭等)可以針對每個域容易地刪除和管理應用數據。可以以更直觀的且更具創造性的方式移動或擦除應用,該方式類似于在主頁和標簽之間移動應用,而不是如安卓4.2那樣針對每個域實施應用安裝。
[0135]本方案可以利用SELinux的域感知版本來執行由域規定的應用和應用數據隔離。其可以確保由一個域上的應用進行的訪問不能訪問另一域。其確保跨域呼叫僅可能通過執行策略的域管理器服務。其確保一個域上的惡意軟件不能影響另一域中的應用和數據。其確保沒有認證的域的使用不影響其它域的安全。
[0136]本發明的方案不影響其它安全技術的使用,如虛擬化和容器,因為本方案與那些方案后向兼容。特別地,修改的類型2管理程序可以利用域信息作為不同操作系統之間的切換的一部分。應用容器方案也可以部署在本發明的方案中。
[0137]雖然已具體地關于安卓和Linux操作系統描述上面的實施例,但是應理解,本文公開的原理適用于擁有由本公開提到的相關特性的任意操作系統。
[0138]雖然上面已將操作該操作系統的設備稱為移動設備(其可以包括智能電話、平板、個人數字助理(PDA)、智能手表、或任意類似設備),但是將理解,本文公開的原理適用于擁有由本公開提到的相關特性的任意設備,并且在一些實施例中包括通用計算機。
[0139]在前述描述中,為了解釋而陳述許多細節,以提供對本發明的實施例的透徹理解。但是,本領域技術人員將明白,為了實施本發明,不需要這些特定細節。在其它實例中,為了不模糊本發明,以框圖的形式示出了眾所周知的電子結構和電路。例如,不提供關于本文描述的本發明的實施例是否被實現為軟件例程、硬件電路、固件、或它們的組合的特定細節。
[0140]本發明的實施例可以被表示為存儲在機器可讀介質(也稱為計算機可讀介質、處理器可讀介質、或具有在其中包含的計算機可讀程序代碼的計算機可用介質)中的軟件產品。機器可讀介質可以是任意合適的有形介質,任意合適的有形介質包括磁存儲介質、光存儲介質或電存儲介質(包括磁盤、光盤只讀存儲器(CD-ROM)、存儲設備(易失性的或非易失性的)或類似的存儲機制)。機器可讀介質可以包含多組指令、代碼序列、配置信息或其它數據,它們在執行時引起處理器實施根據本發明的實施例的方法中的步驟。本領域技術人員將理解,實現所描述的發明所需要的其它指令和操作也可以存儲在機器可讀介質上。從機器可讀介質運行的軟件可以與電路交互,以實施所描述的任務。
[0141]本發明的上述實施例的目的僅在于作為示例。本領域技術人員可以對特定實施例進行改變、修改和變形,而不脫離本發明的范圍,本發明的范圍僅由本文所附的權利要求限定。
【主權項】
1.一種移動設備,所述移動設備包括處理器和存儲指令的存儲器,所述指令由所述處理器可執行以實現安卓操作系統,在所述移動設備中,改進包括: 用戶管理器,用于選擇性地創建與在所述安卓操作系統中實現的任何用戶賬戶不同的多個域; 域管理器,用于選擇所述多個域中的一個作為當前域; 域策略服務,用于針對每個域存儲和執行包括規則集的策略,所述規則集控制對與該域關聯的文件和應用的訪問; 程序包管理器,用于針對每個域,基于該域的策略和所述當前域的策略,選擇性地允許或阻止與該域關聯的應用的安裝或執行; 域消息服務,用于基于所述多個域中不同的域的相應策略,提供與所述多個域中所述不同的域關聯的運行進程之間的通信;以及 活動管理器,用于選擇性地切換所述當前域, 其中所述用戶管理器、所述域管理器、所述域策略服務、所述程序包管理器、所述域消息服務以及所述活動管理器在所述安卓操作系統中在所述安卓操作系統的內核以外實現。2.根據權利要求1所述的移動設備,其中所述改進進一步包括: 域內核模塊,用于針對每個域執行與該域關聯的策略, 其中所述域內核模塊在所述安卓操作系統的所述內核中實現。3.—種由計算設備的處理器實施的方法,所述方法用于在所述計算設備的操作系統中提供多個安全域,所述方法包括: (a)針對每個安全域: (al)將該安全域的資源與唯一域標識符關聯,該資源包括至少一個數據文件或至少一個應用;以及 (a2)與所述唯一域標識符關聯地存儲策略,該策略包括用于控制對該資源的訪問的規則集; (b)接收所述多個安全域中選擇的一個作為當前域,其中所述多個安全域包括與所述當前域不同的目標域;以及 (C)基于與所述當前域關聯的策略和/或與所述目標域關聯的策略,控制對目標域資源的訪問。4.根據權利要求3所述的方法,進一步包括: 至少部分地在所述操作系統的內核之外執行所述操作系統的至少一個服務,以實施(a)、(b)和(C)中的至少一個。5.根據權利要求3所述的方法,其中至少部分地由在所述操作系統的內核中操作的第一服務以及至少部分地由在所述操作系統的位于所述內核之外的中間件中操作的第二服務實施(C)。6.根據權利要求5所述的方法,其中由在所述操作系統的位于所述內核之外的所述中間件中操作的其它服務實施(a)和(b)。7.根據權利要求3所述的方法,其中所述操作系統實現多個用戶賬戶,并且其中所述當前域和所述目標域共同地與所述多個用戶賬戶中的一個關聯。8.根據權利要求3所述的方法,其中(c)包括:基于與所述當前域關聯的策略和與所述目標域關聯的策略,控制進程對所述目標域資源的訪問,其中所述進程與所述當前域關聯。9.根據權利要求8所述的方法,其中所述進程基于所述當前域的所述唯一域標識符與執行環境標識符關聯,并且其中(c)包括基于所述執行環境標識符,控制所述程序對所述目標域資源的訪問。10.根據權利要求9所述的方法,其中所述當前域資源包括所述至少一個應用,并且其中所述執行環境標識符基于所述當前域的所述唯一域標識符和與為生成所述進程而執行的所述至少一個應用關聯的唯一應用標識符。11.根據權利要求10所述的方法,其中所述操作系統是安卓操作系統,所述唯一應用標識符是在安裝時分配給所述應用的Unix型用戶標識符(UID),所述執行環境標識符包括所述應用的所述UID,并且所述唯一域標識符包含在所述UID的保留位中。12.根據權利要求3所述的方法,其中所述操作系統提供用戶界面,該用戶界面提供對所述當前域資源的資源和所述目標域的資源的并行訪問。13.根據權利要求12所述的方法,其中所述目標域的資源包括與所述目標域關聯的所述至少一個應用,并且其中所述用戶界面提供用于執行所述至少一個應用的方式。14.根據權利要求13所述的方法,其中所述用戶界面實現與所述目標域的所述至少一個應用關聯的圖標,其中所述圖標包括表示所述至少一個應用與所述目標域的關聯的覆至ΠΠ ο15.根據權利要求12所述的方法,其中所述目標域的資源進一步包括接收到的與所述目標域關聯的消息,并且其中所述用戶界面提供用于打開所述消息的方式。16.根據權利要求3所述的方法,其中(al)包括存儲將所述資源與所述安全域的所述唯一域標識符關聯的元數據。17.根據權利要求3所述的方法,其中所述安全域中的一個是外部地控制的域,并且其中經由網絡從遠程域管理服務器接收與所述外部地控制的域關聯的策略。18.根據權利要求17所述的方法,其中所述當前域是所述外部地控制的域,并且其中所述遠程域管理服務器將對與所述當前域關聯的策略的至少一部分的修改阻擋在外。19.根據權利要求3所述的方法,其中所述目標域資源包括以下所述至少一個應用:該至少一個應用包含公共應用的第一版本,與所述當前域關聯的策略和與所述目標域關聯的策略阻止對所述公共應用的所述第一版本的訪問。20.根據權利要求19所述的方法,其中所述當前域資源包括以下所述至少一個應用:該至少一個應用包含所述公共應用的與所述公共應用的第一版本不同的第二版本。21.一種計算機可讀介質,包括在所述計算機可讀介質上存儲的指令,該指令在由計算機執行時實施根據權利要求3所述的方法。22.—種在計算設備的操作系統中提供多個安全域的方法,所述方法包括: (a)針對每個安全域: (al)將所述安全域的資源與關聯于所述安全域的唯一域標識符關聯,所述資源包括至少一個數據文件或至少一個應用;以及 (a2)與所述唯一域標識符關聯地存儲策略,所述策略包括用于控制對所述資源的訪問的規則集; (b)生成與關聯于所述多個安全域中的第一安全域的初始進程關聯的事件消息; (C)確定與所述多個安全域中的第二安全域關聯的目標進程被配置為對所述事件消息做出響應; (d)基于與所述第一域關聯的策略和與所述第二域關聯的策略,處理所述事件消息,以產生處理的事件消息;以及 (e)基于與所述第一域關聯的策略和與所述第二域關聯的策略,向所述目標進程傳遞所處理的事件消息或對所述目標進程組織阻止所處理的事件消息。23.根據權利要求22所述的方法,其中所述事件消息指示由所述初始進程生成的復制并粘貼動作,與所述第一域關聯的策略實現允許將剪貼板緩沖區傳遞至所述第一域之外的第一規則,并且與所述第二域關聯的策略實現允許將所述剪貼板緩沖區傳遞至所述第二域內的第二規則,其中向所述目標進程傳遞基于所述剪貼板緩沖區的所處理的事件消息。24.根據權利要求22所述的方法,其中所述事件消息指示由所述初始進程生成的復制并粘貼動作,與所述第一域關聯的策略實現防止將剪貼板緩沖區傳遞至所述第一域之外的第一規則,或者與所述第二域關聯的策略實現防止將所述剪貼板緩沖區傳遞至所述第二域內的第二規則,其中對所述目標進程阻止基于所述剪貼板緩沖區的所處理的事件消息。25.根據權利要求22所述的方法,其中所述事件消息包括由所述初始進程生成的消息收到通知,與所述第一域關聯的策略實現第一規則或者與所述第二域關聯的策略實現第二規則,所述第一規則實現所述消息收到通知的過濾,所述第二規則所述消息收到通知的過濾,其中所處理的事件消息包括經過濾的消息收到通知,并且其中所述經過濾的消息收到通知被傳遞至所述目標進程。26.根據權利要求22所述的方法,其中(al)包括存儲將所述資源與所述安全域的所述唯一域標識符關聯的元數據。27.根據權利要求25所述的方法,其中所述過濾至少移除或掩蓋所述消息收到通知的發送者標識符或主題標識符。28.一種計算機可讀介質,包括在所述計算機可讀介質上存儲的指令,該指令在由計算機執行時實施根據權利要求22所述的方法。29.—種在計算設備的操作系統中提供多個安全域的方法,所述方法包括: (a)針對每個安全域: (al)將所述安全域的資源與關聯于所述安全域的唯一域標識符關聯,所述資源包括至少一個數據文件或至少一個應用;以及 (a2)與所述唯一域標識符關聯地存儲策略,該策略包括用于控制對所述資源的訪問的規則集; (b)從與所述多個安全域中的第一安全域關聯的初始進程接收用于啟動與所述多個安全域中的第二安全域關聯的目標進程的請求;以及 (C)基于與所述第一域關聯的策略和與所述第二域關聯的策略,處理所述請求。30.根據權利要求29所述的方法,其中所述初始進程生成與關聯于所述第二域的接收到的消息關聯的消息收到通知,所述請求用于顯示所述消息,與所述第二域關聯的策略實現允許在所述第二域中顯示所述消息的第二規則,并且所述目標進程顯示所述消息。31.根據權利要求30所述的方法,其中與所述第一域關聯的策略實現允許實施在所述第二域中顯示所述消息的第一規則。32.一種計算機可讀介質,包括在所述計算機可讀介質上存儲的指令,該指令在由計算機執行時實施根據權利要求29所述的方法。33.—種在數據處理系統中的方法,所述數據處理系統具有處理器和用于存儲操作系統的存儲機制,所述操作系統包括內核和位于所述內核之外的中間件,所述方法包括: 在所述中間件中提供第一裝備,所述第一裝備用于創建多個域并且將所述多個域與用于控制對所述多個域的訪問的對應策略關聯; 在所述中間件中提供第二裝備,所述第二裝備用于在所述多個域之間切換;以及至少部分地在所述中間件中提供第三裝備,所述第三裝備用于執行所述多個域的對應策略。34.根據權利要求33所述的方法,進一步包括: 在所述中間件中提供第四裝備,所述第四裝備用于基于所述多個域的所述對應策略來管理應用的安裝。35.根據權利要求34所述的方法,進一步包括: 在所述中間件中提供第五裝備,所述第五裝備用于提供所述多個域中不同域內的多個運行進程之間的通信。36.根據權利要求35所述的方法,其中所述多個運行進程實現從所述多個域中的第一域向所述多個域中的第二域的復制并粘貼動作,其中所述第五裝備提供所述第一域中的所述多個運行進程中的第一運行進程和所述第二域中的所述多個運行進程中的第二運行進程之間的信令,并且其中所述第五裝備基于與所述第一域對應的策略和與所述第二域對應的策略,允許或阻止所述復制并粘貼動作。37.根據權利要求35所述的方法,其中所述多個運行進程實現在所述多個域中的第一域中運行的消息客戶端,其中所述第五裝備提供所述第一域中的所述多個運行進程中的第一運行進程和所述第二域中的所述多個運行進程中的第二運行進程之間的信令,以基于與所述第一域對應的策略和與所述第二域對應的策略來選擇性地允許、過濾或阻止與所述第二域相關地生成的消息收到通知。38.根據權利要求35所述的方法,進一步包括: 在所述中間件中提供第六裝備,所述第六裝備用于基于所述多個域中的第一域的對應策略和所述多個域中的第二域的對應策略,啟用與所述第二域關聯的至少一個應用在所述第一域中的執行。39.根據權利要求38所述的方法,其中所述第六裝備從與所述第一域關聯的初始進程接收請求以執行所述至少一個應用,并且基于與所述第一域關聯的策略和與所述第二域關聯的策略來允許或阻止所述至少一個應用的所述執行。40.根據權利要求39所述的方法,所述請求用于顯示關聯于所述第二域的接收到的消息。41.根據權利要求38所述的方法,進一步包括: 在所述中間件中執行第七裝備,用戶界面基于所述多個域的對應策略來提供對所述多個域中的不同域的并行訪問。42.根據權利要求33所述的方法,進一步包括:部分地在所述內核中提供所述第三裝備。43.根據權利要求33所述的方法,其中所述操作系統實現多個用戶賬戶,并且其中所述多個用戶賬戶中的至少一個唯一地與對應的所述多個域關聯。44.根據權利要求33所述的方法,其中所述第三裝備基于與所述多個域中的第一域關聯的多個策略中的第一策略和與所述多個域中的第二域關聯的多個策略中的第二策略,控制與所述第一域關聯的進程控制對與所述第二域關聯的資源的訪問。45.根據權利要求44所述的方法,其中所述進程基于所述第一域的所述唯一域標識符與執行環境標識符關聯,并且其中所述第三裝備基于所述執行環境標識符,控制所述進程對所述資源的訪問。46.根據權利要求45所述的方法,其中所述執行環境標識符基于所述第一域的唯一域標識符和與為生成所述進程而執行的應用關聯的唯一應用標識符。47.根據權利要求46所述的方法,其中所述操作系統是安卓操作系統,所述唯一應用標識符是在安裝時分配給所述應用的Unix型用戶標識符(UID),所述執行環境標識符包括所述應用的所述UID,并且所述唯一域標識符包含在所述UID的保留位中。48.根據權利要求41所述的方法,其中所述用戶界面基于與所述多個域中的第一域關聯的策略和與所述多個域中的第二域關聯的策略,提供對與所述第一域關聯的至少第一應用和與所述第二域關聯的至少第二應用的并行訪問。49.根據權利要求48所述的方法,其中所述用戶界面實現與所述第一應用關聯的第一圖標和與所述第二應用關聯的第二圖標,并且所述第一圖標包括表示所述第一應用與所述第一域的關聯的覆蓋。50.根據權利要求33所述的方法,其中所述多個域中的一個是外部地控制的域,并且其中與所述外部地控制的域關聯的策略是經由網絡從遠程域管理服務器接收的。51.根據權利要求50所述的方法,其中所述遠程域管理服務器將對與所述外部地控制的域關聯的策略的至少一部分的修改阻擋在外。52.一種計算機可讀介質,包括在所述計算機可讀介質上存儲的指令,該指令在由處理器執行時實施根據權利要求33所述的方法。53.—種計算設備,包括處理器和存儲指令的存儲器,該指令可由所述處理器執行以實施提供多個安全域的操作系統,所述操作系統包括: 域管理器,用于選擇性地創建所述多個安全域,并且用于選擇所述多個安全域中的一個作為當前域; 域策略服務,用于針對每個安全域,存儲并執行包括規則集的策略,該規則集控制對與該域關聯的文件和應用的訪問; 程序包管理器,用于針對每安全域,執行與該域關聯的應用的安裝; 域消息服務,用于提供與所述多個安全域中的不同安全域關聯的運行進程之間的通信;以及 活動管理器,用于選擇性地切換所述當前域。
【文檔編號】H04W12/08GK105830477SQ201480054937
【公開日】2016年8月3日
【申請日】2014年8月11日
【發明人】亞歷山大·詹姆斯·邁因, 詹姆士·亨利·阿蘭·普德雷爾
【申請人】哥萊菲特軟件公司
網友詢(xun)問(wen)留言(yan) 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1