V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kijnife4
V2EX  ›  程序员

关于外置 TPM 与 fTPM 安全问题的一些事

  •  
  •   kijnife4 · 15 天前 · 812 次点击
    我在 https://www.v2ex.com/t/906617 这里看到外置 TPM 存在旁路攻击的风险

    猜测的攻击手段我直接引用楼层里面的回复
    “拦截 TPM 与 CPU 直接的 LPC 总线明文传输”+"雷电 3 有通过 DMA 直接访问内存绕过安全机制的硬件缺陷"

    但是由于现在都是把 TPM 内置到 CPU 固件里面,然后通过软件方法来实现,AMD 的叫做 fTPM,INTEL 没了解过,所以应该不存在文章里面的旁路攻击 然后获取到 TPM 里面的密钥这种漏洞。
    =========
    但是搜索下发现 2023 年有出现了针对 AMD 的 fTPM 的攻击 Zen3 之前的受影响,ZEN4 不知道。而且没有提到修复方案,貌似只能后续架构更新的时候堵上这个 BUG 。
    链接: https://www.tomshardware.com/news/amd-tpm-hacked-faultpm
    而且实现方案公布在 github 上面。


    不使用 Veracrypt ,目前还有什么相对安全的数据加密手段了吗?
    我想到的只有 BitLocker+密码,不走 TPM 。
    使用 TPM ,但是 BitLocker+PIN (或者替换成 USB KEY )
    3 条回复    2024-06-11 22:07:34 +08:00
    kita
        1
    kita  
       15 天前
    简单说 AMD fTPM 因为 chiplet 的设计问题导致密钥会被读出来
    ysc3839
        2
    ysc3839  
       15 天前 via Android   ❤️ 1
    引入外部密钥就能解决了,上述问题都是跟 TPM 有关的。
    个人认为 Windows 用 TPM 保存加密密钥都是为了给“Windows 不支持使用用户密码作为硬盘解密密钥”这个问题擦屁股。
    隔壁几个操作系统,如 Android iOS macOS 都支持使用用户密码来解密数据,启动时能先显示一个输密码的界面出来,用户输入密码后才解密。
    而 Windows 不支持这种操作,所以如果引入了外部密钥,就只能是现在 BitLocker PIN 那种对用户很不友好的界面,结果微软选择了降低安全性换取用户便利的方案。
    billccn
        3
    billccn  
       15 天前
    首先除非你有被国家级单位盯上的可能,那 TPM 旁路攻击根本不需要考虑,因为能把自己挂到 LPC 总线上的攻击者完全可以通过其他的方法攻击,反正读出你的密钥是没有问题。唯一的解决方案是把 TPM 和内存直接集成进 CPU ,比如苹果的处理器。

    至于雷电 DMA 漏洞是老黄历,Windows 系统中安装 Intel 的雷电驱动以后,插入新的雷电设备需要管理员权限才能允许 DMA 。同时最近版本的 Windows 10 和所有版本的 Windows 11 都可以启用 BitLocker Core Isolation ,之后 DMA 也会被限制住,再没有权限读取内存里面的密钥。

    最后我个人的观点是凡是软件实现的东西都比硬件更容易有漏洞。几乎所有在固件里实现的 TPM 都出现过泄露 key 的终极漏洞,而我知道的最严重的硬件 TPM 问题只是生成的随机数不够随机而已。

    另外如果你不相信你机器上的 TPM 的话,那也不用相信 Secure boot 了,那一切在那台电脑上的操作都是不可信的,无论你是如何输入密码。比如你被一个特工盯上了,而你电脑上没有启用 TPM ,那他可以很容易的在你电脑上装个 rootkit ,你下次启动的时候只要输入了密码就会被通过网络发送出去,他就可以解密之前做的硬盘镜像。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2457 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:45 · PVG 23:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.