專利名稱:實(shí)現(xiàn)軟件安全交付及分發(fā)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件應(yīng)用程序的安全協(xié)議技術(shù),特別涉及軟件的安全交付及分發(fā)的方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)及嵌入式軟件技術(shù)的不斷發(fā)展,終端網(wǎng)絡(luò)化、智能化趨勢(shì)明顯,各種嵌入式終端的處理能力、存儲(chǔ)能力不斷提升,很多終端比如智能手機(jī)、各種PAD類產(chǎn)品及智能電視等已經(jīng)逐漸成為人們的工作及娛樂平臺(tái)。伴隨著各種智能終端的日漸普及,針對(duì)各種智能終端的軟件也大量出現(xiàn),由此出現(xiàn)了眾多的軟件開發(fā)者團(tuán)隊(duì)、獨(dú)立的軟件發(fā)布運(yùn)營商。由于各方利益訴求點(diǎn)不同,針對(duì)軟件的交付、發(fā)布及終端使用存在不少安全問題。對(duì)軟件開發(fā)者來說,高價(jià)值的軟件需要安全交付到軟件發(fā)布運(yùn)營商手中;對(duì)軟件發(fā)布運(yùn)營商來說,也存在著如何有效驗(yàn)證眾多的由自由軟件開發(fā)者交付的軟件,并如何安全可控的將軟件提供給終端用戶的問題;同時(shí),對(duì)終端用戶而言,既要能安全可靠的獲取想要的軟件, 又要能對(duì)軟件的來源合法性和完整性進(jìn)行確認(rèn);另外,一旦軟件運(yùn)行過程中出現(xiàn)安全漏洞, 終端用戶很難界定軟件發(fā)布運(yùn)營商和第三方軟件開發(fā)者之間的責(zé)任。
發(fā)明內(nèi)容
本發(fā)明目的是克服目前軟件的交付及分發(fā)存在安全問題的缺點(diǎn),提供一種實(shí)現(xiàn)軟件安全交付及分發(fā)的方法。本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案是,實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,包括以下步驟a.軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序?qū)υ撥浖M(jìn)行封包、簽名,得到原始開發(fā)者軟件包,再經(jīng)過加密,形成開發(fā)者軟件包,并交付給軟件發(fā)布運(yùn)營商;b.軟件發(fā)布運(yùn)營商接收到開發(fā)者軟件包后,解密獲得原始開發(fā)者軟件包,并對(duì)該原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,若通過簽名驗(yàn)證則進(jìn)入下一步,若未通過簽名驗(yàn)證則提示失敗并退出;c.軟件發(fā)布運(yùn)營商在適當(dāng)?shù)慕K端平臺(tái)上測(cè)試該原始開發(fā)者軟件包中的軟件,若測(cè)試通過則進(jìn)入下一步,若測(cè)試未通過則提示失敗并退出;d.軟件發(fā)布運(yùn)營商將該軟件或該軟件及相關(guān)信息使用軟件加密密鑰進(jìn)行加密,并進(jìn)行封包簽名,得到發(fā)布者軟件包,并將其發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上;e.終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包時(shí),軟件發(fā)布服務(wù)平臺(tái)對(duì)該終端進(jìn)行認(rèn)證和下載權(quán)限鑒定,若認(rèn)證通過且確認(rèn)該終端擁有下載該發(fā)布者軟件包的權(quán)限后,將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端,再進(jìn)入下一步,若未通過認(rèn)證或該終端沒有權(quán)限,則提示終端,并切斷與終端的連接;f.終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包進(jìn)行簽名驗(yàn)證,若簽名驗(yàn)證通過則進(jìn)入下一步,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證;g.終端使用e步驟得到的該發(fā)布者軟件包中使用的軟件加密密鑰解密該發(fā)布者軟件包,安裝該軟件。具體的,所述步驟a中,軟件開發(fā)者在生成開發(fā)者軟件包之前,必須擁有自身的開發(fā)者軟件簽名證書及其私鑰和軟件發(fā)布運(yùn)營商公鑰證書,且自身的開發(fā)者軟件簽名證書和軟件發(fā)布運(yùn)營商公鑰證書能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。進(jìn)一步的,步驟a包括以下步驟al.軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序,對(duì)待簽名信息進(jìn)行組織封包,封包內(nèi)容至少包括該軟件自身及封裝指示信息;a2.使用開發(fā)者軟件簽名證書私鑰對(duì)該封包后的待簽名信息進(jìn)行簽名,得到簽名信息,然后生成原始軟件證書,并將簽名信息封裝進(jìn)原始軟件證書中,再將待簽名信息和生成的原始軟件證書進(jìn)行組合,得到原始開發(fā)者軟件包;a3.使用軟件發(fā)布運(yùn)營商公鑰對(duì)原始開發(fā)者軟件包進(jìn)行加密,得到開發(fā)者軟件包, 再交付給軟件發(fā)布運(yùn)營商。再進(jìn)一步的,步驟al所述封包內(nèi)容包括該軟件自身、封裝指示信息、發(fā)布者信息及證書鏈。具體的,所述步驟b中,軟件發(fā)布運(yùn)營商在對(duì)原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證之前,必須擁有自身的發(fā)布者軟件簽名證書及其私鑰和軟件開發(fā)者公鑰證書,且自身的發(fā)布者軟件簽名證書和軟件開發(fā)者公鑰證書能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。再進(jìn)一步的,所述步驟b包括以下步驟bl.軟件發(fā)布運(yùn)營商接收到開發(fā)者軟件包后,使用發(fā)布者軟件簽名證書私鑰對(duì)開發(fā)者軟件包進(jìn)行解密,得到原始開發(fā)者軟件包;b2.對(duì)原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,驗(yàn)證原始開發(fā)者軟件包的完整性及來源合法性,若簽名驗(yàn)證通過則進(jìn)入下一步,若未通過則提示失敗并退出;所述步驟c包括以下步驟Cl.軟件發(fā)布運(yùn)營商根據(jù)原始開發(fā)者軟件包的封裝指示信息獲取該軟件自身;c2.將該軟件自身安裝在在適當(dāng)?shù)慕K端平臺(tái)上進(jìn)行測(cè)試,若測(cè)試通過則進(jìn)入下一步,若測(cè)試未通過則提示失敗并退出;所述步驟d包括以下步驟dl.軟件發(fā)布運(yùn)營商使用軟件加密密鑰對(duì)軟件自身或軟件自身及相關(guān)信息進(jìn)行加密,得到密文軟件信息;d2.對(duì)待簽名信息進(jìn)行組織封包,封包內(nèi)容至少包括密文軟件信息及封裝指示信息;d3.使用軟件發(fā)布運(yùn)營商軟件簽名證書私鑰對(duì)該封包后的待簽名信息進(jìn)行簽名, 得到簽名信息;d4.生成發(fā)布者軟件證書,并將簽名信息封裝進(jìn)發(fā)布者軟件證書中,再將待簽名信息和生成的發(fā)布者軟件證書進(jìn)行組合,得到發(fā)布者軟件包;d5.軟件發(fā)布運(yùn)營商將該發(fā)布者軟件包發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上。具體的,所述步驟1^2中,對(duì)原始開發(fā)者軟件包的簽名驗(yàn)證中,先驗(yàn)證原始軟件證書的合法性,再驗(yàn)證待簽名信息的完整性。進(jìn)一步的,步驟d2所述封包內(nèi)容包括密文軟件信息、封裝指示信息、發(fā)布者信息及證書鏈。具體的,所述步驟e中,終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包之前,必須擁有自身的唯一的終端用戶證書及其私鑰,且和軟件發(fā)布運(yùn)營商公鑰證書之間能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。再進(jìn)一步的,步驟e所述將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端,其具體步驟為,將該發(fā)布者軟件包中使用的軟件加密密鑰使用終端用戶公鑰進(jìn)行加密,得到密文軟件加密密鑰,再傳輸給終端。具體的,所述步驟f包括以下步驟Π.終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包中的發(fā)布者軟件證書通過軟件發(fā)布服務(wù)平臺(tái)上的發(fā)布者軟件證書進(jìn)行驗(yàn)證,若驗(yàn)證通過則進(jìn)入下一步,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證。本發(fā)明的有益效果是,通過上述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,由于在軟件開發(fā)者向軟件發(fā)布運(yùn)營商提供軟件時(shí)進(jìn)行加密及認(rèn)證,且軟件發(fā)布運(yùn)營商也進(jìn)行了加密及認(rèn)證后再由終端用戶進(jìn)行下載,且由于密文軟件信息的存在,終端用戶也需要在得到軟件發(fā)布運(yùn)營商的認(rèn)證和授權(quán)后才能進(jìn)行安裝,保證了上述傳輸過程的安全,且軟件發(fā)布運(yùn)營商在對(duì)待簽名信息進(jìn)行封包時(shí),可以將開發(fā)者信息封裝在里面,便于后續(xù)程序運(yùn)行過程中出現(xiàn)安全漏洞時(shí)的責(zé)任追溯認(rèn)定。
具體實(shí)施例方式本發(fā)明的實(shí)現(xiàn)軟件安全交付及分發(fā)的方法為首先軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序?qū)υ撥浖M(jìn)行封包、簽名,得到原始開發(fā)者軟件包,再經(jīng)過加密,形成開發(fā)者軟件包,并交付給軟件發(fā)布運(yùn)營商,軟件發(fā)布運(yùn)營商在接收到開發(fā)者軟件包后,解密獲得原始開發(fā)者軟件包,并對(duì)該原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,若未通過簽名驗(yàn)證則提示失敗并退出,若通過簽名驗(yàn)證則在適當(dāng)?shù)慕K端平臺(tái)上測(cè)試該原始開發(fā)者軟件包中的軟件,若測(cè)試未通過則提示失敗并退出,若測(cè)試通過則將該軟件或該軟件及相關(guān)信息使用軟件加密密鑰進(jìn)行加密,并進(jìn)行封包簽名,得到發(fā)布者軟件包,并將其發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上,當(dāng)終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包時(shí),軟件發(fā)布服務(wù)平臺(tái)對(duì)該終端進(jìn)行認(rèn)證和下載權(quán)限鑒定,若未通過認(rèn)證或該終端沒有權(quán)限,則提示終端,并切斷與終端的連接,若認(rèn)證通過且確認(rèn)該終端擁有下載該發(fā)布者軟件包的權(quán)限后,將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端,終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包進(jìn)行簽名驗(yàn)證,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證,若簽名驗(yàn)證通過則終端使用之前得到的該發(fā)布者軟件包中使用的軟件加密密鑰解密該發(fā)布者軟件包,安裝該軟件并使用。實(shí)施例本例的軟件開發(fā)者在生成開發(fā)者軟件包之前,必須擁有自身的開發(fā)者軟件簽名證書及其私鑰和軟件發(fā)布運(yùn)營商公鑰證書,且自身的開發(fā)者軟件簽名證書和軟件發(fā)布運(yùn)營商公鑰證書能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任;軟件發(fā)布運(yùn)營商在對(duì)原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證之前,必須擁有自身的發(fā)布者軟件簽名證書及其私鑰和軟件開發(fā)者公鑰證書,且自身的發(fā)布者軟件簽名證書和軟件開發(fā)者公鑰證書能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任;終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包之前,必須擁有自身的唯一的終端用戶證書及其私鑰,且和軟件發(fā)布運(yùn)營商公鑰證書之間能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。首先軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序?qū)υ撥浖M(jìn)行封包、簽名,得到原始開發(fā)者軟件包,再經(jīng)過加密,形成開發(fā)者軟件包,并交付給軟件發(fā)布運(yùn)營商,軟件發(fā)布運(yùn)營商在接收到開發(fā)者軟件包后,解密獲得原始開發(fā)者軟件包,并對(duì)該原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,若未通過簽名驗(yàn)證則提示失敗并退出,若通過簽名驗(yàn)證則在適當(dāng)?shù)慕K端平臺(tái)上測(cè)試該原始開發(fā)者軟件包中的軟件,若測(cè)試未通過則提示失敗并退出,若測(cè)試通過則將該軟件或該軟件及相關(guān)信息使用軟件加密密鑰進(jìn)行加密,并進(jìn)行封包簽名, 得到發(fā)布者軟件包,并將其發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上,當(dāng)終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包時(shí),軟件發(fā)布服務(wù)平臺(tái)對(duì)該終端進(jìn)行認(rèn)證和下載權(quán)限鑒定,若未通過認(rèn)證或該終端沒有權(quán)限,則提示終端,并切斷與終端的連接,若認(rèn)證通過且確認(rèn)該終端擁有下載該發(fā)布者軟件包的權(quán)限后,將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端,終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包進(jìn)行簽名驗(yàn)證,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證,若簽名驗(yàn)證通過則終端使用之前得到的該發(fā)布者軟件包中使用的軟件加密密鑰解密該發(fā)布者軟件包,安裝該軟件并使用。其中,軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后到交付軟件發(fā)布運(yùn)營商之間的具體步驟可以為當(dāng)軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序,對(duì)待簽名信息進(jìn)行組織封包,封包內(nèi)容至少包括該軟件自身及封裝指示信息,還可以包括發(fā)布者信息及證書鏈等相關(guān)信息,再使用開發(fā)者軟件簽名證書私鑰對(duì)該封包后的待簽名信息進(jìn)行簽名,得到簽名信息,然后生成原始軟件證書,并將簽名信息封裝進(jìn)原始軟件證書中,再將待簽名信息和生成的原始軟件證書進(jìn)行組合,得到原始開發(fā)者軟件包,然后使用軟件發(fā)布運(yùn)營商公鑰對(duì)原始開發(fā)者軟件包進(jìn)行加密,得到開發(fā)者軟件包,再交付給軟件發(fā)布運(yùn)營商。軟件發(fā)布運(yùn)營商接收到開發(fā)者軟件包到將發(fā)布者軟件包發(fā)布到軟件發(fā)布服務(wù)平臺(tái)之間的具體步驟可以為當(dāng)軟件發(fā)布運(yùn)營商接收到開發(fā)者軟件包后,使用發(fā)布者軟件簽名證書私鑰對(duì)開發(fā)者軟件包進(jìn)行解密,得到原始開發(fā)者軟件包,再對(duì)原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,驗(yàn)證原始開發(fā)者軟件包的完整性及來源合法性,若未通過則提示失敗并退出, 若簽名驗(yàn)證通過則根據(jù)原始開發(fā)者軟件包的封裝指示信息獲取該軟件自身,再將該軟件自身安裝在在適當(dāng)?shù)慕K端平臺(tái)上進(jìn)行測(cè)試,若測(cè)試未通過則提示失敗并退出,若測(cè)試通過則使用軟件加密密鑰對(duì)軟件自身或軟件自身及相關(guān)信息進(jìn)行加密,得到密文軟件信息,再對(duì)待簽名信息進(jìn)行組織封包,封包內(nèi)容至少包括密文軟件信息及封裝指示信息,還可以包括發(fā)布者信息及證書鏈等相關(guān)信息,然后使用軟件發(fā)布運(yùn)營商軟件簽名證書私鑰對(duì)該封包后的待簽名信息進(jìn)行簽名,得到簽名信息,再生成發(fā)布者軟件證書,并將簽名信息封裝進(jìn)發(fā)布者軟件證書中,再將待簽名信息和生成的發(fā)布者軟件證書進(jìn)行組合,得到發(fā)布者軟件包,最后將該發(fā)布者軟件包發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上,其中,對(duì)原始開發(fā)者軟件包的簽名驗(yàn)證中,先驗(yàn)證原始軟件證書的合法性,再驗(yàn)證待簽名信息的完整性。將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端的具體步驟可以為首先將該發(fā)布者軟件包中使用的軟件加密密鑰使用終端用戶公鑰進(jìn)行加密,得到密文軟件加密密鑰,再傳輸給終端。 終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包進(jìn)行簽名驗(yàn)證的具體步驟可以為 終端在獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包中的發(fā)布者軟件證書通過軟件發(fā)布服務(wù)平臺(tái)上的發(fā)布者軟件證書進(jìn)行驗(yàn)證,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證,若驗(yàn)證通過則終端使用之前得到的該發(fā)布者軟件包中使用的軟件加密密鑰解密該發(fā)布者軟件包,安裝該軟件并使用。
權(quán)利要求
1.實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,包括以下步驟a.軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序?qū)υ撥浖M(jìn)行封包、簽名,得到原始開發(fā)者軟件包,再經(jīng)過加密,形成開發(fā)者軟件包,并交付給軟件發(fā)布運(yùn)營商;b.軟件發(fā)布運(yùn)營商接收到開發(fā)者軟件包后,解密獲得原始開發(fā)者軟件包,并對(duì)該原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,若通過簽名驗(yàn)證則進(jìn)入下一步,若未通過簽名驗(yàn)證則提示失敗并退出;c.軟件發(fā)布運(yùn)營商在適當(dāng)?shù)慕K端平臺(tái)上測(cè)試該原始開發(fā)者軟件包中的軟件,若測(cè)試通過則進(jìn)入下一步,若測(cè)試未通過則提示失敗并退出;d.軟件發(fā)布運(yùn)營商將該軟件或該軟件及相關(guān)信息使用軟件加密密鑰進(jìn)行加密,并進(jìn)行封包簽名,得到發(fā)布者軟件包,并將其發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上;e.終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包時(shí),軟件發(fā)布服務(wù)平臺(tái)對(duì)該終端進(jìn)行認(rèn)證和下載權(quán)限鑒定,若認(rèn)證通過且確認(rèn)該終端擁有下載該發(fā)布者軟件包的權(quán)限后,將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端,再進(jìn)入下一步,若未通過認(rèn)證或該終端沒有權(quán)限,則提示終端,并切斷與終端的連接;f.終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包進(jìn)行簽名驗(yàn)證,若簽名驗(yàn)證通過則進(jìn)入下一步,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證;g.終端使用e步驟得到的該發(fā)布者軟件包中使用的軟件加密密鑰解密該發(fā)布者軟件包,安裝該軟件。
2.根據(jù)權(quán)利要求1所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,所述步驟a中, 軟件開發(fā)者在生成開發(fā)者軟件包之前,必須擁有自身的開發(fā)者軟件簽名證書及其私鑰和軟件發(fā)布運(yùn)營商公鑰證書,且自身的開發(fā)者軟件簽名證書和軟件發(fā)布運(yùn)營商公鑰證書能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。
3.根據(jù)權(quán)利要求2所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,步步驟a包括以下步驟al.軟件開發(fā)者開發(fā)完成某應(yīng)用軟件后,進(jìn)入軟件安全交付程序,對(duì)待簽名信息進(jìn)行組織封包,封包內(nèi)容至少包括該軟件自身及封裝指示信息;a2.使用開發(fā)者軟件簽名證書私鑰對(duì)該封包后的待簽名信息進(jìn)行簽名,得到簽名信息, 然后生成原始軟件證書,并將簽名信息封裝進(jìn)原始軟件證書中,再將待簽名信息和生成的原始軟件證書進(jìn)行組合,得到原始開發(fā)者軟件包;a3.使用軟件發(fā)布運(yùn)營商公鑰對(duì)原始開發(fā)者軟件包進(jìn)行加密,得到開發(fā)者軟件包,再交付給軟件發(fā)布運(yùn)營商。
4.根據(jù)權(quán)利要求3所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,步驟al所述封包內(nèi)容包括該軟件自身、封裝指示信息、發(fā)布者信息及證書鏈。
5.根據(jù)權(quán)利要求1或2或3或4所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,所述步驟b中,軟件發(fā)布運(yùn)營商在對(duì)原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證之前,必須擁有自身的發(fā)布者軟件簽名證書及其私鑰和軟件開發(fā)者公鑰證書,且自身的發(fā)布者軟件簽名證書和軟件開發(fā)者公鑰證書能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。
6.根據(jù)權(quán)利要求5所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,所述步驟b包括以下步驟bl.軟件發(fā)布運(yùn)營商接收到開發(fā)者軟件包后,使用發(fā)布者軟件簽名證書私鑰對(duì)開發(fā)者軟件包進(jìn)行解密,得到原始開發(fā)者軟件包;b2.對(duì)原始開發(fā)者軟件包進(jìn)行簽名驗(yàn)證,驗(yàn)證原始開發(fā)者軟件包的完整性及來源合法性,若簽名驗(yàn)證通過則進(jìn)入下一步,若未通過則提示失敗并退出; 所述步驟c包括以下步驟Cl.軟件發(fā)布運(yùn)營商根據(jù)原始開發(fā)者軟件包中的封裝指示信息獲取該軟件自身; c2.將該軟件自身安裝在在適當(dāng)?shù)慕K端平臺(tái)上進(jìn)行測(cè)試,若測(cè)試通過則進(jìn)入下一步,若測(cè)試未通過則提示失敗并退出; 所述步驟d包括以下步驟dl.軟件發(fā)布運(yùn)營商使用軟件加密密鑰對(duì)軟件自身或軟件自身及相關(guān)信息進(jìn)行加密, 得到密文軟件信息;d2.對(duì)待簽名信息進(jìn)行組織封包,封包內(nèi)容至少包括密文軟件信息及封裝指示信息; d3.使用軟件發(fā)布運(yùn)營商軟件簽名證書私鑰對(duì)該封包后的待簽名信息進(jìn)行簽名,得到簽名信息;d4.生成發(fā)布者軟件證書,并將簽名信息封裝進(jìn)發(fā)布者軟件證書中,再將待簽名信息和生成的發(fā)布者軟件證書進(jìn)行組合,得到發(fā)布者軟件包;d5.軟件發(fā)布運(yùn)營商將該發(fā)布者軟件包發(fā)布到相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上。
7.根據(jù)權(quán)利要求6所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,步驟d2所述封包內(nèi)容包括密文軟件信息、封裝指示信息、發(fā)布者信息及證書鏈。
8.根據(jù)權(quán)利要求6所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,所述步驟e中, 終端用戶在相應(yīng)的軟件發(fā)布服務(wù)平臺(tái)上下載某發(fā)布者軟件包之前,必須擁有自身的唯一的終端用戶證書及其私鑰,且和軟件發(fā)布運(yùn)營商公鑰證書之間能夠通過證書鏈認(rèn)證或交叉認(rèn)證互相信任。
9.根據(jù)權(quán)利要求8所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,步驟e所述將該發(fā)布者軟件包中使用的軟件加密密鑰經(jīng)加密后發(fā)送給終端,其具體步驟為,將該發(fā)布者軟件包中使用的軟件加密密鑰使用終端用戶公鑰進(jìn)行加密,得到密文軟件加密密鑰,再傳輸給終端。
10.根據(jù)權(quán)利要求6所述實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其特征在于,所述步驟f包括以下步驟fl.終端獲得該發(fā)布者軟件包后對(duì)該發(fā)布者軟件包中的發(fā)布者軟件證書通過軟件發(fā)布服務(wù)平臺(tái)上的發(fā)布者軟件證書進(jìn)行驗(yàn)證,若驗(yàn)證通過則進(jìn)入下一步,若未通過則提示用戶該發(fā)布者軟件包未通過簽名驗(yàn)證。
全文摘要
本發(fā)明涉及軟件應(yīng)用程序的安全協(xié)議技術(shù)。本發(fā)明解決了現(xiàn)有軟件的交付及分發(fā)存在的安全問題,提供了一種實(shí)現(xiàn)軟件安全交付及分發(fā)的方法,其技術(shù)方案可概括為在軟件開發(fā)者向軟件發(fā)布運(yùn)營商提供軟件時(shí)進(jìn)行加密及認(rèn)證,且軟件發(fā)布運(yùn)營商也進(jìn)行了加密及認(rèn)證后再由終端用戶進(jìn)行下載。本發(fā)明的有益效果是,既保證了傳輸過程中的安全,又能驗(yàn)證待傳輸軟件的完整性和來源合法性,適用于軟件的交付及分發(fā)。
文檔編號(hào)H04L29/06GK102271130SQ20111020669
公開日2011年12月7日 申請(qǐng)日期2011年7月22日 優(yōu)先權(quán)日2011年7月22日
發(fā)明者劉賢洪, 楊金峰 申請(qǐng)人:四川長虹電器股份有限公司