GCM在设备上使用什么身份验证机制,特别是考虑到Google不需要在Android 4.0.4及以上版本上配置任何Google帐户即可使用GCM通知。该机制如何防止GCM会话劫持?也就是说,身份验证机��如何防止恶意应用程序读取设备上的数据(a.在已root设备上,b.在未root设备上),并使用来自不同计算机的信息与GCM服务器建立会话,以接收原始设备的推送通知?此外,是否存在已知漏洞?
GCM的网络传输尚未公开记录。话虽如此,这是已公开记录的部分内容...通常情况下,GCM消息由专用服务接收,然后转发给各个应用程序。该服务负责与(并认证)Google服务器通信。由于所有通信都通过该服务进行,因此应用程序从不直接访问GCM传输。此外,应用程序沙箱防止非根设备上的应用程序访问其他软件包拥有的内存或文件。根设备更加复杂。一般来说,我建议不要对设备进行root,因为它会破坏Android的安全模型的一部分。具有root特权的应用程序将能够读取任何其他应用程序的文件或内存。许多社区开发的Android发行版包括额外的保护措施(例如Superuser实用程序),可帮助管理哪些应用程序可以获得root权限,以帮助防止此类攻击。我不知道是否有针对GCM协议的任何攻击。