所以在Windows中你可以进入数字签名选项卡来检查文件的证书,但是我如何检查证书是否是EV证书?它是否在证书的详细信息中显示了它?
更明确的问题:假设您在 Windows 中有一个签名的驱动程序,如何检查它是否具有 EV 证书?
EV证书依赖于中级证书。
如果驱动程序签名与“Microsoft 代码验证根”交叉签名,则 Windows 会加载
使用
signtool verify /v /kp Filename.sys
并检查“跨证书链”部分,您应该看到“Microsoft代码验证根”
EV 证书 是标准 X.509 数字证书。识别 EV 证书的主要方法是引用证书策略扩展字段。每个颁发者在此字段中使用不同的对象标识符 (OID) 来标识其 EV 证书,并且每个 OID 都记录在颁发者的认证实践声明中。与一般的根证书颁发机构一样,浏览器可能无法识别所有颁发者。
EV HTTPS 证书 包含具有 X.509 OID 的主题,其为 JuiceOfIncorporationCountryName(OID:1.3.6.1.4.1.311.60.2.1.3),[11] JuiceOfIncorporationStateOrProvinceName(OID:1.3.6.1.4.1.311.60.2.1.2) ) (可选),[12]jurisdictionLocalityName(OID:1.3.6.1.4.1.311.60.2.1.1)(可选),[13]businessCategory(OID:2.5.4.15)和serialNumber(OID:2.5.4.5),其中指向相关国务卿(美国)或政府商业注册机构(国外)的 ID 的序列号US),以及 CA 特定的策略标识符,以便 EV 感知软件(例如 Web 浏览器)可以识别它们。该标识符定义了 EV 证书,也是与 OV 证书的区别。
来源:维基百科
EV证书在技术上无法识别。 浏览器供应商维护策略 OID 列表。这是 Google Chrome 的一个:https://chromium.googlesource.com/chromium/src/net/+/master/cert/ev_root_ca_metadata.cc
举个例子:
// AddTrust External CA Root
// https://addtrustexternalcaroot-ev.comodoca.com
{
{{0x68, 0x7f, 0xa4, 0x51, 0x38, 0x22, 0x78, 0xff, 0xf0, 0xc8, 0xb1,
0x1f, 0x8d, 0x43, 0xd5, 0x76, 0x67, 0x1c, 0x6e, 0xb2, 0xbc, 0xea,
0xb4, 0x13, 0xfb, 0x83, 0xd9, 0x65, 0xd0, 0x6d, 0x2f, 0xf2}},
{
"1.3.6.1.4.1.6449.1.2.1.5.1",
// This is the Network Solutions EV OID. However, this root
// cross-certifies NetSol and so we need it here too.
"1.3.6.1.4.1.782.1.2.1.8.1",
},
},
您会在“AddTrust external CA Root”颁发的每个 EV 证书中找到 OID“1.3.6.1.4.1.6449.1.2.1.5.1”或“1.3.6.1.4.1.782.1.2.1.8.1”。这就是它们的识别方式。