專利名稱:移動(dòng)終端的動(dòng)態(tài)加載軟件驗(yàn)證方法、監(jiān)控方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)終端的軟件平臺(tái),特別是涉及移動(dòng)終端的動(dòng)態(tài)加載軟件驗(yàn)證方 法、監(jiān)控方法和裝置。
背景技術(shù):
隨著手機(jī)的智能化發(fā)展,目前的智能手機(jī)允許用戶在手機(jī)的軟件平臺(tái)上安裝各種 動(dòng)態(tài)加載軟件,以提供豐富的擴(kuò)展功能。為了避免不安全或惡意的動(dòng)態(tài)加載軟件對(duì)手機(jī)的 系統(tǒng)運(yùn)行造成損害,傳統(tǒng)上使用數(shù)字簽名來對(duì)各種各樣的動(dòng)態(tài)加載軟件進(jìn)行控制。傳統(tǒng)的 動(dòng)態(tài)加載軟件安裝運(yùn)行流程如圖1所示,動(dòng)態(tài)加載軟件經(jīng)過數(shù)字簽名S1后下載到移動(dòng)終端 本地進(jìn)行安裝,安裝時(shí)手機(jī)終端系統(tǒng)驗(yàn)證其數(shù)字簽名S2,如果驗(yàn)證通過則進(jìn)行安裝S3。這種傳統(tǒng)的軟件保護(hù)方法存在一些缺點(diǎn)。首先,這一方法無法體現(xiàn)手機(jī)終端系統(tǒng) 對(duì)不同的第三方開發(fā)群體的授權(quán)控制策略,所有的第三方開發(fā)群體都能使用終端平臺(tái)的全 部API (Application Programming Interface,應(yīng)用程序編程接口)開發(fā)動(dòng)態(tài)加載軟件,這 樣,開發(fā)資質(zhì)較差的開發(fā)群體如果使用終端的關(guān)鍵API,其軟件有可能對(duì)全系統(tǒng)造成破壞, 比如死機(jī)或影響其它重要業(yè)務(wù)應(yīng)用運(yùn)行等等,從而影響終端用戶的體驗(yàn);其次,如果傳統(tǒng) 的軟件保護(hù)方法需要增加API訪問控制策略,其主要方法是通過在API的對(duì)應(yīng)模塊增加檢 測(cè)代碼來實(shí)現(xiàn)的,或者通過API接口是否對(duì)外開放來實(shí)現(xiàn),這種方法需要對(duì)原有模塊進(jìn)行 較大規(guī)模的改造,無法平滑升級(jí);再者,使用傳統(tǒng)的軟件保護(hù)方法,無法動(dòng)態(tài)的對(duì)手機(jī)終端 API訪問控制策略進(jìn)行更新,終端一旦售出,其保護(hù)策略將保持固定,無法進(jìn)行動(dòng)態(tài)調(diào)整。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種更加靈活的移動(dòng)終端的動(dòng)態(tài)加載軟件的 驗(yàn)證和監(jiān)控方法,以針對(duì)不同可靠等級(jí)的動(dòng)態(tài)加載軟件提供不同的監(jiān)控策略。本發(fā)明提出一種移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,包括以下步驟設(shè)定移動(dòng) 終端的多個(gè)API訪問等級(jí)值,不同的API訪問等級(jí)值有權(quán)訪問的移動(dòng)終端中的API范圍不 同。對(duì)動(dòng)態(tài)加載軟件添加API訪問等級(jí)值字段,以賦予一 API訪問等級(jí)值,然后發(fā)布該動(dòng)態(tài) 加載軟件。另一方面,創(chuàng)建并發(fā)布一 API訪問等級(jí)配置表,該API訪問等級(jí)配置表包含移動(dòng) 終端中的各個(gè)API及其對(duì)應(yīng)的設(shè)定API訪問等級(jí)值,其中該API訪問等級(jí)值與該API訪問 等級(jí)配置表用以作為移動(dòng)終端監(jiān)控動(dòng)態(tài)加載軟件對(duì)API的訪問的依據(jù)。在本發(fā)明的一實(shí)施例中,根據(jù)動(dòng)態(tài)加載軟件的開發(fā)者資質(zhì)設(shè)定上述的多個(gè)API防 問等級(jí)值。在本發(fā)明的一實(shí)施例中,API訪問等級(jí)值越高,有權(quán)訪問的移動(dòng)終端中的API范圍 越大,并且高的API訪問等級(jí)值有權(quán)訪問的API范圍,包含低的API訪問等級(jí)值有權(quán)訪問的 API范圍。在本發(fā)明的一實(shí)施例中,對(duì)動(dòng)態(tài)加載軟件添加API訪問等級(jí)值字段之后還包括對(duì) 包含該API訪問等級(jí)值的動(dòng)態(tài)加載軟件進(jìn)行數(shù)字簽名。
在本發(fā)明的一實(shí)施例中,上述的驗(yàn)證方法,還包括,向移動(dòng)終端發(fā)布對(duì)該API訪問 等級(jí)配置表的更新。在一實(shí)施例中,通過固件升級(jí)包向移動(dòng)終端發(fā)布對(duì)該API訪問等級(jí)配 置表的更新。在本發(fā)明的一實(shí)施例中,上述的驗(yàn)證方法還包括,向動(dòng)態(tài)加載軟件的開發(fā)者發(fā)布 對(duì)該API訪問等級(jí)配置表的更新,由此動(dòng)態(tài)加載軟件可以根據(jù)更新后的API訪問等級(jí)配置 表升級(jí)或開發(fā)。本發(fā)明另提出一種移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控方法,包括以下步驟獲取動(dòng) 態(tài)加載軟件,該動(dòng)態(tài)加載軟件包含一 API訪問等級(jí)值,該API訪問等級(jí)值對(duì)應(yīng)一移動(dòng)終端中 的API訪問范圍。當(dāng)安裝該動(dòng)態(tài)加載軟件時(shí),保存動(dòng)態(tài)加載軟件的標(biāo)識(shí)與該API訪問等級(jí) 值。當(dāng)動(dòng)態(tài)加載軟件于移動(dòng)終端運(yùn)行時(shí),獲取該動(dòng)態(tài)加載軟件的API訪問等級(jí)值,根據(jù)一 API訪問等級(jí)配置表監(jiān)控該動(dòng)態(tài)加載軟件對(duì)移動(dòng)終端中的API的訪問,其中該API訪問等級(jí) 配置表包含移動(dòng)終端中的各個(gè)API及其對(duì)應(yīng)的設(shè)定API訪問等級(jí)值。在本發(fā)明的一實(shí)施例中,當(dāng)該動(dòng)態(tài)加載軟件的API訪問等級(jí)值高于或等于該設(shè)定 API訪問等級(jí)值時(shí),允許該動(dòng)態(tài)加載軟件訪問該API,當(dāng)該動(dòng)態(tài)加載軟件的API訪問等級(jí)值 低于該設(shè)定API訪問等級(jí)值時(shí),提出警告或終止運(yùn)行該動(dòng)態(tài)加載軟件。在本發(fā)明的一實(shí)施例中,當(dāng)安裝該動(dòng)態(tài)加載軟件時(shí),還包括對(duì)動(dòng)態(tài)加載軟件進(jìn)行 數(shù)字簽名驗(yàn)證,并在驗(yàn)證通過時(shí)保存動(dòng)態(tài)加載軟件的標(biāo)識(shí)與該API訪問等級(jí)值。在本發(fā)明的一實(shí)施例中,上述的監(jiān)控方法還包括接收對(duì)該API訪問等級(jí)配置表 的更新。在一實(shí)施例中,通過固件升級(jí)包對(duì)該API訪問等級(jí)配置表進(jìn)行更新。本發(fā)明還提出一種移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控裝置,包括數(shù)據(jù)庫及監(jiān)控單 元。該數(shù)據(jù)庫在含有API訪問等級(jí)值的動(dòng)態(tài)加載軟件安裝時(shí),保存該動(dòng)態(tài)加載軟件的標(biāo)識(shí) 與該API訪問等級(jí)值,其中該API訪問等級(jí)值對(duì)應(yīng)移動(dòng)終端中的API訪問范圍。當(dāng)動(dòng)態(tài)加 載軟件于移動(dòng)終端運(yùn)行時(shí),監(jiān)控單元獲取該動(dòng)態(tài)加載軟件的API訪問等級(jí)值,并根據(jù)預(yù)置 的API訪問等級(jí)配置表監(jiān)控該動(dòng)態(tài)加載軟件對(duì)移動(dòng)終端中的API的訪問,其中該API訪問 等級(jí)配置表包含移動(dòng)終端中的各個(gè)API及其對(duì)應(yīng)的設(shè)定API訪問等級(jí)值。在本發(fā)明的一實(shí)施例中,當(dāng)該動(dòng)態(tài)加載軟件的API訪問等級(jí)值高于或等于該設(shè)定 API訪問等級(jí)值時(shí),該監(jiān)控單元允許該動(dòng)態(tài)加載軟件訪問該API,當(dāng)該動(dòng)態(tài)加載軟件的API 訪問等級(jí)值低于該設(shè)定API訪問等級(jí)值時(shí),該監(jiān)控單元提出警告或終止運(yùn)行該動(dòng)態(tài)加載軟 件。本發(fā)明由于采用以上技術(shù)方案,使之與現(xiàn)有技術(shù)相比,具有如下顯著優(yōu)點(diǎn)首先, 移動(dòng)終端能夠根據(jù)開發(fā)者資質(zhì)等級(jí)對(duì)動(dòng)態(tài)加載軟件所能使用的API進(jìn)行保護(hù)控制,提高了 手機(jī)系統(tǒng)的運(yùn)行穩(wěn)定性。其次,對(duì)移動(dòng)終端增加API保護(hù)控制策略,不分別針對(duì)原有的API 逐個(gè)修改,方便實(shí)施,平滑升級(jí)。再者,便于動(dòng)態(tài)更新終端的API保護(hù)控制策略。
為讓本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,以下結(jié)合附圖對(duì)本發(fā)明的具 體實(shí)施方式作詳細(xì)說明,其中圖1示出現(xiàn)有的手機(jī)終端軟件安裝運(yùn)行過程。圖2示出本發(fā)明一實(shí)施例的動(dòng)態(tài)加載軟件發(fā)布、驗(yàn)證及監(jiān)控過程。
圖3示出本發(fā)明一實(shí)施例的API訪問范圍劃分示意圖。圖4示出本發(fā)明一實(shí)施例的移動(dòng)終端的動(dòng)態(tài)加載軟件監(jiān)控裝置。圖5示出本發(fā)明一實(shí)施例的移動(dòng)終端的動(dòng)態(tài)加載軟件詳細(xì)監(jiān)控流程。圖6示出通過DM方式升級(jí)用戶終端固件的示例。圖7示出DM業(yè)務(wù)固件升級(jí)的配置環(huán)境。
具體實(shí)施例方式為了確保動(dòng)態(tài)加載軟件的性能穩(wěn)定,確保動(dòng)態(tài)加載軟件不對(duì)終端系統(tǒng)和終端系統(tǒng) 的其它運(yùn)行業(yè)務(wù)造成影響,在一實(shí)施例中,根據(jù)不同的第三方軟件開發(fā)群體的資質(zhì)對(duì)終端 API (Application Programming Interface,應(yīng)用程序編程接口)進(jìn)行等級(jí)分級(jí),不同資質(zhì) 等級(jí)的開發(fā)群體所開發(fā)的動(dòng)態(tài)加載軟件所能訪問的終端API有不同的等級(jí)限制,移動(dòng)終端 (如手機(jī))能夠根據(jù)等級(jí)限制策略對(duì)動(dòng)態(tài)加載軟件進(jìn)行監(jiān)控,確保動(dòng)態(tài)加載軟件運(yùn)行在其 等級(jí)限制范圍內(nèi),從而保證終端的穩(wěn)定運(yùn)行。同時(shí),終端平臺(tái)的等級(jí)限制策略可動(dòng)態(tài)更新、 第三方軟件開發(fā)群體的資質(zhì)也可例如根據(jù)它們的既往表現(xiàn)得到動(dòng)態(tài)調(diào)整。圖2示出本發(fā)明一實(shí)施例的動(dòng)態(tài)加載軟件發(fā)布、安裝及驗(yàn)證過程。參考圖2所示, 在一個(gè)終端平臺(tái)廠商的遠(yuǎn)端主機(jī),例如驗(yàn)證服務(wù)器100上進(jìn)行動(dòng)態(tài)加載軟件的驗(yàn)證及發(fā)布 流程。于步驟S101,設(shè)定移動(dòng)終端的多個(gè)API訪問等級(jí)值,以作為動(dòng)態(tài)加載軟件訪問權(quán)限的 劃分依據(jù),其中不同的API訪問等級(jí)值有權(quán)訪問的移動(dòng)終端中的API范圍不同。例如,較高 的訪問等級(jí)值有權(quán)訪問的移動(dòng)終端中的API范圍越大。作為舉例,可以根據(jù)動(dòng)態(tài)加載軟件 的開發(fā)者資質(zhì)設(shè)定API訪問等級(jí)值,如圖3所示,例如可以對(duì)第三方軟件開發(fā)群體的資質(zhì)劃 分一級(jí)普通開發(fā)者資質(zhì)(比如學(xué)生、試用者等開發(fā)群體)二級(jí)初級(jí)開發(fā)者資質(zhì)(比如具有一定專業(yè)背景的個(gè)人開發(fā)群體)三級(jí)中級(jí)開發(fā)者資質(zhì)(比如對(duì)終端軟件平臺(tái)有一定了解,但無針對(duì)本平臺(tái)的成 功開發(fā)案例的公司開發(fā)群體)四級(jí)高級(jí)開發(fā)者資質(zhì)(比如對(duì)終端軟件平臺(tái)比較熟悉,有針對(duì)本平臺(tái)的成功開 發(fā)案例的公司開發(fā)群體)五級(jí)VIP開發(fā)者資質(zhì)(比如對(duì)終端軟件平臺(tái)非常熟悉,有針對(duì)本平臺(tái)較多成功 案例,并且有定制開發(fā)能力的公司開發(fā)群體)根據(jù)對(duì)第三方軟件開發(fā)群體的資質(zhì)等級(jí)劃分,對(duì)終端平臺(tái)向開發(fā)者發(fā)布開放的 API進(jìn)行相應(yīng)的訪問等級(jí)劃分一級(jí)開發(fā)者資質(zhì)API 發(fā)布開放給普通開發(fā)者資質(zhì)群體;二級(jí)開發(fā)者資質(zhì)API 發(fā)布開放給初級(jí)開發(fā)者資質(zhì)群體;三級(jí)開發(fā)者資質(zhì)API 發(fā)布開放給中級(jí)開發(fā)者資質(zhì)群體;四級(jí)開發(fā)者資質(zhì)API 發(fā)布開放給高級(jí)開發(fā)者資質(zhì)群體;五級(jí)開發(fā)者資質(zhì)API 發(fā)布開放給VIP開發(fā)者資質(zhì)群體。在一實(shí)施例中,對(duì)于不同的開發(fā)者群體,所獲得發(fā)布的API范圍是增量發(fā)布,即等 級(jí)較高的API訪問等級(jí)值有權(quán)訪問的API范圍包含等級(jí)較低的API訪問等級(jí)值有權(quán)訪問的 API范圍,例如發(fā)布給二級(jí)開發(fā)者的API范圍包含一級(jí)開發(fā)者資質(zhì)API和二級(jí)開發(fā)者資質(zhì)API,發(fā)布給三級(jí)開發(fā)者的API范圍包含一級(jí)開發(fā)者資質(zhì)API、二級(jí)開發(fā)者資質(zhì)API和三級(jí)開 發(fā)者資質(zhì)API,以下依次類推,不逐一描述。這將簡(jiǎn)化API訪問的監(jiān)控,但是本發(fā)明并不局限 于這樣的安排。于步驟S102,對(duì)提交的驗(yàn)證動(dòng)態(tài)加載軟件進(jìn)行數(shù)字簽名,并且例如根據(jù)此軟件的 開發(fā)者資質(zhì),賦予一API訪問等級(jí)值(如3級(jí))。此API等級(jí)值可以作為數(shù)字簽名的一個(gè)字 段進(jìn)行添加,同時(shí)也添加軟件標(biāo)識(shí)(ID),然后使用簽名打包工具對(duì)軟件進(jìn)行數(shù)字簽名。在本 實(shí)施例中,數(shù)字簽名一方面可以確保該軟件的確經(jīng)過驗(yàn)證中心驗(yàn)證確認(rèn)的,同時(shí)也是對(duì)添 加的API訪問等級(jí)值提供一致性檢驗(yàn)的手段。盡管如此,在其他實(shí)施例中,也可以添加API 訪問等級(jí)值字段而不經(jīng)過數(shù)字簽名,或者使用其他的手段來提供一致性檢驗(yàn)。于步驟S103,發(fā)布該動(dòng)態(tài)加載軟件,該動(dòng)態(tài)加載軟件可通過移動(dòng)通訊網(wǎng)絡(luò)傳送到 終端供下載。于步驟S104,創(chuàng)建并發(fā)布一 API訪問等級(jí)配置表,該API訪問等級(jí)配置表包含移動(dòng) 終端中的各個(gè)API與其設(shè)定API訪問等級(jí)值的對(duì)應(yīng)關(guān)系。這一對(duì)應(yīng)關(guān)系的例子可以參照下 表1所示。步驟S104可以在驗(yàn)證服務(wù)器上獨(dú)立于前述步驟101-103執(zhí)行?;谠揂PI訪 問等級(jí)配置表的發(fā)布,不同級(jí)別開發(fā)者資質(zhì)API的劃分可以不依據(jù)終端中API的自有屬性, 而是依據(jù)平臺(tái)提供商對(duì)開發(fā)者開放API的策略而定,這將有利于這些策略的靈活調(diào)整。表1終端API訪問等級(jí)配置表 由表1可看出,各個(gè)API具有不同的訪問等級(jí)值。舉例來說,ID為001的API,其 訪問等級(jí)為2,這意味著具有二級(jí)或以上的API訪問等級(jí)值的動(dòng)態(tài)加載軟件才能訪問它。終 端平臺(tái)廠商對(duì)API訪問等級(jí)劃分主要是根據(jù)平臺(tái)向第三方軟件開發(fā)群體的發(fā)布開放策略 而定。同時(shí),終端平臺(tái)廠商可根據(jù)新增特性(如新增API開放)以及不同等級(jí)API的重要 性變化,對(duì)上述訪問等級(jí)劃分進(jìn)行調(diào)整(比如一些原屬3級(jí)的API也開放給2級(jí)使用)。因此,通過在驗(yàn)證服務(wù)器100對(duì)動(dòng)態(tài)加載軟件賦予上述的API訪問等級(jí)值,以及動(dòng) 態(tài)地發(fā)布API訪問等級(jí)配置表,用以作為移動(dòng)終端監(jiān)控動(dòng)態(tài)加載軟件對(duì)API的訪問的依據(jù)。下面參照?qǐng)D2說明移動(dòng)終端200的動(dòng)態(tài)軟件安裝、驗(yàn)證及監(jiān)控流程。于步驟S201,下載動(dòng)態(tài)加載軟件,該動(dòng)態(tài)加載軟件已按照前述步驟101-103進(jìn)行 處理,動(dòng)態(tài)加載軟件中包含API訪問等級(jí)值(如3級(jí)),此API訪問等級(jí)值對(duì)應(yīng)于本移動(dòng)終 端中的API訪問范圍。在本實(shí)施例中,動(dòng)態(tài)加載軟件可以是經(jīng)過數(shù)字簽名的,也可以是未經(jīng)
7過數(shù)字簽名的。于步驟S202,在進(jìn)行軟件安裝時(shí),首先通過終端預(yù)置的簽名數(shù)字證書對(duì)動(dòng)態(tài)加載 軟件進(jìn)行數(shù)字簽名驗(yàn)證,并取得其API訪問等級(jí)值。于步驟S203,當(dāng)通過驗(yàn)證時(shí),保存動(dòng)態(tài)加載軟件的標(biāo)識(shí)(ID)與API訪問等級(jí)值,并 繼續(xù)安裝流程;反之,如果驗(yàn)證失敗,向用戶發(fā)出警告等信息,并終止安裝流程。對(duì)于不需要進(jìn)行數(shù)字簽名驗(yàn)證的軟件,當(dāng)安裝該動(dòng)態(tài)加載軟件時(shí),步驟202-203 可簡(jiǎn)化為直接保存動(dòng)態(tài)加載軟件的標(biāo)識(shí)與該API訪問等級(jí)值。于步驟S204,當(dāng)動(dòng)態(tài)加載軟件于移動(dòng)終端運(yùn)行時(shí),獲取動(dòng)態(tài)加載軟件的API訪問 等級(jí)值,根據(jù)一 API訪問等級(jí)配置表監(jiān)控動(dòng)態(tài)加載軟件對(duì)移動(dòng)終端中的API的訪問。API訪 問等級(jí)配置表包含移動(dòng)終端中的各個(gè)API與其API訪問等級(jí)值的對(duì)應(yīng)關(guān)系。API訪問等級(jí) 配置表的示例如表1。于步驟S205判斷是否越級(jí)訪問。舉例來說,當(dāng)該API訪問等級(jí)值為3級(jí),而動(dòng)態(tài) 加載軟件要訪問的API的設(shè)定API訪問等級(jí)值為2級(jí)或3級(jí)時(shí),終端允許動(dòng)態(tài)加載軟件訪 問該API (步驟S206);而當(dāng)?shù)趧?dòng)態(tài)加載軟件要訪問的API的設(shè)定API訪問等級(jí)值為4級(jí), 終端提出警告或終止運(yùn)行該動(dòng)態(tài)加載軟件(步驟S207)。在一實(shí)施例中,上述的API訪問等級(jí)配置表可以在終端出廠時(shí)預(yù)置于終端的存儲(chǔ) 空間內(nèi)。于步驟S208,上述的API訪問等級(jí)配置表可以獨(dú)立于上述的步驟201-204的執(zhí)行, 而動(dòng)態(tài)地從驗(yàn)證服務(wù)器100接收更新,以便動(dòng)態(tài)的調(diào)整API的監(jiān)控策略。圖4示出本發(fā)明一實(shí)施例的移動(dòng)終端的動(dòng)態(tài)加載軟件監(jiān)控裝置。參照?qǐng)D4所示,于 移動(dòng)終端200中具有一動(dòng)態(tài)組件系統(tǒng)210,當(dāng)動(dòng)態(tài)加載軟件訪問終端API時(shí),動(dòng)態(tài)組件系統(tǒng) 210通過API對(duì)應(yīng)的樁函數(shù)212來調(diào)用位于主程序230中的API跳轉(zhuǎn)表232,從而訪問API 實(shí)體地址。在API對(duì)應(yīng)的樁函數(shù)212與API跳轉(zhuǎn)表232之間設(shè)置本實(shí)施例的監(jiān)控裝置220, 其包含監(jiān)控單元222及數(shù)據(jù)庫224。數(shù)據(jù)庫224保存移動(dòng)終端中的各個(gè)動(dòng)態(tài)加載軟件的標(biāo) 識(shí)與其API訪問等級(jí)值,這些數(shù)據(jù)例如是在動(dòng)態(tài)加載軟件通過驗(yàn)證(若需要驗(yàn)證的話)時(shí) 保存。監(jiān)控單元222中預(yù)置并維護(hù)API等級(jí)訪問配置表226,當(dāng)動(dòng)態(tài)加載軟件訪問終端API 時(shí),在從API對(duì)應(yīng)的樁函數(shù)212通過API跳轉(zhuǎn)表232訪問API實(shí)體地址前,監(jiān)控單元222調(diào) 用API訪問等級(jí)配置表226及數(shù)據(jù)庫224對(duì)該API進(jìn)行訪問等級(jí)檢驗(yàn),如果沒有越級(jí)訪問 (即動(dòng)態(tài)加載軟件的API訪問等級(jí)值高于或等于要訪問的API的訪問等級(jí)值),則允許訪問 API實(shí)體,如果發(fā)生越級(jí)訪問(即動(dòng)態(tài)加載軟件的API訪問等級(jí)值要訪問的API的訪問等級(jí) 值),系統(tǒng)告警或中止運(yùn)行。圖5示出本發(fā)明一實(shí)施例的監(jiān)控單元的詳細(xì)監(jiān)控流程。于步驟S31,監(jiān)控單元222 通過數(shù)據(jù)庫224,獲取該動(dòng)態(tài)加載軟件的API訪問等級(jí)值A(chǔ) ;于步驟S32,監(jiān)控單元222進(jìn)一 步從API等級(jí)配置表226獲取要訪問的API函數(shù)在配置表中的設(shè)置等級(jí)值B;然后于步驟 S33,比較A、B值,判斷是否越級(jí)訪問。于步驟S34,當(dāng)越級(jí)時(shí)轉(zhuǎn)入步驟S36,發(fā)出告警或中止 軟件運(yùn)行,當(dāng)沒有越級(jí)時(shí)轉(zhuǎn)入步驟S35,查找該API的實(shí)體地址,該動(dòng)態(tài)加載軟件本次系統(tǒng) API訪問成功,軟件繼續(xù)運(yùn)行(步驟S37)。例如,動(dòng)態(tài)加載軟件在測(cè)試及數(shù)字簽名時(shí)API訪問等級(jí)值被設(shè)定是3,當(dāng)該軟件在終端下載并驗(yàn)證合法然后運(yùn)行時(shí),需要訪問API_n()這個(gè)API,此時(shí)監(jiān)控單元222查詢?cè)?API在等級(jí)配置表226中的等級(jí)值是4,比較得出3比4小(假如設(shè)定1為最低等級(jí),其后 數(shù)值越大等級(jí)越高),判斷得出動(dòng)態(tài)軟件試圖訪問比其等級(jí)高的API,亦即發(fā)生越級(jí)訪問, 訪問被阻止;如果該API在等級(jí)配置表中值是2,則沒有越級(jí)訪問,訪問被許可。以上等級(jí)監(jiān)控過程主要是通過在平臺(tái)虛接口向平臺(tái)API實(shí)體函數(shù)的映射過程中 增加檢測(cè)來實(shí)現(xiàn)的,不會(huì)涉及到任何原有API模塊的修改。通過本方案,終端平臺(tái)無須對(duì)原 有API自身進(jìn)行任何修改,而是通過增加API訪問等級(jí)監(jiān)控裝置來完成對(duì)API的訪問等級(jí) 監(jiān)控保護(hù)。隨著終端平臺(tái)的新增功能需要以及原有API的重要性發(fā)生變化從而需要發(fā)布給 低等級(jí)的開發(fā)資質(zhì)群體,終端平臺(tái)廠商需要對(duì)API訪問等級(jí)控制策略進(jìn)行調(diào)整。調(diào)整主要 包含兩方面工作1)將最新的API等級(jí)配置信息發(fā)布給相應(yīng)資質(zhì)的軟件開發(fā)群體(以下簡(jiǎn)稱CP, content provider),CP將根據(jù)新的API等級(jí)策略,一方面對(duì)原有軟件進(jìn)行升級(jí)并發(fā)布升級(jí) 版本供用戶下載使用;另一方面,新開發(fā)的軟件將按最新的API等級(jí)策略進(jìn)行開發(fā),確保動(dòng) 態(tài)軟件和API配置調(diào)整同步進(jìn)行;2)終端平臺(tái)廠商根據(jù)新的終端功能和新的API訪問等級(jí)配置表通過空口的方式 對(duì)用戶終端軟件進(jìn)行更新,例如參照?qǐng)D2的步驟103所示,通過驗(yàn)證服務(wù)器100向移動(dòng)終端 200發(fā)布訪問等級(jí)配置表的更新,確保用戶終端的API訪問等級(jí)配置表保持最新。例如但不限于,終端平臺(tái)廠商可以DM (Device Management,指0MA組織的設(shè)備管 理業(yè)務(wù))的方式更新用戶終端的固件,從而更新用戶終端的API訪問等級(jí)配置表。具體方 式是終端平臺(tái)廠商制作包含新的API訪問等級(jí)配置表等信息的新的差分包(固件升級(jí)包), 升級(jí)用戶終端固件。通過DM方式升級(jí)用戶終端固件的示例圖如圖6和圖7所示。這一過程中所涉及 的經(jīng)過調(diào)整的終端API訪問等級(jí)配置表示例如表2所示表2調(diào)整后的系統(tǒng)API配置表示例 另外,隨著第三方開發(fā)群體的軟件使用狀況,終端平臺(tái)廠商同時(shí)也可對(duì)開發(fā)者的資質(zhì)進(jìn)行調(diào)整(比如中級(jí)開發(fā)資質(zhì)廠商升級(jí)為高級(jí)開發(fā)資質(zhì)廠商,其軟件在進(jìn)行簽名時(shí)所 添加的API等級(jí)訪問字段也進(jìn)行相應(yīng)的更新)。 雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技 術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護(hù)范 圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
權(quán)利要求
一種移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,包括設(shè)定移動(dòng)終端的多個(gè)API訪問等級(jí)值,不同的API訪問等級(jí)值有權(quán)訪問的移動(dòng)終端中的API范圍不同;對(duì)動(dòng)態(tài)加載軟件添加API訪問等級(jí)值字段,以賦予一API訪問等級(jí)值;發(fā)布該動(dòng)態(tài)加載軟件;創(chuàng)建并發(fā)布一API訪問等級(jí)配置表,該API訪問等級(jí)配置表包含移動(dòng)終端中的各個(gè)API及其對(duì)應(yīng)的設(shè)定API訪問等級(jí)值;其中該API訪問等級(jí)值與該API訪問等級(jí)配置表用以作為移動(dòng)終端監(jiān)控動(dòng)態(tài)加載軟件對(duì)API的訪問的依據(jù)。
2.如權(quán)利要求1所述移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,其特征在于,根據(jù)動(dòng)態(tài)加載軟件的開發(fā)者資質(zhì)設(shè)定所述多個(gè)API訪問等級(jí)值。
3.如權(quán)利要求1所述移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,其特征在于,API訪問等級(jí) 值越高,有權(quán)訪問的移動(dòng)終端中的API范圍越大,并且高的API訪問等級(jí)值有權(quán)訪問的API 范圍,包含低的API訪問等級(jí)值有權(quán)訪問的API范圍。
4.如權(quán)利要求1所述移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,其特征在于,對(duì)動(dòng)態(tài)加載 軟件添加API訪問等級(jí)值字段之后還包括對(duì)包含該API訪問等級(jí)值的動(dòng)態(tài)加載軟件進(jìn)行數(shù) 字簽名。
5.如權(quán)利要求1所述移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,其特征在于,還包括,向移 動(dòng)終端發(fā)布對(duì)該API訪問等級(jí)配置表的更新。
6.如權(quán)利要求5所述移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,其特征在于,通過固件升 級(jí)包向移動(dòng)終端發(fā)布對(duì)該API訪問等級(jí)配置表的更新。
7.如權(quán)利要求2所述移動(dòng)終端的動(dòng)態(tài)加載軟件的驗(yàn)證方法,其特征在于,還包括,向動(dòng) 態(tài)加載軟件的開發(fā)者發(fā)布對(duì)該API訪問等級(jí)配置表的更新,其中動(dòng)態(tài)加載 軟件根據(jù)更新后 的API訪問等級(jí)配置表升級(jí)或開發(fā)。
8.一種移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控方法,包括獲取動(dòng)態(tài)加載軟件,該動(dòng)態(tài)加載軟件包含一 API訪問等級(jí)值,該API訪問等級(jí)值對(duì)應(yīng)一 移動(dòng)終端中的API訪問范圍;當(dāng)安裝該動(dòng)態(tài)加載軟件時(shí),保存動(dòng)態(tài)加載軟件的標(biāo)識(shí)與該API訪問等級(jí)值;當(dāng)動(dòng)態(tài)加載軟件于移動(dòng)終端運(yùn)行時(shí),獲取該動(dòng)態(tài)加載軟件的API訪問等級(jí)值,根據(jù)一 API訪問等級(jí)配置表監(jiān)控該動(dòng)態(tài)加載軟件對(duì)移動(dòng)終端中的API的訪問,其中該API訪問等級(jí) 配置表包含 動(dòng)終端中的各個(gè)API及其對(duì)應(yīng)的設(shè)定API訪問等級(jí)值。
9.如權(quán)利要求8所述的移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控方法,其特征在于,當(dāng)該動(dòng)態(tài) 加載軟件的API訪問等級(jí)值高于或等于該設(shè)定API訪問等級(jí)值時(shí),允許該動(dòng)態(tài)加載軟件訪 問該API,當(dāng)該動(dòng)態(tài)加載軟件的API訪問等級(jí)值低于該設(shè)定API訪問等級(jí)值時(shí),提出警告或 終止運(yùn)行該動(dòng)態(tài)加載軟件。
10.如權(quán)利要求8所述的移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控方法,其特征在于,當(dāng)安裝該 動(dòng)態(tài)加載軟件時(shí),還包括對(duì)動(dòng)態(tài)加載軟件進(jìn)行數(shù)字簽名驗(yàn)證,并在驗(yàn)證通過時(shí)保存動(dòng)態(tài)加 載軟件的標(biāo)識(shí)與該API訪問等級(jí)值。
11.如權(quán)利要求8所述的移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控方法,其特征在于,還包括接收對(duì)該API訪問等級(jí)配置表的更新。
12.如權(quán)利要求11所述的移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控方法,其特征在于,通過固 件升級(jí)包對(duì)該API訪問等級(jí)配置表進(jìn)行更新。
13.—種移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控裝置,包括一數(shù)據(jù)庫,在含有API訪問等級(jí)值的動(dòng)態(tài)加載軟件安裝時(shí),保存該動(dòng)態(tài)加載軟件的標(biāo) 識(shí)與該API訪問等級(jí)值,其中該API訪問等級(jí)值對(duì)應(yīng)一移動(dòng)終端中的API訪問范圍;一監(jiān)控單元,當(dāng)動(dòng)態(tài)加載軟件于移動(dòng)終端運(yùn)行時(shí),獲取該動(dòng)態(tài)加載軟件的API訪問等 級(jí)值,并根據(jù)一 API訪問等級(jí)配置表監(jiān)控該動(dòng)態(tài)加載軟件對(duì)移動(dòng)終端中的API的訪問,其中 該API訪問等級(jí)配置表包含移動(dòng)終端中的各個(gè)API及其對(duì)應(yīng)的設(shè)定API訪問等級(jí)值。
14.如權(quán)利要求13所述的移動(dòng)終端的動(dòng)態(tài)加載軟件的監(jiān)控裝置,其特征在于,當(dāng)該動(dòng) 態(tài)加載軟件的API訪問等級(jí)值高于或等于該設(shè)定API訪問等級(jí)值時(shí),該監(jiān)控單元允許該動(dòng) 態(tài)加載軟件訪問該API,當(dāng)該動(dòng)態(tài)加載軟件的API訪問等級(jí)值低于該設(shè)定API訪問等級(jí)值 時(shí),該監(jiān)控單元提出警告或終止運(yùn)行該動(dòng)態(tài)加載軟件。
全文摘要
本發(fā)明涉及移動(dòng)終端的動(dòng)態(tài)加載軟件驗(yàn)證方法、監(jiān)控方法和裝置,以更加靈活的方式進(jìn)行訪問控制策略的控制。終端平臺(tái)廠商對(duì)動(dòng)態(tài)加載軟件進(jìn)行數(shù)字簽名,并賦予一API訪問等級(jí)值,該API訪問等級(jí)值對(duì)應(yīng)一移動(dòng)終端中的API訪問范圍。在移動(dòng)終端側(cè),獲取經(jīng)過數(shù)字簽名的動(dòng)態(tài)加載軟件。當(dāng)安裝該動(dòng)態(tài)加載軟件時(shí),對(duì)動(dòng)態(tài)加載軟件進(jìn)行數(shù)字簽名驗(yàn)證,并保存通過驗(yàn)證的動(dòng)態(tài)加載軟件的標(biāo)識(shí)與該API訪問等級(jí)值。動(dòng)態(tài)加載軟件于移動(dòng)終端運(yùn)行時(shí),獲取該動(dòng)態(tài)加載軟件的API訪問等級(jí)值,根據(jù)一API訪問等級(jí)配置表監(jiān)控該動(dòng)態(tài)加載軟件對(duì)移動(dòng)終端中的API的訪問,該API訪問等級(jí)配置表包含為移動(dòng)終端中的各個(gè)API所設(shè)定的API訪問等級(jí)值,并可通過例如固件升級(jí)的方式進(jìn)行更新。
文檔編號(hào)H04W88/02GK101854624SQ20091004871
公開日2010年10月6日 申請(qǐng)日期2009年4月2日 優(yōu)先權(quán)日2009年4月2日
發(fā)明者葉文虎, 方加元 申請(qǐng)人:聯(lián)芯科技有限公司