苹果手机iCloud钥匙串的加密缺陷

什么是iCloud钥匙串

苹果钥匙串是苹果电脑,手机,平板上的密码管理器,帮助用户保存管理账号密码。开启iCloud云同步后,可以在用户的所有设备间同步账号密码,同时也会备份一份在iCloud上。

keychain
icloud keychain

由于苹果默认会开启iCloud云同步,所以绝大多数苹果用户都会使用iCloud钥匙串管理密码。

iCloud钥匙串云同步加密了

我们知道Google Chrome保存的密码,并不会先加密,再上传到云端。

虽然Google声称在云端进行了加密存储,但是这种加密,对Google内部员工,或侵入Google服务的黑客来说,是没有防护作用的。显然,我们并不想让Google知道我们的密码。

相对而言,苹果做得好一点。在 iCloud 钥匙串安全恢复 一文讲解了苹果怎样加密以防止自己(或者入侵苹果的黑客,FBI?)读取我们保存在钥匙串中的密码(登录双重验证等并不能防范服务端的攻击):

iCloud 钥匙串会将用户的钥匙串数据交予 Apple 托管,但不允许 Apple 读取密码和钥匙串包含的其他数据。

用户的钥匙串通过强密码进行加密

建立强密码有以下几种方法:

稍微解释一下:

因为钥匙串中的密码会先使用设备解锁密码加密,然后再保存到iCloud上。设备解锁密码是不会上传到iCloud的,因此苹果不能从iCloud读取钥匙串中的密码。

解密过程反过来:用户新手机从iCloud下载钥匙串数据,输入解锁密码,从加密数据中解密出原来保存的密码。

那么这个强密码有多强呢?

绝大多数苹果手机用户,设置的解锁密码只是6位数字,甚至是4位数字。苹果就是用这个简单的数字密码加密。


小故事

苹果公司与FBI联袂上演公关秀?一文指出,在2015年,苹果一反常态,以保护隐私的名义拒绝与FBI合作,协助解锁一名恐怖分子的iPhone 5C手机。当年闹得沸沸扬扬,官司都打到国会了。

此后,好多年都没有听说FBI求苹果解锁iPhone了。 苹果手机上的所有资料,包括密码都默认上传iCloud后,想必FBI已经不再需要解锁iPhone了,直接破解iCloud上的数据更简单。

可惜加密有缺陷,1个东可破解

那么iCloud用6位数字密码来加密数据,暴力破解需要多长时间呢?我们来估算一下,非常简单!

今年AMD发布的桌面CPU 5995WX有64核心128线程,而且速度比手机CPU更快,用它暴力破解6位数字解锁密码,不用1小时。

如果用更强大的GPU集群破解,那就只是分分钟的事情了。

这显然无法阻止苹果,FBI,或者入侵苹果服务器的黑客破解我们保存在iCloud钥匙串中的密码。

苹果犯了什么错?

日常生活中,使用6位数字密码PIN是非常广泛的。除了手机电脑,银行卡取款密码也都是6位数字,那会不会不安全呢?

6位PIN的作用是识别用户身份,如果连续输错几次,需要等待一段时间才能重试,防止坏人暴力破解。如果继续输错,等待重试的时间会越来越长,有可能需要47年。

iPhone停用47年

47年,看起来相当安全。

然而,苹果错就错在把用于身份识别的6位数PIN码用来加密数据了。

虽然比Google Chrome不加密好一些,实际作用大约聊胜于无吧。


最后希望苹果能够把文档写得更准确一些:

iCloud 钥匙串会将用户的钥匙串数据交予 Apple 托管,但不允许 Apple 轻松读取密码和钥匙串包含的其他数据。

毕竟还需要付出1个东的努力!