查看文章
 
SLIC相关原理及使用
2010-02-01 12:36 P.M.

* 简要解释一下SLIC相关原理及使用,对表格内容做一下补充说明

1. 查看SLIC表时要注意,表中数值采用倒序(Little Endian)方式存储,即高位字节在后、低位字节在前,这是IA架构惯用的存储方式。

2. SLIC表提供了验证相关信息。其中表头信息不必解释。SLIC表将验证所需的重要信息保存在Marker Message部分,并加入了数字签名技术以防伪造。
就是说,OEM厂商创建了一对相匹配的公钥和私钥,将私钥秘密保存并用私钥对Marker Message部分进行签名,将签名结果保存在Marker Digital Siginature 部分,并将用来解密的公钥放在Public Key部分发布出来。
任何人都可利用公钥对数字签名通过模幂运算进行解密,然后与Message进行对照验证是否正确。但是没有私钥,无法自己伪造正确的签名。这就保证了所存储信息的安全。
以上概述不尽准确,更具体的过程请参考
http://forums.mydigitallife.info/showthread.php?t=7532

2. 还要防止发布的公钥被篡改,这通过与OEM证书的匹配验证来实现,OEM证书中保存了公钥、OEMIDMarker Version相匹配的信息,可用来匹配验证公钥等信息的正确性、
关于证书与SLIC的匹配参考
http://forums.mydigitallife.info/showthread.php?t=4792 。当然,另一步还要保证OEM证书不被伪造,这不属于本文内容。
(以上两篇参考文章 BIOS之家有oho77的译文)

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

4. SLIC
表由OEM厂商发布,几乎无法伪造。因为它包含了利用RSA算法原理进行加密的数字签名,并使用1024位密钥,理论上说破解它需要的计算资源是不现实的。因此只能从电脑中提取OEM厂商公布的SLIC表。可查看《
多家OEM品牌SLIC2.1及证书打包下载》。当然一些不受保护的部分可以修改,比如表头中的一些内容。

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

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

7. 发布Windows 7以后,大部分OEM厂商可能为省事,仍然使用Vista也就是SLP 2.0时候的密钥。而OEMIDMarker Version部分通常也没改变,因此在Windows 7中仍然可以使用Vista的证书。这些厂商包括HPDELLLenovo等等。部分OEM厂商更换了新的密钥,因此需要新的证书,这包括Acer BenQ等。(对后者,我想如果用Vista也需要使用新的证书)

8. 实际观察SLIC发现,大多数OEM厂商只使用一个OEMID,比如HPOEMIDHPQOEMIBM的为LENOVO。但是也有例外,比如Toshiba,使用TOSASUTOSCPLTOSINV等几个OEMID,因此需要对应不同的OEM证书。

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

10. 整个验证过程重要的是OEMIDOEM Table ID等信息。同一个OEM厂商,通常设置不同的OEM Table ID从而产生不同的SLICMarker部分不同),用于不同的机型。OEM Creator IDRevision等对验证过程基本上没有影响。

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

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

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

* 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
8.
利用OATool,根据OEM IDOEM Table ID等信息,用自己的私钥进行签名,生成 SLIC Marker 部分。该Marker部分包含了Marker版本(是否为2.1)等信息。
7.
按照SLIC结构,建立符合APCI标准,包含OEMIDOEM Table IDPublic Key Marker等部分的SLIC表。
8.
将该SLIC表放到Windows可以通过ACPI_SLIC BIOS系统表访问的BIOS相应位置。并保证RSDTXSDT中的OEMIDOEMTABLEID相一致。
9.
制作包含序列号和证书的自动安装光盘。
*
几个SLIC表相关工具
——用于查看和提取本机SLIC的工具:SLIC_Dump_Toolkit
——
用于查看SLIC文件和防伪验证工具:SLICInfo

——
用于检测和修复SLIC文件校验字节的工具:SLIC-Checker

——
用于验证SLIC文件和OEM证书是否匹配工具:PubKeyCompare
以上可以工具在 《多家OEM品牌SLIC2.1及证书打包下载》中下载。

——
推荐: 用来查看和防伪验证SLIC文件及OEM证书、并验证是否匹配的在线工具
http://www.d-fault.nl/test/
该页面没有制作者信息,前几天看到有人怀疑这是微软或者其他人用来收集相关信息的。这里说明一下,该在线工具可以放心使用,其维护者是 mydigitallife.info 上的网友 freeStyler ,请看
http://forums.mydigitallife.info/showpost.php?p=107444&postcount=257 及该主题相关信息。


类别:Windows7||添加到搜藏 |分享到i贴吧|浏览(176)|评论 (0)
 
最近读者:
 
网友评论:
本篇日志被作者设置为禁止发表新评论

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu