feat(extensions): 在 Rust 中验证签名发行包与有界 ZIP 清单
This commit is contained in:
@@ -35,3 +35,12 @@ namespace 归属绑定作者;作者无审核角色;审核拒绝自审。版
|
||||
该原型尚不具备全量安全安装状态机:统一持久安装库迁移、事务升级/回滚、断点下载、资源托管、维护者转移、账号登录/令牌过期、举报处理 UI 和生产限流均待完成。目录读取目前在 SQLite 中筛选;大规模服务索引和负载测试待完成。客户端分页当前展示前 100 条,需缩小搜索范围。
|
||||
|
||||
开发 CORS 只允许部署者指定的来源执行 GET,不共享作者凭据。所有返回文案作为文本渲染,包内代码不在目录服务运行。
|
||||
|
||||
|
||||
## Rust 包验证基础
|
||||
|
||||
Host 的 `extension_package` 已实现 Release v1 字段校验、递归排序 canonical JSON 和 Ed25519 严格验签,复用已有 Python 签名向量。校验入口要求提供 Host 固定信任根及已核实的撤回/键撤销状态;该离线函数自身不获取在线状态,也不授权安装。验签采用 [ed25519-dalek verify_strict](https://docs.rs/ed25519-dalek/2.2.0/ed25519_dalek/struct.VerifyingKey.html#method.verify_strict),拒绝无效签名及弱键。
|
||||
|
||||
ZIP 在解压前独立校验中央目录计数、重复原始名称、本地头一致性和数据区不重叠,避免解压库的名称映射隐藏重复项。逐条检查 NFC 路径、Windows 保留名、完整大小写折叠冲突、文件/目录前缀冲突、链接/特殊文件、加密与压缩方法;按类别检查压缩/展开/条目限额,并用有界缓冲验证全部条目及 CRC。当前只返回文件摘要清单,不写出包文件;不支持多卷或需 ZIP64 中央目录的包。
|
||||
|
||||
类型清单身份/权限/schema 验证、在线来源复核、持久安装库、迁移与事务运行生命周期仍待接入。因此当前不能据此开启 extensions capability 或标记完整 D-01 通过。
|
||||
|
||||
Reference in New Issue
Block a user