DNS over HTTPS config profiles for iOS & macOS
本项目参考encrypted-dns https://github.com/paulmillr/encrypted-dns
6月24日安徽电信已恢复正常路由,湖北电信问题依旧
安徽电信用户可移除描述文件(若安装),VPN中删除相应规则
湖北电信用户仍可参考该方法
通过iM激活网络抓包发现请求identity.ess.apple.com,而安徽电信湖北电信路由追踪如图
再附一个安徽联通路由追踪,谁的问题显而易见
pod2g(上古iOS越狱大佬)和gg关于iMessage中间人攻击报告中有介绍iMessage工作环境,感兴趣可下载iMessage_privacy.pdf
1.下载描述文件安装
2.iOS 打开Shadowrocket 配置--本地文件 xxx.conf【编辑当前使用的conf文件,至少是default.conf】--i--规则--添加 参考图示将激活FT和iM所需的网络请求加入规则中
identity.ess.apple.com 猜测是Apple的ESS服务下的身份验证,安徽电信解析异常,这个地址非常重要,似乎关系到iM登录和同账号下多设备互联互通
query.ess.apple.com 猜测是Apple的ESS服务下的查询服务,网络抓包发现在请求这个地址,并且安徽电信解析异常
rand(0,255)-courier.push.apple.com 资料解释为iMessage使用的PUSH服务 注:rand(0,255)为0~255随机数,具体如0-courier.push.apple.com 11-courier.push.apple.com等,需要注意这里的写法与前面两条不同,使用Domain-KEYWORD,即匹配域名关键词,具体请看截图内容,如果图省事与前面两条写法相同使用Domain-SUFFIX直接填push.apple.com也可以,效果相同,但会将Apple其他push服务也列入规则代理,如api.push.apple.com,gateway.push.apple.com等,所以截图写法更为精确,但列入也不一定是坏事,这个看个人选择。
如果对这些不太了解请严格按照上方截图填写并核对。
首先iM基于Apple的一项服务,称之为ESS Servers,该服务用于存储iMessage用户的所有公共加密密钥,并且从IP地址上看似乎位于库比提诺的Apple Park。iM登录的时候会先完成身份验证identity.ess.apple.com
但用户A发送iMessage短信时并不会简单的从用户A的iPhone发送到用户B的iPhone,用户A会先向ESS Servers查询用户B的身份,此时用户A的iPhone会请求query.ess.apple.com,成功后ESS Servers向用户A返回用户B的加密密钥。有了这些信息,用户A的iPhone加密消息,将加密文本发送给Apple,然后Apple将其转发给用户B,随后用户B的iPhone可以对其进行解密显示内容,所以iMessage被称为“端到端加密”。即每次合法用户想要向新收件人发送iMessage时,都会访问Apple密钥分发系统。iMessages客户端首先联系 query.ess.apple.com 以查找给定用户名的密钥。作为响应,服务器返回用户的公钥、状态和推送令牌,用于向用户发送APNs通信。
3.重启iOS设备,🚀打开连接,由于第2步添加规则,全局路由选择“配置”
4.进入设置激活iM和FT
1.安装描述文件
2.V2RayU PAC中加入上方列出的三条规则
项目地址:V2rayU
3.重启Mac即可恢复iMessage多设备同步
4.注意