如何检查Windows驱动程序是否具有EV证书?

问题描述

因此,在Windows中,您可以转到“数字签名”选项卡以检查文件的证书,但是我如何检查该证书是否为EV证书?会在证书详细信息的某个地方显示它吗?

更明确的问题:假设您在Windows中有签名的驱动程序,如何检查它是否具有EV证书?

解决方法

EV证书是标准的X.509数字证书。识别EV证书的主要方法是参考“证书策略”扩展字段。每个发行者在此字段中使用不同的对象标识符(OID)来标识其EV证书,并且每个OID都记录在发行者的“认证实践声明”中。与一般的根证书颁发机构一样,浏览器可能无法识别所有颁发者。 EV HTTPS证书包含一个带有X.509 OID的主题,用于管辖区法人InstitutionCountryName(OID:1.3.6.1.4.1.311.60.2.1.3),[11] arrivalOfIncorporationStateOrProvinceName(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),其中serialNumber指向相关美国国务卿(US)或政府业务注册机构(美国以外)的ID,以及特定于CA的策略标识符,以便支持EV的软件(例如Web浏览器)可以识别它们。该标识符定义了EV证书,并且与OV证书不同。

来源:Wikipedia

无法从技术上识别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外部CA根”颁发的每个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”。这就是它们的识别方式。

,

EV证书取决于中间证书。

如果驱动程序签名与“ Microsoft代码验证根目录”交叉签名,则Windows将加载

使用signtool verify /v /kp Filename.sys并选中“跨证书链”部分,您应该看到“ Microsoft代码验证根”