安全 / 验证

信任你安装的文件,而不是提供它的页面

KalderaShield 的每次发布都公布 SHA-256 校验和与更新器签名。验证只需一条命令。这正是“运行一个被人篡改后转存的文件”与“运行流水线构建出的那个文件”之间的区别。

公布了什么

三层产物证据

SHA-256 校验和:每次发布都在安装包旁附带 SHA256SUMS.txt。哈希由发布流水线根据它收集的确切文件计算,收集步骤会拒绝任何不是来自当前构建的产物——半途失败的构建无法悄悄复用旧安装包。

更新器签名:Tauri 更新器捆绑包使用 minisign 签名,公钥内嵌于应用本身。如果更新器提供的文件没有正确签名,应用会拒绝它。

发布签名:由标签门禁的发布流水线以 cosign 的 Sigstore 无密钥模式为每个已发布的产物签名,并绑定到工作流运行的 OIDC 身份。流水线还强制执行签名门禁:除非产物被验证为已签名,否则 Windows 和 macOS 发布将被阻止发布。

一个诚实的提醒:在代码签名证书存在之前,你自行构建或从 CI 下载的 Windows 安装包没有 Authenticode 签名。签名门禁会把它们挡在正式发布之外;如果你通过构建取得了一份文件,请在运行前验证其 SHA-256 哈希。

如何分三步完成验证

计算你手中文件的哈希

在 Windows 上,在 PowerShell 中运行 Get-FileHash。在 Linux 和 macOS 上,运行 sha256sum 或 shasum -a 256。将输出与 SHA256SUMS.txt 中对应的行进行比较。

检查校验和文件本身

校验和随其对应的发布一同公布。如果你从官方发布下载 SHA256SUMS.txt,并且你的安装包哈希与之一致,那么这个文件就是流水线产出的那个文件。

让更新器自行验证

应用内更新会对照编译进应用的 minisign 公钥进行校验。你无需手动信任任何下载来的更新文件。

多层安全防御体系

关于 SmartScreen 和杀毒软件警告

在签名证书出现之前,这是预期现象

一个没有签名、也没有下载信誉的可执行文件,正是 Windows SmartScreen 和杀毒软件启发式规则会警告的那类文件——这是没有证书的代价,而不是恶意软件的证据。请验证 SHA-256 哈希;如果你的杀毒软件仍然标记一个与已公布校验和一致的哈希,请向其厂商报告误报。仓库中的构建工作流注释公开记录了这一局限。

SHA-256

完整性

每个产物在 SHA256SUMS.txt 中逐项公布;收集器会拒绝早于记录的构建时间戳的安装包。

minisign

更新器真实性

更新器捆绑包在构建时签名;验证密钥随应用一同发布,latest.json 指向该签名。

cosign

发布真实性

已发布的产物通过 Sigstore 无密钥方式签名,绑定到该次发布运行的 GitHub Actions OIDC 身份。

常见问题解答

关于验证

Windows 提示“Windows 已保护你的电脑”,该怎么办?

这是 SmartScreen 对未签名文件的反应,不是病毒报告。请对照 SHA256SUMS.txt 验证 SHA-256 哈希。如果一致,该文件就是流水线的产出;一旦发布带上签名证书,这条警告将永久消失。

在哪里能找到 SHA256SUMS.txt?

在每次发布中与安装包放在一起,也在下载页面的验证板块中。只通过聊天消息传来的校验和不算验证——请使用公开发布的那份。

能否在不信任任何已下载文件的前提下完成验证?

从源代码构建:仓库可以用已写明的 npm 和 cargo 命令进行可复现构建,本地发布脚本会产出同样的产物命名规则和各自的校验和。

相关页面

下载安装包