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

用于產(chǎn)品驗(yàn)證和激活的安全軟件產(chǎn)品標(biāo)識(shí)符的制作方法

文檔序號(hào):6438786閱讀:242來源:國知局
專利名稱:用于產(chǎn)品驗(yàn)證和激活的安全軟件產(chǎn)品標(biāo)識(shí)符的制作方法
CN 102426640 A
說明書
1/14 頁
用于產(chǎn)品驗(yàn)證和激活的安全軟件產(chǎn)品標(biāo)識(shí)符
背景技術(shù)
諸如操作系統(tǒng)和應(yīng)用程序之類的軟件產(chǎn)品經(jīng)常包含受版權(quán)法保護(hù)的材料,版權(quán)法授予原創(chuàng)作品(例如軟件代碼)的作者對(duì)作品的使用和分發(fā)的專有權(quán)。為了從擁有對(duì)軟件產(chǎn)品的權(quán)利的賣方那里獲取軟件產(chǎn)品拷貝,用戶典型地會(huì)與賣方訂立許可協(xié)議,該協(xié)議規(guī)定了用戶可以如何使用和/或分發(fā)軟件產(chǎn)品。例如,許可協(xié)議可以限制用戶可以安裝軟件的次數(shù)和/或可以安裝該軟件的計(jì)算機(jī)的數(shù)量。軟件產(chǎn)品的非授權(quán)拷貝可能對(duì)銷售這些產(chǎn)品許可的賣方造成極大損害。為了防止使用非授權(quán)拷貝,軟件賣方通常要求在嘗試安裝軟件產(chǎn)品拷貝的時(shí)候完成“激活”過程。 該過程可以被設(shè)計(jì)成確定拷貝是否被授權(quán)安裝(例如用戶是否以合法方式購買該拷貝)和/ 或所述安裝是否符合一個(gè)或多個(gè)適用的許可協(xié)議(例如用戶是否超出了最大的許可安裝次數(shù))。在軟件產(chǎn)品是以多個(gè)版本的形式(例如專業(yè)版和家庭版)提供的情況下,該激活過程還可以識(shí)別用戶購買的版本,并且根據(jù)識(shí)別的版本來有選擇地啟用軟件產(chǎn)品中的一個(gè)或多個(gè)特征。一些常規(guī)的軟件激活技術(shù)使用了所謂的“產(chǎn)品密鑰”,這種產(chǎn)品密鑰是用戶可以在以合法方式購買或以其他方式合法獲取軟件產(chǎn)品拷貝的時(shí)候得到的一條信息。在激活過程期間,用戶提供產(chǎn)品密鑰作為合法性“證明”。在這種證明被接受或驗(yàn)證了時(shí),用戶得到允許來完成安裝,并且根據(jù)針對(duì)該特定安裝而授予用戶的一個(gè)或多個(gè)許可來啟用軟件產(chǎn)品中的適當(dāng)特征。

發(fā)明內(nèi)容
發(fā)明人業(yè)已認(rèn)識(shí)并了解到軟件產(chǎn)品驗(yàn)證和激活系統(tǒng)中的顯著的設(shè)計(jì)限制,也就是說,產(chǎn)品密鑰可局限于能被人類用戶容易操縱(例如讀取和/或拷貝)的大小(或長度)。發(fā)明人還認(rèn)識(shí)并了解到與較短的產(chǎn)品密鑰的使用相關(guān)的現(xiàn)有產(chǎn)品密鑰實(shí)現(xiàn)方式的限制,例如安全性、性能、擴(kuò)展性和/或可管理性方面的妥協(xié)。相應(yīng)地,在一些實(shí)施例中提供了用于軟件產(chǎn)品驗(yàn)證和激活的改進(jìn)系統(tǒng)、方法和設(shè)備,其并入了產(chǎn)品密鑰附加標(biāo)識(shí)信息(例如除序列號(hào)之外的信息),該信息可以用于促進(jìn)產(chǎn)品密鑰驗(yàn)證。例如,附加標(biāo)識(shí)信息可以充當(dāng)一個(gè)或多個(gè)索引,以便識(shí)別在驗(yàn)證產(chǎn)品密鑰的過程中使用的加密算法和/或加密算法的參數(shù)。此類系統(tǒng)可更高效且更易于擴(kuò)展,因?yàn)樗鎏囟ǖ募用芩惴ê?或參數(shù)不需要被硬編碼到產(chǎn)品密鑰驗(yàn)證組件中。發(fā)明人還認(rèn)識(shí)并了解到,在將附加標(biāo)識(shí)信息并入產(chǎn)品密鑰時(shí),激活系統(tǒng)和軟件產(chǎn)品驗(yàn)證的安全性可以得到保持乃至增強(qiáng)。例如,通過至少部分在遠(yuǎn)程激活服務(wù)器上執(zhí)行產(chǎn)品密鑰驗(yàn)證,可以實(shí)現(xiàn)足夠的安全等級(jí),使得可以通過網(wǎng)絡(luò)請(qǐng)求來減慢所企圖的暴力攻擊。 這種激活服務(wù)器可能還能夠記錄每一個(gè)單獨(dú)的產(chǎn)品密鑰使用的次數(shù)。發(fā)明人還認(rèn)識(shí)并了解到,激活服務(wù)器可能是易受攻擊的,因?yàn)榧せ罘?wù)器是可以從因特網(wǎng)訪問的(例如,激活服務(wù)器可以接受web請(qǐng)求形式的激活請(qǐng)求)。由此,期望的是引入附加的安全層,例如通過把將要由除激活服務(wù)器之外的實(shí)體核實(shí)的附加安全信息并入到
4產(chǎn)品密鑰中來引入附加安全層。相應(yīng)地,在一些實(shí)施例中,除了激活服務(wù)器之外還可以提供用于驗(yàn)證產(chǎn)品密鑰的增強(qiáng)的安全服務(wù)器。所述增強(qiáng)的安全服務(wù)器使用的信息可能對(duì)激活服務(wù)器而言是不可訪問的,由此,即使當(dāng)激活服務(wù)器被成功攻擊時(shí),所述增強(qiáng)的安全服務(wù)器也可以保持安全。如果在激活服務(wù)器處受到破壞,這種附加安全機(jī)制可以防止系統(tǒng)完全失效, 由此給予系統(tǒng)開發(fā)人員更多時(shí)間來對(duì)所述破壞做出響應(yīng)。應(yīng)該了解到的是,在下文中更詳細(xì)論述的前述概念以及附加概念的所有組合(只要這些概念不是相互不一致的)都被認(rèn)為是這里公開的發(fā)明主題的一部分。特別地,在本公開結(jié)尾出現(xiàn)的要求保護(hù)的主題的所有組合都被認(rèn)為是這里公開的發(fā)明主題的一部分。


附圖不必按比例繪制。為了清楚起見,并不是每一個(gè)組件都會(huì)在每一個(gè)圖中得到標(biāo)記。圖1示出根據(jù)本公開的一些實(shí)施例的用于驗(yàn)證和激活軟件產(chǎn)品的說明性系統(tǒng)。圖2示出根據(jù)本公開的一些實(shí)施例的用于驗(yàn)證和激活軟件產(chǎn)品的另一個(gè)說明性系統(tǒng)。圖3A示出根據(jù)本公開的一些實(shí)施例的用于生成產(chǎn)品密鑰的說明性過程。圖:3B示出根據(jù)本公開的一些實(shí)施例的可以經(jīng)由圖3A所示的過程生成的產(chǎn)品密鑰的示例。圖4示出根據(jù)本公開的一些實(shí)施例的可以由用戶計(jì)算機(jī)上的安裝程序響應(yīng)于用戶安裝軟件產(chǎn)品拷貝的嘗試來執(zhí)行的說明性過程。圖5示出根據(jù)本公開的一些實(shí)施例的可以由驗(yàn)證機(jī)構(gòu)響應(yīng)于接收來自用戶嘗試安裝軟件產(chǎn)品拷貝的計(jì)算機(jī)的激活請(qǐng)求來執(zhí)行的說明性過程。圖6示出根據(jù)本公開的一些實(shí)施例的可以由審計(jì)機(jī)構(gòu)響應(yīng)于接收來自驗(yàn)證機(jī)構(gòu)的審計(jì)請(qǐng)求來執(zhí)行的說明性過程。圖7示意性示出了可以實(shí)現(xiàn)本公開的各種不同的發(fā)明方面的說明性計(jì)算機(jī)。
具體實(shí)施例方式發(fā)明人認(rèn)識(shí)并了解到在實(shí)現(xiàn)用于使用產(chǎn)品密鑰來驗(yàn)證和激活軟件產(chǎn)品的魯棒且安全的系統(tǒng)的過程中的很多挑戰(zhàn)。這其中的一些挑戰(zhàn)在下文中參考圖1來解釋。圖1示出了一個(gè)用于驗(yàn)證和激活軟件產(chǎn)品的說明性系統(tǒng)100,在該系統(tǒng)中可以實(shí)現(xiàn)這里公開的各種不同發(fā)明方面。在本示例中,系統(tǒng)100包括產(chǎn)品密鑰生成服務(wù)器110,它可以由軟件賣方或是某個(gè)其他適當(dāng)?shù)牡谌絹聿僮鳌.?dāng)用戶120合法地購買或以其他方式合法獲得諸如操作系統(tǒng)或應(yīng)用程序之類的軟件產(chǎn)品拷貝時(shí),生成服務(wù)器110生成的產(chǎn)品密鑰可以被傳送給用戶。例如,當(dāng)所述拷貝經(jīng)由諸如壓縮盤(⑶)之類的物理介質(zhì)銷售時(shí),該產(chǎn)品密鑰可被印刷在只能在購買之后才能訪問(例如受收縮包裹保護(hù))的包裝材料的一部分上。在一些實(shí)現(xiàn)方式中,產(chǎn)品密鑰可以包括兩個(gè)組件用于識(shí)別軟件產(chǎn)品的特定拷貝 (或者如果是公司許可則是拷貝群組)的標(biāo)識(shí)組件,以及可以用于核實(shí)產(chǎn)品密鑰是由某個(gè)適當(dāng)機(jī)構(gòu)(例如軟件賣方)生成和/或在分發(fā)過程中沒有受到篡改的安全組件。例如,所述標(biāo)識(shí)組件可以包括序列號(hào),并且所述安全組件可以包括處于序列號(hào)之上用軟件賣方的秘密密鑰生成的電子簽名。當(dāng)用戶120嘗試在用戶計(jì)算機(jī)130上安裝軟件產(chǎn)品拷貝時(shí),在用戶計(jì)算機(jī)130上運(yùn)行的安裝程序可以提示用戶120輸入產(chǎn)品密鑰。一旦接收到產(chǎn)品密鑰,則安裝程序可以處理該產(chǎn)品密鑰,并且基于從處理產(chǎn)品密鑰的過程中導(dǎo)出的信息來向激活服務(wù)器140發(fā)送激活請(qǐng)求。例如,根據(jù)特定的實(shí)現(xiàn)方式,安裝程序可以完全或部分驗(yàn)證該產(chǎn)品密鑰(例如通過使用軟件賣方公鑰來核實(shí)安全組件是在標(biāo)識(shí)組件之上的有效簽名)。可替代地或此外,安裝程序可以向激活服務(wù)器140發(fā)送產(chǎn)品密鑰和/或從中導(dǎo)出的信息(例如作為激活請(qǐng)求的一部分),使得激活服務(wù)器140也可以完全或部分驗(yàn)證該產(chǎn)品密鑰。換句話說,產(chǎn)品密鑰的驗(yàn)證可以用任何適當(dāng)?shù)姆绞椒植荚谟脩粲?jì)算機(jī)130與驗(yàn)證服務(wù)器140之間。為了驗(yàn)證產(chǎn)品密鑰,用戶計(jì)算機(jī)130和/或驗(yàn)證服務(wù)器140可以與產(chǎn)品密鑰生成服務(wù)器110共享一些驗(yàn)證信息。在產(chǎn)品密鑰包含序列號(hào)和序列號(hào)之上的電子簽名的一個(gè)示例中,驗(yàn)證信息可以包括與用于生成電子簽名的秘密密鑰相關(guān)聯(lián)的公鑰。這個(gè)公鑰可以使得用戶計(jì)算機(jī)130和/或驗(yàn)證服務(wù)器140能夠執(zhí)行簽名驗(yàn)證,以便確定電子簽名是否可能使用相關(guān)聯(lián)的秘密密鑰來正確生成。如果產(chǎn)品密鑰通過驗(yàn)證,則激活服務(wù)器140可以選擇一個(gè)或多個(gè)適用的許可,并且將選定許可通知給用戶計(jì)算機(jī)130。例如,這些許可可以基于軟件產(chǎn)品類型、軟件產(chǎn)品版本、軟件產(chǎn)品所屬的軟件產(chǎn)品系列、分發(fā)軟件產(chǎn)品拷貝的渠道(例如零售,原始設(shè)備制造商或批發(fā))和/或其他適當(dāng)?shù)男畔⒍贿x擇。然后,用戶計(jì)算機(jī)130可以將這些許可與所安裝的軟件產(chǎn)品拷貝相關(guān)聯(lián),并且根據(jù)許可來有選擇地啟用軟件產(chǎn)品中的特征。發(fā)明人認(rèn)識(shí)并了解到在軟件產(chǎn)品驗(yàn)證和激活系統(tǒng)中的顯著的設(shè)計(jì)限制,即產(chǎn)品密鑰的大小(或長度)。例如,參考圖1所示的系統(tǒng)100,如果產(chǎn)品密鑰是通過印刷介質(zhì)(例如作為印刷在收縮包裝的包裹內(nèi)部的碼)傳播給用戶120的,那么用戶應(yīng)該從該印刷介質(zhì)上讀取產(chǎn)品密鑰,并且手動(dòng)地將產(chǎn)品密鑰輸入計(jì)算機(jī)130。該過程可能是耗時(shí)的并容易出錯(cuò),因此可能期望的是將產(chǎn)品密鑰限制在可管理的大小(例如不超過20、25、30或40個(gè)字母數(shù)字字符或其他符號(hào))。發(fā)明人還認(rèn)識(shí)并了解到與較短產(chǎn)品密鑰的使用相關(guān)的現(xiàn)有產(chǎn)品密鑰實(shí)現(xiàn)方式的限制。例如,在一些實(shí)現(xiàn)方式中,產(chǎn)品密鑰中只有較少比特專用于產(chǎn)品密鑰的安全組件(例如通過使用較短的數(shù)字簽名),使得更多的信息可以被編碼到身份(identity)組件。這種方法可能損害產(chǎn)品密鑰的安全性,因?yàn)楣粽呖赡芨子谕ㄟ^重復(fù)嘗試隨機(jī)生成的適當(dāng)長度的字符串來發(fā)現(xiàn)碰巧是有效產(chǎn)品密鑰的字符串。在產(chǎn)品密鑰的驗(yàn)證全都是在本地計(jì)算機(jī) (例如圖1所示的用戶計(jì)算機(jī)130)上進(jìn)行的情況下,安全風(fēng)險(xiǎn)可能尤其嚴(yán)重,因?yàn)榭梢栽谠撛O(shè)置中實(shí)施暴力攻擊而不用發(fā)起可能減慢所述攻擊的任何網(wǎng)絡(luò)請(qǐng)求。此外,在產(chǎn)品密鑰的驗(yàn)證完全是在本地計(jì)算機(jī)上進(jìn)行的情況下,本地計(jì)算機(jī)可能只能驗(yàn)證那些其可以為之使用足夠驗(yàn)證信息的產(chǎn)品密鑰。例如,在一些實(shí)現(xiàn)方式中,只有在本地計(jì)算機(jī)可以使用相應(yīng)的簽名驗(yàn)證算法和/或相應(yīng)的公鑰的情況下,本地計(jì)算機(jī)才能夠驗(yàn)證包含數(shù)字簽名的產(chǎn)品密鑰。由此,用于生成產(chǎn)品密鑰的安全機(jī)制的升級(jí)可涉及向眾多本地計(jì)算機(jī)傳播新的驗(yàn)證信息,例如新的加密算法和/或密鑰,這種處理可能成本很高且會(huì)很麻煩,并且可能對(duì)采用改進(jìn)的安全機(jī)制失去信心。
6
相比之下,在一些其他實(shí)現(xiàn)方式中,產(chǎn)品密鑰中有更多的比特是專用于產(chǎn)品密鑰的安全組件的(例如通過使用更長的數(shù)字簽名),使得暴力攻擊可能會(huì)變得更困難。但是,由于更少的信息被編碼到產(chǎn)品密鑰的標(biāo)識(shí)組件中,因此,安全性的提升是以性能降低為代價(jià)的。例如,標(biāo)識(shí)組件可以只攜帶用于軟件產(chǎn)品的特定拷貝的序列號(hào),而沒有其他標(biāo)識(shí)信息。 結(jié)果,產(chǎn)品密鑰可以不攜帶在驗(yàn)證過程中使用的所有信息??梢园诋a(chǎn)品密鑰中的其他標(biāo)識(shí)信息的示例是所謂“組ID”,它標(biāo)識(shí)的是軟件產(chǎn)品的類型、軟件產(chǎn)品的版本、軟件產(chǎn)品所屬的軟件產(chǎn)品系列、用以分發(fā)軟件產(chǎn)品的拷貝的渠道和/或軟件產(chǎn)品的其他相關(guān)特性。這些標(biāo)識(shí)信息可以充當(dāng)索引,用于檢索要用以核實(shí)產(chǎn)品密鑰中包含的電子簽名的公鑰。在沒有直接訪問此類信息的情況下,可以實(shí)施試錯(cuò)法(trial-and-error)驗(yàn)證過程以迭代遍歷一組可能的公鑰,直至遇到成功的證實(shí)或直到耗盡了這組可能的公鑰(在這種情況下可以將產(chǎn)品密鑰無效化)。這種迭代過程可能導(dǎo)致顯著的性能降級(jí),因?yàn)橹T如簽名驗(yàn)證之類的加密運(yùn)算可能是計(jì)算密集型的。由于可能存在可供從中取出有效序列號(hào)的一個(gè)或多個(gè)更小的范圍,因此,限制產(chǎn)品密鑰中攜帶的標(biāo)識(shí)信息量可能具有進(jìn)一步的缺點(diǎn)。例如,為了簡化代碼開發(fā)和數(shù)據(jù)管理, 軟件賣方可能希望采用某種編號(hào)規(guī)定,例如通過將一定范圍的數(shù)字分配給每一個(gè)軟件產(chǎn)品以及進(jìn)一步通過將子范圍分配給產(chǎn)品的相應(yīng)版本來編號(hào)。如果序列號(hào)的大小有限,那么產(chǎn)品管理者可能希望更精密地預(yù)測(cè)每一個(gè)產(chǎn)品和/或版本需要的序列號(hào)總數(shù)(例如通過預(yù)料銷售量),以便減小“被浪費(fèi)的數(shù)字”的數(shù)量(例如為產(chǎn)品保留但是實(shí)際不與產(chǎn)品的任何拷貝相關(guān)聯(lián)的潛在的序列號(hào)),并且由此接納(accommodate)更多的產(chǎn)品。這種預(yù)測(cè)有可能是困難的并且本身是不精確的。如果意外地耗盡了分配的范圍,那么可能在依賴于編號(hào)規(guī)定的不同系統(tǒng)組件上需要(例如,經(jīng)由服務(wù)包)代碼變化,這可能成本很高且非常麻煩。簡而言之,發(fā)明人認(rèn)識(shí)并了解到需要用于軟件產(chǎn)品驗(yàn)證和激活的改進(jìn)系統(tǒng),以便增強(qiáng)安全性、性能、可擴(kuò)展性和/或可管理性。優(yōu)選地,改進(jìn)的系統(tǒng)可以是向后兼容的,例如能夠與現(xiàn)有的產(chǎn)品密鑰實(shí)現(xiàn)方式同時(shí)或聯(lián)合部署,并且/或者允許在代碼變化最小的情況下重新使用現(xiàn)有系統(tǒng)組件。在一些實(shí)施例中,提供一種用于軟件產(chǎn)品驗(yàn)證和激活的改進(jìn)系統(tǒng),該系統(tǒng)將附加標(biāo)識(shí)信息(例如除序列號(hào)之外的信息)并入了產(chǎn)品密鑰,該信息可以用于促進(jìn)產(chǎn)品密鑰的驗(yàn)證。例如,附加標(biāo)識(shí)信息可以標(biāo)識(shí)軟件產(chǎn)品類型、軟件產(chǎn)品版本、軟件產(chǎn)品所屬的軟件產(chǎn)品系列、分發(fā)軟件產(chǎn)品拷貝的渠道和/或軟件產(chǎn)品的其他相關(guān)特性。這樣的信息可以充當(dāng)一個(gè)或多個(gè)索引,以用于識(shí)別在驗(yàn)證產(chǎn)品密鑰的過程中要使用的加密算法和/或加密算法的參數(shù)。發(fā)明人認(rèn)識(shí)并了解到,包含這種附加標(biāo)識(shí)信息可以通過促進(jìn)驗(yàn)證信息的容易檢索來明顯加速驗(yàn)證過程(例如無須常規(guī)的試錯(cuò)法過程)。此外,包含這種附加標(biāo)識(shí)信息可以導(dǎo)致更易于擴(kuò)展的系統(tǒng),因?yàn)樗鎏囟用芩惴ê?或參數(shù)可以不再被硬編碼到產(chǎn)品密鑰驗(yàn)證組件中。換言之,加密算法和/或參數(shù)的未來變化可以更易于實(shí)現(xiàn),并且產(chǎn)品密鑰驗(yàn)證組件中的代碼變化很小或者沒有變化。發(fā)明人還認(rèn)識(shí)并了解到,在將附加標(biāo)識(shí)信息并入產(chǎn)品密鑰時(shí),軟件產(chǎn)品驗(yàn)證和激活系統(tǒng)的安全性可以得到保持乃至增強(qiáng)。例如,如上所述,通過與網(wǎng)絡(luò)請(qǐng)求相關(guān)的延遲,可以減慢暴力攻擊。因此,通過至少部分在遠(yuǎn)程激活服務(wù)器處執(zhí)行產(chǎn)品密鑰驗(yàn)證(例如與完全在嘗試安裝軟件的本地計(jì)算機(jī)處進(jìn)行驗(yàn)證相反),可以實(shí)現(xiàn)足夠的安全等級(jí)。此外,由于特
7定的加密參數(shù)未必為攻擊者所知(例如攻擊者未必能夠有效地將附加標(biāo)識(shí)信息映射到相應(yīng)的加密參數(shù)),因此,攻擊者可能更加難以猜測(cè)有效的產(chǎn)品密鑰。由于這種安全性的增強(qiáng),產(chǎn)品密鑰中的更多比特可被分配給標(biāo)識(shí)組件,而這又可擴(kuò)大可用產(chǎn)品密鑰的空間并且減小了對(duì)于產(chǎn)品密鑰范圍預(yù)測(cè)的需要或在超出這種預(yù)測(cè)時(shí)出現(xiàn)的問題。例如,在一些實(shí)現(xiàn)方式中, 在產(chǎn)品密鑰中有接近一半的比特可被分配給標(biāo)識(shí)組件,從而使可用產(chǎn)品密鑰的數(shù)量增加到 IO24 (quadrillion)以上。 發(fā)明人還認(rèn)識(shí)并了解到,由于激活服務(wù)器是可以從因特網(wǎng)訪問的(例如,激活服務(wù)器可以接受web請(qǐng)求形式的激活請(qǐng)求),因此,該激活服務(wù)器是容易受到攻擊的。對(duì)激活服務(wù)器的成功攻擊可能導(dǎo)致可被攻擊者用來生成有效密鑰的信息受損。因此,可能期望的是引入附加的安全層,例如通過向產(chǎn)品密鑰并入要由除激活服務(wù)器之外的實(shí)體核實(shí)的附加安全信息來完成。相應(yīng)地,在一些實(shí)施例中,除了激活服務(wù)器之外還可以提供用于驗(yàn)證產(chǎn)品密鑰的增強(qiáng)的安全服務(wù)器。所述增強(qiáng)的安全服務(wù)器使用的信息可能對(duì)激活服務(wù)器而言是不可訪問的,并且因此可以甚至在激活服務(wù)器被成功攻擊時(shí)也保持安全。如果激活服務(wù)器受到破壞,這種附加安全機(jī)制可以防止系統(tǒng)完全失效,由此給予系統(tǒng)開發(fā)人員更多時(shí)間來對(duì)所述破壞做出響應(yīng)。下文中更詳細(xì)地描述了與用于軟件產(chǎn)品驗(yàn)證和激活的本發(fā)明的系統(tǒng)、方法和設(shè)備相關(guān)聯(lián)的各種概念及其實(shí)施例。應(yīng)該了解的是,在上文中引入以及在下文中更詳細(xì)論述的各種概念可以通過多種方式實(shí)現(xiàn),因?yàn)樗_的概念并不局限于任何特定的實(shí)現(xiàn)方式。例如,本公開并不局限于各種不同的附圖中示出的組件的特定設(shè)置,因?yàn)槠渌O(shè)置同樣也是適合的。特定實(shí)現(xiàn)方式和應(yīng)用的這種示例僅僅是出于說明目的而提供的。圖2示出用于驗(yàn)證和激活軟件產(chǎn)品的說明性系統(tǒng)200的示例,在該系統(tǒng)中可以實(shí)現(xiàn)這里公開的各種不同發(fā)明的概念。與圖1所示的示例相似,說明性系統(tǒng)200包括產(chǎn)品密鑰生成服務(wù)器110、用戶120、用戶計(jì)算機(jī)130以及激活服務(wù)器140。此外,所述說明性系統(tǒng) 200包括用于與激活服務(wù)器140協(xié)力驗(yàn)證產(chǎn)品密鑰的增強(qiáng)的安全服務(wù)器250。在一些實(shí)施例中,產(chǎn)品密鑰生成服務(wù)器110可以由軟件賣方或其他某個(gè)適當(dāng)?shù)臋C(jī)構(gòu)操作,以便生成要分發(fā)給軟件產(chǎn)品的合法用戶的產(chǎn)品密鑰。該產(chǎn)品密鑰生成服務(wù)器110 可以使用任何適當(dāng)?shù)募夹g(shù)或技術(shù)組合來生成產(chǎn)品密鑰。例如,如上所述,產(chǎn)品密鑰生成服務(wù)器110可以在產(chǎn)品密鑰中包括標(biāo)識(shí)組件,該標(biāo)識(shí)組件可以包括將與軟件產(chǎn)品的特定拷貝相關(guān)聯(lián)的序列號(hào)以及標(biāo)識(shí)軟件產(chǎn)品的類型、軟件產(chǎn)品的版本、軟件產(chǎn)品所屬的軟件產(chǎn)品系列、 用以分發(fā)軟件產(chǎn)品拷貝的渠道和/或軟件產(chǎn)品的其他相關(guān)特性的“組ID”。產(chǎn)品密鑰生成服務(wù)器110還可以在產(chǎn)品密鑰中包含安全組件,該安全組件可以用于核實(shí)標(biāo)識(shí)組件的完整性和/或真實(shí)性。例如,在一些實(shí)施例中,安全組件可以包括處于部分或所有標(biāo)識(shí)組件之上的電子簽名,其中該電子簽名是使用產(chǎn)品密鑰生成服務(wù)器110的秘密密鑰生成的。在其他的一些實(shí)施例中,安全組件可以包括通過使用產(chǎn)品密鑰生成服務(wù)器110的秘密密鑰加密部分或全部標(biāo)識(shí)組件而生成的密文。任何適當(dāng)?shù)募用芩惴ǘ际强梢允褂玫模@其中包括但不局限于諸如高級(jí)加密標(biāo)準(zhǔn)(AES)之類的對(duì)稱加密算法、諸如橢圓曲線密碼(ECC)加密算法之類的非對(duì)稱加密算法和/或任何適當(dāng)?shù)乃惴ńM合。在其他一些實(shí)施例中,安全組件可以包括基于部分或所有標(biāo)識(shí)組件以及產(chǎn)品密鑰生成服務(wù)器110的秘密密鑰生成的散列值。 任何適當(dāng)?shù)纳⒘兴惴ǘ际强梢允褂玫模@其中包括但不局限于MD4、MD5、SHA-I、SHA-256或SHA-512。在其他的一些實(shí)施例中,安全組件可以包括將要與標(biāo)識(shí)組件相關(guān)聯(lián)的隨機(jī)或偽隨機(jī)值。為了增強(qiáng)安全性,在一些實(shí)現(xiàn)方式中,產(chǎn)品密鑰的安全組件可以包括分別要由兩個(gè)或更多單獨(dú)的實(shí)體核實(shí)的兩個(gè)或更多的安全值,從而避免系統(tǒng)中的單個(gè)故障點(diǎn)。例如,參考圖2,產(chǎn)品密鑰生成服務(wù)器110可以在產(chǎn)品密鑰的安全組件中包括兩個(gè)分別由激活服務(wù)器140和增強(qiáng)的安全服務(wù)器250核實(shí)的安全值。這兩個(gè)安全值可以用任何適當(dāng)?shù)姆绞缴伞?例如,這些安全值可以使用一種或多種上述技術(shù)(例如簽名、加密、散列和/或隨機(jī)生成)基于標(biāo)識(shí)組件中的相同部分或不同部分來生成。此外,安全值可以使用不同的技術(shù)或使用具有不同參數(shù)(例如不同的秘密密鑰)的相同技術(shù)來生成。以此方式,即使一個(gè)驗(yàn)證機(jī)構(gòu)(例如激活服務(wù)器140)受損,也可以避免完全的系統(tǒng)故障。例如,攻擊者可能不能夠隨意激活軟件產(chǎn)品的非法拷貝,因?yàn)槲词軗p害的驗(yàn)證機(jī)構(gòu)(例如增強(qiáng)的安全服務(wù)器250)仍舊能夠使偽造的產(chǎn)品密鑰失效。這可以給予系統(tǒng)開發(fā)人員更多時(shí)間來開發(fā)和分發(fā)一個(gè)或多個(gè)服務(wù)補(bǔ)丁,以便關(guān)閉攻擊者使用的弱點(diǎn)。以下結(jié)合圖3A-B討論用于生成產(chǎn)品密鑰的說明性過程的更進(jìn)一步的細(xì)節(jié)。應(yīng)該了解的是,本公開中與產(chǎn)品密鑰生成相關(guān)的方面并不局限于任何特定的生成技術(shù)。例如,產(chǎn)品密鑰可以是使用上述技術(shù)和/或其他適當(dāng)技術(shù)中的任何一種或是其組合生成的。此外, 上述技術(shù)可以根據(jù)特定的實(shí)現(xiàn)方式而以任何適當(dāng)?shù)姆绞竭m應(yīng)性調(diào)節(jié)和/或修改。例如,通過簽名、加密和/或散列處理生成的安全值可以基于產(chǎn)品密鑰中分配給所述安全值的空間量(例如比特?cái)?shù)量)而被截短成某個(gè)適當(dāng)?shù)拈L度。如上文中結(jié)合圖1論述的那樣,當(dāng)用戶120以合法方式購買或以其他方式合法獲取了軟件產(chǎn)品拷貝時(shí),由產(chǎn)品密鑰生成服務(wù)器110生成的產(chǎn)品密鑰可以例如作為印刷在受收縮包裹保護(hù)的包裝材料上的代碼被傳達(dá)給用戶。可替代地,可以給予用戶用于從web鏈接下載產(chǎn)品密鑰的密碼。其他的傳播方法也是適當(dāng)?shù)?。?dāng)用戶120嘗試在用戶計(jì)算機(jī)130上安裝軟件產(chǎn)品拷貝時(shí),在用戶計(jì)算機(jī)130上運(yùn)行的安裝程序可以提示用戶120輸入產(chǎn)品密鑰。一旦接收到產(chǎn)品密鑰,安裝程序可以處理該產(chǎn)品密鑰并且基于從處理該產(chǎn)品密鑰導(dǎo)出的信息來向激活服務(wù)器140發(fā)送激活請(qǐng)求。 如上所述,可以期望的是對(duì)除用戶計(jì)算機(jī)130之外的實(shí)體將產(chǎn)品密鑰驗(yàn)證過程的至少一部分推遲(defer),從而減慢可能的暴力攻擊和/或防止可能會(huì)在驗(yàn)證完全在本地執(zhí)行的情況下出現(xiàn)的其他攻擊。相應(yīng)地,在一些實(shí)施例中,至少一部分產(chǎn)品密鑰驗(yàn)證過程可以由激活服務(wù)器140執(zhí)行。用戶計(jì)算機(jī)130上的安裝程序可以不執(zhí)行任何驗(yàn)證,或者可以執(zhí)行某些初始檢查來捕捉任何排字錯(cuò)誤(例如通過執(zhí)行校驗(yàn)和驗(yàn)證)。后一種方法可能是有利的,因?yàn)橛脩敉鶗?huì)在鍵入產(chǎn)品密鑰的時(shí)候出錯(cuò),并且可能期望的是在招致與激活服務(wù)器140的通信進(jìn)一步延遲之前捕捉這種簡單的錯(cuò)誤。換言之,用戶計(jì)算機(jī)130可以不向激活服務(wù)器 140發(fā)送任何激活請(qǐng)求,除非初始檢查指示產(chǎn)品密鑰很可能已被正確鍵入。對(duì)激活服務(wù)器140推遲驗(yàn)證的另一個(gè)優(yōu)點(diǎn)可以是可以更容易地實(shí)現(xiàn)和/或保持用戶計(jì)算機(jī)130上的安裝程序。例如,在圖2的示例中,安裝程序可能不再需要存儲(chǔ)和保持來自產(chǎn)品密鑰生成服務(wù)器110的驗(yàn)證信息。這種驗(yàn)證信息的示例包括但不限于一種或多種加密算法(例如簽名驗(yàn)證、解密和/或散列算法)和/或用于這些算法的一個(gè)或多個(gè)參數(shù)(例如在簽名驗(yàn)證、解密和/或散列處理中要使用的密鑰)。結(jié)果,針對(duì)驗(yàn)證信息的任何變化(例如
9更新至更安全的算法和/或刷新密鑰)可以在對(duì)安裝程序沒有代碼變化或有少量代碼變化的情況下實(shí)現(xiàn)。以下結(jié)合圖4討論由用戶計(jì)算機(jī)上運(yùn)行的安裝程序執(zhí)行的說明性過程的進(jìn)一步細(xì)節(jié)。再次參考圖2,激活服務(wù)器140可以從用戶計(jì)算機(jī)130接收激活請(qǐng)求,該激活請(qǐng)求可以包括用戶120鍵入的產(chǎn)品密鑰和/或從產(chǎn)品密鑰中導(dǎo)出的信息。例如,在一些實(shí)施例中,激活服務(wù)器140可以經(jīng)由激活請(qǐng)求來接收由用戶計(jì)算機(jī)130從產(chǎn)品密鑰中提取的序列號(hào)、組ID以及至少一個(gè)安全值??商娲鼗虼送?,激活服務(wù)器140可以接收產(chǎn)品密鑰,并且執(zhí)行它自己的處理來恢復(fù)這些信息。如上所述,從產(chǎn)品密鑰中提取的信息(例如序列號(hào)和/或組ID)可用于識(shí)別和/或檢索那些將要在驗(yàn)證產(chǎn)品密鑰的過程中使用的驗(yàn)證信息(例如一個(gè)或多個(gè)加密算法和/或用于該加密算法的參數(shù))。在圖2所示的示例中,激活服務(wù)器140可以使用序列號(hào)和/或組 ID來從存儲(chǔ)器260中檢索驗(yàn)證信息。例如,在基于電子簽名的實(shí)現(xiàn)方式中,激活服務(wù)器140 可以使用序列號(hào)和/或組ID來從存儲(chǔ)器260中檢索簽名驗(yàn)證算法的標(biāo)識(shí)和/或驗(yàn)證密鑰。 類似地,在基于加密的實(shí)現(xiàn)方式中可以檢索解密密鑰和/或解密算法的標(biāo)識(shí),在基于散列處理的實(shí)現(xiàn)方式中可以檢索秘密密鑰和/或散列算法的標(biāo)識(shí),以及在基于隨機(jī)生成的實(shí)現(xiàn)方式中可以檢索與特定產(chǎn)品密鑰相關(guān)聯(lián)的隨機(jī)或偽隨機(jī)生成值。以此方式,激活服務(wù)器140可能能夠以一種模塊化方式來處理不同類型的安全機(jī)制,由此允許軟件賣方更靈活地根據(jù)其特定需要來選擇不同安全機(jī)制。例如在一些實(shí)施例中,不同的軟件賣方可以共享總的產(chǎn)品密鑰實(shí)現(xiàn)方式,但卻使用不同的算法和/或參數(shù)。可替代地或此外,同一個(gè)軟件賣方可以針對(duì)不同產(chǎn)品或是不同的版本、系列或其他適當(dāng)?shù)漠a(chǎn)品分類使用不同的算法和/或參數(shù)。例如,如果產(chǎn)品與高拷貝風(fēng)險(xiǎn)相關(guān)聯(lián)(例如流行的視頻游戲),那么可以選擇更安全的算法,然而針對(duì)預(yù)計(jì)會(huì)生成大量激活請(qǐng)求的產(chǎn)品(例如流行的操作系統(tǒng)),可以選擇更高效的算法。在圖2所示的示例中,產(chǎn)品密鑰生成服務(wù)器110可以將一些或所有驗(yàn)證信息存入存儲(chǔ)器沈0。例如,對(duì)于所生成的每一個(gè)產(chǎn)品密鑰,產(chǎn)品密鑰生成服務(wù)器110可以通過使用被編碼到產(chǎn)品密鑰中的標(biāo)識(shí)信息(例如序列號(hào)和/或組ID)促進(jìn)稍后訪問的方式而將一些或所有相應(yīng)的驗(yàn)證信息存入存儲(chǔ)器260??商娲?,存儲(chǔ)器260可以由中央機(jī)構(gòu)管理,所述機(jī)構(gòu)會(huì)針對(duì)各種不同的軟件產(chǎn)品和/或軟件產(chǎn)品群組選擇適當(dāng)?shù)陌踩珯C(jī)制。在此類實(shí)施例中,產(chǎn)品密鑰生成信息(例如簽名生成、加密和/或散列算法和/或相關(guān)聯(lián)的參數(shù))以及驗(yàn)證信息(例如簽名驗(yàn)證、解密和/或散列算法,和/或相關(guān)聯(lián)的參數(shù))可以以與某些標(biāo)識(shí)信息 (例如序列號(hào)和/或組ID)關(guān)聯(lián)的方式存入存儲(chǔ)器沈0,使得產(chǎn)品密鑰生成服務(wù)器110可以使用該標(biāo)識(shí)信息來訪問適當(dāng)?shù)漠a(chǎn)品密鑰生成信息,并且激活服務(wù)器140可以使用該標(biāo)識(shí)信息來訪問適當(dāng)?shù)尿?yàn)證信息。存儲(chǔ)器260還可以存儲(chǔ)隨機(jī)、偽隨機(jī)或以其他方式生成的與產(chǎn)品密鑰的一個(gè)或多個(gè)標(biāo)識(shí)組件相關(guān)聯(lián)的值。在下文中結(jié)合圖5來討論由激活服務(wù)器執(zhí)行的用于驗(yàn)證產(chǎn)品密鑰的說明性處過程的進(jìn)一步細(xì)節(jié)。如上所述,在一些實(shí)施例中,產(chǎn)品密鑰可以包括要由諸如激活服務(wù)器140和增強(qiáng)的安全服務(wù)器250之類的不同實(shí)體單獨(dú)核實(shí)的多個(gè)安全值。在圖2所示的示例中,增強(qiáng)的
10安全服務(wù)器250可以實(shí)現(xiàn)為由激活服務(wù)器140調(diào)用的審計(jì)服務(wù)。例如,一旦成功核實(shí)了產(chǎn)品密鑰中的兩個(gè)安全值之一,激活服務(wù)器140可以決定審計(jì)是否是期望的,如果是的話,則其向增強(qiáng)的安全服務(wù)器250發(fā)送審計(jì)請(qǐng)求。作為響應(yīng),增強(qiáng)的安全服務(wù)器250可以基于這兩個(gè)安全值中的另一個(gè)值來執(zhí)行它自己的核實(shí)。與激活服務(wù)器140 —樣,增強(qiáng)的安全服務(wù)器250可以訪問來自存儲(chǔ)器沈0的驗(yàn)證信息,盡管增強(qiáng)的安全服務(wù)器250訪問的驗(yàn)證信息可能不同于激活服務(wù)器140訪問的驗(yàn)證信息。在一些實(shí)施方式中,增強(qiáng)的安全服務(wù)器250 可以在線執(zhí)行審計(jì),并且將結(jié)果回送到激活服務(wù)器140,所述激活服務(wù)器只在這兩個(gè)驗(yàn)證全都成功的情況下才會(huì)許可激活請(qǐng)求。在其他實(shí)現(xiàn)方式中,當(dāng)激活服務(wù)器140自己的驗(yàn)證成功時(shí),它可以許可激活請(qǐng)求,而增強(qiáng)的安全服務(wù)器250可以離線執(zhí)行審計(jì),并且可以追溯性地使產(chǎn)品密鑰無效。在下文中結(jié)合圖6來論述由增強(qiáng)的安全服務(wù)器執(zhí)行的用于驗(yàn)證產(chǎn)品密鑰的說明性過程的進(jìn)一步細(xì)節(jié)。根據(jù)特定的實(shí)現(xiàn)方式,激活服務(wù)器140可以采用任何適當(dāng)?shù)姆绞絹磉x擇用于審計(jì)的產(chǎn)品密鑰。例如,激活服務(wù)器140可以隨機(jī)或偽隨機(jī)地進(jìn)行選擇。另舉一例,激活服務(wù)器 140可以基于軟件產(chǎn)品類型、軟件產(chǎn)品版本、軟件產(chǎn)品所屬的軟件產(chǎn)品系列、用以分發(fā)軟件產(chǎn)品拷貝的渠道和/或其他那些可以用編碼在產(chǎn)品密鑰的標(biāo)識(shí)組件中的信息訪問的軟件產(chǎn)品的相關(guān)特性來進(jìn)行選擇。作為又一個(gè)示例,激活服務(wù)器140可以基于如通過用戶輸入或通過自動(dòng)檢測(cè)一個(gè)或多個(gè)系統(tǒng)活動(dòng)模式來指示的所感知的安全威脅等級(jí)來選擇用于審計(jì)的產(chǎn)品密鑰,所述系統(tǒng)活動(dòng)模式例如是涉及特定產(chǎn)品或產(chǎn)品群組的請(qǐng)求的頻率或者從特定用戶或用戶群組接收的請(qǐng)求的頻率。一旦驗(yàn)證了產(chǎn)品密鑰(例如由激活服務(wù)器140單獨(dú)驗(yàn)證或是由激活服務(wù)器140和增強(qiáng)的安全服務(wù)器250驗(yàn)證),激活服務(wù)器140可以選擇一個(gè)或多個(gè)適用的許可,并且將選定的許可告知用戶計(jì)算機(jī)130。然后,用戶計(jì)算機(jī)130可以將這些許可與所安裝的軟件產(chǎn)品拷貝相關(guān)聯(lián),并且根據(jù)這些許可來有選擇地啟用軟件產(chǎn)品中的特征。應(yīng)該了解的是,圖2所示以及如上所述的特定實(shí)現(xiàn)方式僅僅是說明性的,因?yàn)檫@里公開的各種不同的發(fā)明概念不限于任何特定的實(shí)現(xiàn)方式。例如,在可替代的實(shí)現(xiàn)方式中, 產(chǎn)品密鑰生成服務(wù)器Iio和激活服務(wù)器140可以由同一實(shí)體操作和/或在相同的物理服務(wù)器上操作。作為另一個(gè)示例,增強(qiáng)的安全服務(wù)器250可以經(jīng)由某個(gè)適當(dāng)網(wǎng)絡(luò)(企業(yè)網(wǎng)或因特網(wǎng))持續(xù)地或在需要時(shí)(例如在激活服務(wù)器140受損或是因?yàn)槠渌虿豢捎脮r(shí))直接訪問。此外,在一些情況中,用戶120可以是個(gè)人用戶,但在其他情況中,該用戶也可以是公司用戶,例如在零售計(jì)算設(shè)備之前在該設(shè)備上安裝軟件產(chǎn)品的原始設(shè)備制造商(OEM)。轉(zhuǎn)到圖3A,該圖示出用于生成產(chǎn)品密鑰的說明性過程300,其中該過程可以由圖2 所示的產(chǎn)品密鑰生成服務(wù)器110執(zhí)行,以便生成產(chǎn)品密鑰。在圖;3B中示出可以經(jīng)由過程 300生成的產(chǎn)品密鑰350的示例。在圖3A所示的示例中,過程300始于識(shí)別軟件產(chǎn)品序列號(hào)的動(dòng)作305。在一些實(shí)施例中,該序列號(hào)可以從與軟件產(chǎn)品相關(guān)聯(lián)的號(hào)碼范圍中選擇,例如通過在每次將序列號(hào)分配給新的軟件產(chǎn)品拷貝時(shí)從所述范圍的低端開始且遞增一個(gè)(或者可替代地,從所述范圍的高端開始且遞減一個(gè))來選擇。選擇序列號(hào)的其他方式也可以是適當(dāng)?shù)?,例如隨機(jī)或偽隨機(jī)地從一組可用號(hào)碼中選擇。
11
如上所解釋,單獨(dú)的序列號(hào)可以不攜帶關(guān)于軟件產(chǎn)品的足夠信息以允許驗(yàn)證機(jī)構(gòu) (例如圖2所示的激活服務(wù)器)識(shí)別驗(yàn)證過程需要的信息。相應(yīng)地,在一些實(shí)施例中,產(chǎn)品密鑰可以包括可以促進(jìn)產(chǎn)品密鑰的高效驗(yàn)證的附加標(biāo)識(shí)信息。例如,所述附加標(biāo)識(shí)信息可以是與軟件產(chǎn)品類型、軟件產(chǎn)品版本、軟件產(chǎn)品所屬的軟件產(chǎn)品系列,用以分發(fā)軟件產(chǎn)品拷貝的渠道和/或軟件產(chǎn)品的其它相關(guān)特性相關(guān)聯(lián)的組ID。更一般地,組ID可以標(biāo)識(shí)可以以與出于驗(yàn)證目的的類似方式(例如使用相同的加密算法和/或參數(shù))處理的軟件產(chǎn)品的任何群組。在動(dòng)作310處,可以使用適當(dāng)?shù)陌踩珯C(jī)制基于序列號(hào)和附加標(biāo)識(shí)信息(例如組ID) 生成第一安全值。例如,序列號(hào)和/或附加標(biāo)識(shí)信息可用于確定安全機(jī)制,該安全機(jī)制可以基于簽名、加密、散列、隨機(jī)生成和/或其他密碼學(xué)技術(shù)。作為更具體的示例,序列號(hào)和/或附加標(biāo)識(shí)信息可用于確定對(duì)稱加密算法和秘密密鑰,并且第一安全值可以至少部分通過使用對(duì)稱加密算法和秘密密鑰加密所述序列號(hào)和附加標(biāo)識(shí)信息來生成。作為另一個(gè)示例,序列號(hào)和/或附加標(biāo)識(shí)信息可用于確定散列算法和秘密密鑰,并且第一安全值可以至少部分通過散列所述序列號(hào)和附加標(biāo)識(shí)信息生成,其中秘密密鑰可以用作散列處理的參數(shù)。在動(dòng)作315處,可以基于序列號(hào)和附加標(biāo)識(shí)信息生成第二安全值。在一些實(shí)施例中,第二安全值可以使用與用于生成第一安全值的機(jī)制不同的安全機(jī)制來生成。例如,第二安全值可以使用不同的加密算法或是具有不同密鑰的相同加密算法生成??商娲兀诙踩蹬c第一安全值可以是用相同的安全機(jī)制生成的(例如使用相同的散列算法和秘密密鑰)。在動(dòng)作320處,可以基于序列號(hào)、附加標(biāo)識(shí)信息以及第一和第二安全值生成校驗(yàn)和。該校驗(yàn)和可以用循環(huán)冗余校驗(yàn)(CRC)校驗(yàn)和算法或某種其他適當(dāng)?shù)乃惴▉砩?。如上文結(jié)合圖2所述,校驗(yàn)和可用于確定用戶是否有可能在鍵入產(chǎn)品密鑰時(shí)犯了排字錯(cuò)誤。因此,校驗(yàn)和不需要安全抵抗暴力攻擊,并且相對(duì)較少的比特(例如不超過10個(gè))可能足夠了。在動(dòng)作325處,可以通過某種適當(dāng)?shù)姆绞綄⑿蛄刑?hào)、附加標(biāo)識(shí)信息、第一和第二安全值以及校驗(yàn)和封裝在一起,從而形成產(chǎn)品密鑰。例如,在一些實(shí)施例中,使用了字母表 “BCDFGHJKMPQRTVWXY2;346789”的I^aseM編碼可被用于對(duì)校驗(yàn)和、第一和第二安全值、附加標(biāo)識(shí)信息、以及序列號(hào)的級(jí)聯(lián)(concatenation)進(jìn)行編碼,并且不在用于編碼的字母表中的特殊字符(例如字符“N”)可以被插入編碼的串中的選定位置。然后,所得的產(chǎn)品密鑰可被存儲(chǔ)并且稍后與軟件產(chǎn)品的拷貝相關(guān)聯(lián)以及傳達(dá)給用戶。如下文中結(jié)合圖:3B和4更詳細(xì)的討論,特殊字符(例如字符“N”)的位置的可被安裝程序用以確定對(duì)特定產(chǎn)品密鑰執(zhí)行常規(guī)的還是改進(jìn)的產(chǎn)品密鑰驗(yàn)證。所述特殊字符的位置還可以指示產(chǎn)品密鑰具有常規(guī)格式還是改進(jìn)格式。由此,安裝程序可以根據(jù)特殊字符的位置來以不同的方式解析產(chǎn)品。在動(dòng)作330處,與產(chǎn)品密鑰相關(guān)聯(lián)的驗(yàn)證信息可以通過促進(jìn)一個(gè)或多個(gè)驗(yàn)證機(jī)構(gòu) (例如圖2所示的激活服務(wù)器140和增強(qiáng)的安全服務(wù)器)檢索的方式存儲(chǔ)。例如,驗(yàn)證信息可以以與產(chǎn)品密鑰的序列號(hào)和/或附加標(biāo)識(shí)信息(例如組ID)關(guān)聯(lián)的方式存儲(chǔ),以使得驗(yàn)證機(jī)構(gòu)可以通過提供序列號(hào)和/或附加標(biāo)識(shí)信息來檢索驗(yàn)證信息。這里使用的“驗(yàn)證信息”通常是指任何可以在驗(yàn)證產(chǎn)品密鑰時(shí)使用的信息。例如, 驗(yàn)證信息可以包括要被用于驗(yàn)證產(chǎn)品密鑰的一個(gè)或多個(gè)加密算法的標(biāo)識(shí)和/或一個(gè)或多個(gè)相關(guān)聯(lián)的參數(shù)(例如密鑰)。優(yōu)選地,與第一和第二安全值有關(guān)的驗(yàn)證信息可以作為獨(dú)立單元存儲(chǔ),使得負(fù)責(zé)核實(shí)第一安全值的實(shí)體(例如圖2所示的激活服務(wù)器140)不能訪問與第二安全值有關(guān)的驗(yàn)證信息。以此方式,即使成功攻擊了負(fù)責(zé)核實(shí)第一安全值的實(shí)體,與第二安全值有關(guān)的驗(yàn)證信息也可以保持安全。作為另一個(gè)示例,驗(yàn)證信息可以包括安全值本身,使得可以簡單地通過將提取自產(chǎn)品密鑰的安全值與使用產(chǎn)品密鑰序列號(hào)和/或附加標(biāo)識(shí)信息檢索的安全值相比較來執(zhí)行驗(yàn)證。在隨機(jī)或偽隨機(jī)地生成安全值的實(shí)現(xiàn)方式中,或者在動(dòng)作310和315處使用相同安全機(jī)制來生成第一和第二安全值的實(shí)現(xiàn)方式中,這種存儲(chǔ)安全值本身的方法可能是適當(dāng)?shù)?。在后一種情況中,可能期望的是不向驗(yàn)證機(jī)構(gòu)(例如圖2所示的激活服務(wù)器140)透露安全機(jī)制,從而防止在驗(yàn)證機(jī)構(gòu)被成功的攻擊的情況下?lián)p害所述安全機(jī)制。圖;3B示出5x5格式的說明性產(chǎn)品密鑰350,其中在25個(gè)字符中有M個(gè)字符是從具有M個(gè)字符“BCDFGHJKMPQRTVWXY2346789”的字母表中提取的,并且在第9個(gè)位置插入特殊字符“N”。該格式可以與同樣使用5x5格式的現(xiàn)有產(chǎn)品密鑰的實(shí)現(xiàn)方式兼容,并且特殊字符“N”的位置可以被安裝程序用來確定執(zhí)行常規(guī)的產(chǎn)品密鑰處理還是依照本公開的一些實(shí)施例的新的產(chǎn)品處理。在一些實(shí)施例中,通過移除特殊字符“N”,產(chǎn)品密鑰350可被解碼成如圖:3B中的表 355所示的114比特的串。該比特串中的前50比特可以對(duì)應(yīng)于產(chǎn)品密鑰的標(biāo)識(shí)組件,其中前20個(gè)比特表示組ID360且剩余的30比特表示序列號(hào)362。接下來的63比特可以對(duì)應(yīng)于產(chǎn)品密鑰的安全組件,其中分別為第一安全值364,第二安全值366以及校驗(yàn)和368分配了 40、13和10比特。最后一比特370可以指示與產(chǎn)品密鑰相關(guān)聯(lián)的軟件產(chǎn)品拷貝是經(jīng)由零售渠道(也被表示為“FPP”)還是升級(jí)渠道(也被表示為“CCP”)分發(fā)的。應(yīng)該注意,在圖;3B所示的示例中,在產(chǎn)品密鑰350中有接近一半比特(或是114比特中的50比特,大約45%或是超過40%)被分配給了標(biāo)識(shí)組件。結(jié)果,有超出IOm的號(hào)碼 (例如0到25°-1)可用于組ID和序列號(hào)組合,這極大減小了對(duì)于預(yù)測(cè)精確的產(chǎn)品密鑰范圍的需要。應(yīng)該了解的是,圖3A所示的過程300以及圖所示的產(chǎn)品密鑰350只是說明性的,因?yàn)樵诒竟_的各種不同實(shí)施例中也可以使用生成產(chǎn)品密鑰的其他方式和/或產(chǎn)品密鑰的其他格式。例如,一些產(chǎn)品密鑰實(shí)現(xiàn)方式可以利用攜帶了用于驗(yàn)證的足夠信息的“自我核實(shí)”產(chǎn)品密鑰,使得驗(yàn)證機(jī)構(gòu)不必從單獨(dú)的來源檢索驗(yàn)證信息。圖4示出可以由用戶計(jì)算機(jī)上的安裝程序響應(yīng)于用戶激活軟件產(chǎn)品拷貝的嘗試而執(zhí)行的說明性過程400。例如,過程400可以由圖2所示的用戶計(jì)算機(jī)130在為用戶120 安裝軟件產(chǎn)品拷貝的期間執(zhí)行。過程400可以始于向用戶提示與所安裝的軟件產(chǎn)品拷貝相關(guān)聯(lián)的產(chǎn)品密鑰并且經(jīng)由諸如鍵盤或鼠標(biāo)之類的輸入設(shè)備來接收產(chǎn)品密鑰的動(dòng)作405。在操作410處,過程400 可以確定是用常規(guī)的產(chǎn)品密鑰實(shí)現(xiàn)方式還是使用合并了本公開中描述的一個(gè)或多個(gè)發(fā)明概念的新的產(chǎn)品密鑰實(shí)現(xiàn)方式來生成產(chǎn)品。例如,在一個(gè)實(shí)施例中,過程400可以針對(duì)諸如字母“N”之類的特殊字符掃描產(chǎn)品密鑰。如果發(fā)現(xiàn)字母“N”在預(yù)定位置處(例如在產(chǎn)品密鑰的安全組件或有效載荷開始的地方,比特偏移50處或是其附近),那么可以確定該產(chǎn)品密鑰與新的實(shí)現(xiàn)方式相關(guān)聯(lián)。否則,產(chǎn)品密鑰可以與現(xiàn)有的實(shí)現(xiàn)方式相關(guān)聯(lián),并且該過程400可以作為子過程415來繼續(xù)執(zhí)行常規(guī)產(chǎn)品密鑰驗(yàn)證。在另一個(gè)實(shí)施例中,僅存在諸如字母 “N”之類的特殊字符可以指示產(chǎn)品密鑰將與新的實(shí)現(xiàn)方式相關(guān)聯(lián),并且特殊字符在產(chǎn)品密鑰內(nèi)的位置可以提供能夠用于驗(yàn)證產(chǎn)品密鑰的附加信息。例如,除了用baseM字母表編碼的比特之外,可以使用特殊字符位置來編碼一個(gè)或多個(gè)比特,從而有效提高產(chǎn)品密鑰的信息承載能力。如果確定產(chǎn)品密鑰與新的實(shí)現(xiàn)方式相關(guān)聯(lián),那么過程400可以繼續(xù)到動(dòng)作420,以執(zhí)行校驗(yàn)和核實(shí)。例如,參考圖3B所示的實(shí)施例,該過程400可以將產(chǎn)品密鑰解碼成二進(jìn)制格式,并且核實(shí)產(chǎn)品密鑰中始于比特偏移103的10比特信息是否是產(chǎn)品密鑰中的剩余部分或是其任何適當(dāng)部分的正確校驗(yàn)和。例如,所述10比特校驗(yàn)和可以針對(duì)產(chǎn)品密鑰的前103 比特和/或升級(jí)比特來核實(shí)。如果在動(dòng)作420處確定校驗(yàn)和正確,那么用戶有可能正確鍵入了產(chǎn)品密鑰,并且過程400可以繼續(xù)到動(dòng)作425,以向適當(dāng)?shù)尿?yàn)證機(jī)構(gòu)(例如圖2所示的驗(yàn)證服務(wù)器140)傳送激活請(qǐng)求。根據(jù)特定實(shí)施例,該激活請(qǐng)求可以包括產(chǎn)品密鑰本身和/或與產(chǎn)品密鑰的一個(gè)或多個(gè)組成部分相對(duì)應(yīng)的比特串,例如組ID、序列號(hào)、第一安全值和/或第二安全值。另一方面,如果在動(dòng)作420處確定校驗(yàn)和不正確,那么該過程可以繼續(xù)到動(dòng)作 430,以提示用戶重新輸入產(chǎn)品密鑰,然后返回動(dòng)作405,以處理用戶下一次輸入產(chǎn)品密鑰的嘗試ο在動(dòng)作435處,過程400可以接收來自驗(yàn)證機(jī)構(gòu)的關(guān)于在動(dòng)作425處傳送的激活請(qǐng)求的狀態(tài)的通知。如果該請(qǐng)求被拒絕,則過程400可以繼續(xù)到操作445,以向用戶告知未能使用所提供的產(chǎn)品密鑰完成安裝。否則,該過程400可以繼續(xù)到動(dòng)作440,以識(shí)別驗(yàn)證機(jī)構(gòu)給予的一個(gè)或多個(gè)許可,并且根據(jù)所給予的許可來啟用軟件產(chǎn)品中的一個(gè)或多個(gè)特征。參考圖5,該圖示出說明性過程500,該過程可以由驗(yàn)證機(jī)構(gòu)(例如圖2所示的驗(yàn)證服務(wù)器140)響應(yīng)于從用戶嘗試安裝軟件產(chǎn)品拷貝的計(jì)算機(jī)(例如圖2所示的用戶計(jì)算機(jī) 130)接收激活請(qǐng)求來執(zhí)行。在本示例中,過程500始于接收激活請(qǐng)求的動(dòng)作505,該請(qǐng)求可以包括整個(gè)產(chǎn)品密鑰和/或產(chǎn)品密鑰的各種相關(guān)部分,例如圖3B所示的組ID、序列號(hào)、第一安全值和/或第二安全值。在動(dòng)作510處,過程500可以使用一些來自產(chǎn)品密鑰的標(biāo)識(shí)信息(例如組ID)來訪問與第一安全值相關(guān)的驗(yàn)證信息。例如,過程500可以使用在內(nèi)部編碼組ID的統(tǒng)一資源定位符(URL)來與驗(yàn)證信息的存儲(chǔ)器(例如圖2所示的存儲(chǔ)器沈0)進(jìn)行聯(lián)系。在獲得了相關(guān)驗(yàn)證信息的情況下,過程500可以繼續(xù)到動(dòng)作515,以分析第一安全值。例如,在通過使用秘密密鑰加密序列號(hào)和組ID來生成第一安全值的實(shí)施例中,過程500 訪問的驗(yàn)證信息可以包括與所用加密算法相對(duì)應(yīng)的解密算法的標(biāo)識(shí)(或可替代地,實(shí)現(xiàn)所述解密算法的程序代碼)以及被用作解密算法參數(shù)的秘密密鑰。在該情況下,過程500可以在動(dòng)作520處使用所訪問的驗(yàn)證信息來解密第一安全值,并且將結(jié)果與序列號(hào)和組ID相比較。如果序列號(hào)和組ID與經(jīng)解密的第一安全值匹配,則可以認(rèn)為產(chǎn)品密鑰有效(至少臨時(shí)有效),并且該過程500可以繼續(xù)到動(dòng)作530,以處理可能的審計(jì)。另一方面,如果確定序列號(hào)和組ID不與經(jīng)解密的第一安全值相匹配,則過程500可以繼續(xù)到動(dòng)作525,以向發(fā)送激活請(qǐng)求的計(jì)算機(jī)通知所述激活請(qǐng)求已被拒絕??商娲鼗虼送猓^程500訪問的驗(yàn)證信息可以包括所用加密算法的標(biāo)識(shí)(或可替代地,實(shí)現(xiàn)加密算法的程序代碼)以及用作加密算法參數(shù)的秘密密鑰。在該情況中,過程 500可以執(zhí)行自己對(duì)于序列號(hào)和組ID的加密,并且在動(dòng)作520處將結(jié)果與第一安全值相比較。如果第一安全值與過程500生成的密文匹配,則可以認(rèn)為產(chǎn)品密鑰有效(至少臨時(shí)有效),并且該過程500可以繼續(xù)到動(dòng)作530,以處理可能的審計(jì)。另一方面,如果確定第一安全值不與過程500生成的密文相匹配,則過程500可以繼續(xù)到動(dòng)作525,以向發(fā)送激活請(qǐng)求的計(jì)算機(jī)通知所述激活請(qǐng)求已被拒絕。在通過使用秘密密鑰散列(hashing)序列號(hào)和組ID來生成第一安全值的另一個(gè)實(shí)施例中,過程500訪問的驗(yàn)證信息可以包括所用散列算法的標(biāo)識(shí)(或可替代地,實(shí)現(xiàn)該散列算法的程序代碼)以及在生成第一安全值的過程中被用作參數(shù)的秘密密鑰。然后,過程 500可以在動(dòng)作520處執(zhí)行自己對(duì)于序列號(hào)和組ID的散列處理,并且將結(jié)果與第一安全值相比較。如果第一安全值與過程500生成的序列號(hào)及組ID的散列相匹配,則可以認(rèn)為產(chǎn)品密鑰有效(至少臨時(shí)有效),并且該過程500可以繼續(xù)到動(dòng)作530,以處理可能的審計(jì)。另一方面,如果確定第一安全值不與過程500生成的序列號(hào)及組ID的散列相匹配,則過程500 可以繼續(xù)到動(dòng)作525,以向發(fā)送激活請(qǐng)求的計(jì)算機(jī)通知所述激活請(qǐng)求已被拒絕。如上所述,是否審計(jì)特定產(chǎn)品密鑰的決定可以采用各種不同的方式做出,例如通過隨機(jī)選擇和/或基于所感知的安全威脅等級(jí)。如果在動(dòng)作530處確定要審計(jì)產(chǎn)品密鑰, 則過程500可以繼續(xù)到動(dòng)作M0,以向?qū)徲?jì)機(jī)構(gòu)(例如圖2所示的增強(qiáng)的安全服務(wù)器250)傳送審計(jì)請(qǐng)求,并且在動(dòng)作545處接收審計(jì)響應(yīng)。如果審計(jì)成功,或者如果在動(dòng)作530處確定不必審計(jì),則過程500可以繼續(xù)到動(dòng)作535,以識(shí)別將要被授予的一個(gè)或多個(gè)許可并且將授予的許可通知發(fā)送激活請(qǐng)求的計(jì)算機(jī)。另一方面,如果審計(jì)失敗,則過程500可以繼續(xù)到動(dòng)作525,以向發(fā)送激活請(qǐng)求的計(jì)算機(jī)通知所述激活請(qǐng)求已被拒絕。參考圖6,該圖示出說明性過程600,該過程可以由審計(jì)機(jī)構(gòu)(例如圖2所示的增強(qiáng)的服務(wù)器250)響應(yīng)于從驗(yàn)證機(jī)構(gòu)(例如圖2所示的激活服務(wù)器140)接收審計(jì)請(qǐng)求而執(zhí)行。在本示例中,過程600始于接收審計(jì)請(qǐng)求的動(dòng)作605,該請(qǐng)求可以包括整個(gè)產(chǎn)品密鑰和/或產(chǎn)品密鑰的各種相關(guān)部分,例如圖3B所示的組ID、序列號(hào)、第一安全值和/或第二安全值。在動(dòng)作610處,過程600可以使用來自產(chǎn)品密鑰的一些標(biāo)識(shí)信息(例如組ID)來訪問與第二安全值相關(guān)的驗(yàn)證信息。例如,過程600可以使用在內(nèi)部編碼組ID的統(tǒng)一資源定位符(URL)來與驗(yàn)證信息的存儲(chǔ)器(例如圖2所示的存儲(chǔ)器260)進(jìn)行聯(lián)系。根據(jù)特定的實(shí)現(xiàn)方式,過程600可以提供附加證書信息以便訪問與第二安全值相關(guān)的驗(yàn)證信息。這種附加證書信息可能對(duì)前端驗(yàn)證機(jī)構(gòu)(例如圖2所示的可以直接從因特網(wǎng)訪問的激活服務(wù)器 140)而言是不可用的,使得即使在前端驗(yàn)證機(jī)構(gòu)的安全性受到破壞的情況下,與第二安全值相關(guān)的驗(yàn)證信息也可以保持安全。在獲得了相關(guān)驗(yàn)證信息的情況下,過程600可以繼續(xù)到動(dòng)作615,以分析第二安全值。例如,在通過使用秘密密鑰散列所述序列號(hào)和組ID生成第二安全值的實(shí)施例中,過程 600訪問的驗(yàn)證信息可以包括與所用散列算法的標(biāo)識(shí)(或可替代地,實(shí)現(xiàn)散列算法的程序代碼)以及作為散列算法參數(shù)使用的秘密密鑰。在該情況中,過程600可以執(zhí)行自己對(duì)于序列號(hào)和組ID的散列處理,并且在動(dòng)作620中將結(jié)果與第二安全值相比較??商娲?,過程600 訪問的驗(yàn)證信息可以包括隨機(jī)或偽隨機(jī)地生成的與序列號(hào)和/或組ID相關(guān)聯(lián)的值,在這種情況下,過程600可以簡單地將隨機(jī)或偽隨機(jī)生成的值與第二安全值相比較。
如果第二安全值匹配該散列值(作為驗(yàn)證信息的一部分被檢索或由過程600使用檢索到的驗(yàn)證信息生成),則可以認(rèn)為產(chǎn)品密鑰通過了審計(jì)機(jī)構(gòu)的驗(yàn)證,并且過程600可以繼續(xù)到動(dòng)作625,以向發(fā)送審計(jì)請(qǐng)求的驗(yàn)證機(jī)構(gòu)通知所述審計(jì)成功。否則,該過程600可以繼續(xù)到動(dòng)作630,以向驗(yàn)證機(jī)構(gòu)通知所述審計(jì)失敗。圖7示意性示出了可以實(shí)現(xiàn)本公開的各種不同發(fā)明方面的說明性計(jì)算機(jī)1000。 例如,在這種計(jì)算機(jī)上可以實(shí)現(xiàn)在這里為圖1-2中的產(chǎn)品密鑰生成服務(wù)器110、用戶計(jì)算機(jī) 130、激活服務(wù)器140以及增強(qiáng)的安全服務(wù)器250描述的任何功能。計(jì)算機(jī)1000包括處理器或處理單元1001以及存儲(chǔ)器1002,該存儲(chǔ)器可以包括易失性和/或非易失性存儲(chǔ)器。除了系統(tǒng)存儲(chǔ)器1002之外,計(jì)算機(jī)1000還可以包括存儲(chǔ)裝置1005 (例如一個(gè)或多個(gè)盤驅(qū)動(dòng)器)。存儲(chǔ)器1002可以存儲(chǔ)一個(gè)或多個(gè)指令,以對(duì)處理單元1001進(jìn)行編程來執(zhí)行這里描述的任何功能。存儲(chǔ)器1002還可以存儲(chǔ)一個(gè)或多個(gè)應(yīng)用程序和/或應(yīng)用編程接口(API)函數(shù)。計(jì)算機(jī)1000可以具有一個(gè)或多個(gè)輸入設(shè)備和/或輸出設(shè)備,例如圖7所示的設(shè)備 1006和1007。其中,這些設(shè)備可以尤其用于呈現(xiàn)用戶接口??捎糜谔峁┯脩艚涌诘妮敵鲈O(shè)備的示例包括用于視覺輸出呈現(xiàn)的打印機(jī)或顯示屏或用于聽覺輸出呈現(xiàn)的揚(yáng)聲器或其他聲音生成設(shè)備??捎糜谟脩艚涌诘妮斎朐O(shè)備的示例包括鍵盤和指示設(shè)備,例如鼠標(biāo)、觸摸板和數(shù)字化板。另舉一例,計(jì)算機(jī)可以通過語音識(shí)別或以其他可聽格式來接收輸入信息。如圖7所示,計(jì)算機(jī)1000還可以包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口(例如網(wǎng)絡(luò)接口 1010), 以便能夠經(jīng)由各種不同的網(wǎng)絡(luò)(例如網(wǎng)絡(luò)1020)來進(jìn)行通信。網(wǎng)絡(luò)的示例包括局域網(wǎng)或廣域網(wǎng),例如企業(yè)網(wǎng)或因特網(wǎng)。此類網(wǎng)絡(luò)可以基于任何適當(dāng)?shù)募夹g(shù),并且可以依照任何適當(dāng)?shù)膮f(xié)議工作,并且可以包括無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或光纖網(wǎng)絡(luò)。在如此描述本發(fā)明的至少一個(gè)實(shí)施例的若干方面之后,應(yīng)當(dāng)理解,本領(lǐng)域技術(shù)人員將很容易想到各種不同的改變、修改和改進(jìn)。這些改變、修改和改進(jìn)被預(yù)期是本公開的一部分,并且預(yù)期在本發(fā)明的精神和范圍內(nèi)。相應(yīng)地,以上描述和附圖僅僅作為示例。本發(fā)明的上述實(shí)施例可以采用多種方式中的任何一種來實(shí)現(xiàn)。例如,這些實(shí)施例可以使用硬件、軟件或是其組合來實(shí)現(xiàn)。在使用軟件實(shí)現(xiàn)時(shí),軟件代碼可以在任一適當(dāng)?shù)奶幚砥骰蛱幚砥骷仙蠄?zhí)行,無論所述處理器是在單個(gè)計(jì)算機(jī)上提供還是分布于多個(gè)計(jì)算機(jī)之間。此外,這里概述的各種不同的方法或過程可被編碼成可在使用了多種操作系統(tǒng)中任意一種的一個(gè)或多個(gè)處理器或平臺(tái)上執(zhí)行的軟件。此外,此類軟件可以用多種適當(dāng)?shù)木幊陶Z言和/或編程或腳本工具中任意一種來編寫,并且還可被編譯成在主機(jī)或虛擬機(jī)上執(zhí)行的可執(zhí)行機(jī)器語言代碼或中間代碼。在這個(gè)方面,本發(fā)明可以體現(xiàn)為使用了一種或多種程序編碼的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)(或多個(gè)計(jì)算機(jī)可讀介質(zhì))(例如計(jì)算機(jī)存儲(chǔ)器、一個(gè)或多個(gè)軟盤、壓縮盤、光盤、磁帶、 閃速存儲(chǔ)器、現(xiàn)場(chǎng)可編程門陣列或其他半導(dǎo)體設(shè)備中的電路配置、或其他非瞬時(shí)的有形的計(jì)算機(jī)存儲(chǔ)介質(zhì)),所述程序在一個(gè)或多個(gè)計(jì)算機(jī)或其他處理器上執(zhí)行時(shí),所述程序?qū)?huì)執(zhí)行實(shí)現(xiàn)如上所述的本發(fā)明的各種不同的實(shí)施例的方法。一種或多種計(jì)算機(jī)可讀介質(zhì)可以是可傳送的,使得其上存儲(chǔ)的一個(gè)或多個(gè)程序可被載入一個(gè)或多個(gè)不同計(jì)算機(jī)或其他處理器中,以便實(shí)現(xiàn)如上所述的本發(fā)明的各種不同的方面。
這里使用的術(shù)語“程序”或“軟件”在一般意義上是指可以用于對(duì)計(jì)算機(jī)或其他處理器進(jìn)行編程以實(shí)現(xiàn)如上所述的本發(fā)明的各種不同的方面的任何類型的計(jì)算機(jī)代碼或計(jì)算機(jī)可執(zhí)行指令集。此外,應(yīng)當(dāng)理解,根據(jù)本發(fā)明的一個(gè)方面,在被執(zhí)行時(shí)執(zhí)行本發(fā)明的方法的一個(gè)或多個(gè)計(jì)算機(jī)程序不必駐留在單個(gè)計(jì)算機(jī)或處理器上,而是可以采用模塊化的方式分布在多個(gè)不同的計(jì)算機(jī)或處理器中,以便實(shí)現(xiàn)本發(fā)明的各種不同的方面。計(jì)算機(jī)可執(zhí)行指令可以采用多種由一個(gè)或多個(gè)計(jì)算機(jī)或其他設(shè)備執(zhí)行的形式,例如程序模塊。一般來說,程序模塊包括執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型的例程、 程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。典型地,在各種不同的實(shí)施例中可以根據(jù)需要來組合和分布程序模塊的功能。此外,數(shù)據(jù)結(jié)構(gòu)可以通過任何適當(dāng)?shù)男问蕉淮嫒胗?jì)算機(jī)可讀介質(zhì)。為了簡化說明,數(shù)據(jù)結(jié)構(gòu)可被示出為具有通過數(shù)據(jù)結(jié)構(gòu)中的位置來進(jìn)行關(guān)聯(lián)的字段。這種關(guān)系同樣可以通過為用于字段的存儲(chǔ)裝置分配計(jì)算機(jī)可讀介質(zhì)中在字段之間傳遞關(guān)系的位置來實(shí)現(xiàn)。 但是,任何適當(dāng)?shù)臋C(jī)制均可用于在數(shù)據(jù)結(jié)構(gòu)的字段中的信息之間建立關(guān)系,這其中包括通過使用在數(shù)據(jù)元素之間建立關(guān)聯(lián)的指針、標(biāo)簽或其他機(jī)制。本發(fā)明的各種不同方面既可以單獨(dú)使用,也可以組合使用,或者采用上述實(shí)施例中沒有具體討論的多種設(shè)置使用,并且因此本發(fā)明并不僅限于被應(yīng)用于上文的描述闡述的或在附圖中圖示的細(xì)節(jié)和組件設(shè)置。例如,在一個(gè)實(shí)施例中描述的方面可以采用任何方式與其他實(shí)施例中的方面組合。此外,本發(fā)明可以體現(xiàn)為方法,并且已經(jīng)提供了所述方法的示例。作為方法一部分執(zhí)行的動(dòng)作可以采用任何適當(dāng)?shù)姆绞脚判?。相?yīng)地,所述實(shí)施例可以被構(gòu)造成其中的動(dòng)作以與所示出的順序不同的順序來執(zhí)行,其可以包括同時(shí)執(zhí)行某些動(dòng)作,即使這些動(dòng)作在說明性實(shí)施例中被顯示成順序動(dòng)作。在權(quán)利要求中使用了例如“第一”、“第二”、“第三”等之類的順序術(shù)語來修改權(quán)利要求要素,但這本身并不意味著任何優(yōu)先級(jí)、優(yōu)先權(quán)、一個(gè)權(quán)利要求要素超出另一個(gè)要素的順序或是執(zhí)行方法動(dòng)作的時(shí)間順序,而是僅僅用作標(biāo)簽來將具有某個(gè)名稱的一個(gè)權(quán)利要求要素與另一個(gè)具有相同名稱的要素區(qū)分開來(而不是用于順序術(shù)語),以便區(qū)分所要保護(hù)的元素。此外,這里使用的措辭和術(shù)語是用于描述目的,而不應(yīng)該將其視為限制。這里使用的“包括”、“包含”、“具有”、“涉及”及其不同變體意指包含了其后列舉的項(xiàng)目,及其等價(jià)物和附加項(xiàng)目。
權(quán)利要求
1.一種用于驗(yàn)證產(chǎn)品密鑰(350)的系統(tǒng)(200),包括至少一個(gè)處理器(140),該處理器被配置成訪問產(chǎn)品密鑰(350),該產(chǎn)品密鑰包括用于識(shí)別軟件產(chǎn)品的至少一個(gè)拷貝的標(biāo)識(shí)信息 (360,362,370 ),該產(chǎn)品密鑰(350 )還包括與標(biāo)識(shí)信息(360,362,370 )相關(guān)聯(lián)的安全信息 (364,366);使用至少一些標(biāo)識(shí)信息(360,362,370 )來訪問來自除了產(chǎn)品密鑰(350 )之外的至少一個(gè)來源的驗(yàn)證信息;以及使用該驗(yàn)證信息來處理標(biāo)識(shí)信息(360,362,370)和安全信息(364,366),以便確定產(chǎn)品密鑰(350)是否有效。
2.權(quán)利要求1的系統(tǒng)(200),其中安全信息(364,366)包括第一部分(364)和第二部分 (366 ),并且其中至少一個(gè)處理器(140 )還被配置成將安全信息的第二部分(366 )傳送到至少一個(gè)其他處理器(250)以供驗(yàn)證。
3.權(quán)利要求2的系統(tǒng)(200),其中驗(yàn)證信息是第一驗(yàn)證信息,并且其中至少一個(gè)其他處理器(250)被配置成至少部分基于標(biāo)識(shí)信息(360,362,370)來訪問第二驗(yàn)證信息;以及使用第二驗(yàn)證信息來核實(shí)安全信息的第二部分(366),其中第二驗(yàn)證信息不同于第一驗(yàn)證信息。
4.權(quán)利要求1的系統(tǒng)(200),其中產(chǎn)品密鑰(350)包括與軟件產(chǎn)品的至少一個(gè)拷貝相關(guān)聯(lián)的序列號(hào)(362)以及不同于序列號(hào)(362)的附加標(biāo)識(shí)信息(360),并且其中附加標(biāo)識(shí)信息 (360)被用于訪問驗(yàn)證信息。
5.權(quán)利要求4的系統(tǒng)(200),其中附加標(biāo)識(shí)信息(360)識(shí)別從包含下列各項(xiàng)的群組中選出的至少一項(xiàng)軟件產(chǎn)品的類型;軟件產(chǎn)品的版本;軟件產(chǎn)品所屬的軟件產(chǎn)品序列;以及用以分發(fā)軟件產(chǎn)品拷貝的渠道。
6.一種用于生成產(chǎn)品密鑰(350)的方法,包括以下動(dòng)作訪問用于識(shí)別軟件產(chǎn)品的至少一個(gè)拷貝的標(biāo)識(shí)信息(360,362,370 );生成與標(biāo)識(shí)信息(360,362,370)相關(guān)聯(lián)的安全信息(364,366);至少部分基于安全信息(364,366)和標(biāo)識(shí)信息(360,362,370)來生成產(chǎn)品密鑰(350);以及在至少一個(gè)存儲(chǔ)設(shè)備中存儲(chǔ)與至少一些標(biāo)識(shí)信息(360,362,370)相關(guān)聯(lián)的驗(yàn)證信息, 所述驗(yàn)證信息在處理安全信息(364,366)的過程中被用于驗(yàn)證產(chǎn)品密鑰(350)。
7.權(quán)利要求6的方法,其中安全信息(364,366)包括第一部分(364)和第二部分 (366),并且驗(yàn)證信息是第一驗(yàn)證信息,以及其中該方法還包括以下動(dòng)作在至少一個(gè)存儲(chǔ)設(shè)備中存儲(chǔ)與至少一些標(biāo)識(shí)信息(360,362,370)相關(guān)聯(lián)的第二驗(yàn)證信息,所述第二驗(yàn)證信息在處理安全信息中的第二部分(366)的過程中被用于驗(yàn)證產(chǎn)品密鑰 (350),所述第一和第二驗(yàn)證信息分別可以從至少一個(gè)存儲(chǔ)設(shè)備訪問。
8.權(quán)利要求6的方法,其中生成安全信息(364,366)的動(dòng)作包括基于標(biāo)識(shí)信息(360,·362,370)的至少一部分來生成至少一個(gè)散列值,并且其中該驗(yàn)證信息包括所述至少一個(gè)散列值。
9.權(quán)利要求6的方法,其中生成安全信息(364,366)的動(dòng)作包括使用至少一種加密算法以及至少一個(gè)秘密密鑰來加密標(biāo)識(shí)信息(360,362,370)的至少一部分,以及其中該驗(yàn)證信息包括至少一個(gè)秘密密鑰以及所述至少一種加密算法的標(biāo)識(shí)。
10.權(quán)利要求6的方法,其中標(biāo)識(shí)信息(360,362,370)包括與軟件產(chǎn)品的至少一個(gè)拷貝相關(guān)聯(lián)的序列號(hào)(362)以及不同于序列號(hào)(362)的附加標(biāo)識(shí)信息(360,370),并且其中驗(yàn)證信息以與附加標(biāo)識(shí)信息(360,370)關(guān)聯(lián)的方式被存儲(chǔ)。
全文摘要
用于生成和驗(yàn)證產(chǎn)品密鑰的系統(tǒng)、方法和設(shè)備。在一些實(shí)施例中,產(chǎn)品密鑰包括安全信息和用于識(shí)別軟件產(chǎn)品的至少一個(gè)拷貝的標(biāo)識(shí)信息。該標(biāo)識(shí)信息可以用于訪問來自除了產(chǎn)品密鑰之外的至少一個(gè)來源的驗(yàn)證信息,并且該驗(yàn)證信息可被用于處理標(biāo)識(shí)信息和安全信息,以便確定產(chǎn)品密鑰是否有效。在其他的一些實(shí)施例中,安全信息包括要由第一驗(yàn)證機(jī)構(gòu)使用第一驗(yàn)證信息處理的第一部分,以及要由第二驗(yàn)證機(jī)構(gòu)使用第二驗(yàn)證信息處理的第二部分,其中第二驗(yàn)證信息與第一驗(yàn)證信息分離地存儲(chǔ)。
文檔編號(hào)G06F21/22GK102426640SQ20111036780
公開日2012年4月25日 申請(qǐng)日期2011年11月18日 優(yōu)先權(quán)日2010年11月19日
發(fā)明者岡亞基 C., D. 貝納羅 J., P. 哈克 J., G. 托謝夫 K., J. 萊森 T., 索拉米 T. 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
庆元县| 葵青区| 罗源县| 宝丰县| 原平市| 五家渠市| 瑞安市| 横山县| 南昌县| 塔河县| 清水河县| 湖口县| 沾益县| 宜春市| 辽阳市| 高邮市| 天津市| 乐至县| 平利县| 重庆市| 万宁市| 呼图壁县| 砚山县| 汾阳市| 塘沽区| 贵南县| 太湖县| 鲁甸县| 宁都县| 富源县| 台前县| 崇礼县| 静安区| 小金县| 留坝县| 井研县| 林甸县| 衡阳市| 靖宇县| 五寨县| 泾阳县|