HackerTube English?
如何判断系统真的做对了? →

机器说「检查通过」,谁能独立核对?

从一张选票追到一块主板。一路只问三个问题:检查的是哪件东西,谁送来这个答案,以及作决定的人能否看到同一份证据。

本文的问题 · 12
  1. 一份正确的程序,一台正在使用的机器
  2. 取下闪存,为什么检查看不出改动?
  3. 重装系统,从第几步开始?
  4. 同一笔付款,两份不同的成功记录
  5. 一个签名能替谁同意?
  6. 报对号码,证明了哪一项?
  7. 温控器应该看烤箱,还是看面包?
  8. 一张漂亮照片、一份匹配报告,谁还能重做核对?
  9. 看见了启动标志,究竟查过了什么?
  10. 要独立检查计算机,探针能接到哪里?
  11. 信任贡献者,能替代检查变更吗?
  12. 用来判断对错的工具,也可能继承同一个错误

一份正确的程序,一台正在使用的机器

假设两方都审过源代码,选举日机器旁也贴了正确的校验值。Tom Scott 让问题具体了一步:如果由机器自己读出正在运行的程序、计算散列、再把结果显示给选民,谁能分辨它真的读了一遍,还是直接显示了贴纸上的字符串?Andrew Huang把同一个问题推进到制造环节。设计文件和交到买家手里的芯片是两个对象。审过前者很有价值,但要把这个结论用于后者,买家还缺一次可行的实物检验。

原文与时间戳 · 3
what's actually loaded on that voting machine
Why Electronic Voting is a BAD Idea - Computerphile · ▶ 2:16–2:22
you have to trust the software that's checking that hash.
Why Electronic Voting is a BAD Idea - Computerphile · ▶ 2:28–2:32
you can't hash hardware.
36C3 - Open Source is Insufficient to Solve Trust Problems in Hardware · ▶ 25:45–25:49

取下闪存,为什么检查看不出改动?

Hudson 的装置插在闪存和读取方之间。把芯片取下单独读,读到的可以完全正确。装回去时,那段数据经过了另一条路。Rutkowska 从另一端追问:若主板本身在威胁模型里,从本机启动一个小系统去问固件「你是什么」,答复仍然经过可疑的主板。画图时把检查探针实际接在哪里标出来。两次读取看起来都在查固件,却可能根本没探到同一处。演示证明这种路径可行,Hudson 明确保留了现实中那宗新闻指控是否属实的问题。

原文与时间戳 · 3
because it's outside of the ROM chip.
35C3 - Modchips of the State · ▶ 22:22–22:28
I will not get reliable answers.
Joanna Rutkowska: Towards (reasonably) trustworthy x86 laptops · ▶ 12:05–12:12
So did it happen? I don't know.
35C3 - Modchips of the State · ▶ 27:31–27:40

重装系统,从第几步开始?

把磁盘清干净,重新安装系统,能排除硬盘上遗留的程序。Rutkowska 要求再画一张表,标出机器上所有能跨重启保存状态的位置。AMD 研究组给出了具体的先后顺序:在他们测试的平台上,安全处理器比 x86 核心更早执行代码。依赖后续系统给早期启动阶段作证,需要说明依据。这个演示还有一个实践边界:团队动手需要物理接触。读者评估自己的机器时,要先写出谁有这种接触机会。

原文与时间戳 · 3
So you reinstall the OS, but the malware still can re-infect.
Joanna Rutkowska: Towards (reasonably) trustworthy x86 laptops · ▶ 31:11–31:17
executing code even before the x86 cores have executed anything.
36C3 - Uncover, Understand, Own - Regaining Control Over Your AMD CPU · ▶ 18:29–18:43
everything we did requires physical access to the device.
36C3 - Uncover, Understand, Own - Regaining Control Over Your AMD CPU · ▶ 41:00–41:06

同一笔付款,两份不同的成功记录

Anderson 演示的中间设备向终端表示卡已经接受 PIN,同时向卡表示这是签名交易。事后只留一张「交易成功」的收据,会漏掉两端究竟同意了什么。把审计记录拆成两句完整的话:谁确认了哪个金额,用了哪种验证方式?若两句里的交易条件不同,即使两个设备都正常走到结束,也拼不出持卡人授权的同一笔付款。

原文与时间戳 · 2
the pin was accepted by the card
Chip & PIN Fraud Explained - Computerphile · ▶ 4:15–4:21
that it was a chip and signature transaction
Chip & PIN Fraud Explained - Computerphile · ▶ 4:21–4:24

一个签名能替谁同意?

Olson 讲述一种尴尬的转账:受骗者确实动用了自己的密钥,链也按规则接受了交易。发现被骗后,他还可以请交易平台下架那枚代币。把操作写成两行,一行是「转移登记」,另一行是「允许挂牌」;执行者和能拿来申诉的证据都变了。要在产品上写「所有权已验证」,先问读者会按哪一行来理解。

原文与时间戳 · 2
transactions followed the rules of the software.
Line Goes Up – The Problem With NFTs · ▶ 83:44–83:50
delisting stolen tokens.
Line Goes Up – The Problem With NFTs · ▶ 84:34–84:40

报对号码,证明了哪一项?

Grey 指出社会保障号码可以帮助机构找对记录,同时又经常被当成身份凭据。想象同事递给你一张写有号码的表单:你找到了记录,但还没有得到独立证据,说明对方就是记录的主人。与 Olson 讲的代币转移对照,一个系统可以准确执行它定义的检查;下一位使用者需要知道,这个检查究竟核对了号码、签名,还是本人的授权。

原文与时间戳 · 3
a card with a unique number that many places will ask for to prove who you are.
America Keeps Rejecting an ID Card It Already Has · ▶ 0:22–0:27
ask for the last four digits as a code to identify you as you
America Keeps Rejecting an ID Card It Already Has · ▶ 4:50–4:55
transactions followed the rules of the software.
Line Goes Up – The Problem With NFTs · ▶ 83:44–83:50

温控器应该看烤箱,还是看面包?

第二片面包下去时烤面包机可能已经很热。固定计时器只数秒,照向面包表面的恒温器却可随食材状态改变结束时刻。感雨器也不是把传感器伸到雨里,而是监测挡风玻璃处的光学变化。检查两个设计时都要问:在哪些条件下,即使传感器有读数,这个数也可能偏离真正关心的状态?

原文与时间戳 · 4
Having the thermostat react to the surface temperature of the bread
How to design an actually good toaster with lessons from the 1940's · ▶ 2:11–2:15
It not only compensates for a hot toaster, but for cold bread.
How to design an actually good toaster with lessons from the 1940's · ▶ 6:24–6:28
it leverages the effect of total internal reflection.
The simple, clever sensor behind automatic windshield wipers · ▶ 3:29–3:34
Wet glass will allow some of the light produced by the LEDs to actually escape
The simple, clever sensor behind automatic windshield wipers · ▶ 5:50–5:58

一张漂亮照片、一份匹配报告,谁还能重做核对?

克隆研究的回顾列举当年论文声称的卵细胞数量和细胞系数量。发布照片和公开展示容易复制传播,细胞系对应到哪一位供者却要从原始材料验证。Galef 讲笔迹调查时,替代样本的出现直接改变了比较对象。为一个匹配结果设计核验时,至少保留两样东西:独立可取的原始对象,以及能与最初解释竞争的另一种匹配。

原文与时间戳 · 4
professional photographers.
The man who faked human cloning · ▶ 19:35–19:38
This new paper used just 185 eggs, and made 11 stem cell lines.
The man who faked human cloning · ▶ 51:32–51:38
they compared Dreyfus's handwriting to that on the memo
Why "scout mindset" is crucial to good judgment | Julia Galef | TEDxPSU · ▶ 2:34–2:37
Much closer than Dreyfus's handwriting.
Why "scout mindset" is crucial to good judgment | Julia Galef | TEDxPSU · ▶ 7:05–7:07

看见了启动标志,究竟查过了什么?

Steil 解释,Game Boy 开机时显示的标志取自卡带;机器还会比较那段图案。于是一个看起来只是品牌展示的画面,背后有一个具体的输入检查。把它与 Abagnale 在演讲里讲述的飞行员制服对照:人可以认出衣着,供应商还可以索要员工编号。下一步都要追问匹配的依据来自哪里。能复现图案、能填写编号、能得到独立系统的确认,是三个不同的条件。这里引用的是 Abagnale 的讲述,未将其当作航空公司留存的事件记录。

原文与时间戳 · 4
It compares the logo because the game has to have a copy of that Nintendo logo inside.
The Ultimate Game Boy Talk (33c3) · ▶ 19:45–19:52
that logo, though, is actually presented from the cartridge.
The Ultimate Game Boy Talk (33c3) · ▶ 20:21–20:26
I certainly looked old enough to be the pilot
Frank Abagnale | Catch Me If You Can | Talks at Google · ▶ 8:12–8:16
Put your employee number.
Frank Abagnale | Catch Me If You Can | Talks at Google · ▶ 8:31–8:32

要独立检查计算机,探针能接到哪里?

前面的固件例子要求找出检查信号经过哪条路径。阿波罗计算机的修复把这个问题变成了实际操作:这台开发机的大部分模块没有灌封,团队可以用电路图定位引脚,切换输入,再看每个 NOR 门是否给出预期输出。若外围连线让某个门难以单独驱动,就直接测量中间状态。这里多出来的证据是可触及的物理信号,而非机器自己显示的一句「正常」。但检查范围也必须写清:一块模块里的门都能翻转,并不等于存储器、接口和整套任务软件已经一起通过验证。灌封的内存正好提醒我们,检查的边界有时由封装决定。

原文与时间戳 · 2
we can get right in and check the signals on the chip
Apollo Guidance Computer Part 1: Restoring the computer that put man on the Moon · ▶ 8:51–9:01
see every nor gate function with every input
Apollo Guidance Computer Part 1: Restoring the computer that put man on the Moon · ▶ 19:19–19:26

信任贡献者,能替代检查变更吗?

独立检查不仅需要能接触到机器,也取决于谁还会认真看变更。Kamp 的演讲用一个明确虚构的情境指出:长期提交有用补丁的人可能逐渐获得直接提交权限,而其他人因为熟悉他而少做检查。这里值得借用的是这个失效路径,不是把讽刺演讲中的组织或行动代号当成事实。与前面的硬件探测对照,两个条件缺一不可:系统要提供可观察的证据,团队也要保留实际检查证据的过程。它提醒我们,在阅读审计报告时,除了问「有没有检查机制」,还应问「哪些变更实际经过了检查」。这并不意味着每个贡献者都不可信,更不证明某个真实项目已经遭到渗透。

原文与时间戳 · 2
you should imagine a junior NSA staffer
NSA operation ORCHESTRA: Annual Status Report · ▶ 1:44–1:51
people will start to trust you and not check your patches
NSA operation ORCHESTRA: Annual Status Report · ▶ 24:07–24:09

用来判断对错的工具,也可能继承同一个错误

Domas 没有先把反汇编结果当成处理器行为,而是让处理器执行候选输入,观察解码长度和异常,再与反汇编器比较。这让两种证据有机会互相冲突。但冲突还不等于找到硬件错误:他发现作为「标准答案」代理的反汇编器本身就有 bug,有些误解还出现在多个工具里。这个例子给独立检查加了一条要求:除了数有几个检查器,还要追踪它们的判断依据是否真正不同。同一份文档或同一个架构假设衍生出来的多个输出,并不是自动获得了多份独立证明。演讲提供的是一种发现差异的方法,解释差异仍需要结合具体芯片、运行环境与人工分析。

原文与时间戳 · 2
I just used a disassembler as my ground truth
Breaking the x86 Instruction Set · ▶ 20:32–20:38
all of them were absolutely littered with bugs
Breaking the x86 Instruction Set · ▶ 28:57–29:03

读完再想一步

找一条你每天见到的「验证成功」。请另一人只看你留下的记录,说明她能重新核对哪一件事。若她只能再问一次原来的机器,给她补一个独立观察点。