專利名稱:一種可控的構(gòu)件發(fā)布與使用保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,具體的說(shuō)是一種可控的軟件構(gòu)件發(fā)布與使用保 護(hù)方法。
背景技術(shù):
軟件的可復(fù)用性是軟件產(chǎn)業(yè)興旺發(fā)展的關(guān)鍵所在,而要達(dá)到軟件的可復(fù)用性,“軟 件構(gòu)件化”是實(shí)現(xiàn)這個(gè)目標(biāo)的基礎(chǔ)。隨著技術(shù)和時(shí)間的發(fā)展,面向構(gòu)件的軟件開(kāi)發(fā)和應(yīng)用是 軟件發(fā)展的新趨勢(shì)。軟件的構(gòu)件化發(fā)展必然對(duì)軟件構(gòu)件的發(fā)布與使用以及保護(hù)提出了新的要求。當(dāng)今 軟件使用的保護(hù)方法多種多樣。按物理保護(hù)方式可以分成軟保護(hù)與硬保護(hù)。軟保護(hù)通過(guò)軟 件自身的認(rèn)證機(jī)制與注冊(cè)機(jī)制進(jìn)行軟件保護(hù),而硬保護(hù)通過(guò)“類硬件狗”的方式進(jìn)行保護(hù)。 按物理分布又可以分成網(wǎng)絡(luò)保護(hù)與單機(jī)保護(hù)。網(wǎng)絡(luò)保護(hù)需要通過(guò)網(wǎng)絡(luò)進(jìn)行身份認(rèn)證與識(shí) 別,或通過(guò)網(wǎng)絡(luò)服務(wù)器注冊(cè)來(lái)使網(wǎng)絡(luò)上的軟件獲得使用權(quán)限。而單機(jī)保護(hù)則通過(guò)在單臺(tái)機(jī) 器上的某種注冊(cè)與服務(wù)獲得使用權(quán)限,如通過(guò)硬件ID識(shí)別與注冊(cè),或通過(guò)單機(jī)license授 權(quán)等。軟件構(gòu)件化技術(shù)已經(jīng)開(kāi)始蓬勃發(fā)展,但是對(duì)于如何使用和發(fā)布構(gòu)件目前還缺少有 效的保護(hù)方法,現(xiàn)在更多的是構(gòu)件本身運(yùn)行通過(guò)自身的license方法使構(gòu)件運(yùn)行獲得權(quán) 限。這種方法只能保護(hù)構(gòu)件生產(chǎn)者的利益,并不能對(duì)整個(gè)構(gòu)件的發(fā)布與使用進(jìn)行控制,以及 不能對(duì)軟件構(gòu)件用戶產(chǎn)生保護(hù)作用。另外,構(gòu)件化技術(shù)帶來(lái)了軟件開(kāi)發(fā)與使用方法的革新,但是構(gòu)件的使用和發(fā)布在 一些行業(yè)內(nèi)卻沒(méi)有統(tǒng)一的管理,因此會(huì)存在一些使用和運(yùn)行的安全隱患,不能很好保證構(gòu) 件生產(chǎn)者以及客戶的利益。在一些行業(yè)或組織領(lǐng)域,特別需要對(duì)構(gòu)件的發(fā)布使用提出高度 可控的要求,從而保證構(gòu)件發(fā)布以及客戶使用的信息安全及運(yùn)行安全,如金融信息系統(tǒng)、國(guó) 防信息系統(tǒng)等領(lǐng)域以及其它對(duì)自身軟件環(huán)境需要高度控制的組織和企業(yè)等。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)在軟件構(gòu)件的發(fā)布和使用缺少有效的安全控制機(jī)制,提出 一種在工作機(jī)制和流程上進(jìn)行高度授權(quán)的數(shù)字化技術(shù)方案,保證那些使用構(gòu)件化技術(shù)運(yùn)行 環(huán)境工作的部門、企業(yè)、組織在構(gòu)件發(fā)布與使用方面的安全性,提高安全防護(hù)的等級(jí),減少 構(gòu)件使用方面的安全漏洞,保護(hù)構(gòu)件生產(chǎn)者、使用者的利益以及整個(gè)組織軟件應(yīng)用環(huán)境的 安全;保證構(gòu)件發(fā)布的合法性和軟件客戶使用構(gòu)件的合法性,使構(gòu)件的發(fā)布和使用表現(xiàn)在 一種高度可控的狀態(tài),從而抵制非法或非認(rèn)可的構(gòu)件發(fā)布并參與系統(tǒng)運(yùn)行,在最大程度上 保證了整個(gè)組織的構(gòu)件發(fā)布與使用安全。本發(fā)明一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,需要建立五種角色,這五種角色分 別為角色1 方案管理員 SHCEME ADMINISTRATOR(簡(jiǎn)稱 SA)
角色2 原始軟件制造者 ORIGINAL SOFTWARE PR0DUCT0R(簡(jiǎn)稱 OSP)角色3 構(gòu)件生產(chǎn)者 COMPONENT PR0DUCT0R(簡(jiǎn)稱 CP)
角色4 構(gòu)件發(fā)布服務(wù)者COMPONENT SERVER(簡(jiǎn)稱CS)角色5 軟件構(gòu)件用戶COMPONENT USER(簡(jiǎn)稱CU)各個(gè)角色之間相互授權(quán),并通過(guò)數(shù)字證書、簽名、加密的方式使構(gòu)件在發(fā)布與使用 過(guò)程中得到有效的控制,使只有得到認(rèn)可的原始軟件制造者OSP生產(chǎn)的軟件才能使用到合 法構(gòu)件,只有得到認(rèn)可的構(gòu)件發(fā)布服務(wù)者CS才能發(fā)布合法的構(gòu)件給軟件構(gòu)件用戶CU使用; 軟件構(gòu)件用戶CU只有從合法的原始軟件制造者OSP那里得到應(yīng)用軟件才能申請(qǐng)得到合法 的軟件構(gòu)件。所述的五種角色,其職能分別為(1)所述方案管理員SA全權(quán)負(fù)責(zé)此方案的維護(hù)與協(xié)調(diào),由組織內(nèi)最高的管理機(jī)構(gòu) 擔(dān)任;方案管理員SA負(fù)責(zé)控制保護(hù)方案的成員資格,并確保所有參與者都按照既定程序進(jìn) 行操作;方案管理員SA負(fù)責(zé)管理頂層加密密鑰,用于操作完整的數(shù)據(jù)保護(hù)方案;同時(shí)它也 是有權(quán)向其他保護(hù)方案參與者發(fā)行證書的唯一實(shí)體;(2)所述構(gòu)件發(fā)布服務(wù)者CS負(fù)責(zé)按照此保護(hù)方案定義的程序和方法對(duì)構(gòu)件信息 進(jìn)行加密和簽名;通常由軟件版本管理的機(jī)構(gòu)或部門來(lái)?yè)?dān)任;(3)所述原始軟件制造者OSP是支持此方案的軟件制作者,方案管理員SA提供各 個(gè)原始軟件制造者OSP —個(gè)唯一的制造者密鑰(P_KEY)和制造者標(biāo)識(shí)符(P_ID);原始軟件 制造者OSP必須在軟件系統(tǒng)中提供相應(yīng)的安全機(jī)制使每個(gè)軟件都必須擁有一個(gè)唯一的標(biāo) 識(shí)符(SW_ID),以唯一標(biāo)識(shí)出每個(gè)客戶軟件;(4)所述構(gòu)件生產(chǎn)者CP是遵循一定的構(gòu)件接口標(biāo)準(zhǔn)生產(chǎn)構(gòu)件的機(jī)構(gòu)或部門,他們 將生產(chǎn)后的符合要求的構(gòu)件遞交給構(gòu)件發(fā)布服務(wù)者CS,由構(gòu)件發(fā)布服務(wù)者CS向軟件構(gòu)件 用戶⑶發(fā)布經(jīng)簽名的軟件構(gòu)件單元;(5)所述軟件構(gòu)件用戶CU將使用原始軟件制造者OSP制作的軟件,原始軟件 制造者OSP的客戶端軟件可以利用P_KEY對(duì)內(nèi)嵌于軟件SW_ID進(jìn)行加密生成用戶許可 (UserPermit);此用戶許可用于向構(gòu)件發(fā)布服務(wù)者CS申請(qǐng)客戶所需的構(gòu)件。所述五種角色之間的授權(quán)關(guān)系如下1、方案管理員SA與原始軟件制造者OSP的關(guān)系方案管理員SA是這個(gè)方案的最高維護(hù)與協(xié)調(diào)的管理機(jī)構(gòu),整個(gè)方案中是唯一的; 它負(fù)責(zé)對(duì)每個(gè)原始軟件制造者(或部門)0SP成員資格進(jìn)行審核,因此原始軟件制造者OSP 可以有多個(gè),原始軟件制造者OSP向方案管理員SA提交方案參與申請(qǐng)(1),方案管理員SA 對(duì)申請(qǐng)進(jìn)行審核,批準(zhǔn)后會(huì)向原始軟件制造者OSP頒發(fā)與OSP唯一對(duì)應(yīng)的制造者密鑰(P_ KEY)和制造者標(biāo)識(shí)符(P_ID)⑵;方案管理員SA負(fù)責(zé)存儲(chǔ)和管理原始軟件制造者P_ KEY和P_ID,以備查詢;2、方案管理員SA與構(gòu)件發(fā)布服務(wù)者CS的關(guān)系構(gòu)件發(fā)布服務(wù)者CS將創(chuàng)建自身的密鑰對(duì),并將公鑰和樣本簽名結(jié)合在自簽名密 鑰(SSK)中,并將SSK (4)遞交給方案管理員SA,方案管理員SA驗(yàn)證SSK中的公鑰是否來(lái)自 構(gòu)件發(fā)布服務(wù)者CS,之后方案管理員SA在構(gòu)件發(fā)布服務(wù)方公鑰上簽署SA頂層密鑰對(duì),經(jīng)過(guò) 簽名的密鑰就是構(gòu)件服務(wù)方證書,方案管理員SA向構(gòu)件發(fā)布服務(wù)者CS提供數(shù)字證書(5);
5
3、構(gòu)件生產(chǎn)者CP與構(gòu)件發(fā)布服務(wù)者CS的關(guān)系構(gòu)件生產(chǎn)者CP將制作好的構(gòu)件遞交給構(gòu)件發(fā)布服務(wù)者CS(3),并由構(gòu)件發(fā)布服務(wù) 者CS存儲(chǔ)到構(gòu)件庫(kù)中,以備發(fā)布給不同的軟件構(gòu)件用戶CU ;4、軟件構(gòu)件用戶CU與構(gòu)件發(fā)布服務(wù)者CS的關(guān)系軟件構(gòu)件用戶⑶把原始軟件制造者OSP的軟件自產(chǎn)生的用戶許可Userpermit遞 交給構(gòu)件發(fā)布服務(wù)者CS并申請(qǐng)自己需要的構(gòu)件(6),構(gòu)件發(fā)布服務(wù)者CS根據(jù)Userpermit 從中解密得到軟件的唯一標(biāo)識(shí)符(SW_ID),并利用SW_ID作為密鑰采用對(duì)稱加密算法對(duì)軟 件構(gòu)件單元進(jìn)行加密生成加密后的構(gòu)件體,同時(shí)構(gòu)件發(fā)布服務(wù)者CS還要向軟件構(gòu)件用戶 CU提供相應(yīng)的構(gòu)件數(shù)字簽名文件(7),數(shù)字簽名文件是由加密的構(gòu)件體和方案管理員SA頒 發(fā)的數(shù)字證書組成的;軟件構(gòu)件用戶CU使用的軟件必須來(lái)自原始軟件制造者0SP,用戶端軟件必須在使 用構(gòu)件發(fā)布服務(wù)者CS發(fā)布的加密構(gòu)件體前安裝SA公鑰證書;并利用SA公鑰對(duì)構(gòu)件簽名文 件進(jìn)行驗(yàn)證,以確認(rèn)構(gòu)件發(fā)布服務(wù)者CS的合法性;只有驗(yàn)證合法性后才能對(duì)構(gòu)件體進(jìn)行解 密并使用;5、軟件構(gòu)件用戶⑶與原始軟件制造者OSP的關(guān)系軟件構(gòu)件用戶CU所使用的軟件必須來(lái)自于遵循本方案的原始軟件制造者 OSP (8),并且最終用戶軟件必須裝載了方案管理員SA頒布的SA公鑰(9);此公鑰是用戶軟 件用來(lái)驗(yàn)證構(gòu)件發(fā)布者發(fā)布構(gòu)件時(shí)提供的數(shù)字簽名,從而驗(yàn)證構(gòu)件發(fā)布者的合法性,保證 用戶使用的構(gòu)件具有合法性。本發(fā)明一種可控的構(gòu)件發(fā)布與使用保護(hù)方法所述各個(gè)角色之間相互授權(quán)是這樣 實(shí)現(xiàn)的(1)分別建立五種構(gòu)件發(fā)布與使用的角色他們分別為方案管理員SA、原始軟件 制造者0SP、構(gòu)件生產(chǎn)者CP、構(gòu)件發(fā)布服務(wù)者Cs、軟件構(gòu)件用戶CU,后面敘述用字母代號(hào)表 示他們的名稱;(2)方案管理員SA用對(duì)稱加密算法產(chǎn)生密鑰對(duì),即SA公鑰和SA私鑰,SA要高度 對(duì)SA私鑰保密;(3)原始軟件制造者OSP向方案管理員SA提出申請(qǐng),方案管理員SA批準(zhǔn)后向原始 軟件制造者OSP頒發(fā)唯一的原始軟件制造者識(shí)別號(hào)P_ID和原始軟件制造者密鑰P_KEY ;方 案管理員SA負(fù)責(zé)管理這些密鑰和識(shí)別號(hào);(4)原始軟件制造者OSP在自己生產(chǎn)的軟件中必須具有生成用戶許可Userpermit 的功能,且原始軟件制造者OSP每個(gè)軟件必須具有唯一的軟件標(biāo)識(shí)號(hào)SW_ID,Userpermit是 按照一定格式存放的原始軟件制造者OSP用P_KEY作為密鑰對(duì)SW_ID加密的密碼文件;此 解密算法和密碼文件格式是構(gòu)件發(fā)布服務(wù)者CS獲知的,但構(gòu)件發(fā)布服務(wù)者CS只有獲得P_ KEY后才能解密;(5)構(gòu)件發(fā)布服務(wù)者CS向方案管理員SA提出加入申請(qǐng),方案管理員SA批準(zhǔn)后,構(gòu) 件發(fā)布服務(wù)者CS用和方案管理員SA相同的可互認(rèn)證的對(duì)稱加密算法產(chǎn)生密鑰對(duì),即CS公 鑰和CS私鑰,構(gòu)件發(fā)布服務(wù)者CS用私鑰產(chǎn)生一個(gè)自簽名的公鑰文件SSK,并和CS公鑰一起 提交給方案管理員SA ;方案管理員SA用CS公鑰驗(yàn)證構(gòu)件發(fā)布服務(wù)者CS提交的SSK ;如果 驗(yàn)證成功,則方案管理員SA用SA私鑰對(duì)SSK進(jìn)行簽名產(chǎn)生一個(gè)簽名文件,并將CS公鑰附著在簽名文件內(nèi)容中,這個(gè)簽名文件就是方案管理員SA頒發(fā)給構(gòu)件發(fā)布服務(wù)者CS的數(shù)字 證書SkCk,并交給構(gòu)件發(fā)布服務(wù)者CS保管;(6)每當(dāng)一個(gè)新的構(gòu)件發(fā)布服務(wù)者CS成員加入方案,方案管理員SA都會(huì)發(fā)布所有 保管的原始軟件制造者OSP的P_KEY和P_ID給構(gòu)件發(fā)布服務(wù)者CS ;構(gòu)件發(fā)布服務(wù)者CS同 時(shí)保存這些P_KEY和P_ID ;(7)每當(dāng)一個(gè)新的原始軟件制造者OSP成員加入,方案管理員SA也會(huì)把這個(gè)新成 員的P_KEY和P_ID發(fā)布給所有的構(gòu)件發(fā)布服務(wù)者CS ;(8)原始軟件制造者OSP每一個(gè)給用戶使用的軟件中都會(huì)保存SA公鑰;(9)軟件構(gòu)件用戶CU的軟件在需要使用構(gòu)件時(shí),必須向構(gòu)件發(fā)布服務(wù)者CS提交由 軟件生成的Userpermit ;構(gòu)件發(fā)布服務(wù)者CS通過(guò)Userpermit獲取該軟件原始軟件制造者 OSP的P_KEY和軟件SW_ID ;構(gòu)件發(fā)布服務(wù)者CS驗(yàn)證P_KEY合法后會(huì)用SW_ID作為密鑰加 密軟件構(gòu)件用戶CU申請(qǐng)使用的軟件構(gòu)件文件;并會(huì)將SACA和加密后的軟件構(gòu)件文件組成 構(gòu)件單元簽名文件一起發(fā)布給軟件構(gòu)件用戶CU ;(10)原始軟件制造者OSP的軟件必須具有用SA公鑰驗(yàn)證SACA正確性的功能;當(dāng) 驗(yàn)證成功后,軟件能夠利用自身的SW_ID作為密鑰解密經(jīng)構(gòu)件發(fā)布服務(wù)者CS加密的構(gòu)件 體,只有解密成功后才能正確的使用該構(gòu)件;(11)構(gòu)件生產(chǎn)者CP生產(chǎn)的構(gòu)件必須提交給構(gòu)件發(fā)布服務(wù)者CS,由構(gòu)件發(fā)布服務(wù) 者CS保存在構(gòu)件庫(kù)中,當(dāng)只有軟件構(gòu)件用戶CU申請(qǐng)使用時(shí)才能由構(gòu)件發(fā)布服務(wù)者CS發(fā)布。本發(fā)明一種可控的構(gòu)件發(fā)布與使用保護(hù)方法的優(yōu)點(diǎn)是(1)軟件制造者可以通過(guò)本方案獲得合法的軟件制造資格,從而保證生產(chǎn)的軟件 能夠使用到合法的軟件構(gòu)件;(2)軟件構(gòu)件生產(chǎn)者生產(chǎn)的構(gòu)件必須提交給構(gòu)件發(fā)布者簽名之后才能被最終用戶 使用,保證了構(gòu)件的合法來(lái)源;(3)構(gòu)件發(fā)布服務(wù)者通過(guò)構(gòu)件的簽名實(shí)現(xiàn)了對(duì)構(gòu)件發(fā)布與使用的安全控制和管 理,保證了軟件用戶得到合法的構(gòu)件,并只有遵循本方案的用戶軟件才能得到只有本軟件 能使用的合法構(gòu)件;(4)軟件構(gòu)件用戶只能使用被軟件構(gòu)件發(fā)布者簽名的構(gòu)件,非法構(gòu)件或未經(jīng)許可 的構(gòu)件不能被用戶軟件使用,保證了整個(gè)組織內(nèi)軟件構(gòu)件使用環(huán)境的安全可靠,從而保證 了整個(gè)組織軟件運(yùn)行環(huán)境的安全。
圖1為一種可控的構(gòu)件發(fā)布與使用保護(hù)方法的五種角色的關(guān)系圖。圖2為可控的構(gòu)件發(fā)布與使用保護(hù)方法的授權(quán)流程圖。圖3為公鑰和私鑰的使用及管理流程圖。
具體實(shí)施例方式根據(jù)圖1-3所示,一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,包括需要建立五種角 色,這五種角色分別為
角色1 方案管理員 SHCEME ADMINISTRATOR(SA)角色2 原始軟件制造者 ORIGINAL SOFTWARE PR0DUCT0R(OSP)角色3 構(gòu)件生產(chǎn)者 COMPONENT PR0DUCT0R(CP)角色4 構(gòu)件發(fā)布服務(wù)者COMPONENT SERVER(CS)角色5 軟件構(gòu)件用戶 COMPONENT USER(CU)各個(gè)角色之間相互授權(quán),并通過(guò)數(shù)字證書、簽名、加密的方式使構(gòu)件在發(fā)布與使用 過(guò)程中得到有效的控制,使只有得到認(rèn)可的原始軟件制造者OSP生產(chǎn)的軟件才能使用到合 法構(gòu)件,只有得到認(rèn)可的構(gòu)件發(fā)布服務(wù)者CS才能發(fā)布合法的構(gòu)件給軟件構(gòu)件用戶CU使用; 軟件構(gòu)件用戶CU只有從合法的原始軟件制造者OSP那里得到軟件才能申請(qǐng)得到合法的軟 件構(gòu)件。所述的五種角色,其職能分別為;(1)所述方案管理員SA全權(quán)負(fù)責(zé)此方案的維護(hù)與協(xié)調(diào),由組織內(nèi)最高的管理機(jī)構(gòu) 擔(dān)任;方案管理員SA負(fù)責(zé)控制保護(hù)方案的成員資格,并確保所有參與者都按照既定程序進(jìn) 行操作;方案管理員SA負(fù)責(zé)管理頂層加密密鑰,用于操作完整的數(shù)據(jù)保護(hù)方案;同時(shí)它也 是有權(quán)向其他保護(hù)方案參與者發(fā)行證書的唯一實(shí)體;(2)所述構(gòu)件發(fā)布服務(wù)者CS負(fù)責(zé)按照此保護(hù)方案定義的程序和方法對(duì)構(gòu)件信息 進(jìn)行加密和簽名;通常由軟件版本管理的機(jī)構(gòu)和部門來(lái)?yè)?dān)任;(3)所述原始軟件制造者OSP是支持此方案的軟件制作者,方案管理員SA提供各 個(gè)原始軟件制造者OSP —個(gè)唯一的制造者密鑰(P_KEY)和制造者標(biāo)識(shí)符(P_ID);原始軟件 制造者OSP必須在軟件系統(tǒng)中提供相應(yīng)的安全機(jī)制使每個(gè)軟件都必須擁有一個(gè)唯一的標(biāo) 識(shí)符(SW_ID),以唯一標(biāo)識(shí)出每個(gè)客戶軟件;(4)所述構(gòu)件生產(chǎn)者CP是遵循一定的構(gòu)件接口標(biāo)準(zhǔn)生產(chǎn)構(gòu)件的機(jī)構(gòu)或部門,他們 將生產(chǎn)后的符合要求的構(gòu)件遞交給構(gòu)件發(fā)布服務(wù)者CS,由構(gòu)件發(fā)布服務(wù)者CS向軟件構(gòu)件 用戶⑶發(fā)布經(jīng)簽名的軟件構(gòu)件單元;(5)所述軟件構(gòu)件用戶CU將使用原始軟件制造者OSP制作的軟件,原始軟件 制造者OSP的客戶端軟件可以利用P_KEY對(duì)內(nèi)嵌于軟件SW_ID進(jìn)行加密生成用戶許可 (UserPermit);此用戶許可用于向構(gòu)件發(fā)布服務(wù)者CS申請(qǐng)客戶所需的構(gòu)件。各個(gè)角色之間的傳遞的信息在圖1中用⑴到⑶的數(shù)字標(biāo)識(shí)符來(lái)標(biāo)注。所述五 種角色之間的授權(quán)關(guān)系如下1、方案管理員SA與原始軟件制造者OSP的關(guān)系方案管理員SA是這個(gè)方案的最高維護(hù)與協(xié)調(diào)的管理機(jī)構(gòu),整個(gè)方案中是唯一的; 它負(fù)責(zé)對(duì)每個(gè)原始軟件制造者(或部門)0SP成員資格進(jìn)行審核,因此原始軟件制造者OSP 可以有多個(gè),原始軟件制造者OSP向方案管理員SA提交方案參與申請(qǐng)(1),方案管理員SA 對(duì)申請(qǐng)進(jìn)行審核,批準(zhǔn)后會(huì)向原始軟件制造者OSP頒發(fā)與OSP唯一對(duì)應(yīng)的制造者密鑰(P_ KEY)和制造者標(biāo)識(shí)符(P_ID) (2);方案管理員SA負(fù)責(zé)存儲(chǔ)和管理原始軟件制造者P_ KEY和P_ID,以備查詢;2、方案管理員SA與構(gòu)件發(fā)布服務(wù)者CS的關(guān)系構(gòu)件發(fā)布服務(wù)者CS將創(chuàng)建自身的密鑰對(duì),并將公鑰和樣本簽名結(jié)合在自簽名密 鑰(SSK)中,并將SSK (4)遞交給方案管理員SA,方案管理員SA驗(yàn)證SSK中的公鑰是否來(lái)自構(gòu)件發(fā)布服務(wù)者CS,之后方案管理員SA在構(gòu)件發(fā)布服務(wù)方公鑰上簽署SA頂層密鑰對(duì),經(jīng)過(guò) 簽名的密鑰就是構(gòu)件服務(wù)方證書,方案管理員SA向構(gòu)件發(fā)布服務(wù)者CS提供數(shù)字證書(5);3、構(gòu)件生產(chǎn)者CP與構(gòu)件發(fā)布服務(wù)者CS的關(guān)系構(gòu)件生產(chǎn)者CP將制作好的構(gòu)件遞交給構(gòu)件發(fā)布服務(wù)者CS (3),并由構(gòu)件發(fā)布服務(wù) 者CS存儲(chǔ)到構(gòu)件庫(kù)中,以備發(fā)布給不同的軟件構(gòu)件用戶CU ;4、軟件構(gòu)件用戶CU與構(gòu)件發(fā)布服務(wù)者CS的關(guān)系軟件構(gòu)件用戶⑶把原始軟件制造者OSP的軟件自產(chǎn)生的用戶許可Userpermit遞 交給構(gòu)件發(fā)布服務(wù)者CS并申請(qǐng)自己需要的構(gòu)件(6),構(gòu)件發(fā)布服務(wù)者CS根據(jù)Userpermit 從中解密得到軟件的唯一標(biāo)識(shí)符(SW_ID),并利用SW_ID作為密鑰采用對(duì)稱加密算法對(duì)軟 件構(gòu)件單元進(jìn)行加密生成加密后的構(gòu)件體,同時(shí)構(gòu)件發(fā)布服務(wù)者CS還要向軟件構(gòu)件用戶 CU提供相應(yīng)的構(gòu)件數(shù)字簽名文件(7),數(shù)字簽名文件是由加密的構(gòu)件體和方案管理員SA頒 發(fā)的數(shù)字證書組成的;軟件構(gòu)件用戶CU使用的軟件必須來(lái)自原始軟件制造者0SP,用戶端軟件必須在使 用構(gòu)件發(fā)布服務(wù)者CS發(fā)布的加密構(gòu)件體前安裝SA公鑰證書;并利用SA公鑰對(duì)構(gòu)件簽名文 件進(jìn)行驗(yàn)證,以確認(rèn)構(gòu)件發(fā)布服務(wù)者CS的合法性;只有驗(yàn)證合法性后才能對(duì)構(gòu)件體進(jìn)行解 密并使用;5、軟件構(gòu)件用戶⑶與原始軟件制造者OSP的關(guān)系軟件構(gòu)件用戶CU所使用的軟件必須來(lái)自于遵循本方案的原始軟件制造者 OSP (8),并且最終用戶軟件必須裝載了方案管理員SA頒布的SA公鑰(9);此公鑰是用戶軟 件用來(lái)驗(yàn)證構(gòu)件發(fā)布者發(fā)布構(gòu)件時(shí)提供的數(shù)字簽名,從而驗(yàn)證構(gòu)件發(fā)布者的合法性,保證 用戶使用的構(gòu)件具有合法性。本發(fā)明一種可控的構(gòu)件發(fā)布與使用保護(hù)方法所述各個(gè)角色之間相互授權(quán)是這樣 實(shí)現(xiàn)的(1)分別建立五種構(gòu)件發(fā)布與使用的角色他們分別為方案管理員SA、原始軟件 制造者0SP、構(gòu)件生產(chǎn)者CP、構(gòu)件發(fā)布服務(wù)者CS、軟件構(gòu)件用戶CU,后面敘述用字母代號(hào)表 示他們的名稱;(2)方案管理員SA用對(duì)稱加密算法產(chǎn)生密鑰對(duì),即SA公鑰和SA私鑰,SA要高度 對(duì)SA私鑰保密;(3)原始軟件制造者OSP向方案管理員SA提出申請(qǐng),方案管理員SA批準(zhǔn)后向原始 軟件制造者OSP頒發(fā)唯一的原始軟件制造者識(shí)別號(hào)P_ID和原始軟件制造者密鑰P_KEY ;方 案管理員SA負(fù)責(zé)管理這些密鑰和識(shí)別號(hào);(4)原始軟件制造者OSP在自己生產(chǎn)的軟件中必須具有生成用戶許可Userpermit 的功能,且原始軟件制造者OSP每個(gè)軟件必須具有唯一的軟件標(biāo)識(shí)號(hào)SW_ID,Userpermit是 按照一定格式存放的原始軟件制造者OSP用P_KEY作為密鑰對(duì)SW_ID加密的密碼文件;此 解密算法和密碼文件格式是構(gòu)件發(fā)布服務(wù)者CS獲知的,但構(gòu)件發(fā)布服務(wù)者CS只有獲得P_ KEY后才能解密;(5)構(gòu)件發(fā)布服務(wù)者CS向方案管理員SA提出加入申請(qǐng),方案管理員SA批準(zhǔn)后,構(gòu) 件發(fā)布服務(wù)者CS用和方案管理員SA相同的可互認(rèn)證的對(duì)稱加密算法產(chǎn)生密鑰對(duì),即CS公 鑰和CS私鑰,構(gòu)件發(fā)布服務(wù)者CS用私鑰產(chǎn)生一個(gè)自簽名的公鑰文件SSK,并和CS公鑰一起提交給方案管理員SA ;方案管理員SA用CS公鑰驗(yàn)證構(gòu)件發(fā)布服務(wù)者CS提交的SSK ;如果 驗(yàn)證成功,則方案管理員SA用SA私鑰對(duì)SSK進(jìn)行簽名產(chǎn)生一個(gè)簽名文件,并將CS公鑰附 著在簽名文件內(nèi)容中,這個(gè)簽名文件就是方案管理員SA頒發(fā)給構(gòu)件發(fā)布服務(wù)者CS的數(shù)字 證書SkCk,并交給構(gòu)件發(fā)布服務(wù)者CS保管;(6)每當(dāng)一個(gè)新的構(gòu)件發(fā)布服務(wù)者CS成員加入方案,方案管理員SA都會(huì)發(fā)布所有 保管的原始軟件制造者OSP的P_KEY和P_ID給構(gòu)件發(fā)布服務(wù)者CS ;構(gòu)件發(fā)布服務(wù)者CS同 時(shí)保存這些P_KEY和P_ID ;(7)每當(dāng)一個(gè)新的原始軟件制造者OSP成員加入,方案管理員SA也會(huì)把這個(gè)新成 員的P_KEY和P_ID發(fā)布給所有的構(gòu)件發(fā)布服務(wù)者CS ;(8)原始軟件制造者OSP每一個(gè)給用戶使用的軟件中都會(huì)保存SA公鑰;(9)軟件構(gòu)件用戶CU的軟件在需要使用構(gòu)件時(shí),必須向構(gòu)件發(fā)布服務(wù)者CS提交由 軟件生成的Userpermit ;構(gòu)件發(fā)布服務(wù)者CS通過(guò)Userpermit獲取該軟件原始軟件制造者 OSP的P_KEY和軟件SW_ID ;構(gòu)件發(fā)布服務(wù)者CS驗(yàn)證P_KEY合法后會(huì)用SW_ID作為密鑰加 密軟件構(gòu)件用戶CU申請(qǐng)使用的軟件構(gòu)件文件;并會(huì)將SACA和加密后的軟件構(gòu)件文件組成 構(gòu)件單元簽名文件一起發(fā)布給軟件構(gòu)件用戶CU ;(10)原始軟件制造者OSP的軟件必須具有用SA公鑰驗(yàn)證SACA正確性的功能;當(dāng) 驗(yàn)證成功后,軟件能夠利用自身的SW_ID作為密鑰解密經(jīng)構(gòu)件發(fā)布服務(wù)者CS加密的構(gòu)件 體,只有解密成功后才能正確的使用該構(gòu)件;(11)構(gòu)件生產(chǎn)者CP生產(chǎn)的構(gòu)件必須提交給構(gòu)件發(fā)布服務(wù)者CS,由構(gòu)件發(fā)布服務(wù) 者CS保存在構(gòu)件庫(kù)中,當(dāng)只有軟件構(gòu)件用戶CU申請(qǐng)使用時(shí)才能由構(gòu)件發(fā)布服務(wù)者CS發(fā)布。
權(quán)利要求
一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于本方法需要建立五種角色,這五種角色分別為方案管理員SA、原始軟件制造者OSP、構(gòu)件生產(chǎn)者CP、軟件構(gòu)件用戶CU、構(gòu)件發(fā)布服務(wù)者CS;各個(gè)角色之間相互授權(quán),并通過(guò)數(shù)字證書、簽名、加密的方式使構(gòu)件在發(fā)布與使用過(guò)程中得到有效的控制,使只有得到認(rèn)可的原始軟件制造者OSP生產(chǎn)的軟件才能使用到合法構(gòu)件,只有得到認(rèn)可的構(gòu)件發(fā)布服務(wù)者CS才能發(fā)布合法的構(gòu)件給軟件構(gòu)件用戶CU使用;軟件構(gòu)件用戶CU只有從合法的原始軟件制造者OSP那里得到軟件才能申請(qǐng)得到合法的軟件構(gòu)件。
2.根據(jù)權(quán)利要求1所述的一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于所述方 案管理員SA全權(quán)負(fù)責(zé)此方案的維護(hù)與協(xié)調(diào),由組織內(nèi)最高的管理機(jī)構(gòu)擔(dān)任;方案管理員SA 負(fù)責(zé)控制保護(hù)方案的成員資格,并確保所有參與者都按照既定程序進(jìn)行操作;方案管理員 SA負(fù)責(zé)管理頂層加密密鑰,用于操作完整的數(shù)據(jù)保護(hù)方案;同時(shí)它也是有權(quán)向其他保護(hù)方 案參與者發(fā)行證書的唯一實(shí)體。
3.根據(jù)權(quán)利要求1所述的一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于所述構(gòu) 件發(fā)布服務(wù)者CS負(fù)責(zé)按照此保護(hù)方案定義的程序和方法對(duì)構(gòu)件信息進(jìn)行加密和簽名;通 常由軟件版本管理的機(jī)構(gòu)和部門來(lái)?yè)?dān)任。
4.根據(jù)權(quán)利要求1所述的一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于所述原 始軟件制造者OSP是支持此方案的軟件制作者,方案管理員SA提供各個(gè)原始軟件制造者 OSP —個(gè)唯一的制造者密鑰(P_KEY)和制造者標(biāo)識(shí)符(P_ID);原始軟件制造者OSP必須在 軟件系統(tǒng)中提供相應(yīng)的安全機(jī)制使每個(gè)軟件都必須擁有一個(gè)唯一的標(biāo)識(shí)符(SW_ID),以唯 一標(biāo)識(shí)出每個(gè)客戶軟件。
5.根據(jù)權(quán)利要求1所述的一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于所述構(gòu) 件生產(chǎn)者CP是遵循一定的構(gòu)件接口標(biāo)準(zhǔn)生產(chǎn)構(gòu)件的機(jī)構(gòu)或部門,他們將生產(chǎn)后的符合要 求的構(gòu)件遞交給構(gòu)件發(fā)布服務(wù)者CS,由構(gòu)件發(fā)布服務(wù)者CS向軟件構(gòu)件用戶CU發(fā)布經(jīng)簽名 的軟件構(gòu)件單元。
6.根據(jù)權(quán)利要求1所述的一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于所述軟 件構(gòu)件用戶CU將使用原始軟件制造者OSP制作的軟件,原始軟件制造者OSP的客戶端軟件 可以利用?_腿¥對(duì)內(nèi)嵌于軟件SW_ID進(jìn)行加密生成用戶許可(UserPermit);此用戶許可用 于向構(gòu)件發(fā)布服務(wù)者CS申請(qǐng)客戶所需的構(gòu)件。
7.根據(jù)權(quán)利要求1所述的一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,其特征在于所述五 個(gè)角色之間相互授權(quán)的方法如下(1)方案管理員SA用對(duì)稱加密算法產(chǎn)生密鑰對(duì),即SA公鑰和SA私鑰,SA要高度對(duì)SA 私鑰保密;(2)原始軟件制造者OSP向方案管理員SA提出申請(qǐng),方案管理員SA批準(zhǔn)后向原始軟件 制造者OSP頒發(fā)唯一的原始軟件制造者識(shí)別號(hào)P_ID和原始軟件制造者密鑰P_KEY ;方案管 理員SA負(fù)責(zé)管理這些密鑰和識(shí)別號(hào);(3)原始軟件制造者OSP在自己生產(chǎn)的軟件中必須具有生成用戶許可Uerpermit的功 能,且原始軟件制造者OSP每個(gè)軟件必須具有唯一的軟件標(biāo)識(shí)號(hào)SW_ID,Uerpermit是按照 一定格式存放的原始軟件制造者OSP用P_KEY作為密鑰對(duì)SW_ID加密的密碼文件;此解密 算法和密碼文件格式是構(gòu)件發(fā)布服務(wù)者CS獲知的,但構(gòu)件發(fā)布服務(wù)者CS只有獲得P_KEY后才能解密;(4)構(gòu)件發(fā)布服務(wù)者CS向方案管理員SA提出加入申請(qǐng),方案管理員SA批準(zhǔn)后,構(gòu)件發(fā) 布服務(wù)者CS用和方案管理員SA相同的可互認(rèn)證的對(duì)稱加密算法產(chǎn)生密鑰對(duì),即CS公鑰和 CS私鑰,構(gòu)件發(fā)布服務(wù)者CS用私鑰產(chǎn)生一個(gè)自簽名的公鑰文件SSK,并和CS公鑰一起提交 給方案管理員SA ;方案管理員SA用CS公鑰驗(yàn)證構(gòu)件發(fā)布服務(wù)者CS提交的SSK ;如果驗(yàn)證 成功,則方案管理員SA用SA私鑰對(duì)SSK進(jìn)行簽名產(chǎn)生一個(gè)簽名文件,并將CS公鑰附著在 簽名文件內(nèi)容中,這個(gè)簽名文件就是方案管理員SA頒發(fā)給構(gòu)件發(fā)布服務(wù)者CS的數(shù)字證書 SkCk,并交給構(gòu)件發(fā)布服務(wù)者CS保管;(5)每當(dāng)一個(gè)新的構(gòu)件發(fā)布服務(wù)者CS成員加入方案,方案管理員SA都會(huì)發(fā)布所有保管 的原始軟件制造者OSP的P_KEY和P_ID給構(gòu)件發(fā)布服務(wù)者CS ;構(gòu)件發(fā)布服務(wù)者CS同時(shí)保 存這些P_KEY和P_ID ;(6)每當(dāng)一個(gè)新的原始軟件制造者OSP成員加入,方案管理員SA也會(huì)把這個(gè)新成員的 P.KEY和P_ID發(fā)布給所有的構(gòu)件發(fā)布服務(wù)者CS ;(7)原始軟件制造者OSP每一個(gè)給用戶使用的軟件中都會(huì)保存SA公鑰;(8)軟件構(gòu)件用戶CU的軟件在需要使用構(gòu)件時(shí),必須向構(gòu)件發(fā)布服務(wù)者CS提交由軟件 生成的Userpermit ;構(gòu)件發(fā)布服務(wù)者CS通過(guò)Userpermit獲取該軟件原始軟件制造者OSP 的P_KEY和軟件SW_ID ;構(gòu)件發(fā)布服務(wù)者CS驗(yàn)證P_KEY合法后會(huì)用SW_ID作為密鑰加密軟 件構(gòu)件用戶CU申請(qǐng)使用的軟件構(gòu)件文件;并會(huì)將SACA和加密后的軟件構(gòu)件文件組成構(gòu)件 單元簽名文件一起發(fā)布給軟件構(gòu)件用戶CU ;(9)原始軟件制造者OSP的軟件必須具有用SA公鑰驗(yàn)證SACA正確性的功能;當(dāng)驗(yàn)證 成功后,軟件能夠利用自身的SW_ID作為密鑰解密經(jīng)構(gòu)件發(fā)布服務(wù)者CS加密的構(gòu)件體,只 有解密成功后才能正確的使用該構(gòu)件;(10)構(gòu)件生產(chǎn)者CP生產(chǎn)的構(gòu)件必須提交給構(gòu)件發(fā)布服務(wù)者CS,由構(gòu)件發(fā)布服務(wù)者CS 保存在構(gòu)件庫(kù)中,當(dāng)只有軟件構(gòu)件用戶CU申請(qǐng)使用時(shí)才能由構(gòu)件發(fā)布服務(wù)者CS發(fā)布。
全文摘要
一種可控的構(gòu)件發(fā)布與使用保護(hù)方法,包括本方法需要建立五種角色,各個(gè)角色之間相互授權(quán),并通過(guò)數(shù)字證書、簽名、加密的方式使構(gòu)件在發(fā)布與使用過(guò)程中得到有效的控制,使只有得到認(rèn)可的原始軟件制造者OSP生產(chǎn)的軟件才能使用到合法構(gòu)件,只有得到認(rèn)可的構(gòu)件發(fā)布服務(wù)者CS才能發(fā)布合法的構(gòu)件給軟件構(gòu)件用戶CU使用;軟件構(gòu)件用戶CU只有從合法的原始軟件制造者OSP那里得到軟件才能申請(qǐng)得到合法的軟件構(gòu)件。其優(yōu)點(diǎn)是軟件制造者可以通過(guò)本方案獲得合法的軟件制造資格,從而保證生產(chǎn)的軟件能夠使用到合法的軟件構(gòu)件;軟件構(gòu)件生產(chǎn)者生產(chǎn)的構(gòu)件必須提交給構(gòu)件發(fā)布者簽名之后才能被最終用戶使用,保證了構(gòu)件的合法來(lái)源。
文檔編號(hào)G06F21/00GK101908109SQ20101022239
公開(kāi)日2010年12月8日 申請(qǐng)日期2010年7月2日 優(yōu)先權(quán)日2010年7月2日
發(fā)明者古尚利, 李峻林, 趙恒 , 陸煒, 黃偉 申請(qǐng)人:中國(guó)船舶重工集團(tuán)公司第七○九研究所