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

article/2025/9/14 6:23:34

什么是iCloud钥匙串

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

在这里插入图片描述

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

iCloud钥匙串云同步加密了

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

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

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

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

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

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

如果用户帐户启用了双重认证,则使用设备密码来恢复托管的钥匙串。
如果未设置双重认证,用户需要通过提供六位数字密码来创建 iCloud 安全码。除此之外,如果未设置双重认证,用户可以自行指定较长的安全码或允许其设备创建随机加密的安全码,他们可以自行记录和保存。

稍微解释一下:

  • 钥匙串中的账号密码等会保存在iCloud上,但是苹果不能读取。
  • 钥匙串中的数据使用了强密码加密。
  • 苹果使用设备解锁密码作为强密码

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

在这里插入图片描述

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

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

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


小故事

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

在这里插入图片描述

几年后,苹果公司让FBI访问了一名被指控放火烧警车的示威者的iCloud账户 Apple gave the FBI access to the iCloud account of a protester accused of setting police cars on fire。苹果手机上的所有资料,包括密码都默认上传iCloud后,想必FBI已经不再需要解锁iPhone了,直接破解iCloud上的数据更简单。

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

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

  • 解锁手机的时候,手机就会计算出一个加密密钥。为了不让用户等太久,大约需要不到1秒时间,我们简单按照500ms计算。

6位数字密码并不能直接用来加密,通常会使用PBKDF2之类的算法,从6位数字计算出加密密钥。

  • 所有6位数字密码就是:000000, 000001, …, 999999,总共是1百万个
  • 所有6位数字密码,全部计算一遍需要的时间总共是50万秒 ~ 139小时

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

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

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

苹果犯了什么错?

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

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

在这里插入图片描述
然而,苹果错就错在把用于身份识别的6位数PIN码用来加密数据了。

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


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

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

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


http://chatgpt.dhexx.cn/article/jWODQrPx.shtml

相关文章

苹果激活锁怎么解除?手把手教你关闭激活锁

苹果激活锁怎么解除?苹果手机上的激活锁可以确保我们的设备和信息安全,在设备丢失或者被窃的时候,开启的激活锁可以帮助我们减少损失。很多人不太了解苹果手机的激活锁,今天就教大家关闭激活锁的方法。 情景一:抹掉设备 有些时候我们会抹掉自己的设备,如果在抹掉设备之前…

苹果icloud文件服务器,你真的会用苹果iCloud吗?这7个隐藏功能,你未必全知道...

苹果的iCloud,可能只有当手机弹出“你的iPhone云储存空间不足时”,你才会感知到它的存在,在很多人的印象当中,它只是一个照片自动备份的工具 其实除了储存照片,它还有其它的作用,这些作用将有利于你的工作效…

苹果免密支付怎么关闭_有人苹果手机被盗刷了!那是设置有问题...

最近在家憋的实在难受,唯一能出门的理由也就是下楼买菜了... 付款的时候,意外的发现自己开启了「免密支付」,虽说很方便,但总觉得有一丝不安全。 这不我刚在网上看到一个新闻,某位 iPhone 用户的 Apple ID 突然不能登陆…

ios重签工具避免双重认证

由于苹果发布的新规定,从 2019 年 2 月 27 日开始,开发者要开启双重身份验证才可以登录账户、查看证书,有了双重认证,只能通过用户信任的设备才能访问 Apple ID。例如,你有一台 iPhone 并且要在未授权的 Mac 上登录&am…

apple 关闭双重认证_这次Apple可以关闭工作吗?

apple 关闭双重认证 A recent poll in The Register asked who is more closed, Microsoft or Apple? A whopping 55% of respondents thought that dubious honor belongs to Apple (21% said Microsoft, and 24% said they were both equals in the matter). 《 The Registe…

关闭appleid双重认证_iPhone 丢失怎么办?开启双重认证就能解决!

现在很多同学手里都不止一台苹果设备。 像我一台 iPhone11 Pro 主力机,一台 iPhoneSE 备用机,再加上 iPad Pro 和MacBook Pro...别问为啥,因为我家里有矿! 但是 Apple ID 只有一个,所以我通常会选择设置「双重认证」来…

关闭appleid双重认证_如何查看并移除登陆过Apple ID的设备

在iOS设备上依次打开“设置 - Apple ID”,然后下滑至页面底端,可以看到一些设备名称,这些设备表示曾登陆过该 Apple ID。 点击任意一台设备可以查看具体的设备型号、系统版本、电话号码等信息。 如果不再使用列表中的设备,或者不认…

关闭appleid双重认证_苹果官方科普来了:全面认识Apple ID

虽然时常和Apple ID打交道,但你知道Apple ID有多重要吗?今天,苹果官方公众号进行了全面科普,再也不要把自己的Apple ID借给别人了。 什么是Apple ID?简单说,就像一张Apple通行证,是用来访问各类…

iphone双重认证关闭不了怎么办_iPhone双重认证怎么关闭?苹果手机关闭双重认证的两种方法[多图]...

i上一篇我们刚给大家介绍了iPhone双重认证怎么打开的方法,由于网上有不少果粉有关闭双重认证的需求,因此我们这一篇文章要来介绍的就是iPhone双重认证怎么关闭的方法了。这一次我们介绍了两种关闭双重认证的方法,一种是在电脑上操作,一种是在手机中操作。大家可以根据需要选…

SpringAOP编程

一、AOP 1 AOP简介 问题导入 问题1:AOP的作用是什么? 问题2:连接点和切入点有什么区别,二者谁的范围大? 问题3:请描述什么是切面? 1.1 AOP简介和作用【理解】 AOP(Aspect Oriented Progr…

SpringAOP初识——初学者向

Spring中最重要的两个部分 1.IOC 控制反转 2.AOP面向切面编程 博主之前有一篇文章是关于SpringIOC的理解:关于SpringIOC的理解有需要的小伙伴可以自行跳转。 下面,我们今天来一起学习下SpringAOP相关的知识点。SpringAOP的英文全称是——&…

SpringAOP超详细教学

SpringAOP 前言 我的这篇AOP博客有大量的图片和例子教会怎么使用AOP配置那里如果没有学习Maven的话也别急 就是使用maven下载了jar包而已了 你完全可以自己手动导入如果你有一些代码比如说 事务 或者 日志等操作 需要大量嵌入你的代码前后的话 那么无疑AOP是最好用的AOP运行流…

SpringAOP介绍与使用

目录 1.Spring 的 AOP 简介1.1 什么是 AOP1.2 AOP 的作用及其优势1.3 AOP 的底层实现1.4 AOP 的动态代理技术1.5 JDK 的动态代理1.6 cglib 的动态代理1.7 AOP 相关概念1.8 AOP 开发明确的事项1)需要编写的内容2)AOP 技术实现的内容3)AOP 底层使用哪种代理…

SpringAOP详解,使用SpringAop实现统一日志处理,异常处理

阅读本文内容之前需要先了解java动态代理的实现。java动态代理实例 以下内容为本人原创>>>>>>>>>>> Spring AOP的主要概念: 目标代码(或称目标方法、被代理类、被代理方法):原本的业务代码。…

SpringAop学习(一)

Aop面向切面编程 AOP是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效补充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码…

【Spring】SpringAOP切面类

切面类是什么 简单的来说,就是动态的在方法的指定位置添加指定的代码。 为什么需要切面类? 在软件开发的过程中,有很多业务,特别是在编写核心业务的时候,往往需要很多其他的辅助业务,比如说身份验证(银…

SpringAOP超详解!!!!

文章目录 一、什么是SpringAOP二、SpringAOP的应用场景三、Aop在 Spring 中的作用四、AOP的实现方式1、方式一:使用原生Spring API接口2、方式二:自定义类方式三:注解 一、什么是SpringAOP SpringAOP的全称是(Aspect Oriented Pr…

springAOP的原理解析

一、缘起 因为springAOP原理其实是使用jdk动态代理和cglib动态代理, 在深入了解springAOP的原理之前,我们需要先补充一点有关动态代理的相关的知识,然后我们对于springAOP的理解才会更透彻。所谓动态代理技术是程序在动态运行期间动态的增强某…

SpringAOP简单案例

简介 本文是一个老师在学校给学生上课的简单案例,介绍了AOP的五个通知的使用,以及通知的执行顺序。通过自定义注解来充当切入点,获取注解的类型分别对不同的老师做对应的业务处理。代码中的消息响应体(Result)大家可以…

springAOP面试题

1.什么是SpringAop? 一般称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复…