iMessage安全性如何
文章目录
iMessage安全性如何
iMessage安全性如何,最近这些天挺火的,那么我也来凑凑热闹。
基于对iOS 6.1.3的分析。
iMessage加密主要有两块。
(1)设备和Apple服务器的加密通讯;
(2)iMessage消息内容的加密;
1、通讯流程
系统中有一个apsd(全称apple push serviced)的进程,该进程负责与苹果服务器进行通讯,采用TLS加密传输。
既然是加密传输,那么需要一个证书吧。
苹果设备在首次使用时,都需要激活,该激活过程就采用https方式。
albert.apple.com/WebObjects/ALUnbrick.woa/wa/deviceActivation
好奇的话,赶紧去截获一下协议吧,当然里面有几个数据加密的,用肉眼是看不出来,但是gdb可以帮你。
激活成功后,苹果就会返回一个证书。
下面是一个比较简单的通讯监控流程:
apsd 会通过DNS去查询 “push.apple.com” 对应的ip地址。 [ nslookup -query=txt push.apple.com]
通过修改DNS,把”push.apple.com”指向我们的电脑,
然后再我们电脑上写个简单的中转程序,来转发数据包给真正的苹果服务器,这样就可以截获到通讯数据。(记得从iOS上面把证书拷贝出来)
然后你就能看到:当[email protected]向mailto:[email protected]消息时,你就能看到。
|
|
即使用姐的24K铝合钛金狗眼,自然无法看出huluwateam是发送了什么消息。
但时间能看出来1379911703359339674
但是P字段肯定就是消息的内容,当然必须是加密的。
2、消息加密
iOS keychain中存储着两个私钥 RSA “iMessage encryption key” 和 ECDSA “iMessage signing key”。
跟踪一下,首先用AES256对明文进行加密,然后用”iMessage encryption key”加密一下AES密钥,
最后用”iMessage signing key”签名一下密钥和密文。
解密出来就是这样子的。
|
|
先举个例子,
如果张三想给李四发消息,
先会用李四的RSA公钥对消息进行加密,
然后再用自己的ECDSA私钥对数据包进行签名。
李四接受到消息了,先用张三的ECDSA公钥校验一下,确定该消息是来自三张。
然后再用自己的RSA私钥解密。
所以,如果想通过截获通讯数据包,来破解或者篡改消息,还是省省。
换个方式,考虑一下密钥生成和分发的安全性。
上面两个私钥都是在设备上生成的,然后在iMessage注册的时候,会把两个私钥对应的公钥发送给苹果服务器。
Apple spokeswoman Trudy Muller, in a statement to AllThingsD:
iMessage is not architected to allow Apple to read messages.
The research discussed theoretical vulnerabilities that would require Apple to re-engineer the iMessage system to exploit it, and Apple has no plans or intentions to do so.
但苹果想读的话,你的设备就有可能在你不经意的情况下,偷偷把”iMessage encryption key”上传到服务器中。
有没有这样的后门,我就不知道了。但目前是没人发现。
iMessage垃圾短信特别多,幸好iOS7上面,有手动添加黑名单的功能。
其实苹果挺为难,没办法在服务端进行拦截,一旦拦截,网络上的各大新闻媒体头条“苹果正在看你聊天”。
相比于短信,国内的各种即使通讯,iMessage是安全的。
DaWa
这还有几篇好文章。
http://blog.quarkslab.com/imessage-privacy.html iMessages Privacy ,超长的分析文。中文译文在此
文章作者 忆杰
上次更新 2019-01-29