防拆袋没拆对,Oxide 连夜重做整套根密钥签发仪式
Oxide 工程师开车回家路上越想越不安,调头回公司亲手测试防拆袋,发现自己能神不知鬼不觉地重新封口,于是带着仪式团队连夜把整套根密钥签发流程重做了一遍。
原视频在 YouTube 上放不出来,用音频听:
核心论点 · 点时间戳可跳到原声
发货前才发现根密钥信任链压根不存在
Philip 在 2022 年秋天把硬件 ROT 做到能工作的程度后才意识到,他是公司里唯一一个依赖某个「尚不存在的 PKI」在构建东西的人——没人在等他,因为没有别的功能依赖这套签名基础设施。这个认识带来的冲击不是「要不要做」的问题,而是突然发现公司外部需要另建一整套和产品软件本身一样重的系统,才能让硬件里固化的根密钥真正可信。
— Philip Tricca密钥信任链不能用精益创业那套打补丁
精益创业的逻辑是先出一个最小可用版本,靠客户反馈迭代改进。但 Bryan 和 Philip 都指出,签名密钥这件事行不通——写进硬件根信任里的密钥一旦出货就几乎无法撤回,「minimum」在这里意味着你要和这个决定共存很久很久。团队的目标不是追求完美(Philip 认为完美本身也不该是目标,设计上要求至少两方合谋才能破坏系统,本来就排斥「单点完美」),而是找到一个经得起客户和审计方事后检验的最低合格线。
— Philip Tricca密钥放桌抽屉U盘里,是行业公开的秘密
Philip 说起制造业里流传的恐怖故事:很多初创公司为了赶工期,会把要烧录的签名密钥直接生成在平台外部再注入,甚至就是一把未加密的密钥躺在某人书桌抽屉的 U 盘里,他估计这种做法「远多于零」。Oxide 把最低合格线定得更高——密钥在 HSM 内部生成、从不离开设备边界,只有认证口令才会以纸质形式分发给受信任的个人,并做成 M-of-N 分片,任何单人都无法独自使用或破坏。
— Philip Tricca选针式打印机,是因为它蠢得能被拆开检查
团队选用一台针式打印机打印密钥分片的认证口令,不是图它先进,恰恰相反——它足够原始,没有无线网卡、没有蓝牙,拆开后每个芯片是什么一目了然,不像密封环氧树脂里藏着谁都看不懂的黑盒。权衡也很现实:一次性写入的 CD-ROM 更难被物理检查内部结构,打印机则胜在「透明」但笨重、墨粉脏、不好塞进银行保险箱。用完后,这台打印机被 Dremel 电钻当众「手术式处决」。
— Philip Tricca放弃传统安全启动,是因为它只能证明过去
Oxide 的根信任芯片里只有数量有限、一次性写入的密钥槽,用完就用完了,这让团队有意避开传统的 Secure Boot 架构。Philip 解释,UEFI 时代的安全启动诞生于「代码来源必须可信」的假设,但 Oxide 更看重验证启动(verified boot)能提供的另一种性质:哪怕启动代码不是自己签发的,只要系统能证明「最先加载执行的代码是可被看见的」,就足以建立信任——重点不是来源是否受信,而是状态是否可被审查。固件里一切不透明、一切保密,掩盖的问题比它解决的还多。
— Philip Tricca一个没封好的防拆袋,逼他半夜开车回公司
仪式顺利完成当晚,Philip 注意到有人撕开防拆证据袋时脸上闪过一丝疑惑的表情,这个细节一直卡在他脑子里挥不去。开车回家路上越想越不安,他干脆调转车头回了公司,自己对着一个袋子又拆又封——结果发现自己真的可以不留痕迹地重新密封。这意味着那天夜里被带回家的认证口令,实际上有二十四小时处于「看似防拆、实则没有保护」的状态。于是整套密钥签发仪式连夜用第二台打印机重新做了一遍。
— Philip TriccaLLM 把国家级漏洞挖掘变成十分钟的事
Philip 把这种转变比作核武器扩散:过去要靠一整个行业里极聪明又有经验的人花大量时间专门挖掘某类漏洞,而现在一个 LLM 可以在十分钟内把一份老代码库翻个底朝天、把所有问题抖出来。UEFI 这类诞生于完全不同时代、架构上没怎么升级过安全机制的固件尤其首当其冲,因为改造它的激励本来就极低。更麻烦的是,会用这些工具的人往往没有和厂商打交道、走负责任披露流程的经验。
— Philip Tricca原话 · 已逐字校验
It is, I guess maybe the most disappointing thing about computer security and cryptography is that everything seems to boil down to PKIs. Boils down to some assertion made by some entity that holds a private key and all of the security properties of that thing depend on the secrecy of that key.
计算机安全和密码学里最让人失望的一点大概就是,一切最终都归结为 PKI——归结为某个持有私钥的实体所做的一个断言,而整件事的安全属性都取决于那把私钥是否保密。
Philip Tricca17:00
Yeah, but it doesn't have to be perfect. And in fact, I would argue that it can't be perfect.
是的,但它不需要完美。事实上,我认为它根本不可能完美。
Philip Tricca26:30
All that makes sense. But like, this stuff you're gonna live with for a really, really, really long time. So you don't wanna assume because you're gonna have to go back and re... You really wanna assume you're shipping a product here.
这些道理都对。但这种东西你是要和它共存非常非常非常长的时间的。所以你不能假设以后还能回头去改……你得假定自己是在发布一个真正的产品。
Bryan Cantrill30:00
I'm sure like the number of startups out there where their PKI was like, you know, an unencrypted key sitting on a thumb drive in someone's desk drawer.
我敢肯定,外面有不少创业公司的 PKI 就是一把没加密的密钥,躺在某个人书桌抽屉里的 U 盘上。
Philip Tricca32:30
And you're like, nope, there's a process like get out the Dremel. It's like a very surgical murder of this dot matrix printer.
结果你说不行,这有一套流程,要拿出电钻来——简直是对这台针式打印机的一场精密的外科式谋杀。
Bryan Cantrill54:00
If I don't, if I didn't look at this. I literally just turned my car around and went to the office.
如果我不去……如果我不亲自看一眼这个。我真的就直接掉头把车开回了公司。
Philip Tricca1:08:00
These are like in a way kind of like nuclear weapons where there are entire industries of incredibly intelligent and experienced people that would spend tons of time hunting for these things. And in a matter of ten minutes, an LLM can take an old code base, flip it over and shake all the change out of it.
这在某种意义上有点像核武器——过去有一整个行业里极其聪明又有经验的人,要花大量时间去挖这类东西。而现在,一个 LLM 可以在十分钟之内把一份老代码库整个翻过来,把所有的问题都抖出来。
Philip Tricca1:16:45
术语
- PKI公钥基础设施
- 基于持有私钥一方的签名断言来建立信任的证书体系
- Root of Trust (ROT)信任根
- 芯片内固化的最底层安全起点,整条信任链的源头
- HSM硬件安全模块
- 专门生成、存储签名密钥且密钥永不对外暴露的专用硬件
- M-of-N key splittingM-of-N 密钥分片
- 把恢复密钥拆成 N 份,需凑够 M 份才能合并使用,防单人作恶
- tamper-evident packaging防拆证据包装
- 一旦被打开会留下不可逆痕迹、用来证明物品是否被动过的包装
- Secure Boot / Verified Boot安全启动/验证启动
- 前者校验代码来源是否受信,后者只需证明启动代码状态未被篡改且可见
收听指南
做企业级硬件安全、PKI 或签名密钥基础设施的工程师,以及关心「信任根」如何真正落地而非停留在白皮书层面的技术决策者。
开头近九分钟聊 Theranos 纪录片和当地影院见闻的部分,与正题无关,可跳过。