欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于提供代碼簽名服務(wù)的系統(tǒng)和方法

文檔序號(hào):6582349閱讀:271來源:國知局
專利名稱:用于提供代碼簽名服務(wù)的系統(tǒng)和方法
技術(shù)領(lǐng)域
這里描述的系統(tǒng)和方法的實(shí)施例大體上涉及針對(duì)軟件應(yīng)用程序 的安全協(xié)議領(lǐng)域,更具體地,涉及一種系統(tǒng)和方法,用于向希望使軟 件應(yīng)用程序被數(shù)字地簽名以便可以在計(jì)算設(shè)備上(例如移動(dòng)設(shè)備)執(zhí) 行該應(yīng)用程序的個(gè)人或?qū)嶓w提供代碼簽名服務(wù)。
背景技術(shù)
含有軟件代碼簽名方案的安全協(xié)議典型地被用于確保從因特網(wǎng) 或其他來源下載以用于在計(jì)算設(shè)備上執(zhí)行的軟件應(yīng)用程序的可靠性。 例如,計(jì)算設(shè)備可以是移動(dòng)設(shè)備。
可以在計(jì)算設(shè)備上實(shí)施代碼簽名系統(tǒng),以便控制軟件應(yīng)用程序訪 問計(jì)算設(shè)備上的某些資源。在一個(gè)示例系統(tǒng)中,在計(jì)算設(shè)備中提供了 應(yīng)用平臺(tái)、 一個(gè)或更多個(gè)應(yīng)用程序編程接口 (API)、以及虛擬機(jī)。配 置API以使軟件應(yīng)用程序與應(yīng)用平臺(tái)相鏈接,以及更具體地,允許軟 件應(yīng)用程序?qū)Y源做出功能調(diào)用,或者與計(jì)算設(shè)備上的軟件應(yīng)用程序 通??稍L問的資源進(jìn)行交互。
然而,可以由希望限制對(duì)API的訪問或?qū)εc這些API有關(guān)的特定資 源的訪問的實(shí)體,將一些API分類為"敏感的"。在示例系統(tǒng)中,在準(zhǔn)予 訪問敏感API之前,虛擬機(jī)適于驗(yàn)證附加到要求訪問敏感API的應(yīng)用程序上的數(shù)字簽名的真實(shí)性。因此,為了準(zhǔn)許應(yīng)用程序訪問敏感API,
適當(dāng)?shù)暮灻行?signing authority)必須首先數(shù)字地簽名應(yīng)用程序。

發(fā)明內(nèi)容
在一個(gè)主要方面,優(yōu)選地提出了一種用于提供代碼簽名服務(wù)的方
法,所述方法包括步驟創(chuàng)建至少一個(gè)公鑰以及至少一個(gè)對(duì)應(yīng)的私鑰; 配置每個(gè)公鑰以保護(hù)至少一個(gè)敏感API,以及存儲(chǔ)每個(gè)對(duì)應(yīng)的私鑰; 針對(duì)代碼簽名服務(wù)來注冊(cè)至少一個(gè)實(shí)體,其中認(rèn)證了每個(gè)實(shí)體的身份, 以及創(chuàng)建了每個(gè)已注冊(cè)實(shí)體的賬戶記錄;從請(qǐng)求者接收代碼簽名請(qǐng)求, 所述請(qǐng)求者是在注冊(cè)步驟中己注冊(cè)的實(shí)體,其中代碼簽名請(qǐng)求包括請(qǐng) 求者請(qǐng)求利用己創(chuàng)建的所述至少一個(gè)私鑰中的選定私鑰來簽名的對(duì) 象;數(shù)字地簽名對(duì)象,其中使用選定的私鑰產(chǎn)生數(shù)字簽名;以及向請(qǐng) 求者發(fā)送數(shù)字簽名。


為了更好地理解這里描述的系統(tǒng)和方法的實(shí)施例,以及為了更加 清楚地示出如何使他們產(chǎn)生效果,現(xiàn)在將參考附圖為例,其中 圖l是在一個(gè)示例實(shí)施方式中的移動(dòng)設(shè)備的方框圖; 圖2是圖1的移動(dòng)設(shè)備的通信子系統(tǒng)組件的方框圖; 圖3是無線網(wǎng)絡(luò)節(jié)點(diǎn)的方框圖4是示出了示例代碼簽名協(xié)議的示意圖,在該協(xié)議中,代碼簽
名中心向軟件應(yīng)用程序開發(fā)者提供代碼簽名服務(wù);
圖5是示出了在移動(dòng)設(shè)備中的示例代碼簽名系統(tǒng)的組件的示意
圖6是示出了處理在圖5中圖示的移動(dòng)設(shè)備上執(zhí)行的已簽名軟件 應(yīng)用程序的示例方法的步驟的流程圖7A是示出了在一個(gè)實(shí)施例中提供代碼簽名服務(wù)的方法的步驟 的流程圖7B是示出了在示例網(wǎng)絡(luò)配置中的用于提供代碼簽名服務(wù)的系 統(tǒng)的原理圖;圖8A是示出了在一個(gè)實(shí)施例中創(chuàng)建用于代碼簽名的密鑰對(duì)的方 法的步驟的流程圖8B和圖8C是由代碼簽名中心應(yīng)用程序提供的用戶界面中的示 例對(duì)話框;
圖9是示出了在一個(gè)實(shí)施例中用于針對(duì)代碼簽名服務(wù)來注冊(cè)實(shí)體
的方法的步驟的流程圖;以及
圖10是示出了賬戶記錄的詳情的示例表格。
具體實(shí)施例方式
創(chuàng)建要求訪問計(jì)算設(shè)備上敏感API的應(yīng)用程序的軟件應(yīng)用程序開 發(fā)者可能需要使他們的應(yīng)用程序由適當(dāng)簽名中心數(shù)字地簽名,使得應(yīng) 用程序在計(jì)算設(shè)備上正確地執(zhí)行。期望限制訪問某些敏感API (以及 相關(guān)資源)(例如實(shí)體自己寫出的專有API)的實(shí)體可能希望充當(dāng)關(guān)于 這些API的簽名中心,并且向要求訪問這些API的軟件應(yīng)用程序開發(fā)者
提供代碼簽名服務(wù)。例如,通過代碼簽名服務(wù)的提供,實(shí)體能夠控制 誰應(yīng)該或誰不應(yīng)該被準(zhǔn)許訪問其寫出和/或被分類為敏感的特定API、
跟蹤誰請(qǐng)求了此種訪問、以及如果需要對(duì)提供此類訪問收費(fèi)。
這里描述的實(shí)施例大體上涉及一種用于向軟件應(yīng)用程序開發(fā)者 或希望應(yīng)用程序被數(shù)字地簽名的其他個(gè)人或?qū)嶓w提供代碼簽名服務(wù)的 系統(tǒng)和方法。當(dāng)在計(jì)算設(shè)備上執(zhí)行應(yīng)用程序時(shí),也許要求簽名應(yīng)用程 序以使應(yīng)用程序能夠訪問計(jì)算設(shè)備的敏感API以及相關(guān)資源。
在一個(gè)方面,提出了一種用于提供代碼簽名服務(wù)的方法,該方法 包括步驟創(chuàng)建至少一個(gè)公鑰以及至少一個(gè)對(duì)應(yīng)的私鑰;配置每個(gè)公 鑰以保護(hù)至少一個(gè)敏感API,并且存儲(chǔ)每個(gè)對(duì)應(yīng)的私鑰;針對(duì)代碼簽 名服務(wù)來注冊(cè)至少一個(gè)實(shí)體,其中認(rèn)證了每個(gè)實(shí)體的身份,以及創(chuàng)建 了每個(gè)已注冊(cè)實(shí)體的賬戶記錄;從請(qǐng)求者接收代碼簽名請(qǐng)求,所述請(qǐng) 求者是在注冊(cè)步驟中的已注冊(cè)實(shí)體,其中代碼簽名請(qǐng)求包括請(qǐng)求者請(qǐng) 求利用已創(chuàng)建的所述至少一個(gè)私鑰中的選定私鑰進(jìn)行簽名的對(duì)象;數(shù) 字地簽名對(duì)象,其中使用選定的私鑰產(chǎn)生數(shù)字簽名;以及向請(qǐng)求者發(fā) 送數(shù)字簽名。200910202855. 1
說明書第4/31頁
例如,已簽名的應(yīng)用程序所執(zhí)行在的計(jì)算設(shè)備可以是移動(dòng)站。然 而,本領(lǐng)域普通技術(shù)人員應(yīng)該理解,這里描述的至少一些實(shí)施例可以 關(guān)于要在除移動(dòng)站之外的計(jì)算設(shè)備上執(zhí)行的應(yīng)用程序來實(shí)現(xiàn)。
移動(dòng)站是一種帶有先進(jìn)數(shù)據(jù)通信能力的雙向通信設(shè)備,具有與其 他計(jì)算機(jī)系統(tǒng)通信的能力,并且這里提到的一般指移動(dòng)設(shè)備。移動(dòng)設(shè) 備也可以包括用于語音通信的能力。取決于由移動(dòng)設(shè)備提供的功能, 可以稱其為數(shù)據(jù)消息設(shè)備、雙向?qū)ず魴C(jī)、帶有數(shù)據(jù)消息能力的蜂窩電 話、無線因特網(wǎng)裝置、或數(shù)據(jù)通信設(shè)備(帶有或不帶有電話能力)。移 動(dòng)設(shè)備通過收發(fā)站的網(wǎng)絡(luò)與其他設(shè)備通信。為有助于讀者理解移動(dòng)設(shè) 備的結(jié)構(gòu)以及其如何與其他設(shè)備通信,首先參考圖1至圖3。
參考圖l,在一個(gè)示例實(shí)施方式中的移動(dòng)設(shè)備的方框圖大致如IOO 所示。移動(dòng)設(shè)備100包括多個(gè)組件,其中控制組件是微處理器102。微 處理器102控制移動(dòng)設(shè)備100的所有操作。通過通信子系統(tǒng)104來執(zhí)行包 括數(shù)據(jù)和語音通信的通信功能。通信子系統(tǒng)104從無線通信網(wǎng)絡(luò)200接 收消息并向其發(fā)送消息。在移動(dòng)設(shè)備100的該示例實(shí)施方式中,根據(jù)全 球移動(dòng)通信系統(tǒng)(GSM)和通用分組無線業(yè)務(wù)(GPRS)標(biāo)準(zhǔn)來配置 通信子系統(tǒng)104。 GSM/GPRS無線網(wǎng)絡(luò)在世界范圍內(nèi)廣泛使用,并且可 以預(yù)料的是這些標(biāo)準(zhǔn)最終將由增強(qiáng)數(shù)據(jù)GSM環(huán)境(EDGE)和通用移 動(dòng)通信服務(wù)(UMTS)所取代。新的標(biāo)準(zhǔn)正在制定中,但是可以相信 的是他們具有與這里描述的網(wǎng)絡(luò)行為相類似的網(wǎng)絡(luò)行為,本領(lǐng)域的技 術(shù)人員也應(yīng)該理解,可以使用將來開發(fā)的其他合適的標(biāo)準(zhǔn)。使無線通 信子系統(tǒng)104與網(wǎng)絡(luò)200相連接的無線鏈路代表一個(gè)或更多個(gè)不同的射 頻(RF)信道,根據(jù)針對(duì)GSM/GPRS通信規(guī)定的已定義協(xié)議來運(yùn)行。 隨著更新的網(wǎng)絡(luò)協(xié)議,這些信道能夠支持電路交換語音通信和分組交 換數(shù)據(jù)通信這兩者。
盡管在移動(dòng)設(shè)備100的一個(gè)示例實(shí)施方式中,與移動(dòng)設(shè)備100相關(guān) 聯(lián)的無線網(wǎng)絡(luò)是GSM/GPRS無線網(wǎng)絡(luò),在不同的實(shí)施方式中也可以使 其他無線網(wǎng)絡(luò)與移動(dòng)設(shè)備100相關(guān)聯(lián)。例如,可使用的不同類型的無線 網(wǎng)絡(luò)包括數(shù)據(jù)核心無線網(wǎng)絡(luò)、語音核心無線網(wǎng)絡(luò)、以及通過同一物 理基站能夠支持語音和數(shù)據(jù)通信的雙模網(wǎng)絡(luò)。組合的雙模網(wǎng)絡(luò)包括但不限于碼分多址(CDMA)或CDMA2000網(wǎng)絡(luò)、GSM/GPRS網(wǎng)絡(luò)(如 上面提到的)、以及例如EDGE和UMTS的未來第三代(3G)網(wǎng)絡(luò)。數(shù) 據(jù)核心網(wǎng)絡(luò)的 一 些較早的示例包括Mobitex 無線電網(wǎng)絡(luò)以及 DataTACTM無線電網(wǎng)絡(luò)。較早的語音核心數(shù)據(jù)網(wǎng)絡(luò)的示例包括象GSM 以及時(shí)分多址(TDMA)系統(tǒng)的個(gè)人通信系統(tǒng)(PCS)網(wǎng)絡(luò)。
微處理器102還與附加子系統(tǒng)進(jìn)行交互,所述附加子系統(tǒng)例如隨 機(jī)存取存儲(chǔ)器(RAM) 106、閃速存儲(chǔ)器108、顯示器IIO、輔助輸入/ 輸出(I/O)子系統(tǒng)112、串行端口114、鍵盤116、揚(yáng)聲器118、麥克風(fēng) 120、短程通信子系統(tǒng)122、以及其他設(shè)備124。
移動(dòng)設(shè)備100的一些子系統(tǒng)執(zhí)行通信相關(guān)功能,而其他子系統(tǒng)可 以提供"常駐"或設(shè)備上(on-device)功能。作為示例,顯示器110和鍵 盤116可以被用于通信相關(guān)功能,例如鍵入用于通過網(wǎng)絡(luò)200發(fā)送的文
本消息,以及用于諸如計(jì)算器或任務(wù)列表的常駐設(shè)備功能。由微處理 器102使用的操作系統(tǒng)軟件典型地被存儲(chǔ)在例如閃速存儲(chǔ)器108的永久
存儲(chǔ)器中,可選地,存儲(chǔ)器可以是只讀存儲(chǔ)器(ROM)或類似存儲(chǔ)單 元(未示出)。本領(lǐng)域的技術(shù)人員應(yīng)該理解的是,可以將操作系統(tǒng)、特 定設(shè)備應(yīng)用程序或其一部分臨時(shí)地加載到諸如RAM 106的易失存儲(chǔ)器中。
在己經(jīng)完成所要求的網(wǎng)絡(luò)注冊(cè)或激活程序之后,移動(dòng)設(shè)備ioo可 以通過網(wǎng)絡(luò)200發(fā)送和接收通信信號(hào)。網(wǎng)絡(luò)訪問與移動(dòng)設(shè)備100的訂戶 或操作者有關(guān)。為了識(shí)別訂戶,移動(dòng)設(shè)備100要求將用戶身份模塊或 "SIM"卡126插入到SIM接口128以便與網(wǎng)絡(luò)通信。其中,SIM 126是用 于識(shí)別移動(dòng)設(shè)備100的訂戶以及使移動(dòng)設(shè)備100個(gè)人化的一種傳統(tǒng)類型 的"智能卡"。如果沒有SIM 126,移動(dòng)設(shè)備100不能完全操作以與網(wǎng)絡(luò) 200通信。通過將SIM 126插入到SIM接口128,訂戶能夠訪問所有訂閱 的服務(wù)。服務(wù)可以包括網(wǎng)頁瀏覽和諸如電子郵件、語音郵件、短消 息服務(wù)(SMS)、以及多媒體信息傳遞服務(wù)(MMS)的消息傳遞。更 高級(jí)的服務(wù)可以包括銷售點(diǎn)、現(xiàn)場服務(wù)和銷售人員自動(dòng)化。SIM 126 包括處理器和用于存儲(chǔ)信息的存儲(chǔ)器。 一旦將SIM126插入到SIM接口 128,它就與微處理器102相連。為了識(shí)別訂戶,SIM 126包含一些諸如國際移動(dòng)用戶身份(IMSI)的參數(shù)。使用SIM 126的優(yōu)點(diǎn)是用戶不 必受限于任何個(gè)別的物理移動(dòng)設(shè)備。SIM 126同樣地可以存儲(chǔ)移動(dòng)設(shè) 備的附加訂戶信息,包括日期簿(或日歷)信息以及近期通話信息。
移動(dòng)設(shè)備100是電池供電的設(shè)備,并且包括用于容納一個(gè)或更多 個(gè)可充電電池130的電池接口132。電池接口132連接到穩(wěn)壓器(未示 出),穩(wěn)壓器輔助電池130向移動(dòng)設(shè)備100提供V+的電能。盡管當(dāng)前的 技術(shù)使用電池,諸如微燃料電池的未來技術(shù)也可以向移動(dòng)設(shè)備100提供 電能。
除了其操作系統(tǒng)的功能之外,微處理器102能夠在移動(dòng)設(shè)備100上 執(zhí)行軟件應(yīng)用程序。通常在制造期間就將控制包括數(shù)據(jù)和語音通信應(yīng) 用程序的基本設(shè)備操作的一組應(yīng)用程序安裝到移動(dòng)設(shè)備100上??梢员?加載到移動(dòng)設(shè)備100上的其它應(yīng)用程序是個(gè)人信息管理器(PIM)。 PIM 具有組織和管理訂戶感興趣的數(shù)據(jù)項(xiàng)目的功能,所述數(shù)據(jù)項(xiàng)目例如但 是不限于電子郵件、日歷事件、語音郵件、約會(huì)、以及任務(wù)項(xiàng)目。 PIM應(yīng)用程序具有經(jīng)由無線網(wǎng)絡(luò)200發(fā)送和接收數(shù)據(jù)項(xiàng)目的能力。可以 經(jīng)由無線網(wǎng)絡(luò)200將PIM數(shù)據(jù)項(xiàng)目無縫地與主機(jī)計(jì)算機(jī)系統(tǒng)存儲(chǔ)的和/ 或與主機(jī)計(jì)算機(jī)系統(tǒng)有關(guān)的移動(dòng)設(shè)備訂戶的相應(yīng)的數(shù)據(jù)項(xiàng)目集成、同 步、以及更新。該功能在移動(dòng)設(shè)備上創(chuàng)建了關(guān)于這些項(xiàng)目的鏡像主機(jī) 計(jì)算機(jī)。這在主機(jī)計(jì)算機(jī)系統(tǒng)是移動(dòng)設(shè)備訂戶的辦公計(jì)算機(jī)系統(tǒng)時(shí)是 特別有利的。
也可以通過網(wǎng)絡(luò)200、輔助1/0子系統(tǒng)112、串行端口114、短程通 信子系統(tǒng)122或任何其他合適的子系統(tǒng)124,將附加的應(yīng)用程序加載到 移動(dòng)設(shè)備IOO。應(yīng)用程序安裝中的這種靈活性增加了移動(dòng)設(shè)備100的功 能性,并且可以提供增強(qiáng)的"設(shè)備上"功能、通信相關(guān)功能或這兩個(gè)功 能。例如,安全通信應(yīng)用程序使得能夠使用移動(dòng)設(shè)備100來執(zhí)行電子商 務(wù)功能和其他此類金融交易。
串行端口114使用戶能夠通過外部設(shè)備或軟件應(yīng)用程序來設(shè)置優(yōu) 選項(xiàng),并且通過不通過無線通信網(wǎng)絡(luò)來給移動(dòng)設(shè)備100提供信息或軟件 下載,擴(kuò)展了移動(dòng)設(shè)備100的性能。例如,可以通過直接的并且因而可 靠且可信的連接,使用可選的下載路徑將加密密鑰加載到移動(dòng)設(shè)備IOO上,以便提供安全的設(shè)備通信。
在不使用網(wǎng)絡(luò)200時(shí),短程通信子系統(tǒng)122提供在移動(dòng)設(shè)備100和 不同的系統(tǒng)或設(shè)備之間的通信。例如,子系統(tǒng)122可以包括紅外設(shè)備以 及用于短程通信的相關(guān)電路和組件。短程通信的示例包括由紅外數(shù)據(jù) 協(xié)會(huì)(IrDA)所發(fā)展的標(biāo)準(zhǔn)、藍(lán)牙、以及IEEE發(fā)展的802.11標(biāo)準(zhǔn)族。
在使用中,由通信子系統(tǒng)104處理諸如文本消息、電子郵件消息、 或下載網(wǎng)頁之類的接收信號(hào),并將其輸入到微處理器102。然后微處理 器102處理接收的信號(hào),將其輸出到顯示器110或可選地輸出到輔助I/0 子系統(tǒng)112。訂戶也可以例如結(jié)合顯示器100以及可能的輔助IO子系統(tǒng) 一起來使用鍵盤116,編撰諸如電子郵件消息的數(shù)據(jù)項(xiàng)目。輔助子系統(tǒng) 112可以包括以下設(shè)備,例如觸摸屏、鼠標(biāo)、軌跡球、紅外指紋檢測 器、或帶有動(dòng)態(tài)鈕按壓能力的滾輪。鍵盤116是字母數(shù)字鍵盤和/或電 話型小鍵盤??梢酝ㄟ^通信子系統(tǒng)104在網(wǎng)絡(luò)200上發(fā)送編撰的項(xiàng)目。
對(duì)于語音通信,除了接收信號(hào)被輸出到揚(yáng)聲器118,以及由麥克 風(fēng)120產(chǎn)生用于發(fā)送的信號(hào)之外,移動(dòng)設(shè)備100的所有操作基本上都是 類似的。也可以在移動(dòng)設(shè)備100上實(shí)現(xiàn)可選的語音或音頻I/O子系統(tǒng), 例如語音消息記錄子系統(tǒng)。盡管主要通過揚(yáng)聲器118實(shí)現(xiàn)語音或音頻信 號(hào)輸出,也可以使用顯示器110來提供附加信息,例如主叫方的身份、
語音呼叫的持續(xù)時(shí)間、或其他的語音呼叫相關(guān)信息。
現(xiàn)在參考圖2,示出了圖1的通信子系統(tǒng)組件104的方框圖。通信 子系統(tǒng)104包括接收機(jī)150、發(fā)射機(jī)152、 一個(gè)或更多個(gè)嵌入的或內(nèi)部的 天線元件154、 156、本地振蕩器(LO) 158、以及諸如數(shù)字信號(hào)處理 器(DSP) 160的處理模塊。
通信子系統(tǒng)104的特定設(shè)計(jì)取決于移動(dòng)設(shè)備100意欲操作于的網(wǎng) 絡(luò)200,因此應(yīng)該理解的是,圖2中圖示的設(shè)計(jì)僅用作一個(gè)示例。由天 線154通過網(wǎng)絡(luò)200接收到的信號(hào)被輸入到接收機(jī)150,接收機(jī)150可以 執(zhí)行諸如信號(hào)放大、頻率下轉(zhuǎn)換、濾波、信道選擇以及模數(shù)(A/D) 轉(zhuǎn)換的普通接收機(jī)功能。接收信號(hào)的A/D轉(zhuǎn)換允許在DSP160中執(zhí)行諸 如解調(diào)和解碼的更復(fù)雜的通信功能。以類似的方式,由DSP160處理將 被發(fā)射的信號(hào),所述處理包括調(diào)制和編碼。這些己被DSP處理的信號(hào)被輸入到發(fā)射機(jī)152,用于數(shù)模(D/A)轉(zhuǎn)換、頻率上轉(zhuǎn)換、濾波、放大、以及經(jīng)由天線156在網(wǎng)絡(luò)200上發(fā)射。DSP160不但處理通信信號(hào),而且提供接收機(jī)和發(fā)射機(jī)的控制。例如,可以通過在DSP160中實(shí)施的自動(dòng)增益控制算法自適應(yīng)地控制在接收機(jī)150和發(fā)射機(jī)152中施加到通信信號(hào)的增益。
在移動(dòng)設(shè)備100和網(wǎng)絡(luò)200之間的無線鏈路可以包含一個(gè)或更多個(gè)不同的信道(典型地為不同的RF信道)、以及在移動(dòng)設(shè)備100和網(wǎng)絡(luò)200之間使用的相關(guān)協(xié)議。RF信道是必須節(jié)約使用的有限資源,典型地是由于整體帶寬以及由移動(dòng)設(shè)備100的有限電池電能的限制所限制。
當(dāng)移動(dòng)設(shè)備100完全運(yùn)轉(zhuǎn)時(shí),典型地僅當(dāng)向網(wǎng)絡(luò)200發(fā)送時(shí)才打開發(fā)射機(jī)152,否則關(guān)閉以便節(jié)約資源。類似地,定期地關(guān)閉接收機(jī)150以便節(jié)約資源,直到在指定的時(shí)間段期間需要接收信號(hào)或信息(如果有的話)才打開。
現(xiàn)在參考圖3,無線網(wǎng)絡(luò)節(jié)點(diǎn)的方框圖如202所示。實(shí)際上,網(wǎng)絡(luò)200包括一個(gè)或更多個(gè)節(jié)點(diǎn)202。移動(dòng)設(shè)備100與無線網(wǎng)絡(luò)200內(nèi)的節(jié)點(diǎn)202通信。在圖3的示例實(shí)施方式中,根據(jù)通用分組無線服務(wù)(GRRS)以及全球移動(dòng)通信系統(tǒng)(GSM)技術(shù)來配置節(jié)點(diǎn)202。節(jié)點(diǎn)202包括具有相關(guān)塔站206的基站控制器(BSC) 204、被添加以用于在GSM中支持GPRS的分組控制單元(PCU) 208、移動(dòng)交換中心(MSC) 210、歸屬位置寄存器(HLR) 212、訪問位置寄存器(VLR) 214、服務(wù)GRPS支持節(jié)點(diǎn)(SGSN) 216、網(wǎng)關(guān)GPRS支持節(jié)點(diǎn)(GGSN) 218、以及動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP) 220。組件的列表并不意味著是GSM/GPRS網(wǎng)絡(luò)內(nèi)的每個(gè)節(jié)點(diǎn)202的組件的詳盡列表,而是在通過網(wǎng)絡(luò)200的通信中普遍使用的組件的列表。
在GSM網(wǎng)絡(luò)中,MSC210與BSC 202以及例如公共交換電話網(wǎng)絡(luò)(PSTN) 222的地面網(wǎng)絡(luò)相連,以便滿足電路交換的需求。通過PCU208、 SGSN 216以及GGSN 218與公共或?qū)S镁W(wǎng)絡(luò)(因特網(wǎng))224 (這里也統(tǒng)稱為共享網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu))的連接代表了針對(duì)有GRPS能力的移動(dòng)設(shè)備的數(shù)據(jù)通道。在擴(kuò)展具有GRPS性能的GSM網(wǎng)絡(luò)中,BSC204還包含與SGSN 216相連的分組控制單元(PCU) 208,以便控制分段、無線信道分配、以及滿足分組交換的需求。為了針對(duì)電路交換和分組交
換管理來追蹤移動(dòng)設(shè)備的位置和可用性,在MSC210和SGSN216之間共享HLR212。由MSC210控制對(duì)VLR214的訪問。
站點(diǎn)206是固定收發(fā)站點(diǎn)。站點(diǎn)206和BSC 204—起形成固定收發(fā)設(shè)備。固定收發(fā)設(shè)備向通常稱作"小區(qū)"的特定覆蓋區(qū)域提供無線網(wǎng)絡(luò)覆蓋。固定收發(fā)設(shè)備經(jīng)由站點(diǎn)206向在其小區(qū)內(nèi)的移動(dòng)設(shè)備發(fā)射通信信號(hào)以及從在其小區(qū)內(nèi)的移動(dòng)設(shè)備接收通信信號(hào)。固定收發(fā)設(shè)備在其控制器的控制下,根據(jù)特定的、通常是預(yù)定的通信協(xié)議和參數(shù),通常執(zhí)行這樣一些功能,例如對(duì)將要被發(fā)射到移動(dòng)設(shè)備的信號(hào)的調(diào)制以及可能地編碼和/或加密。如有必要,固定收發(fā)設(shè)備類似地解調(diào)和可能地解碼和/或解密從在其小區(qū)內(nèi)的移動(dòng)設(shè)備100接收到的任意通信信號(hào)。不
同節(jié)點(diǎn)之間的通信協(xié)議和參數(shù)可以不同。例如, 一個(gè)節(jié)點(diǎn)可以使用與其他節(jié)點(diǎn)不同的調(diào)制方案并且在與其他節(jié)點(diǎn)不同的頻率處運(yùn)行。
對(duì)于向特定的網(wǎng)絡(luò)注冊(cè)的所有移動(dòng)設(shè)備IOO,將諸如操作者簡介的永久配置數(shù)據(jù)存儲(chǔ)在HLR212中。HLR212還包含針對(duì)每個(gè)已注冊(cè)的移動(dòng)設(shè)備的位置信息,并且能夠被査詢以確定移動(dòng)設(shè)備的當(dāng)前位置。MSC 210負(fù)責(zé)一組位置區(qū)域,并且將當(dāng)前處于負(fù)責(zé)區(qū)域內(nèi)的移動(dòng)設(shè)備的數(shù)據(jù)存儲(chǔ)在VLR214中。VLR214還包括關(guān)于訪問其他網(wǎng)絡(luò)的移動(dòng)設(shè)備的信息。VLR214中的信息包括從HLR212向VLR214發(fā)射的、用于
更快訪問的永久移動(dòng)設(shè)備數(shù)據(jù)的一部分。通過將附加的信息從遠(yuǎn)程HLR212節(jié)點(diǎn)移動(dòng)到VLR214,可以減少在這些節(jié)點(diǎn)之間的通信量,使
得以更快的響應(yīng)時(shí)間來提供語音和數(shù)據(jù)服務(wù)并同時(shí)需要較少地使用計(jì)算資源。
SGSN 216和GGSN 128是針對(duì)GPRS(即在GSM內(nèi)的分組交換數(shù)據(jù)支持)支持而增加的元件。通過追蹤每個(gè)移動(dòng)設(shè)備100的位置,SGSN216和MSC210在無線網(wǎng)絡(luò)200內(nèi)具有類似的職責(zé)。SGSN216還執(zhí)行安全功能和網(wǎng)絡(luò)200上數(shù)據(jù)業(yè)務(wù)的訪問控制。GGSN218提供與外部分組交換網(wǎng)的因特網(wǎng)連接,并且經(jīng)由在網(wǎng)絡(luò)200內(nèi)運(yùn)行的因特網(wǎng)協(xié)議(IP)骨干網(wǎng)與一個(gè)或更多個(gè)SGSN216相連。在正常的操作期間,給定的移動(dòng)設(shè)備100必須執(zhí)行"GPRS附加(attach)"以便取得IP地址并且訪問數(shù)據(jù)服務(wù)。在電路交換語音信道中并不存在該請(qǐng)求,因?yàn)榫C合業(yè)務(wù)數(shù)字
網(wǎng)(ISDN)地址被用于路由入和出的呼叫?,F(xiàn)在,所有具有GPRS功能的網(wǎng)絡(luò)使用專有的、動(dòng)態(tài)分配的IP地址,因此需要與GGSN218相連的DHCP服務(wù)器220。存在多種用于動(dòng)態(tài)IP分配的機(jī)構(gòu),包括使用遠(yuǎn)程驗(yàn)證用戶撥入業(yè)務(wù)服務(wù)器(RADIUS)以及DHCP服務(wù)器。 一旦完成了GPRS附加,就建立了從移動(dòng)設(shè)備IOO、通過PCU208以及SGSN216、到GGSN218內(nèi)部的訪問點(diǎn)節(jié)點(diǎn)(APN)的邏輯連接。APN代表能夠直接訪問因特網(wǎng)兼容服務(wù)或?qū)S镁W(wǎng)絡(luò)連接的IP隧道的邏輯端。APN還代表針對(duì)網(wǎng)絡(luò)200的安全機(jī)制,因?yàn)楸仨殞⒚總€(gè)移動(dòng)設(shè)備100分配給一個(gè)或更多個(gè)APN,以及如果沒有首先對(duì)己被授權(quán)使用的APN執(zhí)行GRPS附加,則移動(dòng)設(shè)備100不能交換數(shù)據(jù)。
一旦完成GRPS附加,就創(chuàng)建了隧道,并且在使用IP分組中可支持的任意協(xié)議在標(biāo)準(zhǔn)IP分組內(nèi)交換所有通信量。這包括隧道方法,例如在與虛擬專用網(wǎng)絡(luò)(VPN) —起使用的IP安全(IPsec)連接的情況下的IPoverIP。這些隧道也被稱為分組數(shù)據(jù)協(xié)議(PDP)環(huán)境(context),并且在網(wǎng)絡(luò)200中存在有限數(shù)目的可用隧道。為了最大化使用PDP環(huán)境,網(wǎng)絡(luò)200針對(duì)每個(gè)PDP環(huán)境來運(yùn)行空閑計(jì)時(shí)器以便確定是否不活動(dòng)。當(dāng)移動(dòng)設(shè)備100未使用其PDP環(huán)境時(shí),能夠釋放PDP環(huán)境,并且IP地址回到由DHCP服務(wù)器220管理的IP地址池。
為了更好的理解在涉及提供代碼簽名服務(wù)的本說明書中所描述的系統(tǒng)和方法的各個(gè)實(shí)施例,將參考圖4至圖6,首先描述示例代碼簽名協(xié)議和從移動(dòng)設(shè)備方面看的示例代碼簽名系統(tǒng)的特征。如先前所述的,盡管通常參考移動(dòng)設(shè)備來描述多個(gè)下面的示例,這里描述的實(shí)施例對(duì)于除移動(dòng)設(shè)備之外的設(shè)備也是適用的。
參考圖4,示出了示例代碼簽名協(xié)議的示意圖大體上如300所示,
其中代碼簽名中心向軟件應(yīng)用程序開發(fā)者提供代碼簽名服務(wù)。
軟件應(yīng)用程序開發(fā)者302創(chuàng)建針對(duì)移動(dòng)設(shè)備100的軟件應(yīng)用程序304,要求訪問移動(dòng)設(shè)備100上的一個(gè)或更多個(gè)敏感API。應(yīng)該理解的是,軟件應(yīng)用程序包括最終可以在移動(dòng)設(shè)備或其他計(jì)算設(shè)備上執(zhí)行的軟件代碼。因此,在這里術(shù)語"代碼簽名"和"應(yīng)用程序簽名"可以互換地使用。
例如,軟件應(yīng)用程序304可以是在安裝在移動(dòng)設(shè)備100上的Java虛擬機(jī)(JVM)上運(yùn)行的Java應(yīng)用程序。API使軟件應(yīng)用程序能夠與移動(dòng)設(shè)備或其他計(jì)算設(shè)備上的應(yīng)用程序平臺(tái)相接口。例如,應(yīng)用程序平臺(tái)可以包括諸如設(shè)備硬件的資源、操作系統(tǒng)和核心軟件、以及數(shù)據(jù)模型。因此為對(duì)這種設(shè)備資源做出功能調(diào)用或與這種設(shè)備資源進(jìn)行交互,軟件應(yīng)用程序304通常需要訪問移動(dòng)設(shè)備100上的一個(gè)或更多個(gè)API。API在軟件應(yīng)用程序304和設(shè)備資源之間有效地"橋接(bridge)"。
在該說明書和所附權(quán)利要求中,查閱API訪問應(yīng)該被解釋為包括以這樣一種方式訪問API,以使軟件應(yīng)用程序與一個(gè)或更多個(gè)相應(yīng)設(shè)備資源進(jìn)行交互。因此,提供對(duì)任意API的訪問使得軟件應(yīng)用程序與相關(guān)的設(shè)備資源進(jìn)行交互,而拒絕對(duì)API的訪問防止軟件應(yīng)用程序與相關(guān)資源進(jìn)行交互。例如,數(shù)據(jù)庫API可以與設(shè)備文件或數(shù)據(jù)存儲(chǔ)系統(tǒng)進(jìn)行通信,并且對(duì)數(shù)據(jù)庫API的訪問將提供軟件應(yīng)用程序和文件或數(shù)據(jù)存儲(chǔ)系統(tǒng)之間的交互。用戶接口 (UI) API將與諸如屏幕、鍵盤、以及給移動(dòng)設(shè)備的操作者提供輸出或者從其接收輸入的任意其它設(shè)備組件的控制器和/或控制軟件進(jìn)行通信。在移動(dòng)設(shè)備中,例如,也可以提供無線API作為例如發(fā)射機(jī)和接收機(jī)的無線通信資源的接口。可以提供加密的API以便與加密模塊進(jìn)行交互,所述加密模塊在設(shè)備上實(shí)現(xiàn)加密算法。這些僅是可以在移動(dòng)設(shè)備和可能的其他計(jì)算設(shè)備上提供的API的演示性示例。這種設(shè)備可以包括這些示例API中的一些或全部、或不同的API,來取代上述API,或添加到上述那些API中。
通常,可以由移動(dòng)設(shè)備制造商、或可能由API作者、無線網(wǎng)絡(luò)操作者、移動(dòng)設(shè)備所有者或操作者、或也許會(huì)受針對(duì)設(shè)備的軟件應(yīng)用程序中的病毒或惡意代碼所影響的一些其他實(shí)體,將任意給定的API分類為敏感的。例如,移動(dòng)設(shè)備制造商可以將與加密例程、無線通信功能、或諸如地址簿或日歷條目的專用數(shù)據(jù)模型相接口的一些API分類為敏感的。為保護(hù)以避免對(duì)這些敏感API的未授權(quán)訪問,需要軟件應(yīng)用程序開發(fā)者302從移動(dòng)設(shè)備制造商或?qū)PI分類為敏感的其他實(shí)體、或從代表制造商或致力于保護(hù)對(duì)敏感設(shè)備API的訪問的其他實(shí)體的代碼簽名中心306,獲得一個(gè)或更多個(gè)數(shù)字簽名,以及如下面進(jìn)一步所描
述的,向軟件應(yīng)用程序304添加簽名。
可以針對(duì)每個(gè)敏感API或包括軟件應(yīng)用程序要求訪問的敏感API的庫,獲得數(shù)字簽名。在某些的實(shí)施方式中,想要獲得多重簽名。例如,這將允許服務(wù)提供商、公司或網(wǎng)絡(luò)運(yùn)營商限制加載或更新到特定一組移動(dòng)設(shè)備上的一些或全部軟件應(yīng)用程序。在一個(gè)多重簽名的場景中,限制并鎖定設(shè)備上的所有API,直到驗(yàn)證了用于軟件應(yīng)用程序的"全局"簽名。例如,公司也許希望在首先從企業(yè)信息技術(shù)(IT)或計(jì)算機(jī)服務(wù)部門獲得許可之前,防止其雇員在他們的設(shè)備上執(zhí)行任何軟件應(yīng)用程序。則可以配置所有這種企業(yè)移動(dòng)設(shè)備以在能夠執(zhí)行軟件應(yīng)用程序之前需要驗(yàn)證至少全局簽名。因此能進(jìn)一步限制訪問敏感的設(shè)備API和庫(如果有的話),使之取決于各自的對(duì)應(yīng)數(shù)字簽名的驗(yàn)證。
軟件應(yīng)用程序304的二進(jìn)制可執(zhí)行表示可以與移動(dòng)設(shè)備的特定類型或移動(dòng)設(shè)備的型號(hào)無關(guān)。例如,軟件應(yīng)用程序304可以是一次寫成隨處運(yùn)行的二進(jìn)制格式,例如典型地Java軟件應(yīng)用程序的情況。然而,也許想要持有例如針對(duì)每個(gè)類型或型號(hào)的移動(dòng)設(shè)備、或可選地針對(duì)每個(gè)移動(dòng)設(shè)備平臺(tái)或制造商的數(shù)字簽名。因此,如果軟件應(yīng)用程序304以多個(gè)類型或型號(hào)的移動(dòng)設(shè)備作為目標(biāo),則可能需要將軟件應(yīng)用程序304提交給多個(gè)代碼簽名中心。
在圖4中所示的示例中,當(dāng)軟件應(yīng)用程序開發(fā)者302要求簽名軟件應(yīng)用程序304時(shí),軟件應(yīng)用程序304被從軟件應(yīng)用程序開發(fā)者302發(fā)送到代碼簽名中心306。代碼簽名中心306可以代表移動(dòng)設(shè)備制造商、任意敏感API的作者、或可能具有軟件應(yīng)用程序304需要訪問的敏感API的
操作知識(shí)的其他人。
雖然在一些情況下在圖4中沒有明確地示出,應(yīng)該理解的是,軟
件應(yīng)用程序可以被提交給多于一個(gè)代碼簽名中心。例如,每個(gè)代碼簽名中心可以對(duì)針對(duì)特定的敏感API的、或針對(duì)在支持軟件應(yīng)用程序所需要的敏感API的特定型號(hào)的移動(dòng)設(shè)備或一組移動(dòng)設(shè)備上的API的簽名軟件應(yīng)用程序負(fù)責(zé)。因而,例如制造商、移動(dòng)通信網(wǎng)絡(luò)運(yùn)營商、服務(wù)提供商、或企業(yè)客戶可以針對(duì)他們的特定移動(dòng)設(shè)備型號(hào),或針對(duì)運(yùn)行在特定網(wǎng)絡(luò)上的、訂閱了一個(gè)或更多個(gè)特定服務(wù)的、或分配給企業(yè)雇員的移動(dòng)設(shè)備,具有針對(duì)敏感API使用的簽名中心。因此,已簽名的軟件應(yīng)用程序可以包括軟件應(yīng)用程序和來自每個(gè)簽名中心的至少一個(gè)附加數(shù)字簽名。在此示例中,盡管這些簽名中心將產(chǎn)生針對(duì)相同軟件應(yīng)用程序的數(shù)字簽名,不同的簽名和簽名驗(yàn)證方案可以與不同的簽名中心相關(guān)。
從代碼簽名中心306方面看,代碼簽名中心306接收軟件應(yīng)用程序304,并且自行地簽名軟件應(yīng)用程序304,以允許訪問移動(dòng)設(shè)備上的一個(gè)或更多個(gè)敏感API。在代碼簽名中心306簽名軟件應(yīng)用程序304之前,在確定是否應(yīng)該簽名軟件應(yīng)用程序304中,代碼簽名中心306可以考慮應(yīng)用程序開發(fā)者302的身份。代碼簽名中心306在簽名之前還可以重新檢查軟件應(yīng)用程序304;可選地,代碼簽名中心306依靠其識(shí)別軟件應(yīng)用程序開發(fā)者302的身份的能力,可以選擇不執(zhí)行這種重新檢査,所述能力依賴于例如發(fā)現(xiàn)軟件應(yīng)用程序304被感染病毒或含有惡意代碼。
如果代碼簽名中心306確定軟件應(yīng)用程序304可以訪問敏感API,并且因此應(yīng)該被簽名,則由代碼簽名中心306產(chǎn)生數(shù)字簽名(未明確地示出)并且將其附加到軟件應(yīng)用程序304,以便產(chǎn)生將要被返回給軟件應(yīng)用程序開發(fā)者302的已簽名的軟件應(yīng)用程序308。另一方面,如果代碼簽名中心306拒絕簽名軟件應(yīng)用程序304,可以將適當(dāng)?shù)捻憫?yīng)(未示出)返回給軟件應(yīng)用程序開發(fā)者302。
典型地,數(shù)字簽名是使用僅由代碼簽名中心306持有的簽名私鑰310產(chǎn)生的標(biāo)記。例如,根據(jù)一個(gè)簽名方案,可以使用諸如安全散列算法SHA1的散列算法,由代碼簽名中心306產(chǎn)生軟件應(yīng)用程序304的散列,然后用簽名私鑰310進(jìn)行編碼以便創(chuàng)建數(shù)字簽名。盡管在此示例中,使用簽名私鑰310,對(duì)要簽名的信息散列進(jìn)行編碼,例如可以從軟件應(yīng)用程序304中推導(dǎo)出,然而在不同的方案中,可以以其他的方式使用簽名私鑰310,從要簽名的信息或信息的變換版本中產(chǎn)生數(shù)字簽名。
然后可以將已簽名的軟件應(yīng)用程序308通過例如無線網(wǎng)絡(luò)200發(fā)送到移動(dòng)設(shè)備IOO,或加載到移動(dòng)設(shè)備100上。例如,可以將己簽名的軟件應(yīng)用程序308經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)下載到個(gè)人計(jì)算機(jī),并通過串行鏈路加載到移動(dòng)設(shè)備ioo,或者可以以另外的方式從軟件應(yīng)用程序開發(fā)者302獲得并加載到移動(dòng)設(shè)備100上。 一旦將已簽名的軟件應(yīng)用程序308加載到移動(dòng)設(shè)備100上,則在準(zhǔn)予軟件應(yīng)用程序304訪問敏感API之前,典型地要利用簽名公鑰312來驗(yàn)證已簽名的軟件應(yīng)用程序308的至少一個(gè)數(shù)字簽名。
盡管己簽名的軟件應(yīng)用程序308己被加載到移動(dòng)設(shè)備100上,本領(lǐng)域的技術(shù)人員應(yīng)該理解的是,最終可以在移動(dòng)設(shè)備100上執(zhí)行的軟件是軟件應(yīng)用程序304。如上所述,已簽名的軟件應(yīng)用程序308典型地包括軟件應(yīng)用程序304和一個(gè)或更多個(gè)附加的數(shù)字簽名(未示出)。當(dāng)成功驗(yàn)證了 (例如由移動(dòng)設(shè)備100的虛擬機(jī))正確的數(shù)字簽名時(shí),可以在移動(dòng)設(shè)備100上執(zhí)行軟件應(yīng)用程序304,并且準(zhǔn)許軟件應(yīng)用程序304訪問對(duì)應(yīng)簽名已被驗(yàn)證的任意API。
包括軟件代碼簽名方案的安全協(xié)議典型地依賴加密公鑰和私鑰,來提供授權(quán)以訪問敏感API,以及確保己簽名的應(yīng)用程序的完整性。根據(jù)己知的公鑰的加密技術(shù),使用私鑰/公鑰對(duì)的私鑰加密的數(shù)據(jù)僅能夠使用密鑰對(duì)中對(duì)應(yīng)的公鑰來解密,并且反之亦然。
在此示例中,代碼簽名中心通過產(chǎn)生數(shù)字簽名來簽名軟件應(yīng)用程序。數(shù)字簽名是軟件應(yīng)用程序摘要(例如散列),或可能是從軟件應(yīng)用程序推導(dǎo)出的一些數(shù)據(jù),使用代碼簽名中心的私鑰對(duì)其進(jìn)行編碼。然后可以將數(shù)字簽名附加到軟件應(yīng)用程序。
為在移動(dòng)設(shè)備或其他計(jì)算設(shè)備中驗(yàn)證數(shù)字簽名,以類似的方式(例如使用相同的標(biāo)準(zhǔn)散列算法)從在設(shè)備處接收到的軟件應(yīng)用程序(將要附加數(shù)字簽名的程序)中獲得摘要。典型地與敏感API—起存儲(chǔ)的代碼簽名中心的公鑰被用于解碼附加的數(shù)字簽名,以便獲得應(yīng)該是接收到的軟件應(yīng)用程序的匹配摘要的摘要。如果摘要不匹配,這意味著要么在設(shè)備處接收到的軟件應(yīng)用程序不是由代碼簽名中心所簽名的同一應(yīng)用程序,要么軟件應(yīng)用程序沒有使用正確的私鑰或不是由正確的代碼簽名中心進(jìn)行簽名的。以這樣的方式來設(shè)計(jì)數(shù)字簽名算法,使得只有具有代碼簽名中心的私鑰的知識(shí)的人能夠?qū)?shù)字簽名進(jìn)行編碼,所述數(shù)字簽名可以使用與一個(gè)或更多個(gè)敏感API相關(guān)聯(lián)的代碼簽名中心的公鑰來正確地解碼(例如由在設(shè)備處的虛擬機(jī))。因此,通過以這種方式驗(yàn)證數(shù)字簽名,可以保持對(duì)敏感API的授權(quán)和訪問控制以及已簽名應(yīng)用程序的完整性。
因此,簽名公鑰312與由代碼簽名中心306持有的簽名私鑰相對(duì)應(yīng),并且典型地隨同一個(gè)或更多個(gè)敏感API—起被設(shè)置在移動(dòng)設(shè)備IOO上??蛇x地,可以使用移動(dòng)設(shè)備100或可能地個(gè)人計(jì)算機(jī)系統(tǒng),從公鑰庫(未示出)中獲得簽名公鑰312,并且按照需要設(shè)置在移動(dòng)設(shè)備IOO上。移動(dòng)設(shè)備100使用與代碼簽名中心306相同的散列算法,計(jì)算已簽名的軟件應(yīng)用程序308中的軟件應(yīng)用程序304的散列,并且使用數(shù)字簽名以及簽名公鑰312,來恢復(fù)最初由代碼簽名中心306編碼的散列。然后比較作為本地計(jì)算結(jié)果的散列和從數(shù)字簽名中恢復(fù)的散列,并且如果散列相同則驗(yàn)證了簽名。如果對(duì)軟件應(yīng)用程序304進(jìn)行了多次簽名,可以以相同的方式驗(yàn)證每個(gè)數(shù)字簽名。然后軟件應(yīng)用程序304能夠在移動(dòng)設(shè)備100上執(zhí)行,并且訪問對(duì)應(yīng)簽名已被驗(yàn)證的任意敏感API。提供該示例簽名方案僅僅是為了示例,并且在不同的實(shí)施方式中也可以使用包括其他公鑰簽名方案的其他簽名方案。
參考圖5,示出了移動(dòng)設(shè)備上的示例代碼簽名系統(tǒng)的組件的示意圖大體上如320所示。
關(guān)于移動(dòng)設(shè)備IOO,示例代碼簽名系統(tǒng)320包括虛擬機(jī)322 (例如JVM)、多個(gè)軟件應(yīng)用程序324a至324c、多個(gè)API庫326a至326d、以及應(yīng)用程序平臺(tái)328。應(yīng)用程序平臺(tái)328—般包括設(shè)備100上的可以由軟件應(yīng)用程序324a至324c訪問的所有資源。例如,應(yīng)用程序平臺(tái)328可以包括設(shè)備硬件330、移動(dòng)設(shè)備的操作系統(tǒng)332、以及核心軟件和數(shù)據(jù)模型334。每個(gè)API庫326a至326d包括與在應(yīng)用程序平臺(tái)328中可用的資源相接口的一個(gè)或更多個(gè)API。例如, 一個(gè)API庫可以包括與曰歷程序以及日歷條目數(shù)據(jù)模型相接口的所有API。另一個(gè)API庫可以包括與移動(dòng)設(shè)備100的傳輸電路和功能相接口的所有API。又一個(gè)API庫可以包括能夠與由移動(dòng)設(shè)備的操作系統(tǒng)332所執(zhí)行的低層服務(wù)相接口的所有API。
一些API庫326a至326d可以使例如接口的敏感API暴露于密碼功能或模塊(例如326a、 326c),而其他的庫可以在不暴露敏感API下就可以被訪問(例如326b、 326d)。類似地, 一些軟件應(yīng)用程序324a至324c是要求訪問一個(gè)或更多個(gè)敏感API的已簽名軟件應(yīng)用程序(例如324a、324c),其他的軟件應(yīng)用程序是未被簽名的(例如324b)。虛擬機(jī)322可以是諸如Sun公司的J2METM (Java2平臺(tái),Micro版本)的面向?qū)ο筮\(yùn)行時(shí)間環(huán)境,用于管理在移動(dòng)設(shè)備100上運(yùn)行的軟件應(yīng)用程序324a至324c的執(zhí)行,并且使軟件應(yīng)用程序324a至324c與不同的API庫326a至326d相鏈接。
在圖5中標(biāo)注為應(yīng)用程序Y的軟件應(yīng)用程序324a是己簽名的軟件應(yīng)用程序的示例(例如圖4的已簽名的應(yīng)用程序308)。在該示例中,已簽名的軟件應(yīng)用程序324a包括包含例如可在應(yīng)用程序平臺(tái)328上執(zhí)行的軟件代碼的軟件應(yīng)用程序(例如圖4的應(yīng)用程序304); —個(gè)或更多個(gè)簽名標(biāo)識(shí)符336a;以及與數(shù)字簽名標(biāo)識(shí)符336a相關(guān)的一個(gè)或更多個(gè)數(shù)字簽名338a。軟件應(yīng)用程序324c以及其他己簽名的軟件應(yīng)用程序通常包括類似的組件。然而,下面將參考軟件應(yīng)用程序324a作為示例,詳細(xì)地描述已簽名的軟件應(yīng)用程序的組件。
在已簽名的軟件應(yīng)用程序324中的每個(gè)數(shù)字簽名338a以及相關(guān)的簽名標(biāo)識(shí)符336a可以對(duì)應(yīng)于API庫326a、 326c,所述326a和326c暴露了軟件應(yīng)用程序324a要求訪問的至少一個(gè)敏感API。在某些實(shí)施方式中,己簽名的軟件應(yīng)用程序324a可以包括針對(duì)特定API庫326a、326c內(nèi)的每個(gè)敏感API的數(shù)字簽名338a。簽名標(biāo)識(shí)符336a可以是能夠使特定的數(shù)字簽名338a與特定的API庫、API、應(yīng)用程序平臺(tái)、或移動(dòng)設(shè)備的型號(hào)相
關(guān)聯(lián)的唯一整數(shù)或一些其他標(biāo)識(shí)符。
在圖5中標(biāo)注為API庫A的API庫326a是暴露敏感API的API庫的示例。在該示例中,API庫326a包括描述字符串340、簽名公鑰312、以及簽名標(biāo)識(shí)符342。 API庫326c以及暴露一個(gè)或更多個(gè)敏感API的其他API庫通常包括類似的組件。然而,下面將參考軟件應(yīng)用程序326a作為示例,詳細(xì)地描述此種API庫的組件。
API庫326a的簽名標(biāo)識(shí)符342可以對(duì)應(yīng)于在已簽名的軟件應(yīng)用程序(例如324a)中的簽名標(biāo)識(shí)符(例如336a)。這些簽名標(biāo)識(shí)符使虛擬機(jī)322能夠快速地將數(shù)字簽名(例如338a)與API庫(例如326a)匹酉己。簽名公鑰312對(duì)應(yīng)于由代碼簽名中心持有的簽名私鑰(例如圖4的310),并且被用于驗(yàn)證附加到已簽名的應(yīng)用程序324a的數(shù)字簽名338a的真實(shí)性。例如,當(dāng)己簽名的軟件應(yīng)用程序314a被加載或試圖訪問API庫326a的敏感API時(shí),描述字符串340可以是在移動(dòng)設(shè)備100上顯示的文本消息。
可操作地,當(dāng)將要求訪問特定敏感API (例如在API庫中的API)的已簽名軟件應(yīng)用程序加載到移動(dòng)設(shè)備100上時(shí),虛擬機(jī)322搜索與該API相關(guān)的附加數(shù)字簽名的已簽名軟件應(yīng)用程序。在該示例中,這包括將與數(shù)字簽名相關(guān)的特定簽名標(biāo)識(shí)符與對(duì)應(yīng)API庫的簽名標(biāo)識(shí)符(例如342)相匹配。如果己簽名的軟件應(yīng)用程序包括適當(dāng)?shù)臄?shù)字簽名,則虛擬機(jī)322使用與該API庫有關(guān)的簽名公鑰312來驗(yàn)證其真實(shí)性。然后在成功驗(yàn)證數(shù)字簽名時(shí),準(zhǔn)予已簽名的軟件應(yīng)用程序訪問敏感API。如果已簽名的軟件應(yīng)用程序不包括適當(dāng)?shù)臄?shù)字簽名,則拒絕訪問敏感API。
可選地,即使成功地驗(yàn)證了適當(dāng)?shù)臄?shù)字簽名,也可以提示移動(dòng)設(shè)備操作者提供可以由軟件應(yīng)用程序訪問敏感API的確認(rèn)。在這種情況下,在執(zhí)行軟件應(yīng)用程序和訪問敏感API之前,可以在移動(dòng)設(shè)備100的顯示器上顯示基于描述字符串340的消息。例如,可以顯示表示"應(yīng)用程序Y試圖訪問API庫A"的消息,并且可以賦予移動(dòng)設(shè)備操作者控制權(quán)以便最終準(zhǔn)予或拒絕訪問敏感API。
本領(lǐng)域技術(shù)人員要理解的是,任意給出的已簽名軟件應(yīng)用程序可以具有多重設(shè)備專用、庫專用、或API專用的簽名、或附加在其上的此類簽名的組合。類似地,可以針對(duì)不同的設(shè)備來配置不同的簽名驗(yàn)證要求。例如,可以向已簽名的軟件應(yīng)用程序提供數(shù)字簽名,準(zhǔn)予訪問一個(gè)移動(dòng)設(shè)備型號(hào)上的給定敏感API、而不準(zhǔn)予訪問不同的移動(dòng)設(shè)備型號(hào)上的相同敏感API。這也許導(dǎo)致已簽名的軟件應(yīng)用程序被準(zhǔn)予訪問一種類型的移動(dòng)設(shè)備上的敏感API,而不被準(zhǔn)予訪問另一種類型的移動(dòng)設(shè)備上的敏感API。作為另一示例, 一個(gè)移動(dòng)設(shè)備也許需要對(duì)全局簽名和附加簽名進(jìn)行驗(yàn)證,所述附加簽名是針對(duì)軟件應(yīng)用程序要求訪問以便執(zhí)行軟件應(yīng)用程序的任意敏感API的。另一移動(dòng)設(shè)備可以要求單獨(dú)的全局簽名的驗(yàn)證,而另一個(gè)不同的移動(dòng)設(shè)備可以要求僅針對(duì)其敏感API的簽名的驗(yàn)證。
本領(lǐng)域的技術(shù)人員要理解的是,在不同的實(shí)施方式中,能夠接收附加了數(shù)字簽名的軟件應(yīng)用程序的某些設(shè)備可以適于沒有任何簽名驗(yàn)證就準(zhǔn)予執(zhí)行軟件應(yīng)用程序,所述設(shè)備包括例如其中沒有實(shí)現(xiàn)數(shù)字簽名、或數(shù)字簽名是可選的設(shè)備。
參考圖6,示出了處理在圖5中圖示的移動(dòng)設(shè)備上執(zhí)行的簽名軟件
應(yīng)用程序的示例方法中的步驟的流程圖大體上如350所示。
在步驟352中,將軟件應(yīng)用程序(例如圖5的應(yīng)用程序324a)加載到移動(dòng)設(shè)備(例如圖5的移動(dòng)設(shè)備100)。 一旦加載了軟件應(yīng)用程序,在步驟354中,例如使用虛擬機(jī)(例如圖5的虛擬機(jī)322),設(shè)備確定軟件應(yīng)用程序是否要求訪問暴露了敏感API的任意API庫。如果軟件應(yīng)用程序確實(shí)要求訪問敏感API,則如下面參考步驟356至366所述的,虛擬機(jī)驗(yàn)證軟件應(yīng)用程序是否包括與所要求訪問的敏感API相關(guān)的(或與API庫相關(guān)的)有效數(shù)字簽名。如果沒有要求,在步驟368中將軟件應(yīng)用程序與所有其要求的API庫相鏈接,并執(zhí)行。
在該示例中,在步驟356中,虛擬機(jī)檢索針對(duì)相應(yīng)的API庫的簽名公鑰(例如圖5的公鑰312)以及簽名標(biāo)識(shí)符(例如圖5的簽名標(biāo)識(shí)符342)。然后在步驟358中,由虛擬機(jī)使用API庫的簽名標(biāo)志符,來確定軟件應(yīng)用程序是否具有帶有對(duì)應(yīng)簽名標(biāo)識(shí)符(例如圖5的簽名標(biāo)識(shí)符336a)的附加數(shù)字簽名(例如圖5的簽名標(biāo)識(shí)符338a)。如果沒有,則適當(dāng)?shù)拇a簽名中心不批準(zhǔn)軟件應(yīng)用程序訪問敏感API,并且在步驟360中防止執(zhí)行軟件應(yīng)用程序,或者可選地(在圖6中沒有明確地示出),可以從移動(dòng)設(shè)備中清除軟件應(yīng)用程序,或者在可以不訪問敏感API的程度內(nèi)執(zhí)行軟件應(yīng)用程序。在采取這些行動(dòng)之前可以提醒用戶進(jìn)行輸入,以便提供對(duì)要執(zhí)行的特定動(dòng)作的用戶控制(未示出)。
如果對(duì)應(yīng)于敏感API的數(shù)字簽名己被附加到軟件應(yīng)用程序并且由虛擬機(jī)定位,則在步驟362中,虛擬機(jī)使用公鑰來驗(yàn)證數(shù)字簽名的真實(shí)性。例如,可以通過使用參考圖4描述的簽名驗(yàn)證方案、或其他可選的字簽名沒有成功地驗(yàn)證,則如上參
考步驟360所述的,不執(zhí)行、清除、或限制軟件應(yīng)用程序訪問敏感API。然而如果成功地驗(yàn)證了數(shù)字簽名,則可選地,在步驟364中,向移動(dòng)設(shè)備的操作者顯示基于與敏感API或?qū)?yīng)API庫相關(guān)聯(lián)的描述字符串(例如圖5的描述字符串340)的消息,警告軟件應(yīng)用程序要求訪問敏感API,并且在步驟366中,可選地提示操作者授權(quán)以執(zhí)行軟件應(yīng)用程序。如果對(duì)執(zhí)行進(jìn)行了授權(quán),則在步驟368中可以執(zhí)行軟件應(yīng)用程序并且將其鏈接到敏感API,否則如上參考步驟360所述的,不執(zhí)行、清除、或限制軟件應(yīng)用程序訪問敏感API。
當(dāng)對(duì)于給定的軟件應(yīng)用程序,要驗(yàn)證多于一個(gè)數(shù)字簽名時(shí),則在執(zhí)行應(yīng)用程序之前,可以針對(duì)每個(gè)數(shù)字簽名,重復(fù)步驟354至366。
這里描述的實(shí)施例大體上涉及一種用于提供代碼簽名服務(wù)的系統(tǒng)和方法。如之前所述的,可以由代碼簽名中心(例如圖4的代碼簽名中心306)給軟件應(yīng)用程序開發(fā)者或希望具有已數(shù)字地簽名的軟件應(yīng)用
程序的其他個(gè)人或?qū)嶓w提供代碼簽名服務(wù),使得當(dāng)在計(jì)算設(shè)備(例如圖4的移動(dòng)設(shè)備100)上執(zhí)行應(yīng)用程序時(shí)應(yīng)用程序可以訪問敏感API??梢猿洚?dāng)代碼簽名中心的實(shí)體的示例可以包括移動(dòng)設(shè)備制造商、API作者、無線網(wǎng)絡(luò)運(yùn)營商、設(shè)備擁有者或操作者、可能受計(jì)算設(shè)備的軟件應(yīng)用程序中的病毒或惡意代碼影響的任意其他實(shí)體、或者希望控制訪問敏感API的任意其他實(shí)體、以及任意上述實(shí)體的代表。
從代碼簽名中心方面看,任意給定的軟件應(yīng)用程序開發(fā)者(或希望使其應(yīng)用程序被簽名的其他個(gè)人或?qū)嶓w)最初都是不被信任的客戶。在軟件應(yīng)用程序開發(fā)者和代碼簽名中心之間建立信任關(guān)系之前,代碼簽名中心通常拒絕向從軟件應(yīng)用程序開發(fā)者接收到的軟件應(yīng)用程序進(jìn)行簽名使得可以訪問敏感API。只有在與軟件應(yīng)用程序建立了信任的關(guān)系之后,代碼簽名中心才可能愿意簽名軟件應(yīng)用程序,代碼簽名中心然后能夠追蹤哪些API被準(zhǔn)予訪問了,以及已經(jīng)準(zhǔn)予了哪些軟件應(yīng)用程序開發(fā)者。
因此,在一個(gè)實(shí)施例中, 一種提供代碼簽名服務(wù)的方法包括至少一些涉及注冊(cè)實(shí)體的步驟,所述實(shí)體要求訪問由代碼簽名中心控制的敏感API。執(zhí)行這些步驟,以便與那些實(shí)體建立信任的關(guān)系。提供代碼簽名服務(wù)的方法可以包括涉及接收和處理來自這些實(shí)體的代碼簽名請(qǐng)求的附加步驟。
關(guān)于代碼簽名中心做出的實(shí)體注冊(cè),如果由于當(dāng)軟件應(yīng)用程序在計(jì)算設(shè)備上執(zhí)行時(shí)所展示的行為,而可以在軟件應(yīng)用程序中發(fā)現(xiàn)并懷疑任意破壞性的或有問題的代碼,則可以中止或撤銷對(duì)應(yīng)軟件應(yīng)用程序開發(fā)者(或其它注冊(cè)的個(gè)人或?qū)嶓w)對(duì)代碼簽名中心的注冊(cè)權(quán)限。這是可能的,因?yàn)橛纱a簽名中心附加到應(yīng)用程序的數(shù)字簽名提供了跟蹤記錄,通過其可以識(shí)別有問題的軟件應(yīng)用程序開發(fā)者。
例如,可以通過被配置用于定期下載撤銷列表,將這種注冊(cè)的撤銷通知計(jì)算設(shè)備。如果己經(jīng)撤銷的對(duì)應(yīng)數(shù)字簽名的軟件應(yīng)用程序正運(yùn)行在特定的計(jì)算設(shè)備上,則該設(shè)備可以暫停任意此類軟件應(yīng)用程序的執(zhí)行,并且可能從其本地存儲(chǔ)器中清除軟件應(yīng)用程序。例如,也可以將設(shè)備配置成定期地或當(dāng)下載了新的撤銷列表時(shí),重新執(zhí)行數(shù)字簽名驗(yàn)證。
在某些實(shí)施例中,代碼簽名中心可以不提供撤銷列表等。代碼簽名中心可以追蹤在任意給定的時(shí)間軟件應(yīng)用程序開發(fā)者(或者其它注冊(cè)的個(gè)人或?qū)嶓w)可以或不可以使其應(yīng)用程序被簽名,并且自行處理廢除開發(fā)者的簽名權(quán)限。在一個(gè)示例實(shí)施方式中, 一旦代碼簽名中心已經(jīng)簽名了應(yīng)用程序,即使相關(guān)開發(fā)者的簽名權(quán)限隨后被廢除,應(yīng)用程序也將保持有效性。然而在己經(jīng)廢除了開發(fā)者的簽名權(quán)限之后由該開發(fā)者做出的簽名應(yīng)用程序的隨后請(qǐng)求將被拒絕。
參考圖7A,示出了在一個(gè)實(shí)施例中提供代碼簽名服務(wù)的方法的步驟的流程圖大體上如400所示。
盡管作為示例參考移動(dòng)設(shè)備大體上描述了該實(shí)施例,不同的實(shí)施例對(duì)于其他計(jì)算設(shè)備也是適用的。此外,盡管參考在代碼簽名中心和軟件應(yīng)用程序開發(fā)者之間信息交換,大體上描述了該實(shí)施例,但是在代碼簽名中心和不同于軟件應(yīng)用程序開發(fā)者的個(gè)人或?qū)嶓w之間交換信息的情況下,上述實(shí)施例也是適用的。
參考如由代碼簽名中心所執(zhí)行的方法400的步驟,在典型的實(shí)施方式中由軟件應(yīng)用程序執(zhí)行該步驟,所述軟件應(yīng)用程序己經(jīng)被編程序來執(zhí)行方法400的步驟,除非另有說明。在該說明書以及所附權(quán)利要求
中,將編程用于執(zhí)行方法400的步驟的軟件應(yīng)用程序稱為代碼簽名中心
應(yīng)用程序。
代碼簽名中心應(yīng)用程序是用于提供在由代碼簽名中心(例如圖4的代碼簽名中心306)所持有的計(jì)算設(shè)備上執(zhí)行的代碼簽名服務(wù)的系統(tǒng)的一個(gè)組件。在一個(gè)實(shí)施例中,圖7B的示例網(wǎng)絡(luò)配置450示出了用于提供代碼簽名服務(wù)的系統(tǒng)。在該示例中,在計(jì)算設(shè)備454上執(zhí)行代碼簽名中心應(yīng)用程序452,所述計(jì)算設(shè)備454在示例網(wǎng)絡(luò)450中是網(wǎng)絡(luò)服務(wù)器。例如,代碼簽名中心應(yīng)用程序452通過經(jīng)由因特網(wǎng)458可訪問的網(wǎng)絡(luò)接口456,與網(wǎng)絡(luò)450中的客戶進(jìn)行交互。
代碼簽名中心應(yīng)用程序452可以與之進(jìn)行交互的客戶可以包括例如在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行的簽名工具應(yīng)用程序460以及API著作工具應(yīng)用程序462??梢杂尚枰纱a簽名中心簽名應(yīng)用程序的軟件應(yīng)用程序開發(fā)者(例如圖4的軟件應(yīng)用程序開發(fā)者302)將簽名工具應(yīng)用程序460用于向代碼簽名中心應(yīng)用程序452通信數(shù)據(jù)和應(yīng)用程序。可以由需要從代碼簽名中心獲得一個(gè)或更多個(gè)簽名公鑰的敏感API的作者使用API著作工具應(yīng)用程序462來保護(hù)API。
應(yīng)該理解的是,在一些實(shí)施例中,敏感API的作者也可以擔(dān)當(dāng)代碼簽名中心。
代碼簽名中心應(yīng)用程序452還可以訪問至少一個(gè)客戶信息數(shù)據(jù)庫464以及至少一個(gè)簽名私鑰存儲(chǔ)器466??蛻粜畔?shù)據(jù)庫464以及簽名私鑰存儲(chǔ)器466中的數(shù)據(jù)可以被存儲(chǔ)在相同的存儲(chǔ)設(shè)備上,或者被分發(fā)到不一定物理地常駐在計(jì)算設(shè)備454上的多個(gè)存儲(chǔ)設(shè)備。
本領(lǐng)域的技術(shù)人員應(yīng)該理解的是,僅作為示例提供圖7B中所示的組件,并且在不同的實(shí)施方式中,除在圖7B中所示的那些之外,計(jì)算設(shè)備454—般還包括其他組件,并且可以包括不同的組件。
再參考圖7A,在從軟件應(yīng)用程序開發(fā)者接收到代碼簽名注冊(cè)請(qǐng)求和代碼簽名請(qǐng)求之前(這將參考方法400的其它步驟詳細(xì)地進(jìn)行描述),首先需要產(chǎn)生私鑰/公鑰對(duì),使得可以將公鑰附加到通過將其分類為敏感而要進(jìn)行保護(hù)的API (例如類)??梢杂纱a簽名中心本地地存儲(chǔ)私
鑰(例如在圖7B的私鑰存儲(chǔ)器466中),以便隨后使用。因此,在涉及代碼簽名的任意步驟之前執(zhí)行的步驟410中,代碼簽名中心應(yīng)用程序創(chuàng)建了針對(duì)代碼簽名中心想要控制訪問的API的私鑰/公鑰對(duì)。例如,可以針對(duì)要保護(hù)的各個(gè)敏感API,產(chǎn)生密鑰對(duì),或?qū)⑾嗤拿荑€對(duì)應(yīng)用于多個(gè)API。作為另外的示例,可以針對(duì)不同設(shè)備上的API或相同類型設(shè)備的不同型號(hào)上的API,產(chǎn)生不同的密鑰對(duì)。下面參考圖8A至圖8C,詳細(xì)地描述關(guān)于示例實(shí)施例的步驟410。
參考圖8A,在一個(gè)實(shí)施例中,提出了一種用于確定和顯示由計(jì)算設(shè)備上的隨機(jī)數(shù)據(jù)服務(wù)所產(chǎn)生的隨機(jī)數(shù)的隨機(jī)性質(zhì)量的裝置。應(yīng)該理解的是,例如當(dāng)將公鑰密碼系統(tǒng)用于產(chǎn)生密鑰對(duì)時(shí),需要用于密鑰產(chǎn)生的良好來源的隨機(jī)數(shù)。 一般地,數(shù)字越隨機(jī),所產(chǎn)生的密鑰將越強(qiáng)大。隨機(jī)數(shù)的良好來源產(chǎn)生對(duì)于潛在敵人來說未知的并且不可預(yù)知的數(shù)字。原則上,從物理過程中推導(dǎo)出的隨機(jī)數(shù)可能是最好的,因?yàn)樵S多物理過程呈現(xiàn)出真正的隨機(jī)性。
在該實(shí)施例中,提供隨機(jī)數(shù)據(jù)服務(wù),使其可訪問用于產(chǎn)生公鑰/私鑰對(duì)的代碼簽名中心應(yīng)用程序。隨機(jī)數(shù)據(jù)服務(wù)可以收集從幾個(gè)不同來源推導(dǎo)出的隨機(jī)數(shù)據(jù),所述來源包括例如串行端口 、窗口密碼API、鍵盤和鼠標(biāo)事件、以及硬件標(biāo)志。隨機(jī)數(shù)據(jù)服務(wù)適于提供三種基本功能收集隨機(jī)數(shù)據(jù)、向請(qǐng)求隨機(jī)數(shù)據(jù)的應(yīng)用程序提供隨機(jī)數(shù)據(jù)、以及提供已收集的隨機(jī)數(shù)據(jù)的隨機(jī)性質(zhì)量的測量。
在步驟411中,確定由隨機(jī)數(shù)據(jù)服務(wù)提供的數(shù)據(jù)的隨機(jī)性質(zhì)量。在該實(shí)施例中,可以由隨機(jī)數(shù)據(jù)服務(wù)連續(xù)地收集在請(qǐng)求時(shí)能提供的隨機(jī)數(shù)據(jù)。例如,在隨機(jī)數(shù)據(jù)服務(wù)執(zhí)行的同時(shí),可以連續(xù)地產(chǎn)生預(yù)定義大小塊(例如20000字節(jié)的塊)的隨機(jī)數(shù)據(jù)。在該步驟中,評(píng)價(jià)己產(chǎn)生的隨機(jī)數(shù)據(jù)(例如頻繁地、通過以某個(gè)間隔(例如每次0.5s)査詢隨機(jī)數(shù)據(jù)),并且可以將統(tǒng)計(jì)的隨機(jī)性測試應(yīng)用于隨機(jī)數(shù)據(jù)塊的序列。己知各種隨機(jī)性測試(例如聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)測試、FIPS 140-2),并且可以應(yīng)用一個(gè)或多個(gè)此種測試,以便于確定產(chǎn)生的隨機(jī)數(shù)據(jù)的質(zhì)取決于所使用的隨機(jī)性測試以及該隨機(jī)性測試提供結(jié)果的方式,可以將每個(gè)結(jié)果與隨機(jī)性質(zhì)量的多個(gè)預(yù)定義定性測量之一建立映射。例如,隨機(jī)數(shù)據(jù)服務(wù)可以應(yīng)用預(yù)定義的映射,以便在任意給定時(shí)間以滿足下面狀態(tài)之一來指示隨機(jī)性質(zhì)量未,/7游、不^麥f游、差游、《麥?zhǔn)苡巍游、汰秀游、錯(cuò)謀游。在步驟412中,可以向代碼簽名中心應(yīng)用程序的用戶(例如代碼簽名中心的管理員)顯示隨機(jī)性質(zhì)量的指不。
盡管可以使用上述狀態(tài)之一的名稱來顯示隨機(jī)性質(zhì)量的指示,但是也可以使用不同的標(biāo)識(shí)符。在不同的實(shí)施例中,也可以將這些狀態(tài)進(jìn)一步地映射到更少數(shù)目的集合狀態(tài),每個(gè)狀態(tài)由描述性標(biāo)識(shí)符標(biāo)識(shí)。
例如,在一個(gè)實(shí)施例中,由交通燈圖標(biāo)的顏色表示隨機(jī)性質(zhì)量,
其在步驟412中能夠被顯示在用戶接口中。這種表示隨機(jī)性質(zhì)量的方式是直觀的而且對(duì)于用戶來說是易于理解的。絕大多數(shù)用戶對(duì)交通燈圖標(biāo)是熟悉的,并且該圖像能夠被用于描述將要被用于創(chuàng)建針對(duì)代碼簽名應(yīng)用程序的密鑰對(duì)的數(shù)的隨機(jī)性的當(dāng)前質(zhì)量。
交通燈圖標(biāo)被用于闡明隨機(jī)性質(zhì)量的當(dāng)前水平,并且能夠基于當(dāng)前水平來顯示三種顏色之一 (例如紅色、黃色、綠色)。紅色代表因?yàn)殡S機(jī)性質(zhì)量非常差、或因?yàn)殡S機(jī)性質(zhì)量不能被驗(yàn)證為好的而不應(yīng)該創(chuàng)建密鑰的狀態(tài)。黃色代表質(zhì)量是差的、并且在特別注意安全的應(yīng)用程序中不推薦產(chǎn)生密鑰的狀態(tài)。綠色代表隨機(jī)性質(zhì)量是好的、并且告知用戶創(chuàng)建密鑰是相對(duì)安全的狀態(tài)。
上述七種初始狀態(tài)與交通燈圖標(biāo)顏色的一個(gè)可能的映射可以如
下所示
紅色{末,/7游、不^"麥?zhǔn)苡?、鍺誤麟黃色{差游}
綠色{^T麥菱游、好游、汰秀游}
本領(lǐng)域的技術(shù)人員應(yīng)該理解的是,可以在不同的實(shí)施例中定義其他初始狀態(tài)設(shè)置和其它的映射狀態(tài)設(shè)置,并且如何對(duì)其進(jìn)行預(yù)定義可以取決于所使用的特定的隨機(jī)性測試。
在圖8B中示出了顯示交通燈圖標(biāo)的用戶界面的示例對(duì)話框。也可以與所示出的交通燈圖標(biāo)一起,顯示描述性標(biāo)識(shí)符(例如基于七種初 始步驟之一,或與被顯示的燈的顏色相應(yīng)的不同標(biāo)識(shí)符)。也可以以其 他方式向用戶呈現(xiàn)交通燈圖標(biāo)的顏色。例如,可以在工具欄的縮微圖 中顯示顯示顏色或僅僅著色圓圈的交通燈圖標(biāo)。
在步驟412中顯示了隨機(jī)性質(zhì)量的指示符之后,代碼簽名中心應(yīng) 用程序的用戶可以命令應(yīng)用程序創(chuàng)建用于簽名的密鑰對(duì)(例如通過點(diǎn)
擊在圖8B中所示的對(duì)話框的"創(chuàng)建密鑰對(duì)"按鈕)。在這種情況下,從
用戶接收指令以便創(chuàng)建密鑰對(duì)。在一個(gè)實(shí)施例中,用戶可以選擇創(chuàng)建 密鑰對(duì),無論交通燈圖標(biāo)所示的狀態(tài)如何。然而,在不同的實(shí)施例中, 當(dāng)示出"紅色燈"和/或"黃色燈"時(shí),可以禁用顯示給用戶的用于創(chuàng)建密 鑰的選項(xiàng)。此外,在不同的實(shí)施例中,盡管示出"紅色燈"和/或"黃色 燈",如果接收到創(chuàng)建密鑰的指令,可以詢問用戶以確定其選擇。
在步驟414中,以已知的方式(例如使用RSA算法)創(chuàng)建私鑰和對(duì) 應(yīng)公鑰。在步驟415中,由代碼簽名中心存儲(chǔ)私鑰(例如在圖7B的私 鑰存儲(chǔ)器466中),以便將來使用,并且配置公鑰??梢詫⒐€附加到 代碼簽名中心希望保護(hù)的敏感API,或可以將公鑰存儲(chǔ)在庫中,當(dāng)要 求簽名驗(yàn)證時(shí)所述庫對(duì)于在計(jì)算設(shè)備上執(zhí)行的代碼簽名系統(tǒng)組件是可 用的。在圖8C中,示出了示例對(duì)話框,其中代碼簽名中心應(yīng)用程序的 用戶可以向API作者發(fā)送已創(chuàng)建的公鑰(例如經(jīng)由圖7B的API著作工具 462),以便將其嵌入到API中,來保護(hù)這些API。 本領(lǐng)域的技術(shù)人員應(yīng)該理解的是,可以在適于使用隨機(jī)數(shù)產(chǎn)生除 了用于代碼簽名的密鑰對(duì)之外的對(duì)象的其他應(yīng)用程序中,實(shí)現(xiàn)在圖8A 的描述中提到的例如包括可顯示交通燈圖標(biāo)的特征。例如,可以在產(chǎn) 生個(gè)人身份號(hào)碼(PIN)的應(yīng)用程序或在產(chǎn)生會(huì)話密鑰(例如用于根 據(jù)對(duì)稱加密算法來加密數(shù)據(jù))的應(yīng)用程序中使用這些特征。
再次參考圖7A,在步驟410中己經(jīng)創(chuàng)建與敏感API相關(guān)聯(lián)的一個(gè)或
更多個(gè)公鑰之后,當(dāng)軟件應(yīng)用程序開發(fā)者開發(fā)需要訪問己經(jīng)被分類為 敏感的API的應(yīng)用程序時(shí),執(zhí)行方法400的后繼步驟。在步驟420中, 由代碼簽名中心應(yīng)用程序從希望訪問敏感API的軟件應(yīng)用程序開發(fā)者 接收到注冊(cè)請(qǐng)求。然后處理該注冊(cè)請(qǐng)求,以及確定是否應(yīng)該接收注冊(cè)請(qǐng)求。參考圖9,關(guān)于示例實(shí)施例來詳細(xì)地描述步驟420。
在圖9中,根據(jù)一個(gè)實(shí)施例提出了一種針對(duì)代碼簽名服務(wù)來注冊(cè) 實(shí)體的方法。在參考圖7A至圖9描述的示例中,該實(shí)體是軟件應(yīng)用程 序開發(fā)者,盡管其也可以是一些其他個(gè)人或?qū)嶓w。使用已知手段(例 如通過因特網(wǎng)網(wǎng)站),可以使軟件應(yīng)用程序開發(fā)者獲得對(duì)于軟件應(yīng)用程 序開發(fā)者的關(guān)于如何向代碼簽名中心注冊(cè)的指導(dǎo)。
在步驟421中,由代碼簽名中心應(yīng)用程序從軟件應(yīng)用程序開發(fā)者 ("API客戶")接收注冊(cè)請(qǐng)求。注冊(cè)請(qǐng)求包括可以由代碼簽名中心用以 驗(yàn)證軟件應(yīng)用程序開發(fā)者身份的信息。該信息可以包括乘型的身份信 息(例如聯(lián)系信息),并且還可以包括能夠由代碼簽名中心所驗(yàn)證的信 用卡信息。例如,可以通過多個(gè)不同通信頻帶中的任意一個(gè)來接收該 信息。例如,可以經(jīng)由例如安全套接層(SSL)網(wǎng)絡(luò)形式來交換數(shù)據(jù)。 在步驟422中,驗(yàn)證從軟件應(yīng)用程序開發(fā)者接收到的信息。例如, 可以聯(lián)系信用卡公司(例如用電子方法或另外的方法)來驗(yàn)證已接收 的信用卡信息。
如果驗(yàn)證是不成功的,返回錯(cuò)誤消息(步驟428)。另一方面,如 果成功地驗(yàn)證了信息(例如,如果成功地驗(yàn)證了所提供的信用卡信息), 在步驟423中,由代碼簽名中心應(yīng)用程序產(chǎn)生了唯一的客戶ID和PIN。 可以創(chuàng)建用于保存客戶ID、 PIN、以及與特定的軟件應(yīng)用程序開發(fā)者 相關(guān)的其他信息的賬戶記錄,以存儲(chǔ)在由代碼簽名中心持有以及代碼 簽名中心應(yīng)用程序可訪問的客戶信息數(shù)據(jù)庫(例如圖7B的客戶信息數(shù) 據(jù)庫464)中。
在不同的實(shí)施例中,在步驟423中,可以由軟件應(yīng)用程序開發(fā)者 而不是代碼簽名中心來產(chǎn)生PIN和/或客戶ID,并且與代碼簽名中心共 享以存儲(chǔ)。
在創(chuàng)建與軟件應(yīng)用程序開發(fā)者有關(guān)的賬戶記錄時(shí),例如,也可以 向賬戶記錄填充可以用于管理軟件應(yīng)用程序開發(fā)者的賬戶的其他信 息,以便追蹤賬戶的活動(dòng),以及當(dāng)發(fā)生賬戶活動(dòng)時(shí)向特定一方提供指 示。在一個(gè)實(shí)施例中,當(dāng)針對(duì)給定的軟件應(yīng)用程序開發(fā)者創(chuàng)建了賬戶 記錄時(shí),可以向代碼簽名中心應(yīng)用程序的用戶(例如代碼簽名中心的管理員)提供使各種詳情和限制與軟件應(yīng)用程序開發(fā)者的賬戶相關(guān)聯(lián)
的表格(例如經(jīng)由如圖7B中所示的用戶接口468)。在圖10中示出了賬
戶記錄中可以由代碼簽名中心應(yīng)用程序的用戶更新的詳情的示例表 格。賬戶記錄的一些詳情可以自動(dòng)地用預(yù)定義的缺省值來填充。
例如,可以被保存在與軟件應(yīng)用程序開發(fā)者相關(guān)的賬戶記錄中的 詳情包括需要向特定的電子郵件地址(例如"到達(dá)"地址、"抄送"地址、 "轉(zhuǎn)發(fā)"地址等)發(fā)送電子郵件通知的數(shù)據(jù)。當(dāng)嘗試進(jìn)行注冊(cè)時(shí)、當(dāng)做 出代碼簽名請(qǐng)求時(shí)、當(dāng)在處理注冊(cè)嘗試或代碼簽名請(qǐng)求時(shí)發(fā)生錯(cuò)誤時(shí)、
和/或當(dāng)檢測到發(fā)生任意非法(irregular)行為(象可以在代碼簽名中 心應(yīng)用程序中定義的那樣)時(shí),也可以設(shè)置標(biāo)記以便向特定的地址發(fā) 送電子郵件通知。當(dāng)一些其他預(yù)定義的事件發(fā)生時(shí),也可以設(shè)置標(biāo)記 以便發(fā)送電子郵件通知。電子郵件通知使軟件應(yīng)用程序開發(fā)者、管理 員、或其他人員來監(jiān)測賬戶(它們自己的賬戶或其它賬戶),以及尤其 是觀察在賬戶下是否做出未授權(quán)的代碼簽名請(qǐng)求或注冊(cè)嘗試。
可以保存在賬戶記錄中的其他詳情可以包括指示出有效期限與 賬戶相關(guān)的標(biāo)記、以及相關(guān)的有效期限的設(shè)置。例如,可以由代碼簽 名中心的管理員設(shè)置這些詳情。
可以被保存在賬戶記錄中的其他詳情可以包括指示出賬戶僅被
準(zhǔn)予特定數(shù)目的容許代碼簽名請(qǐng)求以及容許代碼簽名請(qǐng)求的相關(guān)數(shù)目 的設(shè)置。例如,可以由代碼簽名中心的管理員設(shè)置這些詳情。這可以
便于由代碼簽名中心提供"按使用收費(fèi)(pay-per-use)"的代碼簽名服 務(wù)。因此,在一個(gè)示例實(shí)施方式中,僅僅只要軟件應(yīng)用程序開發(fā)者的 賬戶沒有過期并且還有容許代碼簽名請(qǐng)求(例如信用卡),軟件應(yīng)用程 序開發(fā)者就能夠使應(yīng)用程序被簽名。
在步驟424中,將客戶ID和PIN、以及可能的其他注冊(cè)數(shù)據(jù)發(fā)送到 軟件應(yīng)用程序開發(fā)者。盡管步驟421中通過第一通信頻帶(例如SSL連 接)接收到注冊(cè)請(qǐng)求中的信息,并且在步驟424中可以通過相同的通信 頻帶將客戶ID和其他注冊(cè)數(shù)據(jù)(除PIN之外)發(fā)送回軟件應(yīng)用程序開 發(fā)者,然而,在一個(gè)實(shí)施例中,可以使用帶外通信裝置(例如通過電 話、通過傳真等)來將PIN傳送到軟件應(yīng)用程序開發(fā)者。該帶外通信
29裝置與在步驟424中用來向軟件應(yīng)用程序開發(fā)者發(fā)送客戶ID和其他注
冊(cè)數(shù)據(jù)的通信頻帶不同。
在之前提到的各種實(shí)施例中,其中由軟件應(yīng)用程序開發(fā)者而不是
代碼簽名中心產(chǎn)生PIN禾Q/或客戶ID,則在步驟424中可以確認(rèn)或拒絕該 外部產(chǎn)生的PIN和/或客戶ID的使用。如果拒絕了該特殊的PIN和/或客 戶ID的使用,可以向軟件應(yīng)用程序開發(fā)者返回錯(cuò)誤消息(流程前進(jìn)到 步驟428,未示出)。
在步驟425中,由代碼簽名中心應(yīng)用程序從軟件應(yīng)用程序開發(fā)者
接收注冊(cè)文件,這構(gòu)成了軟件應(yīng)用程序開發(fā)者做出的實(shí)際注冊(cè)嘗試。 注冊(cè)文件包括在步驟424中發(fā)送給軟件應(yīng)用程序開發(fā)者的客戶ID和 PIN、與僅僅軟件應(yīng)用程序開發(fā)者期待擁有的私鑰對(duì)應(yīng)的公鑰、以及 可能的其他數(shù)據(jù)。在一個(gè)實(shí)施例中,經(jīng)由SSL連接接收注冊(cè)文件。
為更加清楚起見,在步驟425中提到的公鑰/私鑰對(duì)與如關(guān)于圖4 所描述的產(chǎn)生以用于簽名和驗(yàn)證軟件應(yīng)用程序的公鑰/私鑰對(duì)是不相 干的。而是,在步驟425中從軟件應(yīng)用程序開發(fā)者接收的公鑰是用于在 軟件應(yīng)用程序開發(fā)者和第三方之間交換編碼消息以利于安全通信的私 鑰/公鑰對(duì)(例如已經(jīng)由認(rèn)證中心發(fā)出的密鑰對(duì))的一部分。在上下文 中,代碼簽名中心應(yīng)用程序隨后能夠使用用于安全通信的公鑰來驗(yàn)證 消息,例如從軟件應(yīng)用程序開發(fā)者接收的代碼簽名請(qǐng)求。事實(shí)上,可 以使用安全通信的軟件應(yīng)用程序開發(fā)者的私鑰數(shù)字地簽名在步驟425
中所接收的注冊(cè)文件本身。
在步驟425中接收的注冊(cè)文件不僅包含在步驟424中通過第一通 信頻帶發(fā)送到軟件應(yīng)用程序開發(fā)者的客戶ID,而且包含根據(jù)示例實(shí)施 例通過第二 (帶外)通信裝置傳送到軟件應(yīng)用程序開發(fā)者的PIN。通
過使用不同的通信信道來向軟件應(yīng)用程序開發(fā)者發(fā)送注冊(cè)詳情,存在 較低的使第三方可以知道客戶ID和與該客戶ID有關(guān)的正確PIN的風(fēng)險(xiǎn)。
當(dāng)在步驟425中接收了客戶ID以及與該客戶ID有關(guān)的正確PIN、并 且在步驟426中由代碼簽名中心成功地驗(yàn)證了客戶ID以及與該客戶ID 有關(guān)的正確PIN (即在注冊(cè)文件中的客戶ID和PIN與存儲(chǔ)在客戶信息數(shù)據(jù)庫的適當(dāng)賬戶記錄中的軟件應(yīng)用程序開發(fā)者的客戶ID以及相關(guān)PIN 相匹配)時(shí),則可以安全地設(shè)想伴隨著接收到的注冊(cè)文件的用于安 全通信的公鑰事實(shí)上確實(shí)與由軟件應(yīng)用程序開發(fā)者所擁有的安全通信 的私鑰相對(duì)應(yīng)。代碼簽名中心隨后能夠使用公鑰來驗(yàn)證聲稱來源于軟 件應(yīng)用程序開發(fā)者的消息,并且因此使用公鑰密碼術(shù)來編碼此種消息 在通信中提供了增強(qiáng)的安全性。特別地,這里存在較低的使第三方通 過使用所截取的客戶ID和PIN以及其自己的公鑰能夠完成錯(cuò)誤注冊(cè)的 風(fēng)險(xiǎn)。
在各種實(shí)施例中,可以將除PIN之外的不同信息通過優(yōu)選為"帶 外"通信裝置的第二通信裝置發(fā)送到軟件應(yīng)用程序開發(fā)者。然而,在這 些不同的實(shí)施例中,由代碼簽名中心所驗(yàn)證的信息應(yīng)該還包括通過一 個(gè)通信裝置被發(fā)送到軟件應(yīng)用程序開發(fā)者的一些詳情,以及通過一些 其他通信裝置被發(fā)送到軟件應(yīng)用程序開發(fā)者的一些詳情,使得可以實(shí) 現(xiàn)至少一些上述優(yōu)點(diǎn)。
在一個(gè)實(shí)施例中,作為更進(jìn)一步的安全措施,代碼簽名中心應(yīng)用
程序適于跟蹤不利于(against)任意給定軟件應(yīng)用程序開發(fā)者賬戶的 注冊(cè)嘗試的數(shù)目。在不利于賬戶的不成功的注冊(cè)嘗試的數(shù)目達(dá)到預(yù)定 義的數(shù)目之后,可以禁用該賬戶。這是為了避免對(duì)代碼簽名中心應(yīng)用 程序和軟件應(yīng)用程序開發(fā)者之間共享的PIN的暴力破解(brute force attack)o
如之前所述的,在步驟426中代碼簽名中心嘗試對(duì)注冊(cè)文件的驗(yàn) 證(例如通過將已接收的客戶ID和PIN與保存在對(duì)應(yīng)賬戶記錄中的那 些相匹配),并且如果驗(yàn)證是成功的則做出確定。倘若如此,則在步驟 427中更新與軟件應(yīng)用程序開發(fā)者相關(guān)的賬戶記錄以便反映成功的注 冊(cè);否則,在步驟428中將錯(cuò)誤消息返回到軟件應(yīng)用程序開發(fā)者。特別 地,在步驟427中,例如,可以利用在步驟425中接收到的公鑰來更新 賬戶記錄。該公鑰被存儲(chǔ)在客戶信息數(shù)據(jù)庫中的軟件應(yīng)用程序開發(fā)者 的賬戶記錄中,并且可以被用于在未來驗(yàn)證包括代碼簽名請(qǐng)求的通信, 可以由代碼簽名中心應(yīng)用程序從軟件應(yīng)用程序開發(fā)者接收所述代碼簽 名請(qǐng)求。再參考圖7A,在步驟420中成功地注冊(cè)軟件應(yīng)用程序開發(fā)者之后, 然后通常由軟件應(yīng)用程序開發(fā)者提交軟件應(yīng)用程序,用于向代碼簽名 中心簽名。
在步驟430中,從請(qǐng)求者接收到代碼簽名請(qǐng)求,在該示例中所述
請(qǐng)求者是軟件應(yīng)用程序開發(fā)者。例如,代碼簽名請(qǐng)求可以包括與軟件
應(yīng)用程序開發(fā)者的賬戶以及要簽名的應(yīng)用程序相關(guān)的客戶ID。在一個(gè) 實(shí)施例中,軟件應(yīng)用程序開發(fā)者的數(shù)字簽名伴隨著代碼簽名請(qǐng)求,其 中已經(jīng)使用軟件應(yīng)用程序開發(fā)者的私鑰簽名了所述代碼簽名請(qǐng)求。這 利于軟件應(yīng)用程序開發(fā)者的身份的認(rèn)證。
在步驟440中,代碼簽名中心應(yīng)用程序驗(yàn)證在步驟430中所接收的
代碼簽名請(qǐng)求是已注冊(cè)的軟件應(yīng)用程序開發(fā)者所做出的有效請(qǐng)求。例 如,該步驟可以包括獲得與已接收的客戶ID有關(guān)的公鑰,以及驗(yàn)證 附加到代碼簽名請(qǐng)求的數(shù)字簽名;確認(rèn)客戶ID所標(biāo)識(shí)的賬戶還沒有到 期;以及確認(rèn)存在指示出對(duì)于該賬戶仍然有容許代碼請(qǐng)求的足夠的信 用。
如果確定是做出了有效的請(qǐng)求,則在步驟470中,更新與由客戶ID 所標(biāo)識(shí)的賬戶相關(guān)的賬戶記錄。例如,這可以包括減少剩下的容許代 碼簽名請(qǐng)求的數(shù)目。在一些實(shí)施例中,也可以將涉及請(qǐng)求的信息保存 在日志中,可以將所述日志存儲(chǔ)在客戶信息數(shù)據(jù)庫(例如圖7B的464) 或一些其他的存儲(chǔ)設(shè)備上。
在步驟472,可以根據(jù)賬戶記錄中的設(shè)置,將通知電子郵件發(fā)送 到在賬戶記錄中所標(biāo)識(shí)的地址。
在步驟474中,代碼簽名中心使用針對(duì)代碼簽名而創(chuàng)建的簽名私 鑰(例如如在步驟410中創(chuàng)建的并且存儲(chǔ)在圖7B的私鑰數(shù)據(jù)庫466中 的)來簽名應(yīng)用程序。在步驟474中還將數(shù)字簽名返回到軟件應(yīng)用程序 開發(fā)者,使得可以將數(shù)字簽名附加到應(yīng)用程序中,所述應(yīng)用程序己經(jīng) 被編程以訪問利用對(duì)應(yīng)的簽名公鑰所保護(hù)的敏感API。在該步驟中,
也可以配置代碼簽名中心應(yīng)用程序以用于向其他方轉(zhuǎn)發(fā)包含數(shù)字簽名 的文件。
在代碼簽名中心可以控制訪問由不同的簽名公鑰所保護(hù)的不同
32API的實(shí)施例中,可以在代碼簽名請(qǐng)求中包括需要產(chǎn)生的數(shù)字簽名的 指示,并且可以在步驟474中將適當(dāng)?shù)暮灻借€相應(yīng)地用于簽名應(yīng)用程 序。
如果在步驟440中確定沒有做出有效的請(qǐng)求,則在步驟480中返回 錯(cuò)誤消息。在該步驟中,取決于賬戶設(shè)置,可以發(fā)送通知電子郵件。
應(yīng)該理解的是,由代碼簽名中心應(yīng)用程序的用戶(例如管理員) 采取的行動(dòng),例如包括賬戶記錄的修改或代碼簽名密鑰對(duì)創(chuàng)建的發(fā)起, 可以是以用戶密碼的成功驗(yàn)證、或一些其他訪問控制機(jī)制的提供為條 件的。
應(yīng)該理解的是,在從相同的軟件應(yīng)用程序開發(fā)者接收到多個(gè)代碼 簽名請(qǐng)求的情況下,可以重復(fù)步驟430至480,以及在向多個(gè)軟件應(yīng)用 程序開發(fā)者提供代碼簽名服務(wù)的情況下,可以重復(fù)步驟420至480。
盡管在這里描述的至少一些實(shí)施例中,由代碼簽名中心產(chǎn)生的數(shù) 字簽名取決于軟件應(yīng)用程序開發(fā)者的認(rèn)證以及對(duì)軟件應(yīng)用程序開發(fā)者 已經(jīng)被正確地注冊(cè)的確認(rèn),應(yīng)該理解的是,數(shù)字簽名是從應(yīng)用程序的 散列或其它變換版本中產(chǎn)生的,因而是應(yīng)用程序?qū)S玫?。這與一些已 知的代碼簽名方案形成對(duì)比,已知方案中,準(zhǔn)予從可信任的軟件應(yīng)用 程序開發(fā)者或作者接收到的所有軟件應(yīng)用程序進(jìn)行API訪問,而不考 慮正要被簽名的特定應(yīng)用程序。在這里所描述的系統(tǒng)和方法的實(shí)施例 中,根據(jù)不同應(yīng)用程序來準(zhǔn)予對(duì)API的訪問,并且因此更嚴(yán)格地控制 和管理對(duì)API的訪問。
在這里描述的至少一些實(shí)施例中,代碼簽名中心從軟件應(yīng)用程序 開發(fā)者接收軟件應(yīng)用程序,用于利用代碼簽名請(qǐng)求來簽名。 一旦認(rèn)證 了代碼簽名請(qǐng)求者的身份并且已經(jīng)驗(yàn)證了請(qǐng)求者某些的賬戶信息,則 由代碼簽名中心簽名應(yīng)用程序。應(yīng)用程序的簽名典型地包括由代碼簽 名中心產(chǎn)生散列(或軟件應(yīng)用程序的其它變換版本),以及隨后使用適 當(dāng)?shù)暮灻借€對(duì)散列進(jìn)行編碼。
然而,在另一個(gè)實(shí)施例中,并沒有作為代碼簽名請(qǐng)求的一部分而 接收要由代碼簽名中心簽名的應(yīng)用程序。而是和代碼簽名請(qǐng)求一起接 收到散列(或軟件應(yīng)用程序的其它變換版本),其中散列是由不同于代碼簽名中心的個(gè)人或?qū)嶓w,例如軟件應(yīng)用程序開發(fā)者本身,使用如果 由代碼簽名中心接收到實(shí)際要簽名的應(yīng)用程序則代碼簽名中心本來會(huì) 使用的散列算法相同的散列算法,而產(chǎn)生的。然后由代碼簽名中心使 用適當(dāng)?shù)乃借€對(duì)散列進(jìn)行編碼(經(jīng)過賬戶驗(yàn)證)。因?yàn)樵谠搶?shí)施例中原 始的應(yīng)用程序從不會(huì)由代碼簽名中心接收到,軟件應(yīng)用程序開發(fā)者不 需要擔(dān)心泄漏機(jī)密的算法或數(shù)據(jù)。此外,因?yàn)閷⑴c應(yīng)用開發(fā)程序相關(guān) 的任意風(fēng)險(xiǎn)留給了軟件應(yīng)用程序開發(fā)者來處理,代碼簽名中心可以從 中受益。例如,代碼簽名中心典型地不必檢查或驗(yàn)證代碼的完整性, 或確保遵守了保密規(guī)則,因?yàn)槠鋸牟唤邮找灻膶?shí)際應(yīng)用程序。該 技術(shù)也減少了當(dāng)處理代碼簽名請(qǐng)求時(shí)代碼簽名中心應(yīng)用程序需要處理 的數(shù)據(jù)量。
可以將這里描述的一個(gè)或更多個(gè)方法的步驟提供為存儲(chǔ)在計(jì)算 機(jī)可讀媒質(zhì)上的可執(zhí)行軟件指令,所述計(jì)算機(jī)可讀媒質(zhì)可以包括傳輸 型媒質(zhì)。
盡管已關(guān)于多個(gè)實(shí)施例描述了本發(fā)明,本領(lǐng)域的技術(shù)人員可以理 解,在不脫離如在所附權(quán)利要求所限定的本發(fā)明范圍的情況下,可以 對(duì)這些實(shí)施例進(jìn)行其他改變和改進(jìn)。
權(quán)利要求
1、一種提供代碼簽名服務(wù)的方法,其中,已經(jīng)創(chuàng)建和配置了一個(gè)或更多個(gè)公鑰以及一個(gè)或更多個(gè)對(duì)應(yīng)的私鑰,每個(gè)公鑰以及對(duì)應(yīng)的私鑰與被標(biāo)識(shí)為“敏感”的應(yīng)用程序編程接口相關(guān)聯(lián),所述方法包括步驟接收(430)步驟,從請(qǐng)求者接收對(duì)軟件應(yīng)用程序或其散列進(jìn)行簽名的代碼簽名請(qǐng)求,,所述軟件應(yīng)用程序在計(jì)算設(shè)備上運(yùn)行時(shí)訪問敏感應(yīng)用程序編程接口,其中,所述代碼簽名請(qǐng)求包括請(qǐng)求者請(qǐng)求利用已創(chuàng)建的一個(gè)或更多個(gè)私鑰中與所述敏感應(yīng)用程序編程接口相關(guān)聯(lián)的私鑰來簽名的軟件應(yīng)用程序或其散列;簽名(474)步驟,數(shù)字地簽名軟件應(yīng)用程序或其散列,其中,使用與所述敏感應(yīng)用程序編程接口相關(guān)聯(lián)的所述私鑰來產(chǎn)生數(shù)字簽名;以及發(fā)送(474)步驟,向所述請(qǐng)求者發(fā)送所述數(shù)字簽名。
2、 根據(jù)權(quán)利要求l所述的方法,其中,每個(gè)所述至少一個(gè)實(shí)體是 軟件應(yīng)用程序開發(fā)者。
3、 根據(jù)權(quán)利要求1或2所述的方法,其中,從請(qǐng)求者接收到的代 碼簽名請(qǐng)求還包括第二數(shù)字簽名,第二數(shù)字簽名與請(qǐng)求者有關(guān),并且 所述方法還包括在執(zhí)行簽名和發(fā)送步驟之前驗(yàn)證第二數(shù)字簽名的步 驟。
4、 根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,還包括提供用戶界 面的步驟,其中所述用戶界面適于接收輸入,所述輸入被用于填充(470)請(qǐng)求者的賬戶記錄。
5、 根據(jù)權(quán)利要求4所述的方法,其中,所述輸入包括電子郵件通 知設(shè)置,并且所述方法還包括步驟如果所述電子郵件通知設(shè)置要求, 則在接收到所述代碼簽名請(qǐng)求時(shí),發(fā)送(472)電子郵件通知。
6、 根據(jù)權(quán)利要求4至5中任一項(xiàng)所述的方法,其中,所述輸入包 括電子郵件通知設(shè)置,并且所述方法還包括步驟如果所述電子郵件 通知設(shè)置要求,則在發(fā)生錯(cuò)誤和非法行為中的至少一個(gè)時(shí)發(fā)送(472)電子郵件通知。
7、 根據(jù)權(quán)利要求4至6中任一項(xiàng)所述的方法,其中,所述輸入包括有效期限,并且只有有效期限沒有到期時(shí),才在簽名步驟中數(shù)字地 簽名軟件應(yīng)用程序或其散列。
8、 根據(jù)權(quán)利要求4至7中任一項(xiàng)所述的方法,其中,所述輸入包 括多個(gè)容許簽名請(qǐng)求,其中只有當(dāng)容許簽名請(qǐng)求的數(shù)目表示出仍然還 有容許簽名請(qǐng)求時(shí),才在簽名步驟中數(shù)字地簽名軟件應(yīng)用程序或其散列,并且所述方法還包括步驟在執(zhí)行簽名步驟之后,更新容許簽名請(qǐng)求的數(shù)目。
9、 一種計(jì)算機(jī)可讀媒質(zhì)(106, 108),包括用于執(zhí)行如之前任一 項(xiàng)權(quán)利要求所述方法的步驟的指令,其中,所述指令可在計(jì)算設(shè)備(100)上執(zhí)行。
10、 一種用于提供代碼簽名服務(wù)的系統(tǒng)(320),包括用于存儲(chǔ) 多個(gè)私鑰的私鑰存儲(chǔ)器(466)、用于存儲(chǔ)多個(gè)賬戶記錄的客戶信息數(shù) 據(jù)庫(464)、以及代碼簽名中心應(yīng)用程序(452),其中,當(dāng)在計(jì)算設(shè) 備上執(zhí)行所述代碼簽名中心應(yīng)用程序(452)時(shí),所述代碼簽名中心應(yīng) 用程序(452)執(zhí)行如權(quán)利要求1至9中任一項(xiàng)所述的方法的步驟。
11、 根據(jù)權(quán)利要求10所述的系統(tǒng),還包括用戶接口 (468),用于 接收輸入以利于管理請(qǐng)求者的賬戶記錄。
全文摘要
一種向軟件應(yīng)用程序開發(fā)者或希望應(yīng)用程序被數(shù)字地簽名的其他個(gè)體或?qū)嶓w提供代碼簽名服務(wù)的系統(tǒng)和方法??梢砸蠛灻麘?yīng)用程序,以便當(dāng)在計(jì)算設(shè)備上執(zhí)行應(yīng)用程序時(shí),使應(yīng)用程序能夠訪問計(jì)算設(shè)備的敏感API以及相關(guān)資源。在一個(gè)實(shí)施例中,提供代碼簽名服務(wù)的方法包括至少一些步驟,所述步驟涉及注冊(cè)要求訪問由代碼簽名中心控制的API的實(shí)體。執(zhí)行這些步驟,以便與這些實(shí)體建立信任的關(guān)系。提供代碼簽名服務(wù)的方法還包括涉及接收和處理來自這些實(shí)體的代碼簽名請(qǐng)求的附加步驟。
文檔編號(hào)G06F21/51GK101599117SQ20091020285
公開日2009年12月9日 申請(qǐng)日期2006年9月28日 優(yōu)先權(quán)日2005年9月29日
發(fā)明者尼爾·P·亞當(dāng)斯, 戴維·F·塔普什科, 赫伯特·A·利特爾, 麥克爾·G·柯卡普, 麥克爾·雷巴克 申請(qǐng)人:捷訊研究有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
方城县| 宁强县| 昭平县| 胶南市| 东丰县| 筠连县| 乐业县| 庄河市| 崇明县| 荔浦县| 鹤岗市| 平南县| 巨鹿县| 克拉玛依市| 连平县| 鹤山市| 呼伦贝尔市| 南陵县| 道真| 呈贡县| 四子王旗| 合作市| 兴义市| 舞阳县| 阿拉善左旗| 绥德县| 十堰市| 舟曲县| 读书| 娄烦县| 团风县| 博兴县| 娄底市| 平和县| 镇巴县| 吐鲁番市| 达州市| 榕江县| 南川市| 烟台市| 长葛市|