再Update:
大家在讨论指纹信息能否hash,没原始数据怎么对比?当然可以hash,指纹不是位图那样对比,而是傅里叶变换后滤波得到特征数据再对比。
=======================
又Update:
同样来自
autopear大大,他从代码上看苹果采用的方案确实和我下面说的Mapping一样,至少对于第一方软件是这样的。
=======================
Update:
本来以为苹果会在硬件层做更多安全措施,甚至可能让指纹数据完全不出现在软件层。但就在刚刚,以前WEIP技术组的朋友
autopear说,已经找到保存指纹数据的位置,可加载为NSData...估计具体格式过一阵搞搞就出来吧,目前估计就是加了salt的hash。
=======================
最大的安全隐患是每个人只有一套指纹,而且不像密码那样可以随时换。
也就是说,如5S等设备/服务的任何一个指纹数据泄露就等于全盘泄露...
我觉得5S的指纹扫描绝不能让第三方软件获取raw数据,hash都不行,应允许用户保存一套Mapping:如食指指纹对应常用密码A,中指指纹对应网银密码B,第三方只能调用系统密码文本框控件来黑箱获取文本输入,软件代码不用改又安全 。该映射只有iOS知道,不同步或云端保存(感谢棱镜项目,苹果绝对不敢这么干)。
简单来说,就是iOS本身最好能有一个用户自行维护的本地“文本密码”库,而指纹只是这个库的钥匙。用户角度来看,他们会发现,每处密码输入文本框都会提示可以用指纹扫描,但他们不知道其实iOS只是以指纹为令牌获取了文本密码并填进去再确认。
这对开发者来说有三点好:
- 代码不用改,所有的secured文本框(***代替文本那种...)都自动支持了指纹
- 撇清责任,从逻辑上杜绝了自己泄露指纹的可能
- 交互不变,不用给指纹单独设计流程
这么做最多在API层面杜绝了安全隐患,但真正可怕的是越狱...
越狱后这些什么措施都是纸老虎了,像我这样不犀利可能研究下劫持,更犀利的直接驱动层搞起了啊!