別相關(guān)聯(lián)的策略被訪問、刪除,等等。因此,文件內(nèi)容202只有在滿足與文件內(nèi)容202相關(guān)聯(lián)的數(shù)據(jù)保護類別策略時才能被訪問。加密的文件密鑰204可以存儲在文件元數(shù)據(jù)210中。
[0028]在一些實施方式中,文件元數(shù)據(jù)210可以利用文件系統(tǒng)密鑰212加密。例如,文件系統(tǒng)密鑰212可以基于設備硬件密鑰(例如,安全協(xié)處理器UID、設備標識符等)來生成。文件系統(tǒng)密鑰212確保文件元數(shù)據(jù)210和文件內(nèi)容202只能被對應于硬件密鑰214的移動設備訪問。
[0029]在一些實施方式中,文件系統(tǒng)密鑰212可以被刪除,以使得移動設備上的所有數(shù)據(jù)不可訪問。例如,數(shù)據(jù)保護模塊102可以從移動設備100的存儲器或磁盤中刪除文件系統(tǒng)密鑰212,以阻止將加密的文件元數(shù)據(jù)210解密,從而阻止訪問文件密鑰204和文件內(nèi)容202。例如,用戶可以提供輸入來從移動設備100中抹去所有的數(shù)據(jù)。響應于用戶輸入,數(shù)據(jù)保護模塊102可以刪除文件系統(tǒng)密鑰212,以使所有的數(shù)據(jù)不可訪問(例如,在沒有系統(tǒng)數(shù)據(jù)密鑰212的情況下,系統(tǒng)不能解密文件)。
[0030]在一些實施方式中,類別密鑰208可以利用硬件密鑰214加密。例如,如果通行碼保護在移動設備100上被禁用(例如,不需要通行碼/密碼來訪問移動設備100),則類別密鑰208可以只利用硬件密鑰214加密。如果通行碼保護被啟用,則類別密鑰208可以利用硬件密鑰214和通行碼密鑰216的組合(例如,串聯(lián),散列等)來加密。例如,當用戶為了使用而解鎖移動設備100時,可以通過用戶輸入(例如,鍵入通行碼作為對移動設備100的輸入)接收通行碼密鑰。當移動設備100被鎖定時(例如,在一段不活動時間之后自動地,響應于用戶輸入手動地),通行碼密鑰可以被刪除。
[0031]在一些實施方式中,可以使用用戶的生物特征數(shù)據(jù)來解鎖移動設備100和解密存儲在移動設備100上的數(shù)據(jù)。例如,移動設備100可以被配置成從移動設備100的用戶接收指紋數(shù)據(jù)。用戶可以將手指放置在移動設備100的指紋掃描儀上。指紋掃描儀可以捕獲手指指紋的圖像。指紋可以從掃描儀發(fā)送到數(shù)據(jù)保護模塊102。數(shù)據(jù)保護模塊102能夠通過確定指紋對應于移動設備的認證的(例如,通過通行碼、密碼)用戶的注冊的指紋來驗證指紋。
[0032]如果指紋訪問(例如,觸摸ID)被啟用,則數(shù)據(jù)保護模塊將存儲通行碼密鑰216 —段時間。例如,通行碼密鑰216在設備鎖定時將不會被刪除。相反,將使得通行碼密鑰或等效物不可用,直到移動設備100捕獲到有效的指紋。
[0033]圖3說明用于利用圖2的加密密鑰層次結(jié)構(gòu)和基于上下文的數(shù)據(jù)訪問控制解密文件的示例過程300。在步驟302,數(shù)據(jù)保護模塊102可以接收包括文件標識符的文件讀取請求。例如,文件標識符可以對應于之前已被數(shù)據(jù)保護模塊102加密的文件。在步驟304,數(shù)據(jù)保護模塊102可以使用文件標識符來獲得加密的文件內(nèi)容306和加密的文件元數(shù)據(jù)308。例如,所請求的加密的文件內(nèi)容306可以與加密的文件元數(shù)據(jù)308相關(guān)聯(lián),其中加密的文件元數(shù)據(jù)308包括識別與加密的文件相關(guān)聯(lián)的數(shù)據(jù)保護類別的信息和文件密鑰。
[0034]在步驟310,數(shù)據(jù)保護模塊102可以將加密的文件元數(shù)據(jù)308解密。例如,加密的文件元數(shù)據(jù)308可以利用文件系統(tǒng)密鑰312解密以生成解密的文件元數(shù)據(jù)314。在步驟316,數(shù)據(jù)保護模塊102可以從解密的文件元數(shù)據(jù)314中提取數(shù)據(jù)保護類別信息318和加密的文件密鑰320。
[0035]在步驟322,數(shù)據(jù)保護模塊102可以檢索加密的類別密鑰。例如,數(shù)據(jù)保護模塊102可以使用類別信息318來識別與所請求的文件相關(guān)聯(lián)的數(shù)據(jù)保護類別。一旦數(shù)據(jù)保護類別被識別,數(shù)據(jù)保護模塊就可以獲得與該類別相關(guān)聯(lián)的數(shù)據(jù)保護策略。如果移動設備100的當前狀態(tài)或上下文不滿足由數(shù)據(jù)保護策略指定的規(guī)則(以下進一步描述的),則數(shù)據(jù)保護模塊將響應于該文件請求返回錯誤324。如果加密的類別密鑰已刪除或以其它方式不可用,數(shù)據(jù)保護模塊102將響應于該文件請求返回錯誤324。如果移動設備100的當前狀態(tài)或上下文滿足由數(shù)據(jù)保護策略指定的規(guī)則(如以下進一步描述的),則數(shù)據(jù)保護模塊可以檢索或獲得與數(shù)據(jù)保護類別相關(guān)聯(lián)的加密的類別密鑰328。
[0036]在步驟328,數(shù)據(jù)保護模塊102可以將加密的類別密鑰326解密。例如,加密的類別密鑰可以利用硬件密鑰330 (例如,圖2的硬件密鑰214)和/或用戶通行碼332 (例如,圖2的通行碼密鑰216)加密。例如,移動設備100可以被配置成沒有用戶通行碼并且加密的類別密鑰可以只利用硬件密鑰330加密/解密。作為替代,移動設備100可以被配置成具有用戶通行碼332并且加密的類別密鑰可以利用硬件密鑰330和用戶通行碼322的組合(例如,串聯(lián),散列等)來加密/解密。例如,用戶可以啟用和/或禁用對移動設備100的密碼保護。
[0037]在一些實施方式中,用戶可以啟用對移動設備100的生物特征訪問。例如,用戶可以對移動設備100啟用指紋認證。一旦指紋認證被啟用,用戶就可以觸摸移動設備100的觸摸識別傳感器,觸摸識別傳感器可以掃描用戶的手指來獲得指紋,然后可以使用指紋確定該用戶是否是移動設備100的授權(quán)用戶。如果啟用了指紋認證,則移動設備100將加密并存儲用戶的通行碼或從通行碼得到的密鑰。例如,如果指紋認證被禁用并且通行碼保護被啟用,則用戶必須輸入通行碼來解鎖移動設備100,因為每次設備被鎖定時,用戶的通行碼都從移動設備100中刪除。如果啟用了指紋認證,則數(shù)據(jù)保護模塊102將存儲用戶的通行碼或從通行碼得到的密鑰,并使用用戶的指紋來授權(quán)使用通行碼或密鑰。
[0038]在步驟340,加密的文件密鑰320可以利用解密的類別密鑰338解密,以生成解密的文件密鑰342。例如,如上所述,加密的文件密鑰320可以在步驟316從文件元數(shù)據(jù)314中提取。解密的文件密鑰342可以用來在步驟344將加密的文件內(nèi)容306解密,從而允許訪問解密的文件內(nèi)容346。然后解密的文件內(nèi)容346可以返回給在步驟302請求該文件的進程。
[0039]在一些實施方式中,當解密的數(shù)據(jù)在過程300中被使用之后,它可以被刪除。例如,一旦解密的元數(shù)據(jù)314、解密的類別密鑰338、解密的文件密鑰342和解密的通行碼332被用于將加密的文件內(nèi)容306解密,它們就可以被刪除。
[0040]圖4說明用于基于數(shù)據(jù)保護類別策略檢索類別密鑰的示例過程400。例如,過程400可以在圖3的步驟322執(zhí)行。在步驟404,可以使用類別信息402 (例如,圖3的類別信息318)來獲得用于由類別信息402識別的數(shù)據(jù)保護類別的類別策略406。例如,用于每個數(shù)據(jù)保護類別的策略可以存儲在由移動設備100上的數(shù)據(jù)保護模塊102管理的數(shù)據(jù)庫中。數(shù)據(jù)保護類別策略可以指定規(guī)則,所述規(guī)則指示應該何時使數(shù)據(jù)保護類別密鑰可用于解密由數(shù)據(jù)保護類別保護的文件或密鑰串項(條目)。
[0041]在一些實施方式中,類別策略可以指定由數(shù)據(jù)保護類別保護的文件或密鑰串項應該始終在移動設備上解密。例如,在這種策略下,可以使得數(shù)據(jù)保護類別密鑰始終可用于解密文件或密鑰串項。此外,類別密鑰將只利用硬件密鑰330加密。類別密鑰將不利用用戶的通行碼332進行加密,這是因為文件或密鑰串項應該始終可用于移動設備100上運行的進程。
[0042]在一些實施方式中,類別策略可以指定由數(shù)據(jù)保護類別保護的文件或密鑰串項應該只在設備解鎖時才進行解密,并且這些策略可以用密碼強制執(zhí)行。例如,在這種策略下,只有當用戶已輸入通行碼時,類別密鑰才將變得可用。此外,類別密鑰將利用硬件密鑰330和用戶通行碼332兩者進行加密。由于只有當輸入通行碼或者提供指紋以解鎖移動設備時用戶通行碼332才在移動設備100上可用(例如,駐留在移動設備100上或被解密),因此在這種策略下被保護的文件或密鑰串項將只在用戶通過輸入通行碼或提供指紋解鎖設備時才進行解密。
[0043]在一些實施方式中,類別策略可以指定由數(shù)據(jù)保護類別保護的文件或密鑰串項應該只在設備重啟后的第一次解鎖之后才解密。例如,在這種策略下,數(shù)據(jù)保護模塊102將在用戶第一次解鎖移動設備100時存儲從用戶的通行碼得到的類別密鑰。該類別密鑰將利用硬件密鑰330和用戶通行碼332兩者進行加密/解密。數(shù)據(jù)保護模塊102將在移動設備100重新引導或重啟后用戶第一次解鎖它之后使類別密鑰可用。
[0044]在一些實施方式中,類別策略可以指定由數(shù)據(jù)保護類別保護的文件或密鑰串項應該只在通行碼在移動設備上被啟用時才解密。例如,用戶可以選擇啟用或禁用對移動設備100的通行碼數(shù)據(jù)保護。一些應用和進程可以依賴于數(shù)據(jù)保護來保護敏感數(shù)據(jù)(例如,敏感的用戶數(shù)據(jù)、醫(yī)療記錄等)。應用可以檢查移動設備100,以確定通行碼是否在移動設備上被啟用,但是當應用沒有在移動設備100上運行(例如,執(zhí)行)時,應用將無法監(jiān)視通行碼保護是否已被啟用或禁用。在這種策略下,數(shù)據(jù)保護模塊將只在通行碼在移動設備上被啟用時才使類別密鑰可用。如果通行碼