專利名稱:用于在移動終端中驗證軟件包的完整性的系統和方法
技術領域:
本發明涉及用于安全地保護移動終端的執行環境的計算機安全。更具體地,本發 明涉及基于用于驗證軟件包的完整性的計算機安全技術來保護移動終端的執行環境免受 對軟件包的潛在的破壞的系統和方法。
背景技術:
用于軟件包完整性的驗證的一些傳統技術是基于數字鑒權技術。授予Shear等 人白勺題為"Systems and Methods using Cryptography to Protect SecureComputing Environments”的美國專利No. 6,157,721 (下文中,稱為“Shear”)中描述了一種這樣的 傳統技術。根據Shear,至少一個可信賴的驗證機構通過分析和/或測試軟件包來驗證軟 件包。可信賴的驗證機構數字地簽名和證明該軟件包已經被驗證。在數字簽名之后,移動 終端的處理環境驗證該驗證機構的簽名,并且在驗證成功的情況下接受軟件包的執行和操 作,或者在驗證失敗的情況下拒絕該軟件包。用于使用數字簽名的一些傳統技術是基于使用公共密鑰的加密算法。可信賴的驗 證機構具有兩個密鑰,諸如公共密鑰和私用密鑰,使得利用私用密鑰來加密包的散列值,并 在移動終端的處理環境中分發公共密鑰。經加密的散列值被指定為包的證書。移動終端的 處理環境接收軟件包,通過使用從驗證機構接收的公共密鑰來解密關于接收的軟件包的簽 名的代碼,并且獲得軟件包的原始散列值。移動終端的處理環境計算軟件包的當前散列值 并且將所計算的當前散列值與原始散列值比較。如果它們匹配,則簽名鑒權過程被視為成 功。如果它們不匹配,則簽名鑒權過程失敗。因此,通過由移動終端的處理環境進行數字簽 名的鑒權,能夠確定軟件包是否沒有被改變。可是,諸如Shear方法的傳統方法需要復雜的公共密鑰結構用于公共密鑰分發和 驗證機構的驗證。而且,基于公共密鑰的代碼的數字簽名鑒權需要復雜的模(modular)操 作,這增加了用于處理軟件包所需的操作的數量和時間。因此,傳統方法不適合應用于某些 執行環境,諸如移動終端中。
發明內容
本發明的一方面用于解決至少以上的問題和/或不足并且提供至少以下所述的 優點。因此,本發明的一方面提供用于驗證軟件包的完整性而無需復雜的公共密鑰結構和 模操作的方法,從而將諸如存儲器的存儲空間的所需容量以及由完整性驗證造成的延遲時 間最小化。根據本發明的一方面,提供一種用于驗證移動終端中軟件包的完整性的方法。該 方法包括通過有線或無線通信從分發者接收可用的軟件包的目錄并且顯示該目錄;如果 從顯示的目錄中選擇要安裝的期望的軟件包,則從目錄中獲取與所選擇的軟件包對應的軟 件包標識符(ID);向分發者發送軟件包ID以接收與軟件包ID對應的選擇的軟件包,并且 向驗證機構發送軟件包ID ;從驗證機構接收與軟件包ID對應的完整性證據信息并且驗證所選擇的軟件包的完整性;以及輸出用于通知用戶該驗證的結果的通知,并且根據接收的 用戶選擇管理所選擇的軟件包。根據本發明的另一方面,提供一種用于驗證移動終端中軟件包的完整性的系統。 該系統包括移動終端,用于接收可用的軟件包的目錄并且顯示該目錄,如果從顯示的目 錄中選擇要安裝的期望的軟件包,則從目錄中獲取與所選擇的軟件包對應的軟件包標識符 (ID),向分發者發送軟件包ID,接收與軟件包ID對應的完整性證據信息,驗證所選擇的軟 件包的完整性,輸出用于通知用戶該驗證的結果的通知,并且根據接收的用戶選擇管理所 選擇的軟件包;分發者,用于向移動終端發送該目錄,接收與軟件包ID對應的選擇的軟件 包,并且向驗證機構發送軟件包ID ;以及驗證機構,用于向移動終端發送完整性證據信息。
通過下面結合附圖的詳細描述,本發明的實施例的以上和其它特征和優點將更加 顯而易見,其中圖1是軟件包的示意性框圖;圖2是根據本發明的實施例的用于驗證軟件包的完整性的系統的框圖;圖3是說明根據本發明的實施例的用于驗證軟件包的完整性的方法的第一流程 圖;圖4是說明存儲在驗證機構的數據庫中的軟件包及其相關數據的圖;以及圖5是說明根據本發明的實施例的用于驗證軟件包的完整性的方法的第二流程 圖。
具體實施例方式下文中,將參照附圖詳細說明本發明的實施例。應該注意,盡管在不同附圖中示 出,相同的組件均指代為相同的引用數字和符號。出于清楚和簡潔之故,省去公知的功能和 結構的詳細說明。圖1是根據本發明的實施例的軟件包的示意性框圖。參考圖1,軟件包是與將要在可以由硬件和/或軟件實現的執行環境中安裝的應 用相關的一組文件。軟件包是其中聚合有可執行文件、數據文件、配置文件、和諸如幫助文件的其他文 件的包。可以通過使用傳統方法聚合文件來產生軟件包。例如,可以通過使用公共壓縮軟 件(諸如“GNU is Not Unix ! ”(GNU) ZIP或TapeArchive (TAR))進行壓縮來聚合軟件包的 文件。圖2是根據本發明的實施例的用于驗證軟件包的完整性的系統的框圖。參考圖2,根據本發明的實施例,在應用戶21的請求檢測軟件包的格式之后,移動 終端22從軟件包中安裝將由用戶21使用的文件。移動終端22可以是諸如便攜計算機和 便攜電話機的便攜電子裝置,或者移動終端22可以是任何一種其他類似電子設備。移動終端22與驗證機構24和分發者23執行有線或無線通信,消耗或使用通過通 信獲得的軟件包,并且基于從驗證機構24接收的軟件包信息來驗證軟件包的完整性。如果軟件包的完整性的驗證成功完成,則移動終端22可以安裝該軟件包。如果軟件包的完整性的驗證失敗,則移動終端22可以拒絕該軟件包的安裝并且請求用戶針對驗 證失敗的軟件包的動作。與軟件包對應的開發者25提供將要在移動終端22上執行的軟件包。開發者實體 25通過使用開發工具產生包括可執行文件的文件,并且通過例如聚合所產生的文件來配置 將要在移動終端22上執行的軟件包。驗證機構24是受移動終端22和用戶21信賴的驗證機構。根據本發明的實施例 的驗證機構24確定或驗證軟件包是否遵守軟件包的規范。軟件包的規范可以包括軟件功 能的說明、關于訪問系統資源的信息等。驗證機構24通過查看軟件源代碼或借助執行軟件 而測試包括在軟件包中的軟件來確定軟件包是否遵照驗證機構24的規范而操作。如果包括在軟件包中的軟件已經被成功測試,則驗證機構24登記和存儲證明軟 件包的完整性的完整性證據信息。分發者23從開發者25獲取將由用戶21使用的軟件包。分發者23可以具有可分 發的軟件包的目錄。軟件包目錄包含軟件包和關于每個軟件包的信息。關于軟件包的信息 可以包括唯一的標識符(ID)和關于每個軟件包的描述。分發者23可以通過與移動終端22 通信向移動終端22發送軟件包和關于所發送的軟件包的信息。圖3是說明根據本發明的實施例的用于驗證軟件包的完整性的方法的第一流程 圖,而圖4是說明存儲在驗證機構24的數據庫中的軟件包及其相關數據的圖。參考圖3和 4,如下描述驗證軟件包的完整性的過程。參考圖3,在軟件包的開發完成時,在步驟S301,開發者25向驗證機構24發送軟 件包、關于軟件包的信息、和軟件包的規范。關于軟件包的信息包括軟件包的詳情、用于安裝軟件包的方法、和其他信息。軟件 包的規范可以包括軟件的功能、軟件的行為、軟件可訪問的系統資源、使用軟件的方式等。在步驟S302,驗證機構24驗證軟件包是否遵守所接收的軟件包的規范。驗證機構24通過分析軟件包的代碼、仿真軟件包的功能、或者分析資源(諸如系 統資源)的使用量來驗證軟件包是否遵守所接收的軟件包的規范。如果包括在軟件包的軟件遵守軟件包的規范,則驗證機構24在步驟S303產生用 于標識軟件包的軟件包ID,并在步驟S304產生關于該軟件包的完整性證據信息。軟件包ID可以是包括開發者名稱、軟件包名稱、軟件包大小、軟件包版本、驗證日 期、和驗證機構名稱中的至少一個的字符串。通過產生軟件包的完整性證據信息,驗證機構24允許移動終端22確定包括在軟 件包的軟件在遵守規范方面測試成功,或者確定以未授權的方式改變了軟件。如果產生軟 件包的完整性證據信息,則確定該軟件包遵照規范操作。然而,如果沒有產生軟件包的完整 性證據信息,則確定該軟件包未能遵照規范。軟件包的完整性證據信息的示例可以包括在軟件包中連續執行的加密散列函數 (或總計函數)的散列值、軟件包ID、關于軟件包的信息、和驗證機構的ID。加密散列函數 的示例可以包括SHA-1、SHA-224、SHA-256、SHA-384、和SHA-512。安全散列算法(SHA)函 數是彼此相關的一組加密散列函數。SHA-224、SHA-256、SHA-384、和SHA-512是SHA-I的變 體,它們一起被稱為SHA-2。驗證機構24在步驟S305在驗證機構24的數據庫中登記該軟件包,并且在步驟S306向開發者25發送該軟件包的軟件包ID和完整性證據信息。參考圖4,驗證機構24的數據庫(未示出)可以包括軟件包、軟件包ID、關于軟件 包的信息、驗證機構24的ID、和軟件包的完整性證據信息。如果包括在軟件包中的軟件未 能遵守軟件包的規范,則驗證機構24可以拒絕產生該軟件包的軟件包ID和完整性證據信 息或登記該軟件包。當接收軟件包ID和完整性證據信息時,在步驟S307,開發者25向分發者23提供 軟件包、軟件包ID、和關于軟件包的信息,使得分發者23能夠隨后向移動終端22提供該軟 件包。分發者23在步驟S308將其存儲。開發者25可以向分發者23單獨發送該軟件包,或連同軟件包ID及關于該軟件包 的信息一起發送。開發者25可以向分發者23提供在步驟S306接收的完整性證據信息,分 發者23可以隨后存儲所提供的完整性證據信息。雖然根據圖3所示的本發明的實施例假定,開發者25在步驟S307向分發者23發 送軟件包ID、軟件包、和關于軟件包的信息,但是在本發明的修改的實施例中,驗證機構24 可以在步驟S305之后直接向分發者23發送軟件包ID、軟件包、和關于軟件包的信息。圖5是說明根據本發明的實施例的用于驗證軟件包的完整性的方法的第二流程 圖。參考圖5,如果用戶21在步驟S501向移動終端22提供請求的輸入以請求移動終 端22提供期望的軟件包的目錄,則移動終端22在步驟S502通過通信請求分發者23提供 可用的軟件包的目錄。分發者23在步驟S503產生可用的軟件包的目錄,并且在步驟S504向移動終端22 發送產生的軟件包目錄。軟件包目錄可以包括每個軟件包名稱和與每個軟件包對應的軟件包ID。軟件包目 錄可以進一步包括相應的完整性證據信息。在步驟S505移動終端22向用戶21提供從分發者23接收的可用的軟件包的目錄。例如,移動終端22在顯示單元(未示出)上向用戶21顯示從分發者23接收的軟 件包目錄,該顯示單元可以實現為例如液晶顯示器(LCD)或有機發光二極管(0LED),使得 用戶21能夠從顯示在顯示單元上的軟件包目錄中選擇軟件包。用戶21在步驟S506從由移動終端22提供的軟件包目錄中選擇將要安裝的期望 的軟件包,并且在步驟S507將所選擇的軟件包通知移動終端22。更具體地,用戶21通過參考軟件包的名稱而從顯示單元上顯示的軟件包目錄中 選擇期望的軟件包,并且經過預定的按鍵輸入將所選擇的軟件包通知移動終端22。例如,如 果顯示單元是觸摸屏顯示器,則用戶21可以通過觸摸該軟件來將所選擇的軟件包通知移 動終端22。如果顯示單元不是觸摸屏顯示器,則用戶21可以替換地通過輸入按鍵輸入單元 (未示出)的‘0K’按鍵來將期望的軟件包通知移動終端22。在步驟S508移動終端22獲得與用戶21選擇的軟件包對應的軟件包ID。更具體地,移動終端22獲取與用戶21從接收的軟件包目錄中選擇的軟件包對應 的軟件包ID。如果用戶21選擇了多個軟件包,則移動終端22可以檢查并獲取與每個所選 擇的軟件包對應的軟件包ID。移動終端22在步驟S509向分發者23發送獲取的軟件包ID,而分發者23在步驟S510向移動終端22發送與從移動終端22接收的軟件包ID對應的軟件包。在步驟S510從分發者23接收軟件包之后,移動終端22在步驟S511向驗證機構 24發送相應的軟件包ID。驗證機構24接著在步驟S512搜索與軟件包ID對應的完整性證 據信息,并且在步驟S513向移動終端22發送軟件包ID和找到的與其對應的完整性證據信 肩、ο驗證機構24搜索與從移動終端22接收的軟件包ID對應的完整性證據信息,以使 得如果找到完整性證據信息,則驗證機構24向移動終端22發送軟件包ID和完整性證據信 肩、ο如果沒有找到完整性證據信息,則驗證機構24可以向移動終端22發送錯誤消息。 例如,該錯誤消息可以是警告消息,指示沒有找到完整性證據信息。該錯誤消息可以包括關 于已嘗試針對其搜索完整性證據信息的軟件包ID的信息。在從驗證機構24接收軟件包ID和完整性證據信息之后,移動終端22在步驟S514 驗證軟件包的完整性,并且在步驟S515通知用戶21該驗證結果。移動終端22將之前例如在步驟S504從分發者23接收的軟件包的完整性證據信 息與在步驟S513接收的完整性證據信息比較。如果在步驟S504和S513接收的完整性證 據信息匹配,則移動終端22將匹配的結果通知用戶21。之后,如果用戶21請求該軟件包的 安裝,則移動終端22通過使用軟件包的管理功能在移動終端22中安裝該軟件包。如果在步驟S504接收的軟件包的完整性證據信息與在步驟S513接收的完整性證 據信息不匹配,或者如果移動終端22從驗證機構24接收到錯誤消息,例如根據步驟S512 的搜索結果可以在步驟S513接收的錯誤消息,則移動終端22通知用戶21該軟件包的完整 性的驗證已經失敗。移動終端22將完整性驗證的結果通知用戶21的方法可以包括使用顯 示單元(未示出)的視覺通知、使用聲音輸出單元(未示出)的聽覺通知、或視覺通知和聽 覺通知的組合。當用戶21在步驟S516基于該完整性驗證結果提供是否安裝該軟件包的選擇的輸 入時,移動終端22在步驟S517根據用戶的選擇管理軟件包。用戶21可以通過使用顯示單元或包括觸摸屏的按鍵輸入單元基于完整性驗證結 果選擇是否要安裝該軟件包。用戶21可以不管針對軟件包的完整性驗證的失敗來安裝該 軟件包。如果移動終端22從用戶21接收請求安裝該軟件包的請求的輸入,則移動終端22 通過使用該軟件包的管理功能安裝該軟件包。如果移動終端22沒有請求安裝該軟件包,則 移動終端22取消該軟件包的安裝。用戶21或移動終端22可以提供設置以使得從移動終 端22中刪除被取消安裝的軟件包。從前述說明中顯然可知,根據本發明的實施例的系統和方法不需要復雜的公共密 鑰結構,且驗證軟件包的完整性而無需模操作,由此減少用于完整性驗證所需的操作的次 數和時間。雖然已經參考其實施例展示和描述本發明,但是本領域技術人員不難理解,其中 可以在形式和細節上作出各種改變而不背離由所附權利要求書限定的本發明的精神和范圍。
權利要求
一種用于驗證移動終端中軟件包的完整性的方法,該方法包括從分發者接收可用的軟件包的目錄并且顯示該目錄;如果從顯示的目錄中選擇要安裝的期望的軟件包,則從目錄中獲取與所選擇的軟件包對應的軟件包標識符(ID);向分發者發送軟件包ID以接收與軟件包ID對應的選擇的軟件包,并且向驗證機構發送軟件包ID;從驗證機構接收與軟件包ID對應的完整性證據信息并且驗證所選擇的軟件包的完整性;以及輸出用于通知用戶該驗證的結果的通知,并且根據接收的用戶選擇管理所選擇的軟件包。
2.如權利要求1所述的方法,其中接收和顯示可用的軟件包的目錄包括如果接收到關于期望的軟件包的目錄的用戶請求,則由移動終端請求分發者提供可用 的軟件包的目錄;由分發者產生可用的軟件包的目錄并且向移動終端發送產生的目錄;以及 由移動終端顯示從分發者接收的目錄。
3.如權利要求1所述的方法,其中驗證機構搜索與從移動終端接收的軟件包ID對應的 完整性證據信息;以及其中如果與接收的軟件包ID對應的完整性證據信息存在,則驗證機構向移動終端發 送接收的軟件包ID和完整性證據信息。
4.如權利要求3所述的方法,其中如果與接收的軟件包ID對應的完整性證據信息不存 在,則驗證機構向移動終端發送指示完整性證據信息不存在的信息。
5.如權利要求1所述的方法,其中驗證所選擇的軟件包的完整性包括將從分發者接收的完整性證據信息與從驗證機構接收的完整性證據信息比較; 如果作為比較的結果從分發者接收的完整性證據信息與從驗證機構接收的完整性證 據信息匹配,則證明所選擇的軟件包具有驗證的完整性;以及如果作為比較的結果從分發者接收的完整性證據信息與從驗證機構接收的完整性證 據信息不匹配,則證明所選擇的軟件包缺乏驗證的完整性。
6.如權利要求1所述的方法,其中管理所選擇的軟件包包括 輸出通知以通知用戶所選擇的軟件包被證明為具有完整性;以及當接收到要安裝所選擇的軟件包的用戶請求時進行所選擇的軟件包的安裝。
7.如權利要求1所述的方法,其中管理所選擇的軟件包包括 通知用戶所選擇的軟件包被證明為缺乏驗證的完整性;以及當接收到要安裝所選擇的軟件包的用戶請求時進行所選擇的軟件包的安裝。
8.如權利要求1所述的方法,其中管理所選擇的軟件包包括輸出通知以通知用戶所選擇的軟件包被證明為缺乏驗證的完整性;以及 當接收到要刪除所選擇的軟件包的用戶請求時刪除所選擇的軟件包。
9.如權利要求1所述的方法,其中該驗證機構從開發者接收軟件包、關于軟件包的信息、和軟件包的規范; 驗證所接收的軟件包是否遵守軟件包的規范;如果所接收的軟件包遵守軟件包的規范,則產生該軟件包的軟件包ID和完整性證據 信息;以及登記為其產生完整性證據信息的軟件包。
10.如權利要求9所述的方法,其中驗證機構向分發者發送軟件包ID、軟件包、和關于 軟件包的信息,以及其中分發者存儲從驗證機構發送的軟件包ID、軟件包、和關于軟件包的信息。
11.如權利要求9所述的方法,其中驗證機構向開發者發送軟件包ID和完整性證據信肩、ο
12.如權利要求11所述的方法,其中開發者向分發者發送軟件包ID、軟件包、和關于軟 件包的信息,而分發者存儲從開發者發送的軟件包ID、軟件包、和關于軟件包的信息。
13.如權利要求1所述的方法,其中通過有線通信和無線通信中的至少一個從分發者 接收可用的軟件包。
14.一種用于驗證移動終端中軟件包的完整性的系統,該系統包括移動終端,用于接收可用的軟件包的目錄并且顯示該目錄,如果從顯示的目錄中選擇 要安裝的期望的軟件包,則從目錄中獲取與所選擇的軟件包對應的軟件包標識符(ID),向 分發者發送軟件包ID,接收與軟件包ID對應的完整性證據信息,驗證所選擇的軟件包的完 整性,輸出用于通知用戶該驗證的結果的通知,并且根據接收的用戶選擇管理所選擇的軟 件包;分發者,用于向該移動終端發送該目錄,接收與軟件包ID對應的選擇的軟件包,并且 向驗證機構發送軟件包ID ;以及驗證機構,用于向移動終端發送完整性證據信息。
15.如權利要求14所述的系統,其中如果接收到關于期望的軟件包的目錄的用戶請 求,則移動終端請求分發者提供可用的軟件包的目錄,分發者產生可用的軟件包的目錄并 且向移動終端發送產生的目錄,而且移動終端顯示從分發者接收的目錄。
16.如權利要求14所述的系統,其中驗證機構搜索與從移動終端接收的軟件包ID對應 的完整性證據信息;以及其中如果與接收的軟件包ID對應的完整性證據信息存在,則驗證機構向移動終端發 送接收的軟件包ID和完整性證據信息。
17.如權利要求16所述的系統,其中如果與接收的軟件包ID對應的完整性證據信息不 存在,則驗證機構向移動終端發送指示完整性證據信息不存在的信息。
18.如權利要求14所述的系統,其中在驗證所選擇的軟件包的完整性中,移動終端將 從分發者接收的完整性證據信息與從驗證機構接收的完整性證據信息比較,如果作為比較 的結果從分發者接收的完整性證據信息與從驗證機構接收的完整性證據信息匹配,則證明 所選擇的軟件包具有驗證的完整性,而如果作為比較的結果從分發者接收的完整性證據信 息與從驗證機構接收的完整性證據信息不匹配,則證明所選擇的軟件包缺乏驗證的完整 性。
19.如權利要求14所述的系統,其中在管理所選擇的軟件包中,該移動終端輸出通知 以通知用戶所選擇的軟件包被證明為具有完整性,而且當接收到要安裝所選擇的軟件包的 用戶請求時進行所選擇的軟件包的安裝。
20.如權利要求14所述的系統,其中在管理所選擇的軟件包中,移動終端通知用戶所 選擇的軟件包被證明為缺乏驗證的完整性,而且當接收到要安裝所選擇的軟件包的用戶請 求時進行所選擇的軟件包的安裝。
21.如權利要求14所述的系統,其中在管理所選擇的軟件包中,移動終端輸出通知以 通知用戶所選擇的軟件包被證明為缺乏驗證的完整性,而且當接收到要刪除所選擇的軟件 包的用戶請求時刪除所選擇的軟件包。
22.如權利要求14所述的系統,其中驗證機構從開發者接收軟件包、關于軟件包的信 息、和軟件包的規范,驗證所接收的軟件包是否遵守軟件包的規范,如果所接收的軟件包遵 守軟件包的規范則產生該軟件包的軟件包ID和完整性證據信息,而且登記為其產生完整 性證據信息的軟件包。
23.如權利要求22所述的系統,其中驗證機構向分發者發送軟件包ID、軟件包、和關于 軟件包的信息,而且其中分發者存儲從驗證機構發送的軟件包ID、軟件包、和關于軟件包的信息。
24.如權利要求22所述的系統,其中驗證機構向開發者發送軟件包ID和完整性證據信肩、ο
25.如權利要求14所述的系統,其中開發者向分發者發送軟件包ID、軟件包、和關于軟 件包的信息,而且分發者存儲從開發者發送的軟件包ID、軟件包、和關 于軟件包的信息。
26.如權利要求14所述的系統,其中移動終端通過有線通信和無線通信中的至少一個 從分發者接收可用的軟件包。
全文摘要
根據本發明的一方面,提供一種用于驗證移動終端中軟件包的完整性的方法和系統。該方法包括從分發者接收可用的軟件包的目錄并且顯示該目錄;如果從顯示的目錄中選擇要安裝的期望的軟件包,則從目錄中獲取與所選擇的軟件包對應的軟件包標識符(ID);向分發者發送軟件包ID以接收與軟件包ID對應的選擇的軟件包,并且向驗證機構發送軟件包ID;從驗證機構接收與軟件包ID對應的完整性證據信息并且驗證所選擇的軟件包的完整性;以及輸出用于通知用戶該驗證的結果的通知,并且根據接收的用戶選擇管理所選擇的軟件包。
文檔編號H04W12/04GK101883360SQ201010180019
公開日2010年11月10日 申請日期2010年5月10日 優先權日2009年5月8日
發明者李炅熙, 泰姆爾·科基什科 申請人:三星電子株式會社