我目前正在开发一个脚本程序,该程序通过拍摄某些事物的快照来跟踪操作系统中的更改。其中之一就是证书。目标是查看已安装程序对系统所做的更改。当前的问题是,我一直看到添加的证书是程序没有添加的,Windows添加了。我的目标是防止Windows在测试期间下载证书。通过使用以下命令安装全新的Trust Root Authority证书存储:
CertUtil -GenerateSSTFromWU <filename>
紧随其后的是:
updroots.exe <filename>
问题是,在安装这个新存储后,虽然我确实看到添加的证书减少了,但我仍然看到许多时间戳证书被添加到CurrentUser/CA存储中。我希望有人知道这些证书是从哪里来的,以及我如何预装它们,这样它们就不会在测试中出现。谢谢你的建议。
编辑:
证书示例包括,
Microsoft时间戳PCA 2010
Edit 2.0:
环顾四周,我提到它在当前用户/CA存储中安装了证书,该存储似乎对应于certmgr中的中间证书颁发机构存储。我认为AuthRootAutoUpdate适用于受信任的根证书颁发机构存储。我现在正在调查的问题是,是否有单独的服务负责更新中级证书颁发机构?
Microsoft已经启动了一个项目,在该项目中,根证书被添加到代码中,可能是crypt32.dll。如果无法连接internet,则需要几秒钟的时间,然后这些证书将从dll中复制。有关更多信息,请参阅链接https://learn.microsoft.com/en-us/security/trusted-root/participants-list.
如果您正在运行Get-AuthenticodeSignature -FilePath <some exe or dll file>
,则可以强制执行此操作。
问候,Thomas S.
Windows尝试从ctldl.windowupdate.com获取证书。首先,它尝试获取以下文件:
http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab
http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab
然后,如果需要根证书来检查文件夹中证书的身份,它可以获取根证书:
http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/