Windows 7激活背后的秘密

    Windows7发布已一年了,大家从不熟悉、不习惯,到全面认识、爱不释手。目前,大多数PC厂家都随机安装了正版Windows7操作系统,但大多数都是家庭版。虽然微软官方也发布了在线升级旗舰版的的方法人,但如果要全新安装旗舰版,能免激活吗?还是正版吗?

  一、微软的三大授权方式

  要解决这一问题,需要回过来头来,全新认识微软的正版验证机制。微软公司一直在加强防盗版方面工作,从Vista开始引入了软件保护平台(Software Protection Platform,简称SPP)技术。对零售、OEM和批量激活采用了不同类型的序列号和授权激活方式。从总体上说,Windows 7的许可授权方式分为以下三种:

  1、零售方式。个人选择购买自己喜欢的版本,获得个人授权。用户同时还可以获得表明产品正版的真品证书(Certificate of Authentication,简称COA)。这种方式授权又包括完整授权和升级授权,完整授权是购买一个完整的产品,可以用来安装或者升级,这是所有授权方式中最贵的。升级授权只能用来升级现有系统,比如从Vista到Windows 7。该授权由微软公司提供支持,而且是唯一的授权。

  2、OEM方式。由OEM厂商(比如联想、方正)在出售的电脑中预装,随电脑一起授权使用。系统已经预装在电脑上,同时与电脑主板锁定。通常附带提供COA和用来重装的系统恢复光盘。由OEM厂商提供支持,OEM授权不能用来升级。通常这是最便宜的授权方式。

  3、批量方式。给政府、企业、教育机构等客户进行批量授权。该授权通过相关机构获得和管理,主要适用于Windows的较高级版本(一般不包括家庭版)。这种授权方式包括很多种,比如Open Value、Open License、 Select Plus、 Select License、 Enterprise Agreement、 Enterprise Subscription Agreement等。需要说明的是,批量授权只能用于Windows升级授权不包括完整授权,也就是说电脑已经拥有通过OEM或者零售获得的低版本的Windows授权才能使用批量授权。

  二、OEM授权的三大级别

  由于目前品牌电脑已走入千家万户,因此本文侧重说说OEM的激活原理,让广大朋友知其然也知其所以然。大家熟知的Windows 三大系统,各自采用了不同级别的激活机制。

  1、Windows XP采用的是SLP 1.0版,其原理是检测BIOS中是否存在由OEM硬件厂家设置的特定字串,如果有则认为软件为OEM合法授权可以激活。

  2、Vista 系统开始,SLP 验证技术升级为2.0。主要是加入了利用密钥对信息进行签名的过程。因此验证过程也变得复杂了些,要环环相扣,以防验证信息被伪造。该验证过程需要在BIOS的ACPI中扩展出专门的SLIC表来支持。

  3、Windows 7系列中,采用了SLP 2.1技术,在这个版本中微软并没有对SLP技术进行大的改动,仍然利用SLIC表,而且SLIC表的结构也没有变化,只是将Marker版本变成了2.1,当然这种会造成Marker中数字签名的改变,它对 2.0是兼容的。因此使用SLIC 2.1同样可以用于Vista激活。本文主要针对SLP 2.1方式进行说明。

  三、OEM方式激活必备的三个条件

  1、系统硬件条件。所谓的系统硬件条件,是指BIOS中包含验证所需信息,这是OEM厂商在出厂时提供的。主要是SLIC表,以及RSDT和XSDT中的OEMID、OEM Table ID信息。SLIC表包含OEMID、OEM Table ID、Windows Marker版本、Windows旗标等信息,以及用来对这些信息进行验证保护的OEM厂商公钥和Marker的数字签名。

  这里的验证要求:SLIC表校验正确、数字签名正确、OEM ID和OEM Table ID一致、Windows旗标正确。对于Windows 7还要求Marker的版本号(至少)为0x20001。这是整个OEM激活过程最麻烦的条件。

  2、微软颁发的OEM证书(扩展名为XRM-MS的文件)。该证书为xml格式,需要与对应品牌SLIC匹配。因为该证书中包含了OEMID、OEM公钥等信息,用来与SLIC的相应信息进行验证匹配,防止SLIC被修改。同时需要验证OEM证书本身正确性以防证书被修改,这包括利用中的验证证书内容,用作为微软公钥(与OEM公钥无关)来解密数字签名,从而验证的正确性。验证过程中还包括规范化转换(Canonicalize)和哈希运算等处理。

  3、微软发给OEM厂商的序列号,即Key。OEM厂商的序列号有两种:SLP Key 和非SLP Key。它只与Windows的版本有关,比如用于旗舰版的Key不能用于专业版,与OEM厂商无关,即可用于任何品牌的OEM系统。

  SLP Key 是微软颁发给大的OEM厂商,比如Lenovo、HP等使用。用来由OEM厂商进行批量预安装时使用,用户无法直接获得,它是唯一可以不必联系微软就可以进行离线激活的序列号。非SLP Key由微软发给一些小的OEM厂商,与零售版的序列号类似,需要电话激活或者在线激活。这种方式很少见,不在本文讨论的范畴。本文讨论的激活方式是采用SLP方式,因此需要SLP序列号。

  四、正版验证的过程

  1、检查SLIC。可以使用SLIC_Dump_ToolKit 查看本机的SLIC版本及Marker是否正常、及OEMID是否一致等信息。

  2、检查证书。使用SLIC_Dump_ToolKit将本机SLIC保存,使用PubkeyCompare验证该SLIC与证书是否匹配。另外用SlicInfo和CertInfo验证SLIC和证书是否伪造。

  3、检查序列号。使用Windows 7 PID Key Checker检查序列号是否为 OEM:SLP 类别。

  五、OEM激活具体验证过程

  满足以上条件以后,就可以进入激活过程。前面提到整个验证过程是层层嵌套环环相扣的过程,以保证以上各项信息的正确性。下面是整个验证过程。

  1、激活程序启动以后,如果检测到正确的SLP Key,开始OEM激活过程,否则进行WPA方式激活(在线或者电话激活)。

  2、检测OEM证书,并且利用OEM证书的数字签名,验证OEM证书的正确性,如果验证通过继续OEM激活,否则进行WPA激活。

  3、将SLIC中的OEM公钥、OEMID等信息与OEM证书中的信息相比较,如果匹配正确(表明OEM公钥等信息正确)则继续进行OEM激活,否则进行WPA激活。

  4、利用OEM公钥,对SLIC中Marker数字签名进行验证,如果 验证通过(表明Marker中Message信息正确)则继续OEM激活,否则WPA激活。

  5、验证Marker中的Windows旗标,如果旗标存在,则OEM激活过程继续,否则进行WPA激活。

  6、 验证Marker的版本,如果(至少)为0x20001,则OEM激活过程继续,否则OEM激活失败,进行WPA激活。

  7、获取Marker中的OEM ID和OEM Table ID信息,将它与所有ACPI表头中的对应信息进行比较,如果一致则OEM激活成功,如果不一致则触发WPA激活过程。

北大青鸟网上报名
北大青鸟招生简章