验证 ECDSA 注册表签名
为了确保您从公共 npm 注册表或任何支持签名的注册表下载的包的完整性,您可以使用 npm CLI 验证下载包的注册表签名。
先决条件
- 安装 npm CLI 版本 v8.15.0 或更高版本
- 使用
npm install
或npm ci
安装依赖项
验证注册表签名
可以使用以下 audit
命令验证注册表签名:
npm audit signatures
如果所有已安装的版本都具有有效的注册表签名,则示例响应:
audited 1640 packages in 2s
1640 have verified registry signatures
故障排除
某些包缺少注册表签名
如果包没有签名并且包注册表支持签名,CLI 将出错。这可能意味着攻击者可能试图绕过签名验证。您可以通过向 registry-host.tld/-/npm/v1/keys
请求公共签名密钥来检查注册表是否支持签名。
如果某些版本缺少注册表签名,则示例响应:
audited 1640 packages in 2s
1405 packages have verified registry signatures
235 packages have missing registry signatures but the registry is providing signing keys:
missing-dep@1.0.0 (https://registry.npmjs.org/)
...