挖坟: TrueCrypt 当年在用户手册里特意说明自己拒绝支持 TPM,以及 RMS 对“可信计算”的声讨

2021-07-09 23:55:32 +08:00
 acess
最近因为 Win11 强制要求,TPM 火了一把,于是 LZ 也有点想蹭蹭热度……

稍微翻了一下英文维基,里面居然提到 TrueCrypt 当年在用户手册里专门解答过为啥有意不支持 TPM,理由大致就是:
TPM 在安全上其实是多余的,反倒是给用户带来了虚假的安全感。支持 TPM 的加密软件宣称的那些攻击场景,也就是攻击者有管理员权限甚至可以物理接触设备,实际上用任何技术手段都已经无法继续维持安全性了,这个时候 TPM 其实已经靠不住了,唯一靠得住的做法就是停止使用那台设备。比如,攻击者可以装一个硬件键盘窃听器(“假键盘”?);可以从内存里直接把密钥 dump 出来(硬的应该就是“冷启动攻击”,软的应该就是利用调试 /IPC 之类的系统调用读取进程内存?);可以在加密卷处于解锁状态的时候直接把数据读出来(毕竟是透明加解密的),然后上传,或者就是保存在本地的一个不加密的卷里面……

我看貌似(至少在很多年前)很多人还觉得 BitLocker 和 TPM 是密不可分的,甚至觉得没有 TPM 的话 BitLocker 的安全性就“降了一大截”……( /t/122436

据 LZ 所知,其实 BitLocker 本来也并不是离了 TPM 就不能用。

所以,LZ 个人的认知或者观点(就 BitLocker 而言,其他的我不太了解):
与其说是安全,TPM 更大程度上是提供了方便,免去输入一长串复杂密码的麻烦;但与此同时 TPM 有点手机刷机锁那味儿,需要度量 BIOS 和 bootloader 的哈希值,于是主板挂了 /引导挂了也会连带导致无法解密(默认是只能靠数字密码,也就是“恢复密钥”),所以要说蛋疼其实也蛮蛋疼的,一不小心就 footgun 了。

(或者……从 PIN 可以用很短的、更容易记忆的数字、而且更容易定期更换,超长的数字密码“恢复密钥”则是塞进保险柜这个角度讲,有个 TPM 确实是可以提高安全性的?)

至于 TrueCrypt 的观点,我感觉……貌似 BitLocker 也没有说物理或系统安全守不住的情况下还可以依赖 TPM ?比如电脑被偷走了,干脆就不在用户手里了,想继续用也用不了了啊(笑)。(不过我印象里 TPM 的安全芯片貌似还是爆过漏洞的,可以把里面固化的私钥提取出来,也许这个威胁确实挺大吧,但好像也并不是每一款安全芯片都可能被破解?)

总之我个人还是倾向于(用 BitLocker 时)不用 TPM 。


另外维基百科里还提到了 TPM 可能反过来威胁用户的自由和隐私……
看了一下好像引用的是 RMS 向“可信计算”开炮的文章,然而通篇读完我好像也没看到哪里有提到隐私方面的威胁,好像只是批评“可信计算”,说“可信计算”这个名字起的就很有误导性,实际上“可信计算”会让用户手里的设备不听他的指挥,所以应该叫做“背叛计算”还差不多……甚至把“可信计算”类比成 1984 。

现在更新版本网页上的这篇文章,到了结尾,反倒是还特意点了一下,说 TPM 实质上已经没剩下多少实际能产生(有害)影响的东西了,所以它的威胁警报已经基本解除了……

反正我怎么看都没看出来英文维基里说的什么 TPM/可信计算可以隐秘地跟踪监视用户的行为并记录在案什么的,可能是楼主我实在是过于火星了吧……
(要说文中有批评隐私泄露,貌似也明确说了是在可信计算之前,是“孤立事件”,然后在此基础上批评“可信计算让这些孤立性的侵害变成了系统性的”)
5048 次点击
所在节点    信息安全
30 条回复
ryd994
2021-07-10 08:52:05 +08:00
@acess 我举一个应用场景:
服务器机房,硬件烧录的公钥 CA 。私钥由用户自己掌握。然后提供签名过的磁盘镜像给厂家。厂家把 CA 写死在硬件里,并且预装指定的系统镜像。用户验证公钥正确即可。

大公司定制生产服就是这么干的。
billlee
2021-07-10 13:23:42 +08:00
@cache Endorsement Key 是用于 remote attestation 的,和加密没有关系。
honeycomb
2021-07-10 16:18:47 +08:00
@acess 对 RMS 来说,任何对数字版权系统有帮助的机制都有很大可能是负面的,因为它们几乎必定威胁到了用户权利。
wangkai0351
2021-07-10 16:44:10 +08:00
@Jirajine 厂家大多认为机器是可控的安全的,用户人是不可控的,因此 trust root 给到机器,给不到用户人。当然如果完全把人消灭了,也就没有任何 attack 了。
binsys
2021-07-10 19:03:48 +08:00
事实上 TPM 就是厂商增强对用户设备的控制的一种手段,就想国内大多强制用手机号注册各种账号一样,顺着一股风就吹来了。这玩意和当前移动设备的各种 bootloader 异曲同工啊。
Jirajine
2021-07-10 19:40:45 +08:00
@wangkai0351 如果用户没有 root of trust,那么这些所谓的 security,trusting 就不是 protect user,而是 protect against user,传递到操作系统,用户连个私有 CA 证书都没权利添加。
用户买了设备却没有私钥,就像买了房子没有钥匙一样,开门都要管家帮你开。希望以后西方 zf 可以推动立法禁止这种行为。
jim9606
2021-07-10 23:43:01 +08:00
@acess
现在能推广开来的可信执行技术基本上都是中心化的信任根。去中心化的方法我想到的就是以太坊那种,成本高太多了。

微软驱动签名那个没啥办法,除非所有驱动都是自己做,跟 OS 一起分发,像 macOS 那样。微软也没能力让生态系统完全摆脱第三方驱动程序,或者通过破坏驱动兼容性的方法收紧对内核的控制权。
acess
2021-07-11 21:46:32 +08:00
@jim9606 感觉跟以太坊还是差太多了……

虽然“可信计算”貌似也宣称可以用于“两个人不互信,硬件充当第三方来作证”这类用途,而且区·块·链在很多地方貌似也宣称“机器铁面无私,人可能贪污腐败”,但两者貌似还是不太靠的上边的。(而且区·块·链不也是面临各种批评,认为去中心化是伪去中心化,trustless 也是空中楼阁么)

(据我的理解)区·块·链,是怎么达到“无需信任”( trustless )的呢?
是最笨最低效的办法:
(公开账本内容,允许任何一个人)跑全节点,把整个账本从创世区块开始独立、完整地验证一遍。
即便如此,还是需要信任矿工没有 51%攻击回滚重写账本。
(而且币圈对这个“两层”的概念也有争议,不少人都不认可这个概念,认为实际上还是只有矿工说了算、只信任矿工,不存在什么第一层“跑全节点独立验证”……不过即便是不认可第一层概念,仍然不妨碍矿工之间至少还是要相互验证对方写入区块的内容,更不用说公链一般是 permissionless,网络是自由进出的)
既然要(每个人都)自己重新验算一遍,效率极度低下是一方面,隐私完蛋就是另一方面——虽然结合加法同态、零知识证明之类的技术也可以部分地保护隐私(隐藏转账金额甚至资金去向)。

这个帖子里说的“可信计算”很显然不是靠“我自己来重新验算一遍”(也不是靠矿工之间的相互博弈),而是靠剥夺用户对设备的完整控制权来实现“相信机器铁面无私”(虽然实际上还是相信设备制造商不会作弊开后门,归根到底还是在相信人)。而且这个帖子里说的“可信计算”很大程度上是很偏向厂商的利益的,有点像手机刷机锁或是游戏主机防破解之类的。
acess
2021-07-11 21:50:14 +08:00
@jim9606
关于驱动签名,我不知道 mac 那边是啥情况,但反正我觉得开篇就是一句“不要用 kext,请找其他替代方案”就是耍流氓……
acess
2021-07-11 21:51:03 +08:00
@jim9606 有句话是怎么说的来着,想要安全?那好,不要上网,甚至不要用电脑了。
苹果那一句“不要用 kext 了”就给我这个感觉,因噎废食。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788634

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX