欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

軟件安全機(jī)制的制作方法

文檔序號:6450459閱讀:285來源:國知局
專利名稱:軟件安全機(jī)制的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及可防止軟件被未授權(quán)使用的機(jī)制,特別是涉及可在一臺以上的計算機(jī)上防止軟件被未授權(quán)使用的機(jī)制。
為防止未經(jīng)供應(yīng)者授權(quán)而使用軟件,迄今已經(jīng)有了各種安全防護(hù)機(jī)制。這些安全機(jī)制被包括在硬件形式的安全裝置中,必須當(dāng)軟件在計算機(jī)上運行之前就將這些硬件裝置附連于計算機(jī)。通常,需運行的軟件包括一查詢步驟,用以尋找表示硬件已安裝完畢的指示。這樣的硬件安全裝置可確保軟件只能在某個時間在一臺計算機(jī)上執(zhí)行。然而,這些硬件裝置相對較為昂貴,并且需要適應(yīng)其所連接的各種類型的計算機(jī)。
其它的安全機(jī)制包括若干種軟件裝置,它們尋找安裝該軟件的計算機(jī)的標(biāo)識,而不在乎任何硬件裝置的存在與否。這樣的軟件經(jīng)常需要復(fù)雜的算法,以產(chǎn)生一個需運行程序與主機(jī)標(biāo)識的獨特關(guān)聯(lián)。這些軟件裝置還可能需要將其它的硬件裝置連接于主機(jī),以建立一個需運行程序與目標(biāo)計算機(jī)的獨特關(guān)聯(lián)。美國專利4,683,553揭示了這樣的系統(tǒng),它需要一個讀卡器將需運行的程序與主機(jī)相關(guān)聯(lián)。
本發(fā)明的目的是,提供一種軟件安全機(jī)制,它可以僅在產(chǎn)生需運行軟件與單個計算機(jī)的關(guān)聯(lián)之后,授權(quán)執(zhí)行特定的軟件,這種執(zhí)行方式無需非常復(fù)雜的算法或者對目標(biāo)計算機(jī)連接任何附加的裝置。
本發(fā)明的上述和其它的目的可以由這樣一種裝入程序來實現(xiàn),該程序必須在一用戶希望將特定的軟件裝入一目標(biāo)計算機(jī)時,由該目標(biāo)計算機(jī)成功地執(zhí)行。該裝入程序?qū)⑹鼓繕?biāo)計算機(jī)讀取由需安裝該軟件的計算機(jī)中的內(nèi)部系統(tǒng)時鐘所指示的時間值。該計算機(jī)將進(jìn)一步地讀取安裝在該計算機(jī)內(nèi)的操作系統(tǒng)軟件的一個內(nèi)部編碼標(biāo)識。計算機(jī)將產(chǎn)生一個作為系統(tǒng)時鐘時間讀數(shù)以及操作系統(tǒng)內(nèi)部編碼標(biāo)識之函數(shù)的中間代碼。最好是將這樣算出來的代碼顯示給用戶。
在一較佳實施例中,用戶應(yīng)該可以理解,所顯示的代碼應(yīng)該與用戶希望安裝到計算機(jī)中的軟件的一個簡要說明一起傳送給軟件供應(yīng)者。該軟件供應(yīng)者保持有一個用于上述軟件的保密的標(biāo)識(ID)代碼。軟件供應(yīng)者可產(chǎn)生一口令,該口令是用戶計算機(jī)和用于描述所述軟件的保密ID代碼的函數(shù)。通過指令將如此產(chǎn)生的口令傳送給用戶,以便重新運行裝入程序。
當(dāng)裝入程序重新運行時,可讀取先前存儲的由系統(tǒng)時鐘指示的時間值以及操作系統(tǒng)的內(nèi)部編碼標(biāo)識。再一次用以上兩個數(shù)值計算先前顯示給用戶的中間代碼。計算機(jī)利用一數(shù)學(xué)函數(shù)來計算一內(nèi)部密鑰,所述函數(shù)與供應(yīng)者用來計算傳送給用戶之口令的函數(shù)相同。該數(shù)學(xué)函數(shù)是新產(chǎn)生的中間代碼以及需安裝軟件保密的ID代碼的函數(shù)。對此,需安裝軟件的保密的ID代碼最好是嵌入在該軟件中,以便由裝入程序讀取。接著,裝入程序使目標(biāo)計算機(jī)要求用戶輸入由軟件供應(yīng)者提供的口令。隨后,將用戶輸入的由軟件供應(yīng)者提供的口令與內(nèi)部計算出來的密鑰進(jìn)行對比,該密鑰是借助與軟件供應(yīng)者所采用的數(shù)學(xué)算法相同的算法來產(chǎn)生的。當(dāng)內(nèi)部計算出來的密鑰與輸入的口令相匹配時,輸入程序可授權(quán)運行所述特定的軟件。
為了更好地理解本發(fā)明,下面將結(jié)合附圖來進(jìn)行詳細(xì)的描述。


圖1示出了一操作系統(tǒng)、一裝入程序以及一可在裝入程序授權(quán)之后在計算機(jī)上運行的應(yīng)用程序之間的關(guān)系;圖2是一裝入程序的流程圖,該裝入程序可授權(quán)一具有圖1所示操作系統(tǒng)的計算機(jī)運行圖1所示的應(yīng)用程序;以及圖3是應(yīng)用軟件的供應(yīng)者所采用的一個計算過程的流程圖,該計算過程是用來產(chǎn)生一個進(jìn)入圖2所示裝入程序的口令。
參見圖1,一操作系統(tǒng)10可支持一裝入程序12的運行,該裝入程序再授權(quán)一個應(yīng)用軟件產(chǎn)品14運行。應(yīng)該理解,操作系統(tǒng)10常駐在一需安裝裝入程序和應(yīng)用軟件產(chǎn)品的計算機(jī)系統(tǒng)中。為了成功地安裝和運行應(yīng)用軟件產(chǎn)品,需要由裝入程序12來授權(quán)應(yīng)用軟件產(chǎn)品14實際運行。
現(xiàn)請參見圖2,其中示出了裝入程序12的流程圖。該裝入程序起始于步驟20,在該步驟,詢問是否有一個起始時間“T”被存儲在一系統(tǒng)登記表內(nèi)。對此,圖1所示的操作系統(tǒng)10最好包括一系統(tǒng)登記表,在其中可以找到對操作系統(tǒng)預(yù)先限定的各種參數(shù)值。應(yīng)該注意,可從微軟公司購得的視窗操作系統(tǒng)中包含這樣的系統(tǒng)登記表,該登記表可以被裝入程序讀取。
假設(shè)裝入系統(tǒng)首次運行,那么在操作系統(tǒng)的登記表中就不會出現(xiàn)起始時間“T”。這將促使處理器運行裝入程序,從而沿著“否”路徑進(jìn)行至步驟22?,F(xiàn)請參見步驟22,通常建立在操作系統(tǒng)10中或出現(xiàn)在運行該操作系統(tǒng)的計算機(jī)中的系統(tǒng)時鐘最好是能按秒來閱讀。秒數(shù)最好是從午夜或中午12:00開始的秒的數(shù)量。若系統(tǒng)時鐘不直接指示該時間,則最好是由一例程來確定自午夜算起的秒數(shù)。在任何情況下,當(dāng)計算機(jī)執(zhí)行了裝入程序的步驟22之后,都將有一個確定的數(shù)字來表示從午夜算起的逝去時間。在步驟24,這個按秒讀取的時間將作為起始時間“T”存儲在操作系統(tǒng)10的系統(tǒng)登記表中。接著,執(zhí)行該裝入程序的計算機(jī)將進(jìn)行至步驟26,并讀取操作系統(tǒng)10的標(biāo)識數(shù)字。對此,操作系統(tǒng)10最好是一個具有內(nèi)部編碼的獨特標(biāo)識數(shù)字(用于操作系統(tǒng)的特別復(fù)制)的視窗操作系統(tǒng)。該操作系統(tǒng)的標(biāo)識數(shù)字將被儲存在操作系統(tǒng)的系統(tǒng)登記表中。因此,在步驟26,將操作系統(tǒng)的標(biāo)識數(shù)字儲存為OS_ID。接著,執(zhí)行裝入程序的計算機(jī)將進(jìn)行至步驟26,并計算出一個中間代碼“IC”。被計算出來的中間代碼將是一個函數(shù)“f1(OS_ID,T)”。應(yīng)該理解,特定的數(shù)學(xué)函數(shù)f1(OS_ID,T)幾乎可以是兩個變量“OS_ID”和“T”的任意限定的數(shù)學(xué)函數(shù)。接著,執(zhí)行裝入程序的計算機(jī)將讀取應(yīng)用軟件產(chǎn)品14中的一個嵌入的軟件產(chǎn)品ID。根據(jù)本發(fā)明,該軟件產(chǎn)品ID將是一個賦予由軟件供應(yīng)者所提供的特定軟件產(chǎn)品的獨特數(shù)字。該軟件產(chǎn)品ID被存儲為“SP_ID”。執(zhí)行裝入程序的處理器將運行至步驟32,在那里計算一變量“KEY(密鑰)”的數(shù)值??梢詫EY變量看成是函數(shù)f2(IC,SP_ID)。應(yīng)該理解,函數(shù)f2(IC,SP_ID)可以是由中間代碼“IC”以及軟件產(chǎn)品ID,SP_ID的數(shù)學(xué)算法任意限定的。在執(zhí)行了步驟32之后,裝入程序需要計算機(jī)進(jìn)行至步驟34,在那里詢問在操作系統(tǒng)“10”的系統(tǒng)登記表中是否出現(xiàn)一“PASSWORD(口令)”。假設(shè)沒有口令輸入,那么裝入程序就需要計算機(jī)進(jìn)行至步驟36,并顯示中間代碼“IC”。裝入程序還將使計算機(jī)顯示這樣的要求,即,用戶需以輸入口令或取消響應(yīng)的方式來進(jìn)行響應(yīng)。
執(zhí)行裝入程序的計算機(jī)將進(jìn)行至步驟38,在那里詢問是否有口令輸入或者是否選擇取消。應(yīng)該理解,當(dāng)裝入程序被第一次使用時,用戶通常會因為沒有被提供口令而選擇取消。這將促使執(zhí)行裝入程序的計算機(jī)進(jìn)行至中止步驟40。
最好是指令一個被授權(quán)的用戶將出現(xiàn)在用戶計算機(jī)上的中間代碼與安裝在該計算機(jī)上的特定應(yīng)用軟件產(chǎn)品的簡要說明傳送至軟件供應(yīng)者。應(yīng)用軟件產(chǎn)品的簡要說明最好是例如應(yīng)用軟件產(chǎn)品的題目或者是可以將該特定的應(yīng)用軟件區(qū)別于該軟件供應(yīng)者可能提供的其它軟件的其它任何信息資料。
參見圖3,其中示出了一個計算過程的流程圖,軟件供應(yīng)者可以響應(yīng)于從一用戶接收到的中間代碼以及應(yīng)用軟件說明來采用該計算過程。應(yīng)該理解,軟件供應(yīng)者可以人工地接收前述的信息,或者可以借助直接通信聯(lián)系于該用戶計算機(jī)的計算機(jī)系統(tǒng)(因而可以將來自于用戶計算機(jī)的信息直接聯(lián)系于軟件供應(yīng)者的計算機(jī))來接收。在任何一種情況下,軟件供應(yīng)者最好是在步驟50采取這樣一種方式,即,能證明傳來該中間代碼的用戶實際上是一個已售出應(yīng)用軟件包產(chǎn)品的一個已登記和被授權(quán)的用戶。如果是,軟件供應(yīng)者將進(jìn)行至步驟52,以找尋一個可用來描述從該用戶收到的應(yīng)用軟件的相應(yīng)的軟件產(chǎn)品ID。還應(yīng)該理解,該軟件產(chǎn)品ID將與嵌入在提供給該用戶的軟件產(chǎn)品中的軟件產(chǎn)品ID相同。軟件供應(yīng)者將進(jìn)行至步驟54,最好是將用戶傳來的中間代碼輸入一本地計算裝置中,該計算裝置可以是一個計算系統(tǒng)。該計算系統(tǒng)將在步驟56計算一“PASSWORD”。可以根據(jù)函數(shù)“f2”,用計算出來的PASSWORD值計算圖2之裝入程序中的“KEY”變量。對此,數(shù)學(xué)算法“f2”是中間代碼IC和軟件產(chǎn)品ID的函數(shù)。根據(jù)本發(fā)明,軟件供應(yīng)者可以將這樣計算出來的口令值傳送給此用戶。如前所述,這可以通過與用戶計算機(jī)的交互通信聯(lián)系來實現(xiàn)。
請重新參見圖2,在接收到來自于軟件供應(yīng)者的通信口令時,用戶將把所述裝入程序和應(yīng)用軟件裝入用戶計算機(jī)。這將促使裝入程序重新執(zhí)行步驟20,在那里詢問是否已經(jīng)有一個起始時間“T”被存入操作系統(tǒng)的系統(tǒng)登記表內(nèi)。由于在裝入程序的起始或初始過程中已經(jīng)預(yù)先輸入了一起始時間,所以用戶計算機(jī)將進(jìn)行至步驟42,讀取起始時間“T”。執(zhí)行裝入程序的計算機(jī)接下來將進(jìn)行至步驟26,讀取操作系統(tǒng)ID,并將其存為OS_ID。計算機(jī)將重新計算作為OS_ID之函數(shù)的中間代碼“IC”,并從步驟42讀取起始時間“T”。接著,裝入程序需要計算機(jī)讀取軟件產(chǎn)品ID并將其存為SP_ID,而后在步驟32計算“KEY”。還是請注意,在步驟30可以看到,“KEY”是作為中間代碼“IC”和軟件產(chǎn)品ID,SP_ID的數(shù)學(xué)函數(shù)f2來計算的。執(zhí)行裝入程序的計算機(jī)將進(jìn)行至步驟34,在那里詢問是否有口令輸入系統(tǒng)登記表。由于用戶不會已經(jīng)鍵入口令,因而計算機(jī)將進(jìn)行至步驟36,并顯示計算出來的中間代碼和需要輸入口令的要求。應(yīng)該理解,當(dāng)從屏幕上看到該特別的提示信號時,用戶被指令輸入口令。這應(yīng)該可以使執(zhí)行該裝入程序的計算機(jī)在步驟38讓人注意到需輸入口令。在步驟44,輸入的口令被當(dāng)作“PASSWORD”存入系統(tǒng)登記表。這將促使計算機(jī)重新進(jìn)行至步驟34,詢問系統(tǒng)登記表中是否有口令。由于這時在系統(tǒng)登記表中已經(jīng)有了口令,所以計算機(jī)將進(jìn)行至步驟46,在那里詢問PASSWORD值是否等于KEY值。應(yīng)該理解,由于對相同的變量,即中間代碼IC和軟件產(chǎn)品ID,SP_ID采取了相同的數(shù)學(xué)函數(shù)f2,所以PASSWORD值應(yīng)該等于KEY值。這將促使計算機(jī)在正常情況下將進(jìn)行至步驟48,在那里將授權(quán)具有軟件產(chǎn)品標(biāo)識SP_ID的軟件產(chǎn)品可以運行。
請轉(zhuǎn)向步驟46,如果用戶已經(jīng)將裝入程序和應(yīng)用軟件裝入另一個不同的計算機(jī),那么起始時間就不會等同于為裝入程序的首次安裝所確定的起始時間。對此,第二計算機(jī)將不大可能產(chǎn)生相同的起始時間。第二計算機(jī)還不會具有與第一計算機(jī)中的操作系統(tǒng)完全相同的復(fù)制件。第二計算機(jī)中的操作系統(tǒng)的復(fù)制件將具有賦予它的一個不同的操作系統(tǒng)識別數(shù)字。這將導(dǎo)致按照不同的“T”和OS_ID數(shù)值在第二計算機(jī)中產(chǎn)生一個不同的操作系統(tǒng)ID。于是,這將導(dǎo)致在第二計算機(jī)中計算出一個不同的KEY值。輸入預(yù)先提供給用戶的口令的任何企圖都將導(dǎo)致輸入的口令不等于計算出來的KEY值。當(dāng)此發(fā)生時,裝入程序繼續(xù)在步驟36-38、44-46之間循環(huán)進(jìn)行,直到用戶放棄將裝入程序和伴隨的應(yīng)用程序安裝到第二計算機(jī)上的企圖。
應(yīng)該理解,通過以上的描述,已經(jīng)揭示了一個裝入程序的較佳實施例,借助它可以實施這樣一個過程,即,對運行一個特定識別操作系統(tǒng)的特定計算機(jī)唯一連接一種軟件產(chǎn)品的過程。對所揭示的過程可以有各種變化和改型,它們都不偏離本發(fā)明的范圍。特別是,裝入程序可以包括略微不同的步驟,用以在準(zhǔn)備計算中間代碼時注意操作系統(tǒng)ID和系統(tǒng)時鐘值。裝入程序還可以包括用于促使用戶響應(yīng)、輸入一口令、以及對口令和內(nèi)部計算的KEY值進(jìn)行比較的不同步驟。因此,前面的描述僅僅是為了舉例,本發(fā)明僅由所附權(quán)利要求書來限定。
權(quán)利要求
1.一種用于防止安裝在一個其內(nèi)具有一操作系統(tǒng)的計算機(jī)中的計算機(jī)程序被未授權(quán)使用的方法,所述方法包括如下步驟在所述計算機(jī)中,確定一取決于所述計算機(jī)程序首次安裝時間的變量值;在所述計算機(jī)中,讀取一安裝在該計算機(jī)中的操作系統(tǒng)的標(biāo)識;在所述計算機(jī)中,計算出一中間代碼,該中間代碼是取決于計算機(jī)程序安裝時間的變量以及所讀取的所述操作系統(tǒng)標(biāo)識這兩者的數(shù)學(xué)函數(shù);在所述計算機(jī)外,計算出作為中間代碼以及計算機(jī)程序的保密的、預(yù)先賦予的標(biāo)識這兩者的預(yù)定數(shù)學(xué)函數(shù)的口令,并將計算出來的口令輸入計算機(jī);在所述計算機(jī)中,計算出一個將與外部計算出來的口令相比較的密鑰,所述密鑰也是按照作為中間代碼以及計算機(jī)程序的保密的、預(yù)先賦予的標(biāo)識這兩者的數(shù)學(xué)函數(shù)來計算的,該數(shù)學(xué)函數(shù)與用來在計算機(jī)外部計算口令的函數(shù)相同;以及在所述計算機(jī)中,當(dāng)所述口令等于密鑰時,授權(quán)執(zhí)行具有所述保密的、預(yù)先賦予的標(biāo)識的計算機(jī)程序。
2.如權(quán)利要求1所述的方法,其特征在于,所述確定一取決于所述計算機(jī)程序安裝時間的變量值的步驟包括讀取一系統(tǒng)時鐘值,該時鐘值限定了從某天的預(yù)定時間開始逝去的時間的數(shù)量;以及將取決于計算機(jī)程序安裝時間的變量設(shè)定為等于從系統(tǒng)時鐘讀取的時間值,藉以使所限定的變量值可以重復(fù)地用來計算所述中間代碼。
3.如權(quán)利要求1所述的方法,其特征在于,該方法包括在計算所述密鑰之前,從所安裝的計算機(jī)程序內(nèi)的一個嵌入位置讀取所述計算機(jī)程序的所述保密的、預(yù)先賦予的標(biāo)識。
4.如權(quán)利要求1所述的方法,其特征在于,該方法還包括在進(jìn)行所述于計算機(jī)外部計算一口令的步驟之前,在所述計算機(jī)外部鑒別所述計算機(jī)程序是否被有權(quán)安裝和使用該計算機(jī)程序的一方進(jìn)行安裝的步驟。
5.如權(quán)利要求1所述的方法,其特征在于,該方法還包括在所述計算機(jī)中,顯示計算出來的中間代碼的數(shù)值的步驟,以使計算機(jī)用戶可以將該中間代碼傳送至遠(yuǎn)離該計算機(jī)的、進(jìn)行計算機(jī)外口令計算的地點。
6.一種包含一裝入程序和一計算機(jī)程序的介質(zhì),所述計算機(jī)程序可利用所述裝入程序安裝到一計算機(jī)中,該介質(zhì)包括用于在裝入程序的初始執(zhí)行過程中讀取由計算機(jī)中的系統(tǒng)時鐘所指示之時間的指令;用于存儲所讀取時間的指令,以便每當(dāng)執(zhí)行裝入程序時,可以由所述執(zhí)行裝入程序的計算機(jī)來使用所述讀取的時間;用于讀取所述計算機(jī)中的操作系統(tǒng)標(biāo)識的指令;用于計算作為所讀取時間以及所讀取的操作系統(tǒng)標(biāo)識之函數(shù)的中間代碼的指令;以及用于進(jìn)一步地計算作為所述中間代碼以及要安裝在該計算機(jī)中的計算機(jī)程序標(biāo)識之函數(shù)的密鑰的指令。
7.如權(quán)利要求6所述的介質(zhì),其特征在于,所述裝入程序還包括用于將所述計算出來的密鑰與一外界輸入的口令作比較的指令,當(dāng)計算出來的密鑰與外界輸入的口令具有一預(yù)定的關(guān)系時,可以授權(quán)所述計算機(jī)程序運行。
8.如權(quán)利要求7所述的介質(zhì),其特征在于,如果所述密鑰是在安裝所述裝入程序的同一臺計算機(jī)上計算出來的,則所述輸入的口令等于所述計算出來的密鑰。
全文摘要
一種裝入程序,可導(dǎo)致一用戶的計算機(jī)生成一個中間代碼,這個代碼是從計算機(jī)的系統(tǒng)時鐘讀取的時間值和一操作系統(tǒng)標(biāo)識的函數(shù)。軟件供應(yīng)者可接收來自該用戶的這個中間代碼,并產(chǎn)生一個作為該中間代碼和用戶希望安裝的軟件的保密產(chǎn)品ID之函數(shù)的口令。而后再次執(zhí)行裝入程序時,所述裝入程序在用戶的計算機(jī)中采用相同的數(shù)學(xué)算法來計算出一個內(nèi)部密鑰。在裝入程序提示輸入軟件供應(yīng)者的口令之后,將內(nèi)部密鑰與軟件供應(yīng)者的口令作比較。軟件供應(yīng)者的口令和內(nèi)部生成的口令必須相同,而后才能使裝入程序授權(quán)執(zhí)行用戶希望安裝的軟件。
文檔編號G06F21/00GK1305151SQ00136079
公開日2001年7月25日 申請日期2000年12月8日 優(yōu)先權(quán)日1999年12月8日
發(fā)明者雷蒙德·J·希格斯, 理查德·W·加曼 申請人:開利公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阳信县| 富源县| 武隆县| 顺平县| 招远市| 贺兰县| 突泉县| 深泽县| 富宁县| 佳木斯市| 岱山县| 吕梁市| 安龙县| 沁阳市| 锡林郭勒盟| 岳池县| 蒙山县| 江口县| 崇礼县| 广饶县| 台东县| 佛冈县| 措勤县| 开阳县| 惠东县| 海原县| 璧山县| 渝北区| 德昌县| 保山市| 平顶山市| 甘洛县| 紫金县| 武川县| 县级市| 两当县| 高阳县| 柞水县| 尼勒克县| 延津县| 临城县|