国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種許可證文件生成方法及軟件產(chǎn)品保護(hù)方法和系統(tǒng)的制作方法

      文檔序號(hào):6402788閱讀:151來(lái)源:國(guó)知局
      專(zhuān)利名稱:一種許可證文件生成方法及軟件產(chǎn)品保護(hù)方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及軟件產(chǎn)品保護(hù)領(lǐng)域,特別是涉及一種許可證文件生成方法及通過(guò)許可證文件來(lái)保護(hù)軟件的方法和系統(tǒng)。
      背景技術(shù)
      隨著信息技術(shù)的發(fā)展,軟件產(chǎn)業(yè)也越來(lái)越受到人們的重視,各種系統(tǒng)軟件產(chǎn)品和應(yīng)用軟件產(chǎn)品層出不窮。通常,軟件產(chǎn)品開(kāi)發(fā)商需要投入龐大的人力物力進(jìn)行軟件產(chǎn)品研發(fā)。但是,一旦軟件產(chǎn)品開(kāi)發(fā)成功,盜版者只需要花費(fèi)少量的精力就可以進(jìn)行仿制并低價(jià)銷(xiāo)售,大為打擊人們從事軟件產(chǎn)品開(kāi)發(fā)的積極性并嚴(yán)重阻礙軟件產(chǎn)業(yè)的發(fā)展。
      為了遏制盜版以保護(hù)知識(shí)產(chǎn)權(quán),控制軟件產(chǎn)品的應(yīng)用范圍,確保軟件產(chǎn)品所有者的合法收益,業(yè)界推出了一系列軟件產(chǎn)品保護(hù)技術(shù)來(lái)維護(hù)開(kāi)發(fā)者的正當(dāng)權(quán)益,其中包括序列號(hào)保護(hù)、密碼表保護(hù)、光盤(pán)物理保護(hù)、時(shí)間限制保護(hù)、警告(NAG)窗口保護(hù)、密鑰文件保護(hù)、代碼加殼保護(hù)、軟件狗加密、保護(hù)許可證(License)保護(hù)等多種方法。
      其中,許可證保護(hù)方法在商用軟件產(chǎn)品中得到廣泛使用。請(qǐng)參閱圖1,許可證保護(hù)方法包括生成許可證文件和通過(guò)許可證文件驗(yàn)證的步驟。首先,需要根據(jù)控制對(duì)象(軟件產(chǎn)品及其運(yùn)行的設(shè)備)的特征,利用基于非對(duì)稱密碼體制的數(shù)字簽名方法,將控制對(duì)象的設(shè)備標(biāo)識(shí)和產(chǎn)品特征進(jìn)行綁定并實(shí)施數(shù)字簽名,然后將簽名數(shù)據(jù)存放在許可證文件中發(fā)布給授權(quán)用戶;其次,在軟件產(chǎn)品運(yùn)行過(guò)程中,運(yùn)行軟件產(chǎn)品的設(shè)備需要從許可證文件中獲取數(shù)字簽名,從軟件產(chǎn)品中獲取設(shè)備標(biāo)識(shí)以實(shí)施驗(yàn)證,然后根據(jù)驗(yàn)證結(jié)果和許可證文件中的特征項(xiàng)規(guī)定啟用相應(yīng)的資源、業(yè)務(wù)和功能,實(shí)現(xiàn)軟件產(chǎn)品的受控運(yùn)行。
      現(xiàn)有技術(shù)的許可證保護(hù)方法包括單密鑰整體簽名方法、多密鑰整體簽名方法和單密鑰多段簽名方法。
      單密鑰整體簽名方法包括步驟首先,獲取公用信息;其次,獲取產(chǎn)品信息;再次,采用單一密鑰根據(jù)產(chǎn)品信息實(shí)施整體數(shù)字簽名;隨后生成許可證文件,整個(gè)許可證文件只存在一個(gè)數(shù)字簽名。如表1所示。
      表1

      在產(chǎn)品運(yùn)行時(shí),從許可證文件中獲取數(shù)字簽名,從軟件產(chǎn)品中獲取設(shè)備標(biāo)識(shí)以實(shí)施驗(yàn)證,并根據(jù)驗(yàn)證結(jié)果影響軟件產(chǎn)品的運(yùn)行。所述方法的缺陷在于首先,單密鑰引入了高風(fēng)險(xiǎn),不適用于多樣化產(chǎn)品形態(tài)的保護(hù)。由于不同的軟硬件平臺(tái)應(yīng)用狀況不同,針對(duì)某些特定平臺(tái)的安全攻擊較易發(fā)生,如針對(duì)X86-WIN32平臺(tái)環(huán)境的攻擊研究較普及,如果采用單一密鑰,則X86-WIN32平臺(tái)環(huán)境就會(huì)成為整個(gè)許可證保護(hù)安全體系的短木板。攻擊者可以通過(guò)分析特定平臺(tái)獲取密鑰信息,從而輕易實(shí)現(xiàn)對(duì)其他平臺(tái)產(chǎn)品的成功攻擊。其次,整體簽名不方便許可證控制策略的擴(kuò)展。由于簽名不可更改,整體只有一個(gè)簽名導(dǎo)致許可證文件事實(shí)上被固化,非常不利于產(chǎn)品授權(quán)信息的追加/刪除/二次組合等控制策略的實(shí)現(xiàn)。因此時(shí)的許可證文件只有一個(gè)整體簽名,在需要更改授權(quán)信息時(shí),我們首先需要找到原有許可證數(shù)據(jù)并進(jìn)行更改,將其數(shù)字簽名替換掉才能實(shí)現(xiàn),這里需要看到與第一次產(chǎn)生許可證文件相比,兩種情況下的產(chǎn)生需求是不一致的,需要定義合適的機(jī)制實(shí)現(xiàn)兩者間的統(tǒng)一協(xié)調(diào),由此將會(huì)導(dǎo)致復(fù)雜的許可證管理。
      多密鑰整體簽名方法包括步驟首先,獲取公用信息;其次,獲取產(chǎn)品信息;再次,采用多個(gè)不同的密鑰根據(jù)產(chǎn)品信息實(shí)施整體數(shù)字簽名;隨后生成許可證文件。如表2所示。
      表2

      在產(chǎn)品運(yùn)行時(shí),從許可證文件中獲取數(shù)字簽名,從軟件產(chǎn)品中獲取設(shè)備標(biāo)識(shí)以實(shí)施驗(yàn)證,并根據(jù)驗(yàn)證結(jié)果影響軟件產(chǎn)品的運(yùn)行。所述方法的缺陷在于依然存在整體簽名不利于控制策略擴(kuò)展的問(wèn)題。
      單密鑰多段簽名方法包括步驟首先,獲取公用信息;其次,獲取第一產(chǎn)品信息;再次,采用單一密鑰根據(jù)第一產(chǎn)品信息實(shí)施數(shù)字簽名;其次,獲取第二產(chǎn)品信息;再次,采用單一密鑰根據(jù)第二產(chǎn)品信息實(shí)施數(shù)字簽名;隨后生成許可證文件,如表3所示。
      表3


      在產(chǎn)品運(yùn)行時(shí),從許可證文件中獲取數(shù)字簽名,從軟件產(chǎn)品中獲取設(shè)備標(biāo)識(shí)以實(shí)施驗(yàn)證,并根據(jù)驗(yàn)證結(jié)果影響軟件產(chǎn)品的運(yùn)行。所述方法的缺陷在于首先,仍然存在單密鑰帶來(lái)的易受攻擊的缺點(diǎn)。其次,雖然分段簽名可以支持靈活的控制策略,但由于產(chǎn)品信息段之間以及產(chǎn)品信息段與許可證文件之間的關(guān)系相互孤立,對(duì)于許可證文件合法段拷貝攻擊問(wèn)題難以有效避免。如,軟件產(chǎn)品可能會(huì)分別銷(xiāo)售給第一用戶和第二用戶,其中第一用戶使用第一部分,第二用戶使用第二部分,第一部分和第二部分分別是軟件產(chǎn)品系統(tǒng)整體的一部分,假設(shè)第一用戶獲得的授權(quán)與第二用戶相比是有限的。第一用戶此時(shí)只需要將發(fā)布給第二用戶的許可證文件中與軟件產(chǎn)品相關(guān)的許可證文件合法段拷貝過(guò)來(lái)就可以使用。

      發(fā)明內(nèi)容
      本發(fā)明解決的技術(shù)問(wèn)題在于提供一種增強(qiáng)密鑰攻擊難度及增強(qiáng)合法簽名段的非法拷貝難度的許可證文件生成方法及軟件產(chǎn)品保護(hù)方法和系統(tǒng)。
      為此,本發(fā)明解決技術(shù)問(wèn)題的技術(shù)方案是提供一種許可證文件生成方法,包括步驟1)生成許可證文件模板;2)存儲(chǔ)軟件產(chǎn)品的公用信息及產(chǎn)品信息,所述公用信息至少包括版權(quán)聲明和文件序號(hào),所述產(chǎn)品信息至少包括產(chǎn)品名稱、設(shè)備名稱、控制特征和特征屬性;3)采用公用信息私鑰生成公用信息數(shù)字簽名,其明文數(shù)據(jù)至少包括前述公用信息;4)以前述產(chǎn)品信息和文件序號(hào)為明文數(shù)據(jù),采用產(chǎn)品信息私鑰生成產(chǎn)品信息數(shù)字簽名;5)將公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件。
      其中,所述步驟2)中,存儲(chǔ)至少兩個(gè)產(chǎn)品的產(chǎn)品信息;所述步驟4)中,以文件序號(hào)和產(chǎn)品信息為明文數(shù)據(jù),采用對(duì)應(yīng)的產(chǎn)品信息私鑰生成至少兩個(gè)產(chǎn)品信息數(shù)字簽名。
      其中,所述步驟2)中存儲(chǔ)的文件序號(hào)包括具體序號(hào)和文件類(lèi)型。
      其中,所述步驟3)具體包括讀取所述文件類(lèi)型;根據(jù)文件類(lèi)型選取明文數(shù)據(jù),當(dāng)文件類(lèi)型為第一預(yù)定值時(shí),選擇公用信息作為明文數(shù)據(jù),當(dāng)文件類(lèi)型為第二預(yù)定值時(shí),選擇公用信息和產(chǎn)品信息作為明文數(shù)據(jù);采用公用信息私鑰生成公用信息數(shù)字簽名。
      其中,所述許可證文件包括公用信息段和產(chǎn)品信息段;公用信息段包括前述公用信息和公用信息數(shù)字簽名;產(chǎn)品信息段包括前述產(chǎn)品信息和產(chǎn)品信息數(shù)字簽名。
      本發(fā)明還提供一種軟件產(chǎn)品保護(hù)方法,包括步驟A)生成許可證文件;B)發(fā)送許可證文件、公用信息數(shù)字簽名驗(yàn)證公鑰和產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰;C)啟動(dòng)軟件產(chǎn)品,從許可證文件中讀取公用信息數(shù)字簽名和公用信息,驗(yàn)證公用信息數(shù)字簽名;從許可證文件中讀取產(chǎn)品信息數(shù)字簽名和相應(yīng)的產(chǎn)品信息及文件序號(hào),驗(yàn)證產(chǎn)品信息數(shù)字簽名;D)如果公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名均通過(guò)驗(yàn)證,則表明許可證文件合法;如果公用信息數(shù)字簽名或產(chǎn)品信息數(shù)字簽名未通過(guò)驗(yàn)證,則表明驗(yàn)證未通過(guò),進(jìn)行驗(yàn)證失敗處理。
      其中,如果許可證文件合法,在步驟D)后還包括比對(duì)許可證文件中設(shè)備標(biāo)識(shí)和軟件產(chǎn)品運(yùn)行的設(shè)備的設(shè)備標(biāo)識(shí),如果一致則查詢控制特征和特征屬性,并根據(jù)查詢結(jié)果允許軟件產(chǎn)品的運(yùn)行;如果不一致則退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      其中,所述步驟D)中驗(yàn)證失敗處理是指退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      本發(fā)明還提供一種軟件產(chǎn)品保護(hù)系統(tǒng),包括用于生成許可證文件的許可證文件生成裝置和用于驗(yàn)證許可證文件合法性的驗(yàn)證裝置;所述許可證文件生成裝置包括信息存儲(chǔ)單元,用于在許可證文件模板中存儲(chǔ)公用信息和產(chǎn)品信息;數(shù)字簽名生成單元,用于使用公用信息私鑰以至少包含公用信息的明文數(shù)據(jù)生成公用信息數(shù)字簽名的公用信息數(shù)字簽名,使用產(chǎn)品信息私鑰以產(chǎn)品信息和文件序號(hào)為明文數(shù)據(jù)生成產(chǎn)品信息數(shù)字簽名;數(shù)字簽名存儲(chǔ)單元,用于將前述公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件;所述驗(yàn)證裝置包括公用信息數(shù)字簽名校驗(yàn)單元,用于從許可證文件獲取數(shù)字簽名和前述明文數(shù)據(jù),使用公用信息數(shù)字簽名驗(yàn)證公鑰對(duì)公用信息數(shù)字簽名進(jìn)行校驗(yàn);產(chǎn)品信息數(shù)字簽名校驗(yàn)單元,用于從許可證文件獲取數(shù)字簽名和前述明文數(shù)據(jù),使用產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰對(duì)產(chǎn)品信息數(shù)字簽名進(jìn)行校驗(yàn)。
      其中,所述驗(yàn)證裝置還包括特征查詢單元,用于在許可證文件合法性獲得校驗(yàn)通過(guò)后,查找許可證文件的期限,判斷是否超過(guò)使用期限;還用于獲取運(yùn)行軟件產(chǎn)品的設(shè)備的設(shè)備標(biāo)識(shí),與許可證文件中的設(shè)備標(biāo)識(shí)進(jìn)行比對(duì)。
      相對(duì)于現(xiàn)有技術(shù),本發(fā)明的有益效果是首先,由于本發(fā)明在許可證文件中存入公用信息,并且對(duì)公用信息數(shù)字簽名采用與產(chǎn)品信息數(shù)字簽名相異的密碼保護(hù)體制,這樣每個(gè)軟件產(chǎn)品授權(quán)信息的驗(yàn)證都需要包含對(duì)兩個(gè)數(shù)字簽名的驗(yàn)證,可以增加針對(duì)密鑰攻擊的難度;其次,由于在生成數(shù)字簽名時(shí),所采用的明文數(shù)據(jù)均包括文件序號(hào),實(shí)現(xiàn)了簽名數(shù)據(jù)與文件序號(hào)的綁定,可以有效防止簽名數(shù)據(jù)的非法拷貝。
      另外,由于不同的軟件產(chǎn)品具有不同的產(chǎn)品信息段以及相應(yīng)的數(shù)字簽名,可以靈活擴(kuò)展簽名策略;由于不同的軟件產(chǎn)品采用不同的密鑰以生成數(shù)字簽名,同樣可以增加針對(duì)密鑰攻擊的難度。
      此外,通過(guò)文件序號(hào)中許可證文件類(lèi)型的取值,可以實(shí)現(xiàn)公用信息段的局部簽名方案,從而可以支持更加靈活的分段策略,如產(chǎn)品信息段授權(quán)信息的更改、刪除和添加。


      圖1是一種現(xiàn)有技術(shù)的軟件產(chǎn)品保護(hù)方法的流程圖;圖2是本發(fā)明軟件保護(hù)系統(tǒng)的原理框圖;圖3是本發(fā)明生成許可證文件的流程圖;圖4是采用本發(fā)明方法生成的許可證文件的示意圖;圖5是本發(fā)明軟件產(chǎn)品保護(hù)方法中實(shí)現(xiàn)授權(quán)驗(yàn)證的流程;圖6是采用本發(fā)明方法生成的另一許可證文件的示意圖。
      具體實(shí)施例方式
      本發(fā)明為了實(shí)現(xiàn)軟件產(chǎn)品的保護(hù),基于數(shù)字簽名體制來(lái)生成許可證文件并實(shí)現(xiàn)許可證文件的驗(yàn)證。
      請(qǐng)參閱圖2,是本發(fā)明軟件產(chǎn)品保護(hù)系統(tǒng)的原理框圖。所述軟件產(chǎn)品保護(hù)系統(tǒng)包括用于生成許可證文件的許可證文件生成裝置和用于驗(yàn)證許可證文件合法性的驗(yàn)證裝置。其中,許可證文件生成裝置和驗(yàn)證裝置分別采用對(duì)應(yīng)的私鑰和公鑰完成許可證文件數(shù)字簽名的生成和校驗(yàn)。
      所述許可證文件生成裝置包括信息存儲(chǔ)單元、數(shù)字簽名生成單元和數(shù)字簽名存儲(chǔ)單元。
      所述信息存儲(chǔ)單元用于在許可證文件模板中存儲(chǔ)公用信息和產(chǎn)品信息。
      其中,所述公用信息至少包括版權(quán)聲明和文件序號(hào),版權(quán)聲明用于提供與許可證發(fā)布相關(guān)的授權(quán)方信息,文件序號(hào)用于標(biāo)識(shí)許可證文件,一個(gè)文件序號(hào)對(duì)應(yīng)于一個(gè)許可證文件,同樣一個(gè)許可證文件對(duì)應(yīng)于一個(gè)文件序號(hào)。
      所述產(chǎn)品信息至少包括產(chǎn)品名稱、設(shè)備標(biāo)識(shí)、控制特征和特征屬性,產(chǎn)品名稱用于標(biāo)識(shí)授權(quán)的軟件產(chǎn)品類(lèi)型及版本,設(shè)備標(biāo)識(shí)用于確定許可證授權(quán)軟件產(chǎn)品運(yùn)行的設(shè)備環(huán)境,控制特征和特征屬性用于給出授權(quán)的具體項(xiàng)目。
      本發(fā)明中,許可證文件生成裝置可以采用多種途徑獲得所述設(shè)備標(biāo)識(shí)。例如,當(dāng)軟件產(chǎn)品是適用于嵌入式設(shè)備的專(zhuān)用軟件產(chǎn)品時(shí),可以通過(guò)合同訂單或生產(chǎn)嵌入式設(shè)備時(shí)自動(dòng)獲取;當(dāng)軟件產(chǎn)品是通用軟件產(chǎn)品時(shí),可以通過(guò)接收并解析授權(quán)用戶的登陸信息等途徑獲取。
      許可證文件生成裝置同樣可以采用多種途徑獲得所述控制特征和特征屬性。例如,可以通過(guò)接收并解析授權(quán)方和授權(quán)用戶的合約或授權(quán)用戶的請(qǐng)求信息獲取。
      所述數(shù)字簽名生成單元包括公用信息數(shù)字簽名生成單元和產(chǎn)品信息數(shù)字簽名生成單元。所述公用信息數(shù)字簽名生成單元使用公用信息私鑰,以公用信息為明文數(shù)據(jù)生成公用信息數(shù)字簽名;所述產(chǎn)品信息數(shù)字簽名生成單元使用產(chǎn)品信息私鑰,以產(chǎn)品信息和文件序號(hào)為明文數(shù)據(jù)生成產(chǎn)品信息數(shù)字簽名。
      需要進(jìn)一步說(shuō)明的是,為了增加對(duì)密鑰攻擊的難度,所述公用信息私鑰和產(chǎn)品信息私鑰是不同的密鑰。
      此外,為了實(shí)現(xiàn)多產(chǎn)品同時(shí)授權(quán),所述許可證文件生成裝置可以在一個(gè)許可證文件中存儲(chǔ)多段產(chǎn)品信息,并采用不同的產(chǎn)品信息私鑰生成對(duì)應(yīng)的產(chǎn)品信息數(shù)字簽名。由于不同的軟件產(chǎn)品采用不同的密鑰以生成數(shù)字簽名,同樣可以增加針對(duì)密鑰攻擊的難度。
      在本發(fā)明的另一實(shí)施例中,通過(guò)文件序號(hào)來(lái)實(shí)現(xiàn)對(duì)公用信息數(shù)字簽名生成單元的控制以分別完成整體簽名和局部簽名。所述文件序號(hào)包括具體序號(hào)和文件類(lèi)型兩項(xiàng)參數(shù),當(dāng)文件類(lèi)型為第一預(yù)定值時(shí),所述公用信息數(shù)字簽名生成單元使用公用信息私鑰,以公用信息為明文數(shù)據(jù)生成公用信息數(shù)字簽名;當(dāng)文件類(lèi)型為第二預(yù)定值時(shí),所述公用信息數(shù)字簽名生成單元使用公用信息私鑰,以公用信息和產(chǎn)品信息為明文數(shù)據(jù)生成公用信息數(shù)字簽名。
      所述數(shù)字簽名存儲(chǔ)單元將前述公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件。
      所述驗(yàn)證裝置包括公用信息數(shù)字簽名校驗(yàn)單元和產(chǎn)品信息數(shù)字簽名校驗(yàn)單元。所述驗(yàn)證裝置通過(guò)安全的通信途徑(如采用加密方式通過(guò)網(wǎng)絡(luò)傳輸,或記錄在軟件產(chǎn)品光盤(pán)中)獲得許可證文件、公用信息數(shù)字簽名驗(yàn)證公鑰和產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰。
      當(dāng)軟件產(chǎn)品在設(shè)備上啟動(dòng)時(shí),驗(yàn)證裝置開(kāi)始工作。
      所述公用信息數(shù)字簽名校驗(yàn)單元從許可證文件獲取數(shù)字簽名和前述明文數(shù)據(jù),使用公用信息數(shù)字簽名驗(yàn)證公鑰對(duì)公用信息數(shù)字簽名進(jìn)行校驗(yàn)。
      所述產(chǎn)品信息數(shù)字簽名校驗(yàn)單元從許可證文件獲取數(shù)字簽名和前述明文數(shù)據(jù),使用產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰對(duì)產(chǎn)品信息數(shù)字簽名進(jìn)行校驗(yàn)。
      當(dāng)且僅當(dāng)公用信息段數(shù)字簽名和產(chǎn)品信息段數(shù)字簽名驗(yàn)證均通過(guò),軟件產(chǎn)品的許可證文件授權(quán)校驗(yàn)通過(guò)。
      所述驗(yàn)證裝置還包括特征查詢單元,在許可證文件合法性獲得校驗(yàn)通過(guò)后,特征查詢單元查找許可證文件的期限,判斷是否超過(guò)使用期限。特征查詢單元還獲取運(yùn)行軟件產(chǎn)品的設(shè)備的設(shè)備標(biāo)識(shí),與許可證文件中的設(shè)備標(biāo)識(shí)進(jìn)行比對(duì),如果一致,則根據(jù)許可證文件的控制特征和特征屬性允許軟件產(chǎn)品的運(yùn)行;如果不一致,則退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      請(qǐng)參閱圖3,是本發(fā)明生成許可證文件的流程。
      首先,生成許可證文件模板,存儲(chǔ)軟件產(chǎn)品的公用信息及產(chǎn)品信息。
      其中,所述公用信息至少包括版權(quán)聲明和文件序號(hào);所述產(chǎn)品信息至少包括產(chǎn)品名稱、設(shè)備名稱、控制特征和特征屬性。
      其次,采用公用信息私鑰生成公用信息數(shù)字簽名,其中明文數(shù)據(jù)為前述公用信息。
      采用產(chǎn)品信息私鑰生成產(chǎn)品信息數(shù)字簽名,其中明文數(shù)據(jù)為前述產(chǎn)品信息和文件序號(hào)。
      隨后,將公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件(圖4參照)。并發(fā)布所述許可證文件給授權(quán)用戶。
      所述許可證文件包括公用信息段和產(chǎn)品信息段;公用信息段包括前述公用信息和公用信息數(shù)字簽名;產(chǎn)品信息段包括前述產(chǎn)品信息和產(chǎn)品信息數(shù)字簽名。
      可以理解,本發(fā)明中,由于在許可證文件中存入公用信息段,并且對(duì)公用信息段的數(shù)字簽名采用與產(chǎn)品信息段數(shù)字簽名相異的密碼保護(hù)體制,這樣每個(gè)軟件產(chǎn)品授權(quán)信息的驗(yàn)證都需要包含對(duì)兩個(gè)數(shù)字簽名的驗(yàn)證,可以增加針對(duì)密鑰攻擊的難度;由于在生成數(shù)字簽名時(shí),所采用的明文數(shù)據(jù)均包括文件序號(hào),實(shí)現(xiàn)了簽名數(shù)據(jù)與文件序號(hào)的綁定,可以有效防止簽名數(shù)據(jù)的非法拷貝。
      請(qǐng)參閱圖5,是通過(guò)所述許可證文件實(shí)現(xiàn)授權(quán)驗(yàn)證的流程。
      首先,運(yùn)行軟件產(chǎn)品的設(shè)備通過(guò)安全的通信途徑得到許可證文件、公用信息數(shù)字簽名驗(yàn)證公鑰和產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰。
      從許可證文件中讀取公用信息數(shù)字簽名和公用信息,驗(yàn)證公用信息數(shù)字簽名,如果數(shù)字簽名驗(yàn)證通過(guò),則繼續(xù)驗(yàn)證產(chǎn)品信息數(shù)字簽名;否則進(jìn)行驗(yàn)證失敗處理(如,退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行)。
      從許可證文件中讀取產(chǎn)品信息數(shù)字簽名和相應(yīng)的產(chǎn)品信息,驗(yàn)證產(chǎn)品信息數(shù)字簽名,如果數(shù)字簽名驗(yàn)證通過(guò),則表明許可證文件合法;否則進(jìn)行驗(yàn)證失敗處理(如,退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行)。
      當(dāng)許可證文件授權(quán)驗(yàn)證通過(guò)后,查找許可證文件的期限,判斷是否超過(guò)使用期限。獲取運(yùn)行軟件產(chǎn)品的設(shè)備的設(shè)備標(biāo)識(shí),與許可證文件中的設(shè)備標(biāo)識(shí)進(jìn)行比對(duì),如果一致,則根據(jù)許可證文件的控制特征和特征屬性允許軟件產(chǎn)品的運(yùn)行;如果不一致,則退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      請(qǐng)參閱圖6,本發(fā)明可以通過(guò)一個(gè)許可證文件實(shí)現(xiàn)多個(gè)軟件產(chǎn)品的組合授權(quán)。其中,在生成許可證文件時(shí),針對(duì)第一軟件產(chǎn)品,采用第一產(chǎn)品信息私鑰生成第一產(chǎn)品信息數(shù)字簽名,其中明文數(shù)據(jù)為文件序號(hào)和相應(yīng)于第一軟件產(chǎn)品的產(chǎn)品信息;針對(duì)第N項(xiàng)軟件產(chǎn)品,采用第N項(xiàng)產(chǎn)品信息私鑰生成第N項(xiàng)產(chǎn)品信息數(shù)字簽名,其中明文數(shù)據(jù)為文件序號(hào)和相應(yīng)于第N項(xiàng)軟件產(chǎn)品的產(chǎn)品信息??梢岳斫獾氖?,由于不同的軟件產(chǎn)品具有不同的產(chǎn)品信息段以及相應(yīng)的數(shù)字簽名,可以靈活擴(kuò)展簽名策略;由于不同的軟件產(chǎn)品采用不同的密鑰以生成數(shù)字簽名,同樣可以增加針對(duì)密鑰攻擊的難度。
      為了便于對(duì)本發(fā)明的理解,下面結(jié)合實(shí)施例對(duì)本發(fā)明進(jìn)行描述。
      本實(shí)施例中生成許可證文件時(shí),首先生成許可證文件模板,存儲(chǔ)公用信息和產(chǎn)品信息。其中所述公用信息ComFeature至少包括版權(quán)聲明、文件序號(hào)FileIndex;所述產(chǎn)品信息PrdFeatureN至少包括產(chǎn)品名稱、設(shè)備名稱、控制特征和特征屬性。
      為了支持更加靈活的授權(quán)策略,本發(fā)明中公用信息段的文件序號(hào)FileIndex包括IndexNumber和IndexType兩項(xiàng)參數(shù);其中,IndexNumber為許可證文件的具體序號(hào);IndexType為許可證文件類(lèi)型,用于確定公用信息段簽名方案是采用整體簽名還是局部簽名。
      其次,生成對(duì)公用信息的數(shù)字簽名和產(chǎn)品信息的數(shù)字簽名。
      本實(shí)施例中,采用Sigkc(M)作為生成數(shù)字簽名的變換函數(shù),其中,kc為私鑰,M為待簽名的明文數(shù)據(jù)。
      假定kc0作為計(jì)算公用信息數(shù)字簽名的私鑰,計(jì)算公用信息數(shù)字簽名時(shí),首先確定許可證文件類(lèi)型IndexType的具體取值。
      如果IndexType為整體簽名類(lèi)型,則用于簽名的原始數(shù)據(jù)包括整個(gè)許可證文件,即公用信息段數(shù)字簽名ComSignature=Sigkc0(ComFeature||PrdFeaturel||..||PrdFeatureN)。
      如果IndexType為局部簽名類(lèi)型,則用于簽名的原始數(shù)據(jù)僅僅包括公用信息段內(nèi)容,即公用信息數(shù)字簽名ComSignature=Sigkc0(ComFeature)。
      假定kcN作為計(jì)算第N項(xiàng)產(chǎn)品信息數(shù)字簽名的私鑰,用于簽名的原始數(shù)據(jù)包括相應(yīng)的產(chǎn)品信息段內(nèi)容及許可證文件序號(hào)。即產(chǎn)品信息數(shù)字簽名PrdSignatureN=SigkcN(PrdFeatureN||ComFeature文件序號(hào))。其中,N的取值為自然數(shù),也就是說(shuō),一個(gè)許可證文件可以包含對(duì)多個(gè)產(chǎn)品的授權(quán),每個(gè)產(chǎn)品信息段的數(shù)字簽名所使用的密鑰均不相同。
      隨后,將得到的公用信息數(shù)字簽名ComSignature和產(chǎn)品信息數(shù)字簽名PrdSignatureN組合在許可證文件中并發(fā)布所述許可證文件給授權(quán)用戶。
      最后形成的許可證文件的結(jié)構(gòu)可參照?qǐng)D5。所述許可證文件包括公用信息段和產(chǎn)品信息段。
      所述公用信息段包括公用信息ComFeature和公用信息段簽名ComSignature。其中,公用信息ComFeature至少包括版權(quán)聲明、文件序號(hào)FileIndex;所述文件序號(hào)FileIndex包括IndexNumber和IndexType兩項(xiàng)參數(shù)。
      所述產(chǎn)品信息段包括產(chǎn)品信息PrdFeatureN和產(chǎn)品信息段數(shù)字簽名PrdSignatureN。其中,所述產(chǎn)品信息至少包括產(chǎn)品名稱、設(shè)備標(biāo)識(shí)、控制特征和特征屬性。
      可以理解的是,本發(fā)明中,通過(guò)文件序號(hào)中許可證文件類(lèi)型IndexType的取值,可以實(shí)現(xiàn)公用信息段的局部簽名方案,從而可以支持更加靈活的分段策略,如產(chǎn)品信息段授權(quán)信息的更改、刪除和添加。
      本實(shí)施例中,通過(guò)許可證文件進(jìn)行驗(yàn)證時(shí),采用Verkp(S,M)作為驗(yàn)證數(shù)字簽名的變換函數(shù),其中kp為公鑰,S為待驗(yàn)證的數(shù)字簽名,M為數(shù)字簽名使用的明文數(shù)據(jù);在Verkp(S,M)變換中,采用Hash(M)作為壓縮變換函數(shù),其中M為輸入數(shù)據(jù);采用Tkp(S)作為非對(duì)稱密碼體制中使用公鑰kp進(jìn)行加密變換的函數(shù);若Hash(M)與Tkp(S)相等,則Verkp(S,M)為真,數(shù)字簽名驗(yàn)證通過(guò),否則數(shù)字簽名驗(yàn)證失敗。
      首先,運(yùn)行軟件產(chǎn)品的設(shè)備通過(guò)安全的通信途徑得到許可證文件、公用信息段簽名驗(yàn)證公鑰kp0、產(chǎn)品信息段簽名驗(yàn)證公鑰kpA。
      驗(yàn)證公用信息段數(shù)字簽名時(shí),從許可證文件中讀取公用信息ComFeature和公用信息段簽名ComSignature,以kp0為公鑰計(jì)算Verkp0(ComSignature,ComFeature)。若Verkp0(ComSignature,ComFeature)為真,數(shù)字簽名驗(yàn)證通過(guò),否則數(shù)字簽名驗(yàn)證失敗。
      驗(yàn)證第N項(xiàng)產(chǎn)品信息段數(shù)字簽名時(shí),從許可證文件中讀取產(chǎn)品信息PrdFeatureN、文件序號(hào)和相應(yīng)的產(chǎn)品信息段簽名ComSignatureN,以kpN為公鑰計(jì)算VerkpN(PrdSignatureN,PrdFeatureN)。若VerkpN(PrdSignatureN,PrdFeatureN)為真,數(shù)字簽名驗(yàn)證通過(guò),否則數(shù)字簽名驗(yàn)證失敗。
      當(dāng)且僅當(dāng)公用信息段數(shù)字簽名和產(chǎn)品信息段數(shù)字簽名驗(yàn)證均通過(guò),第N項(xiàng)軟件產(chǎn)品的授權(quán)校驗(yàn)通過(guò)。
      當(dāng)許可證文件授權(quán)驗(yàn)證通過(guò)后,查找許可證文件的期限,判斷是否超過(guò)使用期限。獲取運(yùn)行軟件產(chǎn)品的設(shè)備的設(shè)備標(biāo)識(shí),與許可證文件中的設(shè)備標(biāo)識(shí)進(jìn)行比對(duì),如果一致,則根據(jù)許可證文件的控制特征和特征屬性允許軟件產(chǎn)品的運(yùn)行;如果不一致,則退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      可以理解的是,本發(fā)明采用數(shù)字簽名來(lái)實(shí)現(xiàn)許可證授權(quán)的驗(yàn)證,可以確保授權(quán)信息不可否認(rèn)、難以偽造。通常,一個(gè)合格的數(shù)字簽名方案滿足以下特征接收方能夠確認(rèn)或證實(shí)發(fā)送方的簽名;發(fā)送方發(fā)出的簽名消息不可否認(rèn);接收方對(duì)收到的簽名消息不可否認(rèn);第三方可以確認(rèn)收發(fā)雙方的消息傳送,但無(wú)法偽造。歸納起來(lái)就是數(shù)字簽名方案具有簽名驗(yàn)證、不可否認(rèn)、難以偽造的特點(diǎn)。
      數(shù)字簽名體制一般包含兩個(gè)環(huán)節(jié)簽名和驗(yàn)證。一般使用非對(duì)稱密碼來(lái)實(shí)現(xiàn)數(shù)字簽名,即分別使用私鑰和公鑰完成數(shù)字簽名的產(chǎn)生和校驗(yàn),常用的算法包括RSA、ECDSA、Rabin、ElGamel等。
      本發(fā)明中,可以采用兩種方法來(lái)實(shí)現(xiàn)數(shù)字簽名一種是對(duì)整體信息的簽名,所有信息都需要經(jīng)過(guò)密碼變換以產(chǎn)生數(shù)字簽名;一種是對(duì)壓縮信息的簽名,原始信息經(jīng)壓縮后進(jìn)行密碼變換以產(chǎn)生數(shù)字簽名,該數(shù)字簽名附加在原始信息之后。
      本發(fā)明中,可以采用兩類(lèi)數(shù)字簽名一類(lèi)是確定性的數(shù)字簽名,其明文和密文一一對(duì)應(yīng);一類(lèi)是隨機(jī)化的數(shù)字簽名,其數(shù)字簽名隨機(jī)變化,取決于簽名算法中的隨機(jī)參數(shù)取值,一個(gè)明文可能有多個(gè)合法的數(shù)字簽名。
      以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
      權(quán)利要求
      1.一種許可證文件生成方法,其特征在于,包括步驟1)生成許可證文件模板;2)存儲(chǔ)軟件產(chǎn)品的公用信息及產(chǎn)品信息,所述公用信息至少包括版權(quán)聲明和文件序號(hào),所述產(chǎn)品信息至少包括產(chǎn)品名稱、設(shè)備名稱、控制特征和特征屬性;3)采用公用信息私鑰生成公用信息數(shù)字簽名,其明文數(shù)據(jù)至少包括前述公用信息;4)以前述產(chǎn)品信息和文件序號(hào)為明文數(shù)據(jù),采用產(chǎn)品信息私鑰生成產(chǎn)品信息數(shù)字簽名;5)將公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件。
      2.根據(jù)權(quán)利要求1所述的許可證文件生成方法,其特征在于所述步驟2)中,存儲(chǔ)至少兩個(gè)產(chǎn)品的產(chǎn)品信息;所述步驟4)中,以文件序號(hào)和產(chǎn)品信息為明文數(shù)據(jù),采用對(duì)應(yīng)的產(chǎn)品信息私鑰生成至少兩個(gè)產(chǎn)品信息數(shù)字簽名。
      3.根據(jù)權(quán)利要求1所述的許可證文件生成方法,其特征在于所述步驟2)中存儲(chǔ)的文件序號(hào)包括具體序號(hào)和文件類(lèi)型。
      4.根據(jù)權(quán)利要求3所述的許可證文件生成方法,其特征在于所述步驟3)具體包括讀取所述文件類(lèi)型;根據(jù)文件類(lèi)型選取明文數(shù)據(jù),當(dāng)文件類(lèi)型為第一預(yù)定值時(shí),選擇公用信息作為明文數(shù)據(jù),當(dāng)文件類(lèi)型為第二預(yù)定值時(shí),選擇公用信息和產(chǎn)品信息作為明文數(shù)據(jù);采用公用信息私鑰生成公用信息數(shù)字簽名。
      5.根據(jù)權(quán)利要求1所述的許可證文件生成方法,其特征在于所述許可證文件包括公用信息段和產(chǎn)品信息段;公用信息段包括前述公用信息和公用信息數(shù)字簽名;產(chǎn)品信息段包括前述產(chǎn)品信息和產(chǎn)品信息數(shù)字簽名。
      6.一種軟件產(chǎn)品保護(hù)方法,其特征在于,包括步驟A)生成許可證文件;B)發(fā)送許可證文件、公用信息數(shù)字簽名驗(yàn)證公鑰和產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰;C)啟動(dòng)軟件產(chǎn)品,從許可證文件中讀取公用信息數(shù)字簽名和公用信息,驗(yàn)證公用信息數(shù)字簽名;從許可證文件中讀取產(chǎn)品信息數(shù)字簽名和相應(yīng)的產(chǎn)品信息及文件序號(hào),驗(yàn)證產(chǎn)品信息數(shù)字簽名;D)如果公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名均通過(guò)驗(yàn)證,則表明許可證文件合法;如果公用信息數(shù)字簽名或產(chǎn)品信息數(shù)字簽名未通過(guò)驗(yàn)證,則表明驗(yàn)證未通過(guò),進(jìn)行驗(yàn)證失敗處理。
      7.根據(jù)權(quán)利要求6所述的軟件產(chǎn)品保護(hù)方法,其特征在于如果許可證文件合法,在步驟D)后還包括比對(duì)許可證文件中設(shè)備標(biāo)識(shí)和軟件產(chǎn)品運(yùn)行的設(shè)備的設(shè)備標(biāo)識(shí),如果一致則查詢控制特征和特征屬性,并根據(jù)查詢結(jié)果允許軟件產(chǎn)品的運(yùn)行;如果不一致則退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      8.根據(jù)權(quán)利要求6所述的軟件產(chǎn)品保護(hù)方法,其特征在于所述步驟D)中驗(yàn)證失敗處理是指退出軟件產(chǎn)品的運(yùn)行或只允許軟件產(chǎn)品的受限運(yùn)行。
      9.一種軟件產(chǎn)品保護(hù)系統(tǒng),包括用于生成許可證文件的許可證文件生成裝置和用于驗(yàn)證許可證文件合法性的驗(yàn)證裝置;其特征在于,所述許可證文件生成裝置包括信息存儲(chǔ)單元,用于在許可證文件模板中存儲(chǔ)公用信息和產(chǎn)品信息;數(shù)字簽名生成單元,用于使用公用信息私鑰以至少包含公用信息的明文數(shù)據(jù)生成公用信息數(shù)字簽名的公用信息數(shù)字簽名,使用產(chǎn)品信息私鑰以產(chǎn)品信息和文件序號(hào)為明文數(shù)據(jù)生成產(chǎn)品信息數(shù)字簽名;數(shù)字簽名存儲(chǔ)單元,用于將前述公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件;所述驗(yàn)證裝置包括公用信息數(shù)字簽名校驗(yàn)單元,用于從許可證文件獲取數(shù)字簽名和前述明文數(shù)據(jù),使用公用信息數(shù)字簽名驗(yàn)證公鑰對(duì)公用信息數(shù)字簽名進(jìn)行校驗(yàn);產(chǎn)品信息數(shù)字簽名校驗(yàn)單元,用于從許可證文件獲取數(shù)字簽名和前述明文數(shù)據(jù),使用產(chǎn)品信息數(shù)字簽名驗(yàn)證公鑰對(duì)產(chǎn)品信息數(shù)字簽名進(jìn)行校驗(yàn)。
      10.根據(jù)權(quán)利要求9所述的軟件產(chǎn)品保護(hù)系統(tǒng),其特征在于所述驗(yàn)證裝置還包括特征查詢單元,用于在許可證文件合法性獲得校驗(yàn)通過(guò)后,查找許可證文件的期限,判斷是否超過(guò)使用期限;還用于獲取運(yùn)行軟件產(chǎn)品的設(shè)備的設(shè)備標(biāo)識(shí),與許可證文件中的設(shè)備標(biāo)識(shí)進(jìn)行比對(duì)。
      全文摘要
      本發(fā)明公開(kāi)了一種許可證文件生成方法,包括步驟生成許可證文件模板;存儲(chǔ)軟件產(chǎn)品的公用信息及產(chǎn)品信息;采用公用信息私鑰生成公用信息數(shù)字簽名,其明文數(shù)據(jù)至少包括前述公用信息;采用產(chǎn)品信息私鑰生成產(chǎn)品信息數(shù)字簽名;將公用信息數(shù)字簽名和產(chǎn)品信息數(shù)字簽名存入許可證文件模板,形成許可證文件。本發(fā)明還涉及一種軟件產(chǎn)品保護(hù)方法和系統(tǒng)。
      文檔編號(hào)G06F1/00GK1704863SQ20041004249
      公開(kāi)日2005年12月7日 申請(qǐng)日期2004年5月25日 優(yōu)先權(quán)日2004年5月25日
      發(fā)明者范云松, 何迎春, 謝永政, 林中 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1