iOS指纹识别Touch ID的安全性探讨
苹果公司在 iPhone 5s 的发布会上公布了全新的指纹识别安全技术,也就是 Touch ID,开创了生物安全识别技术在便携设备上使用的新篇章。此后,苹果还将此技术带到了 iPad 上。此前没有任何厂家将指纹识别成功的打造在如此常用的设备上,因为涉及到非常复杂的工艺和技术难关。苹果在2012年收购在此方面技术领先的 Authen Tec 公司作为技术基础,并为iOS设备量身打造了 Touch ID。这使得苹果在智能设备的指纹识别方面比其他厂商更加智能且利于使用。三星的指纹识别功能必须要用手指按某个方向滑动,而 Touch ID 只需你将手指放上去,就可以360度读取指纹。那么,Touch ID 是否真的足够安全呢?这是一个值得探讨的问题。
Touch ID 与普通密码相比的安全性
一个人的指纹是世界上最好的密码之一。它独一无二,高度特异,并且无需记忆。它会伴随人终生,所以你可以一直使用同一个指纹密码。
比起简单的4位数字锁屏密码一万分之一的破解可能性,能找到同样单个指纹的人的概率为五万分之一,这是非常安全的,比起前者我可以不断尝试,Touch ID 指纹的硬性破解几率几乎没有,因为不可能有五万多个人排队来一一解锁你的设备,况且 Touch ID 会拒绝第五次以后的尝试而要求输入密码。所以我们可以添加更加复杂的密码而不是简单的数字密码来进一步提高安全性。
苹果在发布会上表示,在 Touch ID 推出之前,因为每次解锁都要繁琐的输入密码的原因,使用了锁屏密码的人不到 50%;然而在此之后,iPhone 5s 用户使用锁屏密码的概率大大增加,因为 Touch ID 简单好用,所以瞬时的解锁让人几乎感受不到有锁屏密码的存在。
这实际上是一个非常好的情况,苹果公司在这一点上做的贡献就是,它让大多数曾经没有保护数据安全习惯的用户都开始添加密码来保护数据安全,让 iPhone 从总体方面来说都变得更加安全。而这一切实现的原因就是 Touch ID 既可靠又简单。
可见,Touch ID 的出现,让手机锁比以前更加安全可靠。
指纹破解可能性
指纹密码是否可破解?基本所有密码都可以被破解,只是难度不同。已经有人成功硬性破解了 Touch ID ,靠的是一张指纹的模型。普通人是否应该为此担心?答案是否定的,因为这种模型需要很高的技术来打造,并且仍然有着很高的失败率,但 Touch ID 只允许尝试不超过 5 次,所以必须把指纹模型做到极为精密和逼真,但没人愿意付出如此代价来解锁 iPhone。
Touch ID 指纹识别的原理
Touch ID 如何识别指纹呢?在如此快速的识别过程中,Home 按钮上的一圈金属环起到了感应手指的功能,通知 Touch ID 来读取指纹。Touch ID 置于该按钮中,传感器的厚度只有 170 微米,拥有 500 ppi 高分辨率,可读取极小的指纹细节。传感器可从皮肤皮下层指纹的一些小部分拍摄高分辨率图像,然后会分析该信息,根据三种基本指纹类型(弧形纹、箕形纹或斗形纹)将指纹分类,它会绘制比人眼不可见的纹路细节,确保指纹读取准确无误。
Touch ID 可从 360 度方向读取指纹,随后创建指纹的某种数学表达式,并将其与已注册的数据进行比较,以确定是否匹配。如果匹配,便可替代密码来解锁设备或通过某个令牌。
此外,根据苹果官方的描述,Touch ID 会向以注册的指纹数据里持续的添加新的特征数据,随着时间的推移,这能不断提高匹配准确度,也能进一步的提高安全性。
除了上述的内容,苹果还加入可以一些有效的手段来进一步确保安全,例如设备再重新启动或者保持锁定 48 小时后,丢只能通过密码而不是指纹来解锁设备,这也打消了坏人通过不停重新启动来破解指纹的可能性。
总体而言,Touch ID 是一套完备的指纹识别系统,其原理清晰明了。
指纹信息数据存储的安全性
指纹对于每个人来说都极其重要,因为它不能更改,所以如果泄漏了指纹图案,相当于是损失了一个天然的强有力的安全密码。问题是,我的指纹数据在 iOS 设备上是否安全,iOS 是否会泄露我的指纹图像?这些是我们最应该关心的问题。
首先,苹果声明指纹的图案不会被保存,存储于设备中的是指纹特征的数学表达式,而且从这些表达式直接反推出指纹图像也是不可能的。因此即使丢失设备并被人把它拆解开来,也不会丢失指纹的图形。
其次,指纹的验证运算独立于主要处理器芯片(例如 A7、A8),芯片内有称为 “Secure Enclave” 的高级安全架构,专用于密码指纹数据,并使用 Secure Enclave 的专用密钥加密,以及每次启动以随机的 UID 进行管理。指纹数据仅能被 Secure Enclave 处理和使用,正因为此架构独立于其它设备部件,仅有 Touch ID 使用它,且不能将它用于匹配其他指纹数据库,所以存储的指纹数据不会由 iOS 或其他应用访问,也不会被存储到 Apple 服务器或备份到 iCloud 等地方。
以上皆是苹果官方的说明。从硬件上来看指纹特征数据尚不能被 “Secure Enclave” 和 Touch ID 以外的部件访问到,并且两者芯片互相隔离开来,所有软件都没有权利获得指纹数据,仅能得到指纹是否错误的回馈。因为架构的核心秘密仅仅只有苹果公司知道,所以目前几乎没有第三方软件可以访问到这部分敏感信息。这里也要感谢 iOS 的封闭性以及对应用程序严格的约束,才能打造出最安全的系统。
那么苹果公司是否会自己上传利用这部分数据呢?从官方的声明来看是不会的。
与 Touch ID 配合使用的安全建议
Touch ID 虽然很安全,但仍不可在安全性上大意。除了最普通的物理防盗方法之外,还推荐如下的安全措施,来竭力保护个人数据的安全。
更加强壮的锁屏密码
Touch ID 快速的扫描解锁免去了输入繁琐的锁屏密码,但在多次扫描失败后,允许用户手动输入密码。这时如果你有一个不简单的密码,不是简单的4位数字,就能大幅提高安全性。这对于本人使用来说,仍然不会增加日常使用的繁琐。
注册精准的指纹
推荐使用大拇指录入指纹,因为此处的指纹纹理清晰,最适合扫描。推荐将手指清洁干净再录入指纹,防止扫描出错。在录取指纹边缘的界面,应当将手指各边缘尽可能的接触 Home 按钮,来全方位的录入指纹。
虽然网络上有提供方法,可以在录取指纹时,同时将五个手指录入到一个指纹里,但这无疑降低了精准性,可能会带来增大被破解概率的风险。因此,推荐一次只录入一个指纹,目前 iOS 支持最多注册 5 个指纹,你可以安排在你最常用的手指上。
丢失或被盗后停用 Touch ID
在iPhone、iPad丢失或者被盗后,应当前往 iCloud.com/#find 或者其他设备上的“查找我的iPhone”应用来打开“丢失模式”,此时会停用 Touch ID 并只能通过密码解锁设备,排除他人使用破解的指纹来解锁开 iPhone、iPad 的可能性。
避免 iOS 越狱
虽然目前没有明确的说明可以指出越狱设备的 Touch ID 机制会存在安全隐患,但由于越狱设备的权限非常大,某些破解软件和插件可能会访问到很机密的信息,这会留下很大的安全隐患。此外,在 iOS 不断改良的今天,越狱已经变得不再那么令人激动了。
iOS指纹识别Touch ID的安全性探讨的更多相关文章
- IOS 8 关于 Touch ID
一.什么是Touch ID? Touch ID是在iPhone 5s后的设备上出现的指纹识别.Apple在IOS 8中开放给第三方APP使用. 可以使用 Touch ID 来验证用户的身份,用户经验证 ...
- iOS 8使用Touch ID进行身份认证
iOS 8的SDK开放了Touch ID的接口.从WWDC的视频中能够看到Touch ID应用在两个方面:用于Key Chain加密和用于授权.iOS 8正式版公布以后我们能够看到Evernote的i ...
- IOS指纹识别调用
最近正在开发的一个app需要加入指纹识别的功能,先搜索一下找到官方文档,简单易懂: https://developer.apple.com/library/ios/documentation/Loca ...
- iOS指纹识别
#import "ViewController.h" #import <LocalAuthentication/LocalAuthentication.h> @inte ...
- IOS 指纹识别的简单使用
首先导入LocalAuthentication框架 然后导入头文件 #import <LocalAuthentication/LAPublicDefines.h> - (void)begi ...
- iOS指纹识别代码
1:添加LocalAuthentication.framework框架 2:实现过程 #import "ViewController.h" #import <LocalAut ...
- ios 指纹识别解锁
:添加LocalAuthentication.framework框架 :实现过程 #import "ViewController.h" #import <LocalAuthe ...
- iOS开发——Touch ID 指纹识别
项目中为了安全性,一般使用密码或iPhone手机的指纹识别Touch ID. 第一步,判断系统是否支持,iOS8.0及以上才支持. 第二步,判断手机是否支持,带Touch ID的手机iPhone5s及 ...
- 指纹识别人脸识别 iOS
//1.判断iOS8及以后的版本 if([UIDevice currentDevice].systemVersion.doubleValue >= 8.0){ //从iPhone5S开始,出现指 ...
随机推荐
- spring 整合 mybatis 中数据源的几种配置方式
因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...
- Xshell 5 配置上传下载命令
可以在官网https://www.netsarang.com/products/main.html 下载Xshell, 目前最新的版本已经到Xshell 6了 本人记录下安装的目录截图: 安装命令: ...
- Java SE学习笔记 --->高级类特性 ---> toString() 方法
概述: toString() 方法在面向对象当中十分常见,使用频率很高,和equals() 方法一样,也是Object类中定义的方法. jdk中 源码: java.lang.Object类中ToStr ...
- 在Ubuntu系统安装Sencha CMD
Now type from the terminal prompt followed by Enter: 1 root@prompt:cd /java 1 root@prompt:tar zx ...
- JAVA库函数总结【持续更新】
生成随机数: Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值. Random rand = newRandom(); rand.nextInt( ...
- UE4学习心得:Scene Component蓝图的一个简单应用
Scene Component是蓝图类中一个不怎么常用的分类(特别是对于新手而言),主要是其实现的功能可以在Actor类中用相同的方法实现,使其作用显得有点多余. 笔者在使用过这个类之后发现其作用更相 ...
- Hi,这有一份风控体系建设干货
互联网.移动互联网.云计算.大数据.人工智能.物联网.区块链等技术已经在人类经济生活中扮演越来越重要的角色,技术给人类带来各种便利的同时,很多企业也饱受"硬币"另一面的伤害,并且形 ...
- Python之命名空间、闭包、装饰器
一.命名空间 1. 命名空间 命名空间是一个字典,key是变量名(包括函数.模块.变量等),value是变量的值. 2. 命名空间的种类和查找顺序 - 局部命名空间:当前函数 - 全局命名空间:当前模 ...
- 洛谷 P1069 解题报告
P1069 细胞分裂 题目描述 \(Hanks\)博士是\(BT\) (\(Bio-Tech\),生物技术) 领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. \(Hanks\) ...
- 格子刷油漆【动态规划问题】—NYOJ 980
个人博客页:https://www.scriptboy.cn/198.html 出处:蓝桥杯 题目描述: X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护 ...