证明能说明什么,又不能说明什么
你的浏览器在发送任何一个字之前,都会先检查 Tinfoil 的安全飞地。这项检查能确立什么,到哪里为止,以及哪些还无法在浏览器中检查。
“加密直达安全飞地”是对一连串检查的简称。其中每一环都值得了解,因为每一环所依托的东西各不相同:处理器厂商的密钥、一个已发布的版本、一个标头,或者由我们提供的代码。这篇笔记按顺序走一遍这条链,并标出它在哪里结束。
检查的步骤
在工作区发送消息之前,你的浏览器会通过我们的中继获取安全飞地的证明包,并在标签页中用 Tinfoil 的验证器进行验证。证明包中包含三样东西:一份硬件报告,由根植于处理器厂商的密钥签名(路由器使用的是 AMD SEV-SNP);安全飞地启动时所加载代码的度量值;以及安全飞地将用来解密的公钥。
- 报告的签名表明它来自真实的安全飞地硬件。
- 度量值会与路由器代码的一个已签名、已发布的版本进行比对,这样浏览器就知道正在运行的是哪份代码。
- 随后,你的消息在离开标签页之前,会用 HPKE 加密到报告中的这把密钥。
中继会将这份公开的证明包缓存一分钟。由于浏览器会验证它,经由我们的服务器转发并不会削弱它:被改动过的证明包无法通过检查,也就什么都不会发送。
检查通过说明了什么
说明该地址上的安全飞地是真实的硬件,运行着那个已发布的版本,并且持有你的消息所密封到的那把密钥。只要硬件的保护机制有效,你的消息就只能在那份代码内部被打开。我们的中继、我们的托管方以及两者之间的网络,看到的都是密文。
它在哪里止步
你的浏览器验证的安全飞地是 Tinfoil 的模型路由器。路由器公开的代码会解密你的请求,并通过一条绑定到模型安全飞地已证明密钥的 TLS 连接,把请求传给该模型自己的安全飞地。这一跳你的浏览器本身无法确认;它依赖的是路由器公开的代码。
工作区确实也会尝试检查模型的安全飞地,并在每个回答的回执上写明检查结果。目前,这项检查在浏览器中往往无法完成。Tinfoil 的浏览器验证器只能读取 AMD SEV-SNP 报告,而 Kimi K3、GPT-OSS 120B、DeepSeek V4.1 Flash 以及大多数 Gemma 4 31B 安全飞地运行在 Intel TDX 上,因此它们的回执会写明暂时无法在浏览器中检查。一些 SEV-SNP 安全飞地(GLM-5.3 的也在其中)报告的处理器版本是验证器尚不接受的,因此显示为未确认。这两种情况都不意味着安全飞地有问题,只是说明浏览器无法证明它没有问题。以上为 2026 年 10 月 28 日的检查结果。
检查无法覆盖的两件事
- 验证代码来自我们。如果我们提供了一个会撒谎的验证器,检查照样会通过。正因如此,/verify 会将你的浏览器加载的代码与构建公开的清单进行比对,而构建过程也可以逐字节重现。
- 证明依赖于厂商的签名密钥,也依赖于安全飞地硬件按设计正常工作。这两者中如果存在缺陷,证明无法告诉你。
自己动手检查
验证的工作原理画出了整条链。亲手密封会在你的浏览器中运行密封这一步,不发送任何内容。验证此页面会对你加载的代码计算哈希,挑战破解则公开了一个加密请求,与我们的中继当时所见完全一致。
更多野外笔记
无法读取内容的中继,仍然能看到什么
我们的中继转发它无法打开的密文。但这并不等于什么都看不到。这里逐项列出它能看到的内容,以及原因。
# 之后的密钥:共享链接如何把服务器挡在门外
共享的对话存储在我们的服务器上,而我们无法打开它。它是如何做到的,密码在哪里起作用,以及链接无法保护什么。