WEB开发网
开发学院操作系统Windows Vista 深入底层 评估Vista内核模式的安全性 阅读

深入底层 评估Vista内核模式的安全性

 2008-01-17 16:58:44 来源:WEB开发网   
核心提示: 下面会寻找系统磁盘(通过OslEnumerateDisks)和加载系统注册表项HKEY_LOCAL_MACHINE(通过OslpLoadSystemHive),当系统注册表项加载后,深入底层 评估Vista内核模式的安全性(6),我们遇到了Vista在启动阶段的第一次代码完整性(通过Osl

下面会寻找系统磁盘(通过OslEnumerateDisks)和加载系统注册表项HKEY_LOCAL_MACHINE(通过OslpLoadSystemHive)。当系统注册表项加载后,我们遇到了Vista在启动阶段的第一次代码完整性(通过OslInitializeCodeIntegrity)。在该处首先会调用MincrypL_SelfTest,MincrypL_SelfTest验证SHA1散列值,并使PKCS1的签名验证开始工作(using a pre-defined test case=通过预定义的测试样例?)。如果预先定义的测试样例失败了,会返回错误代码到0xC0000428。然后,检查调试器是否开启(通过BlBdDebuggerEnabled)。如果在这里检测到调试器在开启状态,会调用KnownAnswerTest。如果没有检测到调试器处在开启状态,会直接跳过该处。

接下来通过BlImgRegisterCodeIntegrityCatalogs从%SystemRoot%System32CatRoot{F750E6C3-38EE-11D1-85E5-00C04FC295EE} t5.cat加载OS的编目录(在内部调用了API函数MinCrypL_AddCatalog)。

当OS 编目录 nt5.cat被加载后,WINLOAD.EXE通过SelfIntegrityCheck对其自身进行完整性检查,这里的检查做了两个事情:

1. 计算PE映像(image)的SHA1哈希值,然后与PE证书表内的SHA1哈希值进行对比,这里的对比必须是匹配的,如果不匹配就会返回一个错误信息。

2. 另外,他也调用ImgpValidateImageHash来验证映象(image)哈希值是否与nt5.cat内的相匹配。ImgpValidateImageHash会调用API函数MinCrypL_CheckSignedFile来验证证书,调用MinCrypL_CheckImageHash来寻找nt5.cat上的映象(image)匹配哈希值。在下面的章节III会讨论通过MinCrypL_CheckSignedFile和 MinCrypL_CheckImageHash进行驱动签名验证。

如果上述的签名过程不匹配,但是调试器在开启状态(BlBdDebuggerEnabled returns TRUE),那么在这里会打印处如下的调试信息:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:深入 底层 评估

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接