苹果公司在 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的安全性探讨的更多相关文章

  1. IOS 8 关于 Touch ID

    一.什么是Touch ID? Touch ID是在iPhone 5s后的设备上出现的指纹识别.Apple在IOS 8中开放给第三方APP使用. 可以使用 Touch ID 来验证用户的身份,用户经验证 ...

  2. iOS 8使用Touch ID进行身份认证

    iOS 8的SDK开放了Touch ID的接口.从WWDC的视频中能够看到Touch ID应用在两个方面:用于Key Chain加密和用于授权.iOS 8正式版公布以后我们能够看到Evernote的i ...

  3. IOS指纹识别调用

    最近正在开发的一个app需要加入指纹识别的功能,先搜索一下找到官方文档,简单易懂: https://developer.apple.com/library/ios/documentation/Loca ...

  4. iOS指纹识别

    #import "ViewController.h" #import <LocalAuthentication/LocalAuthentication.h> @inte ...

  5. IOS 指纹识别的简单使用

    首先导入LocalAuthentication框架 然后导入头文件 #import <LocalAuthentication/LAPublicDefines.h> - (void)begi ...

  6. iOS指纹识别代码

    1:添加LocalAuthentication.framework框架 2:实现过程 #import "ViewController.h" #import <LocalAut ...

  7. ios 指纹识别解锁

    :添加LocalAuthentication.framework框架 :实现过程 #import "ViewController.h" #import <LocalAuthe ...

  8. iOS开发——Touch ID 指纹识别

    项目中为了安全性,一般使用密码或iPhone手机的指纹识别Touch ID. 第一步,判断系统是否支持,iOS8.0及以上才支持. 第二步,判断手机是否支持,带Touch ID的手机iPhone5s及 ...

  9. 指纹识别人脸识别 iOS

    //1.判断iOS8及以后的版本 if([UIDevice currentDevice].systemVersion.doubleValue >= 8.0){ //从iPhone5S开始,出现指 ...

随机推荐

  1. palindrome number(回文数)

    Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...

  2. java线程池原理

    在什么情况下使用线程池?     1.单个任务处理的时间比较短     2.将需处理的任务的数量大     使用线程池的好处:     1.减少在创建和销毁线程上所花的时间以及系统资源的开销     ...

  3. tomcat jvm优化

    tomcat优化(全) (2012-09-26 10:12:59) 转载▼ 标签: 杂谈 分类: java 1.内存设置(VM参数调优)(1). Windows环境下,是tomcat解压版(执行sta ...

  4. Microsoft Visual C++ Compiler for Python 2.7真正下载地址

    真正下载地址: http://origin.www.ms.akadns.NET/en-us/download/details.aspx?id=44266 那个微软地址好像不可用.

  5. DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)

    写在前面 最近有这么一个需求,分享页面,分享的是web订单截图,既然是web 就会有超出屏幕的部分, 生成的图片还要加上我们的二维码,这就涉及到图片的合成了. 有了这样的需求,就是各种google.也 ...

  6. C#之Redis为所欲为

    一 Redis是一种支持多种数据结构的键值对数据库 1.1Redis下载地址 :https://github.com/MicrosoftArchive/Redis 建议下载 .msi结尾的应用程序进行 ...

  7. wcf双工通讯

    首先说一个服务引用不成功的解决办法: 需要把服务端配置文件中的Binding换成: <endpoint address="" binding="BasicHttpB ...

  8. [CVPR2017] Deep Self-Taught Learning for Weakly Supervised Object Localization 论文笔记

    http://openaccess.thecvf.com/content_cvpr_2017/papers/Jie_Deep_Self-Taught_Learning_CVPR_2017_paper. ...

  9. 一些常用的linux命令(2)

    参考:http://www.cnblogs.com/laov/p/3541414.html 系统管理命令 stat               显示指定文件的详细信息,比ls更详细 who       ...

  10. Jenkins配置报告与邮件插件

    用jenkins做持续集成时,需要发送报告与邮件,下面说一下如何配置报告与邮件的插件 1:配置报告插件 我们先装一个Report插件,在系统管理-管理插件中找  HTML Publisher plug ...