Apple Airtag再次攻击无需移动数据计划

2021-05-16 01:29:27

本周早些时候我们写了关于对Apple的新推出Airtag产品的越狱黑客。

在该故事中,尽管Apple自己的Airtag固件规划实施的防篡改保护,但研究人员@ghidraninja能够在Airtag本身上修改固件。

但这种“攻击”(如果是正确的词)是不同的,因为它不涉及修改或破解空气特本身。

相反,它涉及在蓝牙设备上使用Internatooth设备上的AirtAG协议,以便“诀窍”(如果是右词)附近的“右词”(如果是右词)代表其通过Internet发送数据。

在描述Hack的论文中,所使用的设备是一种便宜且易于编程的ESP32蓝牙/ Wi-Fi芯片,常用于IOT设备,并从业余爱好电子网站上获得。

FabianBräunlein,研究员提出了这种概念证明。被称为它发送我的。

这是Apple自己的双关语,在他们丢失的时候,空中信料“呼叫回家”的关键词,即使他们没有自己的互联网连接。

鉴于Airtags可以全程向Apple致电苹果,即使Airtag没有自己的互联网连接......

...Bräunlein想知道该过程是否可以通过基于蓝牙的非Apple芯片颠覆,使用Apple查找我的报告作为发送我的传输。

当您使用Apple ID使用Apple ID时,您的计算机和Airtag对加密“种子”同意。这用于每15分钟生成一次随机数据字符串。这有点像2FA认证器应用程序中使用的种子,每隔30秒计算新的伪和6位数代码。 (Airtag Seed未与Apple共享。)每2秒钟,Airtag发出包含一个加密公钥的蓝牙低能量广播信标。这是椭圆曲线Keypair的公共部分,它使用从原始种子派生的随机数据字符串生成,并对应于当前的15分钟时间窗口。

如果任何互联网连接的Apple设备如iPhone或MacBook处于范围内,并且恰好恰好在此处接收Airtag-I-AM消息,它充当继电器并完成每条消息的交付,如下所示。

Bräunlein将此描述为具有一些有用隐私和安全性的“优雅设计”。

首先,Airtags不需要每次传输的唯一标识符,因为他们使用的ID只是不断变化的加密公共私人Keypair的一半。

其次,既不是Appertag代表的苹果设备没有收到消息,也不知道Apple本身就知道使用的任何私钥。

Airtag并不知道哪个Apple设备拾取并继承了其消息,从而保留了通过提供Internet访问提供我的报告的设备帮助的人的隐私。 Apple知道哪些设备在查找发送消息中发送,但无法解密它,因此继电器的位置保持私密。 Airtag的所有者称为Home可以解密该位置在查找发送消息中,但不知道继电器设备通过该消息。此时,您可能想知道如何查询Apple的服务以跟踪丢失的Airtag,因为所有Apple都是由随机生成的公钥加密的巨型和匿名位置消息。

答案是您作为Airtag的所有者,知道您的Airtag每15分钟每隔15分钟产生公共私人钥匙的秘密加密种子。

因此,如果您想追踪Airtag,例如,为期两小时的时间,您只需计算您的Airtag在此期间使用的八个公共键列表(一个x 2小时窗口= 8 x 15分钟) ,用SHA256哈希,问苹果,“你的名单上的任何哈希?”

从理论上讲,您可以通过撒谎您发送的哈希来检索来自其他机票的消息,但是没有太多的点。

首先,你会猜测有效哈希(256个可能的选择)的可能性越来越小;其次,如果你确实得到了回复,你就无法做任何事情,因为你无法解密它或告诉哪个Airtag发送它。

现在,问题是,“你可以使用这些公共钥匙不是用作用于扰乱要发送的数据的加密对象,而是要编码要发送的数据吗?”

他编程了一个蓝牙设备,传输Airtag公共键实际上并不实际键:他的“公钥”实际上是一系列包含隐藏数据的编码消息包。

当然,许多甚至大多数消息都可能丢失蓝牙以太,附近的IDEVices和Mac被接收的蓝牙广播可能永远不会向Apple转发,或者可能需要年龄到达......

...但是通过限制隐藏消息的长度并重复同一蓝牙“公钥”一遍又一遍地,Bräunlein的希望是,最终包含隐藏数据的所有数据包的完整副本可能会使它成为Apple。

此时,收件人知道要期待的内容,可以查询Apple的查找我的服务器查看哪些消息已到达,从而解码消息。

有趣的是,中继设备实际查找我的消息中加密的位置数据与Bräunlein的系统完全无关 - 事实上,它是为了他的目的是无用的,因为他没有控制它被注入的位置数据会被控制由中间中继装置。

最后,它只是查找我的消息“公钥”列表,即到达Apple,以告诉收件人已发送的隐藏数据。

现在,您毫无疑问是想知道这些“公钥”如果收件人需要知道每个“公钥”的哈希以检索它的哈希值。

例如,如果您发送由数据为42的字节组成的假“公钥”,则为了恢复该消息,肯定需要知道数据是预先提前42的文本,以便计算哈希我需要看到邮件已经交付吗?

想象一下,你想发给我一个两位数的数字,我们同意通过使用这些可能的“公钥”中的一个,只有一个,只要使用其中一个“公钥”:

这个数字是00 这个数字是01 。 。 。 这个数字是98 这个数字是99

如果您使用那些只有其中一个消息作为公钥来模拟Airtag广播,并且您将多次发送次数以提高其通过的机会,我可以弄清楚您通过解决所有哈希哈希发送的隐藏消息可能的100条消息......

SHA256('数字是00') - > 0B1C1677579E ... 373350BD8CD1 SHA256('数字是01') - > 3193AFED4AC6 ... DE3B0A207C12 。 。 。 SHA256('数字是98') - > 5ECFE2A3BFB3 ... 04A6267C88F1 SHA256('数字是99') - > D32C873C52F5 ... D5B48BE249F8

Apple将在100条消息中的99个消息中都不知道(未传输的那些),但在Apple数据库中显示的那个唯一地识别您首先发送的隐藏数据。

Bräunlein的系统更加复杂和概括,上面的过程:他使用了更长的“公共键”来编码他的数据并遵循预定的模式。

每个“公钥”包括消息ID,消息索引和设置或清除的单个“隐藏数据”位。 (它有点符合它:我们在这里略微简化的东西来节省空间,但原理是相同的。)

例如,如果收件人预期为16位消息,例如0xcafef00d的ID,则“公钥”可能如下所示:

CA FE F0 0D 00 00 00 00 0V - MSG 0xCaFef00D,计数器#0,位0 = v(0或1) CA FE F0 0D 00 00 00 01 0W - MSG 0xCAFEF00D,计数器#1,位1 = W(0或1) 。 。 。 CA FE F0 0D 00 00 00 0 0x - MSG 0xCAFEF00D,计数器#14(0x0E),位14 = x(0或1) CA FE F0 0D 00 00 00 0F 0Y - MSG 0xCAFEF00D,计数器#15(0x0F),位数15 = Y(0或1)

16个不同的“公钥”将被传输,通常每次重复多次,以改善它们被拾取和交付的机会。

然后,收件人将查询Apple的查找服务器32个不同的“公钥”,如下所示:

CA FE F0 0D 00 00 00 00 00 - MSG 0xCafef00D,柜台#0,猜测v = 0 CA FE F0 0D 00 00 00 00 00 01 - MSG 0xCAFEF00D,计数器#0,猜测v = 1 CA FE F0 0D 00 00 00 01 00 - MSG 0xCaFef00D,计数器#1,猜测W = 0 CA FE F0 0D 00 00 00 00 01 01 - MSG 0xCaFef00D,计数器#1,猜测W = 1 。 。 。 CA FE F0 0D 00 00 00 0-00 - MSG 0xCAFEF00D,计数器#14(0x0E),猜测x = 0 CA FE F0 0D 00 00 000 01 - MSG 0xCaFef00D,计数器#14(0x0E),猜测x = 1 CA FE F0 0D 00 00 00 0F 00 - MSG 0xCAFEF00D,计数器#15(0x0F),猜测y = 0 CA FE F0 0D 00 00 00 0F 01 - MSG 0xCAFEF00D,计数器#15(0x0F),猜测y = 1

苹果公司列表中缺少这些“公共钥匙”的一半,对应于从未被发送的消息;另一半将被报告为“发现”,对应于隐藏数据中的各个位。

简单地说,我只会收到两个消息CA FE F0 0D 00 00 00 0e 00和CA FE 0d 00 00 000 01,而且到达的那个会偷偷地告诉我位14的值(0x0e )在隐藏数据中。

每个“公钥”消息中的计数器字段意味着无论到达时,都可以在正确的顺序中缝合在一起缝合,并且即使某些位从未使其通过,也可以重建部分数据。

然而,正如您可能已经弄清楚的那样,这个系统可能是“自由”,但它并不快或有效。

Bräunlein报告说,他可以在大约20位/秒内发送,并在大约25位/秒接收,但他的隐藏数据“消息”从一分钟到一个小时到达。

正如Bräunlein所指出的那样,Apple可能不容易能够阻止这种滥用它的发现我的系统,并且甚至可能甚至不想,因为它将系统设计为匿名和私密。

(怀疑Apple将引入某种速率限制,以减少已进一步发送我的发送和接收的带宽,但这会减少而不是消除这种技术。)

然而,Bräunlein推测他的发送我的技术可用于从半安全环境中抵抗数据,其中允许仅包含受信任应用的可信移动电话,并监控和控制所有互联网连接设备。

这是因为这个诀窍(我们决定了,是的,是正确的词!)给予不受信任的匿名蓝牙设备,通过附近的可信电话通过互联网传输数据的方式,而不验证这些电话或任何应用程序。

隐藏的发送我的数据被剥夺为Apple自己的系统软件的一个明显匿名的一个不重要的部分。 如果您担心那种风险,那么您可能不应该允许用户将手机带到您的安全区域,或者您应该坚持将它们转换为飞机模式。