如何看待苹果 AirDrop 的匿名加密被司法鉴定机构破解?
- 383 个点赞 👍被审核的答案
首先,彩虹表,撞库出指定账户,都不是真的破解
其次,好歹是合法经营企业的合法软件,官方亲自破解也罢了,还拿来当喜事宣传。
不以为耻,反以为荣
还是司法机关,加一条知法犯法
虽说目标是针对一小撮不法分子,但宣传时甚至没想到或不在意,把全国用户隐私信息能被官方盗取,都给宣传了。
编辑于 2024-01-11 12:52・IP 属地四川查看全文>>
CatherinRye - 0 个点赞 👍被审核的答案
查看全文>>
黑暗福音 - 710 个点赞 👍
看新闻的意思就是一个简单的撞库法
一天活就能把一整年奖金领了
把全国所有手机号码做一个hash表
总共顶多就十亿行数据,用显卡算一秒搞定
然后直接检索,根据drop地点,时间筛选
匹配到hash string——匹配到手机号——开盒
编辑于 2024-01-11 12:27・IP 属地广东查看全文>>
孔过瘾 - 297 个点赞 👍
查看全文>>
微亿 - 224 个点赞 👍
查看全文>>
八里土人 - 177 个点赞 👍
21年就有人发过论文:https://eprint.iacr.org/2021/893.pdf
hash手机号邮箱这些其实是为了用来判断发送者在不在通讯录里。估计苹果也没想到会有人会拿这个去碰撞真实的号码。
解决方法就是给手机号和邮箱加盐后再hash,传给接收方时把盐值也一起传过去。
———————————————————————
评论里提到简单加盐并不能避免碰撞,确实是这样的,增加的复杂度不够,还是能在有限的时间内对邮箱和手机号碰撞得到结果。
网上有人提到使用PSI的名叫PrivateDrop的解决方案,可以解决这个问题:https://www.usenix.org/system/files/sec21-heinrich.pdf
编辑于 2024-01-12 09:50・IP 属地浙江查看全文>>
wowh - 143 个点赞 👍
挺无聊的一种所谓的‘破解’
这个我去看了,事情起因就是一个人在地铁上从airdrop收到了含有不当言论的视频,随后报案了…然后蜀黍根据他手机的日志成功锁定了发送人
方法就是把所有手机号邮箱都用哈希值算一遍,然后根据日志信息匹配…可以等价于暴力撞库…
反正挺无聊的,而且苹果愿意修复也完全可以修复…只不过,面对司法的话估计还要配合,所以修不修也意义不大。
当然有人说这都不修复不是会被骗子利用吗……我手机丢了怎么办…主要是吧,你要知道骗纸获得你的信息干嘛,而且你手机都丢了app里的内容可比日志撞库有意思多了…人家不傻……
发布于 2024-01-11 15:58・IP 属地北京查看全文>>
知乎用户 - 73 个点赞 👍
查看全文>>
无须缘由剑剑来刺 - 52 个点赞 👍
有请温水煮青蛙众表演一个那啥,
“你不干坏事怕什么别人看?”
哈哈哈哈哈哈哈。
ps:哪次姥爷加强监管或者扩权,回答区没有和稀泥的人说你不干坏事怕什么别人看,我觉得很好的?哪次没有?
从实名制,到备案,到限制游戏,到动不动限制取现,每次都有奴颜媚骨之徒出来说是好事的。是,我知道没办法。但是没办法是一回事,不歌颂都做不到么?就是因为一次次温水煮青蛙,每次都有人叫好,空间才越来越小。
编辑于 2024-01-12 12:21・IP 属地广东查看全文>>
麻了 - 30 个点赞 👍
查看全文>>
夏目 - 25 个点赞 👍
感觉大多数讨论都没说到重点。
案例司法鉴定的效果是:A 的 iPhone 和 B 的 iPhone 进行了 AirDrop 之后,在 B 离开的情况下,从 A 的 iPhone 里还原出 B 的身份信息。原理是:iPhone 进行 AirDrop 之后会存日志,于是从 A 的日志里的信息还原 B 的身份信息。
只要删除日志,无论 AirDrop 本身是否安全,都不影响后续不再能找到 B 的身份证据。我不明白为什么 Apple 要让 iPhone 自动记录 AirDrop 的日志,其心可诛。
大多数讨论(我所见到的)都说的是 AirDrop 的设备发现过程不安全,散列函数啦、撞库啦云云,还有人建议加盐(这个案例里面加盐不会带来什么安全性),我感觉这不是重点,下面解释原因。
AirDrop 设备发现的核心通常建模为隐私求交(private set intersection, PSI)问题。首先解释一下 AirDrop 接收方的三种模式:关、接受任意设备、接受且仅接受联系人的设备。重点是第三种,“联系人”模式。考虑 iPhone B 准备用 AirDrop 共享一份文件,考虑 B 周围有数台 iPhone,那么每个 iPhone 都可能处于三种模式之一,此时 B 需要显示潜在的接收设备:
- 首先 B 广播自己正在考虑 AirDrop,此时周围的设备 A 需要决定自己是否应该显示在 B 的潜在接收方列表里;
- 如果 A 是“关”,只要不理会这个广播即可;
- 如果 A 是“任意”,则接收到这种广播就回复 A 本身的一些信息(足以完成文件传输即可);
- 如果 A 是“联系人”,则应该探究 B 是否是 A 的联系人列表里的人,再决定。
第三种情况里,A 和 B 计算“B 是否在 A 的联系人列表里”就建模成 PSI,也就是 B 的数据是自己的手机号(以及 Apple ID 等,但这里就理解为手机号就行了),A 的数据是自己的联系人列表,计算结果是 A 知道了这两个集合的交集。如果交集非空,则 A 同意自己被显示为候选接收方并发送一些信息以便后续 AirDrop 传输文件。注意,理论上来说可以用“判断交集是否是空”建模,这样交集非空的时候 A 不会知道 B 到底是通讯录里的哪个人;但实操上,如果交集非空,则通常 A 和 B 是认识的,而且 AirDrop 的时候也会传输 B 的设备名称给 A,所以建模为 PSI 无伤大雅。
AirDrop 的设备发现没有采用安全的 PSI,而是采用了纸糊的算法,简单来说是这样:在 B 准备发送 AirDrop 时,它广播自己的手机号的散列值,如果 A 是“联系人”模式,则 A 检查这个散列值是否与 A 的通讯录里任何数据的散列值一致,如果是,则 A 同意自己被显示为候选接收方。实际操作还要复杂一些,比如要加入 Apple 的签名,以及一开始广播的是短的散列值(不能达到抗碰撞的密码学安全性),如果匹配,再进一步用长的散列值(达到抗碰撞的密码学安全性)匹配,这样可以确保没有碰撞,从而不会误显示。为什么这样做?当然是因为这样:再高效的 PSI 也没有达到这个算法的效率。
很明显 A 在被发现的过程中(即使 A 是“任意”模式,即使后来 B 没有选择发送文件给 A)会看到 B 的手机号的散列值,然后 A 会在日志里保存这个数据,所以可以从 A 的日志里读取这个散列值,然后枚举所有的手机号去匹配、筛选 B 可能的手机号,中国大陆的手机号只有 10^10 个,对于国家机器来说这种程度的计算根本是洒洒水。
现在可以解释为什么我认为这个案例里面,PSI 的安全性不是重点,日志才是重点了。如果多方安全计算(multi-party computation, MPC;PSI 是一种多方安全计算)采用无擦除模型,即 MPC 里 A 的数据总是被保存起来,那么只要查看 A 的日志,就可以在 A 的视角重播整个计算过程,从而得到过去的数据。当然,如果 B 不是 A 的联系人,这自然不能发现 B 是谁,但如果 B 是 A 的联系人,那么从日志可以还原出 B 的身份——即使采用“交集是否为空”的 MPC,也会导致 B 手机号的范围从 10^10 大幅降低到 A 的联系人列表(虽然 A 的联系人列表可能已经变了,但我们假设无擦除,因此该模型允许得知 A 在任意时刻的联系人列表,况且 A 在被国家机器控制之前主动删减 B 的可能性真的不高)。
另外,解释一下为什么这个算法加盐没有意义:
- 如果每次交互的时候,每个手机号的盐是固定的,那么等于没加。有人可能会说这会导致国家机器不能自己计算任意手机号的散列,但这个论证不成立,因为可以随便找一台 iPhone 然后把所有手机号都纳入联系人列表,然后从这台 iPhone 里就可以拿出所有手机号的散列值。
- 如果每次交互的时候,B 随机选择一个字符串作为盐,那么这会导致周围的设备(A)大量耗电,因为此时 A 无法预先缓存自己通讯录里所有号码的散列值,每次发现过程都要重新遍历通讯录计算,这在现阶段是不可接受的损耗;此外,这样做也不会显著改变安全性,因为 A 必然是要知道盐的,否则没法计算自己通讯录里的散列值,根据日志的尿性,盐很可能会被记住,此时国家机器只要针对 A 那次的盐计算全部手机号(或者全部被怀疑的手机号)的散列值即可,这依然是洒洒水的计算量。
教训是什么?不要记住不该记住的东西。这个案例里面 AirDrop 的日志和设备发现协议导致了类似如下的场景:如果我在路上想和旁边的一个人(比如我的朋友)说话,那么在那个时刻所有在我旁边的人,都会永远记住我是谁。这听起来就很恐怖。
发布于 2024-01-12 07:02・IP 属地美国查看全文>>
Gee Law - 13 个点赞 👍
几年前公开的研究成果变成今天的破解就挺搞笑的, 基本就是搞个噱头, 回头搞解决方案去卖给三所.
不过想想也很搞笑, 22年底那会人多那块就在隔壁.
而且说是破解, 实际上如果真的碰到用 USB 网卡 OpenDrop 的, 或者是无 ID iPhone/iPad 群发的, 那还是一点办法都没.
发布于 2024-01-14 16:35・IP 属地上海真诚赞赏,手留余香还没有人赞赏,快来当第一个赞赏的人吧!查看全文>>
Luv Letter - 7 个点赞 👍
其他我不做评价,单纯评价一下这里面的知识点。
提到使用所有的实名手机号进行撞库的答主都是不了解彩虹表构造的。
本文将详细解释什么叫做彩虹表。(该处默认读者知道什么叫做hash,hash是一种单向函数,就是把一个手机号可以映射为一个hash值,但是知道hash值不能反推出手机号。至于单向函数为什么可以单向,请查看我这个回答:苏迟但到:为什么说 MD5 是不可逆的?)
我们要说明rainbow table,hash chain, hash set是三种不同的东西。
其他答主提到的是hash set,也是最容易想到的方法。
hashset在java,lua,python里面都有实现,叫做集合。
集合里面会保存很多对象,然后对对象取hash值,然后再使用hash作为索引。
这种好处就是知道一个元素的hash值,那么就可以快速的找到该索引。
因此在很多人对于该技术的概念如下:
hash set示意图 保存了所有的有效手机号码和它对应的hash值,从而我们知道了hash值就可以快速反推出手机号码。
但是有一个问题就是如果这样操作的话,会导致随着要hash的内容长度增加,从而要存储的空间指数增大。
例如假设手机号码库是1G,那么多一位的手机号码,就要存储10G.
这么做的结果就是导致存储空间太大了。
于是科学家们提出了hash chain(哈希链)。
hash chain顾名思义就是指运行很多次hash,然后生成一个hash链条。
你可能会问,这有啥用。
我来给你画个示意图你就明白了。
两条hash chain 在这个示意图里面,我们画了两条hash链,其中我们可以看见有两种颜色的节点。
绿色的节点是被hash处理的结果,而蓝色的节点就是手机号。我们引入一个新的hash函数,根据不同的需要进行构造。这个新的hash函数完成的是一个简单任务,在这里的话就是完成输出的hash值 到 手机号或者邮箱的映射函数。
这样好处就是我们只需要存储开始输入的手机号和最后一个hash结果就可以完成查询。
因此hash链条的长度是固定的,假如我们设置为100。
某条假想的hash链条 假设我们获取的待查询hash值是0xA0.....。
那么我们将这个hash值按照上面的流程hash 100次。
然后分别这100个结果进行查询,假如查询到第69次hash的结果保存在数据库里面,是0xEF....。
那么我们就可以找到链条的起始端17777777777,并将它hash 31次,那么我们就找到用户的手机号16666666666。
通过这个方法的好处是什么呢?
就是只要你只需要保存hash链条的开始和结尾就可以了,可以极大地减少需要存储的体积,如果链条长度为100,那么原来需要1G的数据,现在只需要10M。(在实践中,往往将链条长度设置为2100。相当于需要保存的体积减小了2100倍)。
接下来,我们进入了最后一个概念,rainbow table,也就是大名鼎鼎的彩虹表。
彩虹表同样沿用了哈希链条的思想,它主要是解决了哈希链碰撞的问题。
在某一处发生了不同的hash值产生了相同的手机号 假设数据库里面实际存储的是12371829289-->0xCD。
那么在查询0xA0这个hash值的时侯会产生一个奇怪的事情,就是我们从12371829289开始计算,会计算出17777777777这个手机号,而不是1666666666这个手机号,这就意味着我们产生了一个错误的结果。
也许我们可以继续搜索,但是这个方案在建立hash链条数据库的时侯还会损失算力。
因此科学家们想了一个天才的办法,就是将hash值到手机号的映射函数进行修改,从原来的一个函数修改为多个函数,然后让不同的映射函数交替使用。
rainbow table,或者说是引入了多个映射函数的哈希链 在这里蓝色和橙色都代表的是手机号,但是他们是由不同的映射函数实现的。
出现了碰撞,但是因为次序不同,只是短暂的交汇而没有真正的继续走下去。 这样做的好处是就是如果出现碰撞,如果它们的次序不相同,那么将会重新分散开来。
就如同爱情一般,他们只是短暂的相遇。只有当他们的步伐一致的时侯,才会一直走下去。
hash链条重合的概率,最终取决于映射函数的数量,当映射函数数量大的时侯,重合概率就很低。
我们回到第一句话,那么很显然这个映射函数是很难实现一个hash值到稀疏的手机号空间的映射关系的,更为关键的是同样也是没必要的。
至于加盐的作用,约等于zero,本文不列具体数据和证明,读者可以自行查阅。
当然相关的抵御办法也有很多,但是本文已经够长了,而且我要上飞机了,有兴趣的读者可以自行查阅。
好,本期视频到此结束,欢迎大家点赞 关注 评论 投币!
有up主看见且想做成科普视频的话,可以通知我一声,并在视频的结尾或者开头提到我的知乎ID( )即可。
发布于 2024-01-13 11:13・IP 属地重庆真诚赞赏,手留余香还没有人赞赏,快来当第一个赞赏的人吧!查看全文>>
苏迟但到 - 4 个点赞 👍
查看全文>>
草丛 - 4 个点赞 👍
实际上你拿到报警人的设备日志之后找云上贵州要数据就行 云上贵州不会不给也不能不给 根本不用撞库
而且以发送不良信息为目的的设备也不会用11位手机号登录 找个越狱过的水货机或者旧版机 不插卡盲发 发完整机扔到铁水里面直接化了 你又该如何应对?(apple在这个情况下最多记录一个激活数据,但我可以在外国激活完了关机拿过来)
发布于 2024-01-11 20:11・IP 属地北京查看全文>>
Abcdddd - 3 个点赞 👍
已经跟工信部老上司联系问了下这个事
个人觉得基本可以说这事是假的,宣传的跟实际的完全是两回事
说白了就是撞库
人家苹果是真没想到你中国会有企业把全国人民的实名手机号身份信息邮箱账号弄到手然后拿来撞,撞对了几个就说自己破解了。。。
又是一场新的“遥遥领先”
编辑于 2024-01-11 16:51・IP 属地湖北真诚赞赏,手留余香还没有人赞赏,快来当第一个赞赏的人吧!查看全文>>
郑郑郑郑郑松龄 - 2 个点赞 👍
我学校之前有个真~匿名论坛,
根据学校的邮箱名,给你通过算法搞个账户,用这个账户登录
然后有人在里面一直贴他人的个人信息。
个人被泄露的人就报警了
找出来也很简单,警方介入后,把数据拿到,把全校学生的邮箱依次遍历一遍就找到了
发布于 2024-01-11 20:25・IP 属地澳大利亚查看全文>>
某壬 - 2 个点赞 👍
我以为看到了十年前的新闻呢。
2023年彩虹表还能有这么大的作用呢。
苹果也没想到,卧槽他们能搞到所有人的手机号来撞库。
给他们点小小的震撼。
技术这么强,建议加大力度,把冤假错案,贪污腐败,拐卖诈骗啥的,都给扬了。
发布于 2024-01-12 10:57・IP 属地天津查看全文>>
无双 - 1 个点赞 👍
查看全文>>
我家豆豆可爱 - 1 个点赞 👍
就相当于我给我房子买了个防盗门配了个高级锁,这玩意能防绝大部分的贼,但是挡不住警察破门和一门心思想进我家的贼。
也挺好的,果子可以提升自己的技术,能被撞库说明果子一开始这玩意就没想着防太厉害:毕竟一般人谁管 airdrop 谁传的。
而且两年前还不一年前就得自己打开了别人才能搜到,说明果子也在拒绝陌生人推送。
世界上是没有最强的盾的,期待果子拿出个新玩意。
发布于 2024-01-12 04:15・IP 属地江苏查看全文>>
鸡良鸡影 - 1 个点赞 👍
“ AirDrop 的匿名加密被司法鉴定机构破解”,当时看到标题确实有点懵,寻思着最近也没看到苹果的相关漏洞预警呀,咋通过新闻直接爆出来了?这么得瑟的直接爆出来,苹果知道了打了补丁后,他们咋接着利用呀? ?
然后细看了下相关文章。。。原来如此。。。
全文核心就是这几句话:
司法鉴定技术专家们通过深度解析iPhone设备日志,明确传输原理,找出了与AirDrop 相关的记录。经检验发现发送者的设备名、邮箱和手机号相关字段,其中手机号与邮箱相关字段是以哈希值的形式记录,且哈希值部分字段被隐藏。为实现快速破解该字段,技术团队制作了一张详尽的手机号与邮箱账号“彩虹表 ”,能够将密文转换成原始文本,快速锁定发送者的手机号与邮箱账号。
嗯。。。这个描述的漏洞,简单的来说就是用户手机号和邮箱拼接并做哈希计算,生成一个哈希字符串,虽然这个哈希字符串不可逆,但是恶意用户可以按照相同的算法生成这个哈希字符串,然后对这个哈希值,就可以知道这个哈希字符串对应的手机号和邮箱了。
但是。。。。这就是几年前爆过的漏洞,苹果公司只是一直没有修复。(不晓得为啥说被司法鉴定机构破解AirDrop的匿名破解)。找了下当时相关报道,主要部份的截图如下:
此漏洞的更多的相关报道:
https://www.encrypto.cs.tu-darmstadt.de/home_page/news_feed/news_details_231808.en.jsp
顺便给出个poc地址:
https://github.com/seemoo-lab/opendrop/blob/poc-phonenumber-leak/README.PoC.md为此国外研究团体还开发了一个名为 PrivateDrop 的解决方案,并在github开源出来,仓库地址如下:https://github.com/seemoo-lab/privatedrop
之前看到这个漏洞,没啥感觉,我相信不光是我,很多人都不会对这个漏洞在意的,没想到几年后被挖出来,声称破解XXXXX。
现在挺多人关心这个漏洞,可能是因为都以为苹果安全做的很好,忽然现在有个新闻说破解AirDrop的匿名加密,会泄露隐私,毕竟很多人入手苹果就是看中他的安全性嘛。
那我接着对这个漏洞顺带说下,这个漏洞严格来说,它确实是一个安全漏洞,但他的危害嘛。。。苹果几年了都没有修复,就可以看出来,他们评估这个漏洞的影响可以忽略不计,(我当时也是这么想的),所以都没必要进行修复。
我当时为什么觉的这个漏洞影响不大呢?1.彩虹表获取难度高,尽然现在信息泄露严重,但是手中全量的拥有手机号和邮箱对应数据的还是少数。2.利用这个漏洞对攻击者来说基本没有任何价值,产生不了价值的漏洞,没有攻击者会耗费精力去无聊的去玩。
但是现在看到这个新闻后,可能对这个漏洞的影响重新审视起来了。首先,国内邮箱基都都是实名认证申请,并且有云上贵州的存在,手机号和邮箱的对应数据,相关部门全量拉取轻轻松松。2.利用这个漏洞对黑客没有任何价值,但是对取证来说,确实有很大帮助。
最后说下既然是安全漏洞,我们怎么防护吧。虽然上面也给出了国外的安全研究人员的解决方案,但我相信也基本没人用。
- 上策。文明上网,不造谣,不传谣,不该说的不说,做守法公民。
- 中策。能不用国内实名邮箱就不用国内邮箱;不用国内主流邮箱,如qq,网易等;用非国区apple id;
- 下策。等苹果安全更新。(且等吧,几年没修了,不过也不好说,之前他们可能也没意想到会有这么强大力量去利用这种漏洞,如果这个反馈响烈的话,也可能会重视起来。)
编辑于 2024-01-12 04:03・IP 属地北京查看全文>>
凌舞 - 1 个点赞 👍
查看全文>>
八云社 - 1 个点赞 👍
查看全文>>
花发发花法 - 1 个点赞 👍
建议苹果Airdrop下一步直接使用多进制加密,或者改变一下端到端加密的信号协议,我就不信这种加密方法还能用彩虹表这种类似于字库对撞的破解方法来解开。其实苹果也不用这么麻烦,直接把现有的密码加长一点或者加入随机盐,这种情况想要破解基本要上量子计算机了,目前这种靠彩虹表强行撞开的情况一看就是没加随机盐,而且密码位数还短,只要任选其中任何一个方法加强一下防御,想要破解不靠量子计算机基本就是下辈子的事了。
发布于 2024-01-12 11:49・IP 属地河南查看全文>>
玩吾伤智 - 1 个点赞 👍
查看全文>>
尖小弟 - 1 个点赞 👍
查看全文>>
cvvvvvvvvv - 1 个点赞 👍
查看全文>>
迪迦 - 1 个点赞 👍
查看全文>>
宋凯强 - 0 个点赞 👍
查看全文>>
毛太驴 - 0 个点赞 👍
一条不痛不痒的短信掘地三尺也要找出来是谁发的,
老百姓手机电动车被偷,有定位有监控,一句自己弄丢不算盗窃就给打发了,
警力到底是足还是不足呢?
编辑于 2024-01-12 03:28・IP 属地美国查看全文>>
被迫改名