@freedomofpress/sigstore-browser

中文文档
0.3.1发布于 2026/11/05MITTypeScriptES Module构建来源已验证近 30 天下载 10.7万

最小浏览器唯一的 Sigstore 校验库 .

中文使用文档
文档目录10 节
  1. 特征
  2. 安装
  3. 使用量
  4. 基本核查
  5. 校验选项
  6. 得到什么验证
  7. 发展
  8. 相关项目
  9. 许可证
  10. 承认

Sigstore 验证器的最小浏览器兼容性

Conformance

最小类型脚本执行 西格斯托尔 校验,优化用于浏览器兼容性.

这是一个与浏览器兼容的选项 缩写 侧重于浏览器环境中安全软件更新所需的验证功能.

[叹息] 该图书馆没有收到独立的安全审计。 维护工作由志愿者进行,该项目没有得到新闻自由基金会的正式支持或认可.

特征

  • 完整西格斯托尔验证: 完整核查Sigstore捆绑,包括证书链、透明度记录和时间戳
  • 浏览器- 第一: 为网页浏览器设计,使用 Web Crypto API
  • TUF 整合: 通过 更新框架
  • 政策核查: 灵活身份和根据Sigstore-python进行索赔核实
  • 多个套装格式: 默认支持 Sigstore 捆绑版本 0.2和 0.3, 启用时支持 0.1
  • 多个密钥类型:RSA,ECDSA,通过Web Crypto API进行Ed25519签名验证
  • 最小依赖性: 只取决于 @ freedomofpress/crypto-浏览器, (中文(简体) ), @freedomofpress/tuf-浏览器,以及 @ noble/ 曲线

安装

npm install @freedomofpress/sigstore-browser

使用量

基本核查

import { SigstoreVerifier } from '@freedomofpress/sigstore-browser';

// Initialize the verifier
const verifier = new SigstoreVerifier();

// Load the Sigstore trusted root via TUF (recommended)
await verifier.loadSigstoreRootWithTUF();

// Or load a trusted root directly
// await verifier.loadSigstoreRoot(trustedRootJson);

// Verify an artifact
const bundle = JSON.parse(bundleJsonString);
const artifactData = new Uint8Array(/* artifact bytes */);

const verified = await verifier.verifyArtifact(
  '[email protected]',           // Expected signer identity (SAN)
  'https://accounts.google.com',    // Expected OIDC issuer
  bundle,
  artifactData,
  false
);

校验选项

const verifier = new SigstoreVerifier({
  tlogThreshold: 1,   // Minimum distinct log operators with a fully verified entry (default: 1)
  ctlogThreshold: 1,  // Minimum distinct CT log operators with a verified SCT (default: 1)
  tsaThreshold: 0,    // Minimum distinct TSA operators with a verified timestamp (default: 0)
  bundleVersions: ["0.2", "0.3"], // Accepted bundle versions; add "0.1" for legacy bundles that carry only an inclusion promise (default: ["0.2", "0.3"])
});

阈值必须是非负安全整数. 当局无 operator 元数据可以满足一个阈值,但从不加入命名运算符的计数. 一个以上的门槛要求许多不同的、明确命名的经营者.

何时 isDigestOnly 实值 true提供32个字节,包含文物的SHA-256文摘,并用 verifyDigest: verifySignatureOverDigest 从 @freedomofpress/crypto-browser/noble永远拥有文物的验证人可以把它放出,他们的捆绑不携带 @noble/curves。 。 。 .

得到什么验证

这个 verifyArtifact 方法进行下列检查:

  1. 套装验证: 结构, 16 MiB 聚合编码数据限制, 绑定证书链和被支持的介质类型
  2. 身份核查: 证书 SAN 符合预期的身份
  3. 发行人核查: 证书 OIDC 发行者与预期发行者匹配
  4. 透明度日志: 所信任的Rekor日志的每个条目都经过核实(包含承诺、Merkle证明、检查站、机体和登录证书);阈值计算不同的日志操作员
  5. TSA 时间戳验证: RFC 3161倍标(如果有);阈值计算不同的运算符
  6. 观察时间戳: 至少一个经核实的集成时间或TSA时间戳必须锁定签名
  7. 证书链: 叶证书链到一个在每一个观察时间戳上都信任的 Fulcio CA
  8. SCT 核查: CT 日志中已签名的证书时间戳; 阈值计数不同的运算符
  9. 签字核查: 使用证书公用钥匙的手工签名

使用 verifyArtifactPolicy(policy, bundle, artifactData, isDigestOnly) 执行自定义 VerificationPolicy,包括必要的身份和发行人检查. 政策可以是同步的,也可以是同步的;在继续核查之前,需要同步的政策.

发展

# Install dependencies
npm install

# Build the project
npm run build

# Run tests (browser environment via Playwright)
npm test

# Lint and format
npm run lint

这个库是浏览器兼容安全库家族的一部分:

许可证

Apache 许可证 2. 0 - 见 自由主义 详细文件。 本套件的几分部分包含代码来自 缩写 财务报告和审定财务报表 斯格斯托尔平通。 。 。 .

承认

这个项目的基础是: Sigstore 规格 改编自:

版本与发布记录

@freedomofpress/sigstore-browser 共发布 21 个版本,首次发布于 2025/11/27;过去 12 个月发布了 21 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.1latest2026/11/0510 天前
0.3.02026/11/0214 天前
0.2.02026/10/3115 天前
0.1.172026/10/3116 天前
0.1.162026/10/3016 天前
0.1.152026/09/291 个月前

关于 @freedomofpress/sigstore-browser 的常见问题

@freedomofpress/sigstore-browser 是什么?

最小浏览器唯一的 Sigstore 校验库 .

如何安装 @freedomofpress/sigstore-browser?

在项目目录运行 npm install @freedomofpress/sigstore-browser,或使用 pnpm add / yarn add / bun add。

@freedomofpress/sigstore-browser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@freedomofpress/sigstore-browser 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@freedomofpress/sigstore-browser 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@freedomofpress/sigstore-browser 可以商用吗?

@freedomofpress/sigstore-browser 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@freedomofpress/sigstore-browser 的下载量有多少?

根据 npm 官方下载统计,@freedomofpress/sigstore-browser 在 2026/10/16 – 2026/11/14 这 30 天内被下载 107,173 次,日均约 3,572 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@freedomofpress/sigstore-browser 还在维护吗?

最新版本 0.3.1 发布于 2026/11/05(10 天前);至今共发布 21 个版本,其中过去 12 个月发布了 21 个;首次发布于 2025/11/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。