1
tanyuxiang 2014-11-20 18:53:58 +08:00
有专门的指纹存储芯片么?
把你电脑硬盘拆下来换个硬盘上去有意义? |
2
DreaMQ 2014-11-20 19:07:09 +08:00
个人觉得不太可能,每个机器的签名都应该是唯一的
|
3
churchmice 2014-11-20 19:22:47 +08:00 via Android
很简单啊,芯片里面再存点机器序列号啥的,替换之后马上就可以发现被动过手脚,直接自毁
|
4
jasontse 2014-11-20 19:41:51 +08:00 via Android
我觉得从 App 协议上下手更有可行性,既然指望存储芯片只会返回 yes or no 那我就伪造一个 yes,服务器如何校验?
|
5
em70 2014-11-20 20:05:47 +08:00 via Android
指纹只是密匙,你不知道就肯定不行。
|
6
zhujinliang 2014-11-20 20:19:49 +08:00 via iPhone
现在做安全的都是芯片自带处理器加解密处理,没有独立的存储芯片,安全芯片可以对中间环节进行认证,不符合就拒绝读写。
进一步说,芯片里也是做各种处理,防止拆开芯片强行读取 |
7
zhujinliang 2014-11-20 20:24:29 +08:00 via iPhone
我用的支持touch id的软件都需要事先设置密码,首次使用必须使用密码,重启后第一次用也必须用密码。猜测touch id通过认证后返回的是密码(加密后的或者原文),需要程序自己验证,而不是true或false
|
8
sandideas 2014-11-20 20:32:53 +08:00 via Android
@jasontse 但是可以设置成每个应用需要用到指纹的时候会往应用里面放一个公钥,只有用这个公钥解密才能获得真正的true or false。。。私钥放在芯片里面物理隔离,每个芯片里面有独一无二的私钥。。
当然这个只是我瞎想的,不知道真实是怎么处理的。。我只是模仿了SSL加密的想法 |
9
wy315700 2014-11-20 20:50:13 +08:00
|
10
xuan_lengyue 2014-11-20 22:04:58 +08:00
@zhujinliang 没错,密码是存储在 Keychain 里的,Keychain 会使用 Secure Enclave 对数据解密,此时需刷指纹,最后返回明文完成 Keychain 的读取。
|
11
SharkIng 2014-11-21 05:07:41 +08:00 via Android
其实就是 你用我家钥匙开不开你家锁的道理
|
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⽉版) |
13
zwl2828 2014-11-22 17:18:37 +08:00
@zhujinliang
第三方应⽤程序可以使用系统提供的 API,要求用户使用 Touch ID 或密码进行认证。应⽤程序只会收到认证是否成功的通知,⽽⽆法访问 Touch ID 或与已注册指纹相关的数据。 钥匙串项(Keychain)也可使用 Touch ID 进行保护,⽽只有通过指纹匹配或设备密码,Secure Enclave 才会将其释出。应用程序开发者也可以通过 API 来确定密码由⽤户所设,由此允许使用 Touch ID 认证或解锁钥匙串项。 |