Keep on going, never give up.

BIOS SLIC 2.1的组成结构

本文介绍一下SLIC 2.1的组成结构,来源于网络汇总,对于想学习和研究BIOS SLIC的网友有很大帮助作用,当然厂家也不可能把这个结构信息完全公开给各位学习和研究,所以表中描述结构仅供研究参考,未必完全正确。

本文主体内容转载自网络,天缘略加编辑,原文链接请参考文末,在这里向原作者表示敬意!

一、SLIC 2.1的组成结构

SLIC全称Software Licensing Internal Code,从Windows XP开始引入SLP(System-Locked Preinstallation)预安装锁定机制,位于BIOS的ACPI段中,该技术仅用于OEM产品激活。Windows 7采用SLP 2.1技术。 

SLIC是由OEM厂商根据微软的要求进行制作,包含SLP 2.x验证需要的相关信息。SLIC表组成结构如下表所示,SLIC总体分三个部分,一个表头部分(表名表长及OEM标示等)和两个内容存储部分(Public Key和Maker部分)。

位置
中文描述
英文描述
字节长度
说    明
000~023
表头部分
Header
36
提供SLIC表相关基本信息。
 
000~003
标识
Signature
4
表名: SLIC
004~007
表长
Length
4
整个表的长度: 176H,即374字节。
008
修订
Revision
1
SLIC的版本,目前为1
009
校验位
Checksum
1
重要。修正此项使整个SLIC表校验和为0
00A~00F
OEM标识
OEMID
6
重要。用来标识OEM厂商。
010~017
OEM Table 标识
OEM Table ID
8
重要。OEM厂商用来标识机型、主板或者BIOS。
018~01B
OEM 修订
OEM Revision
4
OEM 厂商进行的修订,主要为提供 OEM Table ID
01C~01F
创建者标识
Creator ID
4
创建此表的工具提供者标识
020~023
创建者修订
Creator Revision
4
创建此表的工具修订信息
 
024~0BF
软件许可公钥部分
Software Licensing Public Key structure
156
由OEM厂商创建并提供的RSA公钥,二进制形式
 
03C~03F
公钥指数
Public Key Exponent
4
RSA公钥的指数部分,总是为 01 00 01 00 。
040~0BF
公钥模数
Public Key Modulus
128
RSA公钥的模数部分,用来解密数字签名 。
 
0C0~175
软件许可Windows标记部分
Software Licensing Windows marker structure
182
Windows 标记信息及其数字签名
 
0C8~0F5
标记信息
Marker Message
46
Windows 标记所包含信息
 
0C8~0CB
标记版本
Windows Marker Version
4
目前总是为00 00 02 00 。
0CC~0D1
OEM标识
OEMID
6
重要。同上。
0D2~0D9
OEM Table 标识
OEM Table ID
8
重要。同上。
0DA~0E2
Windows 旗标
Windows Flag
8
总是为 “Windows ”
0E2~0E5
备用标记版本
Reserved Marker Version
4
重要。备用的标记版本信息,SLIC2.1中使用。
0E6~0F5
备用字节
Reserved Bytes
16
为保存将来信息备用。目前总是全部为00 。
0F6~175
标记数字签名
Marker Digital Signature
128
Windows 标记信息的数字签名,用来保护标记信息

关于SLIC 2.1组成结构的补充说明部分:

1. SLIC表字段存储采用Little Endian方式存储,即高位字节在后、低位字节在前,这是IA架构惯用的存储方式。

2. SLIC表将验证所需的重要信息保存在Marker Message部分,并加入了数字签名技术以防伪造。OEM厂商创建了一对相匹配的公钥和私钥,将私钥秘密保存并用私钥对Marker Message部分进行签名,将签名结果保存在Marker Digital Siginature 部分,并将用来解密的公钥放在Public Key部分发布出来。任何人都可利用公钥对数字签名通过模幂运算进行解密,然后与Message进行对照验证是否正确。但是没有私钥,无法自己伪造正确的签名。这就保证了所存储信息的安全。

3、为防止发布的公钥被篡改,该项保护通过与OEM证书的匹配验证来实现,OEM证书中保存了公钥、OEMID、Marker Version相匹配的信息,可用来匹配验证公钥等信息的正确性 。当然,另一步还要保证OEM证书不被伪造,这不属于本文内容。

4、SLIC的正确性检查还包括校验正确,OEMID 和OEMTableID 和 RSDT 以及 XSDT 中的相应部分一致等。

5、SLIC表由OEM厂商发布,几乎无法伪造,因为它包含了利用RSA算法原理进行加密的数字签名,并使用1024位密钥,因此只能从电脑中提取OEM厂商公布的SLIC表,当然一些不受保护的部分可以修改,比如表头中的一些内容。

6、SLP 2.0的时候,微软使用Windows Marker Version部分表示版本,但是该部分受到匹配OEM证书的保护。如果改变就需要新的OEM证书。可能微软觉得麻烦,在2.1中改用原来保留字节 0E2~0E5做为新的Marker版本,该部分还没有名字,这里的名字(Reserved Marker Version)是我加的。

7、由于Messege部分的 Reserved Marker Version 做了改变,即使OEMID、OEM Table ID和公钥没有改变,Marker中的数字签名需要重新生成。我想这可能是SLIC 2.0 和2.1的仅有区别。

8、发布Windows 7以后,大部分OEM厂商可能为省事,仍然使用Vista也就是SLP 2.0时候的密钥。而OEMID、Marker Version部分通常也没改变,因此在Windows 7中仍然可以使用Vista的证书。这些厂商包括HP、DELL、Lenovo等等。部分OEM厂商更换了新的密钥,因此需要新的证书,这包括Acer、 BenQ等。

9、实际观察SLIC发现,大多数OEM厂商只使用一个OEMID,比如HP的OEMID为HPQOEM,IBM的为LENOVO。但是也有例外,比如Toshiba,使用TOSASU、TOSCPL、TOSINV等几个OEMID,因此需要对应不同的OEM证书。

10、对绝大数相同OEMID,使用同一个密钥,因此可使用同一个OEM证书,而不必管OEM Table ID是什么。比如,LENOVOTP-6F、LENOVOTP-6H、LENOVOTC-5I、LENOVOTP-7X等等都可以使用同一个证书。但也有个别例外,比如OEMID同为PacBel的SLIC 2.0就采用了两种以上的密钥,需要对应不同证书。

11、整个验证过程重要的是OEMID、OEM Table ID等信息。同一个OEM厂商,通常设置不同的OEM Table ID从而产生不同的SLIC(Marker部分不同),用于不同的机型。OEM Creator ID、Revision等对验证过程基本上没有影响。

12、并非所有的SLIC表在BIOS中都是这种标准构成形式,有的形式可能有所改变,比如听说有的DELL的Marker部分和Public Key部分会调换等。

13、微软在盗版保护有关说明中提到,BIOS中的SLIC有关信息是不能改变的,包括BIOS中的其他有关验证内容。因此有些OEM刷新程序在更新BIOS的时候会跳过SLCI部分,以防止SLIC被修改。

14、SLIC主要用来提供正确的OEM厂商相关信息,与Windows版本无关。也就是说同样SLIC可以用于32或64位Windows 7各种版本的安装。而且SLIC 2.1可以向下兼容各种版本Vista的安装。

二、OEM厂商制作和使用SLIC表的过程说明

了解SLIC表的制作过程可以有助于更好的理解SLIC表的内容。OEM厂商制作SLIC表的过程如下:

1. 到微软OEM在线(MOO)网站提交OEM激活2.x的申请材料。

2. 获得相关激活资料,包括激活工具 OATool.exe 。

3. 利用OATool 产生一对匹配的RSA公钥(Public Key)和密钥。

4. 利用OATool,创建SLIC Public Key 部分,和包含公钥、OEMID等信息的待签名xml文件。

5. 将该xml文件提交给微软,获得经过微软签名认证过的OEM证书。

6. 根据产品情况设置OEM Table ID。

7. 利用OATool,根据OEM ID和OEM Table ID等信息,用自己的私钥进行签名,生成 SLIC Marker 部分。该Marker部分包含了Marker版本(是否为2.1)等信息。

8. 按照SLIC结构,建立符合APCI标准,包含OEMID、OEM Table ID、Public Key 和Marker等部分的SLIC表。

9. 将该SLIC表放到Windows可以通过ACPI_SLIC BIOS系统表访问的BIOS相应位置。并保证RSDT和XSDT中的OEMID、OEMTABLEID相一致。

10. 制作包含序列号和证书的自动安装光盘。

 

原文链接:hi.baidu.com/elffin/blog/item/fbab8ced160438db2e2e21f0.html

相关参考链接:

http://www.bios.net.cn/bbs/thread-66783-1-7.html

http://forums.mydigitallife.info/showthread.php?t=7532

http://forums.mydigitallife.info/showthread.php?t=4792

 

更多文章:

SLIC版本查看器及备份工具下载 + 使用教程

Windows RC版、RTM版、OEM版、RTL版、VOL版的区别

OGA、WGA正版增值计划、WAT激活技术介绍

MSDN、OEM、VOL、RETAIL密钥区别

Windows安装密钥、产品ID 、安装ID、WGA概念与关系

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.