專利名稱:代碼簽字系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件應(yīng)用程序的安全協(xié)議領(lǐng)域。更具體地說,本發(fā)明提供代碼簽字系統(tǒng)及方法,特別適用于移動通信設(shè)備的Java 應(yīng)用程序,例如個人數(shù)字助理、蜂窩電話,無線雙程通信設(shè)備(以下通稱為"移動設(shè)備"或簡稱"設(shè)備")。
背景技術(shù):
包括軟件代碼簽字方案的安全協(xié)議是眾所周知的,典型地,這種安全協(xié)議用來保證從互聯(lián)網(wǎng)下載的軟件應(yīng)用程序的可靠性。在典型的代碼簽字方案中,數(shù)字簽字附于識別軟件開發(fā)商的軟件應(yīng)用程序。 一旦該軟件被用戶下載,用戶必須只根據(jù)對軟件開發(fā)商信譽(yù)的了解來判斷該軟件應(yīng)用程序的可靠性。這類代碼簽字方案不能保證由第三方為移動設(shè)備所寫的軟件應(yīng)用程序適合與本地應(yīng)用程序和其它資源交互作用。因?yàn)榈湫偷拇a簽字協(xié)議是不安全的,且只依賴于用戶的判斷,有嚴(yán)重破壞的風(fēng)險,"特洛伊木馬"型軟件應(yīng)用程序可能被下載并安裝在移動設(shè)備上。 網(wǎng)絡(luò)工作者還需要一種系統(tǒng)和方法,來控制軟件應(yīng)用程序在移動設(shè)備上起動。
還進(jìn)一步需要2. 5G和3G網(wǎng)絡(luò),其中合作客戶或網(wǎng)絡(luò)工作者都喜歡控制在設(shè)備上發(fā)布給其顧員的軟件類型。
發(fā)明內(nèi)容
本發(fā)明的目的是提供代碼簽字系統(tǒng)和方法。 按照本發(fā)明的一方面,一種代碼簽字系統(tǒng),用于與具有數(shù)字簽字和簽字標(biāo)識的軟件應(yīng)用程序一起工作,其中,數(shù)字簽字與簽字標(biāo)識相關(guān),包括
應(yīng)用平臺; 應(yīng)用編程接口 API,具有關(guān)聯(lián)的簽字標(biāo)識符,設(shè)置API將軟件應(yīng)用程序和應(yīng)用平臺鏈接; 虛擬機(jī),如果簽字標(biāo)識符對應(yīng)簽字標(biāo)識,則為了控制軟件應(yīng)用程序訪問API,虛擬機(jī)驗(yàn)證數(shù)字簽字的真實(shí)性, 其中,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字,所述虛擬機(jī)通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號來驗(yàn)證數(shù)字簽字的真實(shí)性。 優(yōu)選地,如果數(shù)字簽字不真實(shí),則虛擬機(jī)拒絕軟件應(yīng)用程序訪問API。
優(yōu)選地,如果數(shù)字簽字不真實(shí),則虛擬機(jī)刪除軟件應(yīng)用程序。
優(yōu)選地,代碼簽字系統(tǒng)裝在移動設(shè)備上。
優(yōu)選地,數(shù)字簽字由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生。
優(yōu)選地,還包括 多個API程序庫,每個API程序庫包括多個API,其中,虛擬機(jī)通過軟件應(yīng)用程序控 制訪問多個API程序庫。 優(yōu)選地,至少一個API程序庫被分類為敏感的; 訪問敏感的API程序庫要求將數(shù)字簽字與簽字標(biāo)識關(guān)聯(lián),其中,簽字標(biāo)識對應(yīng)與 敏感的API程序庫關(guān)聯(lián)的簽字標(biāo)識符; 軟件應(yīng)用程序包括至少一個數(shù)字簽字和至少一個關(guān)聯(lián)的簽字標(biāo)識,用于訪問敏感 的API程序庫; 虛擬機(jī)通過驗(yàn)證包括在軟件應(yīng)用程序中的一個數(shù)字簽字來授權(quán)軟件應(yīng)用程序訪 問敏感的API程序庫,所述軟件應(yīng)用程序具有對應(yīng)敏感的API程序庫的簽字標(biāo)識符的簽字 標(biāo)識。 優(yōu)選地,敏感的API程序庫還包括描述字符串,其中,當(dāng)軟件應(yīng)用程序試圖訪問敏
感的API時,顯示描述字符串。 優(yōu)選地,應(yīng)用平臺包括操作系統(tǒng)。 優(yōu)選地,包括一個或多個移動設(shè)備的核心功能。 優(yōu)選地,包括移動設(shè)備上的硬件。 優(yōu)選地,硬件包括用戶身份模塊卡。 優(yōu)選地,軟件應(yīng)用程序是用于移動設(shè)備的Java應(yīng)用程序。
優(yōu)選地,API與應(yīng)用平臺上的加密流程接口 。
優(yōu)選地,API與應(yīng)用平臺上的專用數(shù)據(jù)模塊接口。
優(yōu)選地,虛擬機(jī)是安裝在移動設(shè)備上的Java虛擬機(jī)。 按照本發(fā)明的另一方面,一種控制在移動設(shè)備上訪問敏感的應(yīng)用程序編程接口的 方法,包括下列步驟 把軟件應(yīng)用程序裝到移動設(shè)備上,所述軟件應(yīng)用程序要求訪問具有簽字標(biāo)識符的 敏感的應(yīng)用程序編程接口 API ; 確定軟件應(yīng)用程序是否包括數(shù)字簽字和簽字標(biāo)識; 如果簽字標(biāo)識不與簽字標(biāo)識符對應(yīng),那么拒絕軟件應(yīng)用程序訪問敏感的API ;
如果簽字標(biāo)識與簽字標(biāo)識符對應(yīng),那么驗(yàn)證數(shù)字簽字的真實(shí)性,其中,基于數(shù)字簽 字的真實(shí)性的驗(yàn)證,由軟件應(yīng)用程序訪問敏感的API, 其中,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字,其中, 驗(yàn)證數(shù)字簽字的真實(shí)性包括步驟 在移動設(shè)備上存儲對應(yīng)專用簽字密鑰的公用簽字密鑰;
產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號;
將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號;
比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號。 優(yōu)選地,還包括步驟如果簽字標(biāo)識不對應(yīng)簽字標(biāo)識符,則從移動設(shè)備刪除軟件應(yīng) 用程序。 優(yōu)選地,數(shù)字簽字和簽字標(biāo)識由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生。 優(yōu)選地,還包括步驟如果數(shù)字簽字不真實(shí),則拒絕軟件應(yīng)用程序訪問敏感的 API。 優(yōu)選地,還包括步驟如果數(shù)字簽字不真實(shí),則從移動設(shè)備上刪除軟件應(yīng)用程序。 優(yōu)選地,當(dāng)軟件應(yīng)用程序試圖訪問所述的敏感的API時,向用戶顯示描述字符串。 優(yōu)選地,還包括如下步驟顯示描述字符串,所述描述字符串通知移動設(shè)備的用戶 軟件應(yīng)用程序要求訪問敏感的API 。 優(yōu)選地,還包括步驟從用戶接收指令,準(zhǔn)許或拒絕軟件應(yīng)用程序訪問敏感的 API。 按照本發(fā)明的另一方面,一種移動設(shè)備,包括 應(yīng)用平臺,具有應(yīng)用編程接口 API ; 虛擬機(jī),用于驗(yàn)證由各個軟件應(yīng)用程序提供的數(shù)字簽字和簽字標(biāo)識,以便訪問
API ; 在軟件應(yīng)用程序提供的數(shù)字簽字由代碼簽字協(xié)議驗(yàn)證后,虛擬機(jī)也允許軟件應(yīng)用
程序訪問至少一個API ; 代碼簽字授權(quán)機(jī)構(gòu)向要求訪問至少一個API的軟件應(yīng)用程序提供數(shù)字簽字和簽 字標(biāo)識,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字,其中,提供給 軟件應(yīng)用程序的簽字標(biāo)識包括僅被授權(quán)的簽字標(biāo)識,以便允許訪問多個移動設(shè)備的第一子 設(shè)備; 其中,第一數(shù)字簽字和第一簽字標(biāo)識用于第一種類型的移動設(shè)備;
第二數(shù)字簽字和第二簽字標(biāo)識用于第二種類型的移動設(shè)備; 與應(yīng)用程序關(guān)聯(lián)的第一數(shù)字簽字和第一簽字標(biāo)識防止使用第二種類型移動設(shè)備 上的API的應(yīng)用程序; 與應(yīng)用程序關(guān)聯(lián)的第二數(shù)字簽字和第二簽字標(biāo)識防止使用第一種類型移動設(shè)備 上的API的應(yīng)用程序, 其中,虛擬機(jī)通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公 用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂 信號來驗(yàn)證第一數(shù)字簽字或第二數(shù)字簽字的真實(shí)性。 優(yōu)選地,虛擬機(jī)包括驗(yàn)證系統(tǒng)和控制系統(tǒng),其中,虛擬機(jī)是Java虛擬機(jī),軟件應(yīng)用 程序是Java應(yīng)用程序。 優(yōu)選地,控制系統(tǒng)為至少一個API的每個程序庫要求一個數(shù)字簽字和一個簽字標(biāo) 識。 優(yōu)選地,應(yīng)用平臺的API至少接入執(zhí)行加密算法的加密模塊、數(shù)據(jù)存儲器、專用數(shù) 據(jù)模型和用戶接口之一。 優(yōu)選地,至少一個API被分類為敏感的,敏感的API還包括描述字符串,其中,當(dāng)軟 件應(yīng)用程序試圖訪問敏感的API時,描述字符串被顯示給用戶。
11
優(yōu)選地,第一種類型的移動設(shè)備和第二種類型的移動設(shè)備是不同類型的移動設(shè) 備。 按照本發(fā)明的另一方面,一種在移動設(shè)備上控制軟件開發(fā)商開發(fā)的軟件應(yīng)用程序
訪問具有簽字標(biāo)識符的應(yīng)用程序編程接口 API的方法,包括如下步驟 從軟件開發(fā)商接收軟件應(yīng)用程序; 確定軟件應(yīng)用程序是否滿足至少一個標(biāo)準(zhǔn); 如果軟件應(yīng)用程序滿足至少一個標(biāo)準(zhǔn),則把數(shù)字簽字和簽字標(biāo)識添加到軟件應(yīng)用 程序; 如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,則驗(yàn)證添加到軟件應(yīng)用程序的數(shù)字簽字的真實(shí) 性; 如果數(shù)字簽字是真實(shí)的,向軟件應(yīng)用程序提供到API的路徑; 把數(shù)字簽字和簽字標(biāo)識添加到軟件應(yīng)用程序的步驟包括產(chǎn)生數(shù)字簽字,包括下列 步驟 計(jì)算軟件應(yīng)用程序的雜亂信號; 把專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號,以產(chǎn)生數(shù)字簽字; 在移動設(shè)備上提供公用簽字密鑰; 在移動設(shè)備上計(jì)算軟件應(yīng)用程序的雜亂信號以獲得計(jì)算的雜亂信號; 把公用簽字密鑰應(yīng)用到數(shù)字簽字,以獲得恢復(fù)的雜亂信號; 通過比較計(jì)算的雜亂信號與恢復(fù)的雜亂信號來驗(yàn)證數(shù)字簽字。 優(yōu)選地,確定軟件應(yīng)用程序是否滿足至少一個標(biāo)準(zhǔn)的步驟由代碼簽字授權(quán)機(jī)構(gòu)執(zhí) 行。 優(yōu)選地,使用安全的雜亂信號算法計(jì)算軟件應(yīng)用程序的雜亂信號。 優(yōu)選地,進(jìn)一步包括,如果數(shù)字簽字不真實(shí),則拒絕該軟件應(yīng)用程序訪問API。 按照本發(fā)明的另一方面,一種在移動設(shè)備上控制訪問具有簽字標(biāo)識符的敏感應(yīng)用 編程接口 API的方法,包括步驟 注冊一個或多個可信的軟件開發(fā)商,編制訪問敏感的API的軟件應(yīng)用程序; 接收軟件應(yīng)用程序的雜亂信號; 確定雜亂信號是否是注冊的軟件開發(fā)商所發(fā)送; 產(chǎn)生數(shù)字簽字,其中, 數(shù)字簽字和簽字標(biāo)識被添加到軟件應(yīng)用程序; 如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,為了控制軟件應(yīng)用程序訪問敏感的API,移動設(shè)備 驗(yàn)證數(shù)字簽字的真實(shí)性; 產(chǎn)生數(shù)字簽字的步驟是把專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號執(zhí)行的, 所述雜亂信號由注冊的軟件開發(fā)商所發(fā)送; 其中,移動設(shè)備執(zhí)行下列附加的步驟驗(yàn)證數(shù)字簽字的真實(shí)性 在移動設(shè)備上提供公用簽字密鑰; 在移動設(shè)備上計(jì)算軟件應(yīng)用程序的雜亂信號,以獲得計(jì)算的雜亂信號; 把公用簽字密鑰應(yīng)用到數(shù)字簽字,以獲得恢復(fù)的雜亂信號; 通過比較計(jì)算的雜亂信號與恢復(fù)的雜亂信號,以確定數(shù)字簽字是否真實(shí);
如果數(shù)字簽字不真實(shí),則拒絕軟件應(yīng)用程序訪問敏感的API。
優(yōu)選地,產(chǎn)生數(shù)字簽字的步驟由代碼簽字授權(quán)機(jī)構(gòu)執(zhí)行。 按照本發(fā)明的另一方面, 一種在移動設(shè)備上限制訪問應(yīng)用編程接口的方法,包括 如下步驟 把具有數(shù)字簽字和簽字標(biāo)識的軟件應(yīng)用程序裝到要求訪問一個或多個具有至少 一個簽字標(biāo)識符的API的移動設(shè)備上; 如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,則驗(yàn)證數(shù)字簽字; 如果軟件應(yīng)用程序不包括真實(shí)的數(shù)字簽字,則拒絕軟件應(yīng)用程序訪問一個或多個 API ; 其中,如果簽字標(biāo)識與簽字標(biāo)識符對應(yīng),則驗(yàn)證數(shù)字簽字的步驟包括
驗(yàn)證與簽字標(biāo)識符對應(yīng)的簽字標(biāo)識; 把公用簽字密鑰存儲到移動設(shè)備上,該公用簽字密鑰對應(yīng)與代碼簽字授權(quán)機(jī)構(gòu)關(guān)
聯(lián)的專用簽字密鑰,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字; 產(chǎn)生軟件應(yīng)用程序的雜亂信號,以獲得產(chǎn)生的雜亂信號; 把公用簽字密鑰應(yīng)用到數(shù)字簽字,以獲得恢復(fù)的雜亂信號; 將產(chǎn)生的雜亂信號與恢復(fù)的雜亂信號進(jìn)行比較。 優(yōu)選地,數(shù)字簽字和簽字標(biāo)識與移動設(shè)備的類型有關(guān)。 優(yōu)選地,包括附加的步驟如果軟件應(yīng)用程序不包括真實(shí)的數(shù)字簽字,則從移動設(shè) 備上消除該軟件應(yīng)用程序。 優(yōu)選地,軟件應(yīng)用程序包括多個數(shù)字簽字和簽字標(biāo)識; 多個數(shù)字簽字和簽字標(biāo)識分別包括與各不同類型的移動設(shè)備有關(guān)的數(shù)字簽字和 簽字標(biāo)識。 優(yōu)選地,每個數(shù)字簽字和有關(guān)的簽字標(biāo)識是由各相應(yīng)的代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生 的。 優(yōu)選地,通過把與代碼簽字授權(quán)機(jī)構(gòu)有關(guān)的各個專用簽字密鑰應(yīng)用到軟件應(yīng)用程
序的雜亂信號,由對應(yīng)的代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生每個數(shù)字簽字和簽字標(biāo)識。 按照本發(fā)明的另一方面,一種控制軟件應(yīng)用程序訪問具有簽字標(biāo)識符的應(yīng)用編程
接口 API的方法,軟件應(yīng)用程序具有數(shù)字簽字和簽字標(biāo)識,包括 如果簽字標(biāo)識對應(yīng)于簽字標(biāo)識符,則驗(yàn)證數(shù)字簽字的真實(shí)性; 如果軟件應(yīng)用程序提供的數(shù)字簽字是真實(shí)的,允許訪問至少一個API ; 軟件應(yīng)用程序的數(shù)字簽字和簽字標(biāo)識由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生; 其中,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字; 通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公用簽字密鑰應(yīng)
用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、驗(yàn)證產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號是否相同
來驗(yàn)證數(shù)字簽字。 優(yōu)選地,如果軟件應(yīng)用程序提供的數(shù)字簽字被驗(yàn)證,則允許訪問API的程序庫。
優(yōu)選地,API至少接入執(zhí)行加密算法的加密模塊、數(shù)據(jù)存儲器、專用數(shù)據(jù)模型和用 戶接口之一。 優(yōu)選地,至少一個API被分類為敏感的,敏感的API還包括描述字符串,其中,當(dāng)軟件應(yīng)用程序試圖訪問敏感的API時,向用戶顯示描述字符串。 優(yōu)選地,API提供訪問至少一個或多個移動設(shè)備的核心功能、操作系統(tǒng)和移動設(shè)備 上的硬件。 優(yōu)選地,要求軟件應(yīng)用程序提供全局?jǐn)?shù)字簽字的驗(yàn)證,以訪問任何API。
圖1是根據(jù)本發(fā)明實(shí)施例的代碼簽字協(xié)議圖; 圖2是圖1的代碼簽字協(xié)議的流程圖; 圖3是在移動設(shè)備上的代碼簽字系統(tǒng)方框圖; 圖3A是在一組移動設(shè)備上的代碼簽字系統(tǒng)方框圖; 圖4是圖3和圖3A代碼簽字系統(tǒng)的工作流程圖; 圖5是管理圖3A的代碼簽字真實(shí)性的流程圖; 圖6是移動通信設(shè)備的方框圖,其中可實(shí)現(xiàn)代碼簽字系統(tǒng)和方法。
具體實(shí)施例方式
圖1是本發(fā)明一個實(shí)施例的代碼簽字協(xié)議圖。應(yīng)用程序開發(fā)商12產(chǎn)生軟件應(yīng)用程 序14(應(yīng)用程序Y),用于要訪問移動設(shè)備上一個或多個敏感的API的移動設(shè)備。軟件應(yīng)用 程序Y14可以是Jara應(yīng)用程序,它工作于安裝在移動設(shè)備中的Java虛擬機(jī)。API能使軟件 應(yīng)用程序Y與應(yīng)用平臺界面連接,該應(yīng)用平臺可包括如設(shè)備硬件、操作系統(tǒng)、核心軟件和數(shù) 據(jù)模塊這樣的資源。為了調(diào)用或與這些設(shè)備資源交互作用,軟件應(yīng)用程序Y必須訪問一個 或多個API,因此API可有效地"橋接"軟件應(yīng)用程序和有關(guān)的設(shè)備資源。在本說明和附著 的權(quán)利要求中,涉及API訪問應(yīng)理解包括以這樣方法訪問API,即允許軟件應(yīng)用程序Y與一 個或多個相應(yīng)設(shè)備資源交互作用,因此,在提供訪問任何API的同時,允許軟件應(yīng)用程序Y 與有關(guān)的設(shè)備資源交互作用,而否定訪問API,則防止軟件應(yīng)用程序與有關(guān)資源交互作用。 例如,數(shù)據(jù)庫API可與設(shè)備文件或數(shù)據(jù)儲存系統(tǒng)通信,訪問數(shù)據(jù)庫API將提供軟件應(yīng)用程序 Y與文件或數(shù)據(jù)存儲系統(tǒng)之間交互作用。用戶界面(UI)API可與控制器和/或控制軟件通 信,用于像屏幕、密鑰盤、和任何其它向用戶提供輸出或從用戶接收輸入的設(shè)備部件。在移 動設(shè)備中,無線電API也可作用界面提供給無線通信資源,例如發(fā)射機(jī)和接收機(jī)。同樣,加 密的API可提供與保密模塊交互作用,后者在設(shè)備上實(shí)現(xiàn)保密運(yùn)算。這些僅僅是可在設(shè)備 上提供API的例子。設(shè)備可包括任何這些例子的API,或不同的API代替或附加到上面所述 的例子中。 可取的是,任何API可分類成由移動設(shè)備制造商、或由API作者,無線網(wǎng)絡(luò)工作者, 設(shè)備擁有或操作者敏感的,或其它實(shí)體理解的,后者可由在設(shè)備軟件應(yīng)用程序中的病毒或 病毒碼影響。例如,移動設(shè)備制造商可分成對加密程序,無線通信功能或?qū)S玫臄?shù)據(jù)模型 (如地址薄或日歷本)互作用敏感。為防備無授權(quán)情況下對這些敏感的API訪問,要求應(yīng)用 程序開發(fā)商12從移動設(shè)備制造商獲得一個或多個數(shù)字簽字,或從其它按敏感分類任何API 的實(shí)體中獲得一個或多個數(shù)字簽字,或從影響到制造商利益的代碼簽字授權(quán)機(jī)構(gòu)或其它有 意保護(hù)訪問敏感的設(shè)備API的實(shí)體獲得數(shù)字簽字,并把簽字添加到軟件應(yīng)用程序Y14。
在一個實(shí)例中,對每個要訪問的敏感的API或包括API的程序庫獲得數(shù)字簽字。在某些情況下,需要多個簽字,這就允許服務(wù)提供商,公司或網(wǎng)絡(luò)工作者限制某些或全部軟件 應(yīng)用程序在特定的一組移動設(shè)備上加載或更新。在這一多簽字方案中,所有API被限制和 鎖定,直到對軟件應(yīng)用程序的"全局"簽字得到驗(yàn)證。例如,公司可能希望防止它的顧員在 沒有首先獲得公司信息技術(shù)(IT)或計(jì)算機(jī)服務(wù)部準(zhǔn)許的情況下,在它們的設(shè)備上運(yùn)行任 何軟件應(yīng)用程序,于是所有這些公司的移動設(shè)備可構(gòu)成在軟件應(yīng)用程序能被執(zhí)行前,至少 需要全局簽字,即使要訪問敏感的API和程序庫,根據(jù)相應(yīng)數(shù)字簽字的驗(yàn)證,作出進(jìn)一步限 制。 二進(jìn)制可執(zhí)行的軟件應(yīng)用程序Y的表達(dá)可與具體的移動設(shè)備類型或移動設(shè)備型 號無關(guān)。軟件應(yīng)用程序Y14可以是一次寫入任何地方可運(yùn)行的二進(jìn)制格式,與Java軟件應(yīng) 用程序的情況一樣。但是,可能要對每種移動設(shè)備類型或型號有數(shù)字簽字,或代以對每種移 動設(shè)備平臺或制造商有數(shù)字簽字。因此,如果軟件應(yīng)用程序把幾種移動設(shè)備作為對象的話, 軟件應(yīng)用程序Y14可送請幾個代碼簽字授權(quán)機(jī)構(gòu)。 軟件應(yīng)用程序Y14從應(yīng)用程序開發(fā)商12送到代碼簽字授權(quán)機(jī)構(gòu)16。在圖1所示 的實(shí)施例中,代碼簽字授權(quán)機(jī)構(gòu)16檢查軟件應(yīng)用程序Y14,如在下面更詳細(xì)描述那樣,設(shè)想 代碼簽字授權(quán)機(jī)構(gòu)16也可以或代替考慮應(yīng)用軟件開發(fā)商12的身份,以確定是否應(yīng)對軟件 應(yīng)用程序簽字。代碼簽字授權(quán)機(jī)構(gòu)16優(yōu)先地是一個或多個來自移動設(shè)備制造商,任何敏感 的API的作者的代表,或其它具有操作敏感的API知識的人(該API是軟件應(yīng)用程序需訪 問的對象)。 如果代碼簽字授權(quán)機(jī)構(gòu)16確定軟件應(yīng)用程序可訪問敏感的API并因而要簽字, 那么對軟件應(yīng)用程序的簽字(未畫出)由代碼簽字授權(quán)機(jī)構(gòu)16產(chǎn)生并附加軟件應(yīng)用程序 Y14。然后,經(jīng)簽字的軟件應(yīng)用程序Y22,包括軟件應(yīng)用程序Y14和數(shù)字簽字,返回應(yīng)用程序 開發(fā)商12,數(shù)字簽字優(yōu)先地是一標(biāo)簽,它是用只有代碼簽字授權(quán)機(jī)構(gòu)16保持的專用簽字密 鑰18產(chǎn)生。例如,根據(jù)一種簽字方案,用hash算法(如保密雜亂信號(hash)算法SHAI) 可產(chǎn)生軟件應(yīng)用程序14的雜亂信號(hash),然后與專用的簽字密鑰18 —起用,以建立數(shù)字 簽字。在某些簽字方案中,專用簽字密鑰用于加密要簽字的信息的雜亂信號(hash),例如軟 件應(yīng)用程序Y14,而在其它方案中,專用密鑰可以其它方式用于從要簽字的信息或該信息的 變換版本產(chǎn)生簽字。 然后,把經(jīng)簽字的軟件應(yīng)用程序Y12發(fā)送給移動設(shè)備28或由移動設(shè)備28在無線 網(wǎng)絡(luò)24上下載,但應(yīng)當(dāng)理解,本發(fā)明的代碼簽字協(xié)議不限于在無線網(wǎng)上下載的軟件應(yīng)用程 序,例如,在另一實(shí)施例中,經(jīng)簽字的軟件應(yīng)用程序Y22可通過計(jì)算機(jī)網(wǎng)絡(luò)下載到個人計(jì)算 機(jī),并通過串聯(lián)連接加載到移動設(shè)備,或可以任何其它形式從應(yīng)用程序開發(fā)商12獲得并加 載到移動設(shè)備上。 一旦經(jīng)簽字的軟件應(yīng)用程序Y22裝到移動設(shè)備28上,每一數(shù)字簽字,優(yōu) 先用公司簽字密鑰20,在軟件應(yīng)用程序Y14準(zhǔn)許訪問敏感的API程序庫之前,進(jìn)行驗(yàn)證。雖 然經(jīng)簽字的軟件應(yīng)用程序Y22裝在設(shè)備上,但應(yīng)理解,即使在設(shè)備上可執(zhí)行的軟件應(yīng)用程 序是軟件應(yīng)用程序Y14。如前面所述,經(jīng)簽字的軟件應(yīng)用程序Y22包括軟件應(yīng)用程序Y14和 一個或多個附加的數(shù)字簽字(未示出)。當(dāng)簽字被驗(yàn)證時,軟件應(yīng)用程序Y14可在該設(shè)備上 執(zhí)行并訪問已驗(yàn)證相應(yīng)簽字的任何API 。 公用簽字密鑰20相應(yīng)于由代碼簽字授權(quán)機(jī)構(gòu)16保持的專用簽字密鑰18,并且優(yōu) 先與敏感的API—起安裝在移動設(shè)備上。但是,公用密鑰10可用設(shè)備28或可能的個人計(jì)算機(jī)系統(tǒng)替換從公用密鑰庫獲得(未示出),并按需要安裝在設(shè)備28上。根據(jù)簽字方案的一 個實(shí)施例,移動設(shè)備28計(jì)算經(jīng)簽字的軟件應(yīng)用程序Y22中的軟件應(yīng)用程序Y14的雜亂信號 (hash),其中使用與代碼簽字授權(quán)機(jī)構(gòu)16相同的散列算法,并用數(shù)字簽字和公用簽字密鑰 20來恢復(fù)由簽字授權(quán)機(jī)構(gòu)16計(jì)算的雜亂信號(hash),然后把本地算得的雜亂信號(hash) 結(jié)果與從數(shù)字簽字恢復(fù)的雜亂信號(hash)進(jìn)行比較,如果雜亂信號(hash)相同,則簽字被 驗(yàn)證。于是,軟件應(yīng)用程序Y14可能在設(shè)備28上執(zhí)行,并訪問相應(yīng)簽字已被驗(yàn)證的敏感的 API。如上所述,本發(fā)明決不限于這具體說明簽字方案的例子,其它簽字方案,包括公用密鑰 簽字方案,也可結(jié)合這里描述的代碼簽字方法和系統(tǒng)使用。 圖2是參考圖1的上述代碼簽字協(xié)議的流程圖30。協(xié)議從步驟32開始,在步驟 34,軟件開發(fā)商為需要訪問敏感的API或陣列敏感的API的程序庫(API程序庫A)的移動 設(shè)備寫軟件應(yīng)用程序Y。如上所述,移動設(shè)備上的一些或全部API可合成敏感性一類,這樣, 任何軟件應(yīng)用程序?qū)λ脑L問都需要數(shù)字簽字驗(yàn)證,例如軟件應(yīng)用程序Y。在步驟36中,應(yīng) 用程序Y由軟件開發(fā)商優(yōu)先使用設(shè)備模擬器來測試,該模擬器中,數(shù)字簽字驗(yàn)證功能已不 適用。這樣,軟件開發(fā)商可在從代碼簽字授權(quán)機(jī)構(gòu)獲得數(shù)字簽字之前調(diào)試軟件應(yīng)用程序Y。 一旦軟件應(yīng)用程序Y寫好并調(diào)試完畢,則可在步驟38傳送給代碼簽字授權(quán)機(jī)構(gòu)。
在步驟40和42,代碼簽字授權(quán)機(jī)構(gòu)檢查軟件應(yīng)用程序Y,以確定是否應(yīng)允許訪問 敏感的API,并作出接受或拒絕該軟件應(yīng)用程序的決定。代碼簽字授權(quán)機(jī)構(gòu)可應(yīng)用一組準(zhǔn)則 來確定是否準(zhǔn)許軟件應(yīng)用程序訪問敏感的API,包括,例如軟件應(yīng)用程序的大小,由API訪 問的設(shè)備資源,軟件應(yīng)用程序的實(shí)用性,與其它軟件應(yīng)用程序的相互作用,包含病毒或其它 破壞性的代碼,和開發(fā)商是否有合同義務(wù)或與移動設(shè)備制造商有其它業(yè)務(wù)安排。更多管理 代碼簽字授權(quán)機(jī)構(gòu)和開發(fā)商的細(xì)節(jié),參考圖5描述如下。 如果代碼簽字授權(quán)機(jī)構(gòu)接受軟件應(yīng)用程序Y,那么在步驟46,數(shù)字簽字,最好是簽 字標(biāo)識,附加到軟件應(yīng)用程序Y中。如上所述,數(shù)字簽字可用軟件應(yīng)用程序Y的雜亂信號 (hash)和專用簽字密鑰18來產(chǎn)生。簽字標(biāo)識參考圖3和4描述如下。 一旦數(shù)字簽字和簽 字標(biāo)識加到軟件應(yīng)用程序Y,得到簽了字的軟件應(yīng)用程序,則經(jīng)簽字的軟件應(yīng)用程序在步驟 48返回軟件開發(fā)商。然后,軟件開發(fā)商可申請把簽字的軟件應(yīng)用程序Y裝到移動設(shè)備(步 驟50)上的許可證。如果代碼簽字授權(quán)機(jī)構(gòu)拒絕軟件應(yīng)用程序Y,那么把拒絕說明發(fā)送給軟 件開發(fā)商(步驟44),軟件應(yīng)用程序Y將不能訪問與該簽字有關(guān)的任何API。
在另一個實(shí)施例中,軟件開發(fā)商可提供軟件應(yīng)用程序Y的雜亂信號(hash)給代碼 簽字授權(quán)機(jī)構(gòu),或以某種簡化的格式提供軟件應(yīng)用程序Y。如果軟件應(yīng)用程序是Java應(yīng)用 程序,那么設(shè)備有關(guān)的二進(jìn)制*. class文件可用于雜亂信號(hash)工作中,不過,當(dāng)軟件應(yīng) 用程序想要在特別設(shè)備或設(shè)備類型上工作時,由本申請的代理人所用的設(shè)備有關(guān)的文件, 例如*. coa可代替用于雜亂信號(hash)或其它數(shù)字簽字工作中。借助于只提供軟件應(yīng)用程 序Y的雜亂信號(hash)或簡化版本,軟件開發(fā)商可把沒有顯示專有代碼簽字的軟件應(yīng)用程 序給代碼簽字授權(quán)機(jī)構(gòu)。軟件應(yīng)用程序Y的雜亂信號(hash)與專門的簽字密鑰18—起, 可用來由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生數(shù)字簽字。如果其它簡化的軟件應(yīng)用程序Y的版本發(fā)送給 代碼簽字授權(quán)機(jī)構(gòu),那么該簡化的版本同樣可用來產(chǎn)生數(shù)字簽字,只要簡化的方案或算法, 像雜亂信號(hash)算法一樣,對不同的輸入產(chǎn)生不同的輸出。這就保證了每個軟件應(yīng)用程 序可有不同的簡化版本和因此不同的簽字,該簽字只能在附加到產(chǎn)生簡化版本的具體相應(yīng)
16的軟件應(yīng)用程序時才能驗(yàn)證。因?yàn)檫@一實(shí)施例不能使代碼簽字授權(quán)機(jī)構(gòu)對病毒或其它破壞 性代碼來充分評審軟件應(yīng)用程序,因此,也可要求軟件開發(fā)商和代碼簽字授權(quán)機(jī)構(gòu)之間進(jìn) 行登記處理。例如,代碼簽字授權(quán)機(jī)構(gòu)可預(yù)先同意可信任的軟件開發(fā)商訪問一組有限的敏 感的API。 在另一個實(shí)施例中,軟件應(yīng)用程序Y可提交給多于一個簽字機(jī)構(gòu),每個簽字機(jī)構(gòu) 可負(fù)責(zé)對特定敏感的API或特定型號的移動設(shè)備上的API或支持由軟件應(yīng)用程序要求的敏 感的API的移動設(shè)備組的軟件應(yīng)用程序的簽字。制造商,移動通信網(wǎng)絡(luò)操作員,服務(wù)商,或 公司用戶可對使用敏感的API有簽字權(quán),用于他們特定的移動設(shè)備型號,或工作于特定網(wǎng) 絡(luò)上的移動設(shè)備,預(yù)訂一個或多個具體業(yè)務(wù),或分配到公司顧員。經(jīng)簽字的軟件應(yīng)用程序可 包括軟件應(yīng)用程序和至少一個來自每個簽字機(jī)構(gòu)的附加數(shù)字簽字。盡管這些簽字機(jī)構(gòu)在本 例中能對同樣軟件應(yīng)用程序產(chǎn)生簽字,但不同的簽字和簽字驗(yàn)證方案可與不同的簽字機(jī)構(gòu) 有關(guān)。 圖3是移動設(shè)備62上代碼簽字系統(tǒng)60的方框圖。該系統(tǒng)60包括虛擬機(jī)64, 一組 軟件應(yīng)用程序66-70, 一組API程序庫72-78,和應(yīng)用平臺80。應(yīng)用平臺80最好包括所有移 動設(shè)備62上的資源,它們可由軟件應(yīng)用程序訪問。例如,應(yīng)用平臺可包括設(shè)備硬件82,移動 設(shè)備操作系統(tǒng)84,或核心軟件和數(shù)據(jù)模型86。每個API程序庫72-78最好包括一組API ,它 與應(yīng)用平臺中的有效資源接口 ,例如, 一個API程序庫可包括所有與日歷程序和日歷項(xiàng)數(shù) 據(jù)模型接口的API 。另一個API程序庫可包括所有與移動設(shè)備62的傳輸線路和功能接口 的API。再另一個API程序庫可包括所有能與移動設(shè)備操作系統(tǒng)84執(zhí)行的低級業(yè)務(wù)接口 的API 。此外, 一組API程序庫72-78既可包括陣列敏感的API 74和78的程序庫,例如與 保密功能的接口 ,也可包括可被訪問而沒有陣列敏感的API的程序庫72和76。同樣, 一組 軟件應(yīng)用程序66-70既可包括簽字的軟件應(yīng)用程序66和70,它們要求訪問一個或多個敏感 的API,也可包括未簽字的軟件應(yīng)用程序,如68。虛擬機(jī)64優(yōu)先地是面向運(yùn)行時環(huán)境的目 標(biāo),如Sun Micro系統(tǒng)的J2METM(JaVa2平臺,Micro出版),它管理移動設(shè)備62上工作的所 有軟件應(yīng)用程序66-70,并把軟件應(yīng)用程序66-70鏈接到各API程序庫72-78。
軟件應(yīng)用程序Y70是經(jīng)簽字的軟件應(yīng)用程序的例子,每個經(jīng)簽字的軟件應(yīng)用程序 優(yōu)先包括實(shí)際的軟件應(yīng)用程序,如包括能在應(yīng)用平臺80上執(zhí)行的軟件代碼的軟件應(yīng)用程 序Y, 一個或多個簽字標(biāo)識94和一個或多個相應(yīng)的數(shù)字簽字96。在簽字的軟件應(yīng)用程序66 或70中,每一數(shù)字簽字96和相應(yīng)的簽字標(biāo)識94相應(yīng)于敏感的API程序庫74或78,它是軟 件應(yīng)用程序X或軟件應(yīng)用程序Y要求訪問的API 。敏感的API程序庫74或78可包括一個 或多個敏感的API。在一個替換的例子中,簽字的軟件應(yīng)用程序可包括數(shù)字簽字96,用于在 API程序庫74或78中的每個敏感的API。簽字標(biāo)識94可以是唯一的整數(shù),或某些把數(shù)字 簽字96與特定API程序庫74或78、API、應(yīng)用平臺80或移動設(shè)備62的型號相連系的其它 裝置。 API程序庫A78是陣列敏感的API的API程序庫的例子。每個包括敏感的API的 API程序庫74和78應(yīng)優(yōu)先包括描述字符串88,公用簽字密鑰20,和簽字標(biāo)識符92。簽字 標(biāo)識符92優(yōu)先相應(yīng)于簽字的軟件應(yīng)用程序66或70中的簽字標(biāo)識,并能使虛擬機(jī)讓數(shù)字簽 字96與API程序庫74或78快速匹配。公用密鑰20相應(yīng)于由代碼簽字授權(quán)機(jī)構(gòu)保持的專 用簽字密鑰18,并用于驗(yàn)證數(shù)字簽字96的真實(shí)性。描述字符串88可以是文本消息,當(dāng)加載簽字的軟件應(yīng)用程序時,它顯示在移動設(shè)備上,或換句話說,當(dāng)軟件應(yīng)用程序X或Y要想訪 問敏感的API時,它顯示在移動設(shè)備上。 操作上,當(dāng)簽字的軟件應(yīng)用程序68-70 (分別包括要訪問敏感的API程序庫74_78 的軟件應(yīng)用程序X, Z,或Y)裝到移動設(shè)備上時,虛擬機(jī)64搜索附加的、與API程序庫74或 78有關(guān)的數(shù)字簽字96的符號。優(yōu)先地,由虛擬機(jī)64借助于把API程序庫74或78中的簽 字標(biāo)識符92與簽字的軟件應(yīng)用程序中的簽字標(biāo)識94相匹配而測出合適的數(shù)字簽字96。如 果簽字的軟件應(yīng)用程序包括合適的數(shù)字簽字96,那么,虛擬機(jī)64用公用密鑰20驗(yàn)證其真 實(shí)性,然后, 一旦合適的數(shù)字簽字96被測出并驗(yàn)證,在執(zhí)行軟件應(yīng)用程序X或Y并訪問敏感 的API之前,則描述字符串88顯示在移動設(shè)備上。例如,描述字符串88可顯示這樣的消息 "應(yīng)用程序Y要想訪問API程序庫A",并借助向移動設(shè)備用戶提供批準(zhǔn)或否定訪問敏感的 API的最后控制。 圖3A是在一組移動設(shè)備62E,62F和62G上的代碼簽字系統(tǒng)61的方框圖。系統(tǒng)61 包括一組移動設(shè)備,其中只有三個62E,62F和62G不于圖中。還示出了簽字的軟件應(yīng)用程 序70,它包括軟件應(yīng)用程序Y,兩個相應(yīng)于簽字標(biāo)識94E和94F的數(shù)字簽字96E和96F已加 到該軟件應(yīng)用程序上。在作為例子的系統(tǒng)61中,由數(shù)字簽字和標(biāo)識組成的每對94E/96E和 94F/96F,相應(yīng)于移動設(shè)備62的型號、API程序庫78或有關(guān)的平臺80。如果簽字標(biāo)識94E 和94F相應(yīng)于移動設(shè)備62的不同型號,那么,當(dāng)簽字的軟件應(yīng)用程序70,它包括要訪問敏感 的API程序庫78的、經(jīng)簽字的軟件應(yīng)用程序Y裝到移動設(shè)備62E上時,虛擬機(jī)64借助于把 標(biāo)識94E與簽字標(biāo)識符92相匹配來為與API移動庫78有關(guān)的數(shù)字簽字96E搜索簽字的軟 件應(yīng)用程序70。同樣,當(dāng)簽字的軟件應(yīng)用程序70,它包括要訪問敏感的API程序庫78的軟 件應(yīng)用程序Y,裝到移動設(shè)備62上時,在設(shè)備62F中的虛擬機(jī)64為與API程序庫78有關(guān)的 數(shù)字簽字96F搜索軟件應(yīng)用程序70。但是,在要訪問敏感的API程序庫78的、經(jīng)簽字的軟 件應(yīng)用程序70中的軟件應(yīng)用程序Y裝到應(yīng)用程序開發(fā)商未獲得數(shù)字簽字的移動設(shè)備的型 號上時,圖3中的設(shè)備62G,設(shè)備64G中的虛擬機(jī)64找不到附加于軟件應(yīng)用程序Y的數(shù)字簽 字,因此否定在設(shè)備62G上訪問API程序庫78。從前面描述應(yīng)可以理解,像軟件應(yīng)用程序 Y那樣的軟件應(yīng)用程序可以有多個規(guī)定的設(shè)備,規(guī)定的程序庫,或規(guī)定的API簽字或加于其 上的這些簽字的組合。同樣,對不同的設(shè)備構(gòu)成不同的簽字驗(yàn)證要求,例如,設(shè)備62E可要 求既有全局簽字,又有對任何敏感的API的附加簽字,為了使該軟件應(yīng)用程序得以執(zhí)行,軟 件應(yīng)用程序需訪問API 。而設(shè)備62F可要求只有全局簽字的驗(yàn)證,設(shè)備62G可要求只對其敏 感的API簽字的驗(yàn)證。很明顯,通信系統(tǒng)可包括裝置(未示出),在該裝置上,接收的作為 如70的簽字的部分軟件程序的軟件應(yīng)用程序Y可以執(zhí)行而沒有任何簽字驗(yàn)證。雖然簽字 的軟件應(yīng)用程序有一個或多個附加的簽字,但軟件應(yīng)用程序Y可能在某些設(shè)備上執(zhí)行而沒 有首要的任何簽字驗(yàn)證。對軟件應(yīng)用程序的簽字最好不與它在沒有實(shí)現(xiàn)簽字驗(yàn)證的設(shè)備上 的執(zhí)行相干涉。 圖4是流程圖100,表示圖3和圖4的代碼簽字系統(tǒng)的工作。在步驟102,軟件應(yīng) 用程序裝到移動設(shè)備上, 一旦軟件應(yīng)用程序安裝完畢,該設(shè)備最好用虛擬機(jī)來確定該軟件 應(yīng)用程序是否要訪問任何陣列敏感的API的API程序庫(步驟104)。如果否,那么軟件應(yīng) 用程序與所有它所要求的API程序庫連接并執(zhí)行(步驟118),如果軟件應(yīng)用程序要訪問敏 感的API,那么在步驟106-116中,虛擬機(jī)驗(yàn)證該軟件應(yīng)用程序包括與任何要訪問的敏感的API有關(guān)的有效數(shù)字簽字。 在步驟106,虛擬機(jī)從敏感的API程序庫查找公用簽字密鑰20和簽字標(biāo)識符92, 簽字標(biāo)識符92被虛擬機(jī)在步驟108中用來確定軟件應(yīng)用程序是否有附加的數(shù)字簽字與相 應(yīng)的簽字標(biāo)識94相應(yīng)。如果沒有,則軟件應(yīng)用程序沒有被代碼簽字授權(quán)機(jī)構(gòu)批準(zhǔn)訪問敏感 的API,并最好防止軟件應(yīng)用程序在步驟116中執(zhí)行。在另一個實(shí)例中,沒有合適數(shù)字簽字 96的軟件應(yīng)用程序可以移動設(shè)備上消除,或可以否定它訪問陣列敏感的API的API程序庫, 但可在沒有訪問API程序庫的可能范圍內(nèi)執(zhí)行。也可想到,當(dāng)簽字驗(yàn)證失效時,用戶可以有 輸入提醒,供用戶控制后續(xù)操作從設(shè)備中消除該軟件應(yīng)用程序。 如果相應(yīng)于敏感的API程序庫的數(shù)字簽字96加到軟件應(yīng)用程序并由虛擬機(jī)測出, 那么,虛擬機(jī)用公用密鑰20來驗(yàn)證該數(shù)字簽字96的真實(shí)性(步驟110)。這一步可用上面 描述的簽字驗(yàn)證方案或其它替換的簽字方案來執(zhí)行。如果數(shù)字簽字96不真實(shí),則軟件應(yīng)用 程序最好不被執(zhí)行、消除或如上所述限制訪問敏感的API (參考步驟116)。如果數(shù)字簽字是 真實(shí)的,則描述字符串88最好在步驟112中顯示,警告移動設(shè)備用戶,該軟件應(yīng)用程序要訪 問敏感的API,并提示用戶授權(quán)執(zhí)行或安裝該軟件應(yīng)用程序(步驟114)。當(dāng)軟件應(yīng)用程序 有多于一個簽字要驗(yàn)證時,在112步提示用戶之前,最好對每一簽字重復(fù)步驟104-110。如 果步驟114中的移動設(shè)備用戶認(rèn)可該軟件應(yīng)用程序,則它可被執(zhí)行并連到敏感的API程序 庫(步驟118)。 圖5是流程圖,表示圖3A的代碼簽字授權(quán)機(jī)構(gòu)的管理200。在步驟210,應(yīng)用程序 開發(fā)商已開發(fā)了新的軟件應(yīng)用程序,它要在一個或多個目標(biāo)設(shè)備型號或類型上執(zhí)行。目標(biāo) 設(shè)備可包括來自不同制造商的一組設(shè)備,來自同一制造商的一組設(shè)備模型或類型,或一般 具有特別簽字和驗(yàn)證要求的任一組設(shè)備。"目標(biāo)設(shè)備"一詞涉及有共同簽字要求的設(shè)備。例 如,對執(zhí)行所有軟件應(yīng)用程序要求全局簽字的一組設(shè)備可包括目標(biāo)設(shè)備。既要求全局簽字 又要求對敏感的API的進(jìn)一步簽字的設(shè)備可以是多于一個目標(biāo)設(shè)備組的部分。軟件應(yīng)用程 序可用至少一個已知的API以與設(shè)備無關(guān)的狀態(tài)寫成,可在至少一個有API程序庫的目標(biāo) 設(shè)備上獲得支持。最好是,被開發(fā)的軟件應(yīng)用程序要在幾個目標(biāo)設(shè)備上執(zhí)行,其中每個至少 有它自己的一個API程序庫。 在步驟220,對一個目標(biāo)設(shè)備的代碼簽字授權(quán)機(jī)構(gòu)從開發(fā)商接收目標(biāo)簽字請求,目 標(biāo)簽字請求包括軟件應(yīng)用程序或軟件應(yīng)用程序的雜亂信號(hash),開發(fā)商標(biāo)識符,以及至 少一個目標(biāo)設(shè)備標(biāo)識符,它識別請求簽字的目標(biāo)設(shè)備。在步驟230,簽字機(jī)構(gòu)查閱開發(fā)商數(shù) 據(jù)庫235或其它記錄,以確定是否信任開發(fā)商220。這一確定可根據(jù)前面討論的幾個準(zhǔn)則來 做,例如開發(fā)商是否有合同義務(wù)或已進(jìn)入設(shè)備制造商,網(wǎng)絡(luò)工作者,服務(wù)供應(yīng)商安排的某些 其它類型的業(yè)務(wù)。如果開發(fā)商是可信的,則該方法在步驟240開始。但是,如果開發(fā)商不可 信,則該軟件應(yīng)用程序被拒絕(250),并不被簽字機(jī)構(gòu)簽字。假定開發(fā)商是可信任的,則在步 驟240,簽字機(jī)構(gòu)借助于查詢專用密鑰存儲器,如目標(biāo)專用密鑰數(shù)據(jù)庫來確定它是否有相應(yīng) 于提交的目標(biāo)標(biāo)識符的目標(biāo)專用密鑰245,如果找到目標(biāo)專用密鑰,則在步驟260產(chǎn)生對該 軟件應(yīng)用程序的數(shù)字簽字,并且該數(shù)字簽字或經(jīng)簽字的軟件應(yīng)用程序(包括附加到該軟件 應(yīng)用程序的數(shù)字簽字)返回開發(fā)商(步驟280)。但是,如果目標(biāo)專用密鑰在步驟240沒有 找到,則該軟件應(yīng)用程序在步驟270被拒絕,并不對該軟件應(yīng)用程序產(chǎn)生數(shù)字簽字。
方便的是,如果目標(biāo)簽字機(jī)構(gòu)接受圖5方法得可兼容的實(shí)例,則為了方便管理代碼簽字授權(quán)機(jī)構(gòu)和開發(fā)商共同體代碼簽字過程,可建立目標(biāo)簽字機(jī)構(gòu)的網(wǎng)絡(luò),以便對多個 具有毀壞碼的低似然性的目標(biāo)提供經(jīng)簽字的軟件應(yīng)用程序。 當(dāng)軟件應(yīng)用程序在設(shè)備上執(zhí)行時,一經(jīng)發(fā)現(xiàn)或根據(jù)其表現(xiàn)懷疑軟件應(yīng)用程序中有 任何破壞性或其它有問題的碼,那么,相應(yīng)的應(yīng)用程序開發(fā)商與任何或全部簽字機(jī)構(gòu)的登 記或特權(quán)可被懷疑或取消,因?yàn)閿?shù)字簽字提供了檢查跟蹤,通過它可識別有問題的軟件應(yīng) 用程序的開發(fā)商。在這種事件中,設(shè)備者借助于配置周期性下載簽字取消表通知取消。如 果相應(yīng)的數(shù)字簽字已被取消的軟件應(yīng)用程序在設(shè)備上運(yùn)行,那么該設(shè)備可停止任何這種軟 件應(yīng)用程序的執(zhí)行,并合理地從其本地存儲器中消除。如果愿意,設(shè)備還可配置重新執(zhí)行簽 字驗(yàn)證,例如周期性地或當(dāng)新的取消表被下載時。 雖然由簽字機(jī)構(gòu)產(chǎn)生的數(shù)字簽字與應(yīng)用程序開發(fā)商的身份驗(yàn)證和確認(rèn)該應(yīng)用程 序開發(fā)商已確實(shí)注冊,那么數(shù)字簽字優(yōu)先從軟件應(yīng)用程序的雜亂信號(hash)或其它變換 的版本產(chǎn)生,并成為專門的應(yīng)用,這與已知的代碼簽字方案不同,其中允許任何來自可信的 應(yīng)用程序開發(fā)商或作者的軟件應(yīng)用程序訪問API。在這里描述的代碼簽字系統(tǒng)和方法中, API的訪問是逐個應(yīng)用的基礎(chǔ)上準(zhǔn)許的,因而能比較嚴(yán)格地控制或限制。
圖6是移動通信設(shè)備的方框圖,其中可實(shí)現(xiàn)代碼簽字系統(tǒng)和方法。移動通信設(shè)備 610最好是雙程通信設(shè)備,它至少具有聲音和數(shù)據(jù)通信能力。該設(shè)備優(yōu)先具有與互聯(lián)網(wǎng)上的 其它計(jì)算機(jī)系統(tǒng)通信的能力。根據(jù)由設(shè)備提供的功能,設(shè)備可稱為數(shù)據(jù)收發(fā)設(shè)備,雙程尋呼 機(jī),有數(shù)據(jù)收發(fā)功能的蜂窩電話,無線互聯(lián)網(wǎng)設(shè)備或數(shù)據(jù)通信設(shè)備(帶或不帶電話功能)。
在設(shè)備能用于雙程通信的地方,設(shè)備將采用通信分系統(tǒng)611,它包括接收機(jī)612, 發(fā)射機(jī)614,和有關(guān)的一個或多個嵌入的或內(nèi)部的部件,天線單元616和618,本地振蕩器 (L0) 613,和處理模塊,例如數(shù)字信號處理器(DSP) 620。通信領(lǐng)域內(nèi)的業(yè)務(wù)人士知道,通信系 統(tǒng)611的具體設(shè)計(jì)與設(shè)備要在其中工作的通信網(wǎng)絡(luò)有關(guān)。例如,北美市場用的設(shè)備610可 包括通信分系統(tǒng)611,它設(shè)計(jì)成在Mobitex 移動通信系統(tǒng)或DataTAC 移動通信系統(tǒng)內(nèi)工 作,而用于歐洲的設(shè)備610可采用通信分組無線業(yè)務(wù)(GPRS)通信分系統(tǒng)611。
網(wǎng)絡(luò)訪問要求也隨網(wǎng)絡(luò)919的類型而變化,例如,Mobitex和DataTAC網(wǎng)絡(luò)中,移動 設(shè)備610用與每個設(shè)備有關(guān)的唯一識別數(shù)字在網(wǎng)上注冊,但在GPRS網(wǎng)絡(luò)中,網(wǎng)絡(luò)訪問與設(shè) 備610的用戶有關(guān)。因此,GPRS設(shè)備為在GPRS網(wǎng)上工作要求用戶識別模塊(未示出)。通 常稱為SIM卡。沒有SIM卡,GPRS設(shè)備將不能起充分的作用。本地或無網(wǎng)絡(luò)通信功能(如 果有)可以運(yùn)作,但設(shè)備610不能在網(wǎng)絡(luò)619上實(shí)行任何功能,包括通信,除了像"911"緊 急呼叫那樣合法地所要求的工作。 當(dāng)要求的網(wǎng)絡(luò)注冊或激勵過程已完成時,設(shè)備610可在網(wǎng)絡(luò)619上發(fā)送和接收通 信信號。由天線616通過通信網(wǎng)絡(luò)619收到的信號輸入接收機(jī)612,它可實(shí)行普通接收機(jī)的 功能,例如信號放大,下變頻,濾波,通道選擇等等,以及在圖6系統(tǒng)所示的例中的模-數(shù)變 換。接收信號的模數(shù)變換允許比較復(fù)雜的通信功能,例如解調(diào)和解碼可在DSP620中執(zhí)行。 以同樣的狀態(tài)處理發(fā)射信號,包括用DSP620調(diào)制和編碼,并輸入發(fā)射機(jī)614作數(shù)-模變換, 上變頻,濾波,放大和通過天線618在通信網(wǎng)絡(luò)619上傳輸。 DSP620不僅處理通信信號,也為接收機(jī)和發(fā)射機(jī)提供控制,例如,作用于接收機(jī) 和發(fā)射機(jī)中的通信信號的增益可通過在DSP620中實(shí)現(xiàn)的自動增益控制算法進(jìn)行自適應(yīng)控 制。
20
設(shè)備610優(yōu)先包括微處理機(jī)638,它控制整個設(shè)備的工作。通信功能,至少包括數(shù) 據(jù)和聲音通信,通過通信分系統(tǒng)611實(shí)行。微處理器638也與另外的分系統(tǒng)或資源,如顯示 器622,閃存624,隨機(jī)訪問存儲器(RAM)626,輔助輸入/輸出(I/O)分系統(tǒng)628,串口 630, 密鑰盤632,揚(yáng)聲器634,麥克風(fēng)636,短距通信分系統(tǒng)640和任何其它的設(shè)備分系統(tǒng)(統(tǒng)稱 642)互作用。API,包括敏感的API,它要求在準(zhǔn)許訪問前驗(yàn)證一個或多個數(shù)字簽字,可安裝 在設(shè)備610上,提供軟件應(yīng)用程序上圖6中的任何資源的接口。 圖6中所示的某些分系統(tǒng)執(zhí)行與通信有關(guān)的功能,而其它分系統(tǒng)可提供"常駐的" 或在設(shè)備上的功能。要說明的是,某些分系統(tǒng),例如密鑰盤632和顯示器622,既可用于與通 信有關(guān)的功能,如輸入文本消息用于在通信網(wǎng)絡(luò)上傳輸,也可用于常駐設(shè)備的功能,如計(jì)算 器或任務(wù)表。 微處理器638所用的操作系統(tǒng)軟件和由軟件應(yīng)用程序訪問的合理的API,優(yōu)先存 入永久性存儲器,如閃存624,它可替代只讀存儲器(ROM)或類似的存儲單元(未示出)。業(yè) 內(nèi)人士理解,操作系統(tǒng),專門的設(shè)備軟件應(yīng)用程序,或其中的部分,可臨時裝到易失性存儲 器(如RAM626)中。接收和發(fā)射的通信信號也可存入RAM620。 微處理器638,除了它的操作系統(tǒng)功能,能優(yōu)先執(zhí)行在設(shè)備上的軟件應(yīng)用程序。預(yù) 定的一組應(yīng)用程序控制基本的設(shè)備操作,包括至少數(shù)據(jù)和聲音的通信應(yīng)用程序,通常在制 造期間就裝在設(shè)備610上??裳b在設(shè)備上的優(yōu)先應(yīng)用程序可以是個人信息管理(PM)應(yīng)用 程序,它具有組織和管理涉及設(shè)備用戶的數(shù)據(jù)項(xiàng)目的能力,例如,但不限于電子郵件,日歷 事件,語音郵件,約定和任務(wù)項(xiàng)。自然,在設(shè)備上一個或多個存儲器是有用的,以適合PIM數(shù) 據(jù)項(xiàng)目在設(shè)備上儲存。這種PIM的應(yīng)用優(yōu)先具有通過無線網(wǎng)發(fā)送和接收數(shù)據(jù)項(xiàng)的能力。在 一個優(yōu)選實(shí)施例中,PIM數(shù)據(jù)項(xiàng)通過無線網(wǎng)絡(luò)無縫連接地集成、合成和更新,以存儲的或與 主計(jì)算機(jī)系統(tǒng)有關(guān)的設(shè)備用戶相應(yīng)的數(shù)據(jù)項(xiàng)在移動設(shè)備上建立關(guān)于數(shù)據(jù)項(xiàng)的鏡像主計(jì)算 機(jī)。這對主計(jì)算機(jī)系統(tǒng)是移動設(shè)備用戶的辦公室計(jì)算機(jī)系統(tǒng)的情況特別有利。另外的應(yīng)用 軟件,包括上述簽字的軟件應(yīng)用程序,也可通過網(wǎng)絡(luò)619,輔助I/O分系統(tǒng)628,串口 630,短 距離通信分系統(tǒng)640或任何其它合適的分系統(tǒng)642裝到設(shè)備610上。設(shè)備的微處理器638 可驗(yàn)證任何數(shù)字簽字,包括"全局"設(shè)備簽字和規(guī)定的API簽字,這些簽字在軟件應(yīng)用程序 由微處理器638執(zhí)行和/或訪問任何有關(guān)的敏感的API前加到軟件應(yīng)用程序。安裝應(yīng)用程 序的這種可塑性增加了設(shè)備的功能,并提供增強(qiáng)的在設(shè)備功能、有關(guān)通信功能或兩者。例 如,保密通信應(yīng)用程序可使要用設(shè)備610通過保密API和保密模塊(其中實(shí)現(xiàn)設(shè)備上的保 密運(yùn)算)(未示出)執(zhí)行的電子商務(wù)功能和其它會計(jì)事務(wù)成為可能。 在數(shù)據(jù)通信模型中,收到的信號,如下載的文本消息或萬維網(wǎng)頁,由通信分系統(tǒng)處 理并輸入微處理器638,它進(jìn)一步處理收到的信號,輸出到顯示器622,或輸出到輔助的I/0 設(shè)備628。設(shè)備610的用戶也可用密鑰盤632構(gòu)成數(shù)據(jù)項(xiàng),如電子郵件短文密鑰盤632是 完全的字母數(shù)字密鑰或電話型的輔助密鑰盤,與顯示器622和合理的I/O設(shè)備628相結(jié)合。 這樣構(gòu)成的數(shù)據(jù)項(xiàng)可通過通信分系統(tǒng)611在通信網(wǎng)絡(luò)上傳輸。 對于聲音通信,設(shè)備610的整體工作基本上是相同,除了收到的信號優(yōu)先輸出給 揚(yáng)聲器,發(fā)射的信號由麥克風(fēng)636產(chǎn)生之外。可替代的聲音或音頻1/0分系統(tǒng),例如聲音消 息記錄分系統(tǒng),也可在設(shè)備610上實(shí)現(xiàn)。雖然聲音或音頻信號輸出主要是通過揚(yáng)聲器634 完成的,但顯示器622也可用來提供呼叫方身份,呼叫持續(xù)時間,或其它有關(guān)信息的語音呼
21叫。 圖6中的串口 630通常是在個人數(shù)字助理(PDA)型通信設(shè)備中實(shí)現(xiàn)的,它可能要 與用戶桌面計(jì)算機(jī)(未畫)同步,但是一種可選的部件。這種端口 630使用戶能通過外部 設(shè)備或軟件應(yīng)用程序設(shè)置預(yù)定選項(xiàng),并借助于不通過無線通信網(wǎng)絡(luò)而提供信息或軟件下載 到設(shè)備610來擴(kuò)展設(shè)備的能力。這種下載路徑可用于把保密密鑰直接加載到設(shè)備上,這種 可靠和可信的連接使保密設(shè)備通信成為可能。 短距通信分系統(tǒng)640是另一可選的部件,它可提供設(shè)備624和不同的系統(tǒng)或設(shè)備
間的通信,合并不需要是同類設(shè)備。例如,分系統(tǒng)640可包括紅外設(shè)備和有關(guān)的電路及元
件,或BluetoorhTM(藍(lán)牙)通信模式,以提供與有相同能力的系統(tǒng)和設(shè)備通信。 這里描述的實(shí)施例是相應(yīng)于權(quán)利要求中各部件的結(jié)構(gòu)、系統(tǒng)和方法。本說明可使
業(yè)內(nèi)人士能制造和使用相應(yīng)于權(quán)利要求中的可替代的部件。本發(fā)明預(yù)定的范圍包括其它結(jié)
構(gòu)、系統(tǒng)或方法,它們與權(quán)利要求書的文字語言沒有不同,并進(jìn)一步包括與權(quán)利要求書中的
文字語言有非實(shí)質(zhì)性判別的結(jié)構(gòu)、系統(tǒng)和方法。 例如,當(dāng)在圖5方法中,在步驟250拒絕軟件應(yīng)用程序時,簽字機(jī)構(gòu)可要求開發(fā)商 簽一合同或與設(shè)備制造商或簽字機(jī)構(gòu)影響其利益的其它實(shí)體建立業(yè)務(wù)關(guān)系。同樣,如果在 步驟270拒絕軟件應(yīng)用程序,對該軟件應(yīng)用程序簽字的簽字機(jī)構(gòu)可授權(quán)給不同的簽字機(jī) 構(gòu),這種授權(quán)簽字基本上可如圖5所示進(jìn)行,其中從信任的開發(fā)商那里收到最初請求的目 標(biāo)簽字機(jī)構(gòu)(步驟220),根據(jù)信任的開發(fā)商來自目標(biāo)簽字機(jī)構(gòu)的利益,要求不同的簽字機(jī) 構(gòu)對該軟件應(yīng)用程序簽字。 一旦代碼簽字授權(quán)機(jī)構(gòu)間建立起信任關(guān)系,目標(biāo)專用代碼簽字 密鑰可在代碼簽字授權(quán)機(jī)構(gòu)間共享,以改善步驟240方法的性能,或設(shè)備可配置成從任何 一個信任的簽字機(jī)構(gòu)簽字。 此外,雖然描述了軟件應(yīng)用程序的上下文,但本發(fā)明的代碼簽字系統(tǒng)和方法也可 用于其它設(shè)備有關(guān)的部件,包括,但不限于,指令和有關(guān)的指令變元系統(tǒng),和構(gòu)成與設(shè)備資 源接口的程序庫。這種指令和程序庫可由設(shè)備制造商,設(shè)備擁有者,網(wǎng)絡(luò)工作者,服務(wù)提供 商,軟件應(yīng)用程序開發(fā)商等發(fā)送給移動設(shè)備。希望根據(jù)本權(quán)利要求書中描述的代碼簽字系 統(tǒng)和方法,借助于在指令能在設(shè)備上執(zhí)行之前,要求驗(yàn)證一個或多個數(shù)字簽字,來控制可能 影響設(shè)備工作的任何指令的執(zhí)行,例如改變設(shè)備標(biāo)識碼或無線通信網(wǎng)絡(luò)地址的指令。
權(quán)利要求
一種代碼簽字系統(tǒng),用于與具有數(shù)字簽字和簽字標(biāo)識的軟件應(yīng)用程序一起工作,其中,數(shù)字簽字與簽字標(biāo)識相關(guān),包括應(yīng)用平臺;應(yīng)用編程接口API,具有關(guān)聯(lián)的簽字標(biāo)識符,設(shè)置API將軟件應(yīng)用程序和應(yīng)用平臺鏈接;虛擬機(jī);其中,如果簽字標(biāo)識符對應(yīng)簽字標(biāo)識,則為了控制軟件應(yīng)用程序訪問API,虛擬機(jī)驗(yàn)證數(shù)字簽字的真實(shí)性,其中,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字,所述虛擬機(jī)通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號來驗(yàn)證數(shù)字簽字的真實(shí)性。
2. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于如果數(shù)字簽字不真實(shí),則虛擬機(jī)拒絕軟件應(yīng)用程序訪問API。
3. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于如果數(shù)字簽字不真實(shí),則虛擬機(jī)刪除軟件應(yīng)用程序。
4. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于代碼簽字系統(tǒng)裝在移動設(shè)備上。
5. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于數(shù)字簽字由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生。
6. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于還包括多個API程序庫,每個API程序庫包括多個API,其中,虛擬機(jī)通過軟件應(yīng)用程序控制訪問多個API程序庫。
7. 根據(jù)權(quán)利要求6所述的代碼簽字系統(tǒng),其特征在于至少一個API程序庫被分類為敏感的;訪問敏感的API程序庫要求將數(shù)字簽字與簽字標(biāo)識關(guān)聯(lián),其中,簽字標(biāo)識對應(yīng)與敏感的API程序庫關(guān)聯(lián)的簽字標(biāo)識符;軟件應(yīng)用程序包括至少一個數(shù)字簽字和至少一個關(guān)聯(lián)的簽字標(biāo)識,用于訪問敏感的API程序庫;虛擬機(jī)通過驗(yàn)證包括在軟件應(yīng)用程序中的一個數(shù)字簽字來授權(quán)軟件應(yīng)用程序訪問敏感的API程序庫,所述軟件應(yīng)用程序具有對應(yīng)敏感的API程序庫的簽字標(biāo)識符的簽字標(biāo)識。
8. 根據(jù)權(quán)利要求4所述的代碼簽字系統(tǒng),其特征在于API程序庫還包括描述字符串,其中,當(dāng)軟件應(yīng)用程序試圖訪問API時,移動設(shè)備顯示描述字符串。
9. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于應(yīng)用平臺包括操作系統(tǒng)。
10. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于包括一個或多個移動設(shè)備的核心功能。
11. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于包括移動設(shè)備上的硬件。
12. 根據(jù)權(quán)利要求11所述的代碼簽字系統(tǒng),其特征在于硬件包括用戶身份模塊卡。
13. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于軟件應(yīng)用程序是用于移動設(shè)備的Java應(yīng)用程序。
14. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于API與應(yīng)用平臺上的加密流程接□。
15. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于API與應(yīng)用平臺上的專用數(shù)據(jù)模塊接口。
16. 根據(jù)權(quán)利要求1所述的代碼簽字系統(tǒng),其特征在于虛擬機(jī)是安裝在移動設(shè)備上的Java虛擬機(jī)。
17. —種控制在移動設(shè)備上訪問敏感的應(yīng)用程序編程接口的方法,包括步驟把軟件應(yīng)用程序裝載到移動設(shè)備上,所述軟件應(yīng)用程序要求訪問具有簽字標(biāo)識符的敏感的應(yīng)用程序編程接口 API ;確定軟件應(yīng)用程序是否包括數(shù)字簽字和簽字標(biāo)識;如果簽字標(biāo)識不與簽字標(biāo)識符對應(yīng),那么拒絕軟件應(yīng)用程序訪問敏感的API ;如果簽字標(biāo)識與簽字標(biāo)識符對應(yīng),那么驗(yàn)證數(shù)字簽字的真實(shí)性,其中,基于數(shù)字簽字的真實(shí)性的驗(yàn)證,由軟件應(yīng)用程序訪問敏感的API,其中,通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字,其中,驗(yàn)證數(shù)字簽字的真實(shí)性包括步驟在移動設(shè)備上存儲對應(yīng)專用簽字密鑰的公用簽字密鑰;產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號;將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號;比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號。
18. 根據(jù)權(quán)利要求17所述的方法,其特征在于還包括步驟如果簽字標(biāo)識不對應(yīng)簽字標(biāo)識符,則從移動設(shè)備刪除軟件應(yīng)用程序。
19. 根據(jù)權(quán)利要求17所述的方法,其特征在于數(shù)字簽字和簽字標(biāo)識由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生。
20. 根據(jù)權(quán)利要求17所述的方法,其特征在于還包括步驟如果數(shù)字簽字不真實(shí),則拒絕軟件應(yīng)用程序訪問敏感的API。
21. 根據(jù)權(quán)利要求17所述的方法,其特征在于還包括步驟如果數(shù)字簽字不真實(shí),則從移動設(shè)備上刪除軟件應(yīng)用程序。
22. 根據(jù)權(quán)利要求17所述的方法,其特征在于當(dāng)軟件應(yīng)用程序試圖訪問至少一個API時,向用戶顯示描述字符串。
23. 根據(jù)權(quán)利要求17所述的方法,其特征在于還包括步驟顯示描述字符串,所述描述字符串通知移動設(shè)備的用戶軟件應(yīng)用程序要求訪問敏感的API。
24. 根據(jù)權(quán)利要求17所述的方法,其特征在于還包括步驟從用戶接收指令,準(zhǔn)許或拒絕軟件應(yīng)用程序訪問敏感的API 。
25. —種移動設(shè)備,包括應(yīng)用平臺,具有應(yīng)用編程接口 API ;虛擬機(jī),用于認(rèn)證由各個軟件應(yīng)用程序提供的數(shù)字簽字和簽字標(biāo)識,以便訪問API ;在軟件應(yīng)用程序提供的數(shù)字簽字由代碼簽字協(xié)議認(rèn)證后,虛擬機(jī)也允許軟件應(yīng)用程序訪問至少一個API ;代碼簽字授權(quán)機(jī)構(gòu)向要求訪問至少一個API的軟件應(yīng)用程序提供數(shù)字簽字和簽字標(biāo)識,根據(jù)簽字標(biāo)識的簽字方案和使用軟件應(yīng)用程序的雜亂信號產(chǎn)生用于軟件應(yīng)用程序的數(shù)字簽字,其中,提供給軟件應(yīng)用程序的簽字標(biāo)識包括僅被授權(quán)的簽字標(biāo)識,以便允許訪問多個移動設(shè)備的第一子設(shè)備;其中,第一數(shù)字簽字和第一簽字標(biāo)識用于第一種類型的移動設(shè)備;第二數(shù)字簽字和第二簽字標(biāo)識用于第二種類型的移動設(shè)備;與應(yīng)用程序關(guān)聯(lián)的第一數(shù)字簽字和第一簽字標(biāo)識防止使用第二種類型移動設(shè)備上的API的應(yīng)用程序;與應(yīng)用程序關(guān)聯(lián)的第二數(shù)字簽字和第二簽字標(biāo)識防止使用第一種類型移動設(shè)備上的API的應(yīng)用程序,其中,虛擬機(jī)通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號來認(rèn)證第一數(shù)字簽字或第二數(shù)字簽字的真實(shí)性。
26. 根據(jù)權(quán)利要求25所述的移動設(shè)備,其特征在于虛擬機(jī)包括驗(yàn)證系統(tǒng)和控制系統(tǒng),其中,虛擬機(jī)是Java虛擬機(jī),軟件應(yīng)用程序是Java應(yīng)用程序。
27. 根據(jù)權(quán)利要求25所述的移動設(shè)備,其特征在于控制系統(tǒng)為至少一個API的每個程序庫要求一個數(shù)字簽字和一個簽字標(biāo)識。
28. 根據(jù)權(quán)利要求25所述的移動設(shè)備,其特征在于應(yīng)用平臺的API至少接入執(zhí)行加密算法的加密模塊、數(shù)據(jù)存儲器、專用數(shù)據(jù)模型和用戶接口之一。
29. 根據(jù)權(quán)利要求25所述的移動設(shè)備,其特征在于至少一個API還包括描述字符串,其中,當(dāng)軟件應(yīng)用程序試圖訪問至少一個API時,描述字符串被顯示給用戶。
30. 根據(jù)權(quán)利要求25所述的移動系統(tǒng),其特征在于第一種類型的移動設(shè)備和第二種類型的移動設(shè)備是不同類型的移動設(shè)備。
31. —種在移動設(shè)備上控制軟件開發(fā)商開發(fā)的軟件應(yīng)用程序訪問具有簽字標(biāo)識符的應(yīng)用程序編程接口 API的方法,包括步驟從軟件開發(fā)商接收軟件應(yīng)用程序;確定軟件應(yīng)用程序是否滿足至少一個標(biāo)準(zhǔn);如果軟件應(yīng)用程序滿足至少一個標(biāo)準(zhǔn),則把數(shù)字簽字和簽字標(biāo)識添加到軟件應(yīng)用程序;如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,則驗(yàn)證添加到軟件應(yīng)用程序的數(shù)字簽字的真實(shí)性;如果數(shù)字簽字是真實(shí)的,向軟件應(yīng)用程序提供到API的路徑;把數(shù)字簽字和簽字標(biāo)識添加到軟件應(yīng)用程序的步驟包括產(chǎn)生數(shù)字簽字,包括下列步驟計(jì)算軟件應(yīng)用程序的雜亂信號;把專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號,以產(chǎn)生數(shù)字簽字;在移動設(shè)備上提供公用簽字密鑰;在移動設(shè)備上計(jì)算軟件應(yīng)用程序的雜亂信號以獲得計(jì)算的雜亂信號;把公用簽字密鑰應(yīng)用到數(shù)字簽字,以獲得恢復(fù)的雜亂信號;通過比較計(jì)算的雜亂信號與恢復(fù)的雜亂信號來認(rèn)證數(shù)字簽字。
32. 根據(jù)權(quán)利要求31所述的方法,其特征在于確定軟件應(yīng)用程序是否滿足至少一個標(biāo)準(zhǔn)的步驟由代碼簽字授權(quán)機(jī)構(gòu)執(zhí)行。
33. 根據(jù)權(quán)利要求32所述的方法,其特征在于使用安全的雜亂信號算法計(jì)算軟件應(yīng)用程序的雜亂信號。
34. 根據(jù)權(quán)利要求31所述的方法,其特征在于進(jìn)一步包括,如果數(shù)字簽字不真實(shí),則拒絕該軟件應(yīng)用程序訪問API。
35. —種在移動設(shè)備上控制訪問具有簽字標(biāo)識符的敏感應(yīng)用編程接口 API的方法,包括步驟注冊一個或多個可信的軟件開發(fā)商,編制訪問敏感的API的軟件應(yīng)用程序;接收軟件應(yīng)用程序的雜亂信號;確定雜亂信號是否是注冊的軟件開發(fā)商所發(fā)送;產(chǎn)生數(shù)字簽字,其中,數(shù)字簽字和簽字標(biāo)識被添加到軟件應(yīng)用程序;如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,為了控制軟件應(yīng)用程序訪問敏感的API,移動設(shè)備驗(yàn)證數(shù)字簽字的真實(shí)性;產(chǎn)生數(shù)字簽字的步驟是把專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號執(zhí)行的,所述雜亂信號由注冊的軟件開發(fā)商所發(fā)送;其中,移動設(shè)備執(zhí)行下列附加的步驟驗(yàn)證數(shù)字簽字的真實(shí)性在移動設(shè)備上提供公用簽字密鑰;在移動設(shè)備上計(jì)算軟件應(yīng)用程序的雜亂信號,以獲得計(jì)算的雜亂信號;把公用簽字密鑰應(yīng)用到數(shù)字簽字,以獲得恢復(fù)的雜亂信號;通過比較計(jì)算的雜亂信號與恢復(fù)的雜亂信號,以確定數(shù)字簽字是否真實(shí);如果數(shù)字簽字不真實(shí),則拒絕軟件應(yīng)用程序訪問敏感的API。
36. 根據(jù)權(quán)利要求35所述的方法,其特征在于產(chǎn)生數(shù)字簽字的步驟由代碼簽字授權(quán)機(jī)構(gòu)執(zhí)行。
37. —種在移動設(shè)備上限制訪問應(yīng)用編程接口的方法,包括步驟把具有數(shù)字簽字和簽字標(biāo)識的軟件應(yīng)用程序裝載到要求訪問一個或多個具有至少一個簽字標(biāo)識符的API的移動設(shè)備上;如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,則認(rèn)證數(shù)字簽字;如果軟件應(yīng)用程序不包括真實(shí)的數(shù)字簽字,則拒絕軟件應(yīng)用程序訪問一個或多個API ;其中,如果簽字標(biāo)識與簽字標(biāo)識符對應(yīng),則認(rèn)證數(shù)字簽字的步驟包括驗(yàn)證與簽字標(biāo)識符對應(yīng)的簽字標(biāo)識;把公用簽字密鑰存儲到移動設(shè)備上,該公用簽字密鑰對應(yīng)與代碼簽字授權(quán)機(jī)構(gòu)關(guān)聯(lián)的專用簽字密鑰,代碼簽字授權(quán)機(jī)構(gòu)根據(jù)軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字;產(chǎn)生軟件應(yīng)用程序的雜亂信號,以獲得產(chǎn)生的雜亂信號;把公用簽字密鑰應(yīng)用到數(shù)字簽字,以獲得恢復(fù)的雜亂信號;將產(chǎn)生的雜亂信號與恢復(fù)的雜亂信號進(jìn)行比較。
38. 根據(jù)權(quán)利要求37所述的方法,其特征在于數(shù)字簽字和簽字標(biāo)識與移動設(shè)備的類型有關(guān)。
39. 根據(jù)權(quán)利要求37所述的方法,其特征在于還包括步驟如果軟件應(yīng)用程序不包括真實(shí)的數(shù)字簽字,則從移動設(shè)備上刪除該軟件應(yīng)用程序。
40. 根據(jù)權(quán)利要求37所述的方法,其特征在于軟件應(yīng)用程序包括多個數(shù)字簽字和簽字標(biāo)識;多個數(shù)字簽字和簽字標(biāo)識分別包括與各不同類型的移動設(shè)備有關(guān)的數(shù)字簽字和簽字標(biāo)識。
41. 根據(jù)權(quán)利要求40所述的方法,其特征在于每個數(shù)字簽字和有關(guān)的簽字標(biāo)識是由各相應(yīng)的代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生的。
42. 根據(jù)權(quán)利要求37所述的方法,其特征在于認(rèn)證數(shù)字簽字的步驟包括如果簽字標(biāo)識對應(yīng)至少一個簽字標(biāo)識符,則驗(yàn)證數(shù)字簽字的真實(shí)性。
43. 根據(jù)權(quán)利要求37所述的方法,其特征在于通過把與代碼簽字授權(quán)機(jī)構(gòu)有關(guān)的各個專用簽字密鑰應(yīng)用到軟件應(yīng)用程序的雜亂信號,由對應(yīng)的代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生每個數(shù)字簽字和簽字標(biāo)識。
44. 根據(jù)權(quán)利要求37所述的方法,其特征在于移動設(shè)備包括多個API ;至少一個API被分類為敏感的;訪問任一個API要求真實(shí)的全局簽字;訪問每個敏感的API要求真實(shí)的全局簽字和與簽字標(biāo)識關(guān)聯(lián)的真實(shí)的數(shù)字簽字;認(rèn)證數(shù)字簽字包括;確定軟件應(yīng)用程序要求訪問的一個或多個API是否敏感的API ;確定軟件應(yīng)用程序是否包括真實(shí)的全局簽字;確定軟件應(yīng)用程序是否包括真實(shí)的數(shù)字簽字和簽字標(biāo)識,其中,軟件應(yīng)用程序要求訪問的一個或多個API包括敏感的API和軟件應(yīng)用程序包括真實(shí)的全局簽字;拒絕軟件應(yīng)用程序訪問一個或多個API包括如果軟件應(yīng)用程序不包括真實(shí)的全局簽字,則拒絕軟件應(yīng)用程序訪問一個或多個API ;如果軟件應(yīng)用程序要求訪問的一個或多個API包括敏感的API、軟件應(yīng)用程序包括真實(shí)的全局簽字、軟件應(yīng)用程序不包括要求訪問敏感的API的真實(shí)的數(shù)字簽字和簽字標(biāo)識符,則拒絕軟件應(yīng)用程序訪問敏感的API 。
45. —種控制軟件應(yīng)用程序訪問具有簽字標(biāo)識符的應(yīng)用編程接口 API的方法,包括如果簽字標(biāo)識對應(yīng)于各個API的簽字標(biāo)識符,則認(rèn)證各個軟件應(yīng)用程序提供的數(shù)字簽字來訪問API,其中,用于軟件應(yīng)用程序的數(shù)字簽字由對應(yīng)簽字標(biāo)識符的簽字標(biāo)識產(chǎn)生,以便訪問至少一個API ;如果軟件應(yīng)用程序提供的數(shù)字簽字是真實(shí)的,允許訪問至少一個API ;軟件應(yīng)用程序的數(shù)字簽字和簽字標(biāo)識由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生;其中,通過將專用簽字密鑰應(yīng)用到與簽字標(biāo)識關(guān)聯(lián)的簽字方案下的軟件應(yīng)用程序的雜亂信號產(chǎn)生數(shù)字簽字;通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、驗(yàn)證產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號相同來認(rèn)證數(shù) 字簽字。
46. 根據(jù)權(quán)利要求45所述的方法,其特征在于如果軟件應(yīng)用程序提供的數(shù)字簽字被認(rèn) 證,則允許訪問API的程序庫。
47. 根據(jù)權(quán)利要求45所述的方法,其特征在于API至少接入執(zhí)行加密算法的加密模塊、 數(shù)據(jù)存儲器、專用數(shù)據(jù)模型和用戶接口之一。
48. 根據(jù)權(quán)利要求45所述的方法,其特征在于至少一個API還包括描述字符串,其中, 當(dāng)軟件應(yīng)用程序試圖訪問至少一個API時,向用戶顯示描述字符串。
49. 根據(jù)權(quán)利要求45所述的方法,其特征在于API提供訪問至少一個或多個移動設(shè)備 的核心功能、操作系統(tǒng)和移動設(shè)備上的硬件。
50. 根據(jù)權(quán)利要求45所述的方法,其特征在于要求軟件應(yīng)用程序提供全局?jǐn)?shù)字簽字的 驗(yàn)證,以訪問任何API。
51. —種在移動設(shè)備上控制訪問具有簽字標(biāo)識符的敏感的應(yīng)用程序編程接口 API的方 法,包括注冊一個或多個可信的軟件開發(fā)商,開發(fā)的軟件訪問敏感的API ; 接受軟件應(yīng)用程序的雜亂信號; 確定雜亂信號是否由注冊的軟件開發(fā)商發(fā)送;如果雜亂信號是由注冊的軟件開發(fā)商所發(fā)送,則使用軟件應(yīng)用程序的雜亂信號和對應(yīng) 簽字標(biāo)識符的簽字標(biāo)識產(chǎn)生數(shù)字簽字;其中,數(shù)字簽字和簽字標(biāo)識被添加到軟件應(yīng)用程序;如果簽字標(biāo)識對應(yīng)簽字標(biāo)識符,則移動設(shè)備驗(yàn)證數(shù)字簽字的真實(shí)性,以便控制軟件應(yīng) 用程序訪問敏感的API。
52. 根據(jù)權(quán)利要求51所述的方法,其特征在于由代碼簽字授權(quán)機(jī)構(gòu)產(chǎn)生數(shù)字簽字。
53. 根據(jù)權(quán)利要求51所述的方法,其特征在于通過將簽字密鑰應(yīng)用到軟件應(yīng)用程的雜 亂信號產(chǎn)生數(shù)字簽字。
54. 根據(jù)權(quán)利要求53所述的方法,其特征在于移動設(shè)備驗(yàn)證數(shù)字簽字的真實(shí)性包括 在移動設(shè)備上提供對應(yīng)的簽字密鑰;計(jì)算移動設(shè)備上的軟件應(yīng)用程的雜亂信號,獲得計(jì)算的雜亂信號; 將對應(yīng)的簽字密鑰應(yīng)用到數(shù)字簽字,獲得恢復(fù)的雜亂信號; 通過比較計(jì)算的雜亂信號和恢復(fù)的雜亂信號確定數(shù)字簽字是否真實(shí); 如果數(shù)字簽字不真實(shí),則拒絕軟件應(yīng)用程序訪問敏感的API。
55. 根據(jù)權(quán)利要求51所述的方法,其特征在于提供了驗(yàn)證數(shù)字簽字的真實(shí)性的虛擬機(jī)。
56. 根據(jù)權(quán)利要求55所述的方法,其特征在于如果數(shù)字簽字不真實(shí),則虛擬機(jī)拒絕軟 件應(yīng)用程序訪問API。
57. 根據(jù)權(quán)利要求55所述的方法,其特征在于如果數(shù)字簽字不真實(shí),則虛擬機(jī)刪除軟 件應(yīng)用程序。
58. 根據(jù)權(quán)利要求55所述的方法,其特征在于使用專用簽字密鑰產(chǎn)生數(shù)字簽字,虛擬 機(jī)使用公用簽字密鑰驗(yàn)證數(shù)字簽字的真實(shí)性。
59.根據(jù)權(quán)利要求58所述的方法,其特征在于 通過將專用簽字密鑰應(yīng)用到軟件應(yīng)用程的雜亂信號產(chǎn)生數(shù)字簽字; 虛擬機(jī)通過產(chǎn)生軟件應(yīng)用程序的雜亂信號來獲得產(chǎn)生的雜亂信號、并將公用簽字密鑰應(yīng)用到數(shù)字簽字中來獲得恢復(fù)的雜亂信號、比較產(chǎn)生的雜亂信號和恢復(fù)的雜亂信號來驗(yàn)證數(shù)字簽字的真實(shí)性。
全文摘要
提供了一種代碼簽字系統(tǒng)和方法。代碼簽字系統(tǒng)與有數(shù)字簽字的軟件應(yīng)用程序一起工作,并包括應(yīng)用平臺、應(yīng)用程序編程接口(API)和虛擬機(jī)。API用來把軟件應(yīng)用程序與應(yīng)用平臺相鏈接。虛擬機(jī)驗(yàn)證數(shù)字簽字的真實(shí)性,以控制軟件應(yīng)用程序訪問API。
文檔編號H04L29/06GK101714201SQ20091020931
公開日2010年5月26日 申請日期2001年9月20日 優(yōu)先權(quán)日2000年9月21日
發(fā)明者戴維·P·亞切, 赫伯特·A·利特爾, 邁克爾斯·S·布朗 申請人:捷訊研究有限公司