一个复杂的锁屏密码,让你的设备更安全:详解 iOS 锁屏安全机制

原文出处: 少数派

前言

这些年科技的飞速发展,很多人将他们大部分的数字生活都存在了自己的智能设备上,与此同时,这些昂贵的设备也成为了盗贼和偷窥狂的焦点。一个令人忧虑的问题便自然而然地浮出了水面:我存在设备上的隐私安全吗?本文将通过解读 iOS 设备锁屏的安全机制,尝试解答这个越来越多人关注的问题。

杜绝暴力破解:iOS 的设备指纹「UID」

你的 iOS 设备有自己的「指纹」,它叫 UID。如同人类的指纹一样,每台设备的 UID 都是独一无二的。人类的指纹由 DNA 决定,终生伴随着你,无法修改也无法复制(或许你可以制造一个别人的指纹模型,但你没办法把自己手指上的指纹改成别人的)—— UID 也是如此。

UID 其实是一串密钥,在每台 iOS 设备被生产的时候就被烧进处理器,之后便无法修改,甚至不能被除了设备本身以外的其他任何人和软件读取到。那么这枚机器的「指纹」究竟有什么作用呢?

想象一下,如果你是一名黑客,正在尝试暴力猜解某个人 iPhone 的锁屏密码。但是,这部 iPhone 却在你试了几次后就把自己停用了,要求你等好几分钟甚至好几个小时之后再重试。很明显,这会极大地延长你猜解密码所需要的时间。于是,你想到了一个方法:把 iPhone 里的闪存芯片拆下来,接到自己的电脑上去破解,以此绕过 iPhone 的自动停用。这个时候,UID 就发挥它的作用了 —— 你突然发现,自己和存储加密文件的房间之间多了一道门,这个门上装着一个指纹锁,只有提供正确的「指纹」(也就是 UID )才能打开门进入房间里猜密码,而这个「指纹」只有那台 iPhone 才有。

因此,暴力破解密码的尝试只能在那台 iPhone 上进行,而 iPhone 又会限制你尝试的次数,这样就大大减少了密码被暴力猜出来的可能性。不得不承认,这是一个很聪明的设计,既不会影响设备本身读取你的个人文件,又阻止了不怀好意的人暴力破解你的密码,两全其美。

分类加密保护:iOS 如何保护你的数据

在日常生活中,我们通常会把自己的东西按贵重级别分类:最贵重的物品(例如钻戒)放进保险箱里严密保护起来,而没那么贵重的物品(比如手机)放在上锁的抽屉里就足够安全了。所有的东西都锁进保险箱实在是有点「大炮打蚊子」的味道。

当你的 iOS 设备锁屏时,你的所有数据都受到加密保护,但是 iOS 也会使用分类的方法将你的文件区别保护。比如,一款专门存羞羞照片的保险箱 App 可能就会要求你的设备对存在它里边的文件进行「完全保护」—— 一旦锁屏,用来解密这些文件的密钥就会直接被设备扔掉,只有用户输入正确的锁屏密码之后才能重新解密这些文件。相比之下,你的微博客户端中下载的图片可能就没那么敏感,它可能只会要求设备对它进行「重启之后保护」—— 设备第一次开机后并输入正确锁屏密码解锁之后,iOS 就会一直把密钥放在内存里以便随时解密你微博里的资料。

由于内存的特性,设备断电(比如关机、重启,甚至被别有用心的人暴力拆掉电池)之后存在内存里的内容就会消失,因此「重启之后保护」能针对一些需要重启的攻击提供保护。除此之外,iOS 中还有其它的保护等级,比如「邮件」App 使用的「按需保护」—— 只在打开文件的时候解密文件。iOS 这样的设计,有效平衡了能耗(完全加密显然更加耗费系统资源的)和安全性。

5926a94401b634f96beb6e4152c30ad0_mw_800_wm_1_wmp_3

 

为什么你需要一个复杂的锁屏密码

在 iOS 的数据保护体系中,锁屏密码扮演了十分重要的角色。设备许多用来加密文件的密钥,都基于你的锁屏密码生成。因此,锁屏密码越复杂,它能为这些密钥提供的「熵」也就越多,加密密钥也就越安全。由于 iOS 的自动停用机制,暴力破解一个 6 位的数字 + 字母混合密码需要高达 5.5 年。笔者建议你在「设置」-「Touch ID 与密码」中关闭「简单密码」的开关,设置一个较长的密码。如果长密码让你感到不便,可以尝试只设纯数字的长密码,因为 iOS 在密码为纯数字时会显示一个纯数字的键盘,大大方便了输入,减轻了解锁时的痛苦。而在 Touch ID 越来越普及的当下,就更没有理由不设置一个复杂的长密码了。

7ac3112d09266d4ea7789eb464654092_mw_800_wm_1_wmp_3

 

写在最后

读完这篇文章,希望你对 iOS 的锁屏安全机制有了一个粗略的了解。实际上,这只是 iOS 先进精密的安全架构的冰山一角。但无论保护再怎么先进,最重要的还是需要我们自己养成良好的保护隐私的习惯。毕竟,如果密码是「1234」,加密再复杂,也无济于事。



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">