專利名稱:終端應用軟件分發方法及系統的制作方法
技術領域:
本發明涉及一種終端應用軟件分發方法及系統,屬于智能終端技術領域。
背景技術:
智能終端是指智能手機、電子書閱讀器等終端設備。智能終端的安全問題主要包 括用戶數據(例如聯系人、賬號、密碼、照片等)的安全、終端資源(例如攝像設備、錄音 設備、用戶身份卡、網絡連接設備、存儲設備等)的安全、網絡資源(例如網上存儲的聯系 人、照片等資源)的安全等。智能終端的發展離不開智能終端上的應用軟件的發展壯大。應用軟件由各種各樣 的軟件提供商或軟件設計人員設計,出于安全考慮,用戶需要可信的應用軟件下載途徑,針 對這種情況,多家終端設備商、系統制造商或運營商提供多種管控應用軟件分發的技術方案。例如,美國蘋果公司的軟件商店技術方案是解決應用軟件分發的方案之一。蘋果 公司終端軟件的開發者把開發的應用軟件上傳給蘋果公司,蘋果公司審核成功后,把應用 軟件放在軟件商店中,供蘋果公司終端用戶下載和使用。蘋果公司的智能終端用戶信任蘋 果公司的審核結果,可以較安心的從蘋果公司的軟件商店中下載應用軟件。再例如,美國谷歌公司的軟件商店技術方案也是解決應用軟件分發的方案之一。 與蘋果公司的相關方案相比,谷歌公司不審核開發者的應用軟件。因此,谷歌公司終端的用 戶并不能完全信任谷歌公司的軟件商店上的應用軟件。現有的應用軟件分發方案雖然在一定程度上解決了應用軟件的分發問題,但上述 方案只能用于特定公司的特定終端產品,而其它公司不能使用,因此不具有通用性,其使用 范圍非常有限。
發明內容
本發明提供一種終端應用軟件分發方法及系統,用以提高軟件分發的通用性和安 全性。本發明一方面提供一種終端應用軟件分發方法,其中包括通過應用開發終端將開發者注冊成為開發者社區的用戶;由所述應用開發終端開發應用軟件;由開發者測試終端測試所述應用軟件;由所述應用開發終端對通過測試的應用軟件進行打包并提交給所述開發者社區。本發明另一方面提供一種終端應用軟件分發系統,其中包括應用開發終端、開發 者測試終端及開發者社區服務器,其中所述應用開發終端用于將開發者注冊成為開發者社區的用戶,并開發應用軟件;所述開發者測試終端用于測試所述應用軟件;所述應用開發終端還用于對通過所述測試的應用軟件進行打包并提交給所述開發者社區服務器;所述開發者社區服務器用于保存由應用開發終端提交的所述應用軟件以供下載。本發明無需限定于特定的終端產品,具有較高的通用性及安全性,可以由運營商 搭建可管理、可運營、安全的應用軟件可控分發體系;并且,該方法從開發者開發和測試應 用軟件的階段便可以控制應用軟件的分發,因此具有較高的可控性。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發 明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根 據這些附圖獲得其他的附圖。圖1為本發明所述四層可控軟件分發體系結構的分層示意圖;圖2為本發明所述終端應用軟件分發方法實施例的流程圖;圖3為圖2所示步驟100的具體步驟信令圖;圖4A為圖2所示步驟300的具體步驟流程圖;圖4B為圖4A所示步驟310的具體步驟流程圖;圖4C為圖4A所示步驟330的具體步驟流程圖;圖4D為圖4A所示步驟350的具體步驟流程圖;圖5A為圖4A所示步驟320中所述打包后形成的測試用安裝包的數據格式示意 圖;圖5B為圖5A所示數據格式中相應的索引格式示意圖;圖6為本發明所述終端應用軟件分發系統實施例的結構示意圖;圖7為圖6所示應用開發終端10的一種可選結構示意圖;圖8為圖6所示開發者社區服務器30的一種可選結構示意圖;圖9為圖6所示應用開發終端10的另一種可選結構示意圖;圖10為圖6所示開發者測試終端20的可選結構示意圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例 中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員 在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。首先介紹為本實施例所述方法構建的四層可控軟件分發體系結構,如圖1所示, 包括1、安全系統層該層主要包括簽名服務系統。簽名服務系統是應用可控分發安全體系中的基礎安 全設施。簽名服務系統為開發者社區提供證書與密鑰管理服務、開發者證書簽名和驗證服 務、應用軟件簽名與驗證服務。2、業務系統層
該層主要包括開發者社區。在業務系統層,可以有多個開發者社區。一個簽名服 務系統可以同時為多個開發者社區提供安全控制服務。開發者社區管理開發者的信息,包 括開發者描述信息、開發者證書、開發者密鑰、開發者終端信息、開發者級別信息等。3、終端層 該層主要包括開發者測試終端和應用開發終端。開發者使用應用開發終端來開發 終端應用軟件,使用開發者測試終端測試開發的終端應用軟件。開發者社區為開發者的應 用開發終端提供應用安全控制服務。4、用戶層該層主要包括終端應用軟件的開發者和使用者(用戶)。開發者可以有多個開發 者測試終端或多個應用開發終端。使用者可以有多個用戶終端。用戶終端與開發者測試終 端可以相同。開發者使用開發者應用開發終端開發終端應用軟件,使用開發者測試終端測 試應用軟件。使用者在用戶終端上使用終端應用軟件。在上述四層可控軟件分發體系結構中,使用證書標識各個功能實體。使用簽名服 務系統證書(也稱為根證書)標識簽名服務系統。使用開發者社區證書標識開發者社區。 使用開發者證書標識終端應用軟件的開發者,使用用戶證書標識終端應用軟件的使用者。 使用根證書簽名開發者社區證書。使用開發者社區證書簽名開發者證書。用戶證書可以由 根證書簽名,也可以由開發者社區證書簽名。具體可以使用常見的證書格式,例如)(509。與 證書對應的是,相關功能實體的公鑰和私鑰。簽名服務系統生成和管理自己的公鑰和私鑰。 開發者社區、開發者、用戶的證書對應的公鑰和私鑰可以由簽名服務系統生成,然后通過安 全途徑分發給相應的功能實體。其中,所有證書使用相同的密鑰和摘要算法。在證書中,需 要標識使用的密鑰算法和摘要算法。圖2為本發明所述終端應用軟件分發方法實施例的流程圖,如圖所示,該方法包 括如下步驟步驟100,開發者通過應用開發終端注冊成為開發者社區的用戶。通過本步驟,所述開發者可以得到開發者證書和密鑰。步驟200,由應用開發終端開發應用軟件。具體地,開發者可以使用應用開發終端的應用編程工具編輯、編譯、鏈接和測試應 用軟件,并使用應用開發終端編輯和測試能力文件。步驟300,由開發者測試終端測試應用軟件。具體地,開發者在開發者測試終端上測試應用軟件之前,或者向開發者社區提交 應用軟件之前,可以先對應用軟件打包生成測試用安裝包,然后把測試用安裝包推送到開 發者測試終端或者開發者社區。該測試用安裝包中包含應用軟件、能力文件和簽名文件。步驟400,由應用開發終端對通過測試的應用軟件進行打包并提交給開發者社區。此后,用戶終端可以到相應的開發者社區下載獲取應用軟件,以實現終端應用軟 件的分發。本實施例所述終端應用軟件的分發方法無需限定于特定的終端產品,具有較高的 通用性及安全性,可以由運營商搭建可管理、可運營、安全的應用軟件可控分發體系;并且, 該方法從開發者開發和測試應用軟件的階段便可以控制應用軟件的分發,因此具有較高的 可控性。
如圖3所示,上述步驟100可以具體包括如下步驟步驟101,開發者向應用開發終端發送注冊申請。步驟102,應用開發終端根據約定的加密算法生成證書申請信息。其中,所述證書申請信息包括開發者名稱、開發者描述、公鑰、私鑰、開發者測試終 端的硬件標識等信息。所述開發者測試終端的硬件標識可以是相關終端的CPU序列號、硬 盤序列號、網絡設備號、用戶身份卡設備號等,或者由這些硬件設備號生成的摘要等,用于 在開發者測試終端測試時,應用安裝引擎識別被測試應用是否可以安裝到開發者測試終端 的依據。因此,要求應用開發終端與開發者測試終端的應用安裝引擎使用相同的算法生成 硬件標識號。開發者證書對應的公鑰與私鑰可以由簽名服務系統生成,然后通過安全途徑 分發給開發者應用開發終端。所述約定的加密算法可以采用橢圓曲線密碼編碼(Elliptic Curves Cryptography,簡稱ECC)算法及公鑰加密算法(RSA)等算法,這些算法可以由簽 名服務系統約定。步驟103,應用開發終端向開發者社區發送包含上述證書申請信息的證書申請。步驟104,開發者社區根據所述證書申請判斷是否接受開發者的注冊申請,如果 接受,則根據所述證書申請信息及與簽名服務系統的約定生成開發者證書,否則轉至步驟 108。其中,所述開發者證書的內容至少包括1)證書格式與版本,可以采用X. 509格式;2)證書編碼方法,可以使用BASE64編碼方式;3)簽名算法,可以使用無線局域網鑒別和保密基礎結構(Wireless LANAuthentication and Privacy Infrastructure, :WAPI)ECC ;4)摘要算法,可以采用縮微圖算法(SHA-I);5)證書序列號,由簽名服務系統生成,可以是隨機數;6)證書主題,可以包括國家標識、開發者類型、開發者測試終端的硬件標識串(可 以多個)、開發者的安全級別、開發者在開發者社區的賬號等,為了便于說明,在本實施例中 將開發者證書中包含的上述開發者測試終端的硬件標識串簡稱為第一硬件標識串;7)證書的簽名機構標識,也即開發者社區的標識;8)證書摘要,用于檢測開發者證書。開發者證書對應的公鑰存儲在開發者證書中。開發者證書對應的私鑰存儲在應用 開發終端的安全存儲地點,并可以以加密的方式存儲。應用開發終端提供安全存儲和訪問 開發者證書對應的私鑰的方法和設施。步驟105,開發者社區請求簽名服務系統簽名開發者證書。步驟106,簽名服務系統對開發者證書進行簽名,并將簽名后的開發者證書反饋給 開發者社區。其中,簽名服務系統可以使用開發者社區證書及對應的私鑰簽名開發者證書,也 可以使用根證書及對應的私鑰簽名開發者證書。如果由簽名服務系統生成開發者證書對應 的公鑰和私鑰,則可以一并把所述公鑰和私鑰反饋給開發者社區。具體的簽名過程可以包括簽名服務系統根據開發者社區提供的證書申請信息生 成開發者證書A ;簽名服務系統把開發者證書A的內容作為輸入源,按約定的摘要算法(例如,SHA-1)計算開發者證書的摘要,得到摘要A ;簽名服務系統使用開發者社區證書對應的 私鑰(或者根證書對應的私鑰)按約定的摘要簽名算法(例如,ECC)加密摘要A得到摘要 B ;簽名服務系統把摘要B加入到開發者證書A的約定的地方,得到開發者證書B。此時,開 發者證書B即是簽名后的開發者證書。步驟107,開發者社區存儲簽名后的開發者證書、開發者公鑰等信息。如果由簽名服務系統生成開發者證書對應的公鑰和私鑰,則開發者社區也需要存 儲所述開發者私鑰。步驟108,開發者社區反饋證書申請處理結果給應用開發終端。具體地,如果開發者已注冊并已有開發者證書,則在步驟104中的開發者社區拒 絕開發者的證書申請,相應地在本步驟中的證書申請處理結果則表明證書申請失敗;如果 通過步驟105 107成功申請到證書,則在本步驟中的證書申請處理結果則表明證書申請 成功。步驟109,應用開發終端存儲開發者社區的證書申請處理結果。如果開發者社區接受開發者的證書申請,則存儲開發者證書以及相應的公鑰與私
朗等{曰息。步驟110,應用開發終端向開發者反饋注冊申請處理結果。具體地,如果證書申請成功,則該注冊申請處理結果為注冊申請成功;如果證書申 請失敗,則該注冊申請處理結果為注冊申請失敗。如圖4A所示,上述步驟300可以具體包括如下步驟步驟310,應用開發終端根據所述應用軟件生成簽名文件。具體地,可以通過應用開發終端的簽名打包工具根據約定的規則,以及應用軟件、 能力文件、開發者證書、開發者私鑰等信息,生成簽名文件。簽名文件的內容至少包括1)開發者證書相關的內容開發者證書的類型、開發者證書的編碼方式、開發者 證書內容,開發者證書作為簽名證書;2)開發者社區證書相關的內容開發者社區證書的類型、開發者社區證書的編碼 方式、開發者社區證書內容,開發者社區證書作為可信任的證書;3)應用軟件摘要相關的內容應用軟件摘要的編碼方式、標識與摘要內容;4)能力文件摘要相關的內容能力文件摘要的編碼方式、標識與摘要內容;5)摘要算法相關的內容摘要算法標識,簽名文件中使用的摘要算法相同;6)簽名文件摘要相關的內容簽名文件摘要的編碼方式、摘要內容。簽名文件可以使用可擴展標記語言(Extens ible Markup Language,簡稱XML) 文檔格式。在具體實施例中,可以使用下表中的描述方法,如下所示1)簽名文件使用XML文檔格式,UTF-8編碼;2)證書使用X509格式,BASE64編碼;3)摘要算法使用WAPI-SHA1算法,BASE64編碼;4)簽名的加密算法使用ECC算法,BASE 64編碼。具體編碼內容如下< ? xml version = “ 1.0〃 encoding = “ utf-8 “ ? >< !—開發者證書一>0100]<SignCert type = “ x509" encoding = “ base64" >......</SignCert>
0101]< !-開發者社區證書一>
0102]<TrustCert type = “ x509〃 encoding = “ base64〃 >......</TrustCert>
0103]< !-應用軟件摘要與能力文件摘要一>
0104]〈Digests encoding =“ base64〃 >
0105]
0106]
<DigestValue name = ‘ application ‘ >......</DigestValue>
>......</DigestValue>
<DigestValue name = “ menifest'
0107]〈/Digests〉
0108]< !-摘要算法一>
0109]〈Algorithm name = 〃 WAPI-SHAl " />
0110]< !—簽名文件摘要一>
0111]〈Signature encoding =" base64" algorithm = "ECC ”
0112]>......〈/Signature〉
0113]</Signed>
0114]步驟320,根據所述簽名文件生成測試用安裝包。
0115]具體地,應用開發終端的簽名打包工具把應用軟件、能力文件、簽名文件按約定的 規則組合成一個文件,組合的文件稱為應用軟件包,在測試時,也稱為測試用安裝包。該測 試用安裝包存儲的數據可以依次為應用軟件數據包、能力文件數據包、簽名文件數據包、 應用軟件數據包索引、能力文件數據包索引、簽名文件數據包索引、索引數量、版本號。打包后形成的測試用安裝包的數據格式如圖5A所示,其相應的索引格式如圖5B 所示。該數據格式既適用于打包應用軟件,也適用于打包授權許可文件。如圖5A所示,數據被打包后,整體數據包分為四個部分數據區、索引區、索引數 量與版本號。其中數據區依次存儲數據包,例如,在打包應用軟件時,數據區存儲應用軟 件數據、能力文件數據、簽名文件數據。這些數據可以壓縮,也可以不壓縮。數據區內的數 據包不分先后順序;索引區依次存儲數據區內數據包的索引信息,每個索引由16個字節構 成,如圖5B所示,依次存儲數據包的類型G字節)、數據包距整體數據包的文件頭的字節偏 移量G字節)、數據包的字節長度G字節)、保留字節G字節)。數據包的類型可以根據 業務需要定義,例如,數據包可以是應用軟件、能力文件、簽名文件、購買信息等;索引數量 存儲整體數據包中包含的索引的個數;版本號存儲整體數據包的版本號。步驟330,根據所述測試用安裝包生成測試用授權許可文件。具體地,可以由應用開發終端的測試授權工具生成上述測試用授權許可文件。該 測試用授權許可文件的內容至少包括1)開發者證書相關的內容開發者證書的類型、開發者證書的編碼方式、開發者 證書內容,開發者證書作為簽名證書;2)購買信息的摘要簽名相關的內容購買信息摘要的編碼方式、標識與摘要內 容;3)摘要算法相關的內容摘要算法標識,簽名文件中使用的摘要算法相同。授權許可文件可以使用XML文檔格式。在具體實施例中,可以使用下表中的描述 方法,如下所示
100124]
0125]
0126]
0127]
0128]
0129]
0130]
0131]
0132]
0133]
0134]
1)授權許可文件使用XML文檔格式,UTF-8編碼;
2)證書使用)(509格式,BASE64編碼;
3)摘要算法使用WAPI-SHA1算法,BASE64編碼;
4)簽名的加密算法使用ECC算法,BASE64編碼。 具體編碼內容如下
<? xml version = “ 1.0〃 encoding = “ utf-8 “ ? >
<!-開發者證書一>
〈SignCert type = 〃 x509〃 encoding = 〃 base64〃 >......</SignCert>
<!-購買信息簽名一>
algorithm =”ECC”> >......</DigestValue>
//
〈Digests encoding = “ base64〃 〈DigestValue name = “ license'
0135]〈/Digests〉
0136]〈!一摘要算法一>
0137]〈Algorithm name =〃 WAPI-SHA1" /> </Signed>
步驟340,將所述測試用安裝包及所述測試用授權許可文件傳輸給所述開發者測
0138]
0139]
試終端
0140]
0141]
具體地,可以通過推送或復制等方式傳輸給開發者測試終端。 步驟350,當確認所述授權許可文件的合法性及有效性后,在所述開發者測試終端 上安裝并測試所述測試用安裝包。具體地,可以由開發者測試終端的應用安裝引擎安裝所述測試用安裝包并驗證開 發者證書。其中,應用安裝引擎通過授權許可文件中的簽名證書判斷授權許可文件是由開 發者簽名,還是由其它功能實體簽名。簽名證書中包含證書的類型。如果簽名證書不由開 發者簽名,則不認為是測試用安裝。測試用授權許可文件中的簽名證書與測試用安裝包簽 名文件中的簽名證書應該相同。在簽名證書中,包含證書簽發機構的信息。應用安裝引擎 通過所述簽發機構驗證所述開發者證書。具體可以通過驗證開發者證書中的簽名來確認所 述授權許可文件的合法性及有效性。如圖4B所示,上述步驟310可以包括步驟311,生成應用軟件的摘要。具體可以把整個或部分應用軟件的內容作為輸入源,按約定的摘要算法,生成應 用軟件摘要。步驟312,生成所述應用軟件相應能力文件的摘要。具體可以把整個或部分能力文件的內容作為輸入源,按約定的摘要算法,生成能 力文件摘要。步驟313,計算所述應用軟件的摘要與所述能力文件的摘要的簽名信息。具體可以把應用軟件的摘要與能力文件的摘要串連作為輸入源,按約定的摘要算 法,生成簽名文件摘要,然后,按約定的加密算法,使用開發者的私鑰加密簽名文件摘要,并 把加密后的摘要作為新的簽名文件摘要。在整個應用可控分發體系中,摘要算法一致,可以 使用SHA-I算法。在整個應用可控分發體系中,加密算法一致,可以使用ECC算法。
步驟314,根據所述簽名信息生成簽名文件。如圖4C所示,上述步驟330可以包括步驟331,根據所述測試用安裝包生成購買信息。其中,該購買信息也可稱為使用信息。步驟332,按約定的摘要算法及摘要加密算法,生成加密后的所述購買信息的摘要。具體地,根據購買信息的部分或全部內容作為輸入源,按約定的摘要算法,生成購 買信息摘要,然后按約定的摘要加密算法,使用開發者的私鑰加密購買信息摘要,并把加密 后的購買信息摘要作為購買信息的摘要。步驟333,根據所述購買信息的摘要按約定的規則生成測試用授權許可文件。如圖4D所示,上述步驟350可以包括步驟351,從所述測試用安裝包中分離出應用軟件、能力文件和簽名文件,并找到 相應的安裝包標識。其中,檢查測試用安裝包以及分離測試用安裝包的內容,與前述簽名應用軟件,以 及打包應用軟件的過程相同,但順序相反。所述安裝包標識由應用開發終端的應用編程工 具生成,可以采用全局用戶標識(⑶I)方式生成,以保證安裝包標識的唯一性。步驟352,根據所述安裝包標識查找相應的測試用授權許可文件。其中,測試用安裝包和測試用授權許可文件可以放在同一個目錄,并使用相同的 名字,但具有不同的擴展名。應用安裝引擎在查找測試用授權許可文件時,可以直接在測試 用安裝包所在的目錄查找相同名字的測試用授權許可文件。步驟353,對所述測試用授權許可文件進行檢查,當該測試用授權許可文件中的簽 名證書與所述簽名文件中的簽名證書相同且均為開發者證書時,則繼續執行步驟354;否 則執行步驟357。具體地,可以檢查該測試用授權許可文件是否完整、一致和有效,以及是否合法。 其中,檢查該測試用授權許可文件的方法,與簽名該測試用授權許可文件的過程相同,但執 行順序相反。步驟354,從所述開發者證書中分離出第一硬件標識串,并獲取所述開發者測試終 端的第二硬件標識串。其中,具體獲取步驟與圖3所示過程相似,此處不再贅述。步驟355,判斷所述第一硬件標識串與所述第二硬件標識串是否匹配,當不匹配 時,則表明該測試用安裝包不能在該開發者測試終端中安裝,導致安裝失敗,執行步驟357 ; 否則繼續執行步驟356。步驟356,安裝所述應用軟件及能力文件。其中,安裝應用軟件的具體方法此處不做限定。安裝能力文件時,要將能力文件或 其容復制到約定的地方。步驟357,顯示安裝結果。如果安裝成功,則顯示測試成功的安裝結果;如果安裝失敗,則顯示測試失敗的安 裝結果。圖6為本發明所述終端應用軟件分發系統實施例的結構示意圖,該系統能夠實現上述各方法實施例所述的方法。如圖所示,該系統至少包括應用開發終端10、開發者測試 終端20及開發者社區服務器30,其工作原理如下開發者使用通過所述應用開發終端10將開發者注冊成為開發者社區的用戶,并 開發應用軟件;通過本步驟,可以得到開發者證書和密鑰,具體地,開發者可以使用應用開 發終端10的應用編程工具編輯、編譯、鏈接和測試應用軟件,并使用應用開發終端編輯和 測試能力文件。開發者通過開發者測試終端20測試所述應用軟件。具體地,開發者在開發者測試 終端上測試應用軟件之前,或者向開發者社區提交應用軟件之前,可以先對應用軟件打包 生成測試用安裝包,然后把測試用安裝包推送到開發者測試終端或者開發者社區。該測試 用安裝包中包含應用軟件、能力文件和簽名文件。此后,所述開發者還通過應用開發終端10對通過所述測試的應用軟件進行打包 并提交給所述開發者社區服務器30,由該開發者社區服務器30保存由應用開發終端10提 交的所述應用軟件以供用戶終端下載。從而實現終端應用軟件的分發。另外,如圖6所示,所述系統還可以進一步包括簽名服務系統40 ;如圖7所示,所 述應用開發終端10可以具體包括加密模塊11、證書申請模塊12、存儲模塊13及結果反 饋模塊14 ;如圖8所示,所述開發者社區服務器30包括證書生成模塊31及證書反饋模塊 32,其注冊過程的工作原理說明如下當所述應用開發終端10接收到來自于開發者的注冊申請后,應用開發終端10的 加密模塊11根據約定的加密算法生成證書申請信息,有關證書申請信息的說明可參見上 述步驟102的相關說明,此處不再贅述;證書申請模塊12向所述開發者社區服務器30發送 包含所述證書申請信息的證書申請;所述開發者社區服務器30中的證書生成模塊31根據 所述證書申請信息及與簽名服務系統40的約定生成開發者證書,通過所述簽名服務系統 40對證書生成模塊31的所述開發者證書進行簽名后,由證書反饋模塊32將所述簽名服務 系統40簽名后的開發者證書反饋給所述應用開發終端10。此后,應用開發終端10的存儲模塊13存儲來自于所述開發者社區服務器的開發 者證書,并通過結果反饋模塊14向所述開發者社區服務器30反饋注冊申請處理結果,從而 完成注冊過程。如圖9所示,所述應用開發終端10可以具體包括簽名文件生成模塊15、安裝包 生成模塊16、許可文件生成模塊17及傳輸模塊18 ;如圖10所示,所述開發者測試終端20 包括分離模塊21、查找模塊22、檢查模塊23、標識串處理模塊對、判斷模塊25和安裝模塊 26。對應用軟件的測試過程說明如下應用開發終端10中的簽名文件生成模塊15根據所述應用軟件生成簽名文件。具 體地,可以通過應用開發終端的簽名打包工具根據約定的規則,以及應用軟件、能力文件、 開發者證書、開發者私鑰等信息,生成簽名文件。有關簽名文件的內容可參見上述步驟310 的相關說明,此處不再贅述。安裝包生成模塊16根據簽名文件生成模塊15生成的所述簽名文件生成測試用安 裝包。有關該測試用安裝包可以參考上述步驟320的相關說明,此處不再贅述。許可文件 生成模塊17根據安裝包生成模塊生成的所述測試用安裝包生成測試用授權許可文件。有 關該測試用授權許可文件可以參考上述步驟330的相關說明,此處不再贅述。
13
傳輸模塊18將安裝包生成模塊16生成的所述測試用安裝包及許可文件生成模塊 17生成的所述測試用授權許可文件傳輸給所述開發者測試終端20。此后,該開發者測試終端20中的分離模塊21從所述測試用安裝包中分離出應用 軟件、能力文件和簽名文件,并找到相應的安裝包標識,其中,檢查測試用安裝包以及分離 測試用安裝包的內容,與前述簽名應用軟件,以及打包應用軟件的過程相同,但順序相反。 所述安裝包標識由應用開發終端的應用編程工具生成,可以采用全局用戶標識(GUI)方式 生成,以保證安裝包標識的唯一性。查找模塊22根據分離模塊21分離出的所述安裝包標識查找相應的測試用授權許 可文件。其中,測試用安裝包和測試用授權許可文件可以放在同一個目錄,并使用相同的名 字,但具有不同的擴展名。應用安裝引擎在查找測試用授權許可文件時,可以直接在測試用 安裝包所在的目錄查找相同名字的測試用授權許可文件。檢查模塊23對所述測試用授權許可文件進行檢查;當檢查模塊23檢查出所述測 試用授權許可文件中的簽名證書與所述簽名文件中的簽名證書相同且均為開發者證書時, 由標識串處理模塊M從所述開發者證書中分離出第一硬件標識串,并獲取所述開發者測 試終端的第二硬件標識串。具體地,可以檢查該測試用授權許可文件是否完整、一致和有 效,以及是否合法。其中,檢查該測試用授權許可文件的方法,與簽名該測試用授權許可文 件的過程相同,但執行順序相反。判斷模塊25判斷所述第一硬件標識串與所述第二硬件標識串是否匹配,當判斷 模塊25判斷出所述第一硬件標識串與所述第二硬件標識串匹配時,由安裝模塊沈在開發 者測試終端20上安裝所述應用軟件及能力文件,以便進行測試。本實施例所述終端應用軟件的分發系統無需限定于特定的終端產品,具有較高的 通用性及安全性,可以由運營商搭建可管理、可運營、安全的應用軟件可控分發體系;并且, 該方法從開發者開發和測試應用軟件的階段便可以控制應用軟件的分發,因此具有較高的 可控性。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序 在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其限制;盡 管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然 可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替 換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精 神和范圍。
權利要求
1.一種終端應用軟件分發方法,其特征在于包括 通過應用開發終端將開發者注冊成為開發者社區的用戶; 由所述應用開發終端開發應用軟件;由開發者測試終端測試所述應用軟件;由所述應用開發終端對通過測試的應用軟件進行打包并提交給所述開發者社區。
2.根據權利要求1所述的方法,其特征在于所述通過應用開發終端將開發者注冊成為 開發者社區的用戶包括所述應用開發終端接收到來自于開發者的注冊申請后,根據約定的加密算法生成證書 申請信息,并向開發者社區發送包含所述證書申請信息的證書申請;所述開發者社區根據所述證書申請信息及與簽名服務系統的約定生成開發者證書; 所述簽名服務系統對開發者證書進行簽名; 所述開發者社區將簽名后的開發者證書反饋給所述應用開發終端; 所述應用開發終端存儲所述開發者證書并向所述開發者社區反饋注冊申請處理結果。
3.根據權利要求1所述的方法,其特征在于所述由開發者測試終端測試所述應用軟件 包括所述應用開發終端根據所述應用軟件生成簽名文件;根據所述簽名文件生成測試用安裝包;根據所述測試用安裝包生成測試用授權許可文件;將所述測試用安裝包及所述測試用授權許可文件傳輸給所述開發者測試終端; 當確認所述授權許可文件的合法性及有效性后,在所述開發者測試終端上安裝并測試 所述測試用安裝包。
4.根據權利要求3所述的方法,其特征在于所述應用開發終端根據所述應用軟件生成 簽名文件包括生成所述應用軟件的摘要;生成所述應用軟件相應能力文件的摘要;計算所述應用軟件的摘要與所述能力文件的摘要的簽名信息;根據所述簽名信息生成簽名文件。
5.根據權利要求3所述的方法,其特征在于所述根據所述測試用安裝包生成測試用授 權許可文件包括根據所述測試用安裝包生成購買信息;按約定的摘要算法及摘要加密算法,生成加密后的所述購買信息的摘要; 根據所述購買信息的摘要按約定的規則生成所述測試用授權許可文件。
6.根據權利要求3所述的方法,其特征在于所述在所述開發者測試終端上安裝并測試 所述測試用安裝包包括從所述測試用安裝包中分離出應用軟件、能力文件和簽名文件,并找到相應的安裝包 標識;根據所述安裝包標識查找相應的測試用授權許可文件;對所述測試用授權許可文件進行檢查,當該測試用授權許可文件中的簽名證書與所述 簽名文件中的簽名證書相同且均為開發者證書時,從所述開發者證書中分離出第一硬件標識串,并獲取所述開發者測試終端的第二硬件標識串;判斷所述第一硬件標識串與所述第二硬件標識串是否匹配,當匹配時,安裝所述應用 軟件及能力文件。
7.—種終端應用軟件分發系統,其特征在于包括應用開發終端、開發者測試終端及開 發者社區服務器,其中所述應用開發終端用于將開發者注冊成為開發者社區的用戶,并開發應用軟件; 所述開發者測試終端用于測試所述應用軟件;所述應用開發終端還用于對通過所述測試的應用軟件進行打包并提交給所述開發者 社區服務器;所述開發者社區服務器用于保存由應用開發終端提交的所述應用軟件以供下載。
8.根據權利要求7所述的系統,其特征在于所述系統還包括簽名服務系統,其中 所述應用開發終端包括加密模塊,用于當所述應用開發終端接收到來自于開發者的注冊申請后,根據約定的 加密算法生成證書申請信息;證書申請模塊,用于向所述開發者社區服務器發送包含所述證書申請信息的證書申請;存儲模塊,用于存儲來自于所述開發者社區服務器的開發者證書; 結果反饋模塊,用于向所述開發者社區服務器反饋注冊申請處理結果; 所述開發者社區服務器包括證書生成模塊,用于根據所述證書申請信息及與簽名服務系統的約定生成開發者證書;證書反饋模塊,用于將所述簽名服務系統簽名后的開發者證書反饋給所述應用開發終端;所述簽名服務系統用于對證書生成模塊生成的所述開發者證書進行簽名。
9.根據權利要求7所述的系統,其特征在于所述應用開發終端包括 簽名文件生成模塊,用于根據所述應用軟件生成簽名文件;安裝包生成模塊,用于根據簽名文件生成模塊生成的所述簽名文件生成測試用安裝包;許可文件生成模塊,用于根據安裝包生成模塊生成的所述測試用安裝包生成測試用授 權許可文件;傳輸模塊,用于將安裝包生成模塊生成的所述測試用安裝包及許可文件生成模塊生成 的所述測試用授權許可文件傳輸給所述開發者測試終端。
10.根據權利要求9所述的系統,其特征在于所述開發者測試終端包括分離模塊,用于從所述測試用安裝包中分離出應用軟件、能力文件和簽名文件,并找到 相應的安裝包標識;查找模塊,用于根據分離模塊分離出的所述安裝包標識查找相應的測試用授權許可文件;檢查模塊,用于對所述測試用授權許可文件進行檢查;標識串處理模塊,用于當檢查模塊檢查出所述測試用授權許可文件中的簽名證書與所述簽名文件中的簽名證書相同且均為開發者證書時,從所述開發者證書中分離出第一硬件 標識串,并獲取所述開發者測試終端的第二硬件標識串;判斷模塊,用于判斷所述第一硬件標識串與所述第二硬件標識串是否匹配; 安裝模塊,用于判斷模塊判斷出所述第一硬件標識串與所述第二硬件標識串匹配時, 安裝所述應用軟件及能力文件。
全文摘要
本發明提供一種終端應用軟件分發方法及系統,其中方法包括通過應用開發終端將開發者注冊成為開發者社區的用戶;由所述應用開發終端開發應用軟件;由開發者測試終端測試所述應用軟件;由所述應用開發終端對通過測試的應用軟件進行打包并提交給所述開發者社區。本發明無需限定于特定的終端產品,具有較高的通用性及安全性,可以由運營商搭建可管理、可運營、安全的應用軟件可控分發體系;并且,該方法從開發者開發和測試應用軟件的階段便可以控制應用軟件的分發,因此具有較高的可控性。
文檔編號H04L29/06GK102065077SQ20101054244
公開日2011年5月18日 申請日期2010年11月11日 優先權日2010年11月11日
發明者加雄偉 申請人:中國聯合網絡通信集團有限公司