一種基于智能卡的軟件保護方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種基于智能卡的軟件保護方法及系統(tǒng)。
【背景技術(shù)】
[0002]軟件保護一般分為軟加密和硬加密,硬加密俗稱為加密狗或加密鎖。加密鎖是為軟件開發(fā)商提供的一種智能型的軟件保護工具,它包含一個安裝在計算機并行口或USB 口上的硬件,及一套適用于各種語言的接口軟件和工具軟件。加密鎖基于硬件保護技術(shù),其目的是通過對軟件與數(shù)據(jù)的保護防止知識產(chǎn)權(quán)被非法使用。
[0003]現(xiàn)有技術(shù)為將被保護軟件的代碼移植到加密鎖中進行保護,然而過程繁瑣,同時加密鎖硬件需要購買,對于較多使用者來說額外增加了軟件保護的成本。
[0004]上述提及的過程繁瑣,以及額外的軟件保護成本的技術(shù)問題成為了本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種基于智能卡的軟件保護方法及系統(tǒng),解決了現(xiàn)有技術(shù)的將被保護軟件的代碼移植到加密鎖中進行保護的設(shè)計,所導(dǎo)致的過程繁瑣,及額外增加的軟件保護成本的技術(shù)問題。
[0006]本發(fā)明實施例提供的一種基于智能卡的軟件保護方法,包括:
[0007]S1:獲取到軟件保護指令,并通過待保護軟件調(diào)用讀卡器操作控件按照第一預(yù)置方式根據(jù)授權(quán)卡對認(rèn)證卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行步驟S2 ;
[0008]S2:通過所述待保護軟件再次調(diào)用所述讀卡器操作控件,按照第二預(yù)置方式根據(jù)所述認(rèn)證卡對所述授權(quán)卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行步驟S3 ;
[0009]S3:通過所述待保護軟件再次調(diào)用所述讀卡器操作控件,讀取所述授權(quán)卡中的軟件使用權(quán)限和使用時間;
[0010]S4:通過所述待保護軟件根據(jù)所述使用權(quán)限確定權(quán)限使用功能和權(quán)限禁用功能,并確定所述使用時間在有效期內(nèi)。
[0011]優(yōu)選地,所述第一預(yù)置方式包括:
[0012]通過所述讀卡器操作控件調(diào)用所述授權(quán)卡產(chǎn)生第一隨機數(shù),并將所述第一隨機數(shù)保存在所述授權(quán)卡中;
[0013]通過所述讀卡器操作控件將所述第一隨機數(shù)發(fā)送給所述認(rèn)證卡,使得所述認(rèn)證卡通過密鑰進行計算后返回第一密文數(shù)據(jù);
[0014]通過所述讀卡器操作控件將所述第一密文數(shù)據(jù)發(fā)送至所述授權(quán)卡進行解密,并獲取到與所述第一密文數(shù)據(jù)相對應(yīng)的第二隨機數(shù);
[0015]通過所述授權(quán)卡對所述第一隨機數(shù)和所述第二隨機數(shù)進行比對,若一致,則所述認(rèn)證卡認(rèn)證通過。
[0016]優(yōu)選地,所述第二預(yù)置方式包括:
[0017]通過所述讀卡器操作控件調(diào)用所述認(rèn)證卡產(chǎn)生第三隨機數(shù),并將所述第三隨機數(shù)保存在所述認(rèn)證卡中;
[0018]通過所述讀卡器操作控件將所述第三隨機數(shù)發(fā)送給所述授權(quán)卡,使得所述授權(quán)卡通過密鑰進行計算后返回第二密文數(shù)據(jù);
[0019]通過所述讀卡器操作控件將所述第二密文數(shù)據(jù)發(fā)送至所述認(rèn)證卡進行解密,并獲取到與所述第一密文數(shù)據(jù)相對應(yīng)的第四隨機數(shù);
[0020]通過所述認(rèn)證卡對所述第三隨機數(shù)和所述第四隨機數(shù)進行比對,若一致,則所述授權(quán)卡認(rèn)證通過。
[0021]優(yōu)選地,所述步驟S4具體包括:
[0022]通過所述待保護軟件根據(jù)所述使用權(quán)限確定權(quán)限使用功能和權(quán)限禁用功能,并判斷所述使用時間是否在有效期內(nèi),若是,則所述待保護軟件保護成功,若否,則執(zhí)行遠程授權(quán)模式;
[0023]所述遠程授權(quán)模式包括:
[0024]獲取所述待保護軟件的所述使用時間和所述權(quán)限使用功能;
[0025]通過待保護軟件調(diào)用讀卡器操作控件按照第一預(yù)置方式根據(jù)授權(quán)卡對認(rèn)證卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行下一步;
[0026]通過所述待保護軟件再次調(diào)用所述讀卡器操作控件,按照第二預(yù)置方式根據(jù)所述認(rèn)證卡對所述授權(quán)卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行下一步;
[0027]通過調(diào)用所述讀卡器操作控件從所述認(rèn)證卡中獲取密鑰并寫入所述授權(quán)卡中進行授權(quán)。
[0028]本發(fā)明實施例提供的一種基于智能卡的軟件保護系統(tǒng),包括:
[0029]軟件保護客戶端、軟件保護服務(wù)器和讀卡器,所述軟件保護客戶端分別與所述軟件保護服務(wù)器和所述讀卡器建立有通信連接關(guān)系;
[0030]所述軟件保護客戶端,用于通過瀏覽器模式從所述軟件保護服務(wù)器下載讀卡器操作控件;
[0031]所述讀卡器,用于輸入輸出數(shù)據(jù)給認(rèn)證卡和授權(quán)卡;
[0032]其中,所述軟件保護客戶端獲取到軟件保護指令,并調(diào)用從所述軟件保護服務(wù)器下載的所述讀卡器操作控件,再按照第一預(yù)置方式根據(jù)授權(quán)卡對認(rèn)證卡進行認(rèn)證,若認(rèn)證通過,則所述軟件保護客戶端再次調(diào)用所述讀卡器操作控件,并按照第二預(yù)置方式根據(jù)所述認(rèn)證卡對所述授權(quán)卡進行認(rèn)證,若認(rèn)證通過,則所述軟件保護客戶端再次調(diào)用所述讀卡器操作控件,并通過所述讀卡器讀取所述授權(quán)卡中的軟件使用權(quán)限和使用時間,最后所述軟件保護客戶端根據(jù)所述使用權(quán)限確定權(quán)限使用功能和權(quán)限禁用功能,并確定所述使用時間在有效期內(nèi)。
[0033]優(yōu)選地,所述第一預(yù)置方式包括:
[0034]通過所述讀卡器操作控件調(diào)用所述授權(quán)卡產(chǎn)生第一隨機數(shù),并將所述第一隨機數(shù)保存在所述授權(quán)卡中;
[0035]通過所述讀卡器操作控件將所述第一隨機數(shù)發(fā)送給所述認(rèn)證卡,使得所述認(rèn)證卡通過密鑰進行計算后返回第一密文數(shù)據(jù);
[0036]通過所述讀卡器操作控件將所述第一密文數(shù)據(jù)發(fā)送至所述授權(quán)卡進行解密,并獲取到與所述第一密文數(shù)據(jù)相對應(yīng)的第二隨機數(shù);
[0037]通過所述授權(quán)卡對所述第一隨機數(shù)和所述第二隨機數(shù)進行比對,若一致,則所述認(rèn)證卡認(rèn)證通過;
[0038]所述第二預(yù)置方式包括:
[0039]通過所述讀卡器操作控件調(diào)用所述認(rèn)證卡產(chǎn)生第三隨機數(shù),并將所述第三隨機數(shù)保存在所述認(rèn)證卡中;
[0040]通過所述讀卡器操作控件將所述第三隨機數(shù)發(fā)送給所述授權(quán)卡,使得所述授權(quán)卡通過所述密鑰進行計算后返回第二密文數(shù)據(jù);
[0041]通過所述讀卡器操作控件將所述第二密文數(shù)據(jù)發(fā)送至所述認(rèn)證卡進行解密,并獲取到與所述第一密文數(shù)據(jù)相對應(yīng)的第四隨機數(shù);
[0042]通過所述認(rèn)證卡對所述第三隨機數(shù)和所述第四隨機數(shù)進行比對,若一致,則所述授權(quán)卡認(rèn)證通過。
[0043]優(yōu)選地,所述軟件保護客戶端,還用于當(dāng)所述使用時間不在有效期內(nèi)時,執(zhí)行遠程授權(quán)模式;
[0044]所述遠程授權(quán)模式包括:
[0045]獲取所述待保護軟件的所述使用時間和所述權(quán)限使用功能;
[0046]通過待保護軟件調(diào)用讀卡器操作控件按照第一預(yù)置方式根據(jù)授權(quán)卡對認(rèn)證卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行下一步;
[0047]通過所述待保護軟件再次調(diào)用所述讀卡器操作控件,按照第二預(yù)置方式根據(jù)所述認(rèn)證卡對所述授權(quán)卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行下一步;
[0048]通過調(diào)用所述讀卡器操作控件從所述認(rèn)證卡中獲取密鑰并寫入所述授權(quán)卡中進行授權(quán)。
[0049]優(yōu)選地,所述認(rèn)證卡與所述授權(quán)卡均為支持國密SMl算法的智能卡;
[0050]所述認(rèn)證卡插在智能卡讀卡器里面的插槽內(nèi),存儲著系統(tǒng)的密鑰,用于認(rèn)證所述授權(quán)卡和對所述授權(quán)卡進行發(fā)卡操作;
[0051]所述授權(quán)卡為非接觸卡片,用于認(rèn)證所述認(rèn)證卡,并對所述待保護軟件提供所述使用時間和所述使用權(quán)限。
[0052]優(yōu)選地,基于智能卡的軟件保護系統(tǒng)還包括:
[0053]支持國密SMl算法的數(shù)據(jù)密碼機,與所述軟件保護服務(wù)器有線連接,用于通過所述軟件保護服務(wù)器經(jīng)所述軟件保護客戶端將所述密鑰寫入所述認(rèn)證卡和所述授權(quán)卡。
[0054]優(yōu)選地,所述讀卡器包含智能卡小卡插槽,用于插入所述認(rèn)證卡,同時具有接觸和非接觸功能,用于識別所述授權(quán)卡。
[0055]從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0056]本發(fā)明實施例提供的一種基于智能卡的軟件保護方法及系統(tǒng),其中,基于智能卡的軟件保護方法包括:S1:獲取到軟件保護指令,并通過待保護軟件調(diào)用讀卡器操作控件按照第一預(yù)置方式根據(jù)授權(quán)卡對認(rèn)證卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行步驟S2 ;S2:通過待保護軟件再次調(diào)用讀卡器操作控件,按照第二預(yù)置方式根據(jù)認(rèn)證卡對授權(quán)卡進行認(rèn)證,若認(rèn)證通過,則執(zhí)行步驟S3 ;S3:通過待保護軟件再次調(diào)用讀卡器操作控件,讀取授權(quán)卡中的軟件使用權(quán)限和使用時間;S4:通過待保護軟件根據(jù)使用權(quán)限確定權(quán)限使用功能和權(quán)限禁用功能,并確定使用時間在有效期內(nèi)。本實施例中,通過使用兩個智能卡,認(rèn)證卡和授權(quán)卡依次進行軟件的使用權(quán)限和使用時間的確定,便實現(xiàn)了過程簡單的軟件保護的功能,且通過使用現(xiàn)有的智能卡便大大降低了軟件保護的成本,解決了現(xiàn)有技術(shù)的將被保護軟件的代碼移植到加密鎖中進行保護的設(shè)計,所導(dǎo)致的過程繁瑣,及額外增加的軟件保護成本的技術(shù)問題。
【附圖說明】
[0057]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0058]圖1為本發(fā)明實施例提供的一種基于智能卡的軟件保護方法的一個實施例的流程不意圖;
[0059]圖2為本發(fā)明實施例提供的一種基于智能卡的軟件保護方法的第一預(yù)置方式的流程示意圖;
[0060]圖