OpenSquilla Code Signing Policy
本策略记录了 OpenSquilla 发布产物当前的代码签名状态,以及未来任何签名工作流的规则。
Current Status
Windows 发布构建目前未签名。Windows 桌面安装程序、updater 元数据和校验和均在没有 Windows 代码签名证书的情况下构建和发布。在某个特定发布产物的签名工作流经过批准、启用和验证之前,下载页面和发布说明不得声称提供 Windows 代码签名。
macOS 发布打包通过维护者为 macOS 产物配置的 Apple 签名和公证路径单独处理。本文档中计划的 SignPath 部分适用于开源社区发布产物的 Windows 代码签名。
User Verification
用户应从官方 GitHub Releases 页面下载 OpenSquilla 发布产物,并将文件哈希与同一次发布所公布的 SHA256SUMS 文件进行比对。匹配的校验和可验证所下载的字节与项目发布的字节一致;在 Windows 构建仍未签名期间,它并不意味着提供 Windows Authenticode 代码签名。
Future SignPath Foundation Plan
OpenSquilla 正准备通过 SignPath Foundation 申请免费的开源 Windows 代码签名。此功能尚未启用。
如果项目获得批准并启用签名,受影响的开源社区发布产物可能会显示 SignPath Foundation 作为 Windows 发布者。由于批准仍在进行中,以下署名是一项计划中的签名披露,并不声称当前的 Windows 产物已签名:
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
SignPath Foundation 路径将仅适用于在项目的 OSI 批准许可证下发布、且不包含专有或仅限商业组件的 OpenSquilla 开源社区产物。
Privacy Policy
OpenSquilla 的隐私政策发布于 PRIVACY.md。它描述了本地数据、provider 请求、网络可观测性、日志、发布下载以及删除。非用户主动发起的网络可观测性可以在启动前通过以下方式禁用:
OPENSQUILLA_PRIVACY_DISABLE_NETWORK_OBSERVABILITY=true
或通过:
[privacy]
disable_network_observability = true
遗留的兼容性环境变量仍然有效:
OPENSQUILLA_TELEMETRY_DISABLED=true
OPENSQUILLA_UPDATE_CHECK_DISABLED=true
Commercial Builds
本策略不限制未来的商业版本、企业构建、托管服务、支持服务或专有附加组件使用单独的商业代码签名证书或单独的商业签名服务。商业或专有发布产物不得使用 SignPath Foundation 证书路径签名,除非它们独立满足该基金会计划的要求。
Release Build Requirements
任何未来的 Windows 签名工作流都必须在 updater 元数据、blockmap 和 SHA256SUMS 最终确定之前运行。在生成 latest.yml、.blockmap 或 SHA256SUMS 之后再对 .exe 签名会改变安装程序的字节,并使这些发布元数据文件失效。
在启用 Windows 签名之前,维护者必须验证:
- 签名 provider 和证书已针对确切的产物类型获得批准
- 构建从受信任的发布工作流运行
- 发布签名需要维护者批准
- 拥有发布或签名访问权限的团队成员使用多因素认证
- 如果网络可观测性或任何其他非用户指定的网络传输在默认情况下仍处于启用状态,安装程序会在启动前显示隐私政策并暴露统一的网络可观测性禁用开关
- 签名产物、updater 元数据、blockmap 和校验和由相同的最终字节生成
- 发布说明和下载页面准确描述签名状态
Roles And Approval
Repository: https://github.com/opensquilla/opensquilla
初始 committers 和 reviewers:
初始 SignPath approvers:
OpenSquilla 维护者负责发布批准、发布说明和最终发布。如果后续启用 SignPath 签名,SignPath approvers 将仅对本策略涵盖的开源社区产物批准签名请求。额外的 committers、reviewers 或 SignPath approvers 必须在其批准发布签名请求之前列入本策略。所有 committers、reviewers 和 approvers 都必须对 GitHub 和 SignPath 访问使用多因素认证。
Revocation Or Incident Response
如果发现某个已签名产物不正确、被篡改或超出批准的签名范围,维护者将停止分发受影响的资产,发布更正后的发布或公告,并在适当时通过签名 provider 请求吊销。未签名的产物仍受项目正常的发布更正和校验和替换流程覆盖。