專利名稱:一種對(duì)軟件的正版性進(jìn)行遠(yuǎn)程驗(yàn)證的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件保護(hù)技術(shù),特別涉及一種遠(yuǎn)程對(duì)軟件的正版性進(jìn)行驗(yàn)證 的方法。
背景技術(shù):
使用軟件保護(hù)裝置是實(shí)現(xiàn)軟件安全保護(hù)和版權(quán)保護(hù)的主要手段。裝置中 存儲(chǔ)著軟件的使用許可,例如決定軟件是否可以被使用,那些模塊被使用等 等。軟件保護(hù)裝置特指一種附加在計(jì)算機(jī)接口 (比如,USB接口、串口、并 口等接口 )上的硬件設(shè)備,對(duì)運(yùn)行在計(jì)算機(jī)上的特定的軟件進(jìn)行軟件安全保 護(hù)和版權(quán)保護(hù)?,F(xiàn)代的軟件保護(hù)裝置,例如USB加密鎖,采用高強(qiáng)度智能 卡芯片和先進(jìn)的密碼學(xué)技術(shù),具有一定的運(yùn)算和存儲(chǔ)能力,同時(shí)難以被破解 和復(fù)制,在高強(qiáng)度軟件版權(quán)保護(hù)中具有廣泛的應(yīng)用。
為了最大程度保護(hù)軟件不被盜版,最先進(jìn)的軟件保護(hù)裝置采用了代碼移 植的功能,即允許軟件開(kāi)發(fā)商將軟件的 一部分功能移植到軟件保護(hù)裝置內(nèi)部 去執(zhí)行。因?yàn)檐浖Wo(hù)裝置本身為一種高度安全的設(shè)備,例如采用了智能卡 芯片,所以硬件本身幾乎不可能被復(fù)制,而其中保存的被移植的軟件功能也 不可能被讀出來(lái)。這樣,只要破解者不能成功猜出軟件保護(hù)裝置內(nèi)部的移植 代碼,就不可能讓軟件離開(kāi)軟件保護(hù)裝置而獨(dú)立運(yùn)行,從而保護(hù)軟件不被盜 版。
但是,并非所有軟件開(kāi)發(fā)商都能充分使用軟件保護(hù)裝置的先進(jìn)功能,要 么是因?yàn)殚_(kāi)發(fā)商在加密過(guò)程中所采用的技術(shù)含量較低,要么開(kāi)發(fā)商的軟件本 身不適合采用高強(qiáng)度的加密。在一些情況下,軟件開(kāi)發(fā)商的軟件可能被破解, 盜版者可以制作出與軟件開(kāi)發(fā)商外觀極為相似甚至完全相同的盜版軟件保護(hù)裝置,并進(jìn)行非法銷售。這種方式已經(jīng)成為商業(yè)軟件領(lǐng)域中最普遍的盜版 形式,由于利益的驅(qū)使,軟件開(kāi)發(fā)商的代理商也往往加入到銷售盜版的隊(duì)伍 中來(lái)。
蒙受損失的不僅僅是軟件開(kāi)發(fā)商,最終用戶因此所蒙受的損失更大最 終用戶經(jīng)常花費(fèi)了正版軟件的成本結(jié)果購(gòu)買了盜版軟件。 一方面絕大多數(shù)軟 件沒(méi)有實(shí)現(xiàn)實(shí)名注冊(cè),即便有注冊(cè)過(guò)程軟件其注冊(cè)信息也往往是虛假的,另 一方面銷售盜版的角色往往是合法代理或者最終用戶無(wú)法鑒別的仿冒代理, 所以最終用戶通常很難鑒別自己所購(gòu)買的軟件是否為正版。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明提出了一種遠(yuǎn)程對(duì)軟件正版性進(jìn)行驗(yàn)證的方 法。通過(guò)在軟件保護(hù)裝置中增加一個(gè)正版驗(yàn)證模塊,并架設(shè)一個(gè)遠(yuǎn)程驗(yàn)證服 務(wù)器,用戶可以自行對(duì)所購(gòu)買的軟件進(jìn)行正版性驗(yàn)證,防止購(gòu)買假冒盜版產(chǎn)品。
根據(jù)本發(fā)明的一個(gè)方面,提供一種對(duì)軟件的正版性進(jìn)行遠(yuǎn)程驗(yàn)證的方 法,其特征在于,該方法包括步驟
(1) 將軟件保護(hù)裝置與本地計(jì)算機(jī)相連接;
(2) 本地計(jì)算機(jī)上運(yùn)行的軟件與遠(yuǎn)程服務(wù)器通過(guò)網(wǎng)絡(luò)連接;
(3) 通過(guò)正版驗(yàn)證模塊對(duì)遠(yuǎn)程服務(wù)器作出響應(yīng);
(4) 遠(yuǎn)程服務(wù)器驗(yàn)證響應(yīng)結(jié)果,確定軟件是否為正版。 根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,在步驟(3)中,通過(guò)正版驗(yàn)
證模塊對(duì)遠(yuǎn)程服務(wù)器的挑戰(zhàn)作出響應(yīng)。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,在步驟(3)中,正版驗(yàn)證模 塊接受遠(yuǎn)程服務(wù)器發(fā)來(lái)的挑戰(zhàn)數(shù)據(jù),對(duì)挑戰(zhàn)數(shù)據(jù)作出響應(yīng)。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,所述的挑戰(zhàn)數(shù)據(jù)是隨機(jī)數(shù)或者 不重復(fù)的數(shù)據(jù)。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,不重復(fù)的數(shù)據(jù)是時(shí)間戳。根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,對(duì)應(yīng)的響應(yīng)過(guò)程是對(duì)挑戰(zhàn)數(shù) 據(jù)進(jìn)行密碼學(xué)運(yùn)算處理。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,處理算法包括數(shù)字簽名、計(jì) 算MAC驗(yàn)證碼、對(duì)數(shù)據(jù)進(jìn)行加密運(yùn)算。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,對(duì)應(yīng)的服務(wù)器驗(yàn)證過(guò)程為對(duì) 正版驗(yàn)證模塊計(jì)算出來(lái)的響應(yīng)進(jìn)行驗(yàn)證,如果驗(yàn)證正確則認(rèn)為軟件為正版。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,驗(yàn)證方法與正版驗(yàn)證模塊所采 用的密碼學(xué)處理算法相對(duì)應(yīng)。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,遠(yuǎn)程服務(wù)器與正版驗(yàn)證模塊所 使用的密碼學(xué)算法的密鑰是相同的或者成對(duì)的。
根據(jù)本發(fā)明的一個(gè)方面,其特征還在于,在步驟(2)中,本地計(jì)算機(jī) 與遠(yuǎn)程服務(wù)器之間的連接采用C/S結(jié)構(gòu)或者B/S結(jié)構(gòu)。
圖1為本發(fā)明的示意圖。
圖2為根據(jù)本發(fā)明的一種實(shí)施方式的流程圖。
具體實(shí)施例方式
本發(fā)明中的軟件保護(hù)裝置功能模塊為對(duì)軟件實(shí)現(xiàn)保護(hù)的模塊,例如深思 洛克精銳系列產(chǎn)品的代碼移植功能模塊。軟件保護(hù)裝置的功能模塊分為多 種,都屬于行業(yè)內(nèi)成熟和公開(kāi)的技術(shù)。
本發(fā)明的具體驗(yàn)證過(guò)程為
A、 用戶將軟件保護(hù)裝置連接到本地計(jì)算機(jī)上;
B、 本地運(yùn)行的軟件與遠(yuǎn)程服務(wù)器進(jìn)行連接,通過(guò)正版驗(yàn)證模塊來(lái)對(duì)遠(yuǎn) 程服務(wù)器的挑戰(zhàn)(challenge)作出響應(yīng);
C、 遠(yuǎn)程服務(wù)器驗(yàn)證響應(yīng)結(jié)果,確定軟件是否為正版。
其中,所述的正版驗(yàn)證模塊可以是一個(gè)專用的硬件模塊,也可以是軟件保護(hù)程序中的一段固件代碼。在步驟B中正版驗(yàn)證模塊完成的功能為接受 遠(yuǎn)程服務(wù)器發(fā)來(lái)的挑戰(zhàn)數(shù)據(jù),對(duì)挑戰(zhàn)數(shù)據(jù)作出響應(yīng)。
所述的挑戰(zhàn)數(shù)據(jù)可以是一個(gè)隨機(jī)數(shù),也可以是一段不會(huì)重復(fù)的數(shù)據(jù),如 時(shí)間戳。
對(duì)應(yīng)的響應(yīng)過(guò)程為對(duì)挑戰(zhàn)數(shù)據(jù)進(jìn)行密碼學(xué)運(yùn)算處理。處理算法包括 數(shù)字簽名、計(jì)算MAC驗(yàn)證碼、對(duì)數(shù)據(jù)進(jìn)行加密運(yùn)算。
對(duì)應(yīng)的服務(wù)器驗(yàn)證過(guò)程為對(duì)正版驗(yàn)證才莫塊計(jì)算出來(lái)的響應(yīng)進(jìn)行驗(yàn)證, 如果驗(yàn)證正確則認(rèn)為軟件為正版。驗(yàn)證方法與正版驗(yàn)證模塊所采用的密碼學(xué) 處理算法相對(duì)應(yīng)。
遠(yuǎn)程服務(wù)器與正版驗(yàn)證模塊所使用的密碼學(xué)算法的密鑰是相同的或者 成對(duì)的,能夠?qū)崿F(xiàn)互相驗(yàn)證的目標(biāo)。
步驟B中,本地與遠(yuǎn)程服務(wù)器之間的連接既可以采用C/S結(jié)構(gòu),也可 以采用B/S結(jié)構(gòu)。
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例進(jìn)行詳細(xì)描述。
本實(shí)施例中,軟件保護(hù)裝置中包含一對(duì)專用的RSA密鑰,其中私鑰Kr 被軟件保護(hù)裝置中的正版驗(yàn)證模塊所使用,用于對(duì)遠(yuǎn)程服務(wù)器所發(fā)出的挑戰(zhàn) 數(shù)據(jù)進(jìn)行數(shù)字簽名。公鑰Kp遠(yuǎn)程服務(wù)器保留有備份,用于對(duì)數(shù)字簽名進(jìn)行 驗(yàn)證。
所述的正版模塊為一段固件程序代碼,可以通過(guò)命令的方式被訪問(wèn)。代 碼的功能為接收一段定長(zhǎng)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行數(shù)字簽名。
本實(shí)施例中遠(yuǎn)程服務(wù)器提供Web服務(wù),即驗(yàn)證過(guò)程為B/S架構(gòu)。 參考圖2,本實(shí)施例的具體操作步驟為
步驟101:將軟件保護(hù)裝置連接到本地計(jì)算機(jī)上,啟動(dòng)瀏覽器軟件連接 遠(yuǎn)程驗(yàn)證服務(wù)器;
步驟102:如果用戶為首次使用,可能需要下載相關(guān)的控件以實(shí)現(xiàn)對(duì)軟 件保護(hù)裝置的訪問(wèn);否則直接跳入步驟103;步驟103:遠(yuǎn)程服務(wù)器將當(dāng)前的服務(wù)器時(shí)間組成時(shí)間戳,格式為8字節(jié) 時(shí)間數(shù)據(jù)格式,將時(shí)間戳發(fā)送給用戶瀏覽器;
步驟104:瀏覽器通過(guò)控件調(diào)用軟件保護(hù)裝置中的正版驗(yàn)證模塊,將時(shí) 間戳傳入正版驗(yàn)證模塊要求計(jì)算響應(yīng);
步驟105:正版驗(yàn)證模塊利用Kr對(duì)時(shí)間戳進(jìn)行數(shù)李簽名處理,將簽名 結(jié)果返回給瀏覽器作為響應(yīng)數(shù)據(jù);
步驟106:瀏覽器將響應(yīng)數(shù)據(jù)發(fā)送給遠(yuǎn)程服務(wù)器;
步驟107:遠(yuǎn)程服務(wù)器利用Kp對(duì)響應(yīng)結(jié)果進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò)則 在瀏覽器上顯示正版信息,否則顯示為盜版。
由于軟件保護(hù)裝置的不可復(fù)制性,所以盜版者即使能夠破解軟件使之正 常運(yùn)行,但無(wú)法得到有效的RSA私鑰Kr,所以盜版軟件保護(hù)裝置不可能通 過(guò)正版驗(yàn)證。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范 圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種對(duì)軟件的正版性進(jìn)行遠(yuǎn)程驗(yàn)證的方法,其特征在于,該方法包括步驟(1)將軟件保護(hù)裝置與本地計(jì)算機(jī)相連接;(2)本地計(jì)算機(jī)上運(yùn)行的軟件與遠(yuǎn)程服務(wù)器通過(guò)網(wǎng)絡(luò)連接;(3)通過(guò)正版驗(yàn)證模塊對(duì)遠(yuǎn)程服務(wù)器作出響應(yīng);(4)遠(yuǎn)程服務(wù)器驗(yàn)證響應(yīng)結(jié)果,確定軟件是否為正版。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟(3)中,通過(guò)正 版驗(yàn)證模塊對(duì)遠(yuǎn)程服務(wù)器的挑戰(zhàn)作出響應(yīng)。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,在步驟(3)中,正版驗(yàn) 證模塊接受遠(yuǎn)程服務(wù)器發(fā)來(lái)的挑戰(zhàn)數(shù)據(jù),對(duì)挑戰(zhàn)數(shù)據(jù)作出響應(yīng)。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述的挑戰(zhàn)數(shù)據(jù)是隨機(jī) 數(shù)或者不重復(fù)的數(shù)據(jù)。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,不重復(fù)的數(shù)據(jù)是時(shí)間戳。
6、 根據(jù)權(quán)利要求1-5所述的任一方法,其特征在于,對(duì)應(yīng)的響應(yīng)過(guò)程 是對(duì)挑戰(zhàn)數(shù)據(jù)進(jìn)行密碼學(xué)運(yùn)算處理。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,處理算法包括數(shù)字簽 名、計(jì)算MAC-瞼證碼、對(duì)數(shù)據(jù)進(jìn)行加密運(yùn)算。
8、 根據(jù)權(quán)利要求1-5所述的任一方法,其特征在于,對(duì)應(yīng)的服務(wù)器驗(yàn) 證過(guò)程為對(duì)正版驗(yàn)證模塊計(jì)算出來(lái)的響應(yīng)進(jìn)行驗(yàn)證,如果驗(yàn)證正確則認(rèn)為 軟件為正版。
9、 根據(jù)權(quán)利要求8所述的方法,其特征在于,— 瞼i正方法與正版驗(yàn)證才莫 塊所采用的密碼學(xué)處理算法相對(duì)應(yīng)。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,遠(yuǎn)程服務(wù)器與正版驗(yàn)證 模塊所使用的密碼學(xué)算法的密鑰是相同的或者成對(duì)的。
11、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟(2)中,本地 計(jì)算機(jī)與遠(yuǎn)程服務(wù)器之間的連接采用C/S結(jié)構(gòu)或者B/S結(jié)構(gòu)。
全文摘要
本發(fā)明公開(kāi)了一種遠(yuǎn)程驗(yàn)證軟件正版性的技術(shù)方法。本發(fā)明通過(guò)在軟件保護(hù)裝置中增加一個(gè)正版驗(yàn)證模塊,并架設(shè)一個(gè)遠(yuǎn)程驗(yàn)證服務(wù)器,可以在沒(méi)有客戶信息數(shù)據(jù)庫(kù)的情況下對(duì)軟件的正版性進(jìn)行驗(yàn)證。由于驗(yàn)證的過(guò)程不要求客戶進(jìn)行注冊(cè),因此實(shí)施非常簡(jiǎn)便但可靠性遠(yuǎn)遠(yuǎn)高于現(xiàn)有的驗(yàn)證方法,有效防止對(duì)最終用戶欺騙行為的發(fā)生。
文檔編號(hào)H04L29/06GK101290648SQ20081011194
公開(kāi)日2008年10月22日 申請(qǐng)日期2008年5月19日 優(yōu)先權(quán)日2008年5月19日
發(fā)明者孫吉平, 勇 韓 申請(qǐng)人:北京深思洛克數(shù)據(jù)保護(hù)中心