跳转到内容

安全策略

本页是英文原文的简体中文说明。带标签版本中的英文规范、JSON Schema、测试夹具和 TCK 共同构成规范性依据;中文页面只用于任务路由和人工审查。

最新发布版本是 v0.1.0-alpha.30.1.0-alpha.4 只是尚未发布的开发目标。两者都处于实验阶段,不能作为生产环境 CloudLink 切换版本。

发现疑似漏洞时,请通过仓库的私密安全通告流程报告。不得在公开问题中提交凭据、私钥、可重放证明、客户制品,或针对已经部署系统的利用记录。

alpha.4 开发目标没有定义可用于生产的共享消息代理认证流程,也没有定义带签名的持久确认。不得把这些不完整配置用作信任边界。

契约解析器必须限制输入大小、嵌套深度、字符串、数组和内存分配;必须在语义验证前拒绝重复键和无效 Unicode;不得记录签名材料或原始证明。有效的载荷身份或 MQTT 主题不能证明发布方身份已经认证。

每个 MQTT 前缀都是一个授权命名空间。网关标识在该命名空间内必须唯一。多租户部署必须隔离租户或项目的前缀,或者使用云端全局唯一的网关标识。消息代理主体只能访问确切命名空间和网关所需的发布、订阅主题。前缀和主题仍然不能认证网关身份。

在应用不变的四字段线协议身份前,必须先根据可信入口命名空间选择持久重放存储分区。不得接受载荷自行选择的命名空间,不得跨命名空间复用记录,也不得执行不分区的全局查询。

对于默认关闭的网关签名提案,在执行持久查询、新鲜度检查或重放检查前,必须验证签名、有效密钥、消息代理主体命名空间、当前有效会话、网关身份、会话代次和凭据代次。只能使用已经冻结的交付或心跳签名投影。

心跳时间检查必须使用显式评估时间和协商后的会话间隔。uint64 溢出必须失败关闭,重放不能延长存活时间。

只有业务效果和重放记录已经原子持久化,交付重放记录才属于已提交状态。只完成认证、仅预留或仍在等待的记录不能绕过首次接受的到期检查。已提交且不可变的交付只能重新绑定到严格更高的当前会话代次;重新签发该会话的回执前,新绑定必须已经持久化。

检查持久重放记录的到期状态前,必须拒绝同代次会话变化、代次回退、凭据代次变化和任何不可变字段变化。

alpha.4 的 session-accepted 没有签名,也不绑定挑战或客户端随机数,因此不能排除来自其他握手的延迟响应。这一点和未签名的持久确认共同阻断生产认证。

TCK 解码器的非传输预算只是防御性默认值,不代表嵌入式目标可以按最大值分配内存。语言绑定可以根据明确记录的资源约束更早拒绝输入。CloudLink MQTT 消息始终受配置中的 262144 字节上限约束。

Thing Model 动作只是能力声明。语言绑定不得把它们暴露为直接物理操作,也不得绕过应用层受治理作业和边缘策略路径。

接入拓扑和观测对象不得包含提供方地址、访问令牌、刷新令牌、会话信息、凭据引用、任意提供方属性集合或直接服务调用。这些值必须留在边缘侧配置和机密存储中,不得进入测试夹具、日志、审计载荷、提示词或云端投影。

CloudLink 接入扩展继承已经认证的外层网关会话,不会把提供方凭据移入保持不变的公开载荷。完整拓扑超过限制时必须拒绝,不能拆分或部分应用;观测批次只能在封装为相互独立且满足边界的批次前进行划分。

独立的受治理控制扩展默认关闭。在云端控制报价密钥的配置、轮换、吊销和边缘验证器归属完成前,它不具备生产就绪条件。它只接受封闭的 device.power.set.v1 意图。

必须拒绝调用方提供的领域、操作、参数对象、地址、令牌或未声明动作。调用提供方前,必须验证当前会话、强制到期时间、意图摘要、显式确认、确切拓扑目标、持久作业重放绑定和边缘侧策略。提供方接受请求不能证明物理完成。

只有确认目标位置之前的每个位置都已经持久保存,或者已由接受的数据丢失证据覆盖,才能把持久确认当作累积删除边界。存在未声明缺口时,禁止推进游标或删除缓冲数据。