如果你是软件发布者或开发者,在运行或分发软件时一定遇到过「未知发布者警告」(Unknown Publisher Warning)。当应用程序没有来自受信任证书颁发机构(CA)的有效数字签名时,就会弹出这条警报。忽视该警告会损害软件的声誉,用户也会收到安全提示,从而在安装前犹豫不决。来自受信任 CA 的代码签名证书(如 Comodo、Sectigo 等)有助于避免这些警告,并向用户证明软件是合法的。下面我们先弄清「未知发布者」警告背后的原因,再给出详细的修复方法,同时说明其中潜在的安全风险。
软件代码签名中的未知发布者警告是什么?
未知发布者警告是一种保护提示,当你尝试安装或运行一个未使用数字证书(如代码签名证书)签名、也未经受信任软件供应商验证的程序或软件时弹出。这种弹窗的主要目的是提醒你:安装或执行来自未知发布者的程序后,可能面临安全问题。该消息表明软件/应用可能含有恶意代码,例如病毒和木马。
未知发布者是指尚未确认身份的软件开发者或组织。如果身份未经验证,macOS、Windows 等操作系统以及 Google Chrome、Mozilla Firefox 等浏览器都无法识别他们。如果你从未经验证的来源下载应用,就会看到相应的警告;若仍点击「运行」继续安装,软件下载完成后还会再次弹出警告窗口。
未知发布者警告的成因
对软件供应商而言,让用户和操作系统信任其应用至关重要。如果软件包触发「未知发布者」警告,会引发安全顾虑并劝退用户。以下是该警告背后的关键原因:
文件来自未经数字签名的来源
如果软件或文件没有附加数字签名,Windows 会将其标记为来自「未知发布者」。自制文件或从不需要、不提供证书的来源下载的程序经常出现这种情况。
用于签名的证书已过期、被吊销或无效
数字证书都带有有效期。如果用于签名的证书已过期,或证书颁发机构因任何原因吊销了它,Windows 都不会将其识别为有效,从而触发「未知发布者」警告。
操作系统无法识别发布者的证书
如果签名证书来自不在 Windows 受信任 CA 列表中的发布者,Windows 会将该文件标记为来自「未知发布者」。使用不受信任机构颁发的证书签名时就会发生这种情况。
文件来自不受信任或未知的来源
从可疑网站、点对点网络或邮件附件等未知/不受信任来源下载的文件,可能没有 Authenticode 签名。此时 Windows 会警告用户文件来自未知发布者,以降低安装潜在有害软件的风险。
如何在 Windows 10 与 11 中修复未知发布者安全警告?
开发者/发布者与终端用户都会遇到「未知发布者」安全警告。对开发者来说,该警告会削弱用户对其软件的信任;对用户来说,出于安全顾虑可能会犹豫是否继续。下面分别给出针对两类群体的解决方案。
面向软件开发者/发布者
使用第三方工具进行数字签名
开发者或软件发布者可以使用第三方工具为软件、应用、源代码、二进制文件或固件签名。用有效证书签名有助于避免「未知发布者」警告,适用于公开或私下分发软件。
简要流程如下:
第 1 步:获取数字证书
从 DigiCert、Comodo 或 Sectigo 等公认的证书颁发机构(CA)购买代码签名证书。
第 2 步:使用签名工具
可使用 SignTool(Visual Studio 自带)或 OpenSSL 等工具对应用进行数字签名。
第 3 步:分发已签名软件
签名后像分发其他文件一样分发软件即可,用户不会再看到「未知发布者」警告。
面向软件用户
启用或禁用 SmartScreen 筛选器
Windows SmartScreen 是一项保护计算机免受恶意应用和网站侵害的安全功能。有时它会标记来自未验证发布者的应用,从而触发「未知发布者」警告。你可以配置 SmartScreen 让受信任的应用通过,但请记住,禁用 SmartScreen 可能使系统面临不必要的风险,建议始终启用或设置为「警告」而非直接绕过。
管理 SmartScreen 设置的方法:打开 Windows 安全中心(在开始菜单搜索「Windows 安全中心」)→ 进入「应用和浏览器控制」→ 在「基于声誉的保护」下切换 SmartScreen 设置,例如选择「警告」而非阻止应用,或彻底关闭(一般不推荐)。
为受信任软件绕过警告
如果你信任该发布者,但文件未签名或证书已过期,可以绕过「未知发布者」警告。方法如下:右键文件选择「属性」→ 在属性窗口底部找到「取消阻止」复选框并勾选 → 点击「应用」再点「确定」,即可正常运行软件。
将发布者加入受信任来源
如果经常使用并信任某发布者的软件,可在 Windows 中将其加入受信任来源列表,今后该发布者的软件都会被当作安全处理。具体操作:在开始菜单搜索框输入 mmc 打开 Microsoft 管理控制台(MMC)→ 文件 > 添加/删除管理单元 → 选择「证书」并点击「添加」→ 选择「计算机账户」后下一步并完成 → 在「证书(本地计算机)」下进入「受信任的根证书颁发机构」→ 右键「受信任的发布者」选择「导入」→ 选中发布者证书并按提示加入受信任列表。
软件公司签名后如何核验收发者信息?
用数字证书对软件签名后,务必快速检查数字签名与时间戳。核验收发者详情的方法:
第 1 步:打开文件属性
找到已签名的 .exe 文件并右键,选择「属性」打开文件详情窗口。
第 2 步:定位数字签名选项卡
点击顶部的「数字签名」选项卡(兼容性选项卡旁最后一项)。新窗口会显示签名者标识、邮箱,以及通过时间戳记录下的精确签名时间。点击「详细信息」继续。
第 3 步:查看证书详情
在详情窗口点击「查看证书」打开新窗口,获取更详尽的证书信息。
第 4 步:检查使用者(Subject)字段
在证书详情窗口找到 Subject 字段,应显示你的公司名称,证明证书已正确关联到你的组织,请核对是否与在 CA 注册的企业信息一致。
第 5 步:验证发布者信息
确认软件已正确签名并被识别为合法:将证书详情与 CA 记录交叉核对;在不同 Windows 系统上测试确认无未知发布者警告出现;使用 Microsoft 的 SignTool 工具(signtool verify /pa yourfile.exe)校验签名与时间戳。
未验证与已验证软件发布者的差异
在数字化空间里,数字身份至关重要,它是向他人证明你并非冒名顶替的可信方式。同样地,软件发布者若想获得 Windows 系统信任,必须接受背景审查,完成后才会被授予代码签名证书。该签名确认了发布者的真实性,并保证文件自签名后未被篡改。下表对比了两者的关键差异:
| 对比维度 | 已验证发布者 | 未验证发布者 |
|---|---|---|
| 安全风险 | 由受信任 CA 认证,确保软件来自合法可信来源,大幅降低下载恶意软件的风险 | 因可能含木马、间谍软件或病毒,或被篡改、来自不可信来源,安全风险更高 |
| 信任与可信度 | 身份经过认证,被识别为合法,用户可信任软件确实来自其所声称的实体 | 无法确认身份,不清楚软件背后究竟是谁 |
| 用户体验与可信度 | 体验更顺畅,提升可信度,增强用户对软件安全与质量的信心 | 可能触发系统安全警告或被标记为可疑,安装时产生摩擦 |
| 额外功能 | 可投放广告、获取详细分析或更易提供更新,扩大触达并提升参与度 | 可能被限制使用某些工具、功能或服务(如广告变现、客服、详细分析) |
| 合规性 | 符合 GDPR、CCPA 等数据保护法规与行业安全要求 | 在满足行业法规或合规标准方面可能面临挑战 |
| 钓鱼与欺诈 | 身份经确认验证,有助于将其内容与恶意仿冒版本区分开来 | 恶意行为者可利用未验证发布者实施钓鱼攻击或分发欺诈软件 |
总结
当你下载或购买软件时,往往默认它们是安全的。然而当「未知发布者警告」弹出,你很快意识到事实并非总是如此。因此,安装来自已验证发布者的软件(而非未验证或未知来源)十分重要;同样,对软件开发者与发布者而言,确保软件已用有效数字证书正确签名,是维持信任、避免安全警告的关键。无论是安装还是分发软件,都应始终优先考量安全:验证数字签名、评估软件来源,并理解绕过安全警告的风险,以维护系统安全与信任。