硬件驱动为什么要有WHQL数字签名

硬件驱动要有WHQL数字签名才能实现正常安装、启动、运行,并实现驱动静默安装。

目前的桌面操作系统中,Windows系统市场占有率处于优势,Windows 的各个版本的系统加起来几乎占领了大部分市场。所以很多工业和行业的硬件设备都要考虑兼容在Windows系统上使用,这个使用过程中难免涉及设备的驱动使用(驱动是硬件设备和Windows系统联接传输数据的桥梁,没有驱动的硬件设备是无法正常工作的),但Windows系统对驱动的安装、启动、运行有一个较重要的要求,那就是相关的驱动文件需要加上数字签名。

如果该驱动程序文件在沃通CA做过 WHQL,则右键属性弹出的窗口中有一个选项卡“数字签名”,点击详细信息会看到具体的数字签名证书详情。

假设驱动安装时没有数字签名会怎样?我们看以下截图:

没有WHQL签名驱安装时提示“Windows 无法验证此驱动程序软件的发布者”或驱动没有效数字签名之类的警告:

而且,没有数字签名的驱动程序安装到 Windows中后,在设备管理器里,设备会显示感叹号,无法启动工作,如下图:

所以,如果一个硬件驱动没有微软发布的数字签名,则会在安装时会被Windows 拦截警告,提示没有数字签名或者驱动没有发布者,而且更可能的是导致设备驱动启动不了不工作。这一切源于微软对Windows系统保护,防止没有进行数字签名认证的驱动对Windows造成的破坏,因为驱动会涉及到系统内核中一些重要的指令,稍有不慎就造成Windows系统的死机和蓝屏。

可能有驱动开发者要问,我可以用代码签名证书为驱动进行数字签名,为什么要WHQL签名?

因为根据微软新政策,受微软信任的第三方内核模式代码签名交叉证书,将于2021年4月全部到期。此后,微软将成为Windows内核模式代码(驱动程序)签名的提供商。也就是说,以前第三方CA颁发的代码证书可以签名驱动使用,是因为签名时有微软给的交叉证书,现在微软给的交叉证书到期了,以后驱动签名规则其实是变了,驱动是在系统内核模式下工作的,所以绝大数驱动都是要经过WHQL测试认证,从而获得微软官方发布的数字签名才可以正常工作。

如下是微软给第三方CA颁发的可信交叉证书到期时间:

同时,经过WHQL测试认证签名后的硬件驱动安装时会实现驱动静默安装,不会弹出任何警告,可以给用户很好的使用体验,让驱动有很好的稳定性,不会像用代码签名证书签名后的驱动安装时会弹出如下弹窗(Trusted publishers警告):

WHQL签名认证其实是有其自身复杂性,具有一定的技术门槛,不管是在认证平台搭建环节,或者对微软签名策略的了解,以及驱动签名对各版本Windows系统的适配性,甚至认证过程中对驱动的必要修改,这对很多驱动开发者或驱动开发企业的开发人员来说,很难详细掌握。沃通CA作为一家专注于数字证书领域多年的企业,拥有成熟的WHQL测试经验和相关技术,根据市场需求,为广大驱动开发者提供了多种WHQL认证方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器数据恢复—raid5上层NTFS分区误删除/格式化的数据恢复案例

NTFS是windows操作系统服务器应用最为广泛的文件系统之一。理论上,NTFS文件系统格式化操作虽然不会对数据造成太大的影响,但是有可能会出现部分文件目录结构丢失的情况。下面介绍一台服务器误操作导致raid5阵列上层的NTFS分区被格式化后如何逆向操作恢复…

【接口自动化测试】HTTP协议详解

协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合。 OSI模型 1978年国际化标准组织提出了“开放系统互联网…

了解JVM的相关概述,发现很多全忘了(文末福利)

1、学之前存在的问题 1、你被JVM伤害过吗? 你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!想解决线上JVM GC问题,但却无从下手。新项目上线,对各种JVM参数设置一…

Java学习笔记44——Stream流

Stream流 体验Stream流Stream流的生成方式ColLection体系的集合可以使用默认方法stream ()生成流Map体系的集合间接的生成流数组可以通过stream接口的静态方法of (T... values)生成流 Stream流的中间操作方法Stream<T> filter(Predicate predicate)Stream<T>limit(…

clusterProfiler包学习

&#x1f4d6; Introduction | Biomedical Knowledge Mining using GOSemSim and clusterProfiler (yulab-smu.top) 部分使用 #GO classificationlibrary(clusterProfiler) data(geneList, package"DOSE") gene <- names(geneList)[abs(geneList) > 2]# Entre…

【C++上层应用】7. Web编程*

文章目录 【 1. CGI 简介 】【 2. Web浏览 】 【 1. CGI 简介 】 公共网关接口&#xff08;Common Gateway Interface&#xff0c;CGI&#xff09;&#xff0c;是一套标准&#xff0c;定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的。CGI 规范目前是由 NCSA 维护的…

在Spring Boot中使用Thymeleaf开发Web页面

引言&#xff1a; 为啥写这篇文章呢&#xff1f;我明明就没怎么用过这个Thymeleaf进行web开发&#xff0c;用JSP也行&#xff0c;三剑客也行&#xff0c;或者Vue&#xff0c;React&#xff0c;PHP等等&#xff0c;不好吗&#xff1f; 那我为啥写这篇博客呢&#xff1f;这个写了…

基于安卓android微信小程序的刷题系统

项目介绍 面试刷题系统的开发过程中&#xff0c;采用B / S架构&#xff0c;主要使用jsp技术进行开发&#xff0c;中间件服务器是Tomcat服务器&#xff0c;使用Mysql数据库和Eclipse开发环境。该面试刷题系统包括会员、答题录入员和管理员。其主要功能包括管理员&#xff1a;个…

Oracle-分析函数(累计求和,排序等)

在Oracle中分析函数又称为开窗函数 分为以下两类&#xff1a; 第一类&#xff1a;是聚合分析函数&#xff0c;主要包含&#xff08;sum&#xff0c;count&#xff0c;AVG、MAX、MIN等&#xff09;&#xff0c;主要是对内部分组的数值按照要求内部聚合处理&#xff1b; 第二类&a…

开发《猫咪攻略》小游戏的意义

开发《猫咪攻略》小游戏的意义有以下几点&#xff1a; 学习和掌握游戏开发的基本技能&#xff1a;通过开发《猫咪攻略》小游戏&#xff0c;可以学习和掌握游戏开发的基本技能&#xff0c;包括游戏策划、游戏设计、游戏编程和游戏测试等方面的技能。增强对猫咪的了解和认识&…

【Linux系统化学习】进程的状态 | 僵尸进程 | 孤儿进程

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 目录 操作系统进程的状态 运行状态 阻塞状态 进程阻塞的现象 挂起阻塞状态 Linux进程状态 Linux内核源代码怎么说 R&#xff08;running状态&#xff09;运行状态 S&#xff08;sl…

关于漏洞:检测到目标SSL证书已过期【原理扫描】

这个漏洞是监听443端口的&#xff0c;如果我们是正式的网站且使用了https那么更新证书即可。 但是我的服务器上面几乎是个空服务器&#xff0c;谁会用443呢&#xff1f; 找不到谁用了那我就部署一个nginx&#xff0c;用nginx代理443&#xff0c;找个证书配一下呗。 然而当我…

CNN卷积神经网络Python实现

import torch from torch import nn# ①定义互相关运算 def corr2d(X, K):"""计算二维互相关运算。"""# 获取K的形状 行为h,列为wh, w K.shape# 生成全0的矩阵&#xff0c;行为X的行减去h加上1&#xff0c;列为X的列减去w加上1Y torch.zeros((…

rabbit MQ的延迟队列处理模型示例(基于SpringBoot)

说明&#xff1a; 生产者P 往交换机X&#xff08;typedirect&#xff09;会发送两种消息&#xff1a;一、routingKeyXA的消息&#xff08;消息存活周期10s&#xff09;&#xff0c;被队列QA队列绑定入列&#xff1b;一、routingKeyXB的消息&#xff08;消息存活周期40s&#xf…

Prolog 中的逻辑探险:学习9组逻辑蕴涵公式

引言 上次写了16组等价公式定律,今天继续用Prolog写9组逻辑蕴涵公式。 感觉这些公式的名称与公式挺难一一对应来记忆的,只能多练习了. 1. 附加律 (Addition) A ⇒ A∨B 当你拿到一个苹果&#xff08;A&#xff09;&#xff0c;突然你知道&#xff0c;即使有了梨&#xff08;…

用向量数据库Milvus Cloud搭建GPT大模型+私有知识库的定制商业文案助手

随着智能助手的不断普及和发展,商业文案的创作也变得更加智能化和定制化。在这个信息爆炸的时代,商业文案的撰写已经不再是简单的文字表达,而是需要结合大数据分析和人工智能技术,以更好地满足目标客群的需求。在本文中,我们将介绍如何利用向量数据库Milvus Cloud搭建GPT大…

Nosql的redis概述及基本操作

关系数据库与非关系型数据库概述 关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上&#xff0c;一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言&#xff0c;用于执行对关系型…

tokenizers Tokenizer 类

Tokenizer 类 依赖安装 pip install tensorflow pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple基类原型 tokenizers.Tokenizer(model)基类说明 Tokenizer 函数构造一个分词器对象。分词方式主要有word-level、subword-level、char-level三种&#x…

3.什么是Spring IOC 容器?有什么作用?

什么是Spring IOC 容器 控制反转即IoC (Inversion of Control)&#xff0c;它把传统上由程序代码直接操控的对象的调用权交给容器&#xff0c;通过容器来实现对 象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移&#xff0c;从程序代码本身转移到了外部…

软件测试/人工智能丨人工智能取代软件测试团队

在数字时代&#xff0c;人工智能&#xff08;AI&#xff09;和软件测试如同两位不同领域的英雄&#xff0c;各自拥有独特的技能和力量。然而&#xff0c;当这两者碰撞在一起时&#xff0c;究竟会擦出怎样的火花呢&#xff1f;让我们进入这场奇妙的对决&#xff0c;探索AI如何改…