@absolutejs/e2ee
提供商中立的E2EE合同、明确的安全模式、保证单, 绝对JS的提供者选择和符合性工具.
本套件是应用与执行之间稳定的接合
e2ee-providers 仓库。 这个
已经 没有 发明密码学,默默地选择一个提供者,或者声称它不同于
供应商有同等的安全.
这还早着呢
0.x释放。 核心软件包本身并不加密数据, 并且在其公布的保证和审计之前,不批准供应商生产 大门通过.
安装
bun add @absolutejs/e2ee
明确选择提供者
import { selectE2EEProvider } from "@absolutejs/e2ee";
const selected = selectE2EEProvider(providers, {
minimumAssurance: "reviewed",
operatorCanDecrypt: false,
protocols: ["MLS-1.0"],
roles: ["messaging"],
runtime: "browser",
securityMode: "strict-e2ee",
});
console.log(selected.manifest.packageName);
选择失败, 并解释为什么每个提供者被拒绝 。 应用程序 当供应商需要确定性部署而不是接受时,可贴上其身份证明 最高的兼容性保证水平.
明确模式
strict-e2ee: 只有经核实的参与者设备才能解密对话 历史 失去所有经过核实的装置和出口可能永远失去历史.managed-recovery:明显指明的追回当局可授权 替换丢失的设备叶子的新验证设备。 它从来不是静默的, 并且权威不会通过此API获得序列化的MLS状态.
敏感代理交换额外声明一个值是否为
tool-confined, (中文(简体) ), endpoint-visible,或 model-visible。 。 。 . tool-confined 这是
建议默认.
范围
这个 0.2.x 线条添加 MLS 引擎周围所需的应用边界 :
设备证书、密钥包、成员变更、交付、耐用
比较和设定状态, 和明确的恢复权限。 这些都是合同,
非主机服务. 实施仍以供应商包包形式进行.
MLS 故意不定义应用程序的认证服务或
送货服务. 绝对JS 使这些依赖性清晰可见 如此加密
发动机不能沉默地成为身份权威、运输或恢复
权力。 严格 E2EE 从未收到过 RecoveryAuthority; 有管理的回收
必须识别和配置 RecoveryGrantVerifier 当然 恢复后
状态损失遵循RFC 9750的再接再动模式:将短期赠款绑入
替换证书,添加, 并去除丢失的叶子在一个承诺.
正在改变的模式不是会话突变 。 打电话
planSecurityModeTransition(),在请求中创建新对话
模式,重新添加已核实的设备,并明显地取消先前的对话.
新的对话只从创建者开始; 添加所有其他设备通过
addMembers() 因此它的欢迎信息不能不小心被丢弃.
加入欢迎需要 expectedSecurityMode和返回的会话
曝光由提供者状态认证的模式 。 呼叫者必须拒绝任何
严格/管理不匹配,而不是信任交付元数据.
公共类型Script合同使用类型别名而不是接口 所以结合, 交叉点,供应商的能力构成保持明确.
见 警卫 在依赖此软件包保护数据之前.
版本约束的认证
供货商能力要求和供货商认证是分开的。 认证
报告绑定提供者的ID、软件包名称、准确的软件包版本、运行时间、套件,
设想方案、执行身份、病媒来源和证据摘要.
checkE2EECertification() 拒绝过时的报告、再次发布的报告或
运行时间 和丢失的保单索赔.
一个 independent-audit c. 索赔要求
文摘,准确的软件包/版本范围,审计员身份,未来有效性
关键或高结论。 部署可以设定
trustedAuditorIds;图书馆不假装 提供者的
自我声明证明审查者的独立性。 任何提供者发布或范围
引擎更改需要新的审计证据.
这些要求有意区分共同的一致、已知的答案载体和 交叉执行测试。 传递 MLS 工作组矢量不通过 本身证明了应用程序的互操作性: RFC 9750 叶子认证服务, 交付服务、身份和应用程序构成部署的选择.
许可证
阿帕奇 - 2.0