專利名稱:軟體保護(hù)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟體保護(hù)方法及裝置,特別是涉及一種應(yīng)用攜帶型電子鑰匙的軟體保護(hù)方法及裝置。
背景技術(shù):
隨著電子資訊復(fù)制技術(shù)的提升與復(fù)制設(shè)備的平價(jià)化,使電子資訊的重制可謂毫無技術(shù)門檻。因而,讓電子資訊的非法重制行為時(shí)有所聞,尤其軟體廠商更因盜版猖獗而遭受大量損失。所以,軟體廠商無不努力研發(fā)保護(hù)軟體方法,以達(dá)到杜絕盜版的目的。
一種常見的軟體保護(hù)方法是利用軟體序號與密碼的方式來管制,即每套軟體搭配一組專屬的軟體序號與密碼,當(dāng)軟體安裝時(shí),要求使用者輸入正確的軟體序號與密碼始能允許安裝。然而,由于非法使用者可跳過軟體序號與密碼驗(yàn)證的步驟逕自安裝,或者把一套合法軟體無限復(fù)制的情況,致使此種方式仍然難以杜絕仿冒的情況發(fā)生。
因而,有些軟體以上網(wǎng)注冊軟體序號與密碼的方式來管制使用人數(shù),即當(dāng)軟體安裝后,即建議使用者連線上網(wǎng)注冊,如此一但某軟體序號被多次注冊時(shí),軟體業(yè)者可發(fā)現(xiàn)異常狀況而進(jìn)行管制。但是,使用者可輕易跳過注冊動作,致使管制仍無法有效執(zhí)行。
另一種常見的軟體保護(hù)方法是于軟體安裝時(shí)仍然把一些程式保留在儲存軟體的光碟片上而不載入電腦中,致使軟體執(zhí)行過程中需時(shí)時(shí)讀取光碟片的資料,讓單一光碟片僅能于單一電腦中使用,使光碟片作為軟體執(zhí)行時(shí)的鑰匙,以限制使用的人數(shù)。但是,具有完整軟體資料的光碟片可輕易被無限量的復(fù)制,致使軟體仍無法被有效保護(hù)。
因此,綜觀現(xiàn)有軟體保護(hù)方法,大都只在軟體安裝初時(shí)作登錄驗(yàn)證的動作,容易被破解,關(guān)于保留程式于光碟片方式,雖可強(qiáng)迫軟體執(zhí)行時(shí)需有光碟片存在,然而由于光碟片上的資料復(fù)制的容易,致使難以避免非法使用。因此,本案發(fā)明人思及若能使軟體除了于安裝時(shí)登錄驗(yàn)證外,且于軟體執(zhí)行過程中仍然可時(shí)時(shí)驗(yàn)證而非簡單的資料擷取,以有效增加非法使用者跳脫驗(yàn)證的困難度。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供一種可達(dá)到有效保護(hù)軟體功效的軟體保護(hù)方法及裝置。
于是,本發(fā)明的軟體保護(hù)方法包括以下步驟A)分別安裝該軟體的一第一部份于一電腦與一第二部分于一電子鑰匙中,而該電子鑰匙是可與該電腦相互傳輸資料,該電子鑰匙與該電腦中皆儲存一該軟體專屬的登錄證;B)當(dāng)該軟體被啟動時(shí),該電腦偵測該電子鑰匙是否存在;C)若該電腦偵測該電子鑰匙不存在時(shí),則結(jié)束該軟體,反之,若該電腦偵測該電子鑰匙存在時(shí),則稽核該電子鑰匙中的登錄證與該電腦中的登錄證;D)若該電腦稽核未相符時(shí),則中止該軟體的啟動,若該電腦稽核相符時(shí),則完成該軟體的啟動;E)當(dāng)該軟體啟動后,該電子鑰匙產(chǎn)生一稽核碼與一該稽核碼相對的稽核時(shí)間,而該稽核碼儲存于該電子鑰匙與該電腦中;F)當(dāng)?shù)诌_(dá)該稽核時(shí)間時(shí),該電子鑰匙稽核該電腦中的稽核碼是否符合該電子鑰匙中的稽核碼;及G)若稽核相符時(shí),則跳回步驟E),反之若稽核未相符時(shí),則中止該軟體的啟動。
本發(fā)明的優(yōu)點(diǎn)是,本發(fā)明的軟體保護(hù)方法及裝置,把軟體分置于電腦與一外接的電子鑰匙中,以利用電子鑰匙來達(dá)到強(qiáng)迫注冊與時(shí)時(shí)稽核的動作,且由于電子鑰匙與軟體執(zhí)行的不可分離,致使非法使用者僅復(fù)制光碟片或電腦硬碟中的軟體的第一部份,軟體仍然無法執(zhí)行,進(jìn)而大幅增加軟體拷貝的困難度。
為了進(jìn)一步理解本發(fā)明的實(shí)質(zhì),下面結(jié)合附圖及具體實(shí)施方式
對本發(fā)明做進(jìn)一步說明。
圖1是本發(fā)明的較佳實(shí)施例的一架構(gòu)圖。
圖2是本發(fā)明的較佳實(shí)施例的軟體啟動的流程圖。
圖3是本發(fā)明的較佳實(shí)施例的軟體注冊的流程圖。
圖4是本發(fā)明的較佳實(shí)施例的軟體稽核的流程圖。
圖5是圖4中的產(chǎn)生稽核碼的示意圖。
圖6是本發(fā)明的較佳實(shí)施例的程式呼叫的流程圖。
具體實(shí)施例方式
本發(fā)明的前述以及其他技術(shù)內(nèi)容、特點(diǎn)與功效,在以下配合參考圖式的一較佳實(shí)施例的詳細(xì)說明中,將可清楚的明白。
由于以往軟體保護(hù)方法難以強(qiáng)制使用者注冊與缺乏程式執(zhí)行后適當(dāng)?shù)幕藙幼?,以致于難以降低被非法使用的機(jī)率。所以,發(fā)明人思及把軟體的內(nèi)容分置于至少兩種不同且可分離的儲存媒體上,以增加復(fù)制的困難度,并令其中一儲存媒體上具有執(zhí)行程式的功能,以執(zhí)行軟體執(zhí)行后的稽核步驟。再者,為了強(qiáng)迫注冊更將軟體的一部份程式置放于軟體公司的伺服器中,讓使用者安裝時(shí)需至軟體公司的伺服器下載所缺程式且一并注冊,以達(dá)到有效管制監(jiān)控的功效。因而,參閱圖1,實(shí)現(xiàn)本發(fā)明的軟體保護(hù)方法的較佳實(shí)施例的架構(gòu)包括一電腦1、一電子鑰匙(即軟體保護(hù)裝置)2與一伺服器3。
電腦1是一般電腦,諸如桌上型電腦、筆記型電腦等等之類而具有一電腦主機(jī)11、一顯示器12與一諸如鍵盤13的輸入裝置,而電腦主機(jī)11具有一硬碟、至少一儲存媒體讀取機(jī),例如一軟碟機(jī)111、一光碟機(jī)112,及至少一與外界裝置連接的傳輸介面,例如通用串列匯流排(Universal serial bus,USB)、藍(lán)芽傳輸埠、紅外線傳輸埠、序列埠(com port)、平行埠等等。在本例中,為了方便管制每一套軟體也有一專屬的軟體序號,軟體分成一用以儲存于電腦主機(jī)11中的第一部份與一用以儲存于電子鑰匙2中的第二部分,此第二部分包含軟體執(zhí)行所必須的程式,例如數(shù)學(xué)運(yùn)算程式、字串運(yùn)作程式、加解密程式、資料庫管理程式、通訊程式等等。在此,為了方便軟體公司販賣,第一部份是先燒錄于一儲存媒體上,本例的第一部份是在一光碟片上。如此,當(dāng)使用者欲安裝軟體時(shí),可利用光碟機(jī)112讀取買來的光碟片,以把軟體的第一部份先行載入電腦主機(jī)11中。再者,此第一部份除了軟體的程式外還包括電子鑰匙2的驅(qū)動程式,以使電腦1可與電子鑰匙2相互傳輸資料。
電子鑰匙2是作為一套專屬軟體的啟動鑰匙,即此套軟體只能在電子鑰匙2存在時(shí)被啟動。電子鑰匙2具有一負(fù)責(zé)控制電子鑰匙2的處理器21、一用來儲存程式或資料的記憶單元22和一與電腦1的傳輸介面匹配的資料傳輸介面23。本例中的資料傳輸介面23是一通用串列匯流排,用以插接于電腦1中為通用串列匯流排的傳輸介面上,以作為電腦1與電子鑰匙2間的資料傳輸通道。記憶單元22大致分成一資料永久儲存區(qū)與一資料暫存區(qū),而軟體的第二部分是預(yù)備儲存于記憶單元22的資料永久儲存區(qū)中,然而本例中為了強(qiáng)制使用者注冊,所以令軟體的第二部份中至少一部份,甚者全部,先置放伺服器3中,以使電子鑰匙2中的第二部分需至伺服器3下載始能完整。如此,軟體公司可于下載時(shí)作監(jiān)控管制。在本例中,為了避免使用者花費(fèi)過多的時(shí)間于下載資料,所以把軟體的第二部分區(qū)分成一第一區(qū)塊與一第二區(qū)塊,并預(yù)先把第一區(qū)塊儲存于電子鑰匙2中,而只把第二區(qū)塊儲存于伺服器3上。另外,為了使電子鑰匙2可執(zhí)行程式、加強(qiáng)電子鑰匙2的功能與便于識別軟體的身分等等目的,所以當(dāng)注冊后,即已自伺服器3下載相關(guān)程式后,電子鑰匙2的記憶單元22的資料永久儲存區(qū)中可儲存一些資料或程式,包括程式庫(即軟體的第二部份)、軟體序號、各電子鑰匙專屬的使用者序號、安裝硬碟的序號、軟體公司的基本資料與軟體的基本資料、登錄證、基本輸入輸出系統(tǒng)(BIOS)、電子鑰匙的作業(yè)系統(tǒng)、稽核程式與資料區(qū)、電子鑰匙的驅(qū)動程式等等,而前述資料中的部分是被要求于販賣前事先載入電子鑰匙中以使電子鑰匙2執(zhí)行基本運(yùn)作與提供使用者相關(guān)資料,例如驅(qū)動程式、軟體序號、使用者序號、基本輸入輸出系統(tǒng)、作業(yè)系統(tǒng)等等。另外,處理器21負(fù)責(zé)電子鑰匙2的系統(tǒng)操作、稽核、稽核碼產(chǎn)生、稽核時(shí)間的產(chǎn)生、程式庫的執(zhí)行、加密與解密的功能(容后再述)。
伺服器3是設(shè)置于軟體公司端并由軟體公司所管理的伺服器。此伺服端3是可供遠(yuǎn)端使用者經(jīng)網(wǎng)路連線并設(shè)有注冊管理程式、軟體的第一部份的第二區(qū)塊與一包含軟體序號、使用者序號的資料庫。如此,一但使用者要求下載時(shí),則要求電腦1傳送使用者的相關(guān)資料,例如軟體序號、使用者序號,以供伺服器3識別要求者的身分。另外,為了方便管制,所以本例的伺服器3還會要求識別電腦1中硬碟序號,且電子鑰匙2用來啟動軟體前也會識別硬碟序號是否正確無誤,以避免一套軟體安裝于多個(gè)電腦機(jī)臺的情況發(fā)生。
如此,依據(jù)前述的構(gòu)件與關(guān)系并配合圖2,在下文中揭露結(jié)合本實(shí)施例的軟體執(zhí)行過程。在以下流程開始前,假設(shè)使用者已借由光碟片安裝軟體的第一部份與電子鑰匙2的驅(qū)動程式。
首先,執(zhí)行步驟41,當(dāng)電腦1中軟體被啟動時(shí)會先載入電子鑰匙的驅(qū)動程式。
而后,在步驟42中,電腦1會偵測電子鑰匙2是否存在,即電子鑰匙2的資料傳輸介面23是否連接電腦1的傳輸介面。若有時(shí),則執(zhí)行步驟43。若無時(shí),則結(jié)束軟體,使軟體只在電子鑰匙2存在時(shí)始能被啟動。
在步驟43中,電腦1會擷取電子鑰匙2中的登錄證,并于步驟44稽核登錄證是否正確。此登錄證是于軟體注冊后始會形成(容后再述),又稱注冊證明文件,即初次使用時(shí),電子鑰匙2中無登錄證。在步驟44中若登錄證不符時(shí),則進(jìn)入連接點(diǎn)A,以執(zhí)行注冊的流程,若相符時(shí),則執(zhí)行軟體。
配合圖3,在進(jìn)入連接點(diǎn)A后,則會執(zhí)行步驟51,電腦1會擷取電子鑰匙2中己預(yù)先載入的使用者相關(guān)資料,即軟體序號與使用者序號。
其次,在步驟52中電腦1經(jīng)網(wǎng)路連線至伺服器3,而后擷取軟體所安裝硬碟的硬碟序號(可由作業(yè)系統(tǒng)軟體取得)連同使用者相關(guān)資料傳送予伺服器3。
而后,在步驟53中,軟體公司的伺服器3會把自電腦1收到的資料與資料庫中的資料比對是否相符,即資料庫中是否存有此筆使用者相關(guān)資料,若相符,則執(zhí)行步驟54,若不相符,則結(jié)束軟體。
在步驟54中,伺服器3會將注冊序號、公司基本資料、軟體基本資料、使用者序號與軟體序號與安裝硬碟序號形成一登錄證,并擷取軟體相關(guān)程式,例如軟體第二部分的第二區(qū)塊、稽核程式與資料區(qū)等等,回傳予電腦1。此登錄證于伺服器3的資料庫中亦會備份保存一份,如此,伺服器3在接受注冊登錄前,可于步驟53中搜尋資料庫中是否有相同或類似的登錄證,例如使用者序號與軟體序號相同,但硬碟序號不同。若有相同或類似之處與登錄區(qū)間的長短,伺服器3可再次確認(rèn)軟體是否被仿冒。例如,相同的使用者相關(guān)資料,但不同硬碟序號重復(fù)登錄注冊,或登錄注冊區(qū)間過于頻繁、接近,就會有仿冒之慮?;蛘?,如硬碟序號相同,但使用者相關(guān)資料不同,也會有仿冒之慮。此時(shí),軟體公司可就由這些注冊資料來作嚴(yán)格的把關(guān)。
其次,在步驟55中,電腦1會把登錄證與相關(guān)程式傳送至電子鑰匙2的記憶單元22中儲存并把登錄證儲存于電腦1中,并跳至連接點(diǎn)B以跳回前述步驟43,重新執(zhí)行啟動驗(yàn)證的程序。登錄證于電腦1硬碟中的儲存位置為合法規(guī)劃(Format)磁區(qū)外的位置,此位置不受電腦1的作業(yè)系統(tǒng)指揮使用,因此不會被破壞,即重新規(guī)劃硬碟也不會被破壞。因?yàn)椴襟E55的執(zhí)行,使得電子鑰匙2中所需的程式與資料完整而可扮演軟體啟動與執(zhí)行所需的關(guān)鍵鑰匙。
再者,為了讓軟體程式執(zhí)行后仍時(shí)時(shí)執(zhí)行稽核驗(yàn)證的程序,以避免非法使用者因跳過前述的軟體啟動時(shí)的稽核動作而閃避電子鑰匙2的保護(hù),以確實(shí)保護(hù)軟體。本實(shí)施例的方法更包括稽核程序,除了令軟體執(zhí)行過程所需的程式內(nèi)建于電子鑰匙2中,以使軟體執(zhí)行過程中需時(shí)時(shí)呼叫電子鑰匙2中的程式來進(jìn)行運(yùn)算外,更隨機(jī)形成稽核碼來進(jìn)行稽核。在下文中配合圖4與圖6,來對本實(shí)施例的軟體執(zhí)行后的稽核流程作說明。
首先,在步驟61中,電子鑰匙2的處理器21會執(zhí)行稽核程式,以隨機(jī)形成一稽核碼與隨機(jī)決定此稽核碼的稽核時(shí)間。為了避免稽核碼的形成容易被破解,所以令稽核碼與稽核時(shí)間的產(chǎn)生是采用隨機(jī)的方式。如圖5,本例的稽核碼是分別自電腦1中的三個(gè)不同區(qū)域隨機(jī)抽取。第一區(qū)域?yàn)檐涹w運(yùn)轉(zhuǎn)變數(shù)區(qū)71,是由軟體執(zhí)行期間在系統(tǒng)記憶區(qū)中一作為系統(tǒng)運(yùn)作時(shí)的變數(shù)儲存區(qū)。第二區(qū)域?yàn)檐涹w運(yùn)轉(zhuǎn)程式區(qū)72,即電腦1硬碟中儲存軟體的第一部份的區(qū)域,其內(nèi)部資即為軟體機(jī)械程式碼。第三區(qū)域?yàn)樽鳂I(yè)系統(tǒng)變數(shù)區(qū)73,即電腦1硬碟中儲存作業(yè)系統(tǒng)的區(qū)域。而在軟體執(zhí)行后,稽核程式會隨機(jī)產(chǎn)生一稽核時(shí)間,例如由10~49分中隨機(jī)抽取一時(shí)間值來作為稽核時(shí)間,及分別針對三個(gè)區(qū)域71、72、73隨機(jī)產(chǎn)生三組資料抽取位址與資料長度,令資料抽取閘75依照資料位址與資料長度分別自三個(gè)區(qū)域71、72、73抽取資料區(qū)塊來形成三個(gè)子稽核碼,而后經(jīng)資料匯整以形成稽核碼,為了降低資料量更將稽核碼壓縮,其后更加密資料,以增加資料保密性,而后把經(jīng)壓縮與加密的稽核碼分別儲存于電腦1硬碟與電子鑰匙2中,以供事后進(jìn)行稽核用。
再者,為了更了解抽取資料位置與長度是以隨機(jī)產(chǎn)生的過程,茲舉一范例來說。本范例是由一種子數(shù)為基礎(chǔ)來產(chǎn)生一隨機(jī)亂數(shù),以作為抽取資料的長度,而后再以此隨機(jī)亂數(shù)為種子數(shù)再產(chǎn)生下一個(gè)隨機(jī)亂數(shù),以作為抽取資料的位址,此下一個(gè)隨機(jī)亂數(shù)可供下一次子稽核碼產(chǎn)生的種子數(shù)。此時(shí),資料抽取閘75會自區(qū)域71或72或73中的抽取資料位址開始抽取與前述資料長度相同的資料。而后,稽核程式更會把資料內(nèi)容與資料長度以位元(Byte)為單位作互斥邏輯(XOR)運(yùn)算。另外,若第一次產(chǎn)生子稽核碼時(shí),則以軟體安裝時(shí)間的時(shí)、分、秒相加取和的最后二位數(shù)來形成種子數(shù)。舉例來說,第一次產(chǎn)生稽核碼時(shí),則以安裝時(shí)間來形成種子數(shù),若軟體安裝時(shí)間為12:59:58,則12+59+58=129,則第一個(gè)種子數(shù)為29。假設(shè)由種子數(shù)29產(chǎn)生下一個(gè)隨機(jī)亂碼為48,則要抽取資料長度為48位元(Bytes)。而后,假設(shè)以種子數(shù)48產(chǎn)生的下一個(gè)隨機(jī)亂數(shù)為56789,則要抽取的資料位址從56789開始,抽取48位元的資料。而后若48位元的資料有一位元為18而其余都是0,則子稽核碼為48180=34(110000010010=100010000000=100010=34)。如此可應(yīng)用前述方式分別于三個(gè)區(qū)域71、72、73取得三個(gè)子稽核碼來形成稽核碼并經(jīng)壓縮加密后分別儲存于電腦1與電子鑰匙2中。
其次,在步驟62中,電子鑰匙2是否有稽核碼與稽核時(shí)間產(chǎn)生。若有時(shí),則執(zhí)行步驟63,若無時(shí),則跳回步驟61,以產(chǎn)生稽核碼與稽核時(shí)間。如此,可確?;舜a與稽核時(shí)間產(chǎn)生。另外,流程也可增加一檢驗(yàn)重復(fù)產(chǎn)生稽核碼的次數(shù),若次數(shù)增加到一定次數(shù)時(shí),可令軟體結(jié)束,以避免軟體一直持續(xù)在產(chǎn)生稽核碼與稽核時(shí)間。
在步驟63中,電子鑰匙2的稽核程式會檢測稽核時(shí)間是否抵達(dá),若原先于步驟61中隨機(jī)決定的稽核時(shí)間為20分,則步驟63中檢測軟體是否已執(zhí)行達(dá)到20分鐘。若步驟63中判斷稽核時(shí)間抵達(dá)時(shí),則執(zhí)行步驟64。若未抵達(dá)時(shí),則進(jìn)入連接點(diǎn)C(容后再述)。
在步驟64,經(jīng)判斷已抵達(dá)稽核時(shí)間時(shí),則電子鑰匙2擷取儲存于電腦1中的稽核碼并予以解密與解壓縮,且電子鑰匙2并將儲存于其記憶單元22的稽核碼取出解密與解壓縮。
其次,在步驟65中,電子鑰匙2的處理器21會驗(yàn)證記憶單元22的稽核碼是否與電腦1中稽核碼相符,若相符,代表此電子鑰匙2為與此套軟體配合的專屬電子鑰匙2,則跳回步驟61,以隨機(jī)產(chǎn)生下次稽核用的稽核碼與稽核時(shí)間。若不相符,可能代表會有諸如電子鑰匙2不是電腦1中安裝軟體所專屬或稽核碼儲存過程發(fā)生錯(cuò)誤等等不希望的情況發(fā)生,所以跳至連接點(diǎn)A,即重新執(zhí)行圖3的注冊流程,以使伺服器3可即時(shí)了解狀況的發(fā)生,以作進(jìn)一步的控管。
另外,由于軟體的第二部分儲存于電子鑰匙2的記憶單元22,致使軟體執(zhí)行過程需呼叫電子鑰匙2中的程式以使軟體可順利被執(zhí)行。因而,配合圖6,對于軟體執(zhí)行后的程式呼叫流程作說明。首先言明的是程式呼叫流程只在軟體執(zhí)行后始會開始且稽核流程與呼叫流程是相互配合,所以此程式呼叫流程是由圖4中的連接點(diǎn)C開始。在步驟66中,電子鑰匙2偵測是否有自電腦1輸出的呼叫命令,若有時(shí),則執(zhí)行步驟67,若無時(shí),則跳回連接點(diǎn)D,此連接點(diǎn)D是連接步驟63,以繼續(xù)偵測稽核時(shí)間是否抵達(dá)。在步驟67中,電子鑰匙2的處理器21會依照呼叫命令,呼叫儲存于記憶單元22中的程式庫(即軟體的第二部分)的對應(yīng)程式來進(jìn)行運(yùn)算,以計(jì)算出呼叫命令的結(jié)果。最后,在步驟68中,處理器21把運(yùn)算結(jié)果壓縮加密后回傳予電腦1,此時(shí)電腦1可把結(jié)果解壓縮與解密后即可使用。如此,軟體執(zhí)行所需的部分運(yùn)算是由電子鑰匙2中內(nèi)部執(zhí)行而非傳送至電腦1中運(yùn)用,使電子鑰匙2中的程式庫不易被破解,以達(dá)到加強(qiáng)程式保密的效果。
歸納上述,本發(fā)明的軟體保護(hù)方法及裝置,把軟體分置于電腦1與一外接的電子鑰匙2中,以利用電子鑰匙2來達(dá)到強(qiáng)迫注冊與時(shí)時(shí)稽核的動作,且由于電子鑰匙2與軟體執(zhí)行的不可分離,致使非法使用者僅復(fù)制光碟片或電腦1硬碟中的軟體的第一部份,軟體仍然無法執(zhí)行,進(jìn)而大幅增加軟體拷貝的困難度,并且更把軟體的第二部分的第一區(qū)塊儲存于軟體公司管制的伺服器3上,以強(qiáng)迫使用者必須注冊以下載相關(guān)資料,以達(dá)到加強(qiáng)管制與監(jiān)控的功效。另外,本發(fā)明更利用注冊序號、公司基本資料、軟體基本資料、使用者序號與軟體序號與安裝硬碟序號來形成登錄證,以作為伺服器3與軟體執(zhí)行時(shí)的驗(yàn)證用途,進(jìn)而達(dá)到加強(qiáng)管制的功效。再者,本發(fā)明的軟體執(zhí)行后的稽核時(shí)間是以隨機(jī)方式產(chǎn)生且稽核碼是由軟體運(yùn)轉(zhuǎn)變數(shù)區(qū)71、軟體運(yùn)轉(zhuǎn)程式區(qū)72與作業(yè)系統(tǒng)變數(shù)區(qū)73來隨機(jī)抽取資料區(qū)塊來形成,以使稽核碼的產(chǎn)生難以被駭客破解,進(jìn)而可達(dá)到提高軟體的保護(hù)的功效。
權(quán)利要求
1.一種軟體保護(hù)方法,其特征在于該方法包括以下步驟A)分別安裝該軟體的一第一部份于一電腦與一第二部分于一電子鑰匙中,而該電子鑰匙是可與該電腦相互傳輸資料,該電子鑰匙與該電腦中皆儲存一該軟體專屬的登錄證;B)當(dāng)該軟體被啟動時(shí),該電腦偵測該電子鑰匙是否存在;C)若該電腦偵測該電子鑰匙不存在時(shí),則結(jié)束該軟體,相反地,若該電腦偵測該電子鑰匙存在時(shí),則稽核該電子鑰匙中的登錄證是否與該電腦中的登錄證相符;D)若該電腦稽核未相符時(shí),則中止該軟體的啟動,若該電腦稽核相符時(shí),則完成該軟體的啟動;E)當(dāng)該軟體啟動后,該電子鑰匙產(chǎn)生一稽核碼與一該稽核碼相對的稽核時(shí)間,而該稽核碼儲存于該電子鑰匙與該電腦中;F)當(dāng)?shù)诌_(dá)該稽核時(shí)間時(shí),該電子鑰匙稽核該電腦中的稽核碼是否符合該電子鑰匙中的稽核碼;及G)若稽核相符時(shí),則跳回步驟E),反之,若稽核未相符時(shí),則中止該軟體的啟動。
2.如權(quán)利要求1所述的軟體保護(hù)方法,其特征在于該電腦中安裝該軟體的硬碟具有一專屬硬碟序號,該電腦是可與一遠(yuǎn)端伺服器相連接,而該軟體的第二部分的至少一部分是儲存于該伺服器中,而該電子鑰匙儲存該軟體的第二部分中的剩余部分與一筆使用者相關(guān)資料,而該使用者相關(guān)資料儲存于該伺服器中,該使用者相關(guān)資料包括一該套軟體專屬的軟體序號與一該電子鑰匙專屬的使用者序號,而當(dāng)欲執(zhí)行步驟A)中完整安裝軟體的第二部分于該電子鑰匙中時(shí),則執(zhí)行以下的次步驟A-1)該電腦擷取該電子鑰匙中的使用者相關(guān)資料;A-2)該電腦把該使用者相關(guān)資料連同該硬碟序號傳送至該伺服器;及A-3)若該伺服器驗(yàn)證該使用者相關(guān)資料與儲存于該伺服器中的使用者相關(guān)資料相符時(shí),則該電腦自該伺服器下載該伺服器對應(yīng)形成一專屬登錄證與該軟體的第二部分的至少一部份,該電腦把該登錄證儲存于該電腦與該電子鑰匙中并把該軟體的第二部分的至少一部份儲存于該電子鑰匙中。
3.如權(quán)利要求2所述的軟體保護(hù)方法,其特征在于該子步驟A-3)中,該伺服器是依據(jù)該硬碟序號、該使用者相關(guān)資料與一對應(yīng)產(chǎn)生的注冊序號來形成該登錄證。
4.如權(quán)利要求2所述的軟體保護(hù)方法,其特征在于該步驟D)中若該電腦稽核未相符時(shí),則中止該軟體的啟動并執(zhí)行步驟A中的子步驟A-1)~A-3)。
5.如權(quán)利要求1所述的軟體保護(hù)方法,其特征在于該步驟E)是隨機(jī)產(chǎn)生該稽核碼與該稽核時(shí)間。
6.如權(quán)利要求5所述的軟體保護(hù)方法,其特征在于該步驟E)是把該稽核碼加密與壓縮后始儲存于該電子鑰匙與該電腦中。
7.如權(quán)利要求5所述的軟體保護(hù)方法,其特征在于步驟E)中的該稽核碼包含三分別依據(jù)該電腦中的一軟體運(yùn)轉(zhuǎn)變數(shù)區(qū)、一軟體運(yùn)轉(zhuǎn)程式區(qū)與一作業(yè)系統(tǒng)變數(shù)區(qū)中資料隨機(jī)形成的子稽核碼。
8.如權(quán)利要求7所述的軟體保護(hù)方法,其特征在于該電子鑰匙是分別針對該軟體運(yùn)轉(zhuǎn)變數(shù)區(qū)、軟體運(yùn)轉(zhuǎn)程式區(qū)與作業(yè)系統(tǒng)變數(shù)區(qū)隨機(jī)產(chǎn)生三組抽取資料長度與位址,并分別對該抽取資料長度與該抽取資料的內(nèi)容執(zhí)行互斥運(yùn)算以形成該等子稽核碼。
9.如權(quán)利要求1所述的軟體保護(hù)方法,其特征在于該方法更包括一位于該步驟E)與步驟F)間的步驟H),該電子鑰匙檢驗(yàn)該稽核時(shí)間與該稽核碼是否形成,若未形成時(shí),則跳回步驟E),若形成則繼續(xù)步驟F)。
10.如權(quán)利要求2所述的軟體保護(hù)方法,其特征在于該步驟F)中若該電腦稽核未相符時(shí),則中止該軟體的啟動并執(zhí)行步驟A中的子步驟A-1)~A3)。
11.如權(quán)利要求1所述的軟體保護(hù)方法,其特征在于該方法更包括一位于步驟E)與步驟F)間并于當(dāng)該稽核時(shí)間未抵達(dá)時(shí)被執(zhí)行的步驟I),在步驟I)中,當(dāng)該電子鑰匙收到自該電腦輸入的一呼叫命令時(shí),則呼叫該軟體的第二部分進(jìn)行運(yùn)算并把運(yùn)算結(jié)果回傳予該電腦。
12.一種軟體保護(hù)裝置,是外接一電腦并用以保護(hù)一套軟體,而該套軟體具有一儲存于該電腦中的第一部分與一儲存于該軟體保護(hù)裝置的第二部分,其特征在于該軟體保護(hù)裝置包括一處理器,是負(fù)責(zé)控制該軟體保護(hù)裝置的作動;一記憶單元,是受該處理器控制并儲存該軟體保護(hù)裝置作動所需的韌體與該軟體的第二部分;及一資料傳輸介面,是受該處理器控制,而該軟體保護(hù)裝置與該電腦間的資料可透過該資料傳輸介面相互傳輸;其中,該記憶單元更儲存一稽核程式,而當(dāng)該軟體執(zhí)行后,該處理器執(zhí)行該稽核程式,以確保該軟體保護(hù)裝置搭配該軟體使用。
13.如權(quán)利要求12所述的軟體保護(hù)裝置,其特征在于該記憶單元中的該軟體的第二部分包括該軟體執(zhí)行所需的必要程式。
14.如權(quán)利要求13所述的軟體保護(hù)裝置,其特征在于該處理器是執(zhí)行該稽核程式,以隨機(jī)產(chǎn)生一稽核碼與一稽核時(shí)間,并把該稽核碼儲存于該電腦與該記憶單元中,以于抵達(dá)該稽核時(shí)間時(shí)驗(yàn)證兩者的稽核碼是否相同,若不相同時(shí),則該軟體保護(hù)裝置會令該軟體中止執(zhí)行。
15.如權(quán)利要求12所述的軟體保護(hù)裝置,其特征在于該資料傳輸介面是一通用串列匯流排。
全文摘要
本發(fā)明公開了一種軟體保護(hù)方法及裝置,分別把一軟體的一部分儲存于一電腦中與另一部分儲存于一軟體保護(hù)裝置中,電腦與軟體保護(hù)裝置皆儲存一登錄證,使軟體啟動時(shí),可透過驗(yàn)證兩者登錄證是否相符來確認(rèn)軟體是否可啟動,且軟體執(zhí)行時(shí),會發(fā)出與軟體的另一部分對應(yīng)的呼叫命令予軟體保護(hù)裝置,而軟體保護(hù)裝置依呼叫命令執(zhí)行運(yùn)算后始把運(yùn)算結(jié)果回傳予電腦,且軟體保護(hù)裝置更于軟體執(zhí)行后隨機(jī)稽核以確保軟體保護(hù)裝置與電腦配合,以達(dá)到提高軟體的保護(hù)效果。
文檔編號G06F12/14GK1567257SQ03137500
公開日2005年1月19日 申請日期2003年6月25日 優(yōu)先權(quán)日2003年6月25日
發(fā)明者李俊峰, 林子程, 李秉蔚 申請人:李俊峰