数字签名

数字签字是一种向用户保证数字文件来自可识别的来源并且未被篡改的机制。数字签字通常包括一系列证书。数字文件的发布者使用证书颁发机构 (CA) 颁发的证书生成数字签名。CA 负责验证发布者的身份。该 CA 的证书可能又由另一个 CA 颁发,以此类推回到根 CA。(可以有多个根。) 通过这种方式,证书形成一个链,如下图所示。

图形图像

Windows 操作系统 (OS) 在每台计算机和每个用户的基础上存储受信任和不受信任的发布者和 CA 的证书和列表。可以使用 Microsoft 管理控制台的“证书”管理单元查看和管理存储在操作系统上的证书。

数字签名 DNA 的捕获

将应用程序导入 AppDNA 时,导入过程会捕获有关应用程序文件中找到的任何数字签名的信息。如果存在,数字签名通常位于应用程序的可移植可执行 (PE) 文件(如可执行文件和 DLL)中。但是,对于驱动程序,数字签名可以位于关联的目录文件中。

导入过程提取并存储签名的基本详细信息和有关证书链中每个证书的信息。导入过程尝试确定签名在 AppDNA 导入计算机上的证书链上下文中是否有效。但是,如果存储的证书信息不同,则其他计算机或操作系统或其他用户的结果可能会有所不同。出于这个原因,一些算法会对选定的操作系统映像进行额外的检查。

导入过程不检查证书吊销列表,因为这会使导入速度降低到不可接受的程度。

Windows 8 和 Windows Server 2012 上不受信任的签名

Windows 8 和 Windows Server 2012 都阻止运行不受信任的发布者签名的文件。这样做的实际影响取决于受影响的文件。如果它是主应用程序可执行文件,则应用程序将无法运行 — Windows 向用户提供一条消息,说明该应用程序不符合签名要求。但是,如果受影响的文件是次要 DLL,则应用程序可能会运行,但在调用依赖于 DLL 的功能时将失败。如果受影响的文件是内核模式驱动程序,则可能无法安装或运行驱动程序。

内核模式驱动程序是在“主管模式”下运行的设备驱动程序,与在标准“用户模式”下运行的驱动程序相比,它提供了对低级功能和性能优势的特权访问。如果在主管模式下运行的程序失败,则可能会导致整个系统失败。因此,Windows Server 2012 和 64 位版本的 Windows 8 会阻止运行和运行不受信任的发布者签名的内核模式驱动程序。

注意:有时,一个应用程序可能包含来自多个发布者的多个数字签名,例如,如果应用程序包含也签名的第三方组件。

Windows 8 和 Windows Server 2012 算法

以下算法检测包含不受信任的数字签名的文件。不受信任意味着发布者或链中的某个 CA 显示在存储在目标操作系统映像中的不受信任发布者和 CA 列表中。因此,这些算法的结果取决于所选的目标操作系统映像。

  • 对于 Windows 8 和 Windows 8.1:WIN8_UNTRUSTED_001
  • 对于 Windows Server 2012 和 Windows Server 2012 R2:W2K12_UNTRUSTED_001

修复报告视图提供有关应用程序中的哪个文件受影响、这是否是驱动程序以及不受信任证书的详细信息的信息。

补救

对于外部应用程序,请与制造商联系,以获取由受信任的发布者签名的应用程序或驱动程序的更新版本。

如果这不可能,请调查发布者或 CA 位于不受信任列表中的原因。您可以使用 Microsoft 管理控制台的“证书”管理单元从操作系统映像中的不受信任列表中删除发布者。但是,如果不首先确定应用程序的确值得信赖,并且应用程序是安全的并且符合安全策略,就不应该这样做。

有关打开证书管理单元的说明,请参阅 Microsoft 网站查看或管理您的证书上的。打开“证书”管理单元后,请使用“帮助”查看有关查看和管理证书的详细文档。