一、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部分)。
重要。备用的标记版本信息,SLIC2.1中使用。
关于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证书。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-25661-1.html
你刚发现这个问题吗