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

BitLocker 在没有 TPM 的情况下安全吗?

  •  
  •   rv54ntjwfm3ug8 · 2021-04-09 15:36:01 +08:00 via iPhone · 5132 次点击
    这是一个创建于 1356 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直用 Bitwarden 生成的 64 位含符号随机密码加密放在移动硬盘中的 Windows 虚拟机全盘,今天注意到了一个名为 BitCracker 的项目,可以对 BitLocker 强制创建的纯数字恢复代码进行暴力破解。由于恢复代码的复杂度比我的密码低得多,想问一问 BitLocker 在没有 TPM 的情况下安全吗?
    32 条回复    2023-01-19 20:14:19 +08:00
    qbqbqbqb
        1
    qbqbqbqb  
       2021-04-09 17:11:13 +08:00
    Bitlocker 在有 TPM 的时候也是会创建数字恢复代码的。TPM 仅仅是一种免人工干预的解锁手段而已。
    qbqbqbqb
        2
    qbqbqbqb  
       2021-04-09 17:14:37 +08:00   ❤️ 1
    如果觉得默认的 48 位数字恢复代码不安全的话,可以配置组策略,改成使用 256 位 U 盘文件恢复密钥。
    Stain5
        3
    Stain5  
       2021-04-09 17:28:36 +08:00 via Android   ❤️ 2
    独立的 TPM 不安全,电脑开机的时候 TPM 会将直接密钥明文传递给 CPU,要是有个数字信号分析器的话,TPM 跟裸奔没区别
    x1aoYao
        4
    x1aoYao  
       2021-04-09 17:48:57 +08:00
    @Stain5 我的电脑有 TPM, 然后 BitLocker 加密了系统盘, 但设置为开机后自动解锁(也加密了其他磁盘, 设置为系统盘解锁则自动解锁) 这样情况下偷走整机是不是可以绕过系统开机密码读取磁盘数据了?
    nosugar
        5
    nosugar  
       2021-04-09 17:50:20 +08:00   ❤️ 4
    @qbqbqbqb
    @Stain5
    说的是对的,TPM 开机会把磁盘密钥传给 CPU 。

    你需要下面两个步骤保证正确加密:
    1. 搜索关键词“bitlocker pin special characters”,允许 BitLocker 使用字母等特殊字符作为密码,默认是数字。
    2. 搜索关键词“Require startup PIN with TPM”,启动的时候 TPM 保存一部分密钥加上你手动输入的密钥,来让电脑磁盘解密。

    上面两个组策略都配置好后,电脑启动需要 TPM 和你手动输入密钥磁盘才能解密,二者缺一不可。
    nosugar
        6
    nosugar  
       2021-04-09 17:54:35 +08:00   ❤️ 1
    @theklf4
    你的上一个帖子“iOS 上有什么让数据 100% 不会被系统读取和上传的笔记软件? https://www.v2ex.com/t/768799”,苹果系统可以仅从应用商店登录 Apple ID,从而仅使用 App Store,你这是一个非常正常且合理的需求。记得从应用商店登录后,在设置里面提示让你打开 iCloud 的时候选择“否”,这个是我之前打算回归安卓的时候探索出来的,其它苹果服务都有第三方替代方案,你自己摸索下。
    qbqbqbqb
        7
    qbqbqbqb  
       2021-04-09 17:57:52 +08:00   ❤️ 2
    @x1aoYao 可以 BIOS 里禁止 U 盘启动并且设置 BIOS 管理员密码,这样就没法用启动盘绕开机密码了。

    Bitlocker 在使用 TPM 时会测量启动环境,如果环境发生了变化(例如放电清除 BIOS 设置,或者修改 SecureBoot 等安全设置),TPM 就会拒绝释放密钥,然后强制进入需要输入恢复代码的解锁流程。
    qbqbqbqb
        8
    qbqbqbqb  
       2021-04-09 18:00:21 +08:00
    而且大多数可以绕密码的 WinPE 盘本身也不支持自动解锁 Bitlocker
    nosugar
        9
    nosugar  
       2021-04-09 18:02:09 +08:00
    https://github.com/e-ago/bitcracker
    @theklf4 你提到的这个项目我有时间的时候研究下,或者你发现什么结论的记得补充恢复,节省大家时间。
    nosugar
        10
    nosugar  
       2021-04-09 18:06:51 +08:00
    另外我上面回复的两个步骤需要在你磁盘关闭 Bitlocker (解密状态)的时候操作,已经开启 Bitlocker 了会不起作用。
    nosugar
        11
    nosugar  
       2021-04-09 18:12:16 +08:00   ❤️ 1
    macOS 没有 T2 芯片的型号 FileVault 磁盘加密逻辑是用用户密码作为密钥(应该是解密磁盘 AES 的主密钥的密钥),苹果聪明的做法是在开机启动的时候展示一个桌面一样的壁纸和密码输入 UI,让用户以为系统已经启动等待输入密码进入系统,其实这时候系统还没加载,加载的是一个类似于引导系统的东西,具体的情况没有深究,有大佬知道欢迎指正,谢谢!
    nosugar
        12
    nosugar  
       2021-04-09 18:15:34 +08:00
    TPM 不是加密,是放篡改机制,#7 楼 qbqbqbqb 说的非常好,另外我个人觉得 BIOS 密码不见得安全,这个可能不同 PC 厂商不同型号版本实现不一样。
    kikikiabc
        13
    kikikiabc  
       2021-04-09 18:25:48 +08:00 via iPhone
    这个加密看似很厉害 但有一个致命 bug,系统更新时会自动禁用,形同虚设
    nosugar
        14
    nosugar  
       2021-04-09 18:49:39 +08:00
    @kikikiabc Windows 10 上并不会,正常更新驱动及补丁,这是微软的企业数据管理方案,微软官方文档有介绍的。
    silymore
        15
    silymore  
       2021-04-09 19:22:30 +08:00 via iPhone
    @nosugar 原来是这个原因,我说为啥要登陆两遍,还以为是遇到钓鱼了
    kikikiabc
        16
    kikikiabc  
       2021-04-09 19:36:09 +08:00 via iPhone
    windows10 官方文档也提到会自动禁用的。最新版好像有选项可以不禁用,但默认还是会自动禁用的
    kikikiabc
        17
    kikikiabc  
       2021-04-09 19:40:40 +08:00 via iPhone
    有兴趣的可以搜索一下 windows10 update disabled bitlocker bug 之类的关键词。我是实际碰到这种问题的,很无语
    whee1
        18
    whee1  
       2021-04-09 19:52:43 +08:00
    最先考慮的不是 BitLocker,而是該選哪個版本的 window10 。
    Stain5
        19
    Stain5  
       2021-04-09 20:06:40 +08:00 via Android
    @nosugar 用 TPM 不就是不想输密码吗,这么麻烦 还是上 vTPM 吧,内嵌在处理器里,没那么容易破解
    sky96111
        20
    sky96111  
       2021-04-09 20:13:02 +08:00
    @kikikiabc 自动更新只是临时禁用,下次启动又会重新启用,而且遇到需要禁用 bitlocker 的大更新,设备会自动重启安装更新并启用 bitlocker 。除非你更新了系统之后从强制关机然后丢失设备,不然还是安全的。
    Stain5
        21
    Stain5  
       2021-04-09 20:22:32 +08:00 via Android
    @qbqbqbqb 都上数字信号分析器了,把主板上的 CMOS RAM 拆了用编程器读一下也不是不可能
    dingwen07
        22
    dingwen07  
       2021-04-09 20:42:26 +08:00 via Android
    你要是怕数字密码(恢复密钥)被暴力破解,直接用 manage-bde 把它删了不就得了
    mmlmml1
        23
    mmlmml1  
       2021-04-09 20:51:05 +08:00
    别忘了 BitLocker 在支持硬件加密的情况下是直接交给硬件负责的,但有部分 SSD 的加密形同虚设,根本就不加密...
    Greatshu
        24
    Greatshu  
       2021-04-09 21:03:30 +08:00
    不敢用 TPM,要是 CPU 或者主板 TPM 挂了,资料就全完了
    kikikiabc
        25
    kikikiabc  
       2021-04-09 21:26:48 +08:00 via iPhone
    所谓的 bug 都是在你最意想不到的地方冒出来。不要小看这个看上去好像没啥的临时禁用操作,关键时刻是致命的。bug 都是以比千分之一万分之一还要小得多的机会才会触发,但遇到就没机会了
    rv54ntjwfm3ug8
        26
    rv54ntjwfm3ug8  
    OP
       2021-04-09 22:41:43 +08:00 via iPhone   ❤️ 1
    @nosugar #6 感谢您的建议,但目前是 Apple 全家桶用户,iCloud 还是有必要打开的。
    @qbqbqbqb #2 没有找到相关的组策略项目,能否提供下路径?
    Rocketer
        27
    Rocketer  
       2021-04-10 00:42:25 +08:00 via iPhone
    TPM 在物理安全的情况下是可靠的,所以我司对存有敏感数据的主机都放在有保险设施的机房里,使用者只能使用远程桌面访问。局域网环境下与使用物理机体验几乎一致。
    qbqbqbqb
        28
    qbqbqbqb  
       2021-04-10 01:01:18 +08:00   ❤️ 1
    @theklf4 管理模板 /Windows 组件 /BitLocker 驱动器加密 /操作系统驱动器 /选择如何才能恢复受 BitLocker 保护的操作系统驱动器
    leafleave
        29
    leafleave  
       2021-04-11 10:05:54 +08:00
    @Greatshu 保存好恢复密钥就行
    rv54ntjwfm3ug8
        30
    rv54ntjwfm3ug8  
    OP
       2021-04-24 18:29:05 +08:00 via iPhone   ❤️ 1
    @dingwen07 #22 看了下 Microsoft 官方的 manage-bde 文档,没找到删除恢复密钥的方法呀。
    @qbqbqbqb #28 这样配置后已经生成的恢复密钥是否仍然有效并可以用于第三方解锁工具呢?
    dingwen07
        31
    dingwen07  
       2021-04-25 05:09:53 +08:00 via iPhone
    @theklf4 #30 先列出所有 protectors,找到数字密码,可以看到你的回复密钥明文,然后删除对应 ID
    davidpi
        32
    davidpi  
       2023-01-19 20:14:19 +08:00
    楼主是不是对数字恢复密码的强度有什么误解。
    那个数字恢复密码的长度是 48 位,一共有 10^48 种组合,大致相当于 160 Bit 密钥:log2(10^48) = 159.45
    Bitlocker 的默认加密是 128 Bit AES 。那个数字密码的强度已经比 AES128 高 2^(160-128) = 42 亿倍了。攻击那个不如直接攻击 AES 。
    对于 AES128 加密,你的密码最终会变成一个 128 Bit 的密钥。如果你的密码是大小写字母+数字组合( 62 种字符),高于 22 位都没有意义了,因为 log(2^128, 62) = 21.49 。
    在现有(以及可以预见的未来,量子计算机成为现实)以前,AES128 都不可能被暴力破解。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:03 · PVG 08:03 · LAX 16:03 · JFK 19:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.