專利名稱:刷新軟件許可證的制作方法
刷新軟件許可證
相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求2007年3月20日提交的美國(guó)臨時(shí)申請(qǐng)No.60/918,898的優(yōu)先權(quán),其全部?jī)?nèi)容通過(guò)引用合并于此。
背景技術(shù):
軟件產(chǎn)生器實(shí)施軟件許可證所做的努力迄今尚未完全令人滿意。未授權(quán)用戶或"盜版者"對(duì)軟件市場(chǎng)帶來(lái)巨大的損害,其中開發(fā)軟件方面重要的經(jīng)濟(jì)投資沒(méi)有帶來(lái)足夠的授權(quán)用戶。
結(jié)合附圖,參照以下詳細(xì)描述,可以更容易地認(rèn)識(shí)到并同樣更好
地理解所公開的主旨的上述方面和許多附帶優(yōu)點(diǎn),其中
圖l是示出了根據(jù)本公開各個(gè)實(shí)施例的示例許可證訪問(wèn)代理和用
于刷新軟件許可證的示例許可證服務(wù)器的框圖2是示出了根據(jù)本公開的各個(gè)實(shí)施例的示例許可證系統(tǒng)產(chǎn)生
器、示例供應(yīng)器,以及用于獲取軟件許可證的示例客戶端計(jì)算機(jī)的框圖;以及
圖3A-3F是根據(jù)本公開的各個(gè)實(shí)施例的用于刷新軟件許可證使得禁止未授權(quán)用戶的示例方法的過(guò)程圖。
具體實(shí)施例方式
本公開的實(shí)施例包括系統(tǒng)、方法、以及計(jì)算機(jī)可讀介質(zhì),適合于首先提供一種使得能夠執(zhí)行受保護(hù)的軟件產(chǎn)品的軟件許可證,從而允許訪問(wèn)其功能,并且隨后可以周期性地或非周期性地刷新軟件許可證(如果被正確授權(quán)的話)。在本公開的實(shí)施例中,許可證系統(tǒng)產(chǎn)生器幫助產(chǎn)生許可證驗(yàn)證程序。該許可證驗(yàn)證程序由供應(yīng)器合并在受保護(hù)的軟件產(chǎn)品中。供應(yīng)器然后可以將該受保護(hù)的軟件產(chǎn)品分發(fā)至客戶端。如果被正確授權(quán),代表客戶的該許可證驗(yàn)證程序接觸并驗(yàn)證許可證服務(wù)器,該服務(wù)器能夠驗(yàn)證或刷新該軟件許可證并啟用該受保護(hù)的軟件產(chǎn)品的功能。
本公開的實(shí)施例中,軟件許可證包含啟用該受保護(hù)的軟件產(chǎn)品的功能的數(shù)據(jù)。在一個(gè)實(shí)施例中,軟件許可證中的數(shù)據(jù)實(shí)現(xiàn)一些程序功能,并且在其他實(shí)施例中,軟件許可證中的數(shù)據(jù)實(shí)現(xiàn)所有程序功能。在另一個(gè)實(shí)施例中,該受保護(hù)的軟件產(chǎn)品包括多個(gè)特征,這些特征中的一些可以沒(méi)有軟件許可證也能操作,其中這些特征中的一些需要軟件許可證才能操作。在實(shí)施例中,軟件許可證中的數(shù)據(jù)提供除不需要軟件許可證就能操作的特征之外的附加特征。
在一個(gè)實(shí)施例中,軟件許可證與包含信息的許可證分組相關(guān)聯(lián)。這些信息可以包括軟件許可證序號(hào)、數(shù)字簽名、與軟件許可證相關(guān)聯(lián)的用戶標(biāo)識(shí)符、由軟件許可證啟用的程序特征的列表、等等。在一些實(shí)施例中,這些附加的信息可以包括不需要用戶干預(yù)就能夠識(shí)別客戶端計(jì)算機(jī)的信息,例如唯一表征客戶端計(jì)算機(jī)硬件配置的電子序列號(hào)、網(wǎng)卡地址等等。在許可證分組中包括各種信息的實(shí)施例中,許可證服務(wù)器可以儲(chǔ)存一個(gè)或多個(gè)信息從而減少了對(duì)受保護(hù)的軟件產(chǎn)品的未授權(quán)使用。例如,使用附加的信息,確定與特定的電子序號(hào)相關(guān)聯(lián)的軟件許可證是否已被安裝在不止一個(gè)計(jì)算機(jī)上,或由不止一個(gè)用戶進(jìn)行安裝。識(shí)別受保護(hù)軟件產(chǎn)品的安裝的信息還包括安裝日期或在安裝的時(shí)產(chǎn)生的隨機(jī)數(shù)。在一些實(shí)施例中,對(duì)比于軟件許可證和附加的信息,在產(chǎn)生許可證分組之前許可證服務(wù)器將沒(méi)有附加信息的軟件許可證進(jìn)行存儲(chǔ),其有利地節(jié)省了存儲(chǔ)空間。
圖1示出了客戶端計(jì)算機(jī)100和許可證服務(wù)器102。該客戶端計(jì)
算機(jī)IOO可以采用各種形式。例如,客戶端計(jì)算機(jī)100的一個(gè)適合的形式可以是一種通用臺(tái)式計(jì)算機(jī),而客戶端計(jì)算機(jī)100的其他適合形式可以是移動(dòng)電話、膝上型計(jì)算機(jī)、PDA、電子游戲機(jī)控制臺(tái)等等??蛻舳擞?jì)算機(jī)100已經(jīng)安裝有許可證訪問(wèn)代理104,該代理用于啟用受保護(hù)軟件產(chǎn)品U6中的功能。本公開的實(shí)施例便于對(duì)客戶端計(jì)算機(jī)100和許可證服務(wù)器102進(jìn)
行驗(yàn)證,從而防止盜版者通過(guò)偽造來(lái)自客戶端計(jì)算機(jī)100的請(qǐng)求或來(lái)自許可證服務(wù)器102的響應(yīng),不正當(dāng)?shù)孬@取軟件許可證的。為此,許可證訪問(wèn)代理104包括配置為對(duì)許可證服務(wù)器102身份進(jìn)行驗(yàn)證的許可證服務(wù)器驗(yàn)證器106。
許可證服務(wù)器102還包括客戶端驗(yàn)證器120,其用于在接收到許可證請(qǐng)求時(shí)對(duì)客戶端計(jì)算機(jī)100進(jìn)行驗(yàn)證。該客戶端驗(yàn)證器120可以在接收到許可證請(qǐng)求時(shí),通過(guò)以下操作來(lái)對(duì)客戶端計(jì)算機(jī)100進(jìn)行驗(yàn)證使用客戶端標(biāo)識(shí)符和初始密鑰,并將它們與在通信耦合至客戶端驗(yàn)證器120的數(shù)據(jù)庫(kù)中存儲(chǔ)的信息進(jìn)行匹配。在許可證訪問(wèn)代理104的一些實(shí)施例中,初始化器108建立與許可證服務(wù)器102的初始連接并提交許可證請(qǐng)求。
本公開的實(shí)施例除了驗(yàn)證之外還便于客戶端計(jì)算機(jī)ioo和許可證服務(wù)器102的認(rèn)證。但是之前描述的驗(yàn)證特征允許客戶端計(jì)算機(jī)100和許可證服務(wù)器102確定是否授權(quán)相應(yīng)的客戶端計(jì)算機(jī)100和許可證服務(wù)器102執(zhí)行嘗試執(zhí)行的任務(wù),客戶端認(rèn)證器110和服務(wù)器認(rèn)證器124還允許一些實(shí)施例通常利用密碼系統(tǒng)技術(shù)至少實(shí)質(zhì)上確??蛻舳擞?jì)算機(jī)100和許可證服務(wù)器102是它們要求的參與者。
許可證訪問(wèn)代理104還包括客戶端密鑰管理器112,該密鑰管理器112被配置為存儲(chǔ)至少兩個(gè)代理會(huì)話密鑰,包括先前會(huì)話密鑰和當(dāng)前會(huì)話密鑰。在一個(gè)實(shí)施例中,這些密鑰在每次通信時(shí)被更新至許可證服務(wù)器102,但是在其他實(shí)施例中,這些密鑰不經(jīng)常被更新。以這種方式,客戶端計(jì)算機(jī)100能夠記住與許可證服務(wù)器102的多個(gè)不同的通信會(huì)話,來(lái)以安全的方式刷新軟件許可證。先前會(huì)話密鑰的儲(chǔ)存還提供可靠性。例如,即使許可證訪問(wèn)代理104和許可證服務(wù)器102之間的通信循環(huán)之一中存在錯(cuò)誤(例如不能正確更新密鑰),許可證訪問(wèn)代理104和許可證服務(wù)器102能夠安全地通信。
許可證訪問(wèn)代理104還包括客戶端許可證管理器114,該客戶端許可證管理器114被配置為在從許可證服務(wù)器102接收到軟件許可證時(shí),在客戶端的計(jì)算機(jī)上安裝或啟用受保護(hù)的軟件產(chǎn)品116。當(dāng)許可證時(shí)間間隔期滿時(shí),客戶端許可證管理器114的一些實(shí)施例被配置為
使初始化器108使用在客戶端計(jì)算機(jī)100中儲(chǔ)存的更新的會(huì)話密鑰和更新的會(huì)話標(biāo)識(shí)符來(lái)與許可證服務(wù)器102進(jìn)行通信,從而刷新許可證。由客戶端許可證管理器114接收的軟件許可證是在接收到來(lái)自客戶端計(jì)算機(jī)100、己接收到會(huì)話密鑰的的確認(rèn)時(shí)由服務(wù)器許可證管理器126
產(chǎn)生的。
許可證服務(wù)器102還包括服務(wù)器密鑰管理器122和服務(wù)器許可證管理器126。會(huì)話意味著包括許可證服務(wù)器102和客戶端計(jì)算機(jī)100之間以其他方式單獨(dú)通信的邏輯分組。服務(wù)器密鑰管理器122被配置為在每個(gè)當(dāng)前會(huì)話期間產(chǎn)生新會(huì)話密鑰用于在下個(gè)會(huì)話期間使用。在一個(gè)實(shí)施例中,服務(wù)器密鑰管理器122還可操作于對(duì)客戶端標(biāo)識(shí)符和當(dāng)前會(huì)話密鑰之間的關(guān)聯(lián)進(jìn)行存儲(chǔ),以在未來(lái)的會(huì)話中使用。服務(wù)器許可證管理器126被配置為,響應(yīng)于來(lái)自客戶端計(jì)算機(jī)100的許可證
請(qǐng)求來(lái)產(chǎn)生軟件許可證和許可證分組。
圖2示出了一種系統(tǒng)實(shí)施例,其允許許可證系統(tǒng)產(chǎn)生器200作為客戶端計(jì)算機(jī)204和供應(yīng)器202之間可信任的第三方,其中該供應(yīng)器202嘗試分發(fā)受保護(hù)的軟件產(chǎn)品??蛻舳擞?jì)算機(jī)204代表計(jì)算機(jī),如客戶端計(jì)算機(jī)100。從一開始,嘗試為他們的軟件設(shè)計(jì)有效的許可方案的軟件供應(yīng)器過(guò)去所面臨的問(wèn)題就是構(gòu)建該計(jì)劃的復(fù)雜性。如圖2中所示,供應(yīng)器202,使用本公開的實(shí)施例,不需要?jiǎng)?chuàng)建他們自己的許可方案,而是合并由許可證系統(tǒng)產(chǎn)生器200產(chǎn)生的許可證驗(yàn)證程序來(lái)保護(hù)它們的軟件產(chǎn)品。許可證驗(yàn)證程序的一個(gè)實(shí)施例包括許可證訪問(wèn)代理104,供應(yīng)器202的一個(gè)實(shí)施例包括許可證服務(wù)器102。
許可證系統(tǒng)產(chǎn)生器200包括產(chǎn)生器密鑰發(fā)生器210、證書發(fā)布器214、以及許可證驗(yàn)證程序發(fā)生器212。許可證系統(tǒng)產(chǎn)生器200創(chuàng)建證書和要由供應(yīng)器202使用的許可證訪問(wèn)代理208。供應(yīng)器202的一個(gè)實(shí)施例包括許可證合并器216、供應(yīng)器密鑰發(fā)生器220、許可證分組發(fā)生器222、以及軟件分發(fā)器224。許可證系統(tǒng)產(chǎn)生器200使用這些組件來(lái)將證書和許可證訪問(wèn)代理208合并到受保護(hù)的軟件產(chǎn)品中,并產(chǎn)生證書、許可證訪問(wèn)代理、以及用于許可該受保護(hù)軟件產(chǎn)品和隨后刷新
9軟件許可證的許可證226。
為了允許客戶端計(jì)算機(jī)204驗(yàn)證供應(yīng)器202的身份,供應(yīng)器密鑰 發(fā)生器220,產(chǎn)生包括供應(yīng)器的公共密鑰和供應(yīng)器的私有密鑰在內(nèi)的 公共/私有密鑰對(duì)、將供應(yīng)器的私有密鑰存儲(chǔ)到供應(yīng)器數(shù)據(jù)庫(kù)中,并將 供應(yīng)器的公共密鑰發(fā)送至要進(jìn)行注冊(cè)的許可證系統(tǒng)產(chǎn)生器200。作為 響應(yīng),許可證系統(tǒng)產(chǎn)生器200的證書發(fā)布器214發(fā)出包括供應(yīng)器的公 共密鑰和供應(yīng)器標(biāo)識(shí)符在內(nèi)的供應(yīng)器證書。許可證系統(tǒng)產(chǎn)生器200利 用許可證系統(tǒng)產(chǎn)生器的私有主密鑰來(lái)簽署證書,并使用該許可證驗(yàn)證 程序發(fā)生器212來(lái)生成許可證訪問(wèn)代理208。
將證書及許可證訪問(wèn)代理208發(fā)送至供應(yīng)器202。供應(yīng)器202將 由許可證系統(tǒng)產(chǎn)生器200創(chuàng)建的證書和許可證訪問(wèn)代理208與他們希 望保護(hù)的軟件產(chǎn)品合并。為了實(shí)現(xiàn)這種組合,供應(yīng)器202添加由許可 證分組發(fā)生器222產(chǎn)生的許可證分組。供應(yīng)器202然后將分發(fā)這種證 書的組合、許可證訪問(wèn)代理、以及許可證分組226的組合與受保護(hù)的 軟件產(chǎn)品一起分發(fā)至客戶端計(jì)算機(jī)204。受保護(hù)的軟件產(chǎn)品至少部分 禁用,直到客戶端計(jì)算機(jī)204使用許可證訪問(wèn)代理208來(lái)啟用許可證 和受保護(hù)的軟件產(chǎn)品。同樣,許可證和受保護(hù)的軟件產(chǎn)品被啟用之后, 在給定時(shí)間段后停止其功能,除非由客戶端計(jì)算機(jī)204進(jìn)行刷新。
本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,盡管己分別描述了這些系統(tǒng)的各個(gè)組 件但是在不背離要求權(quán)利的主旨的范圍的前提下,可以將多個(gè)組件合 并到單一的組件中。同樣,盡管可以將各種組件描繪成駐留在相同的 物理硬件上,但是這些組件也可以駐留在分離的物理硬件上,或可以 經(jīng)由網(wǎng)絡(luò)相連接。本領(lǐng)域技術(shù)人員同樣也將認(rèn)識(shí)到,當(dāng)對(duì)如密鑰、許 可證之類的數(shù)據(jù),或其他數(shù)據(jù)進(jìn)行儲(chǔ)存時(shí),可以以各種方式對(duì)這些數(shù) 據(jù)進(jìn)行儲(chǔ)存,包括存儲(chǔ)在易失性或非易失性存儲(chǔ)器中,存儲(chǔ)在可拆卸 或不可拆卸介質(zhì)中,或者存儲(chǔ)在本地或遠(yuǎn)程數(shù)據(jù)庫(kù)中。
圖3A-3F示出了用于刷新軟件許可證以使得禁止未授權(quán)使用的方 法300。從開始框,方法300繼續(xù)至在繼續(xù)端點(diǎn)("端點(diǎn)A")和退出端 點(diǎn)("端點(diǎn)B")之間定義的一組方法集合304。該方法步驟集合304描 述了由供應(yīng)器202產(chǎn)生的許可軟件的方法。在該方法步驟集合304中,供應(yīng)器202與許可證系統(tǒng)產(chǎn)生器200進(jìn)行通信以便創(chuàng)建要被合并到受 保護(hù)的軟件產(chǎn)品U6中的證書、許可證訪問(wèn)代理、以及許可證226。 該方法步驟集合304還執(zhí)行軟件使用特征的初步啟用。從端點(diǎn)A (圖 3B),方法300前進(jìn)至框312,在框312中,供應(yīng)器密鑰發(fā)生器220 產(chǎn)生私有/公共密鑰對(duì)。由私有供應(yīng)器密鑰和公共供應(yīng)器密鑰組成的該 密鑰對(duì)可以通過(guò)密碼算法來(lái)產(chǎn)生。同樣在框312中,將公共供應(yīng)器密 鑰和供應(yīng)器標(biāo)識(shí)符發(fā)送至許可證系統(tǒng)產(chǎn)生器200。方法300繼續(xù)至框 314,在框314中,將私有供應(yīng)器密鑰儲(chǔ)存在供應(yīng)器的數(shù)據(jù)庫(kù)中。
在框316,產(chǎn)生器密鑰發(fā)生器210產(chǎn)生由私有主密鑰和公共主密 鑰組成的私有/公共密鑰對(duì)??蛇x地,私有主密鑰和公共主密鑰可以預(yù) 先由許可證系統(tǒng)產(chǎn)生器200產(chǎn)生并儲(chǔ)存。 一旦已經(jīng)獲得私有主密鑰和 公共主密鑰,方法300繼續(xù)至框318,在框318中,許可證驗(yàn)證程序 發(fā)生器212產(chǎn)生許可證訪問(wèn)代理104。然后將許可證訪問(wèn)代理104和 公共主密鑰發(fā)送至供應(yīng)器202。方法300繼續(xù)至框320,在框320中, 證書發(fā)布器214使用公共供應(yīng)器密鑰和供應(yīng)器標(biāo)識(shí)符,來(lái)發(fā)出由私有 主密鑰簽署的證書,并將該發(fā)出的證書發(fā)送至供應(yīng)器202。可選地, 將許可證訪問(wèn)代理和證書208組合并且一起發(fā)送至供應(yīng)器202。
私有主密鑰簽署的證書允許證書的接受方使用公共主密鑰,來(lái)驗(yàn) 證證書的源和證書的內(nèi)容(即,公共供應(yīng)器密鑰和供應(yīng)器標(biāo)識(shí)符)是 真實(shí)的。以這種方式,客戶端計(jì)算機(jī)204驗(yàn)證供應(yīng)器202的身份,許 可證訪問(wèn)代理104至少實(shí)質(zhì)上確保與其進(jìn)行通信的供應(yīng)器202是其 所創(chuàng)建的相同的供應(yīng)器202,且不是惡意第三方。
方法300然后前進(jìn)至框322,在框322中,許可證合并器216將 許可證訪問(wèn)代理104與要被分發(fā)給客戶端計(jì)算機(jī)204的軟件產(chǎn)品相合 并。 一旦合并,軟件產(chǎn)品變成受保護(hù)的軟件產(chǎn)品116。在框324,軟件 分發(fā)器224將受保護(hù)的軟件產(chǎn)品116和證書分發(fā)至客戶端計(jì)算機(jī)204。
這種分發(fā)可以經(jīng)由許多介質(zhì)媒介進(jìn)行,包括,例如,經(jīng)由通過(guò)互聯(lián)網(wǎng) 的直接下載、經(jīng)由諸如光盤或閃存的可拆卸的存儲(chǔ)介質(zhì)、或經(jīng)由無(wú)線 傳輸。此外,許可證訪問(wèn)代理104和受保護(hù)的軟件產(chǎn)品116可以包括 在相同的計(jì)算機(jī)可讀介質(zhì)上,或可以分別獲得。然而,獲得后,許可
ii證訪問(wèn)代理104的成功執(zhí)行啟用受保護(hù)的軟件產(chǎn)品116的功能。方法 300繼續(xù)至框326,在框326中,將受保護(hù)的軟件產(chǎn)品116安裝在客戶 端計(jì)算機(jī)204上,并然后繼續(xù)至另一繼續(xù)端點(diǎn)("端點(diǎn)A1")。
從端點(diǎn)A1 (圖3C),方法300前進(jìn)至框328。在該點(diǎn),還沒(méi)有啟 用受保護(hù)的軟件產(chǎn)品116。然而在一些實(shí)施例中,受保護(hù)的軟件產(chǎn)品 116包含軟件許可證,該軟件許可證還沒(méi)有被啟用。在框328,該受保 護(hù)的軟件產(chǎn)品116調(diào)用許可證訪問(wèn)代理104,許可證訪問(wèn)代理104向 供應(yīng)器202請(qǐng)求許可證分組。方法300繼續(xù)至框330,在框330中, 許可證分組發(fā)生器222開始產(chǎn)生由私有供應(yīng)器密鑰簽署的許可證分 組。針對(duì)簽名使用私有供應(yīng)器密鑰允許受保護(hù)的軟件產(chǎn)品116驗(yàn)證從 供應(yīng)器202接收到許可數(shù)據(jù)包,并允許方法300將許可證分組安全傳 輸?shù)皆S可證訪問(wèn)代理104。方法300繼續(xù)至框332,在框332中,許可 證分組發(fā)生器222為受保護(hù)的軟件的產(chǎn)生序列號(hào)并產(chǎn)生激活密鑰。方 法300然后繼續(xù)至框334,在框334中,許可證分組發(fā)生器222將序 列號(hào)與激活密鑰進(jìn)行組合以為對(duì)受保護(hù)的軟件產(chǎn)品116的初始訪問(wèn)形 成初始密鑰。接著,在框336,供應(yīng)器202將許可證分組發(fā)送至客戶 端計(jì)算機(jī)204。
客戶端計(jì)算機(jī)204解開許可證分組并適于預(yù)先發(fā)送的證書和公共 供應(yīng)器密鑰來(lái)驗(yàn)證其來(lái)源。已接收到許可證分組后,方法300繼續(xù)至 框338,在框338中,客戶端許可證管理器114結(jié)束安裝過(guò)程,在該 安裝過(guò)程期間,對(duì)客戶端標(biāo)識(shí)符進(jìn)行處理,并將初始密鑰發(fā)送至許可 證服務(wù)器102。根據(jù)特定應(yīng)用和軟件配置,可以手動(dòng)或自動(dòng)地將客戶 端標(biāo)識(shí)符和初始密鑰傳送至客戶端計(jì)算機(jī)204。在一個(gè)實(shí)施例中,在 沒(méi)有用戶干涉或知曉的情況下,自動(dòng)傳送客戶端標(biāo)識(shí)符和初始密鑰,。 在另一實(shí)施例中,自動(dòng)傳送客戶端標(biāo)識(shí)符和初始密鑰,但是通知用戶 正在進(jìn)行處理。在又一實(shí)施例中,手動(dòng)輸入客戶端標(biāo)識(shí)符和初始密鑰。 方法300然后繼續(xù)至端點(diǎn)B。
從端點(diǎn)B (圖3A),方法300前進(jìn)至在繼續(xù)端點(diǎn)("端點(diǎn)C")和退 出端點(diǎn)("端點(diǎn)D")之間定義的方法步驟集合306。該方法步驟集合 306描述了用于客戶端使用的許可軟件的方法。從端點(diǎn)C (圖3C),方法300繼續(xù)至框340??蛻舳擞?jì)算機(jī)204使用客戶端會(huì)話ID和當(dāng)前客 戶端密鑰與許可證服器102進(jìn)行通信。同樣地方法300描述用于許可 最新安裝的受保護(hù)軟件產(chǎn)品116的方法,在框340,許可證訪問(wèn)代理 104將客戶端會(huì)話ID設(shè)置為初始值,并將當(dāng)前客戶端密鑰設(shè)置為初始
密鑰。方法3oo然后繼續(xù)至另一繼續(xù)端點(diǎn)("端點(diǎn)cr)。
從端點(diǎn)C1 (圖3D),方法300前進(jìn)至框342,在框342中,許可 證訪問(wèn)代理104調(diào)用初始化器108。初始化器108與許可證服務(wù)器102 連接以進(jìn)行許可證請(qǐng)求。從初始化器108至許可證服務(wù)器102的通信 包含客戶端標(biāo)識(shí)符和初始密鑰。許可證服務(wù)器102使用該信息,來(lái)驗(yàn) 證提交了許可證請(qǐng)求的客戶端計(jì)算機(jī)204被授權(quán)獲得軟件許可證。方 法300繼續(xù)至框344,在框344中,已接收到許可證請(qǐng)求后,客戶端 驗(yàn)證器120搜索許可數(shù)據(jù)庫(kù)來(lái)驗(yàn)證客戶端標(biāo)識(shí)符。方法300繼續(xù)至判 定框346,在判定框346中,執(zhí)行測(cè)試來(lái)確定在許可數(shù)據(jù)庫(kù)中否是找 到客戶端標(biāo)識(shí)符。如果判定框346的測(cè)試答案為否,則方法300前進(jìn) 至退出端點(diǎn)("端點(diǎn)F")并結(jié)束。否則,如果判定框346的測(cè)試答案為 是,則方法300前進(jìn)至框348。
在框348中,客戶端驗(yàn)證器120將與客戶端標(biāo)識(shí)符相對(duì)應(yīng)的服務(wù) 器會(huì)話ID轉(zhuǎn)發(fā)至許可證服務(wù)器驗(yàn)證器106。由于這是新的安裝,方法 300繼續(xù)至框350,在框350中,許可證服務(wù)器驗(yàn)證器106將客戶端會(huì) 話ID設(shè)置為服務(wù)器會(huì)話ID,并啟用受保護(hù)的軟件產(chǎn)品。在一個(gè)實(shí)施例 中,許可證服務(wù)器102將服務(wù)器會(huì)話ID傳送至客戶端計(jì)算機(jī)204以允 許這種同步。在另一實(shí)施例中,服務(wù)器會(huì)話ID與客戶端會(huì)話ID的初始 值相同,且沒(méi)有其他的同步是適合的。在又一實(shí)施例中,服務(wù)器會(huì)話 ID和客戶端會(huì)話ID不是預(yù)置值,而是通過(guò)使用保證為許可證服務(wù)器 102和客戶端計(jì)算機(jī)204均產(chǎn)生相同的結(jié)果的順序算法,對(duì)其中的每
一個(gè)進(jìn)行計(jì)算來(lái)同步的。
方法300然后繼續(xù)至另一繼續(xù)端點(diǎn)("端點(diǎn)E"),然后繼續(xù)至另一 繼續(xù)端點(diǎn)("端點(diǎn)C2")。端點(diǎn)C2代表用于在安裝時(shí)首先啟用受保護(hù)的 軟件產(chǎn)品的方法步驟集合的結(jié)束,端點(diǎn)E代表用于刷新新的或失去時(shí) 效的軟件許可證以繼續(xù)啟用受保護(hù)的軟件產(chǎn)品116的方法步驟集合的開始。
許可證請(qǐng)求的第一部分涉及驗(yàn)證,與許可證訪問(wèn)代理104通信的
許可證服務(wù)器事實(shí)上是正確的許可證服務(wù)器102。這可以通過(guò)將由許 可證服務(wù)器102存儲(chǔ)的的服務(wù)器會(huì)話ID與由客戶端計(jì)算機(jī)204存儲(chǔ)的 客戶端會(huì)話ID相匹配來(lái)執(zhí)行(冒名者許可證服務(wù)器將不能提供匹配服 務(wù)器會(huì)話ID)。方法300從端點(diǎn)C2前進(jìn)至框352,在框352中,客戶 端許可證管理器114使初始化器108通過(guò)將客戶端標(biāo)識(shí)符發(fā)送至客戶 端驗(yàn)證器120來(lái)進(jìn)行許可證請(qǐng)求。客戶端驗(yàn)證器120獲取與客戶端標(biāo) 識(shí)符相關(guān)聯(lián)的服務(wù)器會(huì)話ID,并將其傳輸回至初始化器108。方法300 然后繼續(xù)至另一繼續(xù)端點(diǎn)("端點(diǎn)C3")。
從端點(diǎn)C3(圖3E),方法300從端點(diǎn)C3前進(jìn)至框352,在框352, 許可證服務(wù)器驗(yàn)證器106和客戶端密鑰管理器112 —起,將服務(wù)器會(huì) 話ID與客戶端會(huì)話ID進(jìn)行比較。在一個(gè)實(shí)施例中,方法300前進(jìn)至判 定框354,在判定框354,執(zhí)行測(cè)試來(lái)確定服務(wù)器會(huì)話ID是否等于客 戶端會(huì)話ID。如果判定框354的測(cè)試答案為是,方法前進(jìn)至框356, 在框356中,客戶端密鑰管理器112為客戶端會(huì)話密鑰分配存儲(chǔ)為當(dāng) 前客戶端密鑰的值,對(duì)許可證服務(wù)器102進(jìn)行驗(yàn)證,方法300前進(jìn)至 另一繼續(xù)端點(diǎn)("端點(diǎn)C4")。否則,如果判定框354的測(cè)試答案為否, 方法300前進(jìn)至另一判定框358,在判定框358,執(zhí)行測(cè)試來(lái)確定服務(wù) 器會(huì)話ID是否等于先前客戶端會(huì)話ID (相對(duì)于最近的客戶端會(huì)話ID而 言)。如果判定框358的測(cè)試答案為是,方法300前進(jìn)至框360,在框 360中,客戶端密鑰管理器112為客戶端會(huì)話密鑰分配存儲(chǔ)為先前客 戶端密鑰的值,對(duì)許可證服務(wù)器進(jìn)行驗(yàn)證,方法300前進(jìn)至端點(diǎn)C4。 否則,如果判定框358的測(cè)試答案為否,則對(duì)許可證服務(wù)器102的驗(yàn) 證失敗,方法300前進(jìn)至端點(diǎn)F并結(jié)束。
從端點(diǎn)C4 (圖3F),方法300繼續(xù)至框352,其中,客戶端認(rèn)證 器110和服務(wù)器認(rèn)證器124使用密碼認(rèn)證方法來(lái)對(duì)客戶端計(jì)算機(jī)204 和許可證服務(wù)器102進(jìn)行認(rèn)證。在一個(gè)實(shí)施例中,客戶端認(rèn)證器110 和服務(wù)器認(rèn)證器124均對(duì)隨機(jī)數(shù)進(jìn)行加密,并將產(chǎn)生的加密數(shù)據(jù)進(jìn)行 比較以驗(yàn)證彼此。一旦認(rèn)證了客戶端計(jì)算機(jī)204和許可證服務(wù)器102,方法300前 進(jìn)至框354,在框354中,服務(wù)器密鑰管理器122產(chǎn)生新服務(wù)器會(huì)話 密鑰并將其傳輸至客戶端計(jì)算機(jī)204。接著,在框356,已接收到新服 務(wù)器會(huì)話密鑰的客戶端密鑰管理器112將該客戶端會(huì)話密鑰存儲(chǔ)為先 前客戶端密鑰,并將新服務(wù)器會(huì)話密鑰存儲(chǔ)為當(dāng)前客戶端密鑰。將客 戶端會(huì)話密鑰存儲(chǔ)為先前客戶端密鑰而簡(jiǎn)單將客戶端會(huì)話密鑰替換為 新服務(wù)器會(huì)話密鑰允許增加的可靠性。如果由于通信或其他故障導(dǎo)致 客戶端計(jì)算機(jī)204和許可證服務(wù)器102不能完成方法306,則客戶端 計(jì)算機(jī)204和許可證服務(wù)器102將能夠使用先前客戶端密鑰在未來(lái)進(jìn) 行通信。 -
方法300然后前進(jìn)至框358,在框358中,許可證服務(wù)器驗(yàn)證器 106產(chǎn)生新客戶端會(huì)話ID,并將接收確認(rèn)傳輸?shù)椒?wù)器密鑰管理器 122。接著,在框360,己接收到確認(rèn)后,服務(wù)器密鑰管理器122產(chǎn)生 與客戶端標(biāo)識(shí)符相對(duì)應(yīng)的新服務(wù)器會(huì)話ID。在一個(gè)實(shí)施例中,客戶端 會(huì)話ID和服務(wù)器會(huì)話ID匹配,使得下次執(zhí)行方法300時(shí),客戶端會(huì)話 ID和服務(wù)器會(huì)話ID將匹配。在一個(gè)實(shí)施例中,這是可以通過(guò)使許可證 服務(wù)器102將產(chǎn)生的服務(wù)器會(huì)話ID傳送至客戶端計(jì)算機(jī)204來(lái)實(shí)現(xiàn), 然后更新客戶端會(huì)話ID以進(jìn)行匹配。在另一實(shí)施例中,新服務(wù)器會(huì)話 ID和新客戶端會(huì)話ID是基于通過(guò)相同的算法改變之前匹配的服務(wù)器 會(huì)話ID和客戶端會(huì)話ID來(lái)產(chǎn)生的,使得新產(chǎn)生的服務(wù)器會(huì)話ID和客戶 端會(huì)話ID將匹配而不需要許可證服務(wù)器102和客戶端計(jì)算機(jī)204之間 的進(jìn)一步通信。在又一實(shí)施例中,客戶端計(jì)算機(jī)204產(chǎn)生新客戶端會(huì) 話ID并將其傳輸至許可證服務(wù)器102,然后更新該新服務(wù)器會(huì)話ID來(lái) 進(jìn)行匹配。在又一實(shí)施例中,服務(wù)器會(huì)話ID和客戶端會(huì)話ID不需要完 全相同的值,而是以適合的方式彼此相對(duì)應(yīng),以使得指示一種匹配。
已更新了客戶端會(huì)話ID和服務(wù)器會(huì)話ID之后,方法300前進(jìn)至框 362,在框362中,服務(wù)器許可證管理器126產(chǎn)生許可證分組并安全將 其傳輸至客戶端許可證管理器114。方法300然后前進(jìn)至框364,在框 364中,已接收到許可證分組后,客戶端許可證管理器114安裝軟件 許可證,從而啟用如軟件許可證所指示的特定受保護(hù)的程序功能。方法300然后前進(jìn)至另一繼續(xù)端點(diǎn)("端點(diǎn)D")。
從端點(diǎn)(圖3A),方法300前進(jìn)至在端點(diǎn)E和端點(diǎn)F中定義的方法 步驟集合308。該方法步驟集合308描述了在軟件許可證失去時(shí)效之 后對(duì)其進(jìn)行刷新的方法。從端點(diǎn)E (圖3F),方法300前進(jìn)至框366, 在框366中,已確定軟件許可證已失去時(shí)效后,客戶端許可證管理器 114上述從端點(diǎn)C2 (圖3D)至端點(diǎn)D (圖3F)的方法步驟集合306以 從許可證服務(wù)器102獲取更新的軟件許可證。軟件許可證會(huì)以許多不 同的方式失去時(shí)效。在一個(gè)實(shí)施例中,軟件許可證在特定的時(shí)間段過(guò) 去之后失去時(shí)效。在另一實(shí)施例中,許可證服務(wù)器102或供應(yīng)器202 采用的前攝操作可能使客戶端計(jì)算機(jī)204上的軟件許可證變得失去時(shí) 效。在又一實(shí)施例中,用戶操作(例如重復(fù)使用該受保護(hù)的軟件產(chǎn)品) 可能使軟件許可證變得失去時(shí)效。
失去時(shí)效的軟件許可證的功能在特定實(shí)施例中也可以是不同的。 在一個(gè)實(shí)施例中,失去時(shí)效的軟件許可證不允許連續(xù)的程序功能,直 到許可證服務(wù)器102對(duì)其進(jìn)行刷新。在另一實(shí)施例中,失去時(shí)效的軟 件許可證允許連續(xù)的程序功能,直到另一時(shí)間段或另一使用次數(shù)過(guò)去。 在又一實(shí)施例中,失去時(shí)效的軟件許可證引起相用戶呈現(xiàn)通知,來(lái)指 示該軟件許可證需要刷新。
從框366,已執(zhí)行從端點(diǎn)C2到端點(diǎn)D的方法步驟集合308之后, 方法300前進(jìn)至端點(diǎn)F并結(jié)束。
雖然已示意和描述了示例實(shí)施例,但將理解的是,在不背離權(quán)利 要求的主旨的精神和范圍的前提下可以作出各種改變。
1權(quán)利要求
1、一種系統(tǒng),包括許可證訪問(wèn)代理,被配置為在客戶端計(jì)算機(jī)上執(zhí)行,所述許可證訪問(wèn)代理包括許可證管理器,被配置為在請(qǐng)求授權(quán)使用受保護(hù)的軟件產(chǎn)品時(shí)接收軟件許可證,以使得允許在客戶端計(jì)算機(jī)上運(yùn)行受保護(hù)的軟件產(chǎn)品的一個(gè)或多個(gè)功能,所述許可證管理器配置為在軟件許可證期滿時(shí)禁用所述受保護(hù)的軟件產(chǎn)品,除非所述許可證管理器獲得刷新的軟件許可證。
2、 根據(jù)權(quán)利要求l所述的系統(tǒng),許可證訪問(wèn)代理還包括初始化 器,被配置為建立與許可證服務(wù)器的連接,并還被配置為經(jīng)由所述連 接發(fā)送針對(duì)軟件許可證的請(qǐng)求,所述請(qǐng)求包括在許可證分組中提供的 客戶端標(biāo)識(shí)符和初始密鑰。
3、 根據(jù)權(quán)利要求l所述的系統(tǒng),許可證訪問(wèn)代理還包括許可證 服務(wù)器驗(yàn)證器,被配置為通過(guò)接收服務(wù)器會(huì)話標(biāo)識(shí)符并將所述服務(wù)器 會(huì)話標(biāo)識(shí)符與在客戶端計(jì)算機(jī)上存儲(chǔ)的客戶端會(huì)話標(biāo)識(shí)符迸行比較來(lái) 驗(yàn)證許可證服務(wù)器。
4、 根據(jù)權(quán)利要求l所述的系統(tǒng),許可證訪問(wèn)代理還包括客戶端 密鑰管理器,被配置為存儲(chǔ)包括先前會(huì)話密鑰和當(dāng)前會(huì)話密鑰在內(nèi)的 至少兩個(gè)客戶端會(huì)話密鑰,所述先前會(huì)話密鑰和當(dāng)前會(huì)話密鑰在與許 可證服務(wù)器進(jìn)行通信時(shí)被更新。
5、 根據(jù)權(quán)利要求l所述的系統(tǒng),許可證訪問(wèn)代理還包括客戶端 認(rèn)證器,被配置為向許可證服務(wù)器認(rèn)證在客戶端計(jì)算機(jī)上執(zhí)行的許可 證訪問(wèn)代理。
6、 根據(jù)權(quán)利要求l所述的系統(tǒng),還包括許可證服務(wù)器,被配置 為當(dāng)在客戶端計(jì)算機(jī)上執(zhí)行許可證訪問(wèn)代理時(shí)在服務(wù)器計(jì)算機(jī)上執(zhí) 行,所述許可證服務(wù)器包括服務(wù)器許可證管理器,被配置為在從許 可證訪問(wèn)代理接收到更新了會(huì)話密鑰的確認(rèn)時(shí)在許可證分組中產(chǎn)生軟 件許可證。
7、 根據(jù)權(quán)利要求6所述的系統(tǒng),許可證服務(wù)器還包括客戶端驗(yàn)證器,被配置為在接收到針對(duì)軟件許可證的請(qǐng)求時(shí)建立與客戶端計(jì)算 機(jī)的連接,所述客戶端驗(yàn)證器被配置為,通過(guò)客戶端標(biāo)識(shí)符來(lái)驗(yàn)證客 戶端計(jì)算機(jī),并將與客戶端標(biāo)識(shí)符相對(duì)應(yīng)的會(huì)話標(biāo)識(shí)符轉(zhuǎn)發(fā)至客戶端 計(jì)算機(jī),所述客戶端驗(yàn)證器被配置為對(duì)定義當(dāng)前會(huì)話的會(huì)話標(biāo)識(shí)符 進(jìn)行更新。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),許可證服務(wù)器還包括服務(wù)器認(rèn) 證器,被配置為對(duì)客戶端計(jì)算機(jī)進(jìn)行認(rèn)證。
9、 根據(jù)權(quán)利要求8所述的系統(tǒng),許可證服務(wù)器還包括服務(wù)器密 鑰管理器,被配置為在當(dāng)前會(huì)話期間產(chǎn)生新會(huì)話密鑰以便由服務(wù)器認(rèn) 證器在下個(gè)會(huì)話期間使用,服務(wù)器密鑰管理器被配置為將新會(huì)話密 鑰轉(zhuǎn)發(fā)至客戶端計(jì)算機(jī)。
10、 一種方法,包括在軟件許可證期滿之后,禁用受保護(hù)的軟件產(chǎn)品,除非通過(guò)進(jìn)行 針對(duì)許可證分組的請(qǐng)求獲得了刷新的軟件許可證;以及如果在許可數(shù)據(jù)庫(kù)中找到客戶端計(jì)算機(jī)的客戶端標(biāo)識(shí)符并且服 務(wù)器會(huì)話標(biāo)識(shí)符與客戶端會(huì)話標(biāo)識(shí)符或先前會(huì)話標(biāo)識(shí)符相等,則接受 包含所述刷新的軟件許可證在內(nèi)的許可證分組,以便允許在客戶端計(jì) 算機(jī)上運(yùn)行受保護(hù)的軟件產(chǎn)品的一個(gè)或多個(gè)功能。
11、 根據(jù)權(quán)利要求10所述的方法,還包括通過(guò)許可證系統(tǒng)產(chǎn)生 器來(lái)產(chǎn)生許可證訪問(wèn)代理
12、 根據(jù)權(quán)利要求ll所述的方法,還包括將許可證訪問(wèn)代理與 將要被分發(fā)至客戶端計(jì)算機(jī)的軟件產(chǎn)品合并,以形成受保護(hù)的軟件產(chǎn)P叩o
13、 根據(jù)權(quán)利要求12所述的方法,還包括受保護(hù)的軟件產(chǎn)品在執(zhí)行時(shí)調(diào)用許可證訪問(wèn)代理,從而使許可證訪問(wèn)代理向供應(yīng)器請(qǐng)求許可證數(shù)據(jù)包。
14、 根據(jù)權(quán)利要求10所述的方法,還包括如果服務(wù)器會(huì)話標(biāo)識(shí) 符與客戶端會(huì)話標(biāo)識(shí)符相等,則向客戶端會(huì)話密鑰分配儲(chǔ)存為當(dāng)前客 戶端密鑰的值,并且如果服務(wù)器會(huì)話標(biāo)識(shí)符與先前客戶端會(huì)話標(biāo)識(shí)符 相等,則向客戶端會(huì)話密鑰分配儲(chǔ)存為先前客戶端密鑰的值。
15、 根據(jù)權(quán)利要求14所述的方法,還包括服務(wù)器密鑰管理器產(chǎn)生新服務(wù)器會(huì)話密鑰,并將新服務(wù)器會(huì)話密 鑰傳輸至客戶端計(jì)算機(jī);許可證服務(wù)器驗(yàn)證器分配新客戶端會(huì)話密鑰,并將接收確認(rèn)發(fā)送至服務(wù)器密鑰管理器;響應(yīng)于接收到所述接收確認(rèn),服務(wù)器密鑰管理器產(chǎn)生與客戶端標(biāo) 識(shí)符相對(duì)應(yīng)的新服務(wù)器會(huì)話標(biāo)識(shí)符;以及服務(wù)器許可證管理器產(chǎn)生許可證分組。
16、 一種其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述 計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行禁止未授權(quán)軟件使用的方法,所述方法包 括..在軟件許可證期滿時(shí),禁用受保護(hù)的軟件產(chǎn)品; 進(jìn)行針對(duì)許可證分組的請(qǐng)求;如果在許可數(shù)據(jù)庫(kù)中找到客戶端計(jì)算機(jī)的客戶端標(biāo)識(shí)符并且服 務(wù)器會(huì)話標(biāo)識(shí)符與客戶端會(huì)話標(biāo)識(shí)符或先前會(huì)話標(biāo)識(shí)符相等,則接收 包含刷新的軟件許可證在內(nèi)的許可證分組,以使得允許在客戶端計(jì)算 機(jī)上運(yùn)行受保護(hù)的軟件產(chǎn)品的一個(gè)或多個(gè)功能;以及啟用受保護(hù)的軟件產(chǎn)品的一個(gè)或多個(gè)功能。
17、 根據(jù)權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),還包括通過(guò)許可 證系統(tǒng)產(chǎn)生器來(lái)產(chǎn)生許可證訪問(wèn)代理。
18、 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),還包括將許可證 訪問(wèn)代理與要被分發(fā)至客戶端計(jì)算機(jī)的軟件產(chǎn)品合并,以形成受保護(hù) 的軟件產(chǎn)品。
19、 根據(jù)權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),還包括如果服務(wù) 器會(huì)話標(biāo)識(shí)符與客戶端會(huì)話標(biāo)識(shí)符相等,則向客戶端會(huì)話密鑰分配儲(chǔ) 存為當(dāng)前客戶端密鑰的值,并且如果服務(wù)器會(huì)話標(biāo)識(shí)符與先前客戶端 會(huì)話標(biāo)識(shí)符相等,則向客戶端會(huì)話密鑰分配儲(chǔ)存為先前客戶端密鑰的值。
20、 根據(jù)權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),還包括在服務(wù)器密鑰管理器產(chǎn)生新服務(wù)器會(huì)話密鑰之后并將新服務(wù)器會(huì)話密鑰傳輸至客戶端計(jì)算機(jī)之后、在由許可證服務(wù)器驗(yàn)證器分配新客戶端會(huì)話密鑰 之后、在將接收確認(rèn)發(fā)送至服務(wù)器密鑰管理器之后、以及在服務(wù)器密 鑰管理器響應(yīng)于接收到所述接收確認(rèn)而產(chǎn)生與客戶端標(biāo)識(shí)符相對(duì)應(yīng)的 新服務(wù)器會(huì)話標(biāo)識(shí)符之后,通過(guò)服務(wù)器許可證管理器來(lái)產(chǎn)生許可證分 組。
全文摘要
本發(fā)明提供了一種許可證訪問(wèn)代理,其被配置為在客戶端計(jì)算機(jī)上執(zhí)行。該許可證訪問(wèn)代理包括許可證管理器,被配置為在請(qǐng)求授權(quán)受保護(hù)的軟件產(chǎn)品時(shí)接收軟件許可證,以使得允許在客戶端計(jì)算機(jī)上運(yùn)行受保護(hù)的軟件產(chǎn)品的一個(gè)或多個(gè)功能。該許可證管理器被配置為,在軟件許可證期滿時(shí)禁用受保護(hù)的軟件產(chǎn)品,除非許可證管理器獲得刷新的軟件許可證。
文檔編號(hào)G06F21/24GK101681403SQ200880008826
公開日2010年3月24日 申請(qǐng)日期2008年3月20日 優(yōu)先權(quán)日2007年3月20日
發(fā)明者弗拉基米爾·愛(ài)德華多維奇·什馬科夫, 德米特里·弗拉季斯拉沃維奇·丘普羅夫 申請(qǐng)人:迪姆威奇軟件有限責(zé)任公司