V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tux
V2EX  ›  问与答

能否通过替换芯片来破解手机指纹识别?

  •  
  •   tux · 2014-11-20 18:35:01 +08:00 · 3180 次点击
    这是一个创建于 3469 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假如需要破解A手机的指纹识别,B手机是同型号且已经录入破解者的指纹,之后把B上的指纹存储芯片替换到A手机上,然后A重新开机,是不是用B的指纹能解锁A并且使用A里面一切通过指纹加密的应用和数据?

    如果手机厂要防止这种破解方式,需要怎么做硬件或软件?成本和可行性如何?
    13 条回复    2014-11-22 17:18:37 +08:00
    tanyuxiang
        1
    tanyuxiang  
       2014-11-20 18:53:58 +08:00
    有专门的指纹存储芯片么?

    把你电脑硬盘拆下来换个硬盘上去有意义?
    DreaMQ
        2
    DreaMQ  
       2014-11-20 19:07:09 +08:00
    个人觉得不太可能,每个机器的签名都应该是唯一的
    churchmice
        3
    churchmice  
       2014-11-20 19:22:47 +08:00 via Android
    很简单啊,芯片里面再存点机器序列号啥的,替换之后马上就可以发现被动过手脚,直接自毁
    jasontse
        4
    jasontse  
       2014-11-20 19:41:51 +08:00 via Android
    我觉得从 App 协议上下手更有可行性,既然指望存储芯片只会返回 yes or no 那我就伪造一个 yes,服务器如何校验?
    em70
        5
    em70  
       2014-11-20 20:05:47 +08:00 via Android
    指纹只是密匙,你不知道就肯定不行。
    zhujinliang
        6
    zhujinliang  
       2014-11-20 20:19:49 +08:00 via iPhone
    现在做安全的都是芯片自带处理器加解密处理,没有独立的存储芯片,安全芯片可以对中间环节进行认证,不符合就拒绝读写。
    进一步说,芯片里也是做各种处理,防止拆开芯片强行读取
    zhujinliang
        7
    zhujinliang  
       2014-11-20 20:24:29 +08:00 via iPhone
    我用的支持touch id的软件都需要事先设置密码,首次使用必须使用密码,重启后第一次用也必须用密码。猜测touch id通过认证后返回的是密码(加密后的或者原文),需要程序自己验证,而不是true或false
    sandideas
        8
    sandideas  
       2014-11-20 20:32:53 +08:00 via Android
    @jasontse 但是可以设置成每个应用需要用到指纹的时候会往应用里面放一个公钥,只有用这个公钥解密才能获得真正的true or false。。。私钥放在芯片里面物理隔离,每个芯片里面有独一无二的私钥。。
    当然这个只是我瞎想的,不知道真实是怎么处理的。。我只是模仿了SSL加密的想法
    wy315700
        9
    wy315700  
       2014-11-20 20:50:13 +08:00
    @sandideas
    @jasontse

    Android可以用TrustZone 技术,进行指纹识别的时候不使用ANDROID内核而是使用TrustZone里的安全内核

    当然进一步正在研发中的技术是FIDO协议。指纹识别器里存放一个私钥,服务器保持公钥,然后认证的时候,服务器发送一个随机字串,指纹识别器识别出正确的指纹以后,用私钥对该随机字串进行签名,然后发送给服务器,这个就没法伪造了。
    xuan_lengyue
        10
    xuan_lengyue  
       2014-11-20 22:04:58 +08:00
    @zhujinliang 没错,密码是存储在 Keychain 里的,Keychain 会使用 Secure Enclave 对数据解密,此时需刷指纹,最后返回明文完成 Keychain 的读取。
    SharkIng
        11
    SharkIng  
       2014-11-21 05:07:41 +08:00 via Android
    其实就是 你用我家钥匙开不开你家锁的道理
    zwl2828
        12
    zwl2828  
       2014-11-22 17:15:54 +08:00
    以 Touch ID 为例:

    光栅扫描结果会临时存储在 Secure Enclave 的加密内存中,同时系统会对其进行向量化处理以便分析,然后将删除相关数据。此分析采⽤⽪下纹路⾛向角度映射,这是一种有损过程,会在分析完成后删除用于重建用户实际指纹的详细数据。最终生成的节点图以一种只能由 Secure Enclave 读取的加密格式进⾏储存。

    使⽤ Touch ID 解锁设备时所需的密钥在设备重新启动后会丢失,⽽且 48 小时或五次 Touch ID 识别尝试失败后,该密钥也会被 Secure Enclave 丢弃。

    参考:《“iOS 安全保护”白皮书》(2014年9⽉版)
    zwl2828
        13
    zwl2828  
       2014-11-22 17:18:37 +08:00
    @zhujinliang


    第三方应⽤程序可以使用系统提供的 API,要求用户使用 Touch ID 或密码进行认证。应⽤程序只会收到认证是否成功的通知,⽽⽆法访问 Touch ID 或与已注册指纹相关的数据。

    钥匙串项(Keychain)也可使用 Touch ID 进行保护,⽽只有通过指纹匹配或设备密码,Secure Enclave 才会将其释出。应用程序开发者也可以通过 API 来确定密码由⽤户所设,由此允许使用 Touch ID 认证或解锁钥匙串项。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1448 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:18 · PVG 01:18 · LAX 10:18 · JFK 13:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.