安全模型
保护内容
- 数据库地址与凭证保留在自托管Runtime。
- OIDC与Runtime会话令牌不进入网站JavaScript。
- Electron主进程从真实Frame获取Origin。
- 每个Origin与项目使用独立的加密设备密钥。
- 60秒能力票据把每次调用或订阅绑定到项目、Origin、资源、用户与设备公钥。
- 时间、nonce、请求摘要和签名防止普通令牌复制与重放。
- 浏览器事件流要求匹配的会话,并按当前用户过滤事件Payload。
- 函数Schema、数据库约束和事务始终在服务端执行。
OIDC使用Authorization Code + PKCE。Gateway负责回调和Token交换,Electron只持有不透明的Runtime会话。调用包含Body摘要、时间戳、唯一nonce和Ed25519签名;Gateway在路由操作前验证时钟偏移并记录已使用nonce。
数据库凭证使用信封加密:随机数据密钥通过AES-256-GCM加密每个凭证,再由 ARCHETYPE_MASTER_KEY 包裹数据密钥。函数响应、审计记录和浏览器错误都不会包含连接串或Token。
不保证内容
用户控制自己的计算机。Electron安全存储和进程边界会增加提取成本,但首版不提供硬件远程证明,也不能证明客户端从未被修改。恶意但已授权的用户仍可自动化读取其有权访问的数据。
函数部署被视为企业可信代码。子进程提供超时与崩溃隔离,不是恶意多租户沙箱。公共多租户托管需要独立容器或microVM等更强隔离。
最终授权仍是服务端业务逻辑。有效的浏览器能力票据证明Origin、设备密钥、操作和当前会话,但不能替代数据归属检查、原子更新、唯一约束、幂等和事务边界。