Windows 7激活背后的秘密

    Windows7發(fā)布已一年了,大家從不熟悉、不習慣,到全面認識、愛不釋手。目前,大多數(shù)PC廠家都隨機安裝了正版Windows7操作系統(tǒng),但大多數(shù)都是家庭版。雖然微軟官方也發(fā)布了在線升級旗艦版的的方法人,但如果要全新安裝旗艦版,能免激活嗎?還是正版嗎?

  一、微軟的三大授權方式

  要解決這一問題,需要回過來頭來,全新認識微軟的正版驗證機制。微軟公司一直在加強防盜版方面工作,從Vista開始引入了軟件保護平臺(Software Protection Platform,簡稱SPP)技術。對零售、OEM和批量激活采用了不同類型的序列號和授權激活方式。從總體上說,Windows 7的許可授權方式分為以下三種:

  1、零售方式。個人選擇購買自己喜歡的版本,獲得個人授權。用戶同時還可以獲得表明產(chǎn)品正版的真品證書(Certificate of Authentication,簡稱COA)。這種方式授權又包括完整授權和升級授權,完整授權是購買一個完整的產(chǎn)品,可以用來安裝或者升級,這是所有授權方式中最貴的。升級授權只能用來升級現(xiàn)有系統(tǒng),比如從Vista到Windows 7。該授權由微軟公司提供支持,而且是唯一的授權。

  2、OEM方式。由OEM廠商(比如聯(lián)想、方正)在出售的電腦中預裝,隨電腦一起授權使用。系統(tǒng)已經(jīng)預裝在電腦上,同時與電腦主板鎖定。通常附帶提供COA和用來重裝的系統(tǒng)恢復光盤。由OEM廠商提供支持,OEM授權不能用來升級。通常這是最便宜的授權方式。

  3、批量方式。給政府、企業(yè)、教育機構等客戶進行批量授權。該授權通過相關機構獲得和管理,主要適用于Windows的較高級版本(一般不包括家庭版)。這種授權方式包括很多種,比如Open Value、Open License、 Select Plus、 Select License、 Enterprise Agreement、 Enterprise Subscription Agreement等。需要說明的是,批量授權只能用于Windows升級授權不包括完整授權,也就是說電腦已經(jīng)擁有通過OEM或者零售獲得的低版本的Windows授權才能使用批量授權。

  二、OEM授權的三大級別

  由于目前品牌電腦已走入千家萬戶,因此本文側重說說OEM的激活原理,讓廣大朋友知其然也知其所以然。大家熟知的Windows 三大系統(tǒng),各自采用了不同級別的激活機制。

  1、Windows XP采用的是SLP 1.0版,其原理是檢測BIOS中是否存在由OEM硬件廠家設置的特定字串,如果有則認為軟件為OEM合法授權可以激活。

  2、Vista 系統(tǒng)開始,SLP 驗證技術升級為2.0。主要是加入了利用密鑰對信息進行簽名的過程。因此驗證過程也變得復雜了些,要環(huán)環(huán)相扣,以防驗證信息被偽造。該驗證過程需要在BIOS的ACPI中擴展出專門的SLIC表來支持。

  3、Windows 7系列中,采用了SLP 2.1技術,在這個版本中微軟并沒有對SLP技術進行大的改動,仍然利用SLIC表,而且SLIC表的結構也沒有變化,只是將Marker版本變成了2.1,當然這種會造成Marker中數(shù)字簽名的改變,它對 2.0是兼容的。因此使用SLIC 2.1同樣可以用于Vista激活。本文主要針對SLP 2.1方式進行說明。

  三、OEM方式激活必備的三個條件

  1、系統(tǒng)硬件條件。所謂的系統(tǒng)硬件條件,是指BIOS中包含驗證所需信息,這是OEM廠商在出廠時提供的。主要是SLIC表,以及RSDT和XSDT中的OEMID、OEM Table ID信息。SLIC表包含OEMID、OEM Table ID、Windows Marker版本、Windows旗標等信息,以及用來對這些信息進行驗證保護的OEM廠商公鑰和Marker的數(shù)字簽名。

  這里的驗證要求:SLIC表校驗正確、數(shù)字簽名正確、OEM ID和OEM Table ID一致、Windows旗標正確。對于Windows 7還要求Marker的版本號(至少)為0x20001。這是整個OEM激活過程最麻煩的條件。

  2、微軟頒發(fā)的OEM證書(擴展名為XRM-MS的文件)。該證書為xml格式,需要與對應品牌SLIC匹配。因為該證書中包含了OEMID、OEM公鑰等信息,用來與SLIC的相應信息進行驗證匹配,防止SLIC被修改。同時需要驗證OEM證書本身正確性以防證書被修改,這包括利用中的驗證證書內(nèi)容,用作為微軟公鑰(與OEM公鑰無關)來解密數(shù)字簽名,從而驗證的正確性。驗證過程中還包括規(guī)范化轉換(Canonicalize)和哈希運算等處理。

  3、微軟發(fā)給OEM廠商的序列號,即Key。OEM廠商的序列號有兩種:SLP Key 和非SLP Key。它只與Windows的版本有關,比如用于旗艦版的Key不能用于專業(yè)版,與OEM廠商無關,即可用于任何品牌的OEM系統(tǒng)。

  SLP Key 是微軟頒發(fā)給大的OEM廠商,比如Lenovo、HP等使用。用來由OEM廠商進行批量預安裝時使用,用戶無法直接獲得,它是唯一可以不必聯(lián)系微軟就可以進行離線激活的序列號。非SLP Key由微軟發(fā)給一些小的OEM廠商,與零售版的序列號類似,需要電話激活或者在線激活。這種方式很少見,不在本文討論的范疇。本文討論的激活方式是采用SLP方式,因此需要SLP序列號。

  四、正版驗證的過程

  1、檢查SLIC?梢允褂肧LIC_Dump_ToolKit 查看本機的SLIC版本及Marker是否正常、及OEMID是否一致等信息。

  2、檢查證書。使用SLIC_Dump_ToolKit將本機SLIC保存,使用PubkeyCompare驗證該SLIC與證書是否匹配。另外用SlicInfo和CertInfo驗證SLIC和證書是否偽造。

  3、檢查序列號。使用Windows 7 PID Key Checker檢查序列號是否為 OEM:SLP 類別。

  五、OEM激活具體驗證過程

  滿足以上條件以后,就可以進入激活過程。前面提到整個驗證過程是層層嵌套環(huán)環(huán)相扣的過程,以保證以上各項信息的正確性。下面是整個驗證過程。

  1、激活程序啟動以后,如果檢測到正確的SLP Key,開始OEM激活過程,否則進行WPA方式激活(在線或者電話激活)。

  2、檢測OEM證書,并且利用OEM證書的數(shù)字簽名,驗證OEM證書的正確性,如果驗證通過繼續(xù)OEM激活,否則進行WPA激活。

  3、將SLIC中的OEM公鑰、OEMID等信息與OEM證書中的信息相比較,如果匹配正確(表明OEM公鑰等信息正確)則繼續(xù)進行OEM激活,否則進行WPA激活。

  4、利用OEM公鑰,對SLIC中Marker數(shù)字簽名進行驗證,如果 驗證通過(表明Marker中Message信息正確)則繼續(xù)OEM激活,否則WPA激活。

  5、驗證Marker中的Windows旗標,如果旗標存在,則OEM激活過程繼續(xù),否則進行WPA激活。

  6、 驗證Marker的版本,如果(至少)為0x20001,則OEM激活過程繼續(xù),否則OEM激活失敗,進行WPA激活。

  7、獲取Marker中的OEM ID和OEM Table ID信息,將它與所有ACPI表頭中的對應信息進行比較,如果一致則OEM激活成功,如果不一致則觸發(fā)WPA激活過程。

北大青鳥網(wǎng)上報名
北大青鳥招生簡章