贡献榜 众测 知识 关于 登录
当前位置:WooYun(白帽子技术社区) >> 移动终端安全 >> 关于iphone的push功能安全
iphone允许软件push消息,消息可能是敏感的,该过程并没有需要用户交互输入账号密码的地方那么是如何保证这个消息的安全性的,如何识别该消息是哪个手机和哪个用户乃至哪个应用的?
首先,Notifications消息是分local和push两种的。不是所有的都是push消息:)只讨论iOS上的push的话,iOS上使用的消息管理一般是Apple Push Notification Service。这是由苹果统一提供的push服务。包括OS X也是使用这套框架的。这套框架需要开发者提供一套Provider与Apple Push Notification Service(APNS)进行通讯,用下图表现更加直观:具体流程就参考图片,我就不多说了。唯一性上是通过Provider在提供推送时需提供手机的标识(unique device certificate),这个UDC会随同push消息发送给APNS。APNS会根据手机标识发送给特定手机。iPhone在开启Push的时候,会连接 APNS建立一条TLS加密链接。因为每一台正常的iPhone都有一个独有的UDC,而APNS也有一个服务器证书。两者建立的时候,会验证彼此的证书有效性。TLS链接一旦建立,在没有数据的情况下,只需要每隔15分钟进行一次保活的握手。而一旦因为意外原因导致链接中断,iPhone会不断重新尝试建立TLS链接,直到成功。
开发手册: https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html
@123 手机可以通过UDC确定了,应用怎么确定?
iPhone在开启Push的时候,会连接 APNS建立一条TLS加密链接。因为每一台正常的iPhone都有一个独有的UDC,而APNS也有一个服务器证书。两者建立的时候,会验证彼此的证书有效性。服务端验证客户端的权限是靠的udc,这玩意儿泄露了就完了是么?
iPhone在开启Push的时候,会连接 APNS建立一条TLS加密链接。因为每一台正常的iPhone都有一个独有的UDC,而APNS也有一个服务器证书。两者建立的时候,会验证彼此的证书有效性。
@GaRY iOS to Apps具体没看过,猜测是用过应用的GUID或者其他确定的。因为应用需要didRegisterForRemoteNotificationsWithDeviceToken函数注册Notifications。@xsser 理论上说,如果重复的话会把相同的信息推送给相同的两个手机。具体没有测试过,可以测试一下
@xsser 或者只有第一个会收到。还是老话题,不越狱就不会被泄露
网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地
登录