專利名稱:激活系統(tǒng)體系結構的制作方法
激活系統(tǒng)體系結構
背景
可購買各種形式的計算機軟件,諸如計算機可讀介質。用戶隨后可將該軟件安裝在其計算機系統(tǒng)上。很容易復制相同的所購買的軟件副本并且安裝在多個機器上。軟件產品廠商可能想要根據(jù)用戶的許可證的范圍來控制對所購買的軟件產品的每一個副本的使用,例如不允許在多于一個的計算機系統(tǒng)上使用相同的所購買的副本。為了根據(jù)購買者的許可證條款控制對所購買的軟件產品的副本的使用,可使用不同的技術。 一種現(xiàn)有技術包括要求在安裝之后激活該軟件產品以便使用褒安裝的軟件。為了激活目的,可在每一個購買者的軟件產品的副本中包括由字母和/或數(shù)字組成的產品密鑰。在每一個購買者的軟件產品的副本中可包括不同的產品密鑰。在用戶將軟件安裝在計算機上之后,生成一個
硬件標識符。該硬件標識符可以被稱為其上安裝了該軟件的用戶計算機的"指紋"??墒褂糜脩粲嬎銠C的多個硬件屬性來產生硬件標識符。作為激活過程的一部分,用戶用產品密鑰注冊硬件標識符。將該硬件標識符與產品密鑰相關聯(lián)并且可使用該硬件標識符來跟蹤和控制對同一所購買的副本的后續(xù)激活。例如,相同的所購買的軟件副本可安裝在兩個各自具有不同硬件標識符的計算機系統(tǒng)上。可針對這些計算機系統(tǒng)中具有第一硬件標識符的第一計算機系統(tǒng)來完成激活。用戶可嘗試激活該軟件以便在第二計算機系統(tǒng)上使用。如果許可證條款僅允許所購買的軟件副本在單個計算機系統(tǒng)上激活,則針對第二計算機的激活過程會失敗。作為在第二計算機上激活該軟件的一部分,確定具有該產品密鑰的軟件已經在具有第一硬件標識符的第一計算機上激活。
概述
提供本概述以便用簡化形式介紹在下面的詳細描述中進一步描述的一些概念。本概述不是旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用f幫助確定所要求保護的主題的范圍。
本文描述用于為許可目的激活軟件的技術。生成包含一個或多個描述該軟件的許可證特性的權利的權利證書。這一個或多個權利是根據(jù)有關該軟件的第一信息來確定的。生成根據(jù)包含在該軟件的一個或多個權利中的綁定類型綁定證書。該綁定證書標識該許可證所綁定的實體。生成根據(jù)該綁定證書和該權利證書的許可證。
附圖描述
通過結合附圖閱讀下面的示例性實施例的詳細描述,本發(fā)明的特征和優(yōu)點將變得更顯然,這些附圖是-
圖1是例示可結合本文所述技術使用的環(huán)境的實施例的示例;
圖2是其中可包括圖1的設備的組件的實施例的示例;
圖3是可結合在線激活處理使用的組件的實施例的示例;
圖3A是權利數(shù)據(jù)庫的示例表示;
圖4是可包含在權利證書內的信息的示例;
圖5是可結合在線激活處理由許可證服務執(zhí)行的處理步驟的流程圖;圖6是可結合在具有存儲在其上的許可證的設備上啟動軟件來執(zhí)行的處理步驟的流程圖6A是許可證數(shù)據(jù)庫的示例表示;
圖7是可結合離線激活處理使用的組件的實施例的示例;圖8是安裝標識符的示例;
圖9是例示離線激活服務(OAS)如何解析安裝標識符的示例;圖10是可結合生成確認標識符由OAS執(zhí)行的處理步驟的流程圖;圖ll是確認標識符的示例;
圖12是可結合在設備上啟動軟件來執(zhí)行的處理步驟的流程圖;以及圖13是可結合使用與在先已經執(zhí)行了的離線激活處理相關聯(lián)的信息而在設備上啟動軟件來執(zhí)行的處理步驟的流程圖。
詳細描述
現(xiàn)在參考圖1,所示的是在其中可實現(xiàn)使用本文所述技術的實施例的合適計算環(huán)境。圖l所示的計算環(huán)境僅是合適計算環(huán)境的一個示例,并不旨在對在本文結合允許軟件產品為了許可目的而被激活而描述述的技術的使用范圍和
7功能提出任何限制。本文的技術可使用權利服務、可選的綁定服務和許可證服務以建立與由用戶安裝的軟件包相關聯(lián)的權限和任何發(fā)放的許可證被要求綁定的身份。結合在線激活模式,許可證服務可發(fā)放許可證,在每次調用為其發(fā)放這個許可證的軟件時要驗證該許可證。結合離線激活模式,可向用戶提供確認標識符,用于在每次調用為其發(fā)放該許可證的軟件時結合用于驗證的其它信息來使用。
、可在由一個或多個計算機或其它設備執(zhí)行的計算機可執(zhí)行指令諸如程序模塊的一般上下文中描述本文所述的技術。 一般而言,程序模塊包括執(zhí)行特定任務或者實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等等。一般可按需在各種實施例中組合或分布各程序;漠塊的功能。本領域的技術人員將會理解,本文所述的技術適合于與其它通用或專用計算環(huán)境或配置一起使用。眾所周知的計算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于,個人計算機、服務器計算機、手持或膝上型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費電子產品、網絡PC、無線設備諸如蜂窩電話、PDA、小型計算機、大型計算機、包括任何上述系統(tǒng)或設備的分布式計算環(huán)境等等。
圖1中包括的是設備12、網絡14和服務器15。例如,設備12可以是計算機諸如個人計算機,具有用于與其用戶交互I/O的顯示輸出設備和輸入設備。在下面的段落中,對設備12提供其它細節(jié)。然而,在一實施例中,相同的細節(jié)也可應用于一個或多個可連接至網絡14的其它設備。盡管圖1的示例10僅包括單個設備和單個服務器,但使用本文所述技術的實施例可包括任何數(shù)量的
設備和其它組件。
圖1包括的設備12是示例性的,為了例示在本文結合軟件組件所述的技術。在一個實施例中,提供本文所述的功能的任何設備12可被包括在實施例中。設備12可包括用于執(zhí)行包含在一個或多個程序模塊中的代碼的處理器。在本文其它地方更詳細描述的是可由設備12結合本文所述技術執(zhí)行的程序模塊。設備12可在網絡化環(huán)境中運行并且與服務器15和圖1未示出的其它計算機或者組件通信。如本文所述,設備12可以是個人計算機。在其它實施例中,根據(jù)使用設備12的特定實施例,設備12的功能或者設備12本身可被包括在另一個組件中。如將在下面的段落中更詳細地描述地,軟件可被安裝在設備12上,該軟件需要在使用之前激活。本文所述的技術可用于激活在設備12上安裝的軟件。
結合在下面的段落中更詳細地描述的在線激活模式,設備12可與服務器15的一個或多個服務通信以便激活安裝在設備12上的軟件。在線激活模式是當設備12具有與一個或多個為產品激活提供服務的服務器的連接時可為使用而激活已安裝的軟件的一種方式。
本領域的技術人員將會理解,盡管設備12在該示例中被示為在網絡化環(huán)境中通信,但設備12可利用不同通信介質與其它組件通信。例如,設備12可利用網絡連接和/或本領域已知的其它類型的鏈接來與一個或多個組件通信,這些鏈接包括但不限于因特網、內聯(lián)網、或者其它與服務器15和/或其它組件的無線和/或硬連線連接。
應當注意,盡管設備12被例示為具有與服務器15的網絡連通性,但本文所述的技術可結合不通過網絡而直接連接至服務器15的設備來使用。此外,還應當注意,設備12還可在沒有與服務器的連通性的獨立模式中操作。在這些實例中,安裝在設備12上的軟件可使用離線激活模式來激活,這在下面的段落中更詳細地描述。
現(xiàn)在參考圖2,所示的是可包括在設備12中并可結合執(zhí)行本文所述技術的各種實施例來使用的組件的示例。設備12可包括一個或多個處理單元20、存儲器22、網絡接口單元26、存儲30、 一個或多個其它通信連接24、以及用于促進設備12的組件之間的通信的系統(tǒng)總線32。
取決于用戶設備12的配置和類型,存儲器22可以是易失性(諸如RAM)、非易失性(諸如ROM、閃存存儲器等)或者這兩者的某種組合。另外,設備12還可具有其它特征/功能。例如,設備12還可包括其它存儲(可移動和/或不可移動),這包括但不限于USB設備、磁或光盤或帶。這樣的其它存儲在圖2中由存儲30例示。圖2的存儲30可包括一個或多個具有可由設備12使用的相關聯(lián)的計算機可讀介質的可移動和不可移動存儲設備。在一個實施例中,存儲30可以是與為設備12提供非易失性存儲的計算機可讀介質相關聯(lián)的大容量存儲設備。盡管如在該示例中例示的計算機可讀介質的描述可參考大容量存儲設備諸如硬盤或CD-ROM驅動器,但本領域技術人員將會理解,計算
9機可讀介質可以是可由設備12訪問的任何可用介質。
作為示例而非限制,計算機可讀介質可包括計算機存儲介質和通信介質。
存儲器22以及存儲30是計算機存儲介質的示例。計算機存儲介質包括以存儲 諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)的信息的任何方法或技 術實現(xiàn)的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括但 不限于,RAM、 ROM、 EEPROM、閃存存儲器或其它存儲器技術、CD-ROM、 (DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設備,或者任 何可用于存儲所需信息并且可由設備12訪問的其它介質。
設備12還可包括通信,連接24,其允許計算機與其它設備和組件諸如作為 示例的輸入設備和輸出設備通信。這些和其它設備在本領域中是眾所周知的并 且不需要在此詳細討論。
在一個實施例中,設備12可使用通過網絡至遠程計算機的邏輯連接在如 圖1所示的網絡化環(huán)境中操作。設備12可通過連接至總線32的網絡接口單元 26連接至圖1的網絡14。網絡接口單元26也可結合其它類型的網絡和/或遠程 系統(tǒng)和組件使用。
一個或多個程序模塊和/或數(shù)據(jù)文件可包括在存儲30中。在設備12的操 作期間,包括在存儲30中的這些元素中的一個或多個也可駐留在存儲器22的 一部分中,諸如例如存儲在用于控制用戶計算機12的運行的RAM中。圖2 的示例例示各種組件,包括操作系統(tǒng)40、 一個或多個應用程序46、安裝和激 活軟件50、和其它組件、輸入和/或輸出48。
應用程序46可以是由用戶安裝在設備12上的軟件。 一旦應用程序46已 經被安裝,則它可以被激活以便允許該應用程序執(zhí)行。作為激活過程的結果, 獲得驗證數(shù)據(jù)以便結合驗證啟動該程序的后續(xù)嘗試是否遵從許可條款來使用。 所使用的驗證數(shù)據(jù)可隨著具體激活模式而改變。在一個實施例中,可使用兩種 不同激活模式之一來執(zhí)行激活過程,即在上面簡述并且在下面更詳細地描述的 在線激活模式和離線激活模式。每一模式可產生不同的驗證數(shù)據(jù)供在設備12 上使用。當設備12具有與服務器15的連通性時可使用在線激活模式。作為在 線激活模式的結果生成的驗證數(shù)據(jù)可包括電子形式的許可證。該許可證^X由服 務器15生成并且被傳送至設備12。該許可證可存儲在設備12上并且可結合應用程序的每次后續(xù)啟動來使用。關于離線激活模式,設備12未通過與服務器 15的連接獲得驗證數(shù)據(jù)。關于離線激活模式,設備12可不連接至任何網絡并 且可以獨立運行。驗證數(shù)據(jù)可包括通過其它通信介質獲得的信息,諸如例如通 過與采用顧客服務代表(CSR)或交互式語音識別(IVR)系統(tǒng)進行通信的用 戶的電話來獲得。作為離線模式激活過程的結果獲得的這些驗證數(shù)據(jù)可包括通 過除計算機網絡以外的電話或者替換通信介質獲得的確認標識符。可諸如通過
在設備12上人工數(shù)據(jù)輸入來輸入驗證數(shù)據(jù),并且存儲該驗證數(shù)據(jù)用于在啟動 應用程序46時設備12上的后續(xù)使用。
設備12還包括結合根據(jù)本文所述技術安裝和激活軟件來使用的安裝和激 活軟件50。組件50還可包括結合每一次程序啟動或調用所使用的軟件。每當 調用程序46時,'組件50可執(zhí)行驗證處理以確保遵從許可證或者根據(jù)所使用的 具體激活模式先前獲得的其它驗證數(shù)據(jù)。
操作系統(tǒng)40可以是各種市場上可購買的或者私有操作系統(tǒng)中的任何一 個。例如,可結合控制設備12的操作將操作系統(tǒng)40加載到存儲器中。
應當注意,圖1的服務器15可包括一個或多個具有與結合圖2所述的那 些組件相似的組件。在下面的段落中更詳細地描述可包括在服務器15中用于 本文所述的激活技術的不同服務或者模塊。
現(xiàn)在參考圖3,所示的是可結合本文所述的用于在線激活模式的激活技術 使用的組件的示例。如上所述,在線激活模式允許在計算機102連接至服務器 15時進行對在計算機102上的安裝軟件的激活。包括在圖3中的是權利服務 (ES) 104、綁定服務(BS) IIO和許可證服務(LS) 120。在一個實施例中, 組件104、 IIO和120全部可以被包括在單個服務器中。另選地,本領域技術 人員將會理解,服務104、 110和120中的一個或多個可位于與計算機102通 信的不同服務器上。
可在計算機或其它設備102上安裝軟件之后開始激活過程。作為安裝對話 的一部分,可向用戶提示是否要執(zhí)行激活處理。在提供多種激活模式的實施例 中,還可向用戶提示以選擇可能的激活模式之一,諸如在線激活模式。在選擇 了在線激活模式后,計算機102可開始進行現(xiàn)在將描述的在線激活過程的處理。 結合執(zhí)行在線激活過程,計算機102可聯(lián)系服務器上的每一個服務104、 110和120。有關服務器地址諸如因特網地址以及連接至服務器和適當?shù)姆账?的其它數(shù)據(jù)的信息可被包括在組件50中或者以其它方式傳送至組件50。作為 正在為其執(zhí)行激活的軟件的安裝結果,組件50可位于計算機102上。ES、 BS 和/或LS每一個的位置諸如因特網地址可隨組件50包括。這樣的信息可被合 并到組件50的軟件的數(shù)據(jù)文件或者編碼部分中。如在下面的段落中所描述地, 可使用其它手段傳送這些服務中的一個或多個的位置。例如,ES可提供要使 用的LS的因特網地址。
計算機102可聯(lián)系ES 104。計算機102可向ES 104發(fā)送購買令牌和包信 息106并且接收權利證書(EC) 108。購買令牌和包信息可被存儲在計算機102 上,供在啟動正在為其執(zhí)行激活處理的應用程序或者其它軟件時的后續(xù)處理來 使用。
ES 104基于購買令牌和包信息106確定什么權限或權利與在計算機102 上已安裝的軟件相關聯(lián)。購買令牌可以是與正在為其執(zhí)行激活的安裝在計算機 102上的所購買的軟件副本一起接收的產品密鑰。購買令牌可以是用于區(qū)別或 區(qū)分所購買的同一軟件產品的不同副本的字母數(shù)字和/或其它字符串。所購買的 軟件產品諸如文字處理程序的每一副本可包括用于安裝在計算機上的相同軟 件。購買令牌可用于區(qū)分所購買的這些副本。例如,可在與所購買的軟件包括 在一起的標簽或其它紙上提供購買令牌??稍诩せ钪白鳛榘惭b對話的一部分 向用戶提示輸入購買令牌。例如,購買令牌可以是包括在軟件產品的熱縮塑料 包裝上的信息。購買令牌可包括5位產品編碼、表示軟件產品的制造者的地址 的3位場所值、和隨著所制造的產品的每一實例t遞增的7位序號。例如,包 信息可以是標識軟件產品的信息,諸如用于通過名字來標識軟件產品以區(qū)別該 軟件產品與可能的其它軟件產品的字母數(shù)字和/或其它字符串??捎砂惭b軟件提 供包信息來用于激活。另選地,可在激活之前提示用戶輸入如可與軟件產品的 購買令牌一起包括的包信息。
基于購買令牌和包信息106, ES 104確定在計算機102上的已安裝軟件的 權限或權利。ES 104可使用購買令牌和包信息106來檢索權利數(shù)據(jù)庫104a以 獲得對應的權利。這些權利表示許可證的屬性或者許可證特性,諸如許可證條 款和條件以及與許可證的條款和條件有關的其它方面。例如,權利使用屬性來
12描述許可證的各種條款和條件,諸如許可證有效期和/或起始日期和有多少計算 機可以執(zhí)行該同一軟件副本,以及諸如許可證的類型和綁定類型的有關方面。 在下面的段落中更詳細地描述上述類型的權利的每一個等。
參考圖3A,所示的是權利數(shù)據(jù)庫的示例表示。示例150例示如何使用購 買令牌和/或包信息156來索引數(shù)據(jù)庫154以獲得對應的一個或多個權利152。 作為進一步的說明,該數(shù)據(jù)庫可將包括在列160中的包信息用為第一索引。可 在邏輯上組織該數(shù)據(jù)庫,使得每一產品的權利如166a所示地被分組在一起。 在該示例中,在166a中包括具有第一包信息集合即包信息1的每一產品。每 一產品可具有一個或多個相關聯(lián)的購買令牌的范圍,在數(shù)據(jù)庫中可包括針對這
些購買令牌的一個或多個權利的集合。例如,包信息1可具有被包括在列164 中的第一權利集合即權利集合1,它用于列162的第一購買令牌即購買令牌1。 購買令牌1可用作權利數(shù)據(jù)庫的第二索引來獲得權利集合1。數(shù)據(jù)154還可在 列162中指定為其檢索權利集合的購買令牌的范圍。例如,如果購買令牌處于 由"購買令牌2..購買令牌m"指定的范圍內,則可使用列164的第二權利集合 即權利集合2。
這些權利可表示許可證的類型。不同許可證類型的示例可包括但不限于 永久的、基于試用的許可證、訂閱、和按使用或使用次數(shù)許可證?;谠囉玫?許可證可以是用于一段預定義的時間諸如30天的許可證。訂閱許可證也可以 是用于一段預定義的時間或時期的基于時間的許可證。對于訂閱許可證,可結 合在應用程序啟動或調用時間執(zhí)行的處理步驟來向用戶給予/提示續(xù)展許可證 的機會。使用次數(shù)許可證表示可啟動或調用軟件產品進行執(zhí)行的次數(shù)。
權利可表示總許可證有效期,因此不管許可證的類型,該許可證都會在一 個確定的日期期滿。例如,軟件可以是現(xiàn)場測試版本并且在一特定日期之后不 能使用,而不管許可證時間段是在何時開始的。作為另一個示例,軟件產品可 以是電子百科全書或者包含注明日期的信息的其它項目,使得該許可證會在一 確定的日期期滿,到該日期就認為該信息過期了。權利還可表示起始或開始曰 期,例如,用于僅可從一特定起始日期起使用的軟件。
權利可表示可在多少計算機系統(tǒng)上激活軟件。例如,用熱縮塑料包裝的軟 件可以是單用戶許可證,因此所安裝的軟件的每一副本只可在一臺計算機上激活。如將結合許可證服務器120描述地,可使用這樣的屬性使得在不同計算機 上激活同一軟件副本的后續(xù)嘗試失敗。應當注意,該權利也可被稱為表示可能 的激活綁定的數(shù)量。如在本文其它地方更詳細地描述地,激活綁定是指結合軟 件產品的激活將許可證綁定到綁定實體的實例的時候。
權利可表示可使用的綁定的一種或多種類型。結合激活服務,為購買令牌 生成的許可證被綁定到特定的綁定類型實例。權利可表示可綁定許可證的綁定 的一種或多種類型。在一個實施例中,可表示的不同可能的綁定類型包括硬件 標識符、用戶認證信息、USB密鑰標識符、和可信平臺模塊(TPM)??蔀榧?活綁定發(fā)放不同的許可證,隨后可將它綁定于一綁定類型的特定實例。
硬件標識符綁定類型的實例是描述其上安裝了正在為其執(zhí)行激活處理的 軟件的計算機的硬件的硬件標識符。硬件標識符可被稱為計算機的硬件"指
紋",它基于其上安裝了該軟件的計算機或其它設備的特定硬件。硬件標識符 可以是多位值。這個多位值的一個或多個位的每一分組可以根據(jù)計算機或其它 設備的不同硬件組件來確定。例如,硬件標識符中的一個或多個位可從計算機 網卡的全局地址來導出。例如,硬件標識符中的其它位可從其它硬件組件導出, 諸如硬盤驅動器的序號、RAM的字節(jié)數(shù)等。例如在Pearce等人授權公告日為 2001年6月5日的、題為SOFTWARE ANTI-PIRACY SYSTEM THAT ADAPTS TO HARDWARE UPGRADES(適于硬件升級的軟件防盜版系統(tǒng))的美國專利 No.6,243,468中更詳細地描述了生成硬件標識符。 一實施例也可使用其它技術, 諸如Gunyakti等人在2004年9月9日公開的、題為COMPACT HARDWARE IDENTIFICATION FOR BINDING A SOFTWARE PACKAGE TO A COMPUTER SYSTEM HAVING TOLERANCE FOR HARDWARE CHANGES(具有針對硬件變化的容忍度的用于將軟件包綁定到計算機系統(tǒng)的 緊湊硬件標識)的美國公開No.2004/0177354號(美國專利申請No. 10/378,294, 2003年3月3日提交)。硬件標識符的大小在實施例中可以改變。例如, 一實 施例可使用32位或更長的的硬件標識符。
硬件標識符用于標識特定的計算機系統(tǒng)并且按需將一個計算機系統(tǒng)與另 一個區(qū)別開來以限制軟件盜版。不同的硬件標識符表示標識符所基于的底層硬 件組件以某種方式不同,如可以是不同的計算機系統(tǒng)的情形。在這些情形中,當基于一購買令牌的現(xiàn)有許可證已經被綁定到一個硬件標識符時,可檢測出將 基于同一購買令牌的許可證綁定到另一個硬件標識符的嘗試,并且如本文中結 合許可證服務描述地對使用激活技術的單個計算機系統(tǒng)許可證禁止該綁定。然 而,還可以是這樣一種情形,同一個計算機系統(tǒng)的硬件標識符已經因為該同一 個計算機系統(tǒng)的硬件配置的改變而改變。例如,安裝新的硬盤驅動器可改變計
算機的硬件標識符。 一實施例還可結合確定兩個硬件標識符是否標識同一計算 機系統(tǒng)來使用某一水平的容忍度。例如,容忍度可說明在不同時刻生成的同一 計算機系統(tǒng)的硬件標識符之間允許的差異水平,如因為硬件升級或替換而造成 的差異。例如,在具有多位硬件標識符的實施例中,容忍度可允許在兩個硬件 標識符中有一或二位的差異,并且可認為這兩個硬件標識符仍標識同一計算機 系統(tǒng)。為了與許可證綁定,實施例可結合生成硬件標識符和確定兩個硬件標識. 符是否指的是同一計算機系統(tǒng)來使用不同水平的容忍度和技術。上述美國專利 No.6,243,468和美國公開No.2004/0177354描述了用于確定兩個硬件標識符是 否指的是同一計算機系統(tǒng)的不同容忍度水平和技術。作為激活過程的結果,結 合硬件標識符綁定類型,將許可證綁定到硬件標識符,并且因而綁定到與該硬 件標識符對應的計算機系統(tǒng)。計算機102可在其上包括具有根據(jù)在實施例中使 用的特定硬件標識符技術生成硬件標識符的能力的軟件。
一實施例還可允許其它類型的綁定,諸如將許可證綁定到用戶認證信息。 例如,用戶認證信息可包括用戶登錄名/標識符和口令等。采樣這樣的許可證綁 定類型,單用戶許可證允許安裝在不同計算機上的軟件執(zhí)行,只要該軟件執(zhí)行 與在綁定中指定的用戶認證信息相關聯(lián)。例如,軟件產品1可安裝到10臺計 算機上。軟件產品1可具有單用戶許可證,為其執(zhí)行的激活導致生成被綁定到 用戶1的帳戶信息的許可證。用戶1可用用戶1帳戶和憑證登錄到這10臺計 算機中的任意一臺上并且執(zhí)行軟件產品1。
另一類型的綁定可基于與便攜式安全標識設備諸如道爾芯片、USB設備、 智能卡等相關聯(lián)的標識符。如本領域已知的道爾芯片是附連到I/O端口諸如
USB端口、串行端口或并行端口的物理設備。結合便攜式安全標識設備綁定類 型,對該便攜式安全標識設備進行綁定。結合關聯(lián)于USB設備的USB密鑰標 識符,單用戶許可證允許基于是否插入了具有在綁定實例中指定的USB密鑰標識符的USB設備來允許軟件的執(zhí)行。如此,單用戶許可證的同一軟件可安
裝在多個計算機系統(tǒng)上。只要綁定中指示的USB密鑰標識符被插入每一個計 算機系統(tǒng)中,就允許在該計算機系統(tǒng)上執(zhí)行軟件。如本領域已知的,USB密鑰 標識符可與每一個USB設備相關聯(lián)并且可由每一個特定的USB廠商分配。本 領域技術人員將會理解,用于USB設備的綁定類型和相關聯(lián)的USB標識符也 可結合其它便攜式非易失性存儲器設備使用,并且不應被解釋為僅應用于在本 文中為了示例性目的而例示的USB設備。在下面的段落中,對作為便攜式安 全標識設備的示例的USB密鑰標識符進行參考。然而,該特定類型的便攜式 安全標識設備只是為了本文所述技術的說明而被提出的。本領域技術人員將會 理解,可利用任何其它類型的便攜式安全標識設備。
另一類型的^15定可基于可信平臺模塊(TPM)。如本領域已知的,TPM 是被設計成向利用它的軟件提供基本的安全相關功能的微芯片。例如,TPM芯 片可安裝在PC或膝上型計算機的主板上,并且經由硬件總線與系統(tǒng)的其余部 分通信。TPM具有存儲在TPM本身中主密鑰,該主密鑰永不會泄露。包含TPM 的系統(tǒng)具有使用主密鑰創(chuàng)建密碼密鑰以及結合主密鑰和由其生成的密鑰執(zhí)行
加密和解密的能力。在本文其它地方描述結合綁定來使用主密鑰或者由其生成 的密鑰來創(chuàng)建綁定到特定TPM的許可證。采用TPM綁定類型,允許從具有 TPM模塊的計算機系統(tǒng)激活的軟件在具有該TPM模塊的該計算機系統(tǒng)上執(zhí) 行。
權利還可表示哪些其它信息是(如果有)接收許可證所需要。例如,可要 求用戶提供名字、地址、電話號碼等。可為隨產品、廠商等改變的許可證激活 的不同要求定制上述權利。例如,如果要求用戶提供名字和地址信息,則可在 激活之前獲得該信息并且作為除包信息和購買令牌之外的附加數(shù)據(jù)發(fā)送到ES 104。如果提供了包括名字和地址信息的附加信息,則ES返回權利證書108。 否則,檢測到錯誤并且激活過程可通過在計算機102的輸出設備上顯示的適當 錯誤消息來終止。ES104可檢査以查看是否提供了所有需要的信息。例如,該 附加信息可被存儲在供廠商使用的服務器的數(shù)據(jù)庫中。如果沒有提供附加信 息,則代替用錯誤消息終止激活過程,ES104可標識所提供的信息中的缺失,、 例如地址信息不完整或缺少。ES 104可向計算機102發(fā)出針對缺少信息的請求,并且對其上的用戶給予提供該缺少信息并獲得權利證書(EC) 108的另一個機 會。
權利連同可能的其它信息可在EC 108中返回給計算機102。 EC 108可以 是數(shù)字簽名的文檔,諸如數(shù)字簽名的XML文檔,其中包括包信息、購買令牌 和用于由ES 104從計算機102接收的購買令牌和包信息106的權利信息。例 如,權利信息可表示許可證是供在單個計算機系統(tǒng)上使用的具有硬件標識符綁 定的永久許可證。EC108是這些許可權限或權利的經證實的表達。如上所述, ES 108可將用于包信息和/或購買令牌的特定組合的權利存儲在權利數(shù)據(jù)庫 中。可基于包信息和/或購買令牌索引該數(shù)據(jù)庫以返回權利信息。例如,對于標 識文字處理產品的包信息,權利信息可表示許可證的一種或多種類型、包括硬 件標識符綁定在內'的一種或多種綁定類型等等。對于文字處理產品,購買令牌 的預定范圍可與試用訂閱相關聯(lián)。如果所接收的購買令牌被包括在預定的范圍 內,則可返回權利信息以表示試用訂閱許可證、開始和結束日期等等。如果購 買令牌不在預定范圍內,則許可證類型可表示為永久的而不是試用許可證。結 合EC, EC 108可由ES 104使用ES 104的私鑰來簽名。
在一個實施例中,包括在EC 108中的信息的第一部分可由計算機102和 LS 120兩者使用。包括在EC 108中的信息的第二部分可僅由LS 120使用。作 為將在下面更詳細地說明的示例,計算機102可閱讀有關所要求的綁定類型如 硬件標識符綁定類型的權利信息。計算機102可為硬件標識符綁定類型生成綁 定證書而不使用BSllO。如此,計算機102可閱讀包括在EC中的綁定類型以 查看計算機102是否應當生成綁定證書或者以其它方式與適當?shù)慕壎ǚ胀?信。
現(xiàn)有參考圖4,所示的是EC 108的示例表示。示例200包括購買令牌204、 包信息206和權利202。這些權利202可包括未加密部分210和加密部分212。 未加密部分210可以是人可讀形式的,諸如純文本。未加密部分可由計算機102 以及LS120使用。加密部分212可僅由LS120使用。包括在未加密部分中的 信息可包括硬件綁定類型、許可證的類型、日期信息、使用許可證的使用次數(shù)、 購買令牌授權被激活的計算機數(shù)量、單個計算機可重新激活或者重復激活同一 許可證的次數(shù)等等。如在本文其它地方描述的,未加密信息可由計算機102作為激活過程的一部分來使用并且在激活完成之后還可結合后續(xù)的程序啟動或 調用來使用。如上所述,計算機102可檢查包括在部分210中的綁定類型。作 為在其中由計算機102使用210中的信息的另一個示例,可提供用于LS 120、 BS IIO等的URL或其它地址信息作為EC 108的一部分。如此,ES 104可使 用EC 108表示用于不同軟件產品的BS和/或LS的不同提供者站點。EC 108 也可用于表示為在特定實施例中使用而定制的其它項目。
在一個實施例中,EC 108是XML文檔,每一個權利可表示為XML屬性。 例如,訂閱(SUBSCRIPTION)許可證類型、硬件標識符(表示為HWDID) 綁定和許可證服務URL可被表示為
<License>SUBSCRIPTION </License>
<Binding>HWDID</Binding>
<LicenseServiceURL>HTTPS:〃license.microsoft.com/</LicenseServiceURL
>
應當注意,加密部分212可用212中的信息的預期消費者或用戶的公鑰來 加密。在該示例中,212中的信息的消費者可以是LS 120。如此,ES可使用 LS的公鑰來加密212中的信息,它可由LS使用LS的私鑰來解密。以該方式, 只有LS 120才能解密和閱讀部分212。部分212可包括與許可證的發(fā)放有關的 信息。例如,部分212可表示為特定的軟件產品和購買令牌每天發(fā)放免費的許
可證o
現(xiàn)在回來參考圖3, 一旦計算機102接收了 EC 108,即可執(zhí)行用于生成綁 定證書的處理。如上所述,EC 108包括由計算機系統(tǒng)102使用的綁定類型信息。 在使用包括在EC 104中的信息之前,計算機102可使用ES 104的公鑰來驗證 EC 108的真實性。例如,ES 104可使用各種不同散列算法中的任何一個來基 于包括在其中的數(shù)據(jù)為EC 108生成散列值。ES 104隨后可使用ES的私鑰加 密該散列值并且包括加密的散列值作為ES的數(shù)字簽名。在EC 108到達計算機 102處后,計算機102可基于該EC使用與ES 104相同的散列技術來生成第一 散列值。計算機102還可使用ES的公鑰解密數(shù)字簽名(加密的散列值)并將 解密的數(shù)字簽名與計算出的第一散列值相比較。如果這些值相同,則EC驗證 成功。上面所述的是結合驗證所接收的數(shù)字簽名的證書該服務和其它服務如何
18驗證數(shù)字簽名的文檔的示例。
在成功驗證EC 104之后,計算機102檢査包括在EC 104中的綁定類型以 確定該綁定類型是否用于硬件標識符。如果是,則如元素142所示,計算機102 可在本地生成綁定證書(BC) 114。否則如元素140所示,外部BS 110可用 于生成BC 114。如果綁定類型是硬件標識符,則計算機102可生成包括計算 機102的硬件標識符即硬件"指紋"的BC。 BC隨后可使用計算機102的私鑰 來數(shù)字簽名。計算機102的私鑰可作為安裝過程的一部分而被包括并且被存儲 在計算機102上的已知位置。 '
如果綁定類型是除硬件標識符以外的另一類型,則使用適當?shù)耐獠緽S 110。綁定數(shù)據(jù)112以及BS可隨著綁定的類型而改變。例如,對于TPM綁定, 可使用TPMBS??色@得用于計算機102的TPM的公鑰證書并將其發(fā)送到BS IIO用于證明。如本領域已知的,該證明可由認證機構(CA)執(zhí)行以證實包含 在證書中的公鑰屬于該證書中提到的TPM實體。如果BS成功證明了 TPM的 公鑰證書,則BS 110通過向計算機102發(fā)送一個使用TPM的公鑰加密的隨機 數(shù)來應答。其中具有TPM模塊的計算機102使用該TPM的私鑰解密該隨機數(shù)。 計算機隨后向BS IIO發(fā)送從該BS接收的加密值以及這個解密的隨機數(shù)。BS IIO通過使用該BS的私鑰數(shù)字簽名的BC 114來應答。BC 114包括用TPM的 公鑰加密的隨機數(shù)和該隨機數(shù)的未加密可讀形式。應當注意,例如,加密可使 用本領域已知的任何加密技術,諸如AES (高級加密標準)、三重DES (數(shù)據(jù) 加密標準)、RC4 (或ARCFOUR)等等。
結合其它可能的綁定類型,BC可包括用于綁定類型實例的適當信息并且 對應的BS可執(zhí)行綁定實例的證明。例如,對于USB或其它便攜式安全設備標 識符綁定類型,BS可證明用于綁定的USB或其它標識符并且生成由該BS數(shù) 字簽名且包括關聯(lián)于該便攜式安全設備的USB或其它標識符的BC。對于用戶 認證綁定類型,BS可證實用戶認證信息并且生成由BS數(shù)字簽名且包括用戶認 證信息的BC。應當注意,如果BC包括機密或敏感信息,諸如用戶認證信息 的一部分的情形,這樣的信息可以被編碼、加密等等。對于用戶認證,可存儲 用戶域和登錄名或者用戶的操作系統(tǒng)的其它安全標識符(SID)。
一旦計算機102具有BC 114,計算機102即向LS 120發(fā)送綁定和權利證書(EC禾口BC) 122。
參考圖5,所示的是可由LS 120結合在線激活處理執(zhí)行的處理步驟的流 程圖。在步驟252, LS 120分別使用ES 104和BS 110的公鑰LAI驗證EC和 BC。在硬件標識符綁定類型的情形中,BS 110實際上是計算機102,因此相 應地使用計算機102的公鑰來由LS 120對BC進行驗證。否則,使用適當?shù)耐?部BS的公鑰來對BC進行驗證。ES的公鑰可用于對EC進行驗證。在BC和 EC 122都已經成功驗證之后,在步驟254, LS 120從EC檢索綁定類型信息并 且確定BC是否包含如在BC中指示的正確綁定類型。如果否,激活過程可通 過給計算機102 —個錯誤狀況和消息來終止。在步驟256,從EC獲得可能的 激活綁定的數(shù)量和購買令牌。結合硬件標識符綁定類型,可能的激活綁定的數(shù) 量可以是對其發(fā)放許可證的計算機系統(tǒng)的數(shù)量。在步驟258,作出是否存在對 該購買令牌發(fā)放的任何現(xiàn)有許可證的判斷。在一個實施例中,可査詢LS 120 的數(shù)據(jù)庫120a以確定已在數(shù)據(jù)庫中的用于在步驟256從EC獲得的購買令牌的 現(xiàn)有許可證的數(shù)量。如果步驟258評估為否,則控制繼續(xù)至步驟266以發(fā)放新 的許可證。有關發(fā)放的新許可證的信息被記錄在LS 120的數(shù)據(jù)庫120a中,供 結合本文所述的其它處理步驟來使用。所記錄的許可證信息包括有關該許可證 所綁定的用于來自步驟256的相關聯(lián)的購買令牌的每一綁定實例的信息。例如, 對于有關硬件標識符綁定的為購買令牌發(fā)放的每一個許可證,許可證服務數(shù)據(jù) 庫可將綁定的硬件標識符與該購買令牌相關聯(lián)。如果許可證被綁定到USB密 鑰標識符或者用戶認證信息,則對應的信息(例如USB密鑰標識符或用戶認 證信息)可被存儲在數(shù)據(jù)庫中并與購買令牌相關聯(lián)。如果許可證被綁定到TPM 實例,則可存儲用于可信CA (認證機構)的TPM根的公鑰證書。如果許可證 被綁定到用戶認證實例,則可存儲用戶的域和用戶名或者SID。
如果步驟258評估為是,則控制繼續(xù)至步驟260以確定當前的激活是否涉 及許可證重新發(fā)放。可以通過將BC中的綁定信息諸如硬件標識符與許可證數(shù) 據(jù)庫中有關現(xiàn)有的已發(fā)放的許可證的信息作比較來作出這是許可證重新發(fā)放
的判斷。結合綁定于已發(fā)放許可證的硬件標識符,回想如本文所述的,可結合 作出兩個硬件標識符是否匹配的判斷來使用不同水平或程度的容忍度。例如, 如果已經存在硬件配置改變,諸如安裝了新的硬盤驅動器、存儲器升級等等,則取決于如何生成硬件標識符,為同一計算機系統(tǒng)生成的兩個硬件標識符可能 不能精確匹配??墒褂萌缭诒疚钠渌胤剿龅牟煌夹g來確定兩個硬件標識 符是否基本上相同因而標識同一計算機系統(tǒng)而構成許可證重新發(fā)放。如果步驟
260確定這是許可證重新發(fā)放,則控制繼續(xù)至步驟266以重新發(fā)放許可證。結 合重新發(fā)放,可基于接收的EC和BC以及相應更新的許可證數(shù)據(jù)庫的當前信 息來生成新的許可證。通過重新發(fā)放,分配的許可證的凈數(shù)量不會改變。如果 步驟260評估為否,則控制繼續(xù)至步驟262以確定所允許的許可證數(shù)量是否已 經達到使得發(fā)放另一個新許可證將會超過所允許的激活的最大數(shù)量。如果步驟 262評估為否,則控制繼續(xù)至步驟266以發(fā)放新許可證并且如結合250的其它 處理步驟描述的那樣在許可證服務數(shù)據(jù)庫中記錄許可證信息。如果步驟262評 估為是,則控制繼續(xù)至步驟264并且不發(fā)放新的許可證。
關于由許可證服務執(zhí)行的流程圖250的處理,可能的結果是重新發(fā)放許可 證、發(fā)放新的許可證、或者未能發(fā)放許可證。未能發(fā)放的原因可以是超過了所 允許的許可證數(shù)量或者其它條件諸如驗證失敗。
應當注意,EC中的任何加密的權利也可由LS使用LS的公鑰來解密。解 密的權利可結合許可證發(fā)放來使用。
在一個實施例中,許可證可以是包括EC和BC的數(shù)字證書。許可證可用 LS 120的私鑰來簽名。可將從LS 120接收的許可證存儲在計算機102上用于 結合后續(xù)啟動已經為其發(fā)放的許可證的軟件來使用。
如本文所述,ES104生成被包括EC中的權利,取決于具體權利,這些權 利可由計算機102和LS 120消費。這些權利包括隨后由LS 120和計算機102 在實施如在其中表達的許可證條款和條件時使用的許可證特性的詳細說明。上 述許可證條件或條款由LS 120作為由LS 120執(zhí)行的許可證發(fā)放過程的一部分 來實施。許可證條件或條款隨后還由計算機系統(tǒng)102在每次啟動或調用與該許 可證相關聯(lián)的軟件(例如,具有購買令牌和包信息)時實施。
將要描述的是可由計算機102在每次調用已經為其發(fā)放了許可證的軟件 時執(zhí)行的處理。參考硬件標識符的許可證綁定類型作出下面的描述,但可使用 其它綁定類型。本領域技術人員將會理解,在實施例中,步驟280可適于以與 不同的綁定類型一起使用?,F(xiàn)在參考圖6,所示的是可在設備諸如計算機102上在每次啟動或調用安 裝在其上的軟件以便執(zhí)行時進行的處理步驟的流程圖。280的處理步驟確定軟 件在計算機上的執(zhí)行是否根據(jù)先前使用在線激活處理生成的有效許可證。在執(zhí)
行流程圖280的步驟之前,許可證可位于該設備上。在一個實施例中,該許可 證可存儲在特定位置諸如目錄、文件等之中。如果在預期位置中未找到許可證, 則終止軟件啟動。280的處理在確定計算機102上有許可證之后繼續(xù)。
在步驟282,例如結合對由ES 104數(shù)字簽名且由計算機102接收的EC 108 的驗證,如在本文其它地方所述地使用LS的公鑰驗證許可證簽名。在步驟284, 計算機102基于計算機系統(tǒng)102的當前硬件配置生成新的硬件標識符。在步驟 286,將從步驟284生成的硬件標識符與BC中的硬件標識符相比較以確保這 兩個硬件標識符被認為是匹配的。如在本文其它地方所述,這樣的判斷可相對 于可接受的容忍度或者差異的程度來作出,使得作出這兩個硬件標識符是否是 標識同一計算機的基本上相同硬件標識符的判斷。步驟286的不成功驗證可表 示該許可證是為不同于當前正在嘗試啟動其上的軟件的計算機的計算機發(fā)放 的并且不允許該軟件執(zhí)行。該執(zhí)行可通過有關誶失敗的并且建議與該軟件的廠 商或提供者聯(lián)系以提供幫助的錯誤消息來終止。在步驟288,執(zhí)行驗證處理以 確保EC的購買令牌匹配如從先前的激活過程存儲的購買令牌。在步驟290, 可根據(jù)EC中適用于啟動驗證的權利來執(zhí)行處理。步驟290可包括根據(jù)一個或 多個權利執(zhí)行處理并且在響應時采取動作,諸如進入與用戶的對話或者其它動 作。例如,步驟290處理可使用在這些孜利中的表達的日期信息以確定許可證 是否已經期滿、根據(jù)指定的起始日期啟動等等。如果許可證已經期滿,則可用 詢問用戶是否想要續(xù)展該許可證的對話來向該用戶提示。如果該用戶通過用戶 輸入或者選擇表示他/她想要續(xù)展,則計算機102可連接至網站以開始續(xù)展過 程。如果許可證基于使用次數(shù),諸如1000次調用后該許可證期滿,則可在每 次調用時顯示一個消息,它表示當前的使用次數(shù)和剩余的調用次數(shù)。如果該許 可證具有許可證期滿數(shù)據(jù),則在當前日期處于自許可證有夢期起的預定時間段 內的情況下,可向用戶顯示一個消息以表示該許可證將在MM天內期滿。有關 許可證的信息可被記錄在用戶計算機102上并且可結合以后的調用來使用。這 樣的信息可被存儲在目錄、文件、注冊表設置等計算機102上的已知位置中。例如,這樣的信息可包括特定軟件應用程序的當前調用或使用次數(shù)。
如果步驟286、 288和/或290的驗證過程不成功,則當前執(zhí)行軟件的嘗試 失敗并且可通過適當?shù)南?、進一步的指令等來終止。
如本文所述,在實施例中可使用除硬件標識符之外的不同綁定類型。如果 綁定類型是TPM,則步驟284和286可用與TPM實例有關的處理代替。如在 本文其它地方針對TPM所述,BC可包括加密以及未加密形式的隨機數(shù),諸如 可讀文本。加密的隨機數(shù)使用TPM的公鑰來加密。對于每次程序啟動,計算 機102可使用TPM的私鑰來解密該加密的隨機數(shù)并且將該解密的結果與包括 在BC中的未加密的隨機數(shù)相比較。如果這兩個解密的隨機數(shù)匹配BC的未加 密隨機數(shù),則為包括在計算機102上的TPM發(fā)放許可證,步驟286驗證處理 成功,并且允許被啟動的軟件執(zhí)行。否則使用TPM綁定實例的步驟286失敗。 如果綁定類型是USB標識符,則步驟284獲得被插入到正在其上嘗試執(zhí)行的 計算機的當前USB設備的USB標識符。在步驟286,將當前的USB標識符與 如包括在BC中的許可證的USB標識符相比較。如果這兩者匹配,則為當前插 入到計算機102中的設備的USB標識符發(fā)放許可證。否則,使用USB標識符 實例的步驟286失敗。如果綁定類型是用戶認證信息,則步驟284獲得當前登 錄到正在其上嘗試執(zhí)行的計算機中的用戶的當前用戶認證信息。在步驟286, 將當前用戶認證信息與如包括在BC中的許可證的用戶認證信息相比較。如果 這兩者匹配,則為當前用戶認證信息發(fā)放許可證。否則步驟286失敗。
上面描述了用于在計算機102具有與包括各種服務的一個或多個服務器 的連通性時的在線激活模式的處理。作為替換方案, 一個實施例中的激活處理 可使用離線激活模式來執(zhí)行。
參考圖6A,所示的是許可證數(shù)據(jù)庫的示例表示。示例700例示如可被包 括在圖3的LS 120的許可證數(shù)據(jù)庫中的信息。許可證數(shù)據(jù)庫702可以是邏輯 組織的,使得對于給定的購買令牌704,可以檢索對應的許可證信息766。許 可證信息706標識為給定的購買令牌發(fā)放的許可證。示例700更詳細地例示了 許可證數(shù)據(jù)庫702可如何邏輯地組織并且還包括許可證信息706的示例。購買 令牌被包括在列710中。數(shù)據(jù)庫702可包括用于給定購買令牌的信息的一個或 多個記錄。在列712和714中描述許可證信息。在該示例中,對每一個購買令牌允許多于一種類型的綁定,因此在列712中表示給定購買令牌的不同綁定類 型。列714包括已為其生成許可證的綁定實例。元素722標識許可數(shù)據(jù)庫中用 于第一購買令牌("購買令牌l")的許可信息。如在712中表示的,已經為 兩個綁定類型——硬件標識符(HDWID)和USB標識符(USBID)發(fā)放了用 于購買令牌1的許可證。已經為購買令牌1發(fā)放了兩個許可證。每個許可證綁 定到硬件標識符綁定類型實例HWDID1和HWDID2之一。已經為購買令牌1 發(fā)放了被綁定到USB標識符綁定類型實例USBID1的一個許可證。在724中 包括用于購買令牌2的許可證。如在712中表示的,已經為硬件標識符
(HDWID)綁定類型發(fā)放了許可證。已經為購買令牌2發(fā)放了兩個許可證。 每一許可證分別綁定到列714的硬件標識符綁定類型實例HWDID3和 HWDID4之一。
本領域技術人員將會理解,示例700僅表示可在實施例中使用的許可證數(shù) 據(jù)庫的一種可能的表示和組織。另外,與如包括在示例700中的其它信息也可
被包括許可證數(shù)據(jù)庫中并且可隨著可能的綁定類型而改變。
參考圖7,所示的是例示可使用本文所述技術執(zhí)行的離線激活處理的示 例。示例300包括離線激活服務(OAS) 302和CSR/IVR系統(tǒng)332。結合離線 激活模式,僅可支持硬件標識符類型綁定。與在線激活模式一樣,正在激活的 軟件是安裝在設備336上的。在該示例中,設備336可以是與提供如結合在線 激活模式描述的那些服務的服務器沒有連通性的計算機。執(zhí)行激活過程的用戶 最初可聯(lián)系CSR/IVR系統(tǒng)332并且提供安裝標識符310。安裝標識符可包括一 個或多個組件并且可由設備336作為安裝過程的一部分來生成。作為安裝過程 的一部分,可詢問用戶他/她想用在線還是離線激活模式來激活。如果選擇離線 模式,則可向用戶提供安裝標識符。在一個實施例中,安裝標識符可根據(jù)設備 336的硬件標識符、正在為其執(zhí)行激活的已安裝軟件的包信息和該軟件的購買 令牌來形成??蓤?zhí)行在設備336上的軟件以形成硬件標識符??勺鳛榘惭b對話 的一部分輸入購買令牌和包信息。購買令牌、包信息和硬件標識符可被存儲在 設備336上,供在以后啟動正在為其執(zhí)行激活的程序時結合驗證處理來使用。 圖8示出可在一實施例中使用的安裝標識符的示例表示??赏ㄟ^將正在為 其執(zhí)行激活的軟件的硬件標識符(HWDID) 402與包信息406和購買令牌404串接起來而形成示例400的安裝標識符。硬件標識符402可以是標識設備336 的硬件的各種不同硬件標識符中的任何一個。在一個實施例中,硬件標識符可 以是如在美國公開No.2004/0177354中所述的緊湊硬件標識符(CHWID)。 CHWID可從較大的、較冗長的硬件標識符(VHWID)形成。VHWID可由"n" 個硬件類的集合形成。例如,每一個類可標識一類硬件組件,諸如硬盤驅動器、 網卡、CPU等,如在本文其它地方所述。對于每一個類,可基于設備336的每 一個類的特定組件為每一個組件類形成第一散列值。例如,可基于計算機中的 特定硬盤驅動器或CPU形成標識串。該串可標識制造商或者對于該計算機的 CPU或硬盤驅動器唯一的其它信息(例如,"INTEL 989709789798")???為該串標識符形成第一散列值??纱訉?n"個組件類中的每一個得到的第 一散列值以形成'VHWID。 CHWID可通過標識用于VHWID的"n"個類中的 子集"q"個類來形成。可對用于這些所選的"q"個類的第一散列值中的每一 個應用第二散列函數(shù)以生成"q"個第二散列值。隨后可串接這"q"個第二散 列值并用作CHWID。結合為第一和第二散列值兩者執(zhí)行散列,可使用各種散 列函數(shù)中的任何一個,諸如例如SHA-1、 MD5等。VHWID和CHWID均可使 用在設備336上執(zhí)行的代碼來形成。所得到的CHWID ,或者從其形成該CHWID 的VHWID,可被存儲在設備336中供以后在啟動正在為其執(zhí)行激活的軟件時 結合執(zhí)行驗證處理來使用。CHWID可用作用于形成安裝標識符的硬件標識符 組件402,盡管可使用其它技術來生成402。
安裝標識符310可以是編碼為十進制數(shù)字的字母數(shù)字字符串,它可通過電 話輸入或者以其它方式傳送至CSK/IVR系統(tǒng)332。在一個實施例中,安裝標識 符可以是128位的,但可使用其它大小。安裝標識符的大小可以隨著每一個實 施例和用于形成該安裝標識符的組分(例如,硬件標識符、購買令牌和包信息) 每一個的大小而改變。系統(tǒng)332隨后向OAS 302提供安裝標識符310。 OAS 可以是連接至CSR/IVR 332的計算機系統(tǒng)。在OAS 302上執(zhí)行的代碼可解析 安裝標識符310以從其中提取購買令牌和包信息306。
圖9例示OAS 302可如何根據(jù)配置數(shù)據(jù)452來解析安裝標識符310。配置 數(shù)據(jù)452可表示如在圖8所示的安裝標識符的布局或數(shù)據(jù)格式的各個字段。配 置數(shù)據(jù)452可表示要提取安裝標識符的哪些字段以獲得購買令牌和包信息。配置數(shù)據(jù)可表示要提取的適當位數(shù)以及用于該提取的起始或偏移位的位置。在一 個實施例中,配置數(shù)據(jù)文件452可包括用于安裝標識符的布局的每一個字段的 記錄。每一個記錄可表示位數(shù)454、標記456和指示符458。位數(shù)454可表示 字段中位的大小。標記456可以是標識特定字段的文本串。指示符458可以是 指示是否要提取該字段以傳送到ES的標志。
回來參考圖7, OAS 302提取購買令牌和包信息306并將該信息306發(fā)送 到ES 304。 ES 304如在本文其它地方結合在線激活模式所述地生成經數(shù)字簽 名的EC 308。EC 308被發(fā)送到OAS 302,后者使用ES 304的公鑰驗證EC 308。 OAS 302隨后使用其自己的私鑰和包括在安裝標識符的一部分中的硬件標識 符來生成BC 334。 BC 334一包括硬件標識符并且使用OAS 302的私鑰來數(shù)字簽 名。OAS 302將BC和EC 322發(fā)送到LS 320以獲得許可證330。 LS 320執(zhí)行 如在本文其它地方結合用于硬件標識符的在線激活模式所述的處理。上面描述 了 LS 320處理的可能結果并且它們可包括生成隨后被發(fā)送到OAS 302的許可 證330。如在本文其它地方結合在線激活模式所述,許可證330可包含BC和 EC。許可證可使用LS 320的私鑰來數(shù)字簽名。OAS 302執(zhí)行處理以確定它是 否從LS 320接收到有效的許可證。
參考圖10,所示的是可在實施例中由OAS 302在處理接收的許可證330 時執(zhí)行的處理步驟的流程圖。在步驟502,可驗證許可證簽名。該許可證可用 LS的私鑰來簽名。與在本文其它地方結合使用私鑰生成的其它數(shù)字簽名所述 的類似地,可使用對應的公鑰來驗證該數(shù)字簽名。在步驟502,在驗證時使用 LS公鑰。在步驟504,可執(zhí)行驗證處理以確定許可證的購買令牌是否匹配如包 括在安裝標識符中的購買令牌。在步驟506,可執(zhí)行對BC的驗證處理。步驟 506可包括將BC的硬件標識符與如包括在安裝標識符中的硬件標識符相比較。 在步驟508,如果步驟502、 504和506的所有先前的驗證處理已經成功完成, 則可生成確認標識符。
參考圖11,所示的是確認標識符的各字段的示例表示。確認標識符600 包括OAS生成數(shù)據(jù)部分602和加密散列值604。部分602可由OAS生成并且 基于包括在EC中的各個權利。部分602可稱為許可證的各個許可條款和條件 的表示。作為生成確認標識符'的一部分,OAS檢索EC的權利并且相應地形成
26部分602。在一個實施例中,部分602可以是編碼EC的各個權利的30位大小 的。例如,部分602可包括表示許可證的類型的3位、表示許可證有效期的7 位、表示許可證起始日期的7位等等。確認標識符的大小可隨實施例而改變。 例如, 一實施例可使用114位的確認標識符,它具有一個83位的字段604和 一個31位的字段602。
示例600中的確認標識符還包括加密的散列值604??山Y合生成散列值604 使用各種不同技術中的任何一種。例如,在一個實施例中,散列值604可以使 用安裝標識符和數(shù)據(jù)部分602來形成。安裝標識符和數(shù)據(jù)部分602可具有用于 生成散列值的散列算法。該散列技術可以本領域已知的且在本文其它地方所述 的各種不同技術中的任何一種。隨后可使用各自不同技術中的任何一個來加密 散列值并且將其存儲為散列值604。在一個實施例中,散列值可使用OAS的私 鑰來加密,在以后由設備336結合隨后的程序啟動和相關聯(lián)的驗證處理來解密 該散列值。作為另一個示例,散列值可使用在Lauter等人授權公告日為2006 年3月28日、題為CRYPTOSYSTEM BASED ON A JACOBIAN OF A CURVE(基于曲線的雅可比行列式的密碼系統(tǒng))的美國專利No.7,020,776中所述 的加密技術來加密。
除部分602和安裝標識符之外,可使用其它數(shù)據(jù)來形成確認標識符。從其 產生散列值604的數(shù)據(jù)可以在EC的各權利中表示。例如,EC可表示602的 部分和/或安裝標識符的部分以及從其生成散列值604的其它值。例如,EC可 表示發(fā)放許可證的天數(shù)、針對特定許可證允許激活的機器數(shù)等等??稍贓C中 傳送的信息的其它示例在本文其它地方描述。
一旦由OAS 312形成確認標識符312,則OAS 312就將該確認標識符312 傳送至CSR/IVR系統(tǒng)332。系統(tǒng)332將確認標識符312傳送至用戶。用戶隨后 可輸入確認標識符312,諸如通過設備336上的輸入設備。確認標識符312可 被存儲在設備336上供結合后續(xù)程序啟動來使用。安裝標識符310也可被存儲 在設備336上供結合后續(xù)程序啟動來使用。在一個實施例中,可串接安裝標識 符310和確認標識符336并且將其存儲為設備336上的單個數(shù)據(jù)項。
如上所述,從在線激活模式生成的許可證可在程序啟動時用于執(zhí)行驗證處 理以確定是否允許程序執(zhí)行繼續(xù)進行。如將在下面更詳細地描述的,從離線激活模式生成的確認標識符也可用于執(zhí)行驗證處理以確定是否允許程序執(zhí)行繼 續(xù)進行。
參考圖12,所示的是可在一設備諸如計算機的實施例中當嘗試執(zhí)行該設 備上的軟件時執(zhí)行的處理步驟的流程圖。該軟件可被安裝在該計算機上并且執(zhí) 行在線或離線激活處理以分別生成許可證或確認標識符。在步驟802,啟動或 調用該軟件程序。在步驟804,作出以前是否執(zhí)行過在線激活的判斷。計算機 通過檢查計算機上如果已經成功執(zhí)行過在線激活則預期會包含許可證的位置 的內容來作出判斷。例如,許可證可被存儲在特定的目錄、文件等等之中。如 果許可證在預期的位置中,則步驟804可評估為是并且控制繼續(xù)至步驟806以 執(zhí)行與如在本文其它地方所述的用于在線激活的程序啟動相關聯(lián)的驗證處理。 例如,這樣的處理是結合圖6描述的。如果步驟804評估為否,則控制繼續(xù)至 步驟808,在那里可檢索安裝標識符和確認標識符。安裝標識符和確認標識符 可存儲在與如相關于許可證所述的位置類似的已知位置。如果找到安裝和確認 標識符,則步驟810評估為是并且控制繼續(xù)至步驟812以執(zhí)行與如在下面的段 落中更詳細地描述的用于離線激活的程序啟動相關聯(lián)的驗證處理。否則,步驟 810評估為否并且控制繼續(xù)至步驟814以通過適當?shù)腻e誤消息來終止處理。結 合步驟814不允許執(zhí)行該程序。
參考圖13,所示的是可在一實施例中結合在設備諸如計算機上已安裝軟 件的執(zhí)行來執(zhí)行的處理步驟的流程圖。流程圖900例示可結合圖800的步驟812 當與具有以前執(zhí)行的離線激活處理相關聯(lián)的信息位于計算機系統(tǒng)上時執(zhí)行的
處理。應當注意,如果步驟904、 906、 908或912的驗證處理中的任一步驟失 敗,則不允許執(zhí)行該軟件并且處理可通過適當?shù)南⒔K止。在步驟902,當前 的硬件標識符棊于在步驟802中執(zhí)行其上的軟件啟動的計算機的硬件。使用用 于生成以前包括在安裝標識符中的硬件標識符的相同技術。在步驟904,執(zhí)行 驗證處理以確保步驟902的當前硬件標識符匹配所存儲的安裝標識符的硬件標 識符。如在本文其它地方所述,可使用不同技術來確定這兩個硬件標識符是否 基本上相同以表示同一計算機系統(tǒng)。例如,如果硬件標識符是如在本文其它地 方所述的CHWID,則CHWID可形成為串接的散列值集合,其中每一個散列 值對應于特定的硬件組件類。這些散列值隨著如包括在計算機系統(tǒng)的配置中的每一個類的特定硬件而改變??赏ㄟ^具有在當前硬件標識符與安裝標識符的硬 件標識符之間的散列值匹配的閾值數(shù)量來引入容忍度程度。該閾值可以是某個 數(shù)字m,它《q, q是CHWID的散列值和對應類的數(shù)量。為m選擇的數(shù)字可 隨著可接受的容忍度程度或者計算機系統(tǒng)的配置的變化而改變。在步驟906, 執(zhí)行驗證處理以確保如以前在安裝期間輸入的、所存儲的購買令牌和包信息匹 配所存儲的安裝標識符的購買令牌和包信息。在步驟908,可使用加密的散列 值部分604針對確認標識符的加密的散列值執(zhí)行驗證處理。使用如存儲在計算 機上的OAS的公鑰為604生成解密的散列值。例如,該公鑰可被存儲為先前 軟件安裝的一部分。計算機可執(zhí)行如在本文其它地方所述的處理以基于所存儲 的安裝標識符和所存儲的確認標識符的數(shù)據(jù)部分生成新的散列值。使用與OAS 用于生成部分60'4'的相同技術來生成這個新的散列值。如果解密的散列值匹配 該新散列值,則驗證處理成功。否則,步驟908的驗證處理失敗。在步驟910, 可提取存儲在計算機上的確認標識符的數(shù)據(jù)部分602并解碼它以確定許可證特 性。如在本文其它地方所述,描述許可證特性諸如許可證類型、有效期的不同 權利等可被編碼在確認標識符的數(shù)據(jù)部分中。步驟910的解碼確定許可證特性。 控制隨后繼續(xù)至步驟912,在那里結合驗證處理使用許可證特性來確保有效許 可證存在。結合離線處理,使用確認標識符而不是使用如結合在線處理的許可 證。確認標識符是許可證特性的不同表示。例如,步驟912的處理可包括,從 確認標識符的數(shù)據(jù)部分602的適當位確定許可證有效期和起始日期。將當前日 期與起始日期和有效期兩者相比較以確定根據(jù)許可證特性軟件是否可被執(zhí)行。 盡管已經以專用于結構特征和/或方法動作的語言描述了本主題,但應當 理解,在所附權利要求書中定義的主題不必受限于上述這些特定的特征或動 作。相反,上述特定的特征和動作是作為實現(xiàn)權利要求的示例形式而揭示的。
權利要求
1.一種用于為安裝在設備(102,336)上的軟件生成許可證(130,330)的方法,所述方法包括生成權利證書(108,308),所述權利證書包括描述所述軟件的許可證特性的一個或多個權利(152,202),所述一個或多個權利(152,202)是根據(jù)有關所述軟件的第一信息確定的,所述第一信息包括包括購買令牌和包信息中的至少一項(106,156,306),所述購買令牌(162,710)與安裝在所述設備上的所述軟件的副本相關聯(lián),所述包信息(160)是所述軟件的標識符;根據(jù)包括在所述一個或多個權利(152,202)中的所述軟件的綁定類型生成綁定證書(114,334);以及根據(jù)所述綁定證書(114,224)和所述權利證書(108,308)生成許可證(130,330),所述綁定證書(114,334)標識所述許可證(130,330)所綁定的實體。
2. 如權利要求1所述的方法,其特征在于,所述權利證書是由具有與所述 設備的連通性的服務器上的權利服務生成的。
3.如權利要求2所述的方法,其特征在于,還包括 從所述設備將所述購買令牌和所述包信息提供給所述權利服務;以及 通過所述權利服務使用權利數(shù)據(jù)庫確定所述一個或多個權利。
4. 如權利要求3所述的方法,其特征在于,所述購買令牌和包信息是在所 述軟件的安裝期間獲得的。
5. 如權利要求1所述的方法,其特征在于,所述綁定類型是下列各項之一 硬件標識符綁定、可信平臺模塊綁定、便攜式安全標識設備標識符綁定和用戶 認證綁定。
6. 如權利要求5所述的方法,其特征在于,還包括如果所述綁定類型是所述硬件標識符綁定,則由所述設備生成所述綁定證書。
7. 如權利要求5所述的方法,其特征在于,如果所述綁定類型是不同于所 述硬件標識符綁定的類型,則所述方法還包括-將綁定數(shù)據(jù)發(fā)送至具有與所述設備的連通性的服務器上的綁定服務;以及由所述綁定服務生成所述綁定證書。
8. 如權利要求1所述的方法,其特征在于,還包括 將所述許可證發(fā)送至所述設備;以及在所述設備上存儲所述許可證供結合所述軟件的后續(xù)啟動來使用。
9. 如權利要求1所述的方法,其特征在于,還包括 將所述許可證發(fā)送至離線激活服務;由所述離線激活服務生成確認標識符,所述確認標識符包括其中編碼了所 述一個或多個權利的數(shù)據(jù)部分;以及 ^在所述設備上存儲所述確認標識符供結合所述軟件的后續(xù)啟動來使用。
10. 如權利要求9所述的方法,其特征在于,還包括將安裝標識符提供給所述離線激活服務,所述安裝標識符包括所述設備的 硬件標識符、所述購買令牌和所述包信息。
11. 如權利要求10所述的方法,其特征在于,還包括 由所述離線激活服務從所述安裝標識符提取所述購買令牌和所述包信息; 由所述離線激活服務將所述購買令牌和所述包信息發(fā)送至權利服務;以及 由所述權利服務生成所述權利證書。
12. 如權利要求11所述的方法,其特征在于,還包括 從所述權利服務將所述權利證書發(fā)送至所述離線激活服務; 由所述離線激活服務生成所述綁定證書; 將所述綁定證書和所述權利證書發(fā)送至許可證服務;以及 由所述許可證服務生成所述許可證。
13. 如權利要求1所述的方法,其特征在于,還包括 在許可證數(shù)據(jù)庫中存儲所述許可證;以及結合用于為所述軟件的所述副本生成另一個許可證的處理查詢所述許可 證數(shù)據(jù)庫。 一
14. 一種用于為安裝在設備(102, 336)上的軟件執(zhí)行激活處理的方法, 所述方法包括-從多個激活模式中選擇(804)激活模式,所述激活模式包括在線激活模 式和離線激活模式,所述在線激活模式在所述設備(102, 336)具有與結合所述軟件的激活使用的權利服務(104)和許可證服務(140)的連通性時提供所 述軟件的所述激活,所述離線激活在所述設備沒有所述連通性時用于所述軟件 的激活;響應于選擇所述在線激活模式,執(zhí)行包括下列步驟的處理與權利服務(104)通信以根據(jù)描述安裝在所述設備上的所述軟件的 第一信息生成包括描述所述軟件的許可證特性的一個或多個權利(152)的權利證書(108);根據(jù)所述軟件的綁定類型生成綁定證書(114);以及 與許可證服務(120)通信以根據(jù)所述綁定證書(114)和所述權利 證書(108)生成許可證(130),所述綁定證書(114)標識所述許可證(130)所綁定的實體;以及 響應于選擇所述離線激活模式與離線激活服務(302)通信,所述離線 激活服務(302)執(zhí)行所述與權利服務(304)的通信、所述生成綁定證書(334)、 所述與許可證服務(320)的通信,所述離線激活服務(302)接收所述許可證 (330)并生成其中編碼了所述一個或多個權利的確認標識符(312)。
15. 如權利要求1所述的方法,其特征在于,選擇所述離線激活模式,所 述方法還包括在所述設備上存儲所述確認標識符供結合啟動所述設備上的所述軟件來 使用。
16. 如權利要求1所述的方法,其特征在于,選擇^f述在線激活模式,所 述方法還包括在所述設備上存儲所述許可證供結合啟動所述設備上的軟件來使用。
17. —種用于為安裝在設備(102, 336)上的軟件執(zhí)行激活處理的系統(tǒng), 所述系統(tǒng)包括權利服務(104, 304),用于根據(jù)描述安裝在所述設備(102, 336)上的 所述軟件的第一信息生成包括描述所述軟件的許可證特性的一個或多個權利 (152, 202)的權利證書(108, 308);存儲在計算機可讀介質上的可執(zhí)行代碼,用于根據(jù)所述軟件的綁定類型生 成綁定證書(114, 334);以及許可證服務(120, 320),用于根據(jù)所述綁定證書(114, 334)和所述權 利證書(108, 308)生成許可證(130, 330),所述綁定證書(114, 334)標 識所述許可證(130, 330)所綁定的實體。
18. 如權利要求17所述的系統(tǒng),其特征在于,還包括 存儲在所述設備的計算機可讀介質上用于選擇在線激活模式或離線激活模式的設備的可執(zhí)行代碼,如果選擇所述在線激活模式,則所述可執(zhí)行代碼執(zhí) 行第一處理操作集合,并且如果選擇所述離線激活模式,則所述可執(zhí)行代碼執(zhí) 行第二處理操作集合;離線激活服務,所述離線激活服務包括存儲在計算機可讀介質上的可執(zhí)行 代碼,其中包括用于生成包括所述設備的硬件標識^:的綁定證書的可執(zhí)行代碼,-用于與所述權利服務、所述許可證服務和結合用于所述激活處理的用戶通信使用的系統(tǒng)通信的可執(zhí)行代碼;以及用于生成在其中編碼了所述一個或多個權利的確認標識符的可執(zhí)行 代碼。
19. 如權利要求18所述的系統(tǒng),其特征在于,所述離線激活服務還包括存儲在計算機可讀介質上的可執(zhí)行代碼,所述可執(zhí)行代碼用于接收包括所述硬件標識符、購買令牌和包信息的安裝標識符,所述第一信 息包括關聯(lián)于所述軟件的購買令牌和所述包信息,所述購買令牌與安裝在所述設備上的所述軟件的副本相關聯(lián),所述包信息是所述軟件的標識符; 從所述安裝標識符提取所述購買令牌和所述包信息;以及 將所述購買令牌和所述包信息發(fā)送至所述權利服務。
20. 如權利要求19所述的系統(tǒng),其特征在于,所述離線激活服務還包括存 儲在計算機可讀介質上的可執(zhí)行代碼,所述可執(zhí)行代碼用于將所述綁定證書和所述權利證書發(fā)送至所述許可證服務;以及 從所述許可證服務接收所述許可證。
全文摘要
描述了用于為安裝在設備上的軟件生成許可證的技術。生成包括描述該軟件的許可證特性的一個或多個權利的權利證書。這一個或多個權利是根據(jù)有關該軟件的第一信息來確定的。第一信息包括購買令牌和包信息中的至少一項。生成根據(jù)該軟件的綁定類型的綁定證書。生成根據(jù)所述綁定證書和所述權利證書的許可證。該綁定證書標識該許可證所綁定的實體。
文檔編號G06F21/22GK101689237SQ200880021792
公開日2010年3月31日 申請日期2008年6月24日 優(yōu)先權日2007年6月25日
發(fā)明者A·T·休斯, A·V·巴克斯特, A·弗蘭克, M·肯沃西, O·西梅塔特 申請人:微軟公司